猪肉货物配送问题

上传人:i**** 文档编号:59407270 上传时间:2022-03-02 格式:DOC 页数:31 大小:903KB
收藏 版权申诉 举报 下载
猪肉货物配送问题_第1页
第1页 / 共31页
猪肉货物配送问题_第2页
第2页 / 共31页
猪肉货物配送问题_第3页
第3页 / 共31页
资源描述:

《猪肉货物配送问题》由会员分享,可在线阅读,更多相关《猪肉货物配送问题(31页珍藏版)》请在装配图网上搜索。

1、2014 第五届工程学院校级数学建模联赛承诺书我们仔细阅读了工程学院校级数学建模联赛的竞赛规则。我们完全明白,在竞赛开始后参赛队员不能以任何方式(包括、电子、网上咨询等)与本队以外的任何人(包括指导教师)研究、讨论与赛题有关的问题。我们知道,抄袭别人的成果是违反竞赛规则的,如果引用别人的成果或其它公开的资料(包括网上查到的资料) ,必须按照规定的参考文献的表述方式在正文引用处和参考文献中明确列出。我们重承诺,严格遵守竞赛规则,以保证竞赛的公正、公平性。如有违反竞赛规则的行为,我们愿意承担由此引起的一切后果。我们授权五一数学建模联赛赛组委会,可将我们的论文以任何形式进行公开展示(包括进行网上公示

2、,在书籍、期刊和其他媒体进行正式或非正式发表等)。我们参赛选择的题号为(从A/B 中选择一项填写):A我们的参赛报名号为:第 3 组参赛组别(研究生或本科或专科) :本科所属学校(请填写完整的全名)工程学院参赛队员( 打印并签名 ) : 1.杜鹏2.真齐3. 吴韵楠日期:2014年4月19日题目货物配送问题摘要本文对于多种情形下货物配送问题进行分析,构造 Floyd 算法、曲线拟合等模型,分析成本和距离、需求量等因素之间的关系。问题一要求设计生产和配送方案,使得运输成本最低。因为配送成本跟运输的货物重量有关,运输成本同时和运输距离相关,要使得运输成本达到最小,就需要使从生产基地出发配送到销售连

3、锁店的距离最短。题中给出了城镇的位置以及城镇间的道路,所以可以运用 Floyd 算法,建立有向图 G , 求出任意两个城镇间的最短距离矩阵 A 和最短距离的路径选择矩阵 P 。经对比两个生产基地到销售连锁店的距离,对两个矩阵中数据进行筛选得出生产和配送方案。问题二要求分析近 5 年每个月 154 个城镇的鲜猪肉需求量, 预测何时全省的猪肉需求达到峰值和达到峰值时需求排名前五的城镇和后五的城镇。综合考虑,选择把时间量度定位月,对 5 年 60 个月的数据运用 Matlab 做出散点图,运用拟合曲线,求出在2014年 2 月全省的猪肉需求量达到峰值。又因为全省的猪肉需求在达到峰值前都是增加的,可以

4、判断大部分城镇的需求量都是增加的,可能有的城镇需求增长快慢不一,且数据量较大,处理起来稍有难度。所以假设该省每个小镇需求量增长曲线同全省的增长曲线是同一类型,运用 Matlab 求出达到峰值时,排名前五的小镇为 120、31、63、106、 150,排名后五的小镇为 143、30、74、 84、102。问题三要求选择一些城镇增加销售连锁店,扩大全省的销售量,尽可能少的增加销售点。因为每增加一个销售连锁店对本城镇的销售量提高15% ,对周围 10 公里的城镇销售量增加 8% 。得到增加一个销售连锁店的增加的销售量为:154bi0.08aij B j0.15Bij1同时引入一个 Di ,表示是否增

5、加销售连锁店。 在综和考虑到销售能力、 实际销售量的约束条件。又考虑总的销售量只有小于等于所有城镇的需求量才有意义,结合以上信息建立一个流程图,应用 Matlab 编写程序,得到在 6、32、56、58、69、76、111、113、115、117、124、135、136、138、139、140、147、149 小镇增加销售连锁店,使得总的销售量达到最大值。关键词Floyd 算法曲线拟合流程图一、问题重述1.1 问题背景随着我国生产和流通企业的结构调整,经济的快速发展和市场竞争的加剧,货物配送业会受到越来越多的重视。配送方式是现代物流的一个核心容,可以说是现代市场经济体制、现代科学技术和系统物流

6、思想的综合产物。配送对于经济发展的意义,重要的是在于它是企业发展的一个战略手段。基于此需要我们从理论与实践相结合的角度,来加强对货物配送问题的研究。货物配送是现代流通业的重要组成部分。现代物流技术的研究开发取得一定进展。一些货物配送企业在研究开发物流信息技术和物流配送管理技术上取得了许多成果, 这对于推动我国现代物流发展发挥了积极作用。配送运输属于运输中的末端运输、支线运输,和一般运输形态主要区别在于:配送运输是较短距离、较小规模、额度较高的运输形式,一般使用汽车做运输工具。与干线运输的另一个区别是,配送运输的路线选择问题是一般干线运输所没有的,干线运输的干线是唯一的运输线,而配送运输由于配送

7、用户多,一般城市交通路线又较复杂,如何组合成最佳路线,如何使配装和路线有效搭配等,是配送运输的特点,也是难度较大的工作。1.2 问题重述某公司是一家肉类食品加工与销售公司,主营:鲜猪肉。该公司在全省县级及以上城镇设立销售连锁店。 全省县级及以上城镇地理位置及道路连接见数据文件:全省交通网络数据 .xlsx研究以下问题:1、目前该公司现有 2 个生产基地、 23 家销售连锁店,生产基地设在 120 号和 63 号城镇,为 23 家连锁店提供鲜猪肉,连锁店的日销售量见附录 1。若运输成本为 0.45 元 / 吨公里,请你为公司设计生产与配送方案,使运输成本最低。2、公司收集了近 5 年全省各城镇的

8、鲜猪肉月度需求数据(文件:各城镇月度需求数据 .txt )请你分析各城镇需求特征, 并预测未来数年, 何时全省鲜猪肉需求达到峰值,达到峰值时需求达到前 5 位和后 5 位的城镇是那些?3、通过广告宣传等手段,未来几年公司在全省的市场占有率可增至3 成左右(各城镇对公司产品每日需求预测数据见文件:公司未来各城镇每日需求预测数据.txt),为增加市场竞争力,决定增设销售连锁店,其中每增设一家连锁店,对于本城镇的供货能力可增加 1.5 成,对于十公里以的城镇销售能力可增加0.8 成,但是每增设一家销售店,增设的销售连锁店销售能力控制在每日20 吨至 40 吨,并且要求增设的销售连锁店的销售量必须达到

9、销售能力的下限,如何在满足上述条件的情况下,尽可能少的增设销售点。请你为公司设计增设销售连锁店方案,使全省销售量达到最大。1二、问题分析2.1 对于问题一的分析问题一要求设计生产和配送方案, 使得运输成本最低。题目中已知有两个生产基地,需要把货物配送到 23个分布在全省的销售连锁店中,为了不造成浪费,每一个生产基地的最小生产量必须等于该生产基地配送的销售连锁店的需求量总和。因此,现需要确定配送方案才能确定两个生产基地的生产量。配送方案的选择与运输成本直接挂钩,运输成本与运输距离和运输重量成正比的,因此我们需要综合考虑运输距离和运输成本。综合以上这些提出两种运输方案,第一种是每一个销售连锁店配送

10、都是分立的,即送完该城镇后配送任务结束。第二种是一次运输几个城镇的货物,在配送完几个小镇后配送任务完成。无论哪种配送方案都需要考虑城镇与城镇间最短道路的问题,题中给出了城镇间道路数据,但是大部分城市之间没有直接相连的公路,而具体的配送道路的选择需要这些数据,因此我们需要求出任意两城镇间的最短道路。可以运用 Floyd 算法和 Matlab 编程求解出任意两个城镇间的最短道路, 选择需要的数据来实现最小成本和具体的运输配送方案。2.2 对于问题二的分析问题二给出近 5年每个月 154个城镇的鲜猪肉需求量,要求我们分析这些数据,预测何时全省的猪肉需求达到峰值和达到峰值时需求排名前五的城镇和后五的城

11、镇。该问题有两小问,第一个小问的对象是全省的猪肉需求量,可先求出 5年每个月全省的猪肉需求量,因为问题要求预测未来数年何时全省猪肉需求量达到峰值,并没有明确给出时间量度是年还是月。倘若时间量度是年,面临数据稀少,可能导致预测出的结果与实际情况误差较大。因此本文选择把时间量度定位月,对 5年60个月的数据运用 Matlab 做出散点图,根据散点图判断选择拟合曲线,求出何时到达峰值。第二小问要求求出达到峰值的年份排名前五和后五的城镇。考虑到全省的猪肉需求在达到峰值前都是增加的,可以判断大部分城镇的需求量都是增加的, 可能出现有的城镇需求增长较快, 有的增长较慢,加上数据量较大,处理起来稍有难度。本

12、文假设该省每个小镇需求量增长曲线同全省的增长曲线是同一类型,运用Matlab 求出达到峰值时,排名前五和后五的小镇。2.3 对于问题三的分析问题三给出了未来各城镇的每日需求量, 而且问题一中的销售连锁店的销售量总和达不到城镇每日的需求量,同时为了增强市场竞争力,要求选择一些城镇增加销售连锁店,扩大全省的销售量, 尽可能少的增加销售点。 并且给出了一些限制条件, 可以看出,此问可以建立 0-1规划模型,来求满足所给的条件下,使得全省的销售量达到最大的销售连锁店的量。三、模型假设2结合本题的实际,为了确保模型求解的准确性和合理性,我们排除了一些位置因素的干扰,提出以下几点假设:1、假设题目所给数据

13、准确无误;2、配送过程中不考虑回程的费用;3、本城镇部配送的路径为0;4、增加的销售量能够达到供给能力的上限。四、符号说明为了便于问题的求解,给出以下符号说明:A0无向图的邻接矩阵G无向图残差平方和R拟合程度指标A判断矩阵B j城镇 j 未来某日的需求量C小镇供货能力矩阵bi某一个小镇增加销售连锁店后增加的销售量N增加销售连锁店后增加的销售量总和M原来 23 个销售连锁店的销售量总和其他未出现的符号,在文章首次出现时会有说明。五、模型的建立与求解经过以上的分析和准备,我们将逐步建立以下数学模型,进一步阐述模型的实际建立过程。5.1 模型的建立1、 Floyd 算法:求最短路径问题的算法,可以算

14、出任意两个节点之间最短距离的算法;2、曲线拟合:用连续曲线近似地刻画或比拟平面上离散点组所表示的坐标之间的函数关系;33、赋权图:每条边都有一个非负实数对应的图。这个实数称为这条边的权。5.2 问题一模型的建立与求解题目中给出了共 154 个城镇, 23 家销售连锁店,以及 2 个生产基地,现要求从 2 个生产基地每天配送鲜猪肉给 23 家销售连锁店,生产基地设在 120 号和 63 号城镇, 23 家销售连锁店的分布图如图 1:图1 销售连锁店分布图图一中方框里的信息依次是销售连锁店代号、所在城镇代号、该销售连锁店每天需求量(单位:吨),蓝线表示销售连锁店之间的直达公路,蓝线上的数字表示销售

15、连锁店之间的距离(单位:公里) 。观察该图,可以看出销售连锁店 1和销售连锁店 10所在的城镇为鲜猪肉的一个生产基地,销售连锁店 3和销售连锁店 18所在的城镇为鲜猪肉的另一个生产基地。因此,这四个销售连锁店的运输都是城镇部的运输,本题不去考虑。剩余的销售连锁店需要由这两个生产基地中的任意一个配送鲜猪肉。从生产基地出发,考虑两种配给方式。方式一,从生产基地出发途经多个销售连锁店,出发时运载多个销售连锁店所需的货物。方式二,生产基地向销售连锁店单独运输。根据这个销售连锁店对鲜猪肉的需求量配送货物。现根据一个简单的例子证明两种配送方案哪一种成本更低。 选取图一中生产基地中的 1号,加上 9号销售连

16、锁店和 5号销售连锁店,它们两两间的距离分别为 a19 , a15 , a59 ,销售连锁店的需求量分别为 m9 , m5 ,方式一的配送成本为 0.45m5 (a19 a59 ) ,方式二的配送成本为 0.45m5 a15 ,所以方式一减去方式二的成本为:0.45m5 (a19a59a15 )在 a19 , a15 , a59 三条线段共线的情况下, 方式一减去方式二的成本为 0,即方式一和方式二的配送成本相等;根据三角形法则, a19 a59 a15 恒成立,所以方式一减去方式二的成本大于 0,即方式二的成本小于方式一的成本。从图 1中可以看出,大部分销售连锁店所在的城镇与生产基地没有直接

17、相连的公路,图 1并没有标出所有的城镇,因此每个销售连锁店实际都是可以到达的,只是相连的公路交错纵横,拥有很多种选择。问题一要求我们设计配送方案,使得运输成本最低。要使得运输成本最低,就要使得运输路径最短,可以运用 Floyd 算法,算出任意两个节点之间最短距离。这里给出全省城镇及道路分布图2:4图 2 全省城镇及道路分布图Floyd 算法是计算赋权图中各对顶点之间最短路径,用D ijkstra 算法每次以不同的顶点作为起点,计算从该点出发到其余顶点的最短路径,反复执行n1次这样的操作,就可以得到从每一个顶点到其他路径的最短路径。先建立无向图, 以各城镇为图 G 的顶点,两个城镇间的直通公路为

18、图 G 相应两顶点间的边,得图 G 。对 G 的每一边 e ,赋以一个实数 w(e) , w(e) 表示直通公路的长度,称为 e的权,得到赋权图 G 。赋权图 G 中指定的两个顶点 u i , vi间一定存在最小的轨,它的权叫做u 0 , v0 间的距离,记作 d(u 0 , v0 )赋权图 G 权的邻接矩阵 A0 :a11a12 L a1n来存放aijaijwijA0a21a22La2 nMMOMan1an 2Lannw(e) 。表示 i 到 j 没有直接的边相连。表示 i 到 j 的边的长度。算法的思想是先把图中点集分为成两组:第一组为以求出最短路劲的顶点集合 S ;第二组为其余未确定最短

19、路径的点的集合 U ,按最短路径长度的递增次序依次把第二组的顶点加入 S 中。在加入的过程中,总保持从原点 v 到 S 中各顶点的最短路径长度不大于从原点 v 到 U 中的任何顶点的最短路径长度。此外,每个顶点对应一个距离, S 中的顶点的距离就是从 v 到顶点的最短路径长度, U 中的顶点的距离,是从 v 到顶点值包括 S 中的顶点为中间顶点的当前最短路径长度。具体步骤1、初始时 , S 只包含源点 , v 的距离为 0, U 包含除 v 外的其他顶点, U 中顶点 u 距离为边上的权;2、从U 中选取一个距离 v 最小的顶点 k , 把 k 加入 S 中(该选定的距离就是 v 到 k 的最

20、短路径长度);53、以 k 为重新考虑的中间点,修改 U 中各顶点的距离;若从源点 v 到顶点 u 的距离(经过顶点 k )比原来距离(不经过顶点 k )短,则修改顶点 u 的距离值,修改后的距离值的顶点 k 的距离加上边上的权;4、重复步骤第二步和第三步知道所有顶点都包含在S 中。运用 Matlab 编程算出每一个城镇到所有城镇的最短距离矩阵A 和最短路线矩阵P 。在第一问中,两个生产基地分别在 120 号镇和 63 号镇。两个生产基地运送到各个销售连锁店的成本各部相同,显然选择成本最小的。因为最短距离矩阵 A 包括了 154 个城镇到其他所有城镇的最短距离,因此,从矩阵 A 中提取 23

21、个销售连锁店到两个生产基地的最短距离,择优选择配送的基地。并得到具体的配送方案如下表:表 1 路径选择表连锁店编号路径选择1120120212012513113010636363MM21120125124133132141151421431622120123236364根据配送方案,从最短路线矩阵P 中提取出具体的路线安排和此方案的最小成本。结果如下表:表 2运输成本表连锁店编号销售量(公斤)最短距离 ( 公里 )运输成本 ( 元)1287330023822363.71095.66229532173300MMMM2114783103.64689.44955422180815.1141.5772

22、59562318407.316.05268根据配送方案,从最短路线矩阵P 中提取出具体的路线安排和此方案的最小成本。结果如下表:表 3生产方案表生产基地生产量 ( 吨)631636191202302085.3 问题二模型的建立与求解首先,运用 Matlab 画出全省 5 年每个月的猪肉需求量散点图。 根据点分布的特征决定采用哪种拟合方式。拟合常用的方法是线性最小二乘法,本文也采用线性最小二乘法进行下面为线性最小二乘法的步骤:令 f ( x)a1r1 (x)a2 r2 (x)Lam rm ( x)其中 rk (x) 是选 定 的一 组线性无 关函数, ak 是待定 系数 。 拟 合的 准则是使

23、yi , i 1,2,L , n 与 f ( xi ) 的距离 i 的平方和最小,称为最小二乘准则。nyi ) 2记 J (a1 ,L , am) f (xii1为求 a1 ,L , am 使 J 达到最小,可利用极值的必要条件J0(k 1,L ,m), 得到关于aka1,L , am 的线性方程组nm1,L , m)rj (xi )ak rk ( xi )yi 0,( ji 1k1记r1( x1 )Lrm (x1)RMLMr1( xn )Lrm (xn )A a1,L ,am T ,Y ( y1 ,L , yn )T线性方程组可表示为RT RARTY当 r1 (x),L , rm ( x)

24、线性无关时, R 列满秩, RT R 可逆,线性方程组有唯一的解A RTR1RTY在根据散点图确定函数 r (k ) 。运用 Matlab 编程求出拟合的曲线。下面对所拟合出的曲线求它的趋线拟合程度指标 R先求出残差平方和2(Y y)7R2ssreg(Yy)212 ,sstotal(Yy)其中 ssreg称为回归平方和, sstotal 称为总平方和第二小问要求预测全省猪肉需求量达到峰值时的排名前五和排名后五的小镇,本题中共有 154 个小镇,数据量非常大处理起来较为繁琐,但是考虑到全省的猪肉需求量总体上市增加的,并且增加的曲线符合二次函数图形。为了方便处理数据,本文认为每一个小镇每月增长曲线

25、也符合二次函数的,运用 Matlab 拟合所有数据, 求出全省猪肉需求量达到峰值时每一个小镇的猪肉需求量,进行排名刷选出排名前五和后五的城镇。画出全省 5 年每个月的猪肉需求量散点图如下图3:图 3 全省 5 年每月猪肉需求量散点图 图 4 二次拟合图可以看出大致符合二次函数图象,因此拟合方式选择为二次拟合。运用 Matlab 对散点图进行拟合,得到的拟合图如图4:求出的拟合曲线函数关系式为:y2200 x23400 x 120000由拟合图形可以看出 5 年来每月的猪肉需求量都是递增的, 并且有函数关系式得出在 2014 年 2 月全省的猪肉需求量达到峰值。进行趋线拟合程度指标R 检验根据R

26、2ssreg1(Yy) 2(Y2sstotaly)求出 R 0.96210.8运用 Matlab 拟合全省 154 个城镇每个月的猪肉需求量数据,求出2014 年每一个小镇的猪肉需求量,进行排名刷选出排名前五和后五的城镇。如下表 4表 4 前五后五城镇表前5城镇需求量(吨)后 5城镇需求量(吨)1208660.7143118.5314645.330112.663382474106.981063569.48498150228410291.5从表中可以看出排名前五的小镇为120、31、63、106、150,排名后五的小镇为143、30、74、84、102。5.4 问题三模型的建立与求解首先,根据第

27、一问得到的最短距离矩阵,得到一个新的判断矩阵Aa11La1nAMMMan1Lann其中, aij01分别表示从城镇 i 到城镇 j 的最短距离小于等于10 公里, aij1aij 0 表示从城镇 i 到城镇 j 的最短距离大于等于10 公里。其中 a11 , a22 ,L , ann0 。考虑到全省 154 个城镇原来就有 23 个销售连锁店。拥有销售连锁店的小镇的原来供货能力就为小镇中所有销售连锁店日销售量的总和, 大部分小镇原来并没有销售连锁店,这一部分小镇的原来供货能力就为 Bi ,则可以生成一个小镇供货能力矩阵 Cc1C M ci还需生成一个矩阵Ee1E M eiei 0 表示城镇 i

28、 原来没有销售连锁店, ei0 表示城镇 i原来所有销售连锁店的日销售量总和。Bi 表示城镇 i每日的猪肉需求量;令 Di01 表示在该城镇增加一个销, Di1售连锁店, Di 0表示该城镇不增加销售连锁店。原来 23 个销售连锁店的销售量总和为 M , 增加销售连锁店后增加的销售量总和为 N 。全省的需求量总和为为 L 。在某一城镇增加一个销售连锁店,本城镇的需求量可能也会因此增加,但增加销售连锁店对本城镇的供货能力可提高1.5 成,即本城镇的销售量在原来基础上最大增加15% ;同时也对周围 10 公里以的城镇销售能力增加8%。令某一个小镇增加销售连锁店后增加的销售量为bi154bi0.08

29、aij Bj0.15 Bij1本问中原来就有23 个销售连锁店,根据第一问中所给的日销售量,本文认为第一9问中所给出的日销售量就是未来数年该销售连锁店的日销售量。 对比原来所有的销售连锁店日销售量总和,和未来数年各城镇的日销售量总和,发现原有的销售量无法满足现有的需求量。本文要使得全省的销售量达到最大,即要求增加的连锁店的销售量加上原有销售连锁店的销售量达到全省各城镇日需求量的总和。为了便于建立模型,本文中,某一城镇原有的销售量等于其需求量。新增加的连锁店等级高于原有的连锁店。即周围十公里的优先购买新增设的销售连锁店的产品。则目标函数为:154min z1i 1Di154154max z2MD

30、i (0.08aij Bj0.15 Bi )i1j 1限制条件1、增设的销售连锁店的销售能力控制在20 吨到 40 吨,得154200001.08aij cj1.15Bi ei40000j 12、销售量大于销售能力的下限,得15415420000aij c jBi1.08aij cj1.15Bi eij 1j 1可以看出,此问有两个目标函数,一个是要求全省的销售量达到最大。因此154154154M(0.08 aij Bj 0.15Bi )Bii 1j 1i 1第二个是要求增设的销售连锁店最小。这两个约束变量看似相互矛盾,但其实目标函数154min z1Dii 1是在满足约束条件的小镇的数量较多

31、,使得如果全部都增设会使得实际的理论销售量大于全省的需求量情况下为了避免不必要的费用,增设最少的销售连锁店达到要求。但若满足约束条件的小镇的数量少,全部增设销售连锁店都无法满足全省的需求量的时候,目标函数就舍弃, 所有满足的小镇都增设, 使得全省的猪肉销售量尽可能的大。综上,可得出下面的流程图:10根据流程图,运用 Matlab 编写程序,实现程序图。得出最终的结果为如下表5:表 5增设销售连锁店的城镇城镇632565876111增加销售量3450.333619.873897.812269.023872.283003.28城镇113115117124135136增加销售量2784.992024

32、.492558.742339.3332242298.03城镇138139140147148149增加销售量2420.733680.632747.123533.383582.482717.46增加的销售量为 56843.73kg 。六、模型评价与改进6.1 模型优缺点分析模型的优点1、Floyd 算法容易理解,可以算出任意两个节点之间的最短距离,代码编写简单;2、曲线拟合可以使函数在某种准则下与所有数据点最为接近;113、 Matlab 易于处理大量数据。模型的缺点1、Floyd 算法时间复杂度比较高,不适合计算大量数据;2、问题二中,再对154 个城镇每月需求拟合时没有考虑拟合的方式是否恰当。

33、6.2 模型改进问题一中可以应用 Dijkstra 算法,求出需要的数据,不必把所有的城镇与城镇间最短路径求出来,提高运算效率。七、模型推广针对最短路径选择问题,可以应用 Floyd 算法,该模型可以应用到导航仪中,根据给出的起点和终点,结合周围的道路分布情况,计算出最短的路径,以图形的形式反馈给客户。也可广泛应用到物流行业中。八、参考文献121 物流配送 baike.so./doc/1433098.html2014 年 4月 14日2Floyd算法.docin./p-19536903.html2014年 4月 16日3 曲线拟合 baike.baidu./view/325179.htm201

34、4 年 4月 19日4 百度文库 , Dijkstra , Floyd 算法 Matlab , Lingo 实现 ,wenku.baidu./link?url=-GEJZEmuDWR5_PS6jsxTT_YJBMPlRKyNe8d7L8l22ov-BJcsyl EQlumfjQ_0vYibQwskgy-omHMpCHL67SOIY18-HpbM-qY9hJqFmskiqSy,2014 年 4 月 16日附录 I13表 1 路径选择表连锁店编号路径选择1120120212012513113010636363463651501031512012512413313214166365150107636

35、46586366679912012512413313214115142143161101201201112011913454041423536126365150102928271312011913454443341412011913454041421512012513113010691902849394166366667686932123111763666676869324186363191201231341491461451420636666768693212221120125124133132141151421431622120123236364表 2 运输成本表连锁店编号销售量(公斤)最

36、短距离 ( 公里 )运输成本 ( 元)1287330023822363.71095.66229532173300423947114.661235.5933595925861.72257.13169268481108.36413.55052271557019.09133.75408583875928.17491.3284635914744134.31891.1199881032517001111503151.19782.6123565129265135.1563.26567513451119.5424.260643149489110.58472.182129151512773170.17978.

37、1116345166103108.36297.594486173251128.94188.632773182829500193965372.851299.924473206375168.95484.67531252114783103.64689.44955422180815.1141.57725952318407.316.05268表 3 生产方案表生产基地生产量 ( 吨)63163619120230208附录 II用 Matlab 作城镇散点图及城镇间道路连接图:clcclear allclose allx,y=textread(E:22.txt);plot(x,y,.) %作散点图hold

38、 onfor i=1:15416c=num2str(i);c= ,c;text(x(i),y(i),c)end % 在点上标城镇序号m=textread(E:m.txt);n=textread(E:n.txt);for j=1:248p=m(j);q=n(j);line(x(p),x(q),y(p),y(q)end% 连接有公路的两点d=1,10,11,16,22,24,27,31,34,36,42,62,63,64,79,94,106,120,123,141,145;for i=1:21plot(x(i),y(i),r+)end% 给 21 个零售点加红色标记个连锁店生产基地的选择矩阵:cl

39、cclear allclose alln=154;A = zeros(n);x=textread(E:m.txt);y=textread(E:n.txt);路程 .txt);ind=(y-1).*n+x;A(ind)=z;% 把矩阵中 Ax,y 替换为 zB=A+A;idx=find(B=0); %找出矩阵中等于 0 的数B(idx)=inf; %把等于 0 的数替换为 infB(logical(eye(size(B)=0;%给对角线上数赋为0a=B;%a是邻接矩阵%start 是起始点%terminal 是终止点%D是最小权值表%path 是最短路线表。D=a;n=size(D,1);pat

40、h=zeros(n,n);for i=1:nfor j=1:nif D(i,j)=infpath(i,j)=j;17endendendfor k=1:nfor i=1:nfor j=1:nif D(i,k)+D(k,j)0disp(选 63);elsedisp(选 120);endend% 输出 19 个零售店从 63 还是 120 运输的选择矩阵求解路径选择结果及最短距离大小:clcclear allclose alln=154;A = zeros(n);x=textread(E:m.txt);y=textread(E:n.txt);路程 .txt);ind=(y-1).*n+x;A(ind

41、)=z;% 把矩阵中 Ax,y 替换为 zB=A+A;idx=find(B=0); %找出矩阵中等于 0 的数B(idx)=inf; %把等于 0 的数替换为 infB(logical(eye(size(B)=0;% 给对角线上数赋为 0 a=B;%a是邻接矩阵%start 是起始点%terminal 是终止点18%D是最小权值表%path 是最短路线表。D=a;n=size(D,1);path=zeros(n,n);for i=1:nfor j=1:nif D(i,j)=infpath(i,j)=j;endendendfor k=1:nfor i=1:nfor j=1:nif D(i,k)+

42、D(k,j)0disp(选 63);elsedisp(选 120);endend% 输出 19 个零售店从 63 还是 120 运输的选择矩阵第二问对需求总和作散点图,二次拟合并求出最大值:clcclear allclose allx=1:60;拟合数据 .txt);p=polyfit(x,y,2)%对数据二次拟合xi=0:100;yi=polyval(p,xi);%求多项式值plot(xi,yi,x,y,r*)%作散点图及拟合图,可看出100 月之取到峰值max(yi)% 求峰值19m=find(yi=max(yi)%求峰值对应的月份 , 由月份推出其所在年份对各个城镇达到峰值月份时需求量的

43、预测:clcclear allclose all城镇需求数据 .txt);for i=1:154x=1:60;y=m(i,:);p=polyfit(x,y,2);%对数据二次拟合xj=74;yj=polyval(p,xj);%求多项式值disp(yj);end%得出第 74 月各个城镇预测销售量对预测需求量排序,求其前5 和后 5 需求量及其所属城镇:clcclear allclose alla=textread(E:1.txt);b,index=sort(a(:),descend)%将矩阵 a 数据从大到小排列,并列出其位置可找出前5和后5导出 0-1 判断矩阵 A:clcclear all

44、close alln=154;A = zeros(n);x=textread(E:m.txt);y=textread(E:n.txt);路程 .txt);ind=(y-1).*n+x;A(ind)=z;% 把矩阵中 Ax,y 替换为 zB=A+A;idx=find(B=0); %找出矩阵中等于 0 的数B(idx)=inf; %把等于 0 的数替换为 infB(logical(eye(size(B)=0;%给对角线上数赋为0a=B;%a是邻接矩阵%start 是起始点%terminal 是终止点%D是最小权值表20%path 是最短路线表。D=a;n=size(D,1);path=zeros(

45、n,n);for i=1:nfor j=1:nif D(i,j)=infpath(i,j)=j;endendendfor k=1:nfor i=1:nfor j=1:nif D(i,k)+D(k,j)D(i,j)D(i,j)=D(i,k)+D(k,j);path(i,j)=path(i,k);endendendendD(D10)=0;D %D为判断矩阵 Axlswrite(E:1.xls,D)求出第 3 问所需要的矩阵并保存在Excel 中:clcclear allclose allD=xlsread(E:D.xls);D(D10)=0;xlswrite(E:1.xls,D)D(logical

46、(eye(size(D)=0;xlswrite(E:2.xls,D)p=D; %P为判断矩阵 Aq=textread(E:3.txt);k=textread(E:3.txt);e=1,10,11,16,22,24,27,31,34,36,42,63,64,65,79,94,106,120,123,141,145;f=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1;ind=(f-1).*21+e;g=textread(E:4.txt);q(ind)=g;% 矩阵 ci21h=zeros(154,1);ind=(f-1).*21+e;g=textread(E:4

47、.txt);h(ind)=g;% 矩阵 eis=zeros(154,1);for i=1:154s=s+p(:,i).*q;endl=sum(k)-sum(g)xlswrite(E:5.xls,s+k)问题 3 用约束条件对数据筛选的城镇及其销售增加量clcclear allclose alla=xlsread(E:3.xls);b=find(a=20000&a=20000);% 根据约束条件筛选e=xlsread(E:6.xls);f=find(e=0);%根据约束条件筛选g=intersect(b,d);h=intersect(g,f)%符合之上约束条件的城镇m=xlsread(E:4.xls);s=0;for i=1:19n=m(h(i);s=s+n;disp(n);%符合约束条件城镇的销售增加量ends%所有销售增加量之和22

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!