《物流运输问题模型及其求解方法研究与实践1.doc》由会员分享,可在线阅读,更多相关《物流运输问题模型及其求解方法研究与实践1.doc(54页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第二专业毕业设计(论文)题目 物流运输问题模型及其求解方法研究与实践主办学院计算机与电子信息学院第二专业电子商务主修学院林学院主修专业林学学 号0636110120姓 名李秀连指导教师杨林峰2010年 4 月 30 日49摘要运输问题是运筹学的一个分支,是线性规划的特殊形式。它研究的是如何在一个大宗物资调运中,制定出一个由若干个产地将物资根据已知的运输交通网运到各个销售地的方案,使得总运费最小。物流是整个物流活动中核心,运输管理是物流活动的统筹规划和管理的一重要部分,对运输环节进行规划和优化,对提高物流活动的运行效率有重要意义。本文通过对运输问题模型和求解方法的研究,在产销平衡的条件下,运用不
2、同的软件Excel、Lingo、和Matlab等对运输问题进行求解,同时对内点法求解运输问题进行了研究,最终在计算机上得以实现。通过研究得出结果如下:(1)三个软件Excel、Lingo和Matlab在求解简单的运输问题,其结果表上作业法求解的结果是一样的。(2)在进行比较复杂的运输问题求解时,Excel出现可变单元格过多而无法进行继续求解,而Lingo和Matlab的求解结果相同,在时间耗费上差异不大,在内存占用上Matlab比Lingo的大。(3)根据内点法的原理和方法进行研究,编写出对运输问题进行求解的代码,并实现求解。关键词:运输问题 表上作业法 Excel Lingo Matlab
3、内点法Study on the Solution and Practice of the Model of Logistics Transportion ProblemAbstractTransportion problem is a branch of Operations Research,it is a special form of linear programming. It researchs how to build a program that in a bulk material dispatching to delivered all these materials bas
4、ed on the known traffic network to all sales from a number of producer, bringing the total freight minimum. Logistics is the core of the logistics activities, transportation management is an important part of overall planning and management in the logistics activities. Planning and management the tr
5、ansport link is very important for improving the efficiency of logistics activities.Based on the study of the transportion model and its solution, under the conditions of production and marketing balance, used different software such as Excel, Lingo, Matlab and so on to solve the transportion proble
6、m, and also studied the solving of the transportion problem by using the internal point method, and eventually can be achieved in the computer. Through the results of the study are as follows: (1)Threesoftware, Excel, Lingo, and Matlab in solving a simple transportation problems, the result and resu
7、lt of suing Tabular method were the same. (2) When solved the more complex transportation problem, Excel appears too much variable to solve, however the results of using Lingo and Matlab is the same, and little difference in time spenting and in the memory footprint Matlab is larger than the Lingo .
8、(3) Based on the study of the principles and methods of interior point method, to write a program to solve the transportion problem. Keywords: The Transportation Problems Tabular Method Excel LingoMatlab Interior Point Method目录第一章 绪 论11.1 课题的来源11.2 本课题的实现目标11.3 运输问题的发展现状及研究意义21.4本课题的主要工作3第二章 线性规划与运输
9、问题42.1 线性规划42.2 运输问题5第三章 运输问题求解实践83.1 单纯形法83.2表上作业法83.3 工具求解实践143.4 小结21第四章 大型运输问题案例求解与运输问题的应用224.1大型运输问题实例224.2 运输问题的应用27第五章 内点法315.1 运输问题的内点算法315.2 牛顿法325.3 中心路径和终止条件335.4 运输问题的内点算法实现34第六章 总 结406.1 结论406.2 展望40参考文献42附 表43致 谢49第一章 绪论1.1 课题的来源运输问题是线性规划的一种特殊形式,运输问题主要是解决这样的问题:在大宗物资调运时,有若干个产地,根据已知的运输交通
10、网,如何制定一个运输方案,将这些物资运到各个销售地,使得总运费最小。物流管理的本质要求就是求实效,即以最少的消耗,实现最优的服务,达到最佳的经济效益。搞好物流管理,可以通过合理的运输方案,使中间装卸搬运、储存费用降低、损失减少,在其他条件不变的情况下,降低物流成本就意味着扩大了企业的利润空间,提高了利润水平,所以一个合理的运输方案有着重要的意义。运输问题模型提出后,人们对其求解的方法进行了大量的研究,并有了重大成果,其中,Danzig的表上作业法是最简单和最常用的,表上作业法本质就是单纯形法,虽然表上作业法是最简单的,但是在求解的过程中还是会耗费大量的时间,在讲究高速高效的现代生活中显然是要被
11、淘汰的,随着计算机技术的发展和普及,人们把运输问题的求解依赖于计算机求解,于是产生了大量求解运输问题的软件和工具,如Excel、Lingo、和Matlab等。在众多的求解方法和求解工具中,总会有各自的优缺点,所以寻求一个好中更好的求解工具,提高求解效率和可扩展性将会有很重要的意义。1.2 本课题的实现目标本课题通过研究运输问题在不同软件上的实现,首先进行小规模的运输问题实践,对在不同的软件中求解的难易程度、耗时耗力,以及所求解的结果的准确性进行比较分析,由于模型的规模较小,所以在求解过程中其效果不是很明显,故为了提高说服力,对一个比较大型的运输问题进行求解,分析其差异性,寻找出各个软件的优异性
12、,为在实践中提供一个依据。最后把运输问题运用内点法在计算机上进行求解,将其结果与单纯形法求解的效果进行比较分析。1.3 运输问题的发展现状及研究意义运输问题是运筹学的一个分支,它研究的是如何在一个大宗物资调运中,制定出一个由若干个产地,将这些物资根据已知的运输交通网运到各个销售地的方案,使得总运费最小。运输问题是在1941年美国学者希奇柯克(Hitchcock)在研究生产组织和铁路运输方面的线性规划问题时提出的1。运输问题的提出,不仅可以求出物资的合理调运方案,其他类型的问题也都可以经过变换后转为运输问题来进行求解。运输问题自提出以来,人们对其解法进行了大量的研究:从目标函数的角度,运输问题同
13、时考虑运输总费用最小、运输过程中损坏率最低和单位运价变化的调整等多个目标,所以有宋叶新、陈绵云和吴晓平研究的具有模糊信息的目标运输问题求解2、李珍萍研究的最短时限运输问题 3、带瓶颈限制的运输问题、运用禁忌搜索算法解决带固定费用的运输问题、调整单位运价使得运输计划最优的运输问题的逆问题等等。从算法角度来看,人们对运输问题提出了大量算法,如表上作业法、图上求解法、遗传算法4,5、神经网络算法6、减运价算法、仿真优化法、内点法等等。从计算机求解角度来看,目前已经有很多对运用计算机求解运输问题的研究,如运输问题的计算机求解7,8 、Excel求解运输问题9 、Lingo求解运输问题10 、Matla
14、b求解11。此外,还有其他软件也可以求解运输问题,比如运筹学CAI软件,不过功能比较少,Winqsb等等,现实中运用比较广泛的是Lingo和Matlab。运输问题是社会经济生活中经常出现的优化问题,我们经常碰到物资调运如煤、粮食、钢材、木材等,这些都是大宗型的运输,在物流流通中通过合理的运输方案,使中间装卸搬运、储存费用降低、损失减少,以最少的消耗,实现经济效益最大化,所以一个合理的科学的运输方案有着重要的意义。在众多的求解方法和求解工具中,总会有各自的优缺点,所以寻求一个好中更好的求解工具,提高求解效率和可扩展性将会有很重要的意义。同时,在现实生活中,许多问题都可以转化成运输问题数学模型进行
15、求解,所以研究运输问题也等于研究了很多相关的问题,其意义更明显。1.4本课题的主要工作本课题通过对物流运输问题模型的分析,探讨其求解方法,并进行实际操作,分析比较运输问题的手工求解和工具求解两类方法的具体求解过程中的差异。并以广西某化肥厂的比较大型的物流运输问题作为对象,使用工具对其进行求解,得出一个最佳方案。同时尝试采用内点法对运输问题进行求解,同时总结了运输问题的应用方向。论文的第二章主要是介绍了运输问题的一些基本情况,包括LP模型,运输问题的模型。第三章中分别讲述了运输问题的手工求解和工具求解的方法步骤,并将其结果进行分析比较。第四章介绍了不同工具求解的方法在比较大型的运输问题广西某化肥
16、厂的运输问题案例的实现,对其结果进行分析,并归纳总结了运输问题的应用方向。第五章介绍了内点法求解运输问题的原理和算法,和对实例实现求解,最后对论文的工作进行了总结。第二章 线性规划与运输问题2.1 线性规划 线性规划(LP)问题,就是求出在一个凸多面体上求出线性目标函数的最小值。线性规划问题的标准形式为: (2.1)最早提出线性规划想法的是法国数学家J.-B.-J.傅里叶和C.瓦莱-普森,分别于1832年和1911年独立提出的,但是那时并未引起注意。直到1939年,前苏联数学家康托洛维奇(BKanTOpOBHH)在生产组织与计划中的数学方法一书中,提出和研究了线性规划问题,但也未引起重视。19
17、47年,美国数学家丹泽格(GBDantzig)提出了一般的线性规划数学模型和求解线性规划问题的通用方法单纯形法,为这门学科奠定了基础。单纯形法的提出,推动了最优化理论的发展。1979年,前苏联数学家哈奇扬(JIrKhachiyan)提出了运用求解线性不等式组解线性规划问题的椭球算法,并证明该算法是多项式时间算法。这算法的提出具有重要的意义,但其实际计算收敛速度极慢,实用效果比单纯形法差。1984年,在美国贝尔电话实验室工作的印度数学家卡玛卡(NKarmarkar)提出了求解线性规划问题的投影尺度法,用这种方法求解线性规划问题在变量个数为5000时只要单纯形法所用时间的1/5012。这个多项式时
18、间算法很有实用意义,这一算法的提出引起人们对内点算法的关注,此后相继出现了多种更为简便实用的内点算法。求解线性规划是非常复杂和耗时的一件事,为了省时省力又准确的得出结果,人们把目光转向了计算机求解,1952年,线性规划问题第一次在计算机上获得求解,这开始了人们对计算机求解线性规划的探索,现在已经有很多软件可以进行线性规划求解,如Excel、Lindo、Lingo、SAS、Matlab和Winqsb等,本文主要是运用Excel、Lingo和Matlab这三个软件分别进行演示。2.2 运输问题运输问题13发展于线性规划问题,自从1939年提出了类似线性规划的模型后,人们发现许多问题都属于线性函数在
19、约束条件下的最优化问题,在1940年Hitchcock提出运输问题。运输问题属于线性规划问题的特殊情况,既有线性规划问题的共性,也有自身的特点和算法。运输问题提出后,1958年Konterovich对运输问题做了早期的研究。运输问题的数学模型如下:已知某种物资有m个供应点(源点),=1,2,。,供应量分别为(个单位),=1,2,;有n个需求点(终点),=1,2,需求量分别为,=1,2,。从到运输单位物资的运价(单位)为。若用表示从到的运量,那么在产销平衡,即的条件下,要求得总运费最小的调运方案,可求解的数学模型: (2.2)由产销平衡条件,所以是产销平衡的运输问题。但在现实生活中往往产销是不平
20、衡的,这就需要把产销不平衡问题转化为产销平衡问题。当产大于销时,运输问题的数学模型变为 (2.3)由于产大于销,所以多余的产品就要考虑在产地就地储存的问题,设是产地的储存量,有令,当,时,当,时,将其代入(2.3)得:其中,这就转化成了一个平衡的运输问题。当销大于产时,也可以转化成为一个产销平衡问题,产大于销是假设多曾一个销售点,该销地的销量为,相应的运价变为。同样,当销大于产时也用同样的方法进行转换,这时假设增加一个产地,产量为,相应的运价为,也转化成了产销平衡问题。在本论文中为了方便计算,只考虑产销平衡的情况。第三章 运输问题求解实践3.1 单纯形法在运输问题的解法中最好最有效的方法是单纯
21、形法,单纯形法求解线性规划的思路:先找出一个基本可行解,对它进行鉴别,看是否是最优解;若不是,则按照一定法则转换到另一改进的基本可行解,再鉴别;若仍不是,则再转换,按此重复进行。单纯形法的计算步骤如下:第一步:对线性规划数学模型进行标准化,构造一个初始基可行解;第二步:判断当前基本可行解是否是最优解; 第三步:若当前解不是最优解,则进行基变换迭代到下一个基本可行解。 3.2表上作业法表上作业法是单纯形法在求解运输问题时的一种简化方法,其实质是单纯形法,只是具体计算和术语有所不同。其一般思路是:初始方案的确定最优解的检验调运方案的调整。以下以一个简单的例子进行介绍。例:某公司经销甲产品。它下设三
22、个加工厂,有四个销售点,各加工厂每日的产量及各销售点每日销量、各加工厂到销售点的单位产品的运价如表3-1所示,问该公司应如何调运产品,在满足各销售点的需求量的前提下,使得总运费最少。表3-1 已知信息表销地产地B1B2B3B4产量(吨)A13113107A219284A3741059销量(吨)3656表3-2 运输方案表销地产地B1B2B3B4产量(吨)A17A24A39销量(吨)36563.2.1 初始方案的确定初始方案的确定就是初始基可行解的确定。产销平衡的运输问题总是存在可行解。因有必存在可行解:0 =1,2, =1,2,又因0min(,)故运输问题必存在最优解。 确定初始其可行解的方法
23、很多,简单又尽可能接近最优解的方法一般有:最小元素法、伏格尔法和西北角法,本文主要介绍最小元素法的求解步骤,同时也采用其他两种方法进行求解得出结果。最小元素法的基本方法就是就近供应,即从单位运价表中最小的运价开始确定供销关系,然后次小。直到得出初始其可行解为止。其步骤如下:第一步:在表3-1找出最小运价为1,先将A2的产品供应给B1。因 ,即A2 除满足B1的全部需要外,还多出1吨产品。在表3-2的(A2,B1)的交叉格处填上3,同时把表3-1中的B1列划掉;第二步:在表3-1的找出没有划掉的最小的运价2,把A2多余的1吨供应给B3,并在表3-2(A2,B3)交叉格出填上1,同时把表3-1的A
24、2行划掉;第三步:同样在表3-1的找出没有划掉的最小的运价3,因为A2已经供应1吨给B3,所以A1供应4吨给B3,并在表3-2(A1,B3)交叉格出填上4,同时把表3-1的B3列划掉;第四步:在表3-1中的找出没有划掉的最小的运价4,把 A3的6吨供应给B2,并在表3-2(A3,B2)交叉格出填上6,同时把表3-1的B2列划掉;第五步:在表3-1中的找出没有划掉的最小的运价5,由于A3一共生产9吨,把 6吨供应给了B2,剩下的3吨全部供应给B4,并在表3-2(A3,B4)交叉格出填上3,同时把表3-1的A3行划掉;第六步:在表3-1中的找出没有划掉的最小的运价10,由于A1一共生产7吨,把 4
25、吨供应给了B3,剩下的3吨全部供应给B4,并在表3-2(A1,B4)交叉格出填上3,同时把表3-1的B4列划掉。到此已经把产地的产品全部分配到各销地,并得出运输方案表,见表3-3,同时得出总运费为86元。表3-3 最小元素法运输方案表销地产地B1B2B3B4产量(吨)A1437A2314A3639销量(吨)3656注:总运费=31+12+43+64+35+310=86元另外另种方法的思路及求解结果如下:伏格尔法的基本思路是一产品的产品如果不能按最小运费就近供应,就考虑次小运费,会产生一个差额,差额越大,说明不能按最小运费调运时,运费增加就越多,因而对差额最大处采用最小运费调运。求得结果见表表3
26、-4。表3-4伏格尔法运输方案表销地产地B1B2B3B4产量(吨)A1527A2314A3639销量(吨)3656注:总运价=31+64+53+210+18+35=85元西北角法,又称左上角法,或阶梯法,其基本思想为先从表的左上角即(A1 ,B1),在产销约束条件允许的范围内,极可能大的产量满足销量,从而确定该交叉格的产量,依此类推,在剩余格中从左上角开始进行同样的处理。求解结果见表3-5。表3-5西北角法运输方案表销地产地B1B2B3B4产量(吨)A1347A2224A3369销量(吨)3656注:总运费=33+411+29+22+310+65=135(元)在表上作业法求初始解的三个方法中,
27、左上角法最简单,最小元素法次之,伏格尔法相对最复杂,但所求结果伏格尔法最好,最接近最优解,其次是最小元素法,左上角法则相当较差14。3.2.2 最优解的检验最优解的判别方法是计算空格的检验数。运输问题的目标函数是要求实现最小化,所以当时,为最优解。求空格检验的方法有两种:闭回路法和位势法,本文采用的是闭回路法。闭回路法的步骤是在初始解方案的计算表上,从每一空格出发找一条闭回路,即以某一个空格为起点,水平或垂直向前划,当碰到一个数字格时可以转90后,继续前进,直到回到原点为止。在例题中用最小元素法求出的初始解表3-3中,从任意一个空格出发,如(A1,B1),若让A1调运1吨产品给B1,为了保持产
28、销平衡,则在(A1,B3)处减少1吨,(A2,B3)处增加1吨,(A2,B1)处减少1吨,构成了一个闭回路。这一闭回路增加的运费为:(+1)3+(-1)3+(+1)2+(-1)1=1(元),。这1就是空格(A1,B1)的检验数,同理可以找出所有空格的检验数,结果如下表3-6表3-6 空格检验数表空格闭回路检验数(A1,B1)(A1,B1)(A1,B3)(A2,B3)(A2,B1)(A1,B1)1(A1,B2)(A1,B2)(A1,B4)(A3,B4)(A3,B2)(A1,B2)2(A2,B2)(A2,B2)(A2,B3)(A1,B3)(A1,B4)(A3,B4)(A3,B2)(A2,B2)1(
29、A2,B4)(A2,B4)(A2,B3)(A1,B3)(A1,B4)(A2,B4)-1(A3,B1)(A3,B1)(A3,B4)(A1,B4)(A1,B3)(A2,B3)(A2,B1)(A3,B1)10(A3,B3)(A3,B3)(A3,B4)(A1,B4)(A1,B3)(A3,B3)12当检验数存在负数时,说明原方案不是最优解,需要改进。3.2.3 调运方案的改进在进行最优解检验时,出现负检验数,表明没有得出最优解,方案需要进行改进,本文采用改进的方法是闭回路调整法。闭回路调整法的思路是:以负检验数的空格为调入格,当负检验数为两个或两个以上时,一般选最小的负检验数,以它相对应的非基变量为换入
30、变量。由表3-6可知,空格(A2,B4)的检验数为负,所以以该空格为调入格见表3-7,在该空格中调入量是以闭回路上具有(-1)的数字格中的最小者,即min=(1,3)=1,然后按闭回路上的正、负号,进行加减得到调整方案,见表3-8,此时的总运费为85元。表3-7 方案调整销地产地B1B2B3B4产量(吨)A14(+1)3(-1)7A231(-1) (+1)4A3639销量(吨)3656表3-8 改进后的方案表销地产地B1B2B3B4产量(吨)A1527A2314A3639销量(吨)3656注:总运费=31+64+53+210+18+35=85(元)对此调整后的方案再次用闭回路法进行检验,得出的
31、检验数如下:表3-9 改进后空格检验数表空格闭回路检验数(A1,B1)(A1,B1)(A1,B3)(A2,B3)(A2,B1)(A1,B1)0(A1,B2)(A1,B2)(A1,B4)(A3,B4)(A3,B2)(A1,B2)2(A2,B2)(A2,B2)(A2,B3)(A1,B3)(A1,B4)(A3,B4)(A3,B2)(A2,B2)2(A2,B4)(A2,B4)(A2,B3)(A1,B3)(A1,B4)(A2,B4)1(A3,B1)(A3,B1)(A3,B4)(A1,B4)(A1,B3)(A2,B3)(A2,B1)(A3,B1)9(A3,B3)(A3,B3)(A3,B4)(A1,B4)(
32、A1,B3)(A3,B3)12表中的所有检验数都是非负数,说明表3-8的结果是最优解。同时也说明伏格尔法给出的初始解比最小元素法给出的初始解更接近最优解3.3 工具求解实践在进行运输问题求解时,传统的解法是表上作业法,虽然表上作业法已经是最简单的,但是在求解过程中还是会消耗大量的时间,特别是大规模的运输问题,表上作业法就显得很复杂。随着计算机的出现,人们开始尝试用计算机对运输问题进行求解,至今已经有很多软件是针对线性规划而设计的,如Excel的规划求解,以及专业的求解工具Lingo和Matlab等。3.3.1 Excel规划求解 Microsoft excel的“规划求解”工具取自得克萨斯大学
33、奥斯汀分学的Leon Lasdon和克里夫兰州大学的Allan Waren共同开发的GRG2(Generalized Reduced Gradient)非线性最优化代码.15 Excel的“规划求解”功能强大,它可以实现对有多个决策变量的线性规划问题的求解,回避了用线性规划专业软件求解时对操作者的专业要求,同时也克服了笔算的缺点,其操作方法简单、方便、快捷,大大提高了计算的效率与准确性。Excel与专业软件相比,有以下特点:1、Excel软件方便易学,大部分人都比较熟悉,容易掌握;2、能用表格简单直观地体现数学模型;3、Excel具有大量的内建函数,通过设置参数,就能进行复杂的计算,建模过程简
34、单;4、Excel软件具有强大的数据分析功能。Excel求解的步骤如下:1、 创建表格图3-1 创建表格2、 设置约束条件和目标函数3、F7=SUM(B7:E7)F8=SUM(B8:E8)F9=SUM(B9:E9)B2=SUM(B7:B9)C2=SUM(C7:C9)D2=SUM(D7:D9)E2=SUM(E7:E9)H12=SUMPRODUCT(B2:E4,B7:E9)图3-2 约束条件和目标函数 4、 设置规划求解参数见图3-3图3-3 规划求解参数5、 规划求解选项设置 图3-4 规划求解选项图6、 求解图3-5 规划求解7、 结果图3-6 Excel求解的结果由图3-6计算结果可以知道,
35、运用Excel求解的结果和用表上作业法的结果是一样的。3.3.2 Lingo求解Lingo软件是美国Lindo系统公司开发的一套用于求解最优化问题的软件包,Lingo除了能用于求解线性规划和二次规划外,还可以用于非线性规划求解以及一些线性和非线性方程(组)的求解等。Lingo软件的最大特色在于它允许优化模型中的决策变量为整数,而且执行速度快。Lingo内置了一种建立最优化模型的语言,可以简便地表达大规模问题,利用Lingo高效的求解器可快速求解并分析结果。Lingo软件,线性优化求解程序通常使用单纯形法,单纯形法虽然在实际应用中是最好最有效的方法,但对某些问题具有指数阶的复杂性,所以为了能解大
36、规模问题,Lingo也提供了内点算法备选。Lingo软件有快速建构模型、轻松编辑数据、强大求解工具、交互式模型和建立完成应用、丰富的文件支持等优点。Lingo代码编写如下:sets: wh/w1 w2 w3/:ai; vd/v1 v2 v3 v4/:dj; links(wh,vd):c,x;endsets data: ai=7,4,9; dj=3,6,5,6; c=3,11,3,10 1,9,2,8 7,4,10,5; enddata min=sum(links(i,j):c(i,j)*x(i,j); for(wh(i):sum(vd(j):x(i,j)=ai(i); for(vd(j):su
37、m(wh(i):x(i,j)=dj(j);end运行的结果如下:图3-7 总运费图3-8 运输方案图3-9 内存和时间耗费由图3-7至图3-9可知,运用Lingo求解的结果和用表上作业法的结果是一样的,该模型的运行过程不用1秒,内存20K。3.3.3 Matlab求解Matlab是20世纪70年代,美国新墨西哥大学计算机科学系主任Cleve Moler为了减轻学生编程的负担,用FORTRAN编写而成的的。到20世纪90年代,Matlab已成为国际控制界的标准计算软件。Matlab的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用Matlab来解算问题要比用C,FORTR
38、AN等语言完成相同的事情简捷得多,并且mathwork也吸收了像Maple等软件的优点,使Matlab成为一个强大的数学软件。Matlab代码编写如下:tic;f=3 11 3 10 1 9 2 8 7 4 10 5;t=f;ff=reshape(t,3*4,1);a=zeros(3,12);for j=0:2a(j+1,4*j+1:4*(j+1)=1;endb=zeros(4,12);for t=1:4for p=0:2 b(t,4*p+t)=1;endendAeq=a;b;Beq=7 4 9 3 6 5 6;lb=zeros(12,1);x,fval,exitflag,output,lam
39、bda=linprog(ff,Aeq,Beq,lb)x=round(x); % 对x取整.B=reshape(x,4,3); % 把b调为矩阵.Btoc;运行结果:图3-10 调运方案图3-11 总运费Elapsed time is 0.033213 seconds.时间消耗0.033213秒结果跟预想的一样总运费85元,调运方案也是一样的。3.4 小结由上述对运输问题的求解过程和结果,可以得出以下结论:1、不论是用表上作业法求解,还是工具求解,其求解的结果是一样的,总运费都是85元,调运方案也是一样。2、在整个求解过程中,虽然表上作业法很简单,无需懂得电脑操作,不过在求解时从初始方案的确定到
40、最优解的检验,最后进行调运方案的调整,这一过程消费大量时间,不像运用工具求解那样快捷。3、三个不同软件进行求解时,Excel求解是不用进行代码编写的,无需考虑算法和函数,只需进行表格创建和参数设置,简单方便,直观易用。而Lingo和Matlab是要进行代码编写的,而且运用的代码算法和函数不一样,相对于Matlab,Lingo的代码比较简单,运用到的函数就三个,不像Matlab,要考虑循环迭代问题。4、Excel、Lingo和Matlab在求解过程中,Excel不能进行运行时间的耗费和内存占用的测算,Lingo在运行结果中直接的出,直观方便。而Matlab则要用命令进行,而且通过命令tic和to
41、c只能得出时间耗费,内存的占用要通过任务管理器才能测算出来,不过在进行上述案例求解时都是十分迅速的,总计都不到1秒,当然在这样一个简单的模型中其结果和速度是很难找出差别的,所以要采用一个更大规模,更复杂的模型再一一进行求解,找出差别。第四章 大型运输问题案例求解与运输问题的应用4.1大型运输问题实例由于在上一章的例子中,数学模型较小,在用计算机求解时的结果没有可比性,所以根据需要,本文中自拟了一个广西某化肥厂产销案例,案例中设计了14个产地和91个销地,运价c主要依据两点之间的距离来确定,得出了运输模型见附表1:对广西某化肥厂产销案例分别用三个软件采用上述方法进行求解,得出结果进行分析比较。运
42、行的环境:系统:Microsoft Windows XP Professional内存:1Gb硬件内存:160G虚拟光驱:DAEMON Tools V3.474.1.1 大型运输问题的Excel求解方法步骤同第三章的一样,运行结果如下: 图4-1 参数设计图4-2 运行结果运用同样的方法对案例进行求解,得出的结果是“可变单元格过多”,如上图所示,说明该模型的规模对于Excel来说是过大的,处理不了。4.1.2 大型运输问题的Lingo求解根据数模编写代码:sets: wh/wh1.wh91/:ai; vd/vd1.vd14/:dj; links(wh,vd):c,x;endsets data:
43、ai= !销量 dj=!产量 c=!运价 ! 由于数据较大,故省略.enddata min=sum(links(i,j):c(i,j)*x(i,j); for(wh(i): sum(vd(j):x(i,j)=ai(i); for(vd(j): sum(wh(i):x(i,j)=dj(j);end运行结果:图4-3 总运费图 4-4 调运方案图 4-5 性能显示Lingo在进行求解时是非常迅速的,整个过程运行的计算时间花费不到1秒,计算机内存使用量是282K,总迭代求解395次。模型运行结果得总运费:44764.40。4.1.3 大型运输问题的Matlab求解代码编写tic;f=; % 由于数据较大,故不显示.t=f;ff=reshape(t,91*14,1); a=zeros(91,1274);for j=0:90 a(j+1,14*j+1:14*(j+1)=1;endb=zeros(14,1274);for t=1:14 for p=0:90 b(t,14*p+t)=1; endendAeq=a;b; Beq=; % 由于数据较大,故不显示.lb=zeros(1274,1);x,fval,exitflag,output,lambda=linprog(ff,Aeq,Beq,lb)b=resh