热门关键词:

单形替换法动态可视化技术研究

  • 该文件为pdf格式
  • 文件大小:495.88KB
  • 浏览次数
  • 发布时间:2014-08-23
文件介绍:

本资料包含pdf文件1个,下载需要1积分

《机械优化设计》是研究将最优化原理和计算机技术应用于工程设计的-门学科。该课程是机械设计制造及相关专业的重要基次程之-,其基本目标是使学生树立优化设计的思想并掌握基本的算法原理l1。但是,《机械优化设计》课程教学中最大的困难是学生无法看到教师在课堂上用流程图表示的算法的动态执行过程,而必须通过大脑中的想象来模拟算法的执行,困难很大。事实上,人类80%以上的信息是通过视觉获得的口。因此,若能够将算法的执行过程用图形和动画的方式描述出来 ,则对于学生学习该课程是很有帮助的。为了解决这-问题,人们开始研究与教学相关的可视化技术,将不直观的信息转换成直观的图形或图像并显示在计算机屏幕上[31∩视化辅助教学软件可以展现算法的执行过程,进而帮助学生更好的理解算法内容;而且形象生动的可视化软件不像教材般的枯燥乏味,能够极大的吸引学生的注意力,激发学生的学习兴趣。目前,算法可视化技术已经在《计算机图形学》、《数据结构》等课程教学中得到应用,取得了不错的效果[2-6t。

以《机械优化设计》中-种典型的算法-单形替换法为例,研究该算法的动态可视化技术,为《机械优化设计》中其他优化算法的可视化实现做出探索和尝试。

2单形替换法在优化算法中,搜索方向的确定方法通常分为两类:(1)利用函数导数的信息来建立搜索方向,如最快下降法、共轭梯度法、牛顿法等;(2)利用若干点处函数值的大小关系来确定搜索方向,如单来稿日期:2012-04-14基金项目:河南势技攻关计划项目(102102210127);郑州市科技攻关计划项目(2010GYXM481);河南工业大学博士基金项目(2010BS029)作者简介:武照云,(1981-),男,辽宁铁岭,副教授,博士,主要研究方向:数字化设计第2期 武照云等:单形替换法动态可视化技术研究 205形替换法、复合形法等。

单形替换法的基本原理是 :利用单纯形(维空间中具有个顶点的多面体)的顶点,计算其函数值并加以比较,从中确定有利的搜索方向和步长,找到-个较好的点来取代单纯形中较差的点,组成新的单纯形来代替原来的单纯形。然后,重复上述步骤,使新单纯形不断向目标函数的极小点靠近,直到搜索到极小点为止。

3动态可视化技术原理3.1原理概述选取二维空间中的单纯形(即三角形)作为对象,利用面向对象的程序设计语言VB作为软件开发工具。单形替换法动态可视化技术的实现原理为:运用 VB编制单形替换法的迭代计算程序,使之能够完成无约束优化问题的求解计算。在迭代计算过程中,将单纯形三个顶点的坐标值作为关键特征变量进行保存,进而得到-个顶点坐标矩阵 s [s。,S ,S ,S ,S ,S ],式中:,广迭 代次数;向量s -顶点A的横坐标 在每次迭代中的数值;向量.s厂顶点A的纵坐标 在每次迭代中的数值;向量s广顶点B的横坐标 在每次迭代中的数值;向量 S厂 顶点 B的纵坐标在每次迭代中的数值;向量s厂预点C的横坐标 在每次迭代中的数值;向量 s -顶点 C的纵坐标 Y 在每次迭代中的数值。

由此可见,矩阵的列对应的是不同顶点的坐标值,矩阵的行对应的是迭代次数。因此,在进行可视化演示处理时,可对该矩阵按行循环遍历 ,每读取-行数据,便可得到该次迭代中单纯形的各顶点坐标值。再结合算法的特性与流程,便可很容易绘制出单纯形在坐标系中的位置和姿态。再对循环遍历的时间间隔进行适当控制,便可呈现出动态连续的动画效果。当矩阵遍历结束时,可视化的求解过程演示便终止。

3.2单形替换法的算法实现基于教学演示的目的,目标函数选为厂( )( -5) 4(,-6) 。

单形替换法的VB计算步骤如下:(1)用户输入单纯形三个顶点,然后由程序读取其坐标值,构造初始单纯形;(2)计算各顶点的函数值,并比较大小,确定最好点 最差点 H和次差点 XG;(3)检验是否达到收敛条件:I ) l1. ,若已达到,则最优点 X-X ,否则继续计算;(4)计算札和 。的中点x-O.5(x 慨。),然后计算反射点 产2xz-x 及其函数值。

(5)比较 与 的大小,根据以下几种情况进行不同处理 :①若 ,则取扩张点 ( )。如果 娇,则 ,厂 ,构成新单纯形 。否则 ,厂 ,,构成新单纯形 ,返回(2);②若A<-fr

3.3迭代计算过程的存储根据2.1节所述,在单形替换法的计算过程中,需要存储的参数变量有: 、 、X 、Y 、X 、Y。。这六个参数变量的存储次数和迭代次数相同,都是不确定的,所以在VB中无法使用固定大小的二维数组进行存储,针对该问题 ,可以使用 VB中的动态数组技术来解决,以适应数据量动态变化的特点。部分关键 VB代码如下:ReDims(5,O) 定义动态数组D0Whi1e samsum1 更新迭代次数ReDim Preserve s(5,sam)As Single 重新声明数组s(o,sum)xl:S(1,sum) yl:S(2,sam)x2:s(3,sam)y2:S(4,sam)x3:s(5,slam)y3 存储数据Loop3.4演示动画的生成根据 3.1节所述,具体的实现步骤为:(1)在绘图区域重新定义坐标系,设置绘图区域的左上角和右下角的坐标;(2)循环遍历顶点坐标矩阵.s ;(3)清除绘图区域内的全部内容,以便不影响下-幅画面的绘制;(4)绘制目标函数等值线图,目标函数,( ):( -5)z4(,-6) 是-个椭圆函数,图形为对称结构,所以需要分上下两部分来分别绘制。同时,为了达到等值线图的效果,需要绘制若干不同厂值的函数线图;(5)在椭圆中心最优点处绘制-个微小的实心圆,以突出显示最优点;(6)绘制单纯形(三角形);(7)设置延时时间;(8)N断迭代是否结束,若未结束,则返回(2),继续遍历;若已结束,则程序退出。部分关键 VB代码如下:For i0 To sum 遍历顶点坐标矩阵Picture1.Cls 清屏Picture1.FilStyle0 设置填充模式Picture1.Circle(5,6),O.08 绘制最优点调用函数,绘制目标函数等值线图Cal DrawFunetion(1)Cal1 OrawFunetion(5)绘制单纯形(三角形)Picture1.Line(s(o,i),S(1,i))-(s(2,i),s(3,i)),vbRedPicture1.Line(s(2,i),s(3,i))-(S(4,i),s(5,i)),vbRedPieture1.Line(S(4,i),s(5,i))-(s(0,i),S(1,i)),vbRed设置延时 3s-使用 Windows API函数TimeltimeGetTimeWhile timeGetTime

正在加载...请等待或刷新页面...
发表评论
验证码 验证码加载失败