篱笆问题——
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ISIGHT 初级培训教材(初稿)大图标版
1、 ISIGHT 简介
首先,我们介绍一下ISIGHT 的结构组成。如图1所示,ISIGHT 由以下四个功能模块组成:通过过程集成模块,可以集成相应的商业或自编程序,并通过问题定义模块将整个优化问题确定好,在求解过程中应用求解监视器对优化过程和效果进行实时显示,直至最终的优化结果。以上所有的模块都是在任务管理模块的控制协调之下完成的。为了更形象的解释各模块的功能和ISIGHT 的操作,我们以一个围栏问题为例加以说明。
图 1 ISIGHT 主要组成
2、 围栏问题
下面我们以最简单、最基础的围栏问题作为优化案例来说明ISIGHT 的基本操作步骤。 问题描述:
一个农夫用一个周长为400
米的篱笆来围一块矩形的菜地,
他不知道如何选择菜地的长和
宽来保证所谓菜地面积最大(图
2)。那么这个问题就可以用数学
语言描述为:
设矩形 长为L ,宽为W 。
面积为Area
则 在约束 2*(L+W )=400 的条件下
使得 Area=L*W=maximum
根据初等代数学的知识,我们可以将长L 替换为W ,即有约束可以知道L=200-W 代入 Area 的计算公式中,可知 Area=(200-W )*W ,由一元二次函数的性质,可知当W=-b/(2a)=100时,Area 取得最大值10000,即当菜地的形状为正方形时,取得的面积最大。 下面通过ISIGHT 来找到这个最优点,并与理论结果比较一下。
1、确定问题,优化变量,计算方法和优化目标
将培训光盘里Training_CD\LabFiles\Windows\isightTrn\Fence1目录及其目录下的所有文件拷贝至D :盘的根目录下,该目录中包含着整个优化计算的内容。这里面的优化变量为矩形的长和宽,优化目标为面积,优化的目的是使面积最大化。为此,建立一个输入文件FenceIn.txt ,一个输出文件FenceOut.txt 。和一个可执行文件Fence.exe 来进行面积的计算。各个文件的内容如下:
FenceIn.txt :
Fence Input File
The length is: 8
The width is: 6
FenceOut.txt:
Fence Output File
The area is: 48.000000
The perimeter is: 28.000000
Fence.c:
fscanf(fp,"Fence Input File\n"); // 数据输入语句
fscanf(fp,"The length is: %lf\n", &Length); //读入长度
fscanf(fp,"The width is: %lf\n", &Width); //读入宽度
Area = Length * Width; //计算面积
Perimeter = 2 * Length + 2 * Width; //计算周长
fprintf(fp,"Fence Output File\n"); //数据输出语句
fprintf(fp,"The area is: %f\n",Area); //输出面积
fprintf(fp,"The perimeter is: %f\n",Perimeter); //输出周长
程序编译成功后,便可以从输入文件中读取长和宽,计算出周长和面积,并将其输出至输出文件。这个过程,即可以认为是一个简单的数值模拟过程,剩下的步骤就是如何将其集成至ISIGHT程序中。
2、ISIGHT集成步骤:
:启动ISIGHT软件。Windows用户点击开始->程序->isight7.1->isight,isight程 Step1
序即被启动,启动界面如下图所示:
:点击integrate按钮,ISIGHT跳出如下图的集成对话框,同时点击Simcode按 Step2
钮,在右方的图框中会显示出Simcode的图框,集成操作将主要在这个框里面进行。
Step3 :文件的说明与解析。下一步的操作主要包括以下几个方面:定义执行程序;定义输入输出文件;说明调节参数和输出参数。首先点击Simcode框左方的,Simcode框将
会出现三个框:输入文件框,执行程序框和输出文件框。
点击输入对话框左方的,程序会弹出如上图所示的对话框,其中,Temperate File 里
面说明的是模版文件及其路径,Input File里说明的输入文件及其路径。文件及路径的说明
可以通过点击右方的进行直接选择,也可以直接输入:D:\fence1\inputtemplate.txt 和D:\fence1\input.txt。然后点击OK推出对话框。其中的模版文件与输入文件完全相同,只需
要改变文件名即可。
点击input0图框左方的,系统会跳出文件解析对话框:
在文件解析框右边的文本框中,通过鼠标选择第二行的文字:The Length is:,
注意:选择时还要考虑到空格,一定保证鼠标高亮的位置在8之前。这时系统会弹出Select
Type of Action对话框。点击apply按钮。
File parser 会出现如下显示。
在定义变量的对话框中,选中replace next Word 标签,并在 With对话框中输入Length,点击OK,系统显示如图所示
对第三行进行类似的重复操作,只是在定义变量对话框的with栏内填写的是Width,最终的显示如图所示:
保存并退出该对话框。
定义执行程序,回到Simcode对话框,点击,并在弹出的对话框中的program中定义可执行程序,此操作可以通过file..按钮直接找到。点击OK后,左边的program0应改变为
fence.exe