数学建模中lingo的使用

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

20桶牛奶生产A1, 30桶生产A2,利润3360元。
首页 上页 下页 返回
结果解释
OBJECTIVE FUNCTION VALUE
max=72*x1+64*x2; x1+x2<=50; 12*x1+8*x2<=480; 3*x1<=100;
1)
3360.000
VARIABLE
X1 X2
VALUE
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
首页上页返回下页资料仅供参考1桶桶牛奶3公斤a112小时8小时4公斤a2或或获利24元公斤获利16元公斤x1桶牛奶生产a1x2桶牛奶生产a2获利243x1获利164x2原料供应5021??xx劳动时间48081221??xx加工能力10031?x决策变量目标函数216472xxzmax??每天获利约束条件非负约束021?xx线性规划模型lp时间480小时至多加工100公斤a150桶牛奶每天首页上页返回下页资料仅供参考模型求解图解法x1x20abcdl1l2l3l4l55021??xx48081221??xx10031?x021?xx约束条件50
首页
上页
下页
返回
Lingo中的集
Lingo中集的定义语法: setname/member_list/:attribute_list; 说明: setname为集的名称; /member_list/为成员列表; attribute_list为属性列表。
首页
上页
下页
返回
Lingo中的集
集定义的例子: sets: students/John Jill, Rose Mike/: sex, age; endsets
x1 x2 50
12x1 8x2 480
约束条件
劳动时间 加工能力 非负约束
3x1 100 x1 , x2 0
线性 规划 模型 (LP)
上页 下页 返回
首页
模型求解
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 目标 函数
数学规划与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较大
NO. ITERATIONS=
2
35元可买到1桶牛奶,要买吗?
35 <48, 应该买!
聘用临时工人付出的工资最多每小时几元?
首页 上页
2元!
下页 返回
最优解不变时目标函 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
注意:集部分以关键字“sets:”开始,以 “endsets”结束。一个集及其属性在模型约束中 被引用之前必须定义了它们。
首页
上页
下页
返回
把上面的代码在lingo中运行,可得到 下面的结果:
Variable SEX( JOHN) SEX( JILL) SEX( ROSE) SEX( MIKE) AGE( JOHN) AGE( JILL) AGE( ROSE) AGE( MIKE) Value 1.234568 1.234568 1.234568 1.234568 1.234568 1.234568 1.234568 1.234568
方法三:lingo软件;
其他方法:matlab软件等等;
首页
上页
下页
返回
Lingo程序代码:
max=7*x1+5*x2;
3*x1+2*x2<=95;
4*x1+6*x2<=201;
7*x2<=210;
首页
上页
下页
返回
Lingo求解结果:
Global optimal solution found. Objective value: Infeasibilities: Total solver iterations: 229.1000 0.000000 2
(目标函数不变)
64.000000 8.000000 16.000000 RIGHTHAND SIDE RANGES CURRENT ALLOWABLE ALLOWABLE RHS INCREASE DECREASE
2
3 4
50.000000
480.000000 100.000000
10.000000
6 8
首页 上页 下页 返回
x
i 1
ij
利用lingo编程求解?:
在lingo中怎么输入?! 如果按初等的输入方法,怎么样? 烦!!!!!!!!!!! 有必要引进新的方法: Lingo 的特点:集语言!
首页
上页
下页
返回
Lingo中的集
在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
53.333332 INFINITY
6.666667
80.000000 40.000000
原料最多增加10
时间最多增加53
• 35元可买到1桶牛奶,每天最多买多少?
首页
最多买10桶!
上页 下页 返回
例2:复杂一点的例子:
假设某公司有6个货栈向8个销售 商供应小装饰品,每一个货栈的供 应量都是有限的,每一个销售商的 需求量必须得到满足。该公司要决 定如何调运货栈的装饰品满足销售 商以使总运输成本最少。
0.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.000000
2
0.000000
NO. ITERATIONS=
首页
上页
下页
返回
一个简单的例子(感受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
首页
上页
下页
返回
怎么求解呢?
方法一:作图; 方法二:单纯形法;
40.000000
2
0.000000
NO. ITERATIONS=
“资源” 剩余为零的约束为紧约束(有效约束 )
首页 上页 下页
返回
OBJECTIVE FUNCTION VALUE
1) 3360.000 VALUE 20.000000 30.000000 REDUCED COST 0.000000 0.000000 DUAL PRICES
首页
上页
下页
返回
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)
首页
上页
下页
返回
附加整数约束(怎么处理呢?)
l1 : x1 x2 50
x2 A l1 B l2
CZ=3360 l3 l5 Z=0 x1 D Z=2400
Max z 72x1 64x2
z=c (常数) ~等值线
在B(20,30)点得到最优解 最优解一定在凸多边 形的某个顶点取得。
首页 上页 下页 返回
目标函数和约束条件是线性函数 可行域为直线段围成的凸多边形 目标函数的等值线为直线
首页 上页 下页 返回
1桶 牛奶 或
12小时 8小时
3公斤A1
4公斤A2
获利24元/公斤
获利16元/公斤
每天 50桶牛奶 时间480小时 至多加工100公斤A1
决策变量 x1桶牛奶生产A1 x2桶牛奶生产A2
目标函数
获利 24×3x1 获利 16×4 x2 每天获利 Max z 72x1 64x2 原料供应
结果解释
最优解下“资源”增加 1单位时“效益”的增 量
VARIABLE X1 X2
ROW SLACK OR SURPLUS
影子价格
2)
3) 4)
0.000000
0.000000 40.000000
48.000000
2.000000 0.000000
原料增加1单位, 利润增长48
时间增加1单位, 利润增长2 加工能力增长不影响利润
首页
上页
下页
返回
例1 加工奶制品的生产计划
1桶 牛奶 或 12小时 8小时 3公斤A1 获利24元/公斤
4公斤A2
获利16元/公斤
每天: 50桶牛奶
时间480小时 至多加工100公斤A1
制订生产计划,使每天获利最大 35元可买到1桶牛奶,买吗?若买,每天最多买多少? 可聘用临时工人,付出的工资最多是每小时几元? A1的获利增加到 30元/公斤,应否改变生产计划?
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程序代码:
max=7*x1+5*x2; 3*x1+2*x2<=95; 4*x1+6*x2<=201; 7*x2<=210; @gin(x1); @gin(x2);
4 7 3 9 3 5 2
首页
上页
下页
返回
模 型
min cij xij
i 1 j 1
xij : i j运量 cij : i j单位运费
6
8
st
x
j 1 6 8 ij
a(i):第i个货栈的供应量 b(j):第j个销售商的需求量
a(i ) b( j )
i 1, 2 j 1, 2
模型求解
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
V0000 30.000000
REDUCED COST
首页
上页
下页
返回
数据:
• • • • • • • • • • • • 货栈: 1 可供量: 60 销售商 1 需求量 35 运输成本: 1 2 1 6 2 2 4 9 3 5 2 4 7 6 5 2 3 6 5 5 2 55 2 37 3 6 5 1 7 9 2 3 51 3 22 5 4 8 7 9 7 8 4 43 4 32 6 2 5 4 2 2 1 5 6 41 52 5 6 7 8 41 32 43 38 7 5 8 3 7 6 4 8 9 2 3 1 5 3;
x2系数范围 (48,72)
x1系数由24 3=72 增加为303=90, 在允许范围内
2
3 4
50.000000
480.000000 100.000000
10.000000
53.333332 INFINITY
6.666667
80.000000 40.000000
• A1获利增加到 30元/千克,应否改变生产计划 不变!
20.000000 30.000000
REDUCED COST
0.000000 0.000000
ROW SLACK OR SURPLUS DUAL PRICES
原料无剩余 三 种 时间无剩余 资 源 加工能力剩余40
2) 3)
0.000000 0.000000
48.000000 2.000000
4)
相关文档
最新文档