- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
一、总论所谓贪婪技术就是在每一步操作中,贪婪地选择最佳操作,并希望通过一系列局部的最优选择进而对全局问题产生一个最优解。 贪婪算法的思想经常在日常生活中左右着我们处理问题时所采取的行为。 最简单的例子就是我们在买菜的时候总是想花最少的钱去买最好的菜,在进行选择时如果两家菜的质量一样,我们显然会去选择其中价格最低的那一家来进行购买,这其实就是最为朴素的贪婪算法。 在现代社会中物流产业已经成为国民经济发展的动脉,其发展程度可以说是衡量一国现代化程度和综合国力的重要标志之一,被喻为促进经济增长的加速器。 然而目前我们国内整体物流成本占的比例比较较高,下降速度也是非常缓慢,这就反映出我国的物流效益整体水平仍然较低。 而通过物流网络的合理化,可以在很大程度上降低物流成本,提高物流效益。 本文就单独以船舶物流航线来进行讨论。 我们的整个航运系统可以用联节点港务中心、需求点和航运路线构成的航运网络来表示。 我们首先需要制定出一个航运网络,然后再确定出它的港务中心,最后以该港务中心为出发点制定航线。 二、问题分析从计算机图论的角度出发我们可以将某个物流区域归纳为一个图=,,其中的为航运网络图结点港务中心、需求点,=[,]为连接节点,的边并且有一个非负权值=用来记录两个联节点之间的路径的损耗,那么我们最后所求得的配送路线即可以看作是一个小生成树,并且是图的一个子图*=*,*,且包含*,包含*。 如上图1所示,假设无向图表示一个航运网络,而其中的0,1,2,3,4,5,6,7,8,9,10,11,12,13分别表示十四个联节点,01,02,23等分别为各个联结点之间的路径。 而在路径上的数字则表示两个结点之间路径的权值。 三、通过算法确定港务中心算法的思想是首先,求出从起点到最接近起点的顶点之间的最短路径,然后求出第二近的,以此类推。 推而广之,在第次迭代开始以前,该算法已经确定了-1条连接起点和离起点最近顶点之间的最短路径。 运用这种算法的效率取决于图本身的数据结构,以及表示集合-是指已经加入到子树中的结点的集合的优先队列的数据结构。 如果我们采用数组存储的方式来进行运算的话,我们的时间复杂度将会属于||2。 假设我们所参考的图的权值足够准确,我们就可以将与其他结点最短路径之和最小的那个结点用来作为我们整个航运网络的港务中心。 运算结果如下1300=807,1310=629,通过上述计算结果我们可以知道结点3到其他结点的最短路径之和最小,所以在无向图之中最适合做其港务中心的结点就是3。 而结点13到其他结点的最短路径之和最大,因此是最不适合选作港务中心的结点。 四、用改良后的算法来计算最佳航路1.算法介绍算法是图论中求最小生成树的一种经典算法。 它是解决下述问题的一种有效方法假设我们在一个无向图中需要经过个需求点,我们就需要在该无向图中找出-1条边使包含该个结点的生成树在保持连通的同时还要使权的总和最小。 通过上面的描述我们可以看到,算法也可以用来解决在一个航运网络中求最短航运线路的问题。 其具体步骤如下令无向图=,,其生成树的顶点集合为。 1首先我们将把港务中心结点3加入到中。 2在所有的与-结点之间寻找在其中权值最小的边∈并将这一条边加入到该生成树之中。 3把步骤二中所找到的边所对应的属于-之中的结点*加入集合。 这时进行检测如果发现集合之中已经包含有所需要的个元素,则算法结束;否则继续执行步骤二。 2.并行算法当然在实际情况中,在同一个航运网络之中往往同时运行有两条或两条以上的航运线路。 而用传统的算法就无法解决这种问题,而需要对其进行改进。 首先我们需要确定港务中心所需要派出的船舶组数,如果是需要两组运输船舶那么我们最后所得出的结果应为两个子树1*1,*1,2*2,*2其分别对应两组航运线路。 下面是以无向图为例子的算法分析。 第一步首先在我们之前计算出来各个结点到其他结点的所有最短路径之和中找出数值最大的那个结点,在无向图中为13第二步然后再找出13的所有邻边之中权值最小的一条边11-13并将此边加入到结果子树1的边集*1中,并将13,11加入到子树1的点集*1中。 接着再用算法找出结点11,13到港务中心3的最短路径3-5-10-11-13并将该路径上的所有结点和边均加入子树1中。 第三步根据图三选择除港务中心结点外到其他结点所有最短路径之和最小的结点,判断该结点是否在*1中,若在,则接着去找次小值的结点继续判断。 直到发现满足条件的结点并将此结点的邻边中权值最小的一条边加入到结果子树2边集*2中。 然后用算法找出该结点到
文档评论(0)