数学建模实验答案数学规划模型二
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验05 数学规划模型㈡(2学时)
(第4章数学规划模型)
1.(求解)汽车厂生产计划(LP,整数规划IP)p101~102
(1) (LP)在模型窗口中输入以下线性规划模型
max z = 2x1 + 3x2 + 4x3
. + 3x2 + 5x3≤ 600
280x1 + 250x2 + 400x3≤ 60000
x1, x2, x3≥ 0
并求解模型。
★(1) 给出输入模型和求解结果(见[101]):
model:
TITLE汽车厂生产计划(LP);
!文件名:;
max=2*x1+3*x2+4*x3;
*x1+3*x2+5*x3<600;
280*x1+250*x2+400*x3<60000;
end
(2) (IP)在模型窗口中输入以下整数规划模型
max z = 2x1 + 3x2 + 4x3
. + 3x2 + 5x3≤ 600
280x1 + 250x2 + 400x3≤ 60000
x1, x2, x3均为非负整数
并求解模型。
LINGO函数@gin见提示。
★(2) 给出输入模型和求解结果(见[102]模型、结果):model:
TITLE汽车厂生产计划(IP);
!文件名:;
max=2*x1+3*x2+4*x3;
*x1+3*x2+5*x3<600;
280*x1+250*x2+400*x3<60000;
@gin(x1); @gin(x2); @gin(x3);!将x1,x2,x3限定为整数;
end
2.(求解)原油采购与加工(非线性规划NLP,LP且IP)p104~107
模型:
已知
⎪
⎩
⎪
⎨
⎧
≤
≤
+
≤
≤
+
≤
≤
=
)
1500
1000
(
6
3000
)
1000
500
(
8
1000
)
500
0(
10
)
(
x
x
x
x
x
x
x
c
注:当500 ≤x≤ 1000时,c(x) = 10 × 500 + 8( x– 500 ) = (10 – 8 ) × 500 + 8x
112112221112212211
1121
12
1222
11122122max
4.8()
5.6()()500100015000.5
0.6
,,,,0
z x x x x c x x x x x x x x x x x x x x x x x x =+++-+≤++≤≤≥+≥+≥
解法1(NLP )p104~106
将模型变换为以下的非线性规划模型:
112112221231112212211
1121
12
1222
123122312311122122max
4.8()
5.6()(1086)50010000.5
0.6
(500)0(500)00,,500,,,,0
z x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x =+++-+++≤++≤≥+≥+=++-=-=≤≤≥
LINGO 软件设置:局部最优解,全局最优解,见提示。
★(1) 给出输入模型(见[105]):
注意:模型中不要出现变量相除的形式,转化! model:
TITLE 原油采购与加工解法1(NLP ,非线性规划); !文件名:;
max = *x11 + *x21 + *x12 + *x22 - 10*x1 - 8*x2 - 6*x3; x11 + x12 < x + 500; x21 + x22 < 1000;
*x11 - *x21 > 0;
*x12 - *x22 > 0;
x = x1 + x2 + x3;
( x1 - 500 )*x2 = 0;
( x2 - 500 )*x3 = 0;
x1 < 500;
x2 < 500;
x3 < 500;
end
★(2) 在缺省的局部最优解设置下运行。
给出求局部最优解(见[106]):
★(3) 设置为全局最优解(见提示)后运行。
给出求全局最优解(见[106]):
解法2(LP且IP)p104,107
将模型变换为以下的整数规划模型:
11211222123
1112
2122
11
1121
12
1222
123
211
322
33
123
123
11122122
max 4.8() 5.6()(1086)
500
1000
0.5
0.6
500500
500500
500
,,01
0,,500
,,,,0
z x x x x x x x
x x x
x x
x
x x
x
x x
x x x x
y x y
y x y
x y
y y y
x x x
x x x x x
=+++-++
+≤+
+≤
≥
+
≥
+
=++
≤≤
≤≤
≤
=
≤≤
≥
或
LINGO函数@bin见提示。
★给出输入模型(见[107])和运行结果(全局最优解)(比较[106]):
model:
TITLE 原油采购与加工解法2(LP,IP);!不允许用英文逗号;
!文件名:;
max= *x11 + *x21 + *x12 + *x22 - 10*x1 - 8*x2 - 6*x3;
x11 + x12 < x + 500;
x21 + x22 < 1000;
*x11 - *x21 > 0;
*x12 - *x22 > 0;
x = x1 + x2 + x3;
x1 < 500*y1;
x2 < 500*y2;
x3 < 500*y3 ;
x1 > 500*y2;
x2 > 500*y3;
@bin(y1); @bin(y2); @bin(y3);!将y1,y2,y3限定为0 – 1 变量;
end
解法3(IP )p104,107~108
将模型变换为以下的整数规划模型:
112112221112212211
1121
12
1222
111221221121232343123412312311max
4.8()
5.6()()500100015000.5
0.6
,,,,0
,,,1,0(1,2,3,4)1,,,01k z x x x x c x x x x x x x x x x x x x x x x x x z y z y y z y y z y z z z z z k y y y y y y x z b =+++-+≤++≤≤≥+≥+≥≤≤+≤+≤+++=≥=++===或223344
11223344()()()()()
z b z b z b c x z c b z c b z c b z c b +++=+++
其中
b 1=0, b 2=500, b 3=1000, b 4=1500
c (b 1)=0, c (b 2)=5000, c (b 3)=9000, c (b 4)=12000 程序如下:
★输入模型并给出运行结果(全局最优解)(比较[106]):
附:输入模型
sets:
pn_1/1..3/: y;
pn/1..4/: z,b,c;
endsets
data:
b=0 500 1000 1500;
c=0 5000 9000 12000;
enddata
max= *x11 + *x21 + *x12 + *x22 - @sum(pn: c*z);
x11 + x12 < x + 500;
x21 + x22 < 1000;
*x11 - *x21 > 0;
*x12 - *x22 > 0;
z(1)<y(1);
@for(pn(I)|I#gt#1#and#I#lt#4: z(I)<y(I-1)+y(I));
z(4)<y(3);
@sum(pn: z)=1;
@sum(pn_1: y)=1;
@for(pn_1: @bin(y));
x=@sum(pn: b*z);
3.(验证)混合泳接力队的选拔(0-1规划)p108~111
解法1
0-1规划模型:
min Z=++87x13+
++66x22++53x24
+78x31+++
+70x41+++
++71x52++
subject to
x11+x12+x13+x14<=1
x21+x22+x23+x24<=1
x31+x32+x33+x34<=1
x41+x42+x43+x44<=1
x11+x21+x31+x41+x51=1
x12+x22+x32+x42+x52=1
x13+x23+x33+x43+x53=1
x14+x24+x34+x44+x54=1
xij={0,1},i=1,2,3,4,5,j=1,2,3,4
程序如下:
★ 输入以上0-1规划模型。
给出运行结果(比较[110]):
解法2
0-1规划模型:
45
1141
51
min s.t. 1, 1,2,3,4,5
1, 1,2,3,4
{0,1}
ij ij
j i ij j ij i ij z c x x i x j x =====≤====∑∑∑∑
其中
66.875.68758.657.26666.4537867.884.659.47074.269.657.267.47183.862.4c ⎡⎤⎢⎥⎢⎥⎢⎥=⎢⎥⎢
⎥⎢⎥⎣⎦
程序如下:
★输入以上0-1规划模型(见[110])。
给出运行结果(比较[110]):
model:
sets:
person/1..5/;
position/1..4/;
link(person,position): c,x;
endsets
data:
c=, , 87, ,
, 66, , 53,
78, , ,
70, , , ,
, 71, , ;
enddata
min=@sum(link: c*x);
@for(person(i): @sum(position(j): x(i,j))<=1;);
@for(position(i): @sum(person(j): x(j,i))=1;);
@for(link: @bin(x));
end
4.(求解)选课策略(0-1规划)p111~112
0-1规划模型:
Min Z=x1+x2+x3+x4+x5+x6+x7+x8+x9
x1+x2+x3+x4+x5≥2
x3+x5+x6+x8+x9≥3
x4+x6+x7+x9≥2
2x3-x1-x2≤0
x4-x7≤0
2x5-x1-x2≤0
x6-x7≤0
x8-x5≤0
2x9-x1-x2≤0
xi={0,1},i=1,2,…,9
★给出输入模型和运行结果(比较[112]):model:
TITLE例2 选课策略;
!文件名:;
min=x1+x2+x3+x4+x5+x6+x7+x8+x9;
x1+x2+x3+x4+x5>=2; !最少2门数学课程;
x3+x5+x6+x8+x9>=3; !最少3门运筹学课程;
x4+x6+x7+x9>=2; !最少2门计算机课程;
2*x3-x1-x2<=0;
x4-x7<=0;
2*x5-x1-x2<=0;
x6-x7<=0;
x8-x5<=0;
2*x9-x1-x2<=0;
@bin(x1); @bin(x2); @bin(x3); @bin(x4); @bin(x5);
@bin(x6); @bin(x7); @bin(x8); @bin(x9);
end
5.(求解)销售代理的开发与中断(0-1规划)p114~116
0-1规划模型:
min +130x12++115x14+
+100x21+96x22+92x23+88x24+84x25
++116x32++103x34+
+85x41+82x42+79x43+76x44+73x45
st
5
1
1, 1,2,3,4 it
t
x i =
≤=
∑
350x11+250x21+300x31+200x41>=400
350(x11+x12)+250(x21+x22)+300(x31+x32)+200(x41+x42)>=500
350(x11+x12+x13)+250(x21+x22+x23)+
300(x31+x32+x33)+200(x41+x42+x43)>=600
350(x11+x12+x13+x14)+250(x21+x22+x23+x24)+
300(x31+x32+x33+x34)+200(x41+x42+x43+x44)>=700
350(x11+x12+x13+x14+x15)+250(x21+x22+x23+x24+x25)+
300(x31+x32+x33+x34+x35)+200(x41+x42+x43+x44+x45)>=800 xij={0,1},i=1,2,3,4, j=1,2,3,4,5
★(1) 按表达式形式输入0-1规划模型。
给出输入模型和运行结果(比较[116]):
model:
TITLE 例3 销售代理的开发与中断;
!文件名:;
min=*x11+130*x12+*x13+115*x14+*x15
+100*x21+96*x22+92*x23+88*x24+84*x25
+*x31+116*x32+*x33+103*x34+*x35
+85*x41+82*x42+79*x43+76*x44+73*x45;
x11+x12+x13+x14+x15<=1;
x21+x22+x23+x24+x25<=1;
x31+x32+x33+x34+x35<=1;
x41+x42+x43+x44+x45<=1;
350*x11+250*x21+300*x31+200*x41>=400;
350*(x11+x12)+250*(x21+x22)+300*(x31+x32)+200*(x41+x42)>=500; 350*(x11+x12+x13)+250*(x21+x22+x23)+
300*(x31+x32+x33)+200*(x41+x42+x43)>=600;
350*(x11+x12+x13+x14)+250*(x21+x22+x23+x24)+
300*(x31+x32+x33+x34)+200*(x41+x42+x43+x44)>=700;
350*(x11+x12+x13+x14+x15)+250*(x21+x22+x23+x24+x25)+ 300*(x31+x32+x33+x34+x35)+200*(x41+x42+x43+x44+x45)>=800; @bin(x11); @bin(x12); @bin(x13); @bin(x14); @bin(x15);
@bin(x21); @bin(x22); @bin(x23); @bin(x24); @bin(x25);
@bin(x31); @bin(x32); @bin(x33); @bin(x34); @bin(x35);
@bin(x41); @bin(x42); @bin(x43); @bin(x44); @bin(x45);
end
★(2) 用LINGO函数(@for, @sum)的形式输入0-1规划模型。
给出输入模型和运行结果(比较[116]):
model:
TITLE 例3 销售代理的开发与中断;
!文件名:;
sets:
R/1..4/: d;
C/1..5/: b;
link(R,C): a,x;
endsets
data:
d=350 250 300 200;
b=400 500 600 700 800;
a= 130 115
100 96 92 88 84
116 103
85 82 79 76 73;
enddata
min=@sum(link: a*x);
@for(R(i): @sum(C(j): x(i,j))<=1);
@for(C(k): @sum(R(i): d(i)*@sum(C(j) | j#le#k: x(i,j)))>=b(k));
@for(link: @bin(x));
end
注:只输出解X的操作步骤
步骤1:选择“LINGO | Solution”;
步骤2:弹出下面对话框,在栏“Attribute or Row Name: ”中输入:x
步骤3:单击“OK”。
若在上面的对话框中,还选复选框“Nonzeros Only”(只输出非零值),得
附1:实验提示
第1题
LINGO 函数:@gin @gin(x) 是将变量x 限定为整数的函数。
称x 为整数变量。
第题
LINGO 软件设置:局部最优解,全局最优解 除线性规划外,LINGO 在缺省设置下一般只给出局部最优解。
修改LINGO 选项要求计算全局最优解:
选择 “LINGO|Options ” 菜单;
选择 “Global Solver ” 选项卡;
将 “Use Global Solver ” 复选框选中;
应用或保存设置。
第题
LINGO 函数: @bin
@bin(x) 是将变量x 限定为取值0或1的函数。
称x 为0 – 1 变量。
第5题
一、数学式子的简化
5,...,15
,...,1...5,...,1)...(...)...()...(411144122111441422121111=>=>+++=>+++++++++∑∑∑∑∑=====k b x d k b x d x d x d k b x x d x x d x x d k i k j ij i
k
k t j k j j k j j k
k k k
二、从内层到外层转化为LINGO 函数的表示 (1) 定义集合:
R/1..4/: d; C/1..5/: b; link(R,C): x; (2) 转化∑=k
j ij x 1(记M2(i,k)):
@sum (C(j) | j#le#k: x(i,j)) ! j#le#k 表示j ≤k ,M2(i,k) (3) 转化∑∑==4
1
1
i k
j ij i x d (记M3(k)):
@sum (R(i): d(i)*M2(i,k))
代入得 @sum (R(i): d(i)*@sum (C(j) | j#le#k: x(i,j)) ! M3(k) (4) 转化5,...,14
1
1
=>∑∑==k b x d k
i k
j ij i :
@for (C(k): M3(k)>b(k));
代入得 @for (C(k): @sum (R(i): d(i)*@sum (C(j) | j#le#k: x(i,j))>b(k));
[101]
附2:第4章数学规划模型(二)
[101] 汽车生产与原油采购
[101] 例1 汽车厂生产计划
[101]题1(1)答案
[102] 题1(2)模型、答案
[104] 例2 原油采购与加工
[105] 题(1)答案
[106] 题(2)(3)、、答案
[107] 题模型
[108]
[108] 接力队的选拔与选课策略
[108] 例1 混合泳拉力队的选拔
[109]
[110] 题3模型、答案
[111]
[111] 例2 选课策略
[112] 题4答案
[114] 例3 销售代理的开发与中断
[116] 题5答案
[117]****本节完****。