图与网络模型及方法之最短路问题(dijkstra算法)

风格不统一 提交于 2020-03-01 19:04:07

两个指定顶点之间的最短路径:

 

两个指定顶点之间最短路问题的数学规划模型:

 

 

 每对顶点之间的最短路径:

 

 

最小生成树问题:

  • Prim算法:

 

 

Prim算法类似病毒感染的过程,其中P中存放的是已经计算出的顶点(即前一顶点与后一顶点构成的边在最短路径上),然后遍历P中所有的顶点,找出与V-P中所构成的边的最小值得那个顶点a,然后将顶点a归入P中,如此迭代,最终P=V,即算出了最小生成数。

  • Kruskal算法:

 

 

 

 其实Kruskal算法的思想和Prim算法的思想都是一样的(都是将所有点分为两个集合,已经遍历过的点归入P集合,未遍历过的点在V-P集合中,其中V是所有点的集合),Prim算法是将每次算出的最小权值的新顶点归入P集合,然后找出P集合与V-P集合中的点所成的最小权值的边,将构成最小权值边的V-P中的那点再归入到P集合中,如此迭代下去,P集合最终会和V集合相等。Kruskal算法是将P集合中的点化为一个点(标号值最小的那个点,对于每次迭代来讲,即将找到的最短权值边的较大的顶点标号改为较小的那个顶点的标号,并且淘汰掉此次迭代找到的最短权值边),每次迭代都会找到一个新点,如此迭代n-1(n是V集合中点的个数)次,就算出了最小生成树。

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!