- 1、本文档共7页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
LINGO软件简介
LINGO软件简介
LINGO软件是一个处理优化问题的专门软件,它尤其擅长求解线性规划、非线性规划、整数规划等问题。
一个简单示例
有如下一个混合非线性规划问题:。
LINGO程序(模型):
max=98*x1+277*x2-x1^2-0.3*x1*x2-2*x2^2+150*x3;
x1+2*x2+2*x3=100;
x1=2*x2;
@gin(x1);@gin(x2);! Lingo默认变量非负
(注意:@bin(x)表示x是0-1变量;@gin(x)表示x是整数变量;@bnd(L,x,U)表示限制L(x(U;@free(x)表示取消对x的符号限制,即可正、可负。)
结果:
Global optimal solution found.
Objective value: 9561.200
Extended solver steps: 0
Total solver iterations: 45
Variable Value Reduced Cost
X1 6.000000 -76.70000
X2 31.00000 -151.2000
X3 16.00000 -150.0000
Row Slack or Surplus Dual Price
1 9561.200 1.000000
2 0.000000 0.000000
3 56.00000 0.000000
———————— 非常简单!
在LINGO中使用集合
为了方便地表示大规模的规划问题,减少模型、数据表示的复杂程度,LINGO引进了“集合”的用法,实现了变量、系数的数组化(下标)表示。
例如:对
求解程序:
model:
sets:
mark/1,2,3,4/:dem,rp,op,inv;!也可以vmark/1..4/:dem,rp,op,inv;
endsets
min=@sum(mark:400*rp+450*op+20*inv);!也可以mark(I):400*rp(I)+450*op(I)+20*inv(I);
@for(mark(I): rp(I)40);
@for(mark(I)|I#gt#1: inv(I)=inv(I-1)+rp(I)+op(I)-dem(I));
inv(1)=10+rp(1)+op(1)-dem(1);
data:
dem=40,60,75,35;
enddata
end
上面程序在model…end之间有(1)集合定义、(2)数据输入和(3)其他三部分内容。
集合定义部分(从sets:到endsets):定义了一个指标集合mark(可以理解为数组下标及其范围)和其4个属性dem、rp、op、inv(用此向量的数组变量)。
数据输入部分(从data:到enddata)依次给出常量(dem)的值。
其他部分:给出优化目标及约束。
一般而言,LINGO中建立优化模型的程序可以由五部分组成,或称为五段(section):
(1)集合段(SETS):这部分以“SETS:”开始,以“ENDSETS”结束,作用在于定义必要的集合变量(SET)及其元素(member,含义类似于数组的下标)和属性(attribute,含义类似于数组)。
(2)目标与约束段:这部分实际上定义了目标函数、约束条件等,但这部分没有段的开始和结束标记;该段一般常用到LINGO内部函数,尤其是和集合相关的求和函数@SUM和循环函数@FOR等。
(3)数据段(DATA):这部分以“DATA:”开始,以“ENDDATA”结束,作用在于对集合的属性(数组)输入必要的常数数据。格式为: attribute
文档评论(0)