- 1、本文档共32页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
并行计算-多媒体课件-并行算法设计及分析-ch15GraphAlgorithms
Y.Xu Copyright USTC 主要内容 15.1 图的并行搜索 15.2 图的传递闭包 15.3 图的连通分量 15.4 图的最短路径 15.5 图的最小生成树 15.1 图的并行搜索 15.1.1 算法原理 1.并行搜索的一般方法 (1)建立一个主表和p个子表; (2)开始时主表空, 任取一个顶点作为待搜索顶点, 并置入主表; (3)p个处理器分别搜索与该顶点相邻的边, 将搜索到的顶点加入子表; (4)以一定的策略, 将子表链到主表, 并从主表中任取一个作为待搜索顶点; (5)重复(3)、(4)直至所有的顶点加入到主表. 2.串行搜索的上界 设搜索、加入顶点及表链接需要一个单位时间, 则 Ts≤∑i=1~n(di+1)=2m+n di为顶点vi的度 注: 因为每个待搜索顶点vi需要检查di条邻接边, 需要搜索di次; 每个顶点 只可能加入一次. 15.1 图的并行搜索 3.三种并行搜索示例 (1)p-深度优先搜索 15.1 图的并行搜索 (2)p-宽深优先搜索 15.1 图的并行搜索 (3)p-宽度优先搜索 15.1 图的并行搜索 15.1.2 p-深度优先搜索 1.算法描述 (1)主表为栈, 任取一个顶点置入主表; (2)对栈顶元素开始搜索, p个处理器搜索一次, 将子表链接 到主表; (3)某顶点的边搜索完, 从主表中删除; (4)重复(2),(3)直至主表为空. 2.计算时间 搜索与顶点i相邻所有边的次数 p个元素链接成一个子表的时间 15.1 图的并行搜索 15.1.2 p-宽深优先搜索 1.算法描述 (1)主表为栈, 任取一个顶点置入主表; (2)对栈顶元素开始搜索, p个处理器搜索完所有的邻边, 再将 子表链接到主表; (3)某顶点的边搜索完, 从主表中删除; (4)重复(2),(3)直至主表为空. 2.计算时间 搜索与顶点i相邻所有边的次数 将p个子表链接起来的时间 15.1 图的并行搜索 15.1.2 p-宽度优先搜索 1.算法描述 (1)主表为FIFO队列, 任取一个顶点置入主表; (2)对队头元素开始搜索,并从主表中删除; p个处理器搜索完 所有的邻边; (3)将子表链接起来, 并入主表中; (4)重复(2),(3)直至主表和子表皆为空. 2.计算时间 宽度搜索的最大层数 主要内容 15.1 图的并行搜索 15.2 图的传递闭包 15.3 图的连通分量 15.4 图的最短路径 15.5 图的最小生成树 15.2 图的传递闭包 15.2.1 传递闭包 1.定义 有向图G=(V,E), A=(aij)n×n为邻接矩阵, A的传递闭包A+=(bij)n×n, bij为1时当且仅当顶点i到顶点j之间有一条路径, 这里 2.串行算法: O(n3) 15.2 图的传递闭包 3.基于布尔矩阵乘积的算法原理 令B=A+I, I为单位阵, B=(b(1)ij)n×n 则有, b(1)ij=1 ? i=j或i?j有有向边 ? i?j有长为0或1的有向路径 对于B2=(A+I)2=(b(2)ij)n×n, b(2)ij=∨k=1~nb(1)ikb(1)kj, 这里∨为逻辑或 则有, b(2)ij=1 ? i?j有长度≤2的有向路径. 类似地, Bk=(b(k)ij)n×n, b(k)ij=1 ? i?j有长度≤k的有向路径. 因此, A+=Br (r≥n-1) 所以, B?B2?B4?…?B2 =A+, 共有 次相乘 15.2 图的传递闭包 4.计算示例 15.2 图的传递闭包 5.SIMD-CC上的传递闭包算法 - n3个处理器排成n×n×n的三维阵列, Pr坐标为(i,j,k), 有三
文档评论(0)