当前位置:文档之家› 数学模型数学建模第四次作业整数规划和对策论模型

数学模型数学建模第四次作业整数规划和对策论模型

数学模型第四次作业 整数规划和对策论模型4.1实验目的学会建立整数规划模型、对策论模型,学会用LINGO 软件求解。

4.2 基本实验1. 工程安排问题三年内有五项工程可以考虑施工,每项工程的期望收入和年度费用如表4.1所示。

假定每一项已经选定的工程要在整个三年内完成。

目标是要选出使总收入达到最大的那些工程。

解:根据题意,设0 1 i i x i ⎧=⎨⎩第个工程未被选中第个工程被选中,i=1,2,3,4,5目标函数为:123452*********Max x x x x x =++++限制条件为:1234512345123455437825794625..8102102501i x x x x x x x x x x s t x x x x x x ++++≤⎧⎪++++≤⎪⎨++++≤⎪⎪⎩为或 使用Lingo 编程:model :max=20*x1+40*x2+20*x3+15*x4+30*x5;5*x1+4*x2+3*x3+7*x4+8*x5<=25;1*x1+7*x2+9*x3+4*x4+6*x5<=25;8*x1+10*x2+1*x3+2*x4+10*x5<=25;@bin(x1);@bin(x2);@bin(x3);@bin(x4);@bin(x5);end运行得到结果:Global optimal solution found.Objective value: 95.00000Objective bound: 95.00000Infeasibilities: 0.000000Extended solver steps: 0Total solver iterations: 0Variable Value Reduced CostX1 1.000000 -20.00000X2 1.000000 -40.00000X3 1.000000 -20.00000X4 1.000000 -15.00000X5 0.000000 -30.00000Row Slack or Surplus Dual Price1 95.00000 1.0000002 6.000000 0.0000003 4.000000 0.0000004 4.000000 0.000000分析结果易知,总收入达到最大为95(千元),应选第一、二、三、四项工程可以使总收入达到最大。

2. 固定费用问题一服装厂生产三种服装,生产不同种类的服装要租用不同的设备,设备租金和其他的经济参数如表4.2所示。

假定市场需求不成问题,服装厂每月可用人工工时为2000小时,该厂如何安排生产可以使每月利润达到最大?解:根据题意三种服装的利润分别为120元、10元、100元.设x i 表示生成第i (i =1,2,3)种服装的数量,y i 表示是否生产第i 种服装。

列出目标函数:列出限制条件:5x 1+x 2+4x 3≤20003x 1≤300y 10.5x 2≤300y 22x 3≤300y 3使用Lingo 编程求解:model :sets:⎩⎨⎧=种服装,不生产第种服装生产第i i y i 0,1)000320005000(10010120m ax 321321y y y x x x ---++=m/1,2,3/:x,y;endsets[obj]max=100*x(1)+10*x(2)+100*x(3)-5000*y(1)-2000*y(2)-3000*y(3);5*x(1)+x(2)+4*x(3)<=2000;3*x(1)<=300*y(1);0.5*x(2)<=300*y(2);2*x(3)<=300*y(3);@for(m(i):x(i)>=0;@bin(y(i)););end得到结果:Global optimal solution found.Objective value: 21000.00Objective bound: 21000.00Infeasibilities: 0.000000Extended solver steps: 0Total solver iterations: 0Variable Value Reduced CostX( 1) 100.0000 0.000000X( 2) 600.0000 0.000000X( 3) 150.0000 0.000000Y( 1) 1.000000 -5000.000Y( 2) 1.000000 -4000.000Y( 3) 1.000000 -12000.00Row Slack or Surplus Dual PriceOBJ 21000.00 1.0000002 300.0000 0.0000003 0.000000 33.333334 0.000000 20.000005 0.000000 50.000006 100.0000 0.0000007 600.0000 0.0000008 150.0000 0.000000所以三种服装应该都生产,且生产西服100件、衬衫600件、羽绒服150件时可以使每月利润达到最大21000元。

3. 串并联系统可靠性问题有一台电器由三个部件组成,这三个部件串联,假如有一个部件发生故障,电器就不能工作。

可以通过在每个部件里安装1到2个备份元件来提高该电器的可靠性(不发生故障的概率)。

表4.3列出了可靠性和成本费用。

假设制造该电器的已有资金共10万元,那么怎样来构造这件电器呢?解:构造集合bujian/1..3/(部件),yuanjian/1..2/(每个部件可并联的元件数集合),links(bujian,yuanjian):p,C,R 。

其中⎩⎨⎧=,其他个元件部件并联,给01j i p ij列出Lingo 程序:model :sets :bujian/1..3/; !部件1,2,3;yuanjian/1..2/; !每个部件可装元件1,2;links(bujian,yuanjian)/1,1 1,2 2,1 2,2 3,1 3,2/:p,C,R;!p(i,j)=1,则表示部件i 上并联j 个元件,否则,p(i,j)=0.C,R 分别为成本,可靠性;!links 中的元素必须罗列出来;endsetsdata :C=1 23 52 4;R=0.60 0.800.70 0.800.50 0.70;enddatamax=@prod(bujian(I):@sum(yuanjian(J)|@in(links,I,J):p(I,J)*R(I,J) )); !整个系统的可靠性,为每个部件的可靠性之积;@for(bujian(I):@sum(yuanjian(J)|@in(links,I,J):p(I,J))=1);@for(links(I,J)|@in(links,I,J):@bin(p(I,J)));!对于每一个部件,并联的元件数是一定的,p(I,J)只能取0或1,且p(I,J)的和为1;@sum(bujian(I):@sum(yuanjian(J)|@in(links,I,J):p(I,J)*C(I,J)))<=10; !总成本小于10(万元);end运行得到如下结果:Linearization components added:Constraints: 64Variables: 16Integers: 16Global optimal solution found.Objective value: 0.3920000Objective bound: 0.3920000Infeasibilities: 0.000000Extended solver steps: 0Total solver iterations: 12Variable Value Reduced CostP( 1, 1) 0.000000 0.000000P( 1, 2) 1.000000 0.000000P( 2, 1) 1.000000 0.000000P( 2, 2) 0.000000 0.000000P( 3, 1) 0.000000 0.000000P( 3, 2) 1.000000 0.000000C( 1, 1) 1.000000 0.000000C( 1, 2) 2.000000 0.000000C( 2, 1) 3.000000 0.000000C( 2, 2) 5.000000 0.000000C( 3, 1) 2.000000 0.000000C( 3, 2) 4.000000 0.000000R( 1, 1) 0.6000000 0.000000R( 1, 2) 0.8000000 0.000000R( 2, 1) 0.7000000 0.000000R( 2, 2) 0.8000000 0.000000R( 3, 1) 0.5000000 0.000000R( 3, 2) 0.7000000 0.000000Row Slack or Surplus Dual Price1 0.3920000 1.0000002 0.000000 0.0000003 0.000000 0.0000004 0.000000 0.0000005 1.000000 0.000000因此,此时的最优解可以得到:即在第一个部件上并联两个元件,第二个部件上并联一个元件,第三个部件上并联两个元件,此时系统的在成本允许的情况下稳定性达到最大0.392。

4. 二选一约束条件某汽车公司正在考虑生产3种类型的汽车:微型、中型和大型。

表4.4给出了每种汽车需要的资源及产生的利润。

目前有6000吨钢材和60000小时的劳动时间。

要生产一种在经济效益上可行的汽车,这种汽车必须至少生产1000辆。

试为该公司制定一个使生产利润达到最大的方案。

解:设X1、X2、X3分别表示生产微型汽车、中型汽车、大型汽车的数量。

引入0-1变量,化为整数规划。

设yi 只取0, 1两个值,则生产1000辆或不生产用数学表达为:目标函数:max=2000*x1+3000*x2+4000*x3;限制条件:1.5 *x1+3 *x2+5 *x3<=6000;30* x1+25*x2+40* x3<=60000;x1<=5000*y1; (取个合理范围)x1>=1000* y1;x2<=5000*y2;x2>=1000* y2;x3<=5000*y3;x3>=1000*y3;x1,x2,x3为整数;用Lingo 编程求解:model :max =2000*x1+3000*x2+4000*x3;3,2,1},1,0{1000=∈=i y yi xi i ⎩⎨⎧-=变量不生产该车型,生产该车型100,1iy1.5*x1+3*x2+5*x3<=6000;30* x1+25*x2+40*x3<=60000;x1<=5000*y1;x1>=1000*y1;x2<=5000*y2;x2>=1000*y2;x3<=5000*y3;x3>=1000*y3;@bin(y1);@bin(y2);@bin(y3);@gin(x1);@gin(x2);@gin(x3);End运行得到结果:Objective value: 6000000.Objective bound: 6000000.Infeasibilities: 0.000000Extended solver steps: 1Total solver iterations: 8Variable Value Reduced Cost X1 0.000000 -2000.000 X2 2000.000 -3000.000 X3 0.000000 -4000.000 Y1 0.000000 0.000000 Y2 1.000000 0.000000 Y3 0.000000 0.000000Row Slack or Surplus Dual Price1 6000000. 1.0000002 0.000000 0.0000003 10000.00 0.0000004 0.000000 0.0000005 0.000000 0.0000006 3000.000 0.0000007 1000.000 0.0000008 0.000000 0.0000009 0.000000 0.000000易知生产中型车2000辆可以使生产利润达到最大为6000000美元。

相关主题