Lingo与线性规划
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Ling o与线性规划
线性规划得标准形式就是
(1)
其中称为口标函数,自变量称为决策变量,不等式组(1)称为约束条件、
满足不等式组(1)得所有得集合称为可行域,在可行域里面使得Z取最小值得称为最优解,最优解对应得函数值称为最优值。
求解优化模型得主要软件有L i ng o、Ma t 1 a b> Ex c el等。其中Lingo 就是一款专业求解优化模型得软件,有其她软件不可替代得方便功能。本文将简要介绍其在线性规划领域得应用。
—、基本规定
1、目标函数输入格式
ma x二函数解析式;或者min二函数解析式;
2、约束条件输入格式
利用:>、V、〉=、〈二等符号。但就是>与>二没有区别。L ingo软件默认所以自变量都大于等于0、
3、运算
加(+),减(-),乘(*),除(/),乘方(x A a),要注意乘号(*)不能省略。
4、变量名
不区分大小写字母,不超过32个字符,必须以字母开头。
5、标点符号
每个语句以分号“;”结束,感叹号“!”开始得就是说明语句(说明语句也需要以分号";”结束)o但就是,mo d el, s e t s, data以":”结尾。endsets, e n ddata, e n d尾部不加任何符号。
6、命令不考虑先后次序
7、MODEL 语句
一般程序必须先输入MODEL:表示开始输入模型,以“END”结束。对简单
(1)
例1求目标函数得最小值,约束条件为
输入Ling o 程序:
min = 2*x1 + 3*x2;
x I + x2 >= 350?x1 >= 1 0 0;2A *X 1 + x2 <= 600;
有两种运行方式:
1、点击工具条上得按钮 即可。
2、点击菜单:LINGO —Solve
运行结果如下:
下面对其各个部分进行说明:
Gl o bal o p tima 1 solution f oun d :表示已找到全局最优解。 Ob j e ctive value :表示最优值得大小。可见本题函数最小值8 00。
Rov
Slack or Surplus
Dual Price 1
800.0000
-1.000000
2 CLOOCICICICI -4・00 OOOCI
3 150.0CICICI O ・000000 4
CLOOCICICICI
1・000000
Global optimal solution found ・
Objective value:
800.0000
Infeasibilities:
0 ・ OOOCICICI
Total solver iterations:
2
Variable
得模型,这两个语句也可以省略。
8、改变变量得取值范围
bin (变量名); bnd (a,变量名,b ); free (变量名);
gin (变量名);
限制该变量为0或1、
限制该变量介于a, b 之间、 允许该变量为负数、 限制该变量为整数、
Value
250.0000
・dodo
Reduced Cost o ・000000 o
・000000
Infea s i b i I i ties:矛盾约束得数目。
T o tai s o 1 ver ite r a t i o ns:迭代次数。
Variable:变量。本题有两个变量。
Vai u e:变量对应得最优解,即。
Reduced Cost:变量在最优解得基础上增加一个单位,目标函数值得改变量。例如,一个变量得Red need Cost值为8,那么当该变量增加一个单位,在最大化(最小化)问题中目标函数值将减少(增大)8个单位。
Slack o r Surplus:表示接近等于得程度,即约束离相等还差多少。在约束条件就是<=中,表示松弛程度,在约束条件就是> =中,不就是过剩程度。如果约束条件就是则S 1 ack or Su r p lus为0,该约束就是个紧约束(或有效约束)。如果一个约束就是矛盾得,即模型无可行解则Slack or s urplu s得值就是负数。
知道Slack or S u rplus得值,可以帮助我们发现优化模型中错误得约束条件。在上例中第2与第4行松弛变量均为0,说明对于最优解来讲,两个约束(第2与4行)均取等号,即都就是紧约束,第3行为150,即最优解使得第3行过剩150、
Dual Price :对偶价格得值,它表示约束条件中得常数,每增加一个单位,目标函数值改变得数量(在最大化问题中LI标函数值就是增加,在最小化问题中訂标函数值就是减少)。比如,在上一个Min模型中第四行得1,表示2次xl+ X2 < =6 0 0增加一个单位到2 *x 1 + x2 <= 6 0 1,可以使目标值增加一1(因为第一行就是目标函数得DualPrice就是—1),即Object i ve valu e =7 9 9;如果增加J 个单位到59 9会使目标值增加到801o
例2求目标函数得最小值.约束条件为
输入L i ngo程序:
min = 4*x1A2-x2^2+2*x3A2 + 12;
3 次x1 + 2 次x2+x3=9;
x1+x2+x3=-1 ;Af r e e(x1) ;free (x2); free (x3);
运行结果: