资源描述:
《lingo解非线性规划》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、LPQPNLPIP全局优化(选)ILPIQPINLPLINGO软件的求解过程LINGO预处理程序线性优化求解程序非线性优化求解程序分枝定界管理程序1.确定常数2.识别类型1.单纯形算法2.内点算法(选)1、顺序线性规划法(SLP)2、广义既约梯度法(GRG)(选)3、多点搜索(Multistart)(选)三、LINGO软件的基本使用方法1、Lingo入门2、在Lingo中使用集合3、运算符和函数4、Lingo的主要菜单命令1、Lingo入门LINGO的界面LINGO软件的主窗口(用户界面),所有其他窗口都在这个窗口之内。模型窗口(ModelWindow
2、),用于输入LINGO优化模型(即LINGO程序)。状态行(最左边显示“Ready”,表示“准备就绪”)当前时间当前光标的位置简单程序举例:Lindo程序:max2x+3yst4x+3y<103x+5y<12endLingo程序:MODEL:max=2*x+3*y;4*x+3*y<10;3*x+5*y<12;end请大家仔细区分它们的不同。求z=2x+3y在约束条件4x+3y<=10,3x+5y<=12下的最大值这是lingo程序最基本的格式之一在lingo模型窗口中输入右框中的程序,并保存为LG4格式文件,这是LINGO格式的模型文件,保存了模
3、型窗口中所能够看到的所有文本和其他对象及其格式信息;在LINGO中使用LINDO模型运行程序:点“LINGO菜单Solve命令”或按ctrl+s运行或用鼠标点在LINGO中使用LINDO模型运行状态窗口求解器(求解程序)状态框当前解的状态:"GlobalOptimum","LocalOptimum","Feasible","Infeasible“(不可行),"Unbounded“(无界),"Interrupted“(中断),"Undetermined“(未确定)解的目标函数值④运行程序的LINGO报告窗口(如下图)在LINGO中使用LINDO模型注:L
4、INGO不询问是否进行敏感性分析,敏感性分析需要将来通过修改系统选项启动敏感性分析后,再调用“REPORT
5、RANGE”菜单命令来实现。现在同样可以把模型和结果报告保存在文件中。一个简单的LINGO程序例直接用LINGO来解如下二次规划问题:输入窗口如下:程序语句输入的备注:max=98*x1+277*x2-x1^2-0.3*x1*x2-2*x2^2;LINGO总是根据“MAX=”或“MIN=”寻找目标函数。@gin(x1);@gin(x2);限定变量取整数值的语句为“@GIN(X1)”和“@GIN(X2)”LINGO中函数一律需要以“@”开头。@BI
6、N(x)—限定变量x为0/1变量函数@FREE(x)—设定变量x的取值范围为实数。注意:如果0/1变量的个数很多,还可以采用循环语句设定。选择全局求解的方法:点Lindo菜单optionsGlobalSolver,在useGlobalSolver前打钩。点save,应用,ok.然后运行这个程序输出结果:最优整数解X=(35,65)最大利润=11077.5一个简单的LINGO程序LINGO的基本用法的几点注意事项LINGO中不区分大小写字母;变量和行名可以超过8个字符,但不能超过32个字符,且必须以字母开头。用LINGO解优化模型时已假定所有变量非负
7、(除非用限定变量取值范围的函数@free或@sub或@slb另行说明)。变量可以放在约束条件的右端(同时数字也可放在约束条件的左端)。但为了提高LINGO求解时的效率,应尽可能采用线性表达式定义目标和约束(如果可能的话)。语句是组成LINGO模型的基本单位,每个语句都以分号结尾,编写程序时应注意模型的可读性。例如:一行只写一个语句,按照语句之间的嵌套关系对语句安排适当的缩进,增强层次感。以感叹号开始的是说明语句(说明语句也需要以分号结束))。课堂练习:求解下列模型二、集合的基本用法和LINGO模型的基本要素理解LINGO建模语言最重要的是理解集合(Se
8、t)及其属性(Attribute)的概念。例SAILCO公司需要决定下四个季度的帆船生产量。下四个季度的帆船需求量分别是40条,60条,75条,25条,这些需求必须按时满足。每个季度正常的生产能力是40条帆船,每条船的生产费用为400美元。如果加班生产,每条船的生产费用为450美元。每个季度末,每条船的库存费用为20美元。假定生产提前期为0,初始库存为10条船。如何安排生产可使总费用最小?DEM,RP,OP,INV对每个季度都应该有一个对应的值,也就说他们都应该是一个由4个元素组成的数组,其中DEM是已知的,而RP,OP,INV是未知数。第一季度第二季
9、度第三季度第四季度DEM:需求量(为已知)40607525RP:正常生产的产量OP:加班生产的