运筹学lingo的实验
- 格式:doc
- 大小:559.00 KB
- 文档页数:4
Southwest university of science and technology实验报告LINGO软件在线性规划中的运用学院名称环境与资源学院专业名称采矿工程学生姓名学号____________________________________ 指导教师陈星明教授二◦一五年十一月实验LINGO软件在线性规划中的运用实验目的掌握LINGO软件求解线性规划问题的基本步骤,了解LINGO软件解决线性规划问题的基本原理,熟悉常用的线性规划计算代码,理解线性规划问题的迭代关系。
实验仪器、设备或软件电脑,LINGO软件实验内容1. LINGO软件求解线性规划问题的基本原理;2•编写并调试LINGO软件求解线性规划问题的计算代码;实验步骤1•使用LINGO计算并求解线性规划问题;2 •写出实验报告,并浅谈学习心得体会(线性规划的基本求解思路与方法及求解过程中出现的问题及解决方法)。
实验过程有一艘货轮,分为前、中、后三个舱位,它们的容积与允许载重量如下表所示。
现有三种商品待运,已知有关数据列于下表中。
又为了航运安全,要求前、中、后舱在实际载重量上大体保持各舱最大允许载重量的比例关系。
具体要求前、后舱分别与中舱之间的载重量比例偏差不超过15%,前、后舱之间不超过10%。
问货轮首先分析问题,建立数学模型:确定决策变量假设i=1,2,3分别代表商品A、B C, 8用j=1,2,3分别代表前、中、后舱,设决策变量X ij为装于j舱位的第i种商品的数量(件)。
确定目标函数商品A的件数为:x11- x12x13商品B的件数为:x21x22x23商品A的件数为:X31 - X32 - X33为使运费最高,目标函数为:确定约束条件前、中、后舱位载重限制为:前、中、后舱位体积限制为:A、B、C三种商品数量的限制条件:各舱最大允许载重量的比例关系构成的约束条件:且决策变量要求非负,即X j > 0,i=1,2;j=1,2,3。
学生实验报告实验课程名称《运筹学》开课实验室计算机中心第二机房学院专业学生姓名学号开课时间 2015 至 2016 学年第二学期实验一中小型线性规划模型的求解与Lingo软件的初步使用一、实验目的了解Lingo软件的基本功能和简单线性规划模型的求解的输入和输出结果。
二、实验内容1.在Lingo中求解下面的线性规划数学模型:max z=2x1+3x2x 1+2x2≤84x1≤164x2≤12x 1, x2≥02.在Lingo中求解教材P55习题(1)的线性规划数学模型;3.建立教材P42例8的数学模型并用Lingo求解;4.建立教材P57习题的数学模型并用Lingo求解。
三、实验要求1.给出所求解问题的数学模型;2.给出Lingo中的输入;3.能理解Solution Report中输出的四个部分的结果;4.能给出最优解和最优值;5.能理解哪些约束是取等式和哪些约束取不等式。
四、实验步骤五、结论1.该线性规划模型的目标函数值为14,该线性规划经过一次迭代求得最优解,有2个总决策变量,包括目标函数一共有4个约束,最优解的变量X1=4,X2=2 。
2. 该线性规划模型的目标函数值为2,该线性规划经过2次迭代求得最优解,有4个总决策变量,包括目标函数一共有4个约束,最优解的变量X1=0、x2=8、x3=0、x4=-6。
3.该线性规划模型的目标函数值为-2,该线性规划经过0次迭代求得最优解,有3个总决策变量,包括目标函数一共有4个约束,最优解的变量x1=4、x2=1、x3=9。
4.该线性规划模型的目标函数值为150,该线性规划经过4次迭代求得最优解,有6个总决策变量,包括目标函数一共有7个约束,最优解的变量x1=60、x2=10、x3=50、x4=0、x5=30、x6=0。
实验二中小型运输问题数学模型的Lingo软件求解一、实验目的熟悉运输问题的数学模型,掌握简单运输问题数学模型的Lingo软件求解的方法,掌握解报告的内容。
《运筹学》上机实验报告学 院 机电工程学院 专 业 工业工程 指导教师 吴小东 班 级 工业10-1班 学生姓名 林 金 铎 学生学号实验时间 2012-2013学年第一学期实验一 使用LINGO 求解线性规划问题班级:工业10-1班 姓名:林金铎 学号: 评阅成绩: 已知如下线性规划模型:123max 303540z x x x =++1231231231233251823412229,,0x x x x x x x x x x x x ++≤⎧⎪++≤⎪⎨++≤⎪⎪≥⎩ 一、利用集的方法编写上述线性规划模型的LINGO 程序。
在LINGO 软件模型中编写本题的程序如下图1-1所示所示。
图1-1 LINGO 模型窗口截图点击LINGO 菜单下的Solve 选项,LINGO 软件求解所输入的模型,得到LINGO 运行状态窗口如图1-2所示图1-2 LINGO运行状态窗口截图运行结束后,关闭LINGO运行状态窗口,获得LINGO软件的结果报告窗口,如图1-3、1-4所示。
图1-3 LINGO结果报告窗口截图(一)图1-4 LINGO结果报告窗口截图(二)二、根据编写的程序,回答以下问题:1、哪些是原始集答:var(j), const(i)是原始集2、哪个是派生集该派生集是稠密集还是稀疏集该派生集有多少个成员答:A(i,j)是派生集,属于稠密集合,共有9个成员3、属性值“5”是属于成员(b1,x3)还是(b3,x1)的属性值答:属于成员(b1,x3)的属性值三、根据程序的运行结果,回答以下问题:1、全局最优值是否已经找到该值是多少答:已经找到,最优值为1652、该模型求解一共迭代了多少次答:共迭代了2次3、在求解结果的界面中,Variable、Value、Reduced Cost、Row、Slack or Surplus 和Dual Price分别表示什么答:Variable表示运算时各定义变量的取值;Value表示给出最优解中各变量的值;Reduced Cost表示列出最优单纯形表中判别数所在行的变量的系数,表示当变量有微小变动时, 目标函数的变化率;Row表示行数;Slack or Surplus 表示给出松驰变量的值;Dual Price表示当对应约束有微小变动时, 目标函数的变化率。
运筹学实验报告姓名:学号:班级:相关问题说明:一、实验性质和教学目的本实验是运筹学课内安排的上机操作实验。
目的在于了解、熟悉计算机Lingo软件在运筹学模型求解中的作用,激发学习兴趣,提高学习效果,增强自身的动手能力,提高实际应用能力。
二、实验基本要求要求学生:1. 实验前认真做好理论准备,仔细阅读实验指导书;2. 遵从教师指导,认真完成实验任务,按时按质提交实验报告。
三、主要参考资料1.LINGO软件2. LINGO8.0及其在环境系统优化中的应用,天津大学出版社,20053. 优化建模与LINDO/LINGO软件,清华大学出版社,20054.运筹学编写组主编,运筹学(修订版),清华大学出版社,19905.蓝伯雄主编,管理数学(下)—运筹学,清华大学出版社,19976.胡运权主编,运筹学习题集(修订版),清华大学出版社,19957.胡运权主编,运筹学教程(第二版),清华大学出版社,2003实验内容1、线性规划问题:⎪⎪⎩⎪⎪⎨⎧≥≤+≤+≤++=0,13119241171289..68max 2121212121x x x x x x x x t s x x z (1) 给出原始代码;(2) 计算结果(包括灵敏度分析,求解结果粘贴);(3) 回答下列问题(手写):a ) 最优解及最优目标函数值是多少;b ) 资源的对偶价格各为多少,并说明对偶价格的含义;c ) 为了使目标函数值增加最多,让你选择一个约束条件,将它的常数项增加一个单位,你将选择哪一个约束条件?这时目标函数值将是多少?d ) 对x 2的目标函数系数进行灵敏度分析;e ) 对第2个约束的约束右端项进行灵敏度分析;f ) 结合本题的结果解释“Reduced Cost ”的含义。
对偶价格就是说 约束方程右端变量增加1对目标函数值的影响 答案: (1)代码max =8*x1+6*x2; 9*x1+8*x2<=12; 7*x1+11*x2<=24; 9*x1+11*x2<=13; x1>=0; x2>=0;(2)计算结果Global optimal solution found.Objective value: 10.66667 Total solver iterations: 2Variable Value Reduced Cost X1 1.333333 0.000000 X2 0.000000 1.111111Row Slack or Surplus Dual Price 1 10.66667 1.000000 2 0.000000 0.8888889 3 14.66667 0.000000 4 1.000000 0.000000 5 1.333333 0.0000006 0.000000 0.000000 Ranges in which the basis is unchanged:Objective Coefficient RangesCurrent Allowable Allowable Variable Coefficient Increase Decrease X1 8.000000 INFINITY 1.250000 X2 6.000000 1.111111 INFINITYRighthand Side RangesRow Current Allowable Allowable RHS Increase Decrease 2 12.00000 1.000000 12.00000 3 24.00000 INFINITY 14.66667 4 13.00000 INFINITY 1.000000 5 0.0 1.333333 INFINITY 6 0.0 0.0 INFINITY(3)a) b) c) d) e) f)2、运输问题:(1) 给出原始代码;(2) 计算结果(决策变量求解结果粘贴)Min Z = Cij Xij∑=61i Xij <=bj (j=1...8) 销量约束∑∑==6181i j∑=81j Xij = ai (i=1...6) 产量约束Xij ≥ 0(i=1...6;j=1...8)代码:model :!6发点8 model :!6发点8收点运输问题; sets :warehouses/wh1..wh6/: capacity; vendors/v1..v8/: demand;links(warehouses,vendors): cost, volume; endsetsmin =@sum (links: cost*volume); !目标函数; @for (vendors(J):@sum (warehouses(I): volume(I,J))<=demand(J)); !需求约束; @for (warehouses(I):@sum (vendors(J): volume(I,J))=capacity(I)); !产量约束; !这里是数据; data :capacity=55 47 42 52 41 32; demand=60 55 51 43 41 52 43 38; cost=6 2 9 7 4 2 5 9 4 5 5 3 8 5 3 25 2 1 3 7 4 8 3 767 9 9 2 7 1 2 3 6 5 7 2 6 5 5 9 2 28 1 4 3; enddata end答案Global optimal solution found.Objective value: 473.0000 Infeasibilities: 0.000000 Total solver iterations: 9Model Class: LPTotal variables: 48 Nonlinear variables: 0 Integer variables: 0Total constraints: 15Nonlinear constraints: 0Total nonzeros: 144Nonlinear nonzeros: 0Variable Value Reduced Cost CAPACITY( WH1) 55.00000 0.000000 CAPACITY( WH2) 47.00000 0.000000 CAPACITY( WH3) 42.00000 0.000000 CAPACITY( WH4) 52.00000 0.000000 CAPACITY( WH5) 41.00000 0.000000 CAPACITY( WH6) 32.00000 0.000000 DEMAND( V1) 60.00000 0.000000 DEMAND( V2) 55.00000 0.000000 DEMAND( V3) 51.00000 0.000000 DEMAND( V4) 43.00000 0.000000 DEMAND( V5) 41.00000 0.000000 DEMAND( V6) 52.00000 0.000000 DEMAND( V7) 43.00000 0.000000 DEMAND( V8) 38.00000 0.000000 COST( WH1, V1) 6.000000 0.000000 COST( WH1, V2) 2.000000 0.000000 COST( WH1, V3) 9.000000 0.000000 COST( WH1, V4) 7.000000 0.000000 COST( WH1, V5) 4.000000 0.000000 COST( WH1, V6) 2.000000 0.000000 COST( WH1, V7) 5.000000 0.000000 COST( WH1, V8) 9.000000 0.000000 COST( WH2, V1) 4.000000 0.000000 COST( WH2, V2) 5.000000 0.000000 COST( WH2, V3) 5.000000 0.000000 COST( WH2, V4) 3.000000 0.000000 COST( WH2, V5) 8.000000 0.000000 COST( WH2, V6) 5.000000 0.000000 COST( WH2, V7) 3.000000 0.000000 COST( WH2, V8) 2.000000 0.000000 COST( WH3, V1) 5.000000 0.000000 COST( WH3, V2) 2.000000 0.000000 COST( WH3, V3) 1.000000 0.000000 COST( WH3, V4) 3.000000 0.000000 COST( WH3, V5) 7.000000 0.000000 COST( WH3, V6) 4.000000 0.000000COST( WH3, V8) 3.000000 0.000000 COST( WH4, V1) 7.000000 0.000000 COST( WH4, V2) 6.000000 0.000000 COST( WH4, V3) 7.000000 0.000000 COST( WH4, V4) 9.000000 0.000000 COST( WH4, V5) 9.000000 0.000000 COST( WH4, V6) 2.000000 0.000000 COST( WH4, V7) 7.000000 0.000000 COST( WH4, V8) 1.000000 0.000000 COST( WH5, V1) 2.000000 0.000000 COST( WH5, V2) 3.000000 0.000000 COST( WH5, V3) 6.000000 0.000000 COST( WH5, V4) 5.000000 0.000000 COST( WH5, V5) 7.000000 0.000000 COST( WH5, V6) 2.000000 0.000000 COST( WH5, V7) 6.000000 0.000000 COST( WH5, V8) 5.000000 0.000000 COST( WH6, V1) 5.000000 0.000000 COST( WH6, V2) 9.000000 0.000000 COST( WH6, V3) 2.000000 0.000000 COST( WH6, V4) 2.000000 0.000000 COST( WH6, V5) 8.000000 0.000000 COST( WH6, V6) 1.000000 0.000000 COST( WH6, V7) 4.000000 0.000000 COST( WH6, V8) 3.000000 0.000000 VOLUME( WH1, V1) 0.000000 4.000000 VOLUME( WH1, V2) 55.00000 0.000000 VOLUME( WH1, V3) 0.000000 7.000000 VOLUME( WH1, V4) 0.000000 5.000000 VOLUME( WH1, V5) 0.000000 2.000000 VOLUME( WH1, V6) 0.000000 0.000000 VOLUME( WH1, V7) 0.000000 3.000000 VOLUME( WH1, V8) 0.000000 8.000000 VOLUME( WH2, V1) 0.000000 1.000000 VOLUME( WH2, V2) 0.000000 2.000000 VOLUME( WH2, V3) 0.000000 2.000000 VOLUME( WH2, V4) 43.00000 0.000000 VOLUME( WH2, V5) 0.000000 5.000000 VOLUME( WH2, V6) 0.000000 2.000000 VOLUME( WH2, V7) 4.000000 0.000000 VOLUME( WH2, V8) 0.000000 0.000000 VOLUME( WH3, V1) 0.000000 4.000000 VOLUME( WH3, V2) 0.000000 1.000000VOLUME( WH3, V4) 0.000000 2.000000 VOLUME( WH3, V5) 0.000000 6.000000 VOLUME( WH3, V6) 0.000000 3.000000 VOLUME( WH3, V7) 0.000000 7.000000 VOLUME( WH3, V8) 0.000000 3.000000 VOLUME( WH4, V1) 0.000000 5.000000 VOLUME( WH4, V2) 0.000000 4.000000 VOLUME( WH4, V3) 0.000000 5.000000 VOLUME( WH4, V4) 0.000000 7.000000 VOLUME( WH4, V5) 0.000000 7.000000 VOLUME( WH4, V6) 14.00000 0.000000 VOLUME( WH4, V7) 0.000000 5.000000 VOLUME( WH4, V8) 38.00000 0.000000 VOLUME( WH5, V1) 41.00000 0.000000 VOLUME( WH5, V2) 0.000000 1.000000 VOLUME( WH5, V3) 0.000000 4.000000 VOLUME( WH5, V4) 0.000000 3.000000 VOLUME( WH5, V5) 0.000000 5.000000 VOLUME( WH5, V6) 0.000000 0.000000 VOLUME( WH5, V7) 0.000000 4.000000 VOLUME( WH5, V8) 0.000000 4.000000 VOLUME( WH6, V1) 0.000000 4.000000 VOLUME( WH6, V2) 0.000000 8.000000 VOLUME( WH6, V3) 0.000000 1.000000 VOLUME( WH6, V4) 0.000000 1.000000 VOLUME( WH6, V5) 0.000000 7.000000 VOLUME( WH6, V6) 32.00000 0.000000 VOLUME( WH6, V7) 0.000000 3.000000 VOLUME( WH6, V8) 0.000000 3.000000Row Slack or Surplus Dual Price1 473.0000 -1.0000002 19.00000 0.0000003 0.000000 0.0000004 9.000000 0.0000005 0.000000 0.0000006 41.00000 0.0000007 6.000000 0.0000008 39.00000 0.0000009 0.000000 1.00000010 0.000000 -2.00000011 0.000000 -3.00000012 0.000000 -1.00000013 0.000000 -2.00000014 0.000000 -2.00000015 0.000000 -1.0000003、一般整数规划问题:某服务部门各时段(每2h为一时段)需要的服务员人数见下表。
实验一:利用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模型,只需把上面的程序中初始段的语句移到数据段就可以了。
实验项目一线性规划实验学时:2实验目的:线性规划(Linear Programming,简写LP)是运筹学中最成熟的一个分枝,而且是应用最为广泛的一个运筹学分枝,是解决最优化问题的重要工具。
而目前 Lindo/lingo 是求解线性规划比较成熟的一个软件,通过本实验,掌握线性规划模型在 Lindo/lingo 中的求解,并能达到灵活运用。
实验要求:1.掌握线性规划的建模步骤及方法;2.掌握Lindo/lingo 的初步使用;3.掌握线性规划模型在Lindo/lingo 建模及求解;4.掌握线性规划的灵敏度分析实验内容及步骤:例:美佳公司计划制造I、II 两种家电产品。
已知各制造一件时分别占用设备A、B 的台时、调试时间、调试工序每天可用于这种家电的能力、各售出一件时的获利情况,如表1-1 所示。
1.问该公司应制造两种家电各多少件,使其获取的利润最大。
2. 如果资源出租,资源出租的最低价格至少是多少(即每种资源的影子价格是多少)。
3.若家电I 的利润不变,家电II 的利润在什么范围内变化时,则该公司的最优生产计划将不发生变化。
4. 若设备A 和B 每天可用能力不变,则调试工序能力在什么范围内变化时,问题的最优基不变。
解:设x1表示产品I 的生产量; x2表示产品II 的生产量,所在该线性规划的模型为:从此线性规划的模型中可以看出,第一个小问是典型的生产计划问题,第二小问是相应资源的影子价格,第三和第四个小问则是此问题的灵敏度分析。
现在我们利用lingo8.0 来教你求解线性规划问题。
第一步,启动lingo 进入初始界面如下图1-1 和图1-2 所示:第二步,在进行线性规划模型求解时,先要对初始求解方法及参数要进行设置,首先选择lingo 菜单下的Option 菜单项,并切换在general solver(通用求解器)页面下,如下图1-3 所示:general solver 选项卡上的各项设置意义如下表格1-1 所示:表格1-1 general solver 选项卡上的各项设置意义接下来再对Linear Solver(线性求解器)选项卡进行设置,切换界面如所示:其各项设置意义如下表格1-2 所示:表格1-2 Linear Solver 选项卡各项设置意义因为这个线性规划模型较为简单,数字也是比较小的,而且需要进行灵敏度分析,所以对general solver 选项卡上的Dual Computations(对偶计算)项设为“Prices and Ranges(计算对偶价格并分析敏感性)”。
Lingo软件实验报告一、实验内容:1)用lingo软件解决线性规划问题;2)熟悉lingo软件的相关操作。
3)对线性规划问题建立目标函数,罗列对应的表达式约束条件,并且对各变量设定实际的非负约束,考虑到lingo软件能方便地输入数据,并且有内置建模语言,提供内部处理函数,能很方便地处理一系列约束条件解出目标函数的最值,所以采用lingo软件解决线性规划问题。
4)对目标规划问题进行多目标处理,添加正负偏差变量罗列对应的表达式约束条件,并且对欲达到目标顺序添加优先等级,建立目标函数,利用lingo软件能能很方便地处理一系列约束条件解出目标函数的最值,采用lingo软件解决线性规划问题。
二、实验设备:计算机三、使用软件:lingo软件四、软件特点与优势:可以简单地表示模型,能方便地输入数据和选择输出。
五、举例计算:1,线性规划A: 营养套餐问题:根据生物营养学理论,要维持人体正常的生理健康需求,一个成年人每天需要从食物中获取3000cal热量,55g蛋白质和800mg钙。
假定市场上可供选择的食品有猪肉、鸡蛋、大米和白菜,这些食品每千克所含热量和营养成分,以及市场价格见下表。
问如何选购才能满足营养的前提下,使购买食品的总费用最小?解:为了建立该问题的数学模型,假设xj(j=1,2,3,4)分别为猪肉、鸡蛋、大米和白菜每天的购买量,则目标函数为Minz=20x1+8x2+4x3+2x4表示在满足营养要求的系列约束条件下,确定各种食物的购买量,使每天购买食物的总费用最小。
其约束条件是热量需求:1000x1+800x2+900x3+200x4>=3000蛋白质需求:50x1+60x2+20x3+10x4>=55钙需求:400x1+200x2+300x3+500x4>=800决策变量的非负约束:xj>=0(j=1,2,3,4)因此,营养配餐问题的数学模型为Minz=20x1+8x2+4x3+2x41000x1+800x2+900x3+200x4>=300050x1+60x2+20x3+10x4>=55400x1+200x2+300x3+500x4>=800xj>=0(j=1,2,3,4)B: lingo代码:model:min=20*x1+8*x2+4*x3+2*x4;1000*x1+800*x2+900*x3+200*x4>=3000;50*x1+60*x2+20*x3+10*x4>=55;400*x1+200*x2+300*x3+500*x4>=800;ENDC: 结果截屏:D:运行结果分析:由运行结构可知:该线性规划的最值为13.33333,即在变量为非负的情况下,只买3.33kg的大米可以满足目标函数的要求。
用lingo解决运输问题(一)实验目的1. 运输问题求解的编程实现2.掌握使用matlab、Lingo、Excel的求解功能求解运输问题,并对结果进行分析。
(二)实验内容《运筹学》清华三版P98页 3.3题Lingo程序代码及运行结果(选取部分):<1>3.3(1):程序代码:model:sets:xiao/1..4/:s;chan/1..3/:h;link(chan,xiao):x,y;endsetsdata:y=3 7 6 42 43 24 3 8 5;h=5 2 3;s=3 3 2 2;enddatamin=@sum(link:x*y);@for(xiao(j):@sum(chan(i):x(i,j))=s(j));@for(chan(i):@sum(xiao(j):x(i,j))=h(i));运行结果及结果分析:Objective value: 32.00000产地1分别将数量为3和2的产品运往销地甲和丁;产地2将数量为2的产品运往销地丙;产地3将数量为3的产品运往销地乙;该运输问题的最小费用为32.<2>3.3(2):model:sets:xiao/1..4/:s;chan/1..3/:h;link(chan,xiao):x,y;endsetsdata:y=10 6 7 1216 10 5 95 4 10 10;h=4 9 4;s=5 2 4 6;enddatamin=@sum(link:x*y);@for(xiao(j):@sum(chan(i):x(i,j))=s(j));@for(chan(i):@sum(xiao(j):x(i,j))=h(i));运行结果及结果分析:Objective value: 118.0000产地1将数量为1、2、1的产品分别运往销地甲、乙、丙;产地将数量为3、6的产品运往销地丙、丁;产地3将数量为4的产品运往销地甲。
最小费用为118.<3>3.3(3):程序代码:model:sets:xiao/1..5/:s;chan/1..4/:h;link(chan,xiao):x,y;endsetsdata:y=10 20 5 9 102 10 8 30 61 20 7 10 4h=5 6 2 9;s=4 4 6 2 4;enddatamin=@sum(link:x*y);@for(xiao(j):@sum(chan(i):x(i,j))=s(j));@for(chan(i):@sum(xiao(j):x(i,j))<=h(i));运行结果及结果分析:Objective value: 90.00000产地1分别将数量为1、2的产品运往销地丙、丁;产地2分别将数量为4、2的产品运往销地甲、戊;产地3将数量为2的产品运往销地戊;产地4分别将数量为4、5的产品运往销地乙、丙;最小运费为90.<4>3.3(4):程序代码:model:sets:xiao/1..5/:s;chan/1..5/:h;link(chan,xiao):x,y;endsetsdata:y=10 18 29 13 2213 10000 21 14 160 6 11 3 100009 11 23 18 1924 28 36 30 34;h=100 120 140 80 60;s=100 120 100 60 80;enddatamin=@sum(link:x*y);@for(xiao(j):@sum(chan(i):x(i,j))=s(j));@for(chan(i):@sum(xiao(j):x(i,j))<=h(i));运行结果及结果分析:Objective value: 5520.000产地1将数量为100的产品运往销地甲;产地2分别将数量为40、80的产品运往销地丙、戊;产地3分别将数量为的产品运往销地乙、丙、丁;产地4将数量为80的产品运往销地乙;产地5将数量为20的产品运往销地乙。
运筹学lingo实验报告
运筹学lingo实验报告
一、引言
实验目的
本次实验旨在探索运筹学lingo在解决实际问题中的应用,了解lingo的基本使用方法和解题思路。
实验背景
运筹学是一门研究决策和规划的学科,其能够帮助我们优化资源分配、解决最优化问题等。
lingo是一种常用的运筹学工具,具有强大的求解能力和用户友好的界面,被广泛应用于各个领域。
二、实验步骤
准备工作
•安装lingo软件并激活
•熟悉lingo界面和基本功能
确定问题
•选择一个运筹学问题作为实验对象,例如线性规划、整数规划、网络流等问题
•根据实际问题,使用lingo的建模语言描述问题,并设置变量、约束条件和目标函数
运行模型
•利用lingo的求解器,运行模型得到结果
结果分析
•分析模型求解结果的合理性和优劣,对于不符合要求的结果进行调整和优化
结论
•根据实验结果,总结lingo在解决该问题中的应用效果和局限性,对于其他类似问题的解决提出建议和改进方案
三、实验总结
实验收获
•通过本次实验,我熟悉了lingo软件的基本使用方法和建模语言,增加了运筹学领域的知识和实践经验。
实验不足
•由于时间和条件的限制,本次实验仅涉及了基本的lingo应用,对于一些复杂问题的解决还需要进一步学习和实践。
•在以后的学习中,我将继续深入研究lingo的高级功能和应用场景,以提升运筹学问题的求解能力。
以上就是本次实验的相关报告内容,通过实验的实践和总结,我对lingo在运筹学中的应用有了更深入的理解,为今后的学习和研究奠定了基础。