大连科技学院运筹学(Z)大作业LINGO软件在函数最大值中的运用
学院名称
专业班级
学生组号
学生姓名
指导教师
二〇一八年五月
实验LINGO软件在函数最大值中的运用
大作业目的
掌握LINGO软件求解函数最大值的基本步骤,了解LINGO软件解决函数最大值的基本原理,熟悉常用的函数最大值计算代码,理解函数最大值的迭代关系。
仪器、设备或软件
电脑,LINGO软件
大作业内容
1.LINGO软件求解函数最大值的基本原理;
2.编写并调试LINGO软件求解函数最大值的计算代码;
实施步骤
1.使用LINGO计算并求解函数最大值问题;
2.写出实验报告,并浅谈学习心得体会(选址问题的基本求解思路与方法及求解过程中出现的问题及解决方法)。
实施过程
有一艘货轮,分为前、中、后三个舱位,它们的容积与允许载重量如下表所示。
现有三种商品待运,已知有关数据列于下表中。
又为了航运安全,要求前、中、后舱在实际载重量上大体保持各舱最大允许载重量的比例关系。
具体要求前、后舱分别与中舱之间的载重量比例偏差不超过15%,前、后舱之间不超过10%。
问货轮应装载A、B、C各多少件,运费收入为最大?试建立这个问题的线性规
首先分析问题,建立数学模型:
确定决策变量
假设i=1,2,3分别代表商品A、B、C,8用j=1,2,3分别代表前、中、后舱,设决策变量x ij为装于j舱位的第i种商品的数量(件)。
确定目标函数
商品A 的件数为: 商品B 的件数为: 商品A 的件数为: 为使运费最高,目标函数为:
确定约束条件
前、中、后舱位载重限制为:
前、中、后舱位体积限制为:
A 、
B 、
C 三种商品数量的限制条件:
各舱最大允许载重量的比例关系构成的约束条件:
且决策变量要求非负,即x ij ≥0,i=1,2,3;j=1,2,3。
综上所述,此问题的线性规划数学模型为:
111213x x x ++212223x x x ++313233x x x ++()()()111213212223313233 1000700600Max Z x x x x x x x x x =++++++++112131122232132333865200086530008651500
x x x x x x x x x ++≤++≤++≤112131122232132333105740001057540010571500
x x x x x x x x x ++≤++≤++≤1112132122233132336001000800
x x x x x x x x x ++≤++≤++≤1121311222321323331222321121311323338x 6x 5x 2
2(10.15)(1+0.15)38x 6x 5x 3
8x 6x 5x 11(10.15)(1+0.15)28x 6x 5x 2
8x 6x 5x 4
4(10.10)(1+0.10)38x 6x 5x 3++-≤≤++++-≤≤++++-≤≤++()()()
111213212223313233112131122232132333112131122232132333 1000700600865200086530008651500105740001057540010571500
Max 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 ij ≥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); 如下图所示:
1112132122233132336001000800
x x x x x x x x x ++≤++≤++≤1121311222321323331222321121311323338x 6x 5x 2
2(10.15)(1+0.15)38x 6x 5x 38x 6x 5x 1
1(10.15)(1+0.15)28x 6x 5x 28x 6x 5x 4
4(10.10)(1+0.10)38x 6x 5x 3
++-≤≤++++-≤≤++++-≤≤++
然后运行得出结果:
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软件来实现用计算机的建模和对规划问题的求解。
通过学习,我学会了使用软件对线性规划等运筹学问题。
总之我感觉运筹学是一门很神奇的学科,他对我们有很大的帮助。