运筹学上机报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验一 使用LINGO 求解线性规划问题
班级: 姓名: 学号: 评阅成绩: 已知如下线性规划模型:
123max 303540z x x x =++
1231231231233251823412229,,0
x 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、全局最优值是否已经找到?该值是多少?
答:已经找到,最优值为165
2、该模型求解一共迭代了多少次?
答:共迭代了2次
3、在求解结果的界面中,Variable、Value、Reduced Cost、Row、Slack or Surplus 和Dual Price分别表示什么?
答:Variable表示运算时各定义变量的取值;
Value表示给出最优解中各变量的值;
Reduced Cost表示列出最优单纯形表中判别数所在行的变量的系数,表示当变量有微小变动时, 目标函数的变化率;
Row表示行数;
Slack or Surplus 表示给出松驰变量的值;
Dual Price表示当对应约束有微小变动时, 目标函数的变化率。输出结果中对应于每一个约束有一个对偶价格。若其数值为p,表示对应约束中不等式右端项若增加1 个单位,目标函数将增加p个单位。
4、找出一个基变量,指出其判断系数并说明该判断系数的含义。
答:例如基变量B(1),其判断系数是0,表示当基变量B(1)发生微小变化时最大值Z的变化率为0。
5、指出松弛变量或剩余变量为0和非0的约束各一个,指出相应的对偶价格,并指出对偶价格的含义(如果没有,请说明)。
答:第一行松弛变量=150,对偶价格=1,其含义为当不等式右端增加1个单位时,最大值Z也相应的增加1个单位。
第3行松弛变量=0,对偶价格=5,其含义为当不等式右端增加1个单位时,目标函数Z就会增加5个单位。
6、对偶价格与松弛变量或剩余变量有什么关系规律?
答:假设对偶价格的数值为p,表示对应约束中不等式右端项增加1 个单位,目标函数将增加p个单位,即此时的松弛变量应该在原基础上再加p。
四、实验小结与体会
通过为数不多的运筹学实验过程中学习,我对有关运筹学建模问题有了更深刻的认识和把握;对运筹学的有关知识点也有了进一步的学习和掌握。
运筹学这门课其实并不难懂,只要我们能很好的理解题目,对各个模型直接的掌握,就能很好的运用模型去求解问题。
在这过程中,我不仅对运筹学的有关知识有了进一步的掌握,同时对在自己的计算机操作水准也有了很大的提高。课程的学习很快过去,但它对我们掌握运筹学建模问题的要求却并没有随课程的结束而结束。因此在以后的学习当中我们更应该时刻温习,不时巩固,以达到知新的效果。同时,也要很感谢老师的耐心教导。
实验二使用LINGO求解运输问题
班级:姓名:学号:评阅成绩:
设有三个产地的产品需要运往四个销地。各产地的产量、各销地的销量及其各产地到销地的单位运输费用如表所示,问如何调运使得总费用最少?
一、按照运输问题的数学模型按集的方法编写LINGO程序。
(1)在LINGO软件模型中编写本题的程序如下图2-1所示。
图2-1 LINGO窗口截图
(2)点击LINGO菜单下的Solve选项,LINGO软件求解所输入的模型,得到LINGO运行状态窗口如图2-2所示。
图2-2 LINGO运行状态窗口截图
(3)运行结束后,关闭LINGO运行状态窗口,获得LINGO软件的结果报告窗口,如图2-3,2-4所示。
图2-3 LINGO结果报告窗口截图
图2-4 LINGO结果报告窗口截图
二、根据编写的程序及其运行结果,回答以下问题:
1、集循环函数可以对几个集进行循环操作?
答:1个集
2、哪个语句表示生产地产量约束?
答:@for(from(i):@sum(to(j):x(i,j))<=Capacity(i));
3、哪个语句表示销售地销量约束?
答:@for(to(j):@sum(from(i):x(i,j))>=Demand(j));
4、本模型中的@for循环函数循环操作多少次?
答:7次
5、本模型中的@sum循环函数循环操作多少次?
答:24次
6、负对偶变量值和正的对偶变量值分别对应原问题的什么约束条件,正负对偶变量值各有什么含义?
答:负对偶变量值@for(from(i):@sum(to(j):x(i,j))<=Capacity(i));
正对偶变量值@for(to(j):@sum(from(i):x(i,j))>=Demand(j));