lingo解非线性规划PPT课件下载推荐.ppt
- 文档编号:15590733
- 上传时间:2022-11-06
- 格式:PPT
- 页数:138
- 大小:1.51MB
lingo解非线性规划PPT课件下载推荐.ppt
《lingo解非线性规划PPT课件下载推荐.ppt》由会员分享,可在线阅读,更多相关《lingo解非线性规划PPT课件下载推荐.ppt(138页珍藏版)》请在冰豆网上搜索。
end请大家仔细区分它们的不同。
请大家仔细区分它们的不同。
求求z=2x+3y在约束条件在约束条件4x+3y=10,3x+5y=12下的最大值下的最大值这是这是lingo程序最基本的格式之一程序最基本的格式之一在在lingo模型窗口中输入右框中的程序,并模型窗口中输入右框中的程序,并保存为保存为LG4格式文件格式文件,这是这是LINGO格式的模型文件,保存了模型窗口中所能够看到的格式的模型文件,保存了模型窗口中所能够看到的所有文本和其他对象及其格式信息;
所有文本和其他对象及其格式信息;
在在LINGOLINGO中使用中使用LINDOLINDO模型模型优优化化建建模模运行程序运行程序:
点点“LINGO菜单菜单Solve命令命令”或或按按ctrl+s运行运行或或用鼠标点用鼠标点在在LINGOLINGO中使用中使用LINDOLINDO模型模型优优化化建建模模运行状态窗口运行状态窗口求解求解器器(求求解程解程序序)状状态框态框当前解的状态当前解的状态:
GlobalOptimum,LocalOptimum,Feasible,Infeasible“(不可行不可行),Unbounded“(无界无界),Interrupted“(中断中断),Undetermined“(未确定未确定)解的目标函数值解的目标函数值优优化化建建模模运行程序的运行程序的LINGO报告窗口(如下图)报告窗口(如下图)在在LINGOLINGO中使用中使用LINDOLINDO模型模型注:
注:
LINGO不询问是否进行敏感性分析,敏感性分析不询问是否进行敏感性分析,敏感性分析需要将来通过修改系统选项启动敏感性分析后,再调需要将来通过修改系统选项启动敏感性分析后,再调用用“REPORT|RANGE”菜单命令来实现。
现在同样可以菜单命令来实现。
现在同样可以把模型和结果报告保存在文件中。
把模型和结果报告保存在文件中。
优优化化建建模模一个简单的一个简单的LINGO程序程序例例直接用LINGO来解如下二次规划问题:
输入窗口如下:
优优化化建建模模程序语句输入的备注:
程序语句输入的备注:
max=98*x1+277*x2-x12-0.3*x1*x2-2*x22;
LINGO总是根据总是根据“MAX=”或或“MIN=”寻找目标函数。
寻找目标函数。
gin(x1);
gin(x2);
限定变量取整数值的语句为限定变量取整数值的语句为“GIN(X1)”和和“GIN(X2)”LINGO中函数一律需要以中函数一律需要以“”开头。
开头。
BIN(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解优化模型时已假定所有变量非负(除非用限定变量取值范围的函数free或sub或slb另行说明)。
变量可以放在约束条件的右端(同时数字也可放在约束条件的左端)。
但为了提高LINGO求解时的效率,应尽可能采用线性表达式定义目标和约束(如果可能的话)。
语句是组成LINGO模型的基本单位,每个语句都以分号结尾,编写程序时应注意模型的可读性。
例如:
一行只写一个语句,按照语句之间的嵌套关系对语句安排适当的缩进,增强层次感。
以感叹号开始的是说明语句(说明语句也需要以分号结束))。
优优化化建建模模课堂练习:
求解下列模型优优化化建建模模二、集合的基本用法和二、集合的基本用法和LINGO模型的基本要素模型的基本要素理解理解LINGO建模语言最重要的是理解集合(建模语言最重要的是理解集合(Set)及其)及其属性(属性(Attribute)的概念。
)的概念。
优优化化建建模模例例SAILCO公司需要决定下四个季度的帆船生产量。
下公司需要决定下四个季度的帆船生产量。
下四个季度的帆船需求量分别是四个季度的帆船需求量分别是40条,条,60条,条,75条,条,25条,条,这些需求必须按时满足。
每个季度正常的生产能力是这些需求必须按时满足。
每个季度正常的生产能力是40条帆船,每条船的生产费用为条帆船,每条船的生产费用为400美元。
如果加班生产,美元。
如果加班生产,每条船的生产费用为每条船的生产费用为450美元。
每个季度末,每条船的美元。
每个季度末,每条船的库存费用为库存费用为20美元。
假定生产提前期为美元。
假定生产提前期为0,初始库存为,初始库存为10条船。
如何安排生产可使总费用最小?
条船。
DEM,RP,OP,INV对每个季度都应该有一个对应的值,也就说他们都应该是一对每个季度都应该有一个对应的值,也就说他们都应该是一个由个由4个元素组成的数组,其中个元素组成的数组,其中DEM是已知的,而是已知的,而RP,OP,INV是未知数。
是未知数。
第一季度第一季度第二季度第二季度第三季度第三季度第四季度第四季度DEM:
需求量需求量(为已知为已知)40607525RP:
正常生产的产量正常生产的产量OP:
加班生产的产量加班生产的产量INV:
库存量库存量总费用:
四个季度的(生产费用总费用:
四个季度的(生产费用+加班费用加班费用+库存费用)库存费用)设设优优化化建建模模问题的模型问题的模型(可以看出是可以看出是LP模型模型)目标函数是所有费用的和目标函数是所有费用的和约束条件主要有两个:
约束条件主要有两个:
1)能力限制:
)能力限制:
2)产品数量的平衡方程:
)产品数量的平衡方程:
加上变量的非负约束加上变量的非负约束正常生产的产量正常生产的产量加班产量加班产量库存量库存量优优化化建建模模注:
LINDO中没有数组,只能对每个季度分别定义变量,如正常产量就要有RP1,RP2,RP3,RP44个变量等。
写起来就比较麻烦,尤其是更多(如1000个季度)的时候。
记四个季度组成的集合QUARTERS=1,2,3,4,它们就是上面数组的下标集合,而数组DEM,RP,OP,INV对集合QUARTERS中的每个元素1,2,3,4分别对应于一个值。
LINGO正是充分利用了这种数组及其下标的关系,引入了“集合”及其“属性”的概念,把QUARTERS=1,2,3,4称为集合,把DEM,RP,OP,INV称为该集合的属性(即定义在该集合上的属性)。
优优化化建建模模QUARTERS集合的属性DEMRPOPINVQUARTERS集合2341集合及其属性集合及其属性优优化化建建模模集合元素及集合的属性确定的所有变量集合元素及集合的属性确定的所有变量集合QUARTERS的元素1234定义在集合QUARTERS上的属性DEMDEM
(1)DEM
(2)DEM(3)DEM(4)RPRP
(1)RP
(2)RP(3)RP(4)OPOP
(1)OP
(2)OP(3)OP(4)INVINV
(1)INV
(2)INV(3)INV(4)优优化化建建模模LINGO中定义集合及其属性中定义集合及其属性LP模型在模型在LINGO中的一个典型输入方式中的一个典型输入方式以以“MODEL:
”开始开始以以“END”结结束束集合定义部分从集合定义部分从(“SETS:
”到到“ENDSETS”):
定:
定义集合及其属性义集合及其属性集合定义部分从集合定义部分从(“DATA:
”到到“ENDDATA”)给出优化目标给出优化目标和约束和约束优优化化建建模模目标函数的定义方式目标函数的定义方式对语句中冒号对语句中冒号“:
”后面的表达式,按照后面的表达式,按照“:
”前前面的集合指定的下标(元素)进行求和。
面的集合指定的下标(元素)进行求和。
本例中目标函数也可以等价地写成本例中目标函数也可以等价地写成SUM(QUARTERS(i):
400*RP(i)+450*OP(i)+20*INV(i),“SUM”相当于求和符号相当于求和符号“”,由于本例中目标函数对集合由于本例中目标函数对集合QUARTERS的所有元素的所有元素(下下标标)都要求和,所以可以将下标都要求和,所以可以将下标i省去。
省去。
min=sum(Quarters:
400*RP+450*OP+20*INV);
SUM(集合(下标):
关于集合的属性的表达式集合(下标):
关于集合的属性的表达式)优优化化建建模模约束的定义方式约束的定义方式循环函数循环函数FOR(集合集合(下标下标):
关于集合的属性的约束关系式:
关于集合的属性的约束关系式)对冒号对冒号“:
”前面的集合的每个元素(下标),冒号前面的集合的每个元素(下标),冒号“:
”后面的约束关系式都要成立后面的约束关系式都要成立本例中,每个季度正常的生产能力是本例中,每个季度正常的生产能力是40条帆船,这正是条帆船,这正是语句语句“FOR(QUARTERS(I):
RP(I)40);
”的含义。
的含义。
这个语句可以简化成这个语句可以简化成“FOR(QUARTERS:
RP40);
”。
for(quarters(I):
RP(I)1;
“#GT#”是逻辑运算符号,意思是是逻辑运算符号,意思是“大于(大于(GreaterThan的字首字母缩写)的字首字母缩写)”。
约束的定义方式约束的定义方式优优化化建建模模问题的求解:
运行菜单命令问题的求解:
运行菜单命令“LINGO|Solve”全局最优解全局最优解RP=(40,40,40,25),OP=(0,10,35,0)最小成本最小成本=78450优优化化建建模模Lingo模型的基本结构模型的基本结构
(1)集合段()集合段(SETS):
):
sets:
Quarters/1,2,3,4/:
DEM,RP,OP,INV,I;
endsets或者或者
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- lingo 非线性 规划