大流问题图.docx
《大流问题图.docx》由会员分享,可在线阅读,更多相关《大流问题图.docx(82页珍藏版)》请在冰豆网上搜索。
大流问题图
《运筹学》
实验指导书
西安交通大学
管理学院《运筹学》课程组
二零零五年四月
序言
指导书紧密配合《运筹学》课程的理论教学,系统地介绍了教学应用软件QSB+(QuantitationSystemsforBusinessPlus)和最新的建模与求解方法(Spreadsheet方法)。
QSB+是运筹学上机实验软件,它技术成熟稳定,内容齐全,使用方便,对于加深理解课程内容,提高初学者学习掌握本课程的兴趣具有良好的补充作用。
Spreadsheet建模与求解方法是近年来国际上在管理科学教学与应用方面流行而有效的方法。
它为管理科学提供了一种问题描述、数据处理、模型建立与求解的有效工具,是在Excel(或其它)背景下就所需求解的问题进行描述与展开,然后建立数学模型,并使用Excel的命令与功能进行预测、模拟、决策、优化等运算与分析。
指导书分为两部分,第一部分是QSB+的使用,通过五个实验来完成,每个实验主要包括三个方面内容:
①内容简介;②操作步骤;③实例分析与操作,另外对WINQSB+进行了简要说明。
第二部分是Spreadsheet建模与求解方法介绍,以实例的形式说明其中的重点和常用部分,实验内容基本同QSB+,对其余内容感兴趣的同学可参考相关资料。
五个实验分别为:
①线性规划;②运输问题;③动态规划;④网格模型;⑤排队论。
指导书基于教师的教学过程和学生的上机实验,由《运筹学》课程组统一规划,任课教师和参加上机辅导的研究生共同参与,最终由博士生薛顺利统稿完成。
在编写过程中参考了相关教材和资料,并得到许多老师和同学的热情帮助,在此表示衷心感谢。
由于水平有限,时间仓促,对于指导书中不妥与疏漏之处,恳请老师和同学们提出宝贵意见,以便进一步修改。
第一部分QSB+软件
QSB+是用于《运筹学》的应用软件包,技术成熟,运行稳定,操作方便,对硬件要求较低,非常适合初学者上机使用。
第一章QSB+内容简介
第一节QSB+的基本内容
QSB+是QSB的升级应用软件包,可求解如下16类问题:
1、线性规划LinearProgramming(LP)
2、整数规划IntegerLinearProgramming(ILP)
3、线性目标规划LinearGoalProgramming(LGP)
4、二次规划QuadraticProgramming(QP)
5、运输/转运问题TransportationandTransshipmentProblems(TRP)
6、指派/旅行商问题AssignmentandTravelingSalesmanProblems(ASTS)
7、网络模型NetworkModeling(NET)
8、关键路径法CriticalPathMethod(CPM)
9、计划评审技术ProgramEvaluatingandReviewTechnique(PERT)
10、动态规划DynamicProgramming(DP)
11、库存论InventoryTheory(INVT)
12、排队论QueuingTheory(QUEUE)
13、排队系统仿真QueuingSystemSimulation(QSIM)
14、决策与可靠性理论DecisionandProbabilityTheory(DSPB)
15、马尔科夫过程MarkovProcess(MKV)
16、时间序列预测TimeSeriesForecasting(TSFC)
QSB+采用分级菜单结构,思路清晰,使用方便。
在操作过程中程序与用户交互进行,自动地给出必要提示,以方便实现模型的建立、修改、数据输入及计算结果的输出等功能。
第二节软件结构介绍
三级菜单(求解菜单)
本软件采用程序化菜单结构,大致可分为三级(如图1—1所示),第一级菜单为主菜单(程序菜单),共分为十八个分项,分别为:
①LP,②ILP,③GP,……,等等。
可用
图1—1QSB+的菜单结构图
移动键(↑↓)选中的相应程序,也可以打入相应的数字或字母,按回车键进入相应程序的下一级菜单。
第二级菜单为功能菜单,根据选择程序的不同略有差异,如果选择LP程序,则二级菜单分别为:
①Overview……,②Enter……,③Read……,④Show……等等,同样可用移动键(↑↓)选中相应功能,也可以打入相应的数字,按回车键确定,以交互方式完成相应的操作。
第三级菜单为相应功能的三级菜单,根据所选功能的不同而有所区别。
如果第二级菜单选择⑤Solveproblem菜单,则三级菜单会显示为:
①SolvewithSteps,②SolvewithoutSteps,③SpecialOperation.,……等等。
根据用户需要选择所需子项,按回车键,使其执行即可。
第三节菜单内容说明
一、主菜单(程序菜单)
主菜单(程序菜单)(如图1—2所示)显示出QSB+所能完成的运筹学中的各种问题的程序名称,务必认真阅读,搞清楚各程序和《运筹学》内容的对应关系,为后续学习作好准备,具体可以参考第一节内容。
图1—2主菜单(程序菜单)图
二、功能菜单
选择某个程序后,按回车键即可进入相应的功能菜单,现以线性规划(LP)功能菜单为例加以说明,其它功能菜单与此相似。
在主菜单(程序菜单)中选择选项1(LP项),按回车键即可进入线性规划(LP)程序的功能菜单(如图1—3所示),现对各功能说明如下:
选项(Option)1:
该选项可浏览该程序的基本情况,说明程序的功能和其它限制条件等。
选项(Option)2:
当有一个新问题时,用该选项可以将问题输入程序,可以在此定义问题的范围,说明用固定格式还是自由格式输入问题等。
选项(Option)3:
该选项可以调入以前所保存的问题。
图1—3LP程序的功能菜单图
选项(Option)4:
显示输入的数据
选项(Option)5:
求解问题
选项(Option)6:
保存输入的问题备用
选项(Option)7:
可以对问题的结构参数进行修改
选项(Option)8:
详细或以特殊格式显示问题的最终结果。
选项(Option)9:
返回程序菜单。
选项(Option)10:
退出QSB+系统。
三、三级菜单(求解菜单)
三级菜单(求解菜单)的内容各不相同,但比较具体,容易理解,请自己阅读几个这样的菜单,以便对整体功能有一个完整的了解。
如果用固定格式输入问题,你可以用移动键(↑↓→←)或后退键(BS)移动光标到相应位置纠正错误。
按照屏幕下面的提示进入下页或前一页。
在约束条件中科学计数法是允许的,如1.00、100.0、+100和1.0E+2是相同的,>=、>、=>和≥是相同的,<=、<、=<和≤是相同的。
图1—4显示的是线性规划问题功能菜单选项1的内容。
选择自由或固定格式输入数据,约束可以单独输入。
如果用自由格式输入,请参考帮助信息。
你可以用功能菜单选项7修改已输入的问题。
图1—4线性规划问题浏览
Tu
目标函数取最大值
(1)或最小值
(2)?
(输入1或2):
<1>
决策变量数(不包括松弛变量/人工变量):
<4>
约束条件数(不包括边界条件):
<3>
非零近似百分数(近似值)(默认值为5%):
<>
使用默认变量名(X1,X2,……Xn)(1(Yes),0(No)):
<0>
使用自由格式输入数据(1(Yes),0(No)):
<0>
使用固定各式输入边界/完整性条件(1(Yes),0(No)):
<0>
图1—4线性规划问题浏览
第二章操作以及算例示范
第一节线性规划(LinearProgramming)
一、线性规划求解问题的特别说明
1、能求解的线性规划问题的规模取决于计算机的内存;
2、数学模型的输入可以采用自由格式,也可以采用固定格式(选择了固定格式后,只需在相应位置输入数据),一般采用固定格式;
3、变量名可以自己命名,但最多不能超过8个字符,也可以用默认的变量名,如:
X1,X2,……,Xn;
4、数据文件可保存到磁盘上,文件扩展名为:
MPS;
5、输入问题时,可以用移动键(→←↑↓)、BS(后退键)、空格键和回车键移动光标或翻页;如果要放弃输入的数据,可同时按“Ctrl”和“End”键,并同时放开,即可终止继续输入并放弃已输入的数据,返回到功能菜单;
6、给问题命名时,最长不得超过20个字符;
7、如果遇到未说明的问题,请注意仔细阅读英语显示;
8、显示中有关字母意义说明如下:
Sn:
表示第n个约束条件的松驰变量(含剩余变量);
An:
表示第n个约束条件的人工变量;
A(i,j):
表示第i个约束第j个变量的系数;
B(i):
表示第i个约束右边常数值;
C(j):
表示目标函数中第j个变量的系数;
M:
大M法中的M;
C(j)—Z(j):
表示第j个变量的检验数。
二、用LP求解问题的步骤
1、分析问题,确定决策变量;
2、建立数学模型(参考教材);
3、输入有关数据,或调入已存问题;
4、如果要核查数据,则选择选项4(Showinputdata);
5、如果需要修改问题,则选择选项7(Modifyproblem);
6、求解问题,选择选项5(Solveproblem),并根据提示选择逐步方式显示或其他;
7、显示、打印、或者保存最终结果,选择选项8(Showfinalsolution);
8、保存数据备用,选择选项6(Saveproblemondisk);
9、如果要求解另一个线性规划问题,则返回到第三步,否则,请选择选项9(Returntotheprogrammenu),返回主菜单(程序菜单),选择其它程序;如果要退出,请选择选项10(ExitfromQSB+)。
三、举例说明
问题:
AMC公司用两种机器制造两种产品A和B,有关数据见表1—1所示,当前市场对产品A和B的需求为供不应求,它们的市场价格分别为产品A每个50元,产品B每个60元,请问如何安排生产可使其月收入最高?
表1—1问题数据表
产
品
耗
用
工
时
机
器
机器
A
机器
B
每月可用工时
1
2h
3h
180
2
3h
2h
150
操作步骤:
1、定义决策变量:
用A表示一个月生产A产品的数量,用B表示一个月生产B产品的数量。
2、建立数学模型如下:
3、将问题输入系统
①在主菜单(程序菜单)选择选项1(Linearprogramming);
②在功能菜单选择选项2(Enteranewproblem),按回车键会显示图2—1,在光标处输入AMC,既给问题命名为AMC。
Pleasenameyourproblemuesingupto20characters?
AMC
图1—5问题命名图
③按回车键出现如图1—6所示屏幕,请认真阅读英语说明,输入相关的数字,可参考图1—4的中文说明;
图1—6AMC问题的参数选择
④参数输入后,按回车键出现如图1—7所示屏幕,输入变量名;
图1—7输入决策变量名
⑤参数输入后,按回车键出现如图1—8所示屏幕,在该窗口中输入数学模型。
图1—8AMC问题的模型
4、选择功能菜单的选项4(Showinputdata),显示所输入的问题。
图1—9所示为功能菜单选项4(Showinputdata)的下级菜单;
图1—9显示数据菜单图
图1—10所示为选择图1—9中的选项1(Displaytheinputdata)时的显示结果,还可以选择其他选项,自己操作认真阅读。
图1—10AMC问题数据图
如果是以自由格式输入的数据,其显示结果如图1—11所示。
图1—11AMC问题数据的自由格式图
5、如果需要修改数据,可以选择功能菜单的选项7(Modifyproblem),所对应的下级菜单如图1—12所示。
图1—12修改功能的下级菜单图
6、在功能菜单中选择选项5(Solveproblem)求解问题,其下级菜单如图1—13所示,有各种求解问题方式供选择。
图1—13问题求解菜单图
如果选择选项4(Solveanddisplaytheinitialandfinaltables),就可以在屏幕上显示出每次迭代的结果,参看图1—14至1—17所示。
如果选择选项6(solvebyusingthegraphicmethod)则可以显示出用图解法求解的结果(只有两个决策变量的情况)。
图1—14初始表
图1—15迭代表1
图1—16迭代表2
图1—17最终表
7、问题求解之后,可以选择功能菜单的选项8(Showfinalsolution),来显示最后的结果,如图1—18所示。
在此菜单中可以选择需要的内容进行显示,如果选择选项1(displaythesummarizedreport),那么,对应的显示结果如图1—19和图1—20所示。
图1—18显示最终解选择菜单图
图1—19综合报表第一页
从此表可以看出:
最优解为(+18,+48)T,目标函数最优值(最大值)为3780;变量A的系数在[+40,+90]内变化时,最优解不变,但最优值随之改变;变量B的系数在[+33.33,+75]内变化时,最优解不变,但最优值随之改变。
图1—20综合报表第二页
从此表可以看出:
第一台机器的约束(+180)和第二台机器的约束(+150)都是紧约束;第一台机器的生产能力在[+100,+225]内变化时,其影子价格为+16元,第二台机器的生产能力在[+120,+270]内变化时,其影子价格为+6元。
8、在功能菜单中选择选项6(Saveproblemondisk),可以将所解问题的数据保存到磁盘上,图1—21所示,即为保存文件时的屏幕显示。
图1—20保存问题结果图
第二节运输/运转问题(TransportationandTransshipmentProblems)
一、概述
该程序能够求解运输/运转问题,源点(或供应点被定义为只有流出的点),终点(或销售点被定义为只有流入的点),运输点(或中转点被定义为既进又出的点)。
该程序能够求解问题的规模取决于所用计算机的内存大小,供应量、需求量、运费或利润系数均为实数。
它能够提供问题的输入、保存、调用等功能,并且能够方便求解问题,显示问题,取得相应的解,打印问题的结果。
问题输入程序后,会自动将问题转化为运输问题求解;能够提供确定初始方案的各种方法;允许定义供应点、销售点和运输点的名称。
对于规模较小的问题,可以显示解题步骤,供应量、需求量、运费或利润等是需要给定的数据。
二、运输/运转问题的求解步骤
选择进入程序后,屏幕显示如图1—21所示,根据需要选择所需要的选项。
1……决策支持系统概览
2……进入新问题
3……读取已存问题
4……显示输入数据
5……求解问题
6……保存问题
7……修改问题
8……显示最终解
9……返回主菜单
0……退出QSB+
图示1—21运输问题功能图
求解问题的步骤如下:
1、分析问题,确定供应点、销售点及中转点的名称,以及它们所对应的值;
2、确定节点间的单位成本或单位利润;
3、输入已知信息,或调入已存问题;
4、如果要核查数据,则选择选项4;
5、如果需要修改问题,则选择选项7;
6、保存问题以备后用,请选择选项6;
7、求解问题时,选择选项5,可以选择逐步显示完成,也可以选择直接显示最终结果;
8、显示、打印、或者保存最终结果,请选择选项8;
9、如果要求解另一个运输问题,请返回到第三步,否则,请选择选项9,返回程序菜单,选择其它程序;若要退出,请选择选项10。
三、举例
问题、ABC石油公司有三个油库和四个销售点,已知信息数据如表1—2所示,问如何安排运输可使运费最小?
表1—2信息数据表
存贮地
需求地(DemandPoint)
供应能力
达拉斯(Dallas)
坎萨斯(Kansas)
坦佩(Tampa)
迷埃迷(Miami)
波斯顿(Boston)
5
4
5
6
100
登瓦(Denver)
3
3
6
6
200
奥斯汀(Austin)
2
5
7
8
400
需求
200
100
150
250
操作步骤:
1、分析问题,确认已知信息数据;
2、输入信息数据:
①在图1—21所示的功能菜单中选择选项2;
②回车后结果如图1—22所示;
Pleasenameyourproblemuesingupto20characters?
ABC
图1—22问题命名图
③给问题命名为:
ABC;
④回车后结果如图1—23所示,输入相关的数据;
目标函数取最大值
(1)或最小值
(2)?
(输入1或2)<2>
供应地数目?
<3>
需求地数目?
<4>
中转点数目(无中转点取0)?
<0>
使用默认名称(S1……Sn,D1……Dn,T1……Tn)吗?
(输入Y/N)<n>
图1—23问题ABC参数输入图
3、在图1—24和图1—25中,分别输入自定义的供应点(产地)名称和需求点(销地)名称;
图1—25销售点名称输入
4、在图1—26和图1—27中,分别输入供应量和销售量;
图1—27销地的销售量输入
5、确认输入格式(如图1—28),采用固定格式,则输入“N”;也可选用自定义的自由格式,则输入“Y”。
接着,输入单位运价如图1—29所示。
图1—29单位运价(或运距)的输入
6、可以在功能菜单中选择选项4,显示输入数据,如图1—30所示,在此可以选择显示数据的不同方式。
图1—30显示类型选择
7、图1—31至1—33是选择选项1(Displaytheinputdata)时的显示结果;
图1—32终点需求量
图1—31产地的产量
图1—33单位运输成本图
8、如果需要,可以选择功能菜单选项7修改数据,其结果如图1—34所示;
1……修改产量和需求量;
2……增加一个产地;
3……删除一个产地;
4……增加一个销售点;
5……删除一个销售点;
6……增加一个中转点;
7……删除一个中转点;
8……修改成本/利润系数;
9……修改名称;
0……改变目标参数;
B……显示输入数据;
C……返回功能菜单。
图1—34修改数据选择菜单
9、求解问题,从功能菜单中选择选项5(Solveproblem),结果如图1—35所示;
1……不显示中间迭代过程直接求解;
2……求解并显示每一张迭代表;
3……求解并显示初始表;
4……求解并显示最终表
5……选择初始解方案;
6……只求初始解;
7……返回功能菜单。
图1—35求解选择菜单
10、在图1—35中选择选项5,结果如图1—36所示;
图1—36初始解选择菜单图
11、确定初始方案选择菜单:
如果选择选项5,则用MCM方法确定初始方案;如果选择选项1,则用RM方法确定初始方案;如图1—36所示,共有9种可选方法,其中6为最小元素法,7为西北角法;
12、选择选项9返回求解选择菜单(图1—35),在此菜单选择选项1至4中的任一项均可完成求解;选项6仅求解初始方案;当问题的供应点少于5,并且销售点少于6时,可以选择选项2至4完成求解,同时显示每张迭代表。
图1—37至1—42显示了选择选项2,求出初始方案至最优方案的全部迭代表格。
图1—37初始迭代表
图1—38迭代表1
图1—39迭代表2
图1—40迭代表3
图1—41迭代表4
图1—42最优迭代表
13、选择功能菜单的选项8来显示、打印或者保存最优解,如图1—43所示。
如果选择选项1,其结果如图1—44所示。
图1—43显示选择图
图1—44显示结果图
14、在功能菜单中选择选项6,可将问题保存在磁盘上,如图1—45所示。
图1—45保存结果图
第三节动态规划(DP)DynamicProgramming
一、简要说明
该程序(DP)能够求解:
最短路问题,背包问题和生产——库存问题;能够求解问题的规模:
最多100个阶段,每个阶段最多10个状态;求解问题的过程采用逆序求解方法,从最后一个阶段开始到第一阶段结束。
最短路问题所需要的数据包括:
阶段数,每个阶段的状态数,以及各节点之间的距离。
对于背包问题,空间需求(指约束条件的右端常数)和每个阶段的返回价值(指该阶段K即第K种物品的单位价值)要给定。
它能够提供问题的输入、保存、调出等功能,并且能够较快地求解问题,显示问题与相应的解,并且可以打印问题的结果。
问题输入程序后,可以选择选项求解问题或显示问题,随时可以按F9键返回功能菜单,按F10键退出QSB+。
二、动态规划问题的求解步骤
使用该程序时,屏幕显示如图1—46所示。
求解问题的大致步骤如下:
10、分析问题,确定起点、终点及中转点的名称以及所对应值;
11、确定节点间的距离;
12、将问题输入程序,或调用已存问题;
13、如果要核查数据,选择选项4;
14、如果需要修改问题,选择选项7;
15、保存问题备用,选择选项6;
16、求解问题,选择选项5;
17、显示、打印、或者保存最终结果,请选择选项8;
18、如果要求解另一个动态规划问题,请返回到第三步,否则,请选择选项9,返回主菜单,选择其它程序(程序);若要退出,请选择选项10。
图1—46DP的功能菜单
三、举例说明
问题图3—2所示是一个典型的最短路问题,各线段上的数据代表相应节点间的距离,请问从起点1到终点10如何行走路程最短?
图1—47最短路问题
操作步骤:
1、确定阶段和各阶段的状态数,根据该问题的特征,分成四个阶段;如图1—47所示,选择选项2(Enternewproble),屏幕显示结果如图1—48所示;
2、在图1—48所示的菜单中,选择1(Stagecoachproblem),会出现图1—49所示的窗口,请仔细阅读这些约定;
图1—48问题选择菜单
图1—49DP的约定规则说明
3、给问题命名为:
Stagecoach;
4、输入相关的数据,如图1—50所示,完成问题输入。
图1—50问题输入窗
5、如图1—51所示,可以在其中选择显示数据的不同方式;
图1—50显示数据选择窗
7、在此窗口选择选项1,出现如图1—51所示的窗口;
图1—51输入数据显示表
8、如果需要可以修改数据,如图1—52所示;
图1—52修改窗口
9、返回功能菜单选择选项5求解问题,在图1—53中选择选项2(即显示迭代的每一步),出现图1—54所示的窗口;
图1—53求解过程选择菜单
图1—54求解迭代过程表