前言:一篇好文章的诞生,需要你不断地搜集资料、整理思路,本站小编为你收集了丰富的数学建模数据处理方法主题范文,仅供参考,欢迎阅读并收藏。
关键词:软测量;神经网络;软件设计
中图分类号: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.