实验报告
LINGO软件在线性规划中的运用
学院名称 专业名称 学生姓名 学
号
陈星明 教授 环境与资源学院
采矿工程
指导教师
二〇一五年十一月
实验 LINGO软件在线性规划中的运用
实验目的
掌握LINGO软件求解线性规划问题的基本步骤,了解LINGO软件解决线性规划问题的基本原理,熟悉常用的线性规划计算代码,理解线性规划问题的迭代关系。
实验仪器、设备或软件
电脑,LINGO软件
实验内容
1.LINGO软件求解线性规划问题的基本原理;
2.编写并调试LINGO软件求解线性规划问题的计算代码;
实验步骤
1.使用LINGO计算并求解线性规划问题;
2.写出实验报告,并浅谈学习心得体会(线性规划的基本求解思路与方法及求解过程中出现的问题及解决方法)。
实验过程
有一艘货轮,分为前、中、后三个舱位,它们的容积与允许载重量如下表所示。现有三种商品待运,已知有关数据列于下表中。又为了航运安全,要求前、中、后舱在实际载重量上大体保持各舱最大允许载重量的比例关系。具体要求前、后舱分别与中舱之间的载重量比例偏差不超过15%,前、后舱之间不超过10%。问货轮应装载A、B、C各多少件,运费收入为最大?试建立这个问题的线性规划模型。 前 舱 中 舱 3000 5400 后 舱 1500 1500 最大允许载重量2000 (t) 容积(m3) 商品 数量(件) 4000 每件体积(m3/件) 每件重量(t/运价(元/件) 8 6 件) 1000 700 A B 600 1000 10 5 C 800 7 5 600 首先分析问题,建立数学模型:
确定决策变量
假设i=1,2,3分别代表商品A、B、C,8用j=1,2,3分别代表前、中、后舱,设决策变量xij为装于j舱位的第i种商品的数量(件)。 确定目标函数 商品A的件数为:x11x12x13 商品B的件数为:x21x22x23 商品A的件数为:x31x32x33
为使运费最高,目标函数为: 确定约束条件
前、中、后舱位载重限制为: 前、中、后舱位体积限制为:
A、B、C三种商品数量的限制条件:
各舱最大允许载重量的比例关系构成的约束条件: 且决策变量要求非负,即xij≥0,i=1,2,3;j=1,2,3。 综上所述,此问题的线性规划数学模型为:
xij≥0,i=1,2,3;j=1,2,3。
把数学模型编写成代码写入LINGO程序
编入如下代码:
!设前舱运A为x11,运B:x12,运C:x13; !设中舱运A为x21,运B:x22,运C:x23;
!设后舱运A为x31,运B:x32,运C:x33;!单位:件; !目标函数;
max=1000*(x11+x12+x13)+700*(x21+x22+x23)+600*(x31+x32+x33); !数量约束;
x11+x12+x13<=600; x21+x22+x23<=1000; x31+x32+x33<=800; !容量约束;
x11*10+x21*5+x31*7<=4000; x12*10+x22*5+x32*7<=5400; x13*10+x23*5+x33*7<=1500; !重量约束;
x11*8+x21*6+x31*5<=2000; x12*8+x22*6+x32*5<=3000; x13*8+x23*6+x33*5<=1500; !平衡约束;
(2/3)*(1-0.15)<=(x11*8+x21*6+x31*5)/(x12*8+x22*6+x32*5); (1/2)*(1-0.15)<=(x13*8+x23*6+x33*5)/(x12*8+x22*6+x32*5); (4/3)*(1-0.10)<=(x11*8+x21*6+x31*5)/(x13*8+x23*6+x33*5); (x11*8+x21*6+x31*5)/(x12*8+x22*6+x32*5)<=(2/3)*(1+0.15); (x13*8+x23*6+x33*5)/(x12*8+x22*6+x32*5)<=(1/2)*(1+0.15); (x11*8+x21*6+x31*5)/(x13*8+x23*6+x33*5)<=(4/3)*(1+0.10); !整数约束;
@gin(x11);@gin(x12);@gin(x13); @gin(x21);@gin(x22);@gin(x23); @gin(x31);@gin(x32);@gin(x33); 如下图所示: 然后运行得出结果:
Local optimal solution found.
Objective value: 801000.0 Extended solver steps: 0 Total solver iterations: 4 Variable Value Reduced Cost X11 150.0000 -1000.000 X12 375.0000 -1000.000 X13 75.00000 -1000.000 X21 0.000000 -700.0000 X22 0.000000 -700.0000 X23 150.0000 -700.0000 X31 160.0000 -600.0000 X32 0.000000 -600.0000 X33 0.000000 -600.0000 Row Slack or Surplus Dual Price 1 801000.0 1.000000 2 0.000000 0.000000 3 850.0000 0.000000 4 640.0000 0.000000 5 1380.000 0.000000 6 1650.000 0.000000 7 0.000000 0.000000 8 0.000000 0.000000 9 0.000000 0.000000 10 0.000000 0.000000 11 0.1000000 0.000000 12 0.7500000E-01 0.000000 13 0.1333333 0.000000 14 0.1000000 0.000000 15 0.7500000E-01 0.000000 16 0.1333333 0.000000
由运行结果可以得知:
前舱运输A 150件,B 375件,C 75件; 中舱运输A 0件,B 0件,C 150件; 后舱运输A 160件,B 0件,C 0件;
的总利润最大为801000.0元。
心得体会
运筹学是近几十年发展起来的一门新兴学科。它的目的是为管理人员在做决议是提供科学的依据,它是实现现代化管理的有力工具。应用运筹学处理问题是,有两个重要特点:一是从全局观点出发;二是通过建模,对于要求解的问题得到最合理的决策。
我国拥有的资源量,从人均来看,是一个资源相对贫乏的国家。因此,如何合理、有效、经济的利用资源,是相当重要的。提高管理工作的效能和效益,是人尽其才,物尽其用,将运筹的方法应用于实践,运筹学拥有广阔的前景。管理工作者、科学工作者和从事工程科学管理的人们都需要学习和掌握这门科学。 在运筹学上机实验中我自学了应用LINGO软件来实现用计算机的建模和对规划问题的求解。通过学习,我学会了使用软件对线性规划等运筹学问题。总之我感觉运筹学是一门很神奇的学科,他对我们有很大的帮助。
因篇幅问题不能全部显示,请点此查看更多更全内容