最短路径问题的几个算法.doc

  1. 1、本文档共17页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
最短路径问题的几个算法

最短路径问题) r+ g v% [5 p) W) J 最短路径问题是一个非常能联系实际的问题,某人想从城市A出发游览各 城市一遍,而所用费用最少。试编程序输出结果。   解这类题时同学们往往不得要领,不少同学采用穷举法把所有可能的情况全部列出,再找出其中最短的那条路径;或是采用递归或深度有哪些信誉好的足球投注网站,找出所有路径,再找出最短的那条。这两种方法可见都是费时非常多的解法,如果城市数目多的话则很可能要超时了。   实际上我们知道,递归、深度有哪些信誉好的足球投注网站等算法一般用于求所有解问题(例如求A出发每个城市走一遍一共有哪几种走法),而这几种算法对于求最短路径这类最优解问题显然是不合适的,以下介绍的几种算法就要优越很多。 : V7 @) v g3 \   首先,对于这类图我们都应该先建立一个邻接矩阵来存放任意两点间的距离数据,以便在程序中方便调用,如下: const dis:array[1..5,1..5] of integer =( ( 0, 7, 3,10,15), 0 u; Y0 O i2 L/ i \                       ( 7, 0, 5,13,12),                       ( 3, 5, 0, 5,10), 8 I- f E: D1 J                       (10,13, 5, 0,11),                       (15,12,10,11, 0));   以下是几种解法: 3 G3 c# u e- I7 y   一、 宽度优先有哪些信誉好的足球投注网站 % O9 O4 G3 W, L9 l3 Q9 O   宽度优先有哪些信誉好的足球投注网站并不是一种很优秀的算法,只里只是简单介绍一下它的算法。   具体方法是: 2 c d6 Y) \/ t9 h3 c/ i   1、 从A点开始依次展开得到AB、AC、AD、AE四个新结点(第二层结点),当然每个新结点要记录下其距离;   2、 再次以AB展开得到ABC、ABD、ABE三个新结点(第三层结点),而由AC结点可展开得到ACB、ACD、ACE三个新结点,自然AD可以展开得到ADB、ADC、ADE,AE可以展开得到AEB、AEC、AED等新结点,对于每个结点也须记录下其距离; 5 n. d+ ^ B5 `7 A; v   3、 再把第三层结点全部展开,得到所有的第四层结点:ABCD、ABCE、ABDC、ABDE、BEC、ABED……AEDB、AEDC,每个结点也需记录下其距离;   4、 再把第四层结点全部展开,得到所有的第五层结点:ABCDE、ABCED、……、AE 1 \5 {2 `0 r: I V* h DBC、AEDCB,每个结点也需记录下其距离;   5、 到此,所有可能的结点均已展开,而第五层结点中最小的那个就是题目的解了。   由上可见,这种算法也是把所有的可能路径都列出来再找最短的那条,显而易见这也是一种很费时的算法。 ) p. ?+ X5 c: B* `5 u4 j7 O   二、 A*算法   A*算法是在宽度优先有哪些信誉好的足球投注网站算法的基础上,每次并不是把所有可展的结点展开,而是对所有没有展开的结点,利用一个自己确定的估价函数对所有没展开的结点进行估价,从而找出最应该被展开的结点(也就是说我们要找的答案最有可能是从该结点展开),而把该结点展开,直到找到目标结点为止。 2 _0 Z. d; G* A( E+ [ W9 V* [   这种算法最关键的问题就是如何确定估价函数,估价函数越准则越快找到答案。A*算法实现起来并不难,只不过难在找准估价函数,大家可以自已找资料看看。   三、等代价有哪些信誉好的足球投注网站法    0 J3 J$ W( z% c/ m5 ?: l k) ? K   等代价有哪些信誉好的足球投注网站法也是基于宽度优先有哪些信誉好的足球投注网站上进行了部分优化的一种算法,它与A*算法的相似之处都是每次只展开某一个结点(不是展开所有结点),不同之处在于:它不需要去另找专门的估价函数,而是以该结点到A点的距离作为估价值,也就是说,等代价有哪些信誉好的足球投注网站法是A*算法的一种简化版本。它的大体思路是:   1、 从A点开始依次展开得到AB(7)、AC(3)、AD(10)、AE(15)四个新结点,把第一层结点A标记为已展开,并且每个新结点要记录下其距离(括号中的数字);   0 z G0 p3 V( K X 2、 把未展开过的AB、AC、AD、AE四个结点中距离最小的一个展开,即展开AC(3)结点,得到ACB(8)、ACD(16)、ACE(13)三个结点,并把结点AC标记为已展开;   3、 再从未展开的所有结点中找出距离最小的一个展开,即展开AB(7)结点,得到ABC(12)、ABD(20)、ABE(19)三个结点,并把结点AB标记为已展开;   

文档评论(0)

82393aa + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档