前言:一篇好文章的誕生,需要你不斷地搜集資料、整理思路,本站小編為你收集了豐富的數學建模數據處理方法主題范文,僅供參考,歡迎閱讀并收藏。
關鍵詞:軟測量;神經網絡;軟件設計
中圖分類號:TP18文獻標識碼:A文章編號:1009-3044(2011)04-0753-04
The Development and Design of the Modeling Software for Soft Sensor
HOU Yan-song, XIE Gang, ZHANG Min, LIU Ya-ru
(Automation Research Institute of Lanzhou Petrochemical Company Petrochina, Lanzhou 730060, China)
Abstract: This paper designs a soft-sensing modeling software for chemical production process, Considering the complexity in the practical industry process, the software applies the linear regression modeling approach and the nonlinear neural network modeling approach to design the measurement software. Practice have been carried on the production process of Ethyl benzene and Starch content prediction, and the results show that the software can fulfill the function of trend prediction.
Key words: soft-sensor; neural network; software development
在工業實際中,產品質量控制是所有工業過程控制的核心。要對產品質量進行實時有效的控制,就必須及時準確的了解產品的質量參數,從而及時調整工藝參數和控制參數,以期獲得良好的產品質量監測和控制。然而實際中,過程的質量參數通常是無法直接測量的,即使能夠利用分析儀表測量,也存在較大的分析滯后[1],無法完全滿足過程控制的需要。總的來說,我國石油化工行業現有的儀表設備很難實時的提供過程控制所需的質量參數信息。基于這種現實,更高一層的先進控制技術,過程優化技術,產品質量的監測管理等上層應用就受到了測量信息不足這一瓶頸問題的極大限制。在這種背景下,工業過程對過程檢測的內容和時效性均提出了新的要求。一方面,僅獲取流量、溫度、壓力、液位等常規過程參數的測量信息已不能滿足工藝操作指導和質量控制的要求,迫切需要獲取諸如成分、物性等與過程工藝操作和質量控制密切相關的檢測參數的測量信息。另一方面,測量從靜態或穩態向動態測量發展,在許多應用場合還需要綜合運用所獲得的各種過程測量信息,才能實現有效的過程控制、對生產過程或測量系統進行故障診斷、狀態監測。近年來,作為以計算機技術為基礎的軟測量技術成為了解決上述工業控制瓶頸問題的有效途徑之一,越來越受到關注[2-5]。
就苯乙烯、丙烯腈、乙烯及丁二烯抽提等化工裝置而言,產品質量數據主要是產品的純度。針對這一特點,本軟件采用基于數據驅動的建模方法,并考慮到實際的工業過程對象復雜多變,軟件采用了線性回歸建模和非線性神經網絡建模兩種方法來設計軟測量軟件。最后,根據工藝機理,我們通過建立苯乙烯裝置乙苯塔塔頂乙苯含量軟測量數學模型,完成了對塔頂乙苯含量的準確預測。
1 乙苯含量軟測量模型的建立
1.1 軟測量
軟測量的工作原理(見圖1),就是在常規檢測的基礎上,利用輔助變量與主導變量的關系,通過軟件計算 ,得到主導變量的測量值。軟測量技術的核心是建立用來預測主導變量的可靠的軟測量模型。初始軟測量模型是對過程變量的歷史數據進行辨識而來的。在應用過程中,軟測量模型的參數和結構并不是一成不變的,隨時間遷移工況和操作點可能發生改變,需要對它進行在線或離線修正,以得到更適合當前狀況的軟測量模型,提高模型的適合范圍。因此,軟測量結構可分為歷史數據處理、離線建模、在線運行(包括校正)三大模塊。
1.2 輔助變量的選擇
通過對苯乙烯裝置乙苯塔工藝機理研究,我們選擇通過DCS收集的1000組過程參數作為建模樣本集,300組過程數據作為校驗樣本集,運用統計學方法將樣本數據中隱含的對象信息進行濃縮和提取,通過工程師的經驗以及多元回歸分析方法,尋找最優變量來建模,從而建立主導變量和輔助變量之間的數學模型,見表1。
2 軟測量建模軟件的實現
2.1 軟件框架
選用微軟VC++6.0開發環境[6],軟件的整體設計采用面向對象的程序設計方法,考慮到軟測量儀表本身側重于數值計算和參數的頻繁傳遞,因此選用基于對話框的應用程序框架。該軟件框架結構簡單,易于人機參數傳遞。從程序的角度來說,軟件總共分四個主要模塊:主對話框模塊、算法模塊、矩陣運算模塊、圖形編輯模塊。如圖2所示。
1)主對話框模塊:即人機界面UI,提供基本的人機交流界面,以及數據文件操作。
2)算法模塊:是整個軟件的核心,包括了軟件中所有的算法程序,并且留有擴充借口,可隨時根據軟件的升級增加新的算法。軟件在調用算法時需要用戶傳遞的參數和算法結果的返回利用子對話框來傳遞。該模塊分為三個子模塊:① 數據歸一化模塊:主要功能是對原始樣本數據進行歸一化處理;② 樣本數據分析模塊:主要功能是對輔助變量進行相關性分析和主元分析;③ 建模算法模塊:偏最小二乘法建模、神經網絡建模。
3)矩陣運算模塊:主要功能是為算法模塊提供必需的矩陣運算支持。軟件中數據歸一化、樣本分析、建模的大多數算法在數學上表現為大量的矩陣運算,微軟MFC基礎類庫并沒有提供可以直接使用的矩陣運算類。為了使得建模算法代碼更為簡潔,易于修改。矩陣運算模塊將常用的矩陣運算操作寫成一個類――矩陣類,供算法程序調用。
4)圖形編輯模塊:主要功能是按照需要對工作空間中的數據進行曲線圖形顯示。作用是當離線建模完成后,需要對所建立的模型進行擬合試驗,將試驗結果以曲線的形式表現出來,軟件允許用戶自己設定坐標范圍和圖形標題。
2.2 偏最小二乘回歸法
偏最小二乘回歸是建立在主元分析原理上的化學計量學方法。它通過多元投影變換的方法,分析兩個不同矩陣間的相互關系。在主元分析中,提取主元的過程只是強調了主元對輔助變量信息的最大綜合能力,并沒有考慮主導變量。偏最小二乘法不僅利用對系統中的數據進行分析和篩選的方式辨識系統中的信息和噪聲,從而克服變量的多重線性相關性對建模的影響,而且在提取主元時還考慮主元和因變量的相關性,即主元對主導變量的解釋作用。因此,偏最小二乘回歸可以集多元線性回歸,主元分析,典型相關分析的基本功能為一體。
該算法原理如下:
假設有兩個數據矩陣X和Y,其中X∈Rn×m,Y∈Rn×1,X和Y之間的關系表示如下:
Y=Xβ+e (1)
式中:e表示殘差;β表示自適應因子。
自適應因子β的估計值可以用最小二乘法得到,即:
(2)
如果數據矩陣X具有較強的相關性,則式(2)中存在病態矩陣的求逆,結果誤差較大,而部分最小二乘法可以避免對病態矩陣求逆。其基本原理是將式(1)中的X和Y的關系分解為兩個內部關系和一個外部關系:式(3)、(4)和(5)。
(3)
(4)
其中,矩陣T=[t1 t2 … tα],U=[u1 u2 …uα];分別稱為X和Y的得分矩陣,而th和uh分別稱為矩陣X和Y的第h主元。P=[p1 p2 … pα]和Q=[Q1 Q2 … Qα]稱為荷載矩陣,U和T之間的關系表示如下:
(5)
式中:E、F、R為殘差矩陣。
該算法將高維空間信息投影到由幾個隱含變量組成的低維信息空間中,隱含變量包含了原始數據的重要信息,且隱含變量間是互相獨立的。
2.3 神經網絡法
基于人工神經網絡(Artificial Neural Network,ANN)的軟測量建模方法是近年來研究最多、發展很快和應用范圍很廣泛的一種軟測量建模方法[7-8]。能適用于高度非線性和嚴重不確定性系統,因此它為解決復雜系統過程參數的軟測量問題提供了一條有效途徑。
化工裝置產品含量預測建模通常處理的是非線性建模問題,而多層前向網絡已被證明具有以任意精確度進行復雜非線性函數的擬合能力[7],因此選擇前向網絡結構。網絡層數方面,除了網絡必須包含的輸入輸出層外,對于化工裝置產品含量預測這類軟測量建模,問題的復雜程度一般要求隱層數目為1。因此,軟件中采用包含一個隱含層的三層結構前饋網絡。
確定好網絡結構后,神經網絡用于軟測量建模實際上就是利用產品的歷史數據經過一定的算法來確定網絡的連接權值和閾值。BP算法是應用較早的學習算法,它充分利用了前向網絡的結構優勢,在正反傳播過程中的每一層計算都是并行的。但BP算法存在兩個缺點,即訓練時間長和容易陷入局部最小。針對此缺陷,本軟件在設計時采用了帶動量因子的改進方法來加快網絡訓練速度。改進的BP神經網絡的網絡設置和參數設置如圖3所示。
神經網絡建模算法采用BP算法,算法不再是簡單的矩陣操作。根據前饋神經網絡的結構將神經網絡用兩個類來描述,即神經網絡類和神經網絡層類。經過處理后,主程序算法簡潔,可讀性強。如果要改進BP算法,代碼的修改只需在類的方法中修改即可,不必修改主程序。神經網絡類的設計和神經網絡層類的設計主要代碼如下:
神經網絡類
屬性:
輸入層:CNeuralNetworkLayerInputLayer;
隱層: CNeuralNetworkLayerHiddenLayer;
輸出層:CNeuralNetworkLayer OutputLayer;
方法:
void Initialize(int nNodesInput, int nNodesHidden, int nNodesOutput); // 初始化函數確定了三層網絡的層次關系,有點類似構造函數
void SetInput(int i, double value); // 網絡輸入函數
double GetOutput(int i); // 網絡輸出函數
void SetDesiredOutput(int i, double value); // 設置網絡期望輸出函數
void LoadWeight(const CMatrix& I_H, const CMatrix& H_O, const CMatrix& H, const CMatrix& O); // 給網絡加載權值和閾值
void FeedForward(void); // 前向計算函數
void BackPropagate(void);// 反向權值調整函數(標準的最速梯度下降法)
void Levenberg_Marquardt(void);// 反向權值調整函數(Levenberg_Marquardt法)
double CalculateError(void); // 計算網絡全局誤差函數
void SetLearningRate(double rate1,double rate2); // 設置學習效率
void SetLinearOutput(bool useLinear); // 是否線性輸出
void SetMomentum(bool useMomentum, double factor); // 設置動量因素
神經網絡層類
屬性:
int NumberOfNodes; // 層中神經元數目
int NumberOfChildNodes; // 子層神經元數目
int NumberOfParentNodes; // 父層神經元數目
double**Weights; // 網絡權值數組
double**WeightChanges; // 權值改變數組
double* NeuronValues; // 神經元值
double* DesiredValues; // 導師信號
double* Errors; // 局部誤差
double* BiasWeights; // 偏差權值
double* BiasValues; // 偏差值
doubleLearningRate; // 學習效率
boolLinearOutput; // 是否線性輸出
boolUseMomentum; // 是否有動量因素
doubleMomentumFactor; // 動力因素大小值
CNeuralNetworkLayer* ParentLayer; // 父層
CNeuralNetworkLayer* ChildLayer; // 子層
方法:
void Initialize(int NumberOfNodes, CNeuralNetworkLayer* parent, CNeuralNetworkLayer* child); // 初始化(分配存儲空間)
void RandomizeWeights(void); // 權值初始化函數
void OrderWeights(const CMatrix& WeightsMatrix,const CMatrix& BiasWeightsMatrix); // 權值給定函數
void CalculateErrors(void); // 計算局部誤差函數
void AdjustWeights(void); // 調整權值函數
void CalculateNeuronValues(void); // 計算神經元值函數
void CleanUp(void); // 清除網絡層(有析構函數的作用)
2.4 軟測量模型的在線校正
由于軟測量對象的時變性、非線性及模型的不完整性等因素,必須經過模型的在線校正才能適應新工況。根據被估計變量的離線測量值與軟測量估計值的誤差,對軟測量模型進行在線修正,使軟測量儀表能跟蹤系統特性的緩慢變化,提高靜態自適應能力。一般采用在線校正算法為常數項修正法,即通過化驗值或分析值計算新的偏差,并把新的偏差寫入軟測量儀表,修正偏差。即:
新偏差=(采樣時刻計算值-化驗值)×偏差權重+舊偏差×(1-偏差權重)
3 工業應用
乙苯含量是乙苯精餾塔塔釜采出產品中一個十分重要的質量控制指標[9],通過輔助變量塔頂壓力、塔頂溫度、塔靈敏板溫度、回流量及塔釜溫度來預測乙苯含量變化趨勢。通過本軟件進行仿真,乙苯含量軟測量偏最小二乘建模數據擬合圖如圖4所示。其中,紅線為實際值,綠線為擬合值。誤差平方和:0.765762856683714,均方誤差:0.0033294037247118。
針對某裝置淀粉含量預測問題選擇神經網絡方法進行仿真研究,均方誤差:9.14971253690028e-009;擬合曲線:紅線為化驗值,綠線為擬合值。淀粉含量軟測量神經網絡建模數據擬合圖如圖5所示。
4 結束語
本文采用了微軟基礎類庫(MFC)提供的基于對話框的應用程序框架實現了軟測量建模軟件的開發。軟件主要是從數學的角度分別研究了線性和非線性軟測量建模算法,重點強調了建模算法對給定歷史數據的擬合和泛化能力。在具體的應用中,根據工藝知識對軟測量問題進行初步數學抽象,然后以本軟件作為一種工具建模,輔以必要的工藝機理分析檢驗模型的合理性。通過對實際中兩個化工過程進行的仿真表明,該軟件基本具備了軟測量建模預測產品含量變化趨勢的能力,可以得到較好的效果。
參考文獻:
[1] 王樹青.先進控制技術及應用[M].北京:化學工業出版社,2005.
[2] Morris A J,Montague G A,Tham M T.Soft-sensors in industrial process control[C].London,UK:Applied developments in process control,1989.
[3] 王躍宣.先進控制策略與軟件實現及應用研究[D].杭州:浙江大學,2003.
[4] 俞金壽.軟測量技術及其在石油化工中的應用[M].北京:化學工業出版社,2000.
[5] 馬勇,黃德先,金以慧.動態軟測量建模方法初探[J].化工學報,2005,56(8):1516-1519.
[6] 侯俊杰.深入淺出MFC[M].2版.武漢:華中科技大學出版社,2001.
[7] 薄翠梅,張,李俊,等.基于神經網絡的軟測量技術在精餾塔上的應用[J].過程工程學報,2003,3(4):371-375.
關鍵詞:推薦系統;進化優化
中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2014)10-2342-05
Abstract: Based on the theoretical analysis and recommendation system evolution, this paper has proposed a multi-objective optimization idea and an evolutionary multi-objective optimization based recommendation algorithm is proposed. This algorithm simultaneously considers the recommendation precision and novelty, it not only preserves precision but also recommend new items to user, it makes effort to obtain the tradeoff between these two objectives. This paper presents the design of algorithms and algorithmic thinking processes, and tests the algorithm with simulation data.
Key words: recommendation systems; evolutionary optimization
推薦系統是大數據處理和社會計算的一種重要技術和手段,在信息高速發展和個性化的需求之下,推薦系統地位日趨顯赫。經過多年的發展,業界已涌現多種推薦算法,還有更加新穎的推薦算法被不斷提出,而推薦算法效率優劣與否直接關系到推薦系統的性能及應用,從目前的參考文獻分析中可以得出,這些算法沒有考慮將推薦過程建模成數學優化問題,更沒有考慮用優化算法去解決這種問題。該文試圖從進化多目標優化的角度出發,將多目標優化融入到推薦過程中,提出了一種進化多目標優化的推薦算法。
1 設計背景
1)推薦系統定義及分類
推薦系統是在信息革命的背景下應運而生的,推薦系統可以理解為自動聯系用戶和物品的一種工具,是一種緩解信息過載問題的技術或者平臺。目前,業界對推薦系統的定義很多,但是在1997年由Resnick和Varian歸納總結得出:“推薦系統是利用電子商務網站向客戶提供商品信息和購買方面的建議,輔助用戶決策購買合適的產品,充當模擬銷售人員的身份幫助客戶完成購買過程”被廣泛認可和接受。
按照推薦系統采集的用戶的行為數據的類型,一般按以下五類劃分推薦系統:
① CBF [1]―基于內容過濾的推薦系統。
② SRS―社會推薦系統。
③ KBRS―基于知識的推薦系統
④ HRS―混合推薦系統。
⑤ CFRS[2]―基于協同過濾的推薦系統。
2)主要推薦方法對比
如表1所示。
3)推薦系統存在的問題
推薦系統主要存在冷啟動和數據稀疏兩方面的問題。
① 冷啟動問題
在推薦系統中,冷啟動問題主要分為3類[3]:用戶冷啟動、項目冷啟動和系統冷啟動。用戶冷啟動,即用戶剛剛使用系統,自身的信息才被記錄。另外一個冷啟動就是項目冷啟動,即某一項目第一次出現在系統中。另外系統冷啟動主要解決如何在一個新開發的系統或網站上設計個性化推薦系統。
② 系統稀疏性問題
對于一個真正的推薦系統而言,推薦系統中的物品個數要遠大于用戶的數目,反過來,用戶更不可能去購買所有的物品,其直接導致的后果是生成的用戶與物品評分矩陣是一個超級稀疏的矩陣,因此會導致在計算用戶與用戶之間的相似度時結果并不符合真實情況。
4)基于帕累托占優的進化多目標算法
Pareto最優的思想被引入到進化多目標優化中,是一種很好的求解多目標優化的思想。圖1以兩目標優化問題為例展示了Pareto占優的思想。圖中所有的點表示Pareto最優解,所有的解組成的一個面叫做Pareto面,稱PF面。圖中,Pareto最優解A和B由于彼此不能判定誰比誰好,所以它們被稱為Pareto最優解,A和B之間互相都不能支配誰。
2 算法設計
1)個體表示和適應度函數
表2給出了一個m個用戶對n個物品的評分數據統計情況,第i行第j列的元素代表用戶i對項目j的喜好情況評分。
表所示的矩陣數據是很多推薦系統算法的輸入,即這些算法試圖通過已經得到的評分矩陣通過某種方式或者策略估計用戶對其他目前用戶還沒有評分或者購買或者使用的物品的評分,根據這些估計值來排序,從而按照排序結果給優化進行推薦。該文的設計思路卻不一樣,該文的算法試圖讓算法一次運行能夠給出很多不同的推薦方案供決策者去自主選擇。該文算法個體的編碼方法如下:
表所示的個體編碼采用的是二進制編碼,這樣做的好處就是易于理解,物品被推薦就用1表示,不推薦就用0表示,另外這樣的編碼方法很好解碼,操作方便。對于一個進化多目標優化算法來講,算法一次運行能夠得到多個甚至很多個Pareto最優解,每個解都是一種推薦方案,決策者可以根據不同的用戶的喜好來選擇合適的方案來對用戶進行推薦。
進化多目標優化通常要求待優化目標之間具有沖突或者部分沖突,對于推薦系統而言,目標函數的確立就更加至關重要了。目前關于用多目標求解推薦的算法基本就沒有,因為推薦系統目前的評價指標比較少,而且現存的指標很難建模成一個多目標優化問題。該文算法力求尋找一種多目標解決方案。
按照推薦系統的推薦原則,該文設計的第一個目標函數就是精確度,精確度越高,推薦效果越好。該文設計了另外一個指標叫新穎度,此新穎度是針對用戶的,不是針對物品而言的。因此,該文算法定義的多目標函數如下:
[maxf1=(R+L)/Lf2=(R-L)/R] (1)
上式中,R表示一個推薦物品列表,L表示目標用戶喜歡的物品列表。從上式可以看出,若要f1最大化,理想情況就是推薦列表包含用戶目前所有喜歡的物品,而f2最大化的理想情況是推薦列表不包含用戶喜歡的物品,這一點正好符合多目標優化多目標的要求。該文算法力求尋找f1和f2之間的一組折中解。
2)遺傳操作
本文算法中使用的交叉操作的步驟就是選擇一個位置,然后從該位置開始到一個個體的最后一位,交換兩個個體這個位置區域之間的編碼內容。
本文算法中使用的變異操作的步驟就是選擇一個位置,若隨機數大于變異概率,則將個體該位置的編碼由原始的0變為1或者由原始的1變為0,否則不做任何操作,該變異操作非常簡單。
3)算法流程
本文算法提出的是一種進化多目標優化推薦系統解決方案。按照本文算法具體的操作步驟,下面給出了算法的整體流程圖如圖3所示。
按照圖3的算法流程圖,該文算法的具體操作步驟如下:
Step 1)數據讀取:從文件讀取用戶―物品評分矩陣M,其中M是一個[n×m]的矩陣,n表示用戶個數,m表示物品個數;
Step 2)初始化種群:將種群的每個個體隨機初始化為二進制隨機序列;
Step 3)保持非支配解:開辟一個外部種群,按照非支配關系確定非支配解,將非支配解存儲在外部種群中;
Step 4)遺傳操作:對當前種群進行遺傳操作,即每隔兩個個體,對該兩個個體進行交叉操作,整個種叉操作完畢則對種群每個個體進行變異操作;
Step 5)適應度計算:對新產生的種群的個體計算適應度;
Step 6)更新外部種群:計算經過遺傳操作之后的新種群的非支配解,并用這些非支配解更新外部種群的歷史非支配解;
Step 7)終止條件:為終止條件不滿足則跳至步驟4,否則輸出算法得出的所有推薦方案,并且選擇精確度最大的解作為最終的解。
3 實驗測試
1)實驗平臺
1) 參數設置
種群大小popsize:100
外部種群archive:500
迭代次數loopgene:100
交叉概率pc:0.8
變異概率pm:0.2
2) 軟件平臺
編程工具:Matlab7.0
操作系統:Windows 7
3) 硬件平臺
中央處理器:Intel(R) Core(TM) i3 CPU 3.2GHz
內存:4GB
硬盤:500G
2)實驗數據
實驗模擬數據是電影推薦數據。該數據是8用戶觀看8部電影后,給出的記錄打分集合,用戶及電影名稱信息集如表3所示。
由于原始數據是記錄的形式給出的,所以要得到矩陣數據需要對原始數據進行預處理。經過數據預處理之后得到的數據矩陣如表4所示。
3)實驗結果
程序是在matlab7.0軟件中實現的,最終的結果都是在matlab界面中顯示的。因為程序是基于數學建模的,結果的輸出區域是兩個目標函數的坐標系中,該文設定的橫坐標是精確度,也即目標參數f1;縱坐標是新穎度,也即是目標函數f2。輸出結果是進化迭代的最后一組非支配解,也就是一系列的坐標點(f1,f2);其數學含義是這些點互不支配,屬于目標函數組的一組折中解。每個坐標點代表一種推薦方案,根據算法的設計,算法保留著這些非支配解對應的種群,種群在算法中就是一個行向量為種群大小,列向量為物品個數的矩陣。目標函數值是通過種群矩陣中的行向量與用戶-物品評分列表中的行向量集合運算得到的。其中種群中行向量是一個0、1的序列,對應著用戶不喜歡或喜歡該物品,所以(f1,f2)解集對應的就是針對單個用戶相應的物品推薦方案,驗證了本文算法一次運行得到多個推薦解的結果。
圖4的PF面的結果可以看出,該文提出的算法可以得到比較理想的推薦情況,因為從進化多目標優化的角度來看,該文算法得到的PF比較光滑,而且數據之間的分布也比較均勻。
從圖4可以看出,該文算法一次運行可以得到一組推薦方案,而傳統方法一次運行只能得到一種推薦方案,這樣就不利于決策者進行決策,而本文算法可以在保證高的正確率情況下給出多種個性化推薦方案。
4 結論
本文系統講述了推薦系統的相關理論及知識,將推薦系統的推薦過程建模成了一個多目標優化問題,并提出了一種進化多目標求解算法。該文提出的算法一次運行就可以得到很多不同的推薦方案供決策者選擇,因此本文提出的算法比傳統的協同過濾推薦算法更具有意義,更適合實際應用情況。
該算法的本質是用進化多目標優化算法去優化本文建模的兩個推薦系統推薦指標。雖然實驗部分證明本文提出的算法是有效的,但是仍然還具有許多需要改進的地方,比如,目標函數的設計。該文設計的目標函數很簡單,對于實際中的應用應該考慮一些個性化元素,將這些個性化元素融入到目標函數中,這樣得到的推薦方案將會更具有個性化。另外,對于真實的推薦系統而言,由于現實中的推薦系統的數據都是很大的,而進化算法都是一類隨機搜索算法,如何更好的設計算法,讓算法能夠處理大規模數據也是一項值得研究的內容,比如可以考慮加入局部搜索算子加速算法收斂,比如對算法進行并行化,提高算法的執行時間等。
參考文獻:
[1] Koren Y, Bell R, Volinsky C. Matrix factorization techniques for recommender systems[J]. Computer, 2009, 42(8): 30-37.
摘 要:本文通過全面論述計算機圖形學的知識結構體系與它在計算機科學教育中的作用與地位,提出把計算機圖形學列入計算機專業的核心課程,以彌補“高等學校計算機科學與技術專業發展戰略研究報告暨專業規范(試行)”與“高等學校計算機科學與技術專業公共核心知識體系與課程”中對計算理論“能行性”教育的缺失與應用軟件編程系統訓練的不足。
關鍵詞:計算機圖形學;計算機教育;核心課程;軟件系統;應用開發
中圖分類號:G642 文獻標識碼:B
1 引言
2006年,國家教育部高等學校計算機科學與技術教學指導委員會編制出版了“高等學校計算機科學與技術專業發展戰略研究報告暨專業規范(試行)“(以下簡稱”新專業規范“)[1],該“新專業規范”指出:由于計算機專業是全國在校人數最多、高校開設專業最多的專業,這導致計算機類專業畢業生目前出現就業困難,其主要原因還是計算機人才的培養滿足社會需要的針對性不夠明確,導致了人才結構上的不合理。解決方法是分類培養、使計算機專業的學生能有相對優勢的知識結構,高校教育應該為計算機專業現在的畢業生增加專業特色、增強就業競爭優勢,等等。并由此提出了“高等學校計算機科學與技術專業公共核心知識體系與課程”(以下簡稱“核心課程”)[2]。無疑,這對全面規范并提高國內計算機教育的整體水平具有非常大的指導作用。通過認真學習研究這些內容之后發現,究竟應選擇哪些課程作為計算機的公共核心課程供全國各行業人員作為學習計算機的基礎知識,以及一些課程的教學內容應該如何安排,才能做到既拓展計算機專業學生的知識領域、又能增加學生畢業后的就業渠道等,這些都是大家不斷思考的問題。而計算機“核心課程”的選擇似乎對上述已有問題的解決幫助不夠,而增加計算機圖形學的教育對解決這些問題是一個值得借鑒的好方法,理由如下(不妥之處,請批評指正)。
2 計算機圖形學課程列入核心課程,彌補本科教學計算能行性教育的缺失
作為具有全國指導意義的“新專業規范”,應該為計算機教育在多個行業方向的發展奠定基礎,而抽出它們所共有的基礎課作為計算機本科教育的核心課程,但現有的“新專業規范”的公共“核心課程”[2]只有
程序設計
離散數學
數據結構
計算機組成
計算機網絡
操作系統
數據庫系統
等7門課程內容,而把“計算機圖形學”課程排斥在核心課程之外,這顯然不利于計算機應用的全面發展,不利于計算機動畫、游戲、圖形標準、計算機仿真、計算機輔助設計與制造等計算機應用軟件行業的全面發展,會縮小計算機本科生畢業之后的就業面,也與制定“新專業規范”的初衷相悖。
什么能被自動計算一直是計算機界探討的主題之一[8],那些確切能用計算方法解決的問題如何設計才能被計算機自動計算簡稱計算的能行性(可計算性的實現前提),而程序設計與數據結構這兩門課程是計算機編程的基礎,它們作為計算機的公共核心課程是必須的。但這兩門課程(該“程序設計”課程實為計算機程序設計語言+語句的簡單應用,“數據結構”講授程序加工的數據如何配合算法進行有效管理安排、以實現算法的功能)并沒有從理論上解決計算機程序根據什么原則才能進行有效設計、以及程序如何構成系統后才能最后自動解決用戶提交的計算問題,這是國內“程序設計”課程多年來懸而未決的老大難題。其原因在于:講授程序設計語言時,學生還沒有數據結構方面的知識,而數據結構本身既不講模型方法、又不講解軟件系統等概念,同時這兩門課程也缺少具有復雜計算模型的大規模實用軟件編程的整體訓練內容與方法,若把這些缺失的內容都加入到教學中,則一無足夠的課時、二是改變了授課的性質。所以,從算法語言的角度介紹程序的設計方法是不完備的。
對于這個問題,計算理論早已從計算的機理與實現上予以解決。但計算理論的內容一般只在研究生階段講授,且計算理論是研究生的一個專業方向、即使該理論在研究生階段講授、學生理解也有一定難度,而把這套理論方法直接用于實踐以解決實際應用問題難度更大[9]。即現有成熟的程序設計理論與方法沒有通過適當的載體引進本科課堂教學中是現行教育政策最大的不足,而計算機圖形學是直接從應用軟件開發的角度闡述計算的“能行性”問題(見下述),當其列入計算機的核心課程后,既能彌補上述計算理論教育中缺失的一環,也能有效彌補上述7門核心課程中計算機應用軟件編程系統訓練不足的尷尬。事實上,GPU(圖形處理芯片)與CPU在PC機上的發展并駕齊驅,證明計算機圖形學是計算機科學中不可缺少的重要研究領域,可這些沒有在“核心課程”[2]中得到有效的體現令人不解。
3 計算機圖形學的知識結構體系
3.1 計算機圖形學的研究對象、研究方法與基本教學內容
計算機圖形學的最終目的就是用計算機程序的方法在計算機顯示器屏幕上生成圖像效果,特別是生成類似照相機拍攝的三維圖像。而照相機拍攝三維圖像是一個具體的物理過程,它的基本原理是光線在空間物體之間相互傳播,當光線被物體表面反射并被照相機接收后形成的顯示效果。由于人們能從二維照片上光點的亮度與大小判斷出物體表面該點距照相機的相對遠近,故人們常稱這種圖像為三維圖像。用計算機程序的方法生成具有高度真實感的圖形就是對上述物理過程的一種近似仿真模擬得到的效果。為了達到這一目的,人們根據仿真方法的要求,建立了仿真過程需要的各種模型(包括照相機模型,燈光模型,顏色模型,照明模型,物體的幾何模型,物體表面的材質與紋理模型),通過①模型數據的輸入(交互輸入、編程輸入、文件輸入等)、②數據的存儲與管理(系統參數文件、圖形模型數據文件、規格化圖形數據文件、物理顯示設備的圖形顯示文件)、③數據的運算處理(物體的幾何變換、全剖切運算、集合運算、三維重建算法、物體的各種變形運算等)、④數據的輸出(各種線段圖形的生成與實面積多邊形的填充算法、著色算法、消隱算法、紋理映射算法、陰影算法,光線跟蹤算法與輻射度算法)等4個處理過程,用系統編程設計的方法實現其圖形顯示[7]。
這里照相機模型描述了三維空間中的點、線、面等圖形投影轉換成二維空間中點、線、面等圖形,并調用二維圖形的生成算法生成二維圖像,同時裁剪超出顯示范圍的三維圖形、便于圖形的正確顯示。燈光模型與顏色模型描述了光線產生的根源、點光源的空間幾何分布、光線在空間中的傳播方向與衰減規律,光線的色彩屬性、亮度計算方法與合成色的變化規律等內容。照明模型描述了物體表面反光或透光能力的計算方法。物體的幾何模型描述了一個物體的點線面等幾何尺寸與大小。材質特性描述了各物體表面對各種性質光線的反光與透光能力的大小。紋理模型直接描述了物體表面各點的顯示細節與像素值。著色算法確定了用何種插值算法填充多邊形網格表面、使其顯示效果是多邊形網格效果或是一張光滑的曲面效果。消隱算法確定顯示物體表面的各個可見表面與邊線,不顯示其被遮擋的不可見的表面與邊線。紋理映射算法就是把一張照片映射至物體的表面上(又稱貼圖),而這個照片既可以是實際照相機拍攝的三維照片,也可以是用數學模型描述并動態產生的結果。在場景中,由于某些遮擋物的存在,光線不能直接照射到某些物體的表面,使得這些表面反光(透光)的亮度暗于被光線直接照射物體表面的亮度;觀察的角度不同,所見這種陰影效果的形狀與大小不一樣;陰影算法即在場景圖中統一繪制這種陰影顯示效果與非陰影顯示效果。光線跟蹤算法、輻射度算法就是仿真光線的傳播過程以達到最后生成所需的圖像效果。
事實上,在計算機圖形學的應用領域中僅研究這些模型還不夠,還要用程序設計語言與數據結構的知識把它們都轉換成一個個可執行的算法,并用系統編程的方法把這些算法構成一個軟件系統整體,才能方便各種圖形的生成。而在這個軟件系統中生成圖形的第一步是構造多種物體的幾何模型與形狀(物體的幾何變換、全剖切運算、集合運算是用簡單物體構造復雜物體的有效工具之一,三維重建算法是用點、線、面等元素恢復物體外殼的幾何形狀),在統一的世界坐標系中確定它們的位置與朝向,再逐一確定物體表面的材質特性與紋理效果等,使這種多物體造型(稱場景造型)滿足實際應用的需要。第二步是設置燈光與燈光的特性,設置照相機模型等。第三步是在上述二步的基礎上,統一用光線跟蹤算法或輻射度算法生成上述場景造型所對應的三維圖像效果(又稱渲染)。
應注意:
① 試圖精確的構造現實世界中所有物體、特別是具有復雜結構或微小結構或細微動態變化物體的幾何模型既不現實、其代價也太大,人們總是想用其它的方法來代替,這就是所謂分形描述、粒子描述建模等多種其它建模方法的來源;
② 完全按照物理學上光線的傳播方法來生成圖像太費時間,光線跟蹤算法、輻射度算法事實上是對物理光線傳播方法的一種近似。這個近似程度一般由圖像顯示的真實感與計算的復雜度來確定。
③ 在上述場景造型的構造過程中,若物體運動或變形,燈光改變照射的范圍、朝向、亮度、色彩,照相機改變拍攝的方向或跟蹤拍攝,此時若連續拍攝(即渲染)三維空間場景效果,就形成了多幀圖像,連續播放這些多幀圖像就是計算機動畫。
④ 所謂圖形標準就是把上述的照相機模型、點光源的燈光模型、顏色模型、簡單的照明模型、著色算法,以及點線面、多邊形網格模型等模型與算法用硬件實現,并由圖形標準提供軟件接口方法調用這些硬件功能;當用戶向該圖形標準提供上述模型的描述數據與材質、紋理描述數據之后,計算機就能用硬件加速的方法實現在顯示器中高速生成點線面、多邊形網格,以及光照效果的表面、紋理效果等圖形。目前的圖形標準本身并不負責物體幾何模型的構造,也不負責管理各種模型數據等。現圖形標準主要以紋理映射算法為主,暫時還沒有用光線跟蹤或輻射度算法以實現三維圖形的實時顯示。可見圖形標準僅是計算機圖形學部分研究成果的具體實現。
⑤ 若能在上述場景造型中,讓各種物體實時運動(照相機與燈光是具有其它功能的物體,它們也有幾何形狀,也能與人、動物等角色(多關節物體)一樣進行各種運動),并能接收用戶的交互操作、且這種運動過程具有故事情節性,同時這種多物體運動的效果能在計算機顯示器屏幕中實時生成顯示,這種計算機動畫就是3D游戲(人類社會活動的仿真)。3D游戲另一個難點在于復雜游戲引擎的構造――即如何構造并管理游戲場景的模型數據(包括聲音與人工交互操作等),使整個游戲畫面達到實時顯示的目的。事實上,3D游戲可以看成是計算機多媒體技術與虛擬現實技術在商業上的降級簡單應用。
⑥ 物體的幾何造型、變形與運動是計算機動畫的一個難點,比體這個概念更復雜的是流體與場的模型構造、顯示,它們能描述更廣泛一類的物理現象,如臺風的變化過程、風洞的實驗效果、物體表面的應力變化現象、環境中熱傳遞效果的變化、地質勘探結果的可視化顯示等,一般人們把這些問題歸納在“科學計算的可視化”課程中講授,因為這些流體與場的模型構造等需要比較深的數學知識。但是,一旦這些流體與場的幾何數據模型確定之后,人們就能用圖形標準顯示它們。
⑦ 計算機輔助設計CAD與計算機動畫的區別:在CAD中,也需要構造物體的幾何模型并顯示這些物體的構造效果,更重要的是還需要用數控機床把這些設計出的物體零件加工制造出來,故它對物體的幾何模型要求特別高、特別是其誤差控制,因為多個零部件組成的精密加工機床等最后影響加工的精度都與各個物體模型的誤差精度相互關聯。顯然,在CAD領域中,也有零部件之間的聯動等多種運動需要精密控制(機械運動與仿真)。與物體幾何模型要求相比,CAD領域中物體的顯示要求可以放低些。而在計算機動畫中,相對而言,對物體幾何模型的要求低,例如物體的外表面可以不封閉,只要這個不封閉的外殼表面破綻不被照相機拍攝到就可以了;但計算機動畫對最后渲染的圖像顯示質量的真實感效果要求很高。
⑧ 二維圖形與三維圖形的區別:這兩者的區別除了其數學模型一個是二維的、一個是三維的之外,更大的區別還在于二維圖形學只能從數學上研究圖形的基本規律(點、直線、曲線、平面與形狀,位置,運動與變形,色彩等)、以及圖形的模型構造與顯示方法;利用二維圖形的簡單性,可剖析計算機二維圖形系統的組成,即軟件系統是一個能自動運行的程序,它能從輸入、存儲、運算處理、
輸出等方面全面處理用戶在某個領域中提出的諸多數學模型并完成其模型描述數據的加工任務,使用戶很容易明確這種軟件的組成、功能與使用范圍。三維圖形學卻可以用數學模型的方法研究自然界中的多種物理現象,由此探討大自然中多種物理現象的變化規律,并能用圖形顯示的方法來表現這種變化過程,這種方法正是人們探索自然并進行科學研究所倡導的基本方法之一。因此,從三維圖形學的基本教學研究內容可知,用圖形方式(可見的點線面、色彩、紋理)顯示各種物理現象的變化過程只是一個表面現象,關鍵的是要掌握這種變化過程的物理機理并能用數學模型的方法全面正確的描述這種變化(即用圖形的方法表達計算機信息數據的含義非常適合人們觀察自然、了解自然現象與變化規律,而計算機的信息描述數據是由具體的各種物理變化過程確定的),即掌握計算機仿真與科學研究方法才是學習計算機圖形學的真諦,也即用計算物理學的基本思想能統一傳統意義上計算機圖形學與計算機輔助設計學科中的基本研究內容。計算機專業的學生有了這種方法后,再深入其它各應用學科領域,努力掌握其物理原理、科學實驗與數學模型方法等知識,并與行業專家相互配合,計算機與計算工具就在各專業領域的科學研究與系統設計上大有用武之地了。
綜上所述,可以給出計算機圖形學如下定義:
計算機圖形學屬于計算機應用軟件的研究范疇,它主要通過物理原理與數學方法,建立描述自然景觀(虛幻世界)的幾何數據模型與顯示圖形的物理數學模型,以達到用程序的方法把這些模型的描述數據通過算法轉換成在計算機顯示器中顯示自然景觀圖像的目的。本質上,用計算機生成三維真實感圖形就是用數學模型的方法仿真光線在物體之間相互傳播而產生的顯示效果或把光線傳遞的效果即照片映射至物體表面上所產生的顯示效果。
國內計算機圖形學教育工作者已認識到計算機圖形學在計算機學科教育與科學研究中的重要性,并于2001年公開出版計算機圖形學教材支持上述觀點[10]。但由于這些觀點沒有引起國內計算機界制定政策的主流階層人士的關注,相反,從2000年開始,計算機圖形學的內容卻從全國范圍內的計算機專業等級考試中消失,這不能不說是國內計算機教育的一大損失。
而計算機圖形學的授課關系見4.1節。
3.2 “新專業規范”中,計算機圖形學的教學內容有待改進
“新專業規范”中計算機圖形學的教學內容主要放在計算機圖形標準的使用上,核心內容只有圖形標準、照相機模型,圖形顯示設備與輸入設備,前期課程要求計算機程序設計語言與離散數學,并只安排8個課時來講授這些內容,其它的內容作為選修內容(這包括各種圖形的生成算法、物體幾何模型的描述方法,計算機動畫,可視化,虛擬現實,計算機視覺,人們對色彩的主觀感受、如何用色彩方式表達設計作品的主題思想,等等)。這種教學安排能使學生掌握圖形標準的使用、以及照相機模型的應用,很容易導致學生誤認計算機圖形學就是在顯示器上繪制各種圖形這種認識偏差。
這種教學安排不當之處如下:
首先,計算機圖形學的前期課程應該是程序設計語言與數據結構。實際上,不學離散數學并不影響學生編寫圖形學的各種應用程序;但不學數據結構,則編程困難;而且授課學時數太少。
其次,圖形標準自成體系,但它不能構成一個完全自動運行并具有圖形數據輸入、存儲、運算處理、輸出等處理全流程功能的軟件系統,它往往需要用戶在應用軟件中向圖形標準輸入模型數據并調用其各函數才能出現所需要的圖形顯示效果。初學者原指望學了計算機圖形學,就知道象3DS MAX與OpenGL等軟件中是如何編寫程序并實現各種動畫圖形的顯示,但授課結果卻令人失望。
第三,由于初學者一般缺少對計算機圖形學的全面了解,缺少對計算機圖形學的研究對象與研究方法的認識,也沒有圖形系統的概念,該“新專業規范”授課大綱中雖有物體幾何模型的描述方法但缺少在圖形系統中具體建造物體幾何模型等實例;另大綱中授課內容的邏輯關系非常不順暢(例如把計算機視覺作為計算機圖形學的一部分對待并講授值得商榷,雖然人們期待從計算機視覺圖像中獲得圖像的模型描述數據并一直朝這個方向努力,但計算機圖形學與計算機視覺的研究方向與研究方法畢竟有很大的區別),也沒有總結出計算機圖形學的核心概念,且對計算機圖形學的認識仍停留在圖形學由各種算法的集合所組成的認識層面上,很難正確體現計算機圖形學在科學研究中的重要作用。若授課內容掌握不當易使教學與學習迷失方向,或再次導致計算機圖形學課程被計算機專業邊緣化,這也是多年來國內同行反映計算機圖形學難教難學的原因之一,這顯然與當今計算機圖形學在計算機科學中的發展潮流相悖。
第四,圖形標準只是計算機圖形學部分研究成果的具體實現,當初國外為什么會選擇圖形標準而不是選擇計算機動畫為案例作為講授計算機圖形學課程的主要內容,作者認為可能有以下原因:
① 歷史的原因:因為圖形標準是計算機圖形學最早、最成熟的研究領域,后才有CAD、游戲與動畫等;且圖形標準在各個行業都有廣泛的應用,而CAD、游戲與動畫是一個具體的專業方向,教學難度大。
② 商業發展的需要:圖形標準用硬件實現后,已經成為個人計算機的標準配置,這就促使人們更加專注圖形標準的發展。
③ 國外的教學體系不一樣:美國的計算機工業、圖形學產業與計算機教育均位于世界領先水平,但全美國并沒有強制性的計算機教育指導大綱,可是美國各校的計算機教育各有特色,他們對計算機的各個方面都有涉及、且各種層次的計算機課程都有,這種寬松的教育體制有利于科技成果與教育的創新培養。以圖形學課程為例,若你需要繼續深造,它還有許多圖形學的選修課、提高課程(如計算機輔助幾何設計、數字幾何處理、曲面造型與設計、CAD、計算機動畫、游戲、計算機程序設計方法等等)以及最新的學術論文等待著你、直至讓你從這種授課體系中走向學科的最前沿與商業開發――即雖然他們的某一門基礎課不一定很完美,但他們可以從完整的授課體系中,讓你掌握計算機圖形學等計算機應用學科的全部內容;但這也同時留下了因為課程劃分過細,使人不容易一下掌握學科內容的全貌而留下遺憾。可是國內的計算機教育與國外不一樣,首先,國內的高校沒有條件開設那么多的計算機選修課;其次,若是全國性的計算機教學指導大綱不全面、不權威的話,就會在計算機學科的發展道路上留下無可挽回的遺憾。
④ 出于知識產權的保護,美國沒有一本書的教學內容是一樣的(包括CC2005中關于計算機圖形學的知識結構體系的論述),這固然便于知識創新,但卻不利于優秀知識的繼承與傳授,結果使得每本新書的內容與體系都不一樣且龐雜,這對初學者是一個極大的負擔,需要教師認真抽取眾多書籍的有效內容,成系統后傳授給學生,才能有效的提高學生的學習效率,2000年以前國內外計算機圖形學的教材內容與體系的不夠成熟,也是造成國內計算機圖形學授課不能得到有效重視的原因之一。
⑤ 由于以上原因,美國人并沒有把計算機圖形學作為計算機學科的核心課程,這使得美國人的計算機圖形學課程的教育落后于其計算機圖形學等商業軟件開發等應用,這是一個不爭的事實(在美國,教材與授課基本上是老師的個人作為,商業軟件的開發是團隊作為并有經濟利益作為支撐,它能不斷發展并自我完善)。也有很多國際人士認識到計算機圖形學的教育出現了問題[4],顯然,仍把計算機圖形學定義為在顯示器上顯示各種圖形是過于簡單,這是沒有正確地把計算機圖形學學科的發展規律引入教育部門、忽視計算機圖形學在各行業領域中的具體應用與需求的一種表現。因此,全面認真研究美國人在計算機教育與計算機工業的發展規律、商業軟件開發等多種優缺點,再針對國內計算機教育中存在的不足,提出解決問題的方法應該是國內計算機教育界值得深思的問題;顯然,僅用跟蹤所謂國外先進的教學方法與理念也有不全面的地方。
4 計算機圖形學課程在計算機科學教育中的作用與地位
4.1 計算機圖形學是計算機應用軟件編程思想系統訓練的重要基礎課程
數據計算、數據存儲與檢索、數據聯網通信是現代計算機的三個最基本的應用。在這三者中,對于數據存儲,一般有數據結構課程與數據庫系統軟件分別介紹其基本原理與大規模數據的系統管理等軟件應用;對于數據聯網通信,一般有通信技術、計算機互聯網等課程、WinSocket技術等介紹其基本原理與實現方法;對于數據計算,一般有算法語言、編譯原理、自動機理論等課程介紹其原理,計算機科學與技術專業追求的目標是:用形式語言與自動機理論,通過形式化和模型的建立,構建系統,進行模型計算。但這些內容抽象、內容難以理解、難以直接應用解決實際應用問題[9],計算機專業的本科生學習這一方法尚有一定難度,非計算機專業的學生更不會接觸編譯原理與自動機理論等,這就造成一般學生在學習計算機進行編程計算的問題上存在知識缺陷,而計算機圖形學課程的授課正好可以有效的解決這個問題。
國內新一版的計算機圖形學的授課方法[7]:首先,以二維圖形為例,從理論上全面解決了圖形系統軟件的構建方法以及圖形數據處理流程的全過程,使初學者牢固的樹立起軟件系統的概念;其次,為了用計算機仿真的方法在顯示器中生成三維真實感圖形效果,建立了描述各種物理現象的多種數學模型(見上述),這些數學模型的描述數據都能通過圖形模型數據文件的方式保存在計算機圖形系統中供系統內部程序調用,以仿真方法生成三維圖像。也就是說,①系統與模型的數學與形式化的描述方法;②按系統數據處理流程,用算法語言與數據結構等知識把模型數據的處理方法全轉換成一個個程序,以實現其數據處理的全過程等任務;③編程實現時,需根據計算機的配置與用戶的經濟要求,合理考慮所選算法的復雜度(或選擇優化算法實現圖形功能);這三者是計算機編程計算的基本步驟與要求,是實現可計算性的三個條件――即計算機圖形學既成功探索了一般典型的計算機應用軟件系統開發的基本規律,又用可視化的方式表達了其程序數據運算處理的最后結果,這為該課程成為初學者學習計算機程序設計方法的首選課程之一奠定了基礎。
若沒有計算機圖形學等編程課程的系統訓練,計算機初學者一般只能通過實際大型軟件項目的學習與訓練(或繼續深造),通過自我總結與提高,才能全面地掌握這種編程與數據計算等知識,而這種機會不是人人都具有的,其付出的代價也將是巨大的。例如現在一般計算機本科專業的學生雖然能熟練的掌握3ds max軟件的操作使用,但不清3ds max軟件是如何編制而成,就是現階段本科教育存在缺陷的具體表現。
通過數據結構的學習,使學生明白:算法+數據結構決定程序設計;但計算機圖形學的授課能使學生進一步明白:算法不是從天上掉下來的,它們是由用戶解決實際問題建立的物理數學模型、并抽象出模型描述數據之后,提出處理其數據模型的基本方法與步驟;而數據結構是記錄該模型的描述數據、以及根據算法的需要構造而成、以配合保存各種中間加工數據或最后加工結果;編程者只有把這些解決問題對象的多種模型編寫成軟件系統之后,才能完滿的完成程序設計的任務――即計算模型及對模型的變換與運算處理方法決定了程序設計的算法與數據結構。
4.2 計算機圖形學的教育體現了計算機學科的科學性
計算學科是指通過在計算機上建立模型并模擬物理過程來進行科學調查和研究。該學科是對信息描述和變換算法的系統研究,主要包括它們的理論、分析、效率、實現和應用[6]。在目前所見的計算機教材中,只有計算機圖形學是按照這種理論體系組織教學內容的。這些教學內容是人們耳熟能詳的物理原理與相對簡單的數學知識在計算機中的綜合運用,是計算機學科科學性的具體表現之一――只有把計算工具直接應用于科學研究中,這種計算工具與方法具有科學性才有說服力,而計算機仿真是科學研究中常用的一種有效方法,復雜的數學計算又是仿真建模的基礎,從這個意義上講,仿真與復雜的數學計算等都是科學研究中重要的研究方法之一。這樣,該課程就很好的解決了“新專業規范”中人們對“數字科學計算”的認識不統一而導致該課程的教學內容與要求不詳等問題,很好地使計算機的應用回歸其本來面目;
4.3 用圖形方式表示計算機信息數據的含義,比用數字符號方式表示其含義更高級、更自然,也是計算機科學研究的對象之一
用文字符號方式描述客觀世界是對客觀世界的一種抽象,是對客觀世界的一種不完整的描述;而人們感受客觀世界最自然、相對全面的是用眼睛觀察客觀世界,它可以較準確的確定客觀世界中物理現象的存在與變化規律,這個方法運用于計算機中,就是用圖形方式表示計算機信息數據的含義,這種表示方法比符號方式表示信息數據的含義復雜,表示的信息量大,對計算機的硬件要求高。在計算機的多媒體信息表達方式中,圖形方式是處理過程最復雜的、也更符合人們的觀察習慣。故用圖形方式表達信息數據是一種表達信息數據含義的高級表達方式。
現代計算機的應用,不僅是數值計算與數據管理、還表現在工程設計中,人們用圖形方式來表達設計人員的設計思想、設計方法,以及設計作品的體系結構與功能等,它能充分表達設計人員的形象思維方式,這種表達方式不僅要求能用計算機表達出來,而且要求計算機能接受人們用這種方式向計算機輸入數學模型,這些都是計算機科學面臨的新課題。例如古代三國時期,諸葛亮造木牛流馬搬運糧草,史書雖然有文字記載其構造方法,但后人卻無法復原這種運輸工具。在沒有實物的情況下,只有用圖形方式表示該運輸工具的基本構造方法才能使后人復原這種古代的運輸工具。對于這類復合結構的復雜物體與運動形式即使用幾何數據對它詳細描述,若不借助圖形方式來表示其幾何形狀與結構等信息,人們對它的理解也會發生困難,這就是現實中用符號方式描述與圖形方式描述(抽象描述與形象描述)信息含義之間的差別。經驗告訴我們:在計算機中,信息數據的描述方法不同,往往導致編程的方法與效果也不同,若我們不進行這種方式的培訓,就會落后于計算機時代的發展。
4.4 掌握計算機配置的常用工具,是計算機應用的必要條件
傳統計算機學科的授課內容,并不直接講解如何進行科學計算等問題,而是為解決復雜的科學計算等問題提供軟件服務工具、方法與手段等。例如,從大量應用中(包括軟件編程),找準、預測用戶的需求;然后,從中抽象其具有共性的方法與難題,并把它們上升為理論,最后把這種理論開發成工具與系統方法,供用戶使用;操作系統軟件、匯編語言與編譯系統、高級語言與編譯系統、軟件工程的概念與方法、面向對象的軟件開發語言等都是這樣逐漸發展起來的;同樣的思路,為了計算機的應用,人們開發了辦公自動化軟件、數據庫系統軟件、網絡瀏覽器、三維圖形標準等各種工具,等等,用戶用這些工具能更高效率的開發應用程序。但是,這種授課方式卻把用計算機解決科學計算等應用問題留給具體的應用部門與用戶對應用軟件的具體開發,而課堂教學一般缺少這方面的系統實例,這也是導致目前計算機本科生應用軟件系統開發能力弱的原因之一。
但當計算機學科發展到用可視化軟件開發應用程序,而計算機的基礎教育卻忽視這種發展潮流與技術進步(現有的計算機公共核心課程沒有計算機圖形學的內容),這只能使我們的應用軟件的開發水平仍停留在上世紀70年代的字符表現水平上。因此,計算機本科教育中,使學生掌握計算機配置的常用工具是計算機應用的必要條件,這當然包括讓學生掌握計算機三維圖形標準這個有用工具。
4.5 計算機圖形學是嫁接多學科的橋梁,是科學研究思維能力訓練的延續與有效方法之一
大學的教育,除了要求學生掌握一門專業的系統基礎理論知識與應用外,關鍵是要掌握“根據任務與需要,學會從中發現問題、分析問題、提出解決問題的方法,建立解決問題的數學模型,直至用物理實驗或軟件編程的方法解決發現的問題”這種工作能力以及繼續學習深造的能力。只有這樣,計算機專業的學生才具備自我獲取知識和探索解決問題的能力,并使自己在新的工作崗位上做到既是計算機方面的專家,也是行業領域的專家助手,計算機專業的學生才能更好的服務于社會,造福于自己。
什么樣的課程能做到使他們具備自我獲取知識和探索解決問題的思維能力?傳統上大學物理與數學課程的教育是培養這一方法的有效途徑。因為物理學是蘊藏科學方法論的寶庫,物理不僅包含了物質世界的運動規律,同時蘊涵了豐富的哲理和研究、思維方法,對于培養創新思維有著獨特的優勢。這種獨特的優勢地位決定了大學物理在培養全面發展型人才中的特殊作用。顯然,知識的內容是有限的,而思維的創造力是無限的。物理學若干世紀以來的輝煌成就,使之創造了一整套行之有效的思想方法和研究方法,據專家統計,在300種通用的科學方法中,物理學包含170種,占56.7%。在大學物理課程中,學生可以接觸到實驗的方法、觀察的方法、科學抽象的方法、理想模型的方法、科學歸納的方法、類比的方法、演繹的方法、統計的方法、證明和反駁的方法、數學模型的方法;還可以學習到科學假設的方法、對稱性分析的方法以及定性和半定量的方法等等。同時,物理課程中還包含了無數著名科學大師許多深刻的物理思想和精妙的哲學思辯,尤其隨處可見前輩科學破除權威,敢于懷疑,大膽創新的許多生動鮮活的事例。這些閃耀人類智慧光芒的科學方法和科學精神,對提高學生的科學素養,培養他們的探索精神和創新意識,都會產生積極而深遠的影響,起到其他課程無法替代的作用[3]。
但傳統上計算機課程內容的安排中斷了高等數學與大學物理的學習與后續計算機課程學習的相互關系,一些搞計算機工作的人員會片面地認為不學物理與高等數學也一樣能學好計算機課程、一樣能從事計算機工作。而計算機圖形學課程的教學是嫁接大學一年級的高等數學、大學物理與三年級計算機專業教育的有效橋梁,是物理、數學知識在計算機應用領域中的具體應用。而計算機圖形學編程思想的訓練,特別是探索解決物理問題的數學模型的各種研制方法與思維能力,對各種行業面臨實際問題的解決與計算機應用軟件的編程具有典型的示范作用――即不同的應用領域、待解決的物理問題與性質不同,其建模解決問題的方法也不同。這種思維方式能告訴各專業學習計算機的學生:通過建立軟件系統、并用模型與仿真的方法指導工程實現(例如實現計算機圖形顯示)是工程應用中的典型方法之一(自動控制、通信、雷達系統工程中都是先用系統的數學模型與仿真方法確定系統工作參數后,再考慮其具體系統的物理實現),這種思維方式是目前計算機公共核心課程與“軟件工程”課程所缺少的。具備這種知識與能力,無疑為計算機專業的學生拓展新的發展方向、為計算機專業的學生向其他應用行業的轉行做好了思想準備。
4.6 計算機學科的發展是為了應用,而計算機圖形學是計算機科學計算等應用的典型代表
計算機科學與技術主要以計算機產業的形式出現在人們的日常生活中,是人們生活、學習與工作的有效計算、存儲查詢、娛樂等輔助工具之一。計算機科學除了要探討計算理論自身的發展之外,還要探討產業的發展,探討用戶的應用與需求;再強大的計算機、功能更全面的開發工具,也需要更復雜的計算機應用課題做支撐,這是計算機學科發展的兩條主線。計算機學科的核心教育僅局限于計算理論自身的發展是不完善的,而計算機圖形學在計算機動畫、3D游戲、圖形標準、計算機仿真(如天氣預報、大規模地質勘探數據處理、模擬原子彈爆炸與理論設計、模擬汽車碰撞、電磁輻射設計、計算流體力學等應用都需要用圖形方式表達其結果)、計算機輔助設計與制造等領域的大量應用,代表了當今計算機科學應用的發展水平,是推動計算科學向前發展的源動力之一,不能再被計算機教育界所忽視。
基于以上理由,相信計算機圖形學成為計算機公共核心課程是可行的!
未經授權,謝絕在公開的商業出版物中復制、引用本文之觀點與內容。
參考文獻
[1] 教育部高等學校計算機科學與技術教學指導委員會.“高等學校計算機科學與技術專業發展戰略研究報告暨專業規范(試行)”[M].北京:高等教育出版社,2006.
[2] 教育部高等學校計算機科學與技術教學指導委員會.“高等學校計算機科學與技術專業公共核心知識體系與課程”[M].北京:清華大學出版社,2007.
[3] 陳菊梅.論大學物理教學對學生創新思維的培養[J].高等教育研究學報,2006,(9).
[4] 石教英.需重視工程科學的可視化學習[J].國際學術動態,2005,(3).
[5] 蔣彥等.關于數學建模思想融入課程教學的研究[J].高等教育研究學報,2005,(3).
[6] 蔣宗禮.認識計算學科分類培養優秀人才[J].計算機教育,2006,(5).
[7] 魏海濤.計算機圖形學(第2版)[M].北京:電子工業出版社,2007.
[8] 趙致琢.計算科學導論(第三版)[M].北京:科學出版社,2004.
關鍵詞:溝壑密度;溝壑特征;影響因素;延河流域
中圖分類號 P931.6 文獻標識碼 A 文章編號 1007-7731(2016)14-0108-04
Abstract:In order to study the statistical characteristics of gully density in the Yanhe river basin,this paper based on DEM of Yanhe river basin and ArcGIS software,using hydrological analysis method and mean value change-point method to extract the best gully system,and analyzed gully density in Excel software.The results show that:the total gully density in study area is 1.16km/km2,and the trend of gully density in partition areas is D1area>D2area>D3area>D4area;in different partitions,the average lengths of gullies and gully density with different classes have great differences;the gullies with same classes in different partition areas have different space distribution,and spatial heterogeneity of gully density also exists;these gully density characteristics are the results of landform factors and soil properties and so on.The study will help to reveal the spatial differences of soil erosion,and understand deeply the influence factors of gully density,then provide theoretical basis for coming up with integrated control measures of soil and water conservation pertinently.
Key words:Gully density;Gully characteristics;Influence factors;Yanhe river basin
土壤侵蝕使土地資源遭到破壞,土壤肥力和質量下降,已成為全球性的重大環境問題之一[1]。定量評價區域的土壤侵蝕量、土壤侵蝕強度及其空間分布特征,對于采取相應措施減少水土流失、保護和合理利用土地資源具有重要意義[2]。土壤侵蝕強度除了可用土壤侵蝕模數和土壤侵蝕厚度評價外,還可以采用溝壑密度來定量描述。溝壑密度可用于描述地面切割破碎程度,以單位面積上的溝谷總長度來度量[3]。溝壑密度越大,地面越破碎,土壤侵蝕程度越大[4]。目前,關于溝壑密度的提取方法,主要有外業調查法、遙感圖像處理法、數字高程模型(DEM)法、地形圖量算法等[5-6]。隨著數字高程模型被廣泛應用于地形特征提取、流域水系分析等數字地形分析領域[7-8],溝壑密度、溝壑切割深度等溝壑特征參數以及坡度、坡向、流域邊界、溝谷網絡、溝谷節點等地形特征參數皆可通過DEM提取[9-10],操作簡便且提取精度較高,不失為一種高效處理數據的方法。
黃土高原是我國土壤侵蝕最嚴重、生態環境最脆弱的地區[11],地面溝壑縱橫,支離破碎,切割程度極大,因而該區城溝壑特征的研究一直是土壤侵蝕研究領域的重點。本文以延河流域為研究對象,按高程大小將研究區劃分為4個小區,對比分析不同小區溝壑密度的統計學特征。研究結果不僅助于揭示土壤侵蝕的空間差異性,而且可深入理解溝壑密度的影響因素,從而為有針對性地提出水土保持綜合防治措施提供理論依據。
1 研究區概況
延河,黃河一級支流,全長286.9km,源于白于山附近,由西北向東南注入黃河,流域面積7 725km2,位于36°21′~37°19′N,108°38′~110°29′E。流域年平均氣溫為8.8~10.2℃,年平均降雨量為520mm,且集中于6―9月。土壤類型以黃綿土為主,質地均一,土質疏松,抗侵蝕能力差;地勢西北高、東南低,形態表現為以下3種類型,即:上游為峁梁丘陵溝壑區,梁多而峁小,河床比降大,植被稀少,侵蝕強烈;中游為峁狀丘陵溝壑區,梁窄峁小,河谷寬闊,階地發育;下游為破碎塬區,塬面窄小,沖溝發育。總體上黃土丘陵溝壑區面積約占90%,水土流失嚴重。
2 數據與方法
2.1 數據獲取 本文以地理空間數據云網站的DEM數字高程模型數據為基礎數據源,以WGS_1984_UTM_Zone_49N為空間參考,空間分辨率為30m×30m。
2.2 數據處理
2.2.1 延河流域的生成 在ArcGIS10.2軟件中首先對DEM源數據進行拼接處理,利用水文分析功能生成矢量河網數據,分水嶺工具生成集水流域,選擇、導出并合并延河流域干流及其支流所流經區域,利用合并后的延河流域面文件裁剪DEM源數據,獲得延河流域DEM數據,如圖1所示。
2.2.2 溝壑密度計算方法 溝壑密度也稱溝谷密度或溝道密度,是指單位面積內溝壑的總長度,單位一般以km/km2表示,數學表達式為:
[D=LA]
式中:D指溝壑密度;∑L指研究區域內的溝壑總長度(單位:km);A指特定研究區域的面積(單位:km2)[12]。
2.2.3 延河流域溝谷網絡提取 在延河流域溝谷網絡提取過程中,匯流閾值的大小直接決定了溝壑密度的大小,故數據處理的關鍵在于設置合理的閾值。為了確定延河流域溝谷網絡的最佳閾值,在ArcGIS10.2軟件中建立水文分析模型,分別選取100、200、300…2 300、2 400、2 500等一系列閾值,運用圖解建模的方法依次運行模型(具體模型見圖2),當閾值位2 500時流域溝壑總長度趨于穩定。由圖3可看出,隨著匯流閾值的增加,流域溝壑總長度隨閾值增加總體呈冪函數減小,相關系數R2為0.999 4,擬合度較高,通過統計學檢驗。
為了使提取的溝谷網絡更加接近真實溝谷形態,基于均值變點分析法,確定曲線由陡變緩的唯一點,即為最佳閾值點。由圖4可知,當匯流閾值為500時,所提取的溝谷網絡最接近真實溝谷形態,此時流域溝壑總長度為8 903.55km。
3.1 溝壑密度 研究區按高程大小可劃分為4個分區,即延河中游河谷平原區(HD2區>D3區>D4區的特點,而第2等級溝谷的溝壑密度為D2區>D1區>D3區>D4區。
[m]
圖5 延河流域溝壑密度分布
從不同分區不同等級的溝谷平均長度來看,在不同分區中,隨著溝谷等級的增大,不存在明顯的規律性。1區以第3級溝谷平均長度最長,為1.15km,第1級和第2級溝谷的平均長度相差不大,第7級的溝谷長度最長,為14.65km;2區除2、5、6級溝谷外,其余溝谷平均長度隨著溝谷等級的增大而減小,溝谷長度除6級溝谷外隨溝谷等級的增大也呈減小趨勢,2級溝谷的平均長度最大,為0.92km;3區溝谷長度及溝谷最大值均隨著溝谷等級的增大遞減,平均長度以1級溝谷最大,為0.81km,4級溝谷最小,為0.62km;4區1、2級溝谷的平均長度分別為0.71km和0.56km,1級溝谷長度為2級溝谷長度的10倍左右。
同一等級的溝谷,在4個分區中的空間分布也不相同(圖5)。7級溝谷即溝谷主干有且僅有1條,僅存在于1區和2區范圍內,主要分布于2區,在2區的溝谷長度為1區的10倍之多;6級溝谷即溝谷的一級支流,僅有2條且僅分布于2區,溝谷總長度為73.93km,兩條溝谷的長度分別為24.65km和49.28km;5級溝谷有7條,分布于2區和3區,其中有4條完全分布于2區,3條既分布于2區,又分布于3區,在2區的溝谷長度為168.95km,占5級溝谷總長度的84.09%;4級溝谷共38條,仍主要分布于2區,有20條完全分布于2區,其中分布于2區的溝谷長度為438.50km,3區的溝谷長度為103.06km,2區溝谷長度是3區的4.25倍;3級溝谷分布于1區、2區和3區,以2區分布最多,其溝谷總長度為1 168.26km,分布于2區的溝谷長度為826.94km,占該級沖溝總長度的70.78%;其余1、2級溝谷在4個分區中均有分布,為整個溝壑系統的主體部分,其中,1、2級溝谷在2區中的分布均大于3區,其溝谷長度分別為2 790.95km和1 451.34km,分別占該級溝谷總長度的61.79%和64.56%,二者在1區中的分布均最少。總體上看,研究區各級溝谷主要分布于2區和3區,且分布于2區的溝谷數量及溝谷長度均最大,其溝壑密度也較大,為1.66km/km2,表明研究區侵蝕最強烈的地區位于2區,是該流域的水土流失重點防治區域;雖1區溝壑密度最大,但由于其面積最小,且溝谷級別類型較少,且其屬于延河中游河谷平原區,呈條帶狀沿干流分布,主要地貌類型為河流階地且階地面寬坦[13],故其地面破碎度較小,不作為水土保持防治的重點區域。
3.2 影響因素
3.2.1 地貌形態 地貌是組成自然環境的基本要素,一個地區的土壤侵蝕差異受到不同地貌形態的制約。一般來說,平原地區以堆積為主,山區和丘陵地區則以侵蝕為主[12]。溝壑密度的大小主要取決于溝谷的發育程度,在研究面積一定的條件下,其與溝谷總長度成正比。黃土高原的地貌類型主要有塬、梁、峁及各類溝谷,黃土塬部分地形較平坦,侵蝕較弱;梁峁區主要發育細溝、淺溝、切溝等多種形態的溝谷,且具有坡度大、坡度長、臨空面大的特點,有利于水流侵蝕和重力侵蝕的發展,故為黃土高原侵蝕最強烈、地形最破碎的地區[12];山地區則多發育深切沖溝,切割深度較大,且大多已達侵蝕基準面,下切侵蝕與溯源侵蝕過程受到抑制,即溝谷發育過程受到限制,故雖土壤侵蝕強度較大,但地形破碎度較小,溝壑密度較小。研究區4個小區可進一步劃分為平原區(1區)、梁峁區(2、3區)和山地區(4區)。梁峁區的溝壑密度為2.43km/km2,較山地區(0.18km/km2)大,且山地區僅發育1、2級溝谷,溝谷類型較單一,梁峁區發育1~7級溝谷,溝谷類型復雜多樣,溝谷發育程度大,地形破碎,是水土保持綜合防治的重點區域。
3.2.2 土壤性質 土壤性質是影響溝谷發育的主要因素之一,在其他條件一定的情況下,地表組成物質越疏松,溝谷越發育。延河流域主要的土壤類型為黃綿土,土體結構疏松,有機質含量低,易受侵蝕,巖性主要為中生代的砂巖、砂頁巖。黃土的這些性質表現為其機械組成由西北向東南逐漸變細,物質越細、抗蝕能力越(下轉116頁)(上接110頁)強,故地表組成物質由西北向東南抗蝕能力增強[14],從而影響了溝壑密度的空間分異。
4 結論與討論
通過以上分析可知,研究區各分區溝壑密度呈現出D1區>D2區>D3區>D4區的特點,3區和4區隨溝谷等級的增大,溝壑密度呈減小趨勢。1區7級溝谷的溝壑密度最大,為2.02km/km2,2區1級溝谷溝壑密度最大,為0.79km/km2。研究區總溝壑密度為1.16km/km2,景可[14]的研究結果表明,不同比例尺地形圖上,以不同起算點研究同一流域的河網密度,大小往往可相差5倍左右,其中延河流域溝壑密度大小介于0.41~1.45km/km2,與本文的研究結論一致。
本文通過對延河流域按高程進行分區,并且對不同分區的溝壑密度統計學特征進行分析,有助于認識不同地貌類型下溝壑密度的空間分異特征,從而進一步地反映了地表破碎度即土壤侵蝕強度的差異性,為提出有針對性的水土保持綜合防治對策提供理論依據。前人對黃土高原地區溝壑密度的研究多集中于其宏觀上的空間規律性以及不同流域、不同尺度地域之間溝壑密度特征的對比分析,而對同一流域按不同標準劃分分區,對比不同分區溝壑密度特征及空間分異性,揭示其影響因素的研究則較少,因此本研究具有一定的理論意義。
參考文獻
[1]趙曉麗,張增祥,周全斌,等.中國土壤侵蝕現狀及綜合防治對策研究[J].水土保持學報,2002,16(01):40-43,46.
[2]王曉慧,陳永富,陳爾學,等.基于遙感和GIS的黃土高原中陽縣土壤侵蝕評價[J].山地學報,2011,29(4):442-448.
[3]韋中亞,周貴云,羅萬勤.一種基于數學形態學的溝壑密度提取算法[J].地理學與國土研究,2001,17(2):24-27.
[4]代靈燕.黃土高原嚴重水土流失區多尺度DEM地形因子分析[D].西安:陜西師范大學,2012.
[5]黨福江,戈素芬.溝壑密度調查應采取水文網絡法[J].水土保持通報,1998,18(6):34-36.
[6]郭蘭勤,丑述仁.基于DEM不同路徑算法的溝壑密度提取[J].地下水,2011,33(6):145-147.
[7]李麗,郝振純.基于DEM的流域特征提取綜述[J].地球科學進展,2003,18(2):251-256.
[8]謝順平,都金康,羅維佳,等.基于DEM的復雜地形流域特征提取[J].地理研究,2006,25(1):96-102,87.
[9]朱紅春,劉海英,張繼賢,等.基于DEM的流域地形因子提取與量化關系研究――以陜北黃土高原的實驗為例[J].測繪科學,2007,32(2):138-140,182.
[10]李俊,湯國安,張婷,等.利用DEM提取陜北黃土高原溝谷網絡的匯流閾值研究[J].水土保持通報,2007,27(2):75-78.
[11]陳伯讓.黃土高原水土保持綜合治理的實踐[J].中國水土保持,2005(12):3-4.
[12]吳良超.基于DEM的黃土高原溝壑特征及其空間分異規律研究[D].西安:西北大學,2005.
[13]孫虎.陜西延河流域地貌組合類型的模糊聚類劃分[J].陜西師范大學學報(自然科學版),1996,24(4):83-88.