数学建模:运用Lindolingo软件求解线性规划
- 格式:doc
- 大小:19.00 KB
- 文档页数:6
实验一:利用Lingo 软件求解线性规划问题实验一 利用Lingo 软件求解线性规划问题1、 实验目的和任务1.1. 进一步掌握Lingo 编程操作;1.2通过实验进一步掌握运筹学线性规划问题的建模以及求解过程,提高学生分析问题和解决问题能力。
2、 实验仪器、设备及材料计算机、Lingo3、 实验内容料场选址问题P10某公司有6个建筑工地要开工,每个工地的位置(用平面坐标a,b 表示,距离单位:km )及水泥日用量d(单位:t)由下表给出,目前有两个临时料场位于P (5,1),Q (2,7),日储量各有20t.请回答以下问题: 假设从料场到工地之间有直线道路相连,试制定每天的供应计划,即从P,Q 两料场分别向各工地运送多少吨水泥,使总的吨公量数最小。
工地的位置(a,b )及水泥日用量d建模 设工地的位置为(,)i i a b ,水泥日用量为i d ,i=1,2,…,6;料场位置为(,)j j x y ,日储量为j e ,j=1,2; 从料场j 向工地i 的运送量为ij c 。
决策变量:在问题(1)中,决策变量就是料场j 向工地i 的运送量为ij c ;在问题(2)中,决策变量除了料场j 向工地i 的运送量为ij c 外,新建料场位置(,)j j x y 也是决策变量。
目标函数:这个优化问题的目标函数f 是总砘公量数(运量乘以运输距离),所以优化目标可表为2611min j i f c ===∑∑约束条件:各工地的日用量必须满足,所以21,1,2, (6)ij ijc d i ===∑各料场的运送量不能超过日储量,所以61,1,2. ij jic e j =≤=∑求解过程编写模型程序:(介绍集合的定义及应用)model:sets:!确定变量a(1),a(2),a(3),a(4),a(5),a(6);demand/1..6/:a,b,d;supply/1..2/:x,y,e;link(demand,supply):c;endsetsdata:!分割数据的空格与逗号或回车的作用是等价的;a=1.25 8.75 0.5 5.75 3 7.25;b=1.25,0.75,4.75,5,6.5,7.75;d=3,5,4,7,6,11;e=20,20;!a=enddatainit:!lingo对数据是按列赋值的,而不是按行;x,y=5,1,2,7;endinit[OBJ] min=@sum(link(i,j):c(i,j)*((x(j)-a(i))^2+(y(j)-b(i))^2)^(1/2));@for(demand(i):[demand_con] @sum(supply(j):c(i,j))=d(i););@for(supply(i):[supply_con] @sum(demand(j):c(j,i))<=e(i););@for(supply(i):@bnd(0.5,x(i),8.75);@bnd(0.75,y(i),7.75););End计算结果:(如果你使用的是试用版软件,则可能不能用全局求解器求解本例,因为问题规模太大了,激活全局最优求解程序的方法,是用“lingo|Options”菜单命令打开选项对话框,在“Global Solver”选项卡上选择“Use Global Solver”)Local optimal solution found.Objective value: 85.26604Total solver iterations: 61Variable Value Reduced CostA( 1) 1.250000 0.000000A( 2) 8.750000 0.000000A( 3) 0.5000000 0.000000A( 4) 5.750000 0.000000A( 5) 3.000000 0.000000A( 6) 7.250000 0.000000B( 1) 1.250000 0.000000B( 2) 0.7500000 0.000000B( 3) 4.750000 0.000000B( 4) 5.000000 0.000000B( 5) 6.500000 0.000000B( 6) 7.750000 0.000000D( 1) 3.000000 0.000000D( 2) 5.000000 0.000000D( 3) 4.000000 0.000000D( 4) 7.000000 0.000000D( 5) 6.000000 0.000000D( 6) 11.00000 0.000000X( 1) 3.254883 0.000000X( 2) 7.250000 0.6335133E-06 Y( 1) 5.652332 0.000000Y( 2) 7.750000 0.5438639E-06 E( 1) 20.00000 0.000000E( 2) 20.00000 0.000000C( 1, 1) 3.000000 0.000000C( 1, 2) 0.000000 4.008540C( 2, 1) 0.000000 0.2051358C( 2, 2) 5.000000 0.000000C( 3, 1) 4.000000 0.000000C( 3, 2) 0.000000 4.487750C( 4, 1) 7.000000 0.000000C( 4, 2) 0.000000 0.5535090C( 5, 1) 6.000000 0.000000C( 5, 2) 0.000000 3.544853C( 6, 1) 0.000000 4.512336C( 6, 2) 11.00000 0.000000Row Slack or Surplus Dual PriceOBJ 85.26604 -1.000000DEMAND_CON( 1) 0.000000 -4.837363DEMAND_CON( 2) 0.000000 -7.158911DEMAND_CON( 3) 0.000000 -2.898893DEMAND_CON( 4) 0.000000 -2.578982DEMAND_CON( 5) 0.000000 -0.8851584DEMAND_CON( 6) 0.000000 0.000000SUPPLY_CON( 1) 0.000000 0.000000SUPPLY_CON( 2) 4.000000 0.000000如果把料厂P,Q的位置看成是已知并且固定的,这时是LP模型,只需把上面的程序中初始段的语句移到数据段就可以了。
运用Lindo 与Lingo 解规划问题【实验目的】1.了解Lindo 与Lingo 的基本使用方法。
2.熟悉掌握运用Lindo 与Lingo 求解规划问题。
【实验内容】(一) 运用Lindo 求解规划问题Lindo 示例1:线性规划问题1212121127264..5012848031000,0Max z x x s t x x x x x x x =++≤+≤≤≥≥在Lindo 环境下,打开一个新文件,直接输入: max 72x1+64x2 st2) x1+x2<50 3) 12x1+8x2<480 4) 3x1<100 end说明: ①第1行是目标函数,2),3),4)是为了标示各约束条件,便于从输出结果中查找相应信息.②每行行尾不用标点符号,程序最后以"end"结束. ③Lindo 中已规定所有决策变量均为非负.④乘号省略,式中不能有括号,右端不能有数学符号. ⑤符号,≤≥与<,>等效. Lindo 示例2:整数规划问题123123123123123234..1.535600280250400600000,0,0,,Max z x x x s t x x x x x x x x x x x x =++++≤++≤≥≥≥均为整数对应的程序是:max 2x1+3x2+4x3 st1.5x1+3x2+5x3<600 280x1+250x2+400x3<60000 end gin 3说明: 最后一行 "gin 3"是说明"3个变量均为整数". Lindo 示例3:0-1变量规划问题123123123111222333123123234..1.53560028025040060000801000801000801000,,,,Max z x x x s t x x x x x x y x y y x y y x y x x x y y y =++++≤++≤≤≤≤≤≤≤均为整数均为0-1变量对应的程序是:max 2x1+3x2+4x3st1.5x1+3x2+5x3<600 280x1+250x2+400x3<60000 x1-1000y1<0 x1-80y1>0 x2-1000y2<0 x2-80y2>0 x3-1000y3<0 x3-80y3>0 end gin 3 int y1 int y2 int y3说明: 最后3行是说明"123,,y y y 均为0-1变量". (二) 运用Lingo 求解规划问题Lingo 示例:非线性规划问题11211222123111221221121122212312231234.8() 5.6()(1086)..5001000015000.50.500.40.60(500)0(500)00,,500Max z x x x x x x x s t x x x x x x x x x x x x x x x x x x x x x =+++-+++≤++≤≤≤-≥-≥=++-=-=≤≤在Lingo 环境下,打开一个新文件,直接输入: Model:max=4.8*x11+4.8*x21+5.6*x12+5.6*x22-10*x1-8*x2-6*x3; x11+x12<x+500; x21+x22<1000; 0.5*x11-0.5*x21>0; 0.4*x12-0.6*x22>0; x=x1+x2+x3; (x1-500)*x2=0; (x2-500)*x3=0; x1<500; x2<500; x3<500; end说明: ①程序以"Model:"开始,每行最后加";",并以"end "结束.②乘号*不能省略,符号,≤≥与<,>等效. ③式中可有括号,右端可有数学符号. ④Lingo 中已规定所有决策变量均为非负.作业1: 用Lingo 或Lindo 软件求6.4中提出的线性规划模型. 作业2:用Lingo 软件求非线性规划模型123123123123112233234..1.53560028025040060000,,(80)0(80)0(80)0.Max z x x x s t x x x x x x x x x x x x x x x =++++≤++≤≥-≥-≥-≥0作业3:分别用Lindo 或Lingo 软件对下题进行求解某广告公司想在电视、广播上做宣传广告,其目的是争(1)受广告影响的女顾客数超过200万;(2)电视广告的费用不超过45万元;(3)电视广告白天至少播出4次,最佳时段至少播出2次;(4)通过网络媒体、杂志做广告各自要重复5到8次。
实验报告( 3 )院(系)课程名称:日期:年月日班级学号实验室专业姓名计算机号实验名称运用Lindo与Lingo解规划问题成绩评定所用软件Lindo与Lingo指导教师实验目的1.了解Lindo与Lingo的基本使用方法。
2熟悉掌握运用Lindo与Lingo求解规划问题实验内容作业1:用Lingo软件求非线性规划模型123123123123112233234..1.53560028025040060000,,(80)0(80)0(80)0.Max z x x xs t x x xx x x x x xx x x x x x=++++≤++≤≥-≥-≥-≥;0;;作业2:分别用Lindo或Lingo软件对下题进行求解某广告公司想在电视、广播上做宣传广告,其目的是争取尽可能多地影响顾客。
下表是公司进行市场调研的结果:电视网络媒体杂志白天最佳时段每次做广告费用(千元)45 86 25 12 受每次广告影响的顾客数(千人)350 880 430 180 受每次广告影响的女顾客数(千人)260 450 160 100 这家公司希望总广告费用不超过75万元,同时还要求:(1)受广告影响的女顾客数超过200万;(2)电视广告的费用不超过45万元;(3)电视广告白天至少播出4次,最佳时段至少播出2次;(4)通过网络媒体、杂志做广告各自要重复5到8次。
实验过程作业1:源程序:model:max=2*x1+3*x2+4*x3;1.5*x1+3*x2+5*x3<600;280*x1+250*x2+400*x3<60000;x1>0;x2>0;x3>0;x1*(x1-80)>0;x2*(x2-80)>0;x3*(x3-80)>0;End结果:输出结果:Local optimal solution found.Objective value: 611.2000Extended solver steps: 5Total solver iterations: 96Variable Value Reduced CostX1 80.00000 0.000000X2 150.4000 0.000000X3 0.000000 0.000000Row Slack or Surplus Dual Price1 611.2000 1.0000002 28.80000 0.0000003 0.000000 0.1200000E-014 80.00000 0.0000005 150.4000 0.0000006 0.000000 -0.80000007 0.000000 -0.1700000E-018 10588.16 0.0000009 0.000000 0.000000所以x1=80; x2=150.4; x3=0; 目标函数值z=611.2作业2:设电视广告在白天投入x1次,最佳时段x2次,网络煤体x3次,杂志x4次,影响顾客最多为z,则有:1234 123412341212341234max350880430108 .45862512750 2604501601002000 4586450425858,,,z x x x x st x x x xx x x xx xxxxxx x x x=++++++≤+++>+≤≥≥≤≤≤≤为整数LINGO源程序:max=350*x1+880*x2+430*x3+180*x4;45*x1+86*x2+25*x3+12*x4<750;260*x1+450*x2+160*x3+100*x4>2000;45*x1+86*x2<450;x1>4;x2>2;x3>5;x3<8;x4>5;x4<8;@gin (x1);@gin (x2);@gin (x3);@gin (x4);end输出结果:Global optimal solution found.Objective value: 8920.000Extended solver steps: 0Total solver iterations: 0Variable Value Reduced Cost X1 4.000000 -350.0000 X2 3.000000 -880.0000 X3 8.000000 -430.0000 X4 8.000000 -180.0000Row Slack or Surplus Dual Price1 8920.000 1.0000002 16.00000 0.0000003 2470.000 0.0000004 12.00000 0.0000005 0.000000 0.0000006 1.000000 0.0000007 3.000000 0.0000008 0.000000 0.0000009 3.000000 0.00000010 0.000000 0.000000 LINDO输入程序:max 350x1+880x2+430x3+180x4st45x1+86x2+25x3+12x4<750260x1+450x2+160x3+100x4>200045x1+86x2<450x1>4x2>2x3>5x3<8x4>5x4<8endgin 4输出结果:OBJECTIVE FUNCTION V ALUE1) 8920.000V ARIABLE V ALUE REDUCED COSTX1 4.000000 -350.000000X2 3.000000 -880.000000X3 8.000000 -430.000000X4 8.000000 -180.000000ROW SLACK OR SURPLUS DUAL PRICES2) 16.000000 0.0000003) 2470.000000 0.0000004) 12.000000 0.0000005) 0.000000 0.0000006) 1.000000 0.0000007) 3.000000 0.0000008) 0.000000 0.0000009) 3.000000 0.00000010) 0.000000 0.000000即当x1=4;x2=3;x3=8;x4=8时取得影响顾客最大Z=8920千人心得不算难,就是烦,嘿嘿………..体会注:实验报告用A4纸双面打印,篇幅不要超过一页。
Lindo 和Lingo 数学软件的简单使用方法一、Lindo最新版本:6.1版(注册版)限制:4000个约束、8000个变量、800个整型变量功能:可以求解线性规划、整数规划、混合整数规划、二次规划、目标规划。
我们主要用它来求解整数规划或混合整数规划。
特点:执行速度非常快 例1:求解整数规划问题12121212max 58..65945,0z x x s t x x x x x x =++≤+≤≥且整解:在lindo 的运行窗口中输入 max 5x1+8x2 stx1+x2<6 5x1+9x2<45 end gin 2然后按Solve 菜单或快捷键得运行结果。
OBJECTIVE FUNCTION V ALUE (目标函数最优值) 1) 40.00000VARIABLE V ALUE REDUCED COST (变量增加1时目标函数改变量) X1 0.000000 -5.000000 X2 5.000000 -8.000000ROW SLACK OR SURPLUS DUAL PRICES (行) (松弛变量值) (对偶价格,表示约束右边常数增加1时目标函数改变量)) 2) 1.000000 0.000000 3) 0.000000 0.000000RANGES IN WHICH THE BASIS IS UNCHANGED (灵敏度分析) OBJ COEFFICIENT RANGES (目标函数中变量的系数的变动范围,在此范围内最优解不变) V ARIABLE CURRENT ALLOWABLE ALLOWABLECOEF (当前系数) INCREASE (增加量) DECREASE (减少量) X1 5.000000 0.000000 INFINITY X2 8.000000 0.000000 INFINITYRIGHTHAND SIDE RANGES (约束条件右边常数的变化范围,在此范围内最优基不变) ROW CURRENT ALLOWABLE ALLOWABLERHS (当前系数)INCREASE (增加量) DECREASE (减少量) 2 6.000000 INFINITY 1.000000 (第一个约束) 3 45.000000 INFINITY 0.000000 (第二个约束)注意:1. 软件中已经假设所以的变量是非负的,所以非负约束不必输入; 2. 可以用 FREE 变量 来取消变量的非负限制; 3. 不区分大小写; 4. 约束条件“<=”、“>=”可以用“<”、“>”代替; 5. 变量名不能超过8个字符;6. 变量与系数间可以有空格,但不能有任何运算符号(如*等); 7. 不允许变量出现在一个约束条件的右端; 8. 输入中不能有“()”和“,”;比如4(x1+x2)应写成4x1+4x2等;9. 在一个式中同一变量不能出现一次以上,比如2x1+3x2-x1应简化为x1+3x2;gin 变量 变量为整数变量 gin nint n 模型中的前n 个变量为0/1整数变量,关于变量的顺序可由输出结果查证! 整数变量申明须放在最后(即end 后)例2:集合覆盖问题设有一集合S={1,2,3,4,5},及S 的一个子集簇P={{1,2},{1,3,5},{2,4,5},{3},{1},{4,5}},假设选择P 中各个元素的费用为1、1.5、1.5、0.8、0.8、1,试从P 中选一些元素使之覆盖S 且所选元素费用之和最小。
数学建模:运用Lindolingo软件求解线性规划
1、实验内容:
对下面是实际问题建立相应的数学模型,并用数学软件包Lindo/lingo对模型进行求解。
某厂生产甲乙两种口味的饮料,每百箱甲饮料需用原料6千克,工人10,可获利10万元;每百箱乙饮料需用原料5千克,工人20名,可获利9万元.名今工厂共有原料60千克,工人150名,又由于其他条件所限甲饮料产量不超过8百箱.问如何安排生产计划,即两种饮料各生产多少使获利最大.进一步讨论:
1)若投资0.8万元可增加原料1千克,问应否作这项投资.
2)若每百箱甲饮料获利可增加1万元,问应否改变生产计划.
数学建模论文
运用lindo/lingo软件求解线性规划
运用lindo/lingo软件求解线性规划
一、摘要
本文要解决的问题是如何安排生产计划,即两种饮料各生产多少使获利最大。
首先,对问题进行重述明确题目的中心思想,做出合理的假设,对符号做简要的说明。
然后,对问题进行分析,根据题目的要求,建立合适的数学模型。
最后,运用lindo/lingo软件求出题目的解。
【关键词】最优解 lindo/lingo软件
第二、问题的重述
某厂生产甲乙两种口味的饮料,每百箱甲饮料需用原料6千克,工人10名,可获利10万元;每百箱乙饮料需用原料5千克,工人20名,可获利9万元.今工厂共有原
料60千克,工人150名,又由于其他条件所限甲饮料产量不超过8百箱.问如何安排生产计划,即两种饮料各生产多少使获利最大.进一步讨论:
1)若投资0.8万元可增加原料1千克,问应否作这项投资。
2)若每百箱甲饮料获利可增加1万元,问应否改变生产计划。
第三、模型的基本假设
1、每一箱饮料消耗的人力、物力相同。
2、每个人的能力相等。
3、生产设备对生产没有影响。
第四、符号说明
1、x.....甲饮料
2、y.....乙饮料
3、z.....增加的原材料
第五、问题分析
根据题目要求:如何安排生产计划,即两种饮料各生产多少使获利最大,可知本题所求的是利润的最大值。
我们可以先建立数学模型,然后用lindo/lingo软件包求解模型的最大值。
第六、模型的建立及求解根据题目建立如下3个模型:
模型1:
max=0.1*x+0.09*y;
0.06*x+0.05*y<=60;
0.1*x+0.2*y<=150;
x+y<=800;
结果:x=800;y=0;max=80
模型2:
max=0.1*x+0.09*y-0.8*z;
0.06*x+0.05*y-z<=60;
0.1*x+0.2*y<=150;
x+y<=800;
结果:x=800;y=0;z=0;max=80
模型3:
max=0.11*x+0.09*y;
0.06*x+0.05*y<=60;
0.1*x+0.2*y<=150;
x+y<=800;
结果:x=800;y=0;max=88
第七、结果分析
从上述结果可以看出:
1、若投资0.8万元可增加原料1千克,最大利润值仍为80万元,所以不作这项
投资;
2、若每百箱甲饮料获利可增加1万元,最大利润值为88万元,但生产x饮料仍
为800箱,y饮料0箱,所以没有改变生产计划。
第八、模型的评价及推广
模型的评价
1、模型的优点
本文模型能使企业在经营过程中对资源进行合理分配,以致使公司获得最大的利润。
2、模型的缺点
本文模型的建立与求解建立在许多假设的基础上,并由于在运输过程中会出现许多主观的、客观的因素;无论我们如何细致的计算,结果只能是一个大致的
估计。
模型的推广
本文模型可以解决资源的优化配置问题,使企业的利润达到最大值,可以运用到运输业,生产制造业等行业。
第九、参考文献
[1]线性规划.ppt
[2]Lindo使用手册.pdf
[3]Lindo软件简介.pdf
[4]论文写作规范.doc及DNA序列分类.doc
第十、附录
程序1:
max=0.1*x+0.09*y;
0.06*x+0.05*y<=60;
0.1*x+0.2*y<=150;
x+y<=800;
Global optimal solution found.
Objective value: 80.00000
Infeasibilities: 0.000000
Total solver iterations: 4
Variable Value Reduced Cost
X 800.0000 0.000000
Y 0.000000 0.1000000E-01
Row Slack or Surplus Dual Price
1 80.00000 1.000000
2 12.00000 0.000000
3 70.00000 0.000000
4 0.000000 0.1000000 程序2
max=0.1*x+0.09*y-0.8*z;
0.06*x+0.05*y-z<=60;
0.1*x+0.2*y<=150;
x+y<=800;
Global optimal solution found. Objective value: 80.00000 Infeasibilities: 0.000000
Total solver iterations: 1 Variable Value Reduced Cost
X 800.0000 0.000000
Y 0.000000 0.1000000E-01
Z 0.000000 0.8000000
Row Slack or Surplus Dual Price
1 80.00000 1.000000
2 12.00000 0.000000
3 70.00000 0.000000
4 0.000000 0.1000000 程序3
max=0.11*x+0.09*y;
0.06*x+0.05*y<=60;
0.1*x+0.2*y<=150;
x+y<=800;
Global optimal solution found. Objective value: 88.00000 Infeasibilities: 0.000000
Total solver iterations: 2 Variable Value Reduced Cost
X 800.0000 0.000000
Y 0.000000 0.2000000E-01
Row Slack or Surplus Dual Price
1 88.00000 1.000000
2 12.00000 0.000000
3 70.00000 0.000000
4 0.000000 0.1100000。