分享

带权图

 厶汀 2013-10-25

1.         带权图中,边带有一个数字,叫做权,它可能代表距离、耗费、时间或其他意义。

2.         带权图用来最常解决的问题是最短路径问题(pps)。

3.         带权图的最小生成树中有所有的顶点和连接它们的必要的边,且这些边的权值最小。

4.         优先级队列的算法可用于寻找带权图的最小生成树。

5.         解决无向带权图的最小生成树的方法

1)         找到从最新的顶点到其他顶点的所有边,这些顶点不能在树的集合中,把这些边放如优先级队列。

2)         找出权值最小的边,把它和它所到达的顶点放入树的集合中。

3)         重复以上步骤,直到所有顶点都在树的集合中。

6.         带权图的最短路径问题可以用Dijkstra算法解决。这个算法基于图的邻接矩阵表示法,它不仅能找到任意两点间的最短路径,还可以找到某个指定点到其他所有顶点的最短路径。

Dijkstra算法的思想:

以解决寻找一条从一个城市到另一个城市的费用最低的路线为例(假设不能直接指导所有路线的费用,只能直接知道到邻接城市的费用)

1)         每次派一个代理人到新的城市,用这个代理人提供的新信息修正和完善费用清单,在表中之保留从源点到某个城市现在一直的最低费用

2)         不断向某个新城市派代理人,条件是从源点到那个城市的路线费用最低。

7.         有时为了看出某条路线是否可能,需要创建一个连通表。在带权图中,用一张表给出任意两个顶点间的最低耗费,这对顶点可能通过几条边相连。这种问题叫做每一对顶点之间的最短路径问题。Warshall算法(此算法在图章节中详述)能很快创建这样的连通表。在带权图中类似的方法叫做Floyd算法。

Floyd算法与Warshall算法的区别。在Warshall算法中当找到一个两段路径时,只是简单的在表中插入1,在Floyd算法中,需要把两端的权值相加,并插入它们的和。

8.         关于各种图的算法的效率:

图的表示法有两种:邻接矩阵和邻接表

算法                     时间级

邻接矩阵(所有)         OV2)

无权邻接表               O(V + E)

带权邻接表               O((E+V)logV)

WarshallFloyd算法      OV3)

其中V是顶点数量

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多