具体例子说明lingo在数学建模中的应用
数学规划与lingo软件
具体例子说明lingo在数学建模中的应用
数学规划表达式:
Min(或Max) z f ( x), x ( x1 , x n ) s.t. g i ( x) 0, i 1,2, m
T
x~决策变量 数 学 规 划
f(x)~目标函数 线性规划 非线性规划
gi(x) 0~约束条件
决策变量个数n和 约束条件个数m较大
首页
上页
下页
返回
具体例子说明lingo在数学建模中的应用
一个简单的例子(感受lingo):max z 7 x1 5 x2 3 x1 2 x2 95 4 x 6 x 201 1 2 st . 7 x2 210 x1 , x2 0
首页
上页
下页
返回
具体例子说明lingo在数学建模中的应用
怎么求解呢?方法一:作图; 方法二:单纯形法;
方法三:lingo软件;其他方法:matlab软件等等;
首页
上页
下页
返回
具体例子说明lingo在数学建模中的应用
Lingo程序代码:max=7*x1+5*x2;3*x1+2*x2<=95;
4*x1+6*x2<=201;7*x2<=210;
首页
上页
下页
返回
具体例子说明lingo在数学建模中的应用
Lingo求解结果:Global optimal solution found. Objective value: Infeasibilities: Total solver iterations: 229.1000 0.000000 2
Variable X1 X2 Row 1 2 3 4
Value 16.80000 22.30000
Reduced Cost 0.000000 0.000000
Slack or Surplus Dual Price 229.1000 1.000000 0.000000 2.200000 0.000000 0.1000000 53.90000 0.000000
首页
上页
下页
返回
具体例子说明lingo在数学建模中的应用
Matlab程序代码:f=[-7;-5]; A=[3 2;4 6;0 7]; b=[90;200;210]; lb=zeros(2,1); [x,fval,exitflag,output,lambda]=linprog(f,A,b, [],[],lb)
首页
上页
下页
返回
具体例子说明lingo在数学建模中的应用
附加整数约束(怎么处理呢?)max z 7 x1 5 x2 3 x1 2 x2 95 4 x 6 x 201 1 2 st . 7 x2 210 x1 , x2 0,取整数
首页
上页
下页
返回
具体例子说明lingo在数学建模中的应用
Lingo程序代码:max=7*x1+5*x2; 3*x1+2*x2<=95; 4*x1+6*x2<=201; 7*x2<=210; @gin(x1); @gin(x2);
首页
上页
下页
返回
具体例子说明lingo在数学建模中的应用
例1 加工奶制品的生产计划1桶 牛奶 或 12小时 8小时 3公斤A1 获利24元/公斤
4公斤A2
获利16元/公斤
每天: 50桶牛奶
时间480小时 至多加工100公斤A1
制订生产计划,使每天获利最大 35元可买到1桶牛奶,买吗?若买,每天最多买多少? 可聘用临时工人,付出的工资最多是每小时几元? A1的获利增加到 30元/公斤,应否改变生产计划?首页 上页 下页 返回
具体例子说明lingo在数学建模中的应用
1桶 牛奶 或
12小时 8小时
3公斤A14公斤A2
获利24元/公斤获利16元/公斤
每天 50桶牛奶 时间480小时 至多加工100公斤A1决策变量 x1桶牛奶生产A1 x2桶牛奶生产A2
目标函数
获利 24×3x1 获利 16×4 x2 每天获利 Max z 72x1 64x2 原料供应
x1 x2 5012x1 8x2 480
约束条件
劳动时间 加工能力 非负约束
3x1 100 x1 , x2 0
线性 规划 模型 (LP)上页 下页 返回
首页
具体例子说明lingo在数学建模中的应用
模型求解x1 x2 50
图解法
约 l2 : 12x1 8x2 480 束 12x1 8x2 480 l4 l3 : 3x1 100 条 3x1 100 件 c l : x 0 , l : x 0 x1 , x2 0 4 1 5 2 0 目标 函数
l1 : x1 x2 50
x2 A l1 B l2
CZ=3360 l3 l5 Z=0 x1 D Z=2400
Max z 72x1 64x2z=c (常数) ~等值线
在B(20,30)点得到最优解 最优解一定
在凸多边 形的某个顶点取得。首页 上页 下页 返回
目标函数和约束条件是线性函数 可行域为直线段围成的凸多边形 目标函数的等值线为直线
具体例子说明lingo在数学建模中的应用
模型求解max=72*x1+64*x2; x1+x2<=50; 12*x1+8*x2<=480; 3*x1<=100;1)
软件实现
LINDG 11.0
OBJECTIVE FUNCTION VALUE 3360.000
VARIABLEX1 X2
VALUE20.000000 30.000000
REDUCED COST0.000000 0.000000
ROW SLACK OR SURPLUS DUAL PRICES
DO RANGE (SENSITIVITY) ANALYSIS?No
2) 3)
0.000000 0.000000
48.000000 2.000000
4)
40.0000002
0.000000
NO. ITERATIONS=
20桶牛奶生产A1, 30桶生产A2,利润3360元。首页 上页 下页 返回
具体例子说明lingo在数学建模中的应用
结果解释OBJECTIVE FUNCTION VALUE
max=72*x1+64*x2; x1+x2<=50; 12*x1+8*x2<=480; 3*x1<=100;
1)
3360.000
VARIABLEX1 X2
VALUE20.000000 30.000000
REDUCED COST0.000000 0.000000
ROW SLACK OR SURPLUS DUAL PRICES
原料无剩余 三 种 时间无剩余 资 源 加工能力剩余40
2) 3)
0.000000 0.000000
48.000000 2.000000
4)
40.0000002
0.000000
NO. ITERATIONS=
“资源” 剩余为零的约束为紧约束(有效约束 )首页 上页 下页
返回
具体例子说明lingo在数学建模中的应用
OBJECTIVE FUNCTION VALUE1) 3360.000 VALUE 20.000000 30.000000 REDUCED COST 0.000000 0.000000 DUAL PRICES
结果解释最优解下“资源”增加 1单位时“效益”的增 量
VARIABLE X1 X2
ROW SLACK OR SURPLUS
影子价格
2)3) 4)
0.0000000.000000 40.000000
48.0000002.000000 0.000000
原料增加1单位, 利润增长48时间增加1单位, 利润增长2 加工能力增长不影响利润
NO. ITERATIONS=
2
35元可买到1桶牛奶,要买吗?
35 <48, 应该买!
聘用临时工人付出的工资最多每小时几元?首页 上页
2元!下页 返回
具体例子说明lingo在数学建模中的应用
最优解不变时目标函 RANGES IN WHICH THE BASIS IS UNCHANGED: 数系数允许变化范围OBJ COEFFICIENT RANGES VARIABLE CURRENT ALLOWABLE ALLOWABLE COEF INCREASE DECREASE X1 X2 ROW 72.000000 24.000000 8.000000
DO RANGE(SENSITIVITY) ANALYSIS? Yes
(约束条件不变) x1系数范围 (64,96)
64.000000 8.000000 16.000000 RIGHTHAND SIDE RANGES CURRENT ALLOWABLE ALLOWABLE RHS INCREASE DECREASE
x2系数范围 (48,72)x1系数由24 3=72 增加为30 3=90, 在允许范围内
23 4
50.000000480.000000 100.000000
10.00000053.333332 INFINITY
6.66666780.000000 40.000000
A1获利增加到 30元/千克,应否改变生产计划 不变!首页 上页 下页
返回