首页 > 编程知识 正文

图算法,南昌冲关算法图

时间:2023-05-05 07:40:15 阅读:179410 作者:2458

(u,v )是有向图中的边,称为顶点v接收顶点u。

从顶点u到顶点v的路径是顶点序列v0、v1、v2.vk。 此处,v0=v,vk=u。 如果路径中的顶点是唯一的,则路径称为简单。 起点和终点一致的话就是一个圈。 如果所有中间顶点都不同,则称为环很简单。

如果图的每对顶点相邻,则图称为完整图。 树林是无轮图,树是连通无轮图。 如果图是树,则边等于顶点数减去1。

计算机程序有两种表示图的标准方法。 一个是矩阵,另一个是邻接表(也可以存储权利映射,定义Edge类)。

prime算法(类似dijkstra算法)将n个要素分配给p个进程,分别计算本进程内的最小值并发送给P0,P0得到所有的最小值并向各进程广播。 在最小值节点中嵌入最小生成树,并更新其他节点的距离。 重复操作。

所有顶点之间的最短路径使用dijkstra算法

1 .源分割形式:一个进程执行一个单源的最短短路。 进程数量过多,性能差。 同时执行的等效率函数为o(n*n*n )2.源并行形式:在每个顶点分配p/n个进程,算法合计可以使用的进程数为n*n。 使用浮点算法

串行算法:三层for循环,每次使用一个中间点计算两点之间的最小值。

并行算法:

二维块映射:每个进程根据Dk-1计算Dk。

流水线二维分块映射:每个进程计算Dk-1,然后发送给同行的同列相邻进程。 其他进程将被传输。 本过程开始第k次迭代。

传递闭包连通成分的一维块被映射到各个进程中

稀疏图算法最大独立集合(添加任意一个节点将违反)串行算法)逐个统计为独立集合,删除与该数量相邻的所有数量,直到变为空。

并行算法: luby算法(给每个顶点一个随机值,每次取随机值最小的节点,删除他和他的相邻节点,重复直到清空) )。

单源最短路径串行算法的时间复杂度为o(e*logn ),e为更新次数,logn为更新时间。

并行算法可以将距离相等的值(安全顶点)集中取出并更新,也可以更新不安全的节点进行回滚。

分布式内存格式:每个进程管理几个节点,每个节点维护一个优先级队列。 包含源节点的更新将传递到其他节点。 如果其他节点具有指向源点的路径,则通常将其添加到首选队列中(如果该节点能够到达接收节点)。 优先队列每次都给出最小值。 如果到达的节点减小了原路径,则原节点必须再次加入优先队列。

二维块映射:

二维循环映射:空闲时间少了,但通信时间增加了。

一维块映射:

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。