(u,v)是有向图中的边,我们就称顶点v领接顶点u。
从顶点u到顶点v的路径是顶点序列
<v0,v1,v2...vk>
,其中v0 = v,vk=u。路径中的顶点是唯一的,则称路径是简单的。起点和终点一致则为一个环。如果所有的中间顶点都不相同,则称环是简单的。如果图中的每一对顶点都邻接,则称图为完全图。树林是无圈图,树是连通无圈图。如果图是树,则边为顶点数减去一。
在计算机程序中,有两种表示图的标准方法。一种是矩阵,一种是邻接表(也可以存储有权图,可以定义一个Edge类)。
prime算法(dijkstra算法类似)
n个元素分给p个进程,各自计算本进程内最短值发给P0,P0得到全部最小值后广播给各个进程。给最小值节点纳入最小生成树,更新其他节点的距离。重复操作。
全部顶点间最短路径
使用dijkstra算法
1. 源划分形式:一个进程执行一个单源最短路。进程数目过多性能不好。由并发带来的等效率函数为O(N*N*N)
2. 源并行形式:每个顶点分配p/n个进程,算法总共能用到的进程数目为n*n。
使用Floyd算法
串行算法:三层for循环,