Lingo编程语法
- Model: 表示开始输入模型
- “MAX=“或者”MIN=“语句为目标函数,其他的语句都是约束条件(标题title和注释语句除外)
- 每一个语句都由;结尾
- !可以作为注释语句
- LIngo中解优化模型时假定所有变量非负(除另行说明)
- END结束模型
Lingo代码举例
model:
title CSDN;
[minf]min=2*x1+3*x2;
[a]x1+x2>=350;
[b]x1>=100;
[c]2*x1+x2<=600;
END
代码运行结果
代码窗口结果解读
-
Global optimal solution found.
表示全局最优解找到
-
Objective value:
表示最优目标值
-
Total solver iterations:
表示用单纯行法进行了两次迭代
-
Variable
表示变量,运行结果中有两个变量为x1,x2
-
Value
给出最优解中个变量的值
-
Reduced Cost
与最优单纯形表中的检验数相差一个符号的数。
为了使某个变量在解中的数值增加一个单位,目标函数必须付出的代价(增加或减少Reduced Cost的值)
-
Slack or Surplus
表示接近等于的程度
在约束条件中是<=,叫做松弛变量
在约束条件中是>=,叫做过剩变量
在约束条件中是=,值为0,该约束为一个紧约束(或有效约束)
如果一个约束条件错误,作为一个不可行约束,Slack or Surplus为负数
Slack or Surplus表示的是:约束离相等还差多少
-
Dual Price
给出对偶价格的值
表示每增一个单位(约束右边的常数),目标值改变的数量(在最大化问题中目标函数是增加的,反之是减小的)
例如在本例中,c约束条件的Dual Price为1,表示2x1+x2<=600增加一个单位到2x1+x2<=601使目标值增加到-1(目标函数的Dual Price为-1),则Objective value就变为799
- 对偶价格也叫影子价格,这是由于他们表示可以用多大的价格去购买单位资源