algoch15并行计算机图形技术

上传人:痛*** 文档编号:221621071 上传时间:2023-07-06 格式:PPT 页数:32 大小:380KB
返回 下载 相关 举报
algoch15并行计算机图形技术_第1页
第1页 / 共32页
algoch15并行计算机图形技术_第2页
第2页 / 共32页
algoch15并行计算机图形技术_第3页
第3页 / 共32页
点击查看更多>>
资源描述
Parallel Algorithms1/Ch15 Parallel Algorithms Chapter 15 Graph Algorithms2023/7/6Parallel Algorithms2/Ch15主要内容主要内容n15.1 图的并行搜索图的并行搜索 n15.2 图的传递闭包图的传递闭包n15.3 图的连通分量图的连通分量n15.4 图的最短路径图的最短路径n15.5 图的最小生成树图的最小生成树 2023/7/6Parallel Algorithms3/Ch1515.1 图的并行搜索图的并行搜索15.1.1 算法原理算法原理1.并行搜索的一般方法并行搜索的一般方法 (1)建立一个主表和建立一个主表和p个子表个子表;(2)开始时主表空开始时主表空,任取一个顶点作为待搜索顶点任取一个顶点作为待搜索顶点,并置入主表并置入主表;(3)p个处理器分别搜索与该顶点相邻的边个处理器分别搜索与该顶点相邻的边,将搜索到的顶点加入子表将搜索到的顶点加入子表;(4)以一定的策略以一定的策略,将子表链到主表将子表链到主表,并从主表中任取一个作为待搜索顶点并从主表中任取一个作为待搜索顶点;(5)重复重复(3)、(4)直至所有的顶点加入到主表直至所有的顶点加入到主表.2.串行搜索的上界串行搜索的上界 设搜索、加入顶点及表链接需要一个单位时间设搜索、加入顶点及表链接需要一个单位时间,则则 Tsi=1n(di+1)=2m+n di为顶点为顶点vi的度的度 注注:因为每个待搜索顶点因为每个待搜索顶点vi需要检查需要检查di条邻接边条邻接边,需要搜索需要搜索di次次;每个顶点每个顶点 只可能加入一次只可能加入一次.2023/7/6Parallel Algorithms4/Ch1515.1 图的并行搜索图的并行搜索3.三种并行搜索示例三种并行搜索示例 (1)p-深度优先搜索深度优先搜索 798265134(a)图G214378695(1)(1)(7)(2)(2)(6)(3)(3)(4)(5)(b)两个处理器的p-深度优先搜索2023/7/6Parallel Algorithms5/Ch1515.1 图的并行搜索图的并行搜索 (2)p-宽深优先搜索宽深优先搜索 798265134(a)图G215378694(1)(2)(2)(3)(4)(5)(1)(3)(6)(c)两个处理器的p-宽深优先搜索(5)2023/7/6Parallel Algorithms6/Ch1515.1 图的并行搜索图的并行搜索 (3)p-宽度优先搜索宽度优先搜索 798265134(a)图G215378694(1)(2)(2)(3)(4)(6)(1)(3)(6)(d)两个处理器的p-宽度优先搜索(5)2023/7/6Parallel Algorithms7/Ch1515.1 图的并行搜索图的并行搜索15.1.2 p-深度优先搜索深度优先搜索 1.算法描述算法描述 (1)主表为栈主表为栈,任取一个顶点置入主表任取一个顶点置入主表;(2)对栈顶元素开始搜索对栈顶元素开始搜索,p个处理器搜索一次个处理器搜索一次,将子表链接将子表链接 到主表到主表;(3)某顶点的边搜索完某顶点的边搜索完,从主表中删除从主表中删除;(4)重复重复(2),(3)直至主表为空直至主表为空.2.计算时间计算时间 搜索与顶点搜索与顶点i相邻所有边的次数相邻所有边的次数 p个元素链接成一个子表的时间个元素链接成一个子表的时间 2023/7/6Parallel Algorithms8/Ch1515.1 图的并行搜索图的并行搜索15.1.2 p-宽深优先搜索宽深优先搜索 1.算法描述算法描述 (1)主表为栈主表为栈,任取一个顶点置入主表任取一个顶点置入主表;(2)对栈顶元素开始搜索对栈顶元素开始搜索,p个处理器搜索完所有的邻边个处理器搜索完所有的邻边,再将再将 子表链接到主表子表链接到主表;(3)某顶点的边搜索完某顶点的边搜索完,从主表中删除从主表中删除;(4)重复重复(2),(3)直至主表为空直至主表为空.2.计算时间计算时间 搜索与顶点搜索与顶点i相邻所有边的次数相邻所有边的次数 将将p个子表链接起来的时间个子表链接起来的时间 2023/7/6Parallel Algorithms9/Ch1515.1 图的并行搜索图的并行搜索15.1.2 p-宽度优先搜索宽度优先搜索 1.算法描述算法描述 (1)主表为主表为FIFO队列队列,任取一个顶点置入主表任取一个顶点置入主表;(2)对队头元素开始搜索对队头元素开始搜索,并从主表中删除并从主表中删除;p个处理器搜索完个处理器搜索完 所有的邻边所有的邻边;(3)将子表链接起来将子表链接起来,并入主表中并入主表中;(4)重复重复(2),(3)直至主表和子表皆为空直至主表和子表皆为空.2.计算时间计算时间 宽度搜索的最大层数宽度搜索的最大层数 2023/7/6Parallel Algorithms10/Ch15主要内容主要内容n15.1 图的并行搜索图的并行搜索 n15.2 图的传递闭包图的传递闭包n15.3 图的连通分量图的连通分量n15.4 图的最短路径图的最短路径n15.5 图的最小生成树图的最小生成树 2023/7/6Parallel Algorithms11/Ch1515.2 图的传递闭包图的传递闭包15.2.1 传递闭包传递闭包 1.定义定义 有向图有向图G=(V,E),A=(aij)nn为邻接矩阵为邻接矩阵,A的传递闭包的传递闭包A+=(bij)nn,bij为为1时当且仅当顶点时当且仅当顶点i到顶点到顶点j之间有一条路径之间有一条路径,这里这里 2.串行算法串行算法:O(n3)1432(a)1 1 1 11 1 1 11 1 1 11 1 1 1(b)2023/7/6Parallel Algorithms12/Ch1515.2 图的传递闭包图的传递闭包3.基于布尔矩阵乘积的算法原理基于布尔矩阵乘积的算法原理 令令B=A+I,I为单位阵为单位阵,B=(b(1)ij)nn 则有则有,b(1)ij=1 i=j或或ij有有向边有有向边 ij有长为有长为0或或1的有向路径的有向路径 对于对于B2=(A+I)2=(b(2)ij)nn,b(2)ij=k=1nb(1)ikb(1)kj,这里这里为逻辑或为逻辑或 则有则有,b(2)ij=1 ij有长度有长度2的有向路径的有向路径.类似地类似地,Bk=(b(k)ij)nn,b(k)ij=1 ij有长度有长度k的有向路径的有向路径.因此因此,A+=Br (rn-1)所以所以,BB2B4B2 =A+,共有共有 次相乘次相乘2023/7/6Parallel Algorithms13/Ch1515.2 图的传递闭包图的传递闭包4.计算示例计算示例 1432(a)1 1 0 00 1 1 00 0 1 11 0 0 1(b)B=A+I=1 1 1 00 1 1 11 0 1 11 1 0 1(c)B2=1 1 1 11 1 1 11 1 1 11 1 1 1(d)B4=A+2023/7/6Parallel Algorithms14/Ch1515.2 图的传递闭包图的传递闭包5.SIMD-CC上的传递闭包算法上的传递闭包算法 -n3个处理器排成个处理器排成nnn的三维阵列的三维阵列,Pr坐标为坐标为(i,j,k),有三个寄存器有三个寄存器A(i,j,k),B(i,j,k)和和C(i,j,k),其中其中r=in2+jn+k,(0i,j,kn-1)初始时初始时:A(0,j,k)ajk 0j,kn-1;结束时结束时:C(0,j,k)为为A+的的(j,k)元素元素 -算法描述算法描述:算法算法15.1 Begin /输入输入:Ann,输出输出:Cnn (1)加入单位阵加入单位阵:Par-do A(0,j,j)1,0jn-1 (2)A复制给复制给B:Par-do B(0,j,k)A(0,j,k),0j,kn-1 (3)for i=1 to do (3.1)CAB /调用调用DNS乘法算法乘法算法12.7,O(logn)(3.2)par-do:A(0,j,k)C(0,j,k),B(0,j,k)C(0,j,k),0j,kn-1 endfor End /t(n)=O(log2n),p(n)=n3,c(n)=O(n3log2n)2023/7/6Parallel Algorithms15/Ch15主要内容主要内容n15.1 图的并行搜索图的并行搜索 n15.2 图的传递闭包图的传递闭包n15.3 图的连通分量图的连通分量n15.4 图的最短路径图的最短路径n15.5 图的最小生成树图的最小生成树 2023/7/6Parallel Algorithms16/Ch1515.3 图的连通分量图的连通分量15.3.1 SIMD-CC模型上的连通分量法模型上的连通分量法 -基于传递闭包求解算法基于传递闭包求解算法15.3.2 SIMD-CREW上的连通分量算法上的连通分量算法 -基于顶点合并的求解算法基于顶点合并的求解算法2023/7/6Parallel Algorithms17/Ch1515.3 图的连通分量图的连通分量15.3.1 SIMD-CC模型上的连通分量法模型上的连通分量法 1.传递闭包求解算法原理传递闭包求解算法原理 (1)用算法用算法15.1求解求解G的传递闭包的传递闭包,即连通矩阵即连通矩阵C (2)构造矩阵构造矩阵D:djk=vk 当当cjk=1时时 0j,kn-1 0 其他其他 (3)由由D计算出顶点计算出顶点vj的分量号的分量号 2.示例示例:P420例例15.3v1v4v7v2v5v8v0v6v3 0 1 2 3 4 5 6 7 8 0 0 0 0 1 0 0 1 0 11 0 0 0 0 1 0 0 1 02 0 0 0 0 0 1 0 0 03 1 0 0 0 0 0 0 0 04 0 1 0 0 0 0 0 0 05 0 0 1 0 0 0 0 0 06 1 0 0 0 0 0 0 0 07 0 1 0 0 0 0 0 0 08 1 0 0 0 0 0 0 0 0=G2023/7/6Parallel Algorithms18/Ch1515.3 图的连通分量图的连通分量 由由D计算连通分量计算连通分量=连通分量连通分量0:v0,v3,v6,v8 /v0,v3,v6,v8所在处理器并发写下标所在处理器并发写下标,/取最小下标取最小下标 连通分量连通分量1:v1,v4,v7 连通分量连通分量2:v2,v5 0 1 2 3 4 5 6 7 8 0 1 0 0 1 0 0 1 0 11 0 1 0 0 1 0 0 1 02 0 0 1 0 0 1 0 0 03 1 0 0 1 0 0 1 0 14 0 1 0 0 1 0 0 1 05 0 0 1 0 0 1 0 0 06 1 0 0 1 0 0 1 0 17 0 1 0 0 0 0 0 1 08 1 0 0 1 0 0 1 0 1=C 0 1 2 3 4 5 6 7 8 0 v0 0 0 v3 0 0 v6 0 v81 0 v1 0 0 v4 0 0 v7 02 0 0 v2 0 0 v5 0 0 03 v0 0 0 v3 0 0 v6 0 v84 0 v1 0 0 v4 0 0 v7 05 0 0 v2 0 0 v5 0 0 06 v0 0 0 v3 0 0 v6 0 v87 0 v1 0 0 v4 0 0 v7 08 v0 0 0 v3 0 0 v6 0 v8=D2023/7/6Parallel Algorithms19/Ch1515.3 图的连通分量图的连通分量 3.SIMD-CC上的算法上的算法 /输入输入:A(0,j,k)ajk,0j,kn-1 /输出输出:C(0,j,0)vj的连通分量号的连通分量号,0jn-1 Begin (1)调用算法调用算法15.1,求出连通矩阵求出连通矩阵C;/O(log2n)(2)构造矩阵构造矩阵D;/O(1)(3)for all P(0,j,k)Par-do:第第j行处理器行处理器P(0,j,k)将将vk的下标写入的下标写入C(0,j,0),并取最小顶点下标并取最小顶点下标;/O(logn)endfor End =t(n)=O(log2n),p(n)=n3 2023/7/6Parallel Algorithms20/Ch1515.3 图的连通分量图的连通分量15.3.2 SIMD-CREW上的连通分量算法上的连通分量算法 1.顶点合并的求解算法原理顶点合并的求解算法原理 初始时初始时:给每个顶点一个标号给每个顶点一个标号;结束时结束时:使处在相同连通分量中的不同顶点有相同的标号使处在相同连通分量中的不同顶点有相同的标号,该标号是所在该标号是所在 连通片顶点中最小标号连通片顶点中最小标号.2.示例示例 (1)求出每个顶点求出每个顶点i的最小相邻顶点的最小相邻顶点c(i),并指向最小相邻顶点并指向最小相邻顶点;v4v6(a)v9v8v7v5v1v3v2v1v2v5v3v6v7v4v9v8(b)2023/7/6Parallel Algorithms21/Ch1515.3 图的连通分量图的连通分量(2)用指针跳跃技术用指针跳跃技术,逐步指向树根逐步指向树根(连通片中标号最小的顶点连通片中标号最小的顶点),形成星树形成星树;(3)每棵星树根作为超顶每棵星树根作为超顶,超顶代表整棵星树超顶代表整棵星树,当两个超顶中有结点相邻时当两个超顶中有结点相邻时,则表示这两个超顶有连边则表示这两个超顶有连边,于是构成超图于是构成超图;(4)在超图中重复在超图中重复(1)(3),直至超图成孤立超顶集直至超图成孤立超顶集;(5)将最终超图中顶点的标号返回给超顶所代表的所有顶点将最终超图中顶点的标号返回给超顶所代表的所有顶点.v1v5v2v3v6v7v4v9v8(c)2023/7/6Parallel Algorithms22/Ch1515.3 图的连通分量图的连通分量3.SIMD-CREW上的算法上的算法 -算法描述:算法描述:P421 算法算法15.4 (1)用用n2个处理器实现个处理器实现;/O(logn)(2)用用n个处理器实现个处理器实现;/O(logn)(3)用用n2个处理器实现个处理器实现;/O(logn)(4)重复重复(1)(3)直至超图均为孤立点直至超图均为孤立点;/重复次数重复次数logn -计算时间计算时间 t(n)=O(log2n),p(n)=n2 -如何实现?如何实现?(思考题思考题)2023/7/6Parallel Algorithms23/Ch15主要内容主要内容n15.1 图的并行搜索图的并行搜索 n15.2 图的传递闭包图的传递闭包n15.3 图的连通分量图的连通分量n15.4 图的最短路径图的最短路径n15.5 图的最小生成树图的最小生成树 2023/7/6Parallel Algorithms24/Ch1515.4 图的最短路径图的最短路径15.4.1 所有顶点对间的最短路径所有顶点对间的最短路径 1.问题问题:有向图有向图G=(V,E),边权矩阵边权矩阵W=(wij)nn,求最短路径长度矩阵求最短路径长度矩阵 D=(dij)nn,假定图中无负权有向回路假定图中无负权有向回路.2.已有解法已有解法:Matrix Multiplication,Dijkstras,Floyds 3.基于矩阵乘法的算法原理基于矩阵乘法的算法原理 记记d(k)ij为结点为结点i到结点到结点j至多有至多有k-1个中间结点的最短路径长个中间结点的最短路径长 (1)d(1)ij=wij ij,如果如果i,j之间无连边存在记为之间无连边存在记为 0 (2)无负权有向回路无负权有向回路=dij=d(n-1)ij (3)应用最优性原理应用最优性原理:d(k)ij=minl=1nd(k/2)il+d(k/2)lj 视视:“+”“”,“min”“”=Dk=Dk/2Dk/2 (4)应用矩阵乘法应用矩阵乘法:DD2D4D2 =Dn,共有共有 次相乘次相乘2023/7/6Parallel Algorithms25/Ch1515.4 图的最短路径图的最短路径3.SIMD-CC上的并行算法上的并行算法 -算法描述算法描述:P429算法算法15.7 -时间分析时间分析:每次矩阵乘时间每次矩阵乘时间O(logn),共作共作 次乘法次乘法 =t(n)=O(log2n),p(n)=n34.示例示例2023/7/6Parallel Algorithms26/Ch1515.4 图的最短路径图的最短路径 2023/7/6Parallel Algorithms27/Ch15主要内容主要内容n15.1 图的并行搜索图的并行搜索 n15.2 图的传递闭包图的传递闭包n15.3 图的连通分量图的连通分量n15.4 图的最短路径图的最短路径n15.5 图的最小生成树图的最小生成树 2023/7/6Parallel Algorithms28/Ch1515.5 图的最小生成树图的最小生成树15.5.1 SIMD-EREW模型上的模型上的MST算法算法 1.Prim算法算法 -设顶点集设顶点集V=v0,v1,vn-1,边权矩阵边权矩阵W=(wij)nn,求求MST,令令c(vi)为为 非树结点非树结点vi与树上最近的结点与树上最近的结点.-算法算法:(1)开始时开始时,任取任取v0 作为初始树作为初始树,c(vi)=v0,i=1,n-1 (2)只要还有非树结点只要还有非树结点,做做:(2.1)对所有不在树上的结点对所有不在树上的结点vi,取取vj使使w(vj,c(vj)达到最小达到最小,将将vj与边与边 (vj,c(vj)加入树中加入树中;(2.2)对所有不在树上的结点对所有不在树上的结点vi,修改修改c(vi)c(vi)=c(vi)w(vi,vj)w(vi,c(vj)vj other -计算时间计算时间:(1)O(n)(2)已有已有k个结点在树中个结点在树中 t(n)=O(n2)(2.1)n-k-1次比较次比较;(2.1)n-k-1次比较次比较2023/7/6Parallel Algorithms29/Ch1515.5 图的最小生成树图的最小生成树2.SIMD-EREW模型上的模型上的MST算法算法 -数据划分数据划分n/p niProcessors01p-1Wc0.n-1i01p-12023/7/6Parallel Algorithms30/Ch1515.5 图的最小生成树图的最小生成树2.SIMD-EREW模型上的模型上的MST算法算法 -设有设有N个处理器个处理器P0,P1,PN-1,1Nn,N=n1-x,0 x(2)的时间的时间:O(n-1)(nx+logn)=O(n(nx+logn)取取nxlogn=N=n1-x t(n)=O(n1+x)c(n)=t(n)p(n)=O(n2)/成本最优成本最优2023/7/6Parallel Algorithms32/Ch15End of Chapter 152023/7/6
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 成人自考


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!