运筹学实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验报告
课程名称运筹学
实验项目名称运筹学常用软件的使用
班级与班级代码
实验室名称(或课室)
专业物流管理
任课教师
学号:
姓名:
实验日期:2012年9月27日、2012年12月6日
实验报告成绩
实验目的
(1)学会安装并使用Lingo软件
(2)利用Lingo求解各种规划问题
实验设备
计算机
Lingo软件
实验步骤
(1)打开已经安装Lingo软件的计算机,进入Lingo
(2)建立数学模型和Lingo语言
(3)输入完Lingo语言后运行得出求解结果
LINGO是用来求解线性和非线性优化问题的简易工具。LINGO内置了一种建立最优化模型的语言,可以简便地表达大规模问题,利用LINGO高效的求解器可快速求解并分析结果。
当在windows下开始运行LINGO系统时,会得到类似下面的一个窗口:
外层是主框架窗口,包含了所有菜单命令和工具条,其它所有的窗口将被包含在主窗口之下。在主窗口内的标题为LINGO Model – LINGO1的窗口是LINGO的默认模型窗口,建立的模型都都要在该窗口内编码实现。下面是以线性规划问题与运输问题为例进行试验的具体步骤
一求解线性题目
1.1数学模型
max z=3x1+4x2
-x1+2x2 ≤ 8
x1+2x2 ≤ 12
2x1+ x2 ≤ 16
x1, x2 ≥ 0
打开Lingo;
输入 MAX = 3*X1+4*X2;
-X1+2*X2<=8;
X1+2*X2<=12;
2*X1+X2<=16;
end
实验结果如下:Rows= 4 Vars= 2 No. integer
vars0.6666667= 0 ( all are linear) Nonzeros= 11 Constraint nonz= 6( 3 are +- 1) Density=0.917
Smallest and largest elements in abs value= 1.00000 16.0000 No. < : 3 No. =: 0 No. > : 0, Obj=MAX, GUBs <= 1
Single cols= 0 Optimal solution found at step: 0 Objective value: 30.66667 Variable Value Reduced Cost X1 6.666667 0.0000000 X2 2.666667 0.0000000 Row Slack or Surplus Dual Price
1 30.66667 1.000000
2 9.33333
3 0.0000000
3 0.0000000 1.666667
4 0.00000032 0.666668
二求解运输问题
使用LINGO软件计算6个发点8个收点的最小费用运输问题。产销单位运
价如下表。
销地
B1B2B3B4B5B6B7B8产量产地
A1 6 2 6 7 4 2 5 9 60
A2 4 9 5 3 8 5 8 2 55
A3 5 2 1 9 7 4 3 3 51
A4 7 6 7 3 9 2 7 1 43
A5 2 3 9 5 7 2 6 5 41
A6 5 5 2 2 8 1 4 3 52 销量35 37 22 32 41 32 43 38
使用LINGO软件,编制程序如下:
model:
!6发点8收点运输问题;
sets:
warehouses/wh1..wh6/: capacity;
vendors/v1..v8/: demand;
links(warehouses,vendors): cost, volume;
endsets
!目标函数;
min=@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=60 55 51 43 41 52;
demand=35 37 22 32 41 32 43 38;
cost=6 2 6 7 4 2 9 5
4 9
5 3 8 5 8 2
5 2 1 9 7 4 3 3
7 6 7 3 9 2 7 1
2 3 9 5 7 2 6 5
5 5 2 2 8 1 4 3;
enddata
end
然后点击工具条上的按钮即可。
在使用Lingo的同时应注意以下老师强调点以减少程序的出错,LINGO 中不区分大小写字母;变量和行名可以超过8个字符,但不能超过32个字符,且必须以字母开头。
用LINGO解优化模型时已假定所有变量非负(除非用限定变量取值范围的函数@free或@bnd另行说明)。
变量可以放在约束条件的右端(同时数字也可放在约束条件的左端)。但为了提高LINGO求解时的效率,应尽可能采用线性表达式定义目标和约束(如果可能的话)。
语句是组成LINGO模型的基本单位,每个语句都以分号结尾,编写程序时应注意模型的可读性。
实验总结
通过上机实践,基本上学会使用软件求解运筹学中常见的数学模型,如线性规划问题、运输问题、整数规划问题、0-1规划问题等。通过对具体方法与模型的学习,认识到了运筹学在经营管理中作为提高决策水平的方法和工具的作用,了解了运筹学在分析与解决实际问题过程中的基本思想和基本思路,学会独立建模能力并用模型解决相关现实问题,进一步加强对现实问题的认识。提高独立运用理论知识解决现实问题的能力把所学的运筹学理论知识与实践相结合从而强化相关理论知识。了解、熟悉计算机Lingo软件在运筹学模型求解中的作用,激发学习兴趣。提高学习效果,增强自身的动手能力,提高实际应用能力。