如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
可达矩阵快速算法(完整版)实用资料(可以直接使用,可编辑完整版实用资料,欢迎下载)传递闭包Warshall方法计算可达矩阵简要介绍①在集合X上的二元关系R的传递闭包是包含R的X上的最小的传递关系。R的传递闭包在数字图像处理的图像和视觉基础、图的连通性描述等方面都是基本概念。一般用B表示定义在具有n个元素的集合X上关系R的n×n二值矩阵,则传递闭包的矩阵B+可如下计算:B+=B+B2+B3+……+(B)n②式中矩阵运算时所有乘法都用逻辑与代替,所有加法都用逻辑或代替。上式中的操作次序为B,B(B),B(BB),B(BBB),……,所以在运算的每一步我们只需简单地把现有结果乘以B,完成矩阵的n次乘法即可。://93337/ism/cal_warshall_get_r_mat_detail.phpWarshall在1962年提出了一个求关系的传递闭包的有效算法。其具体过程如下,设在n个元素的有限集上关系R的关系矩阵为M:(1)置新矩阵A=M;(2)置k=1;(3)对所有i如果A[i,k]=1,则对j=1..n执行:A[i,j]←A[i,j]∨A[k,j];(4)k增1;(5)如果k≤n,则转到步骤(3),否则停止。所得的矩阵A即为关系R的传递闭包t(R)的关系矩阵。在《离散数学》中都提及了该算法。Warshall算法映射到有向图中设关系R的关系图为G,设图G的所有顶点为u1,u2,…,un,则t(R)的关系图可用该方法得到:若G中任意两顶点ui和uj之间有一条路径且没有ui到uj的弧,则在图G中增加一条从ui到uj的弧,将这样改造后的图记为G’,则G’即为t(R)的关系图。G’的邻接矩阵A应满足:若图G中存在从ui到uj路径,即ui与uj连通,则A[i,j]=1,否则A[i,j]=0。这样,求t(R)的问题就变为求图G中每一对顶点间是否连通的问题。相乘矩阵,就为所有节点的关系图,也就是当前条件下的关系矩阵。对于相乘矩阵,进行叠代,叠代的过程为,行取值,然后计算值中对应的每一行的值取并集,得到当前行的关系集合。取完所有行,得到了一个新的转移矩阵再对转移矩阵进行进行求解。Warshall的叠代次数比逐次平方法的运行效率要高。如果图中的顶点是有序的排列,只要进行一次Warshall运算就可以获得可达矩阵。您输入原始矩阵matrix_A为一个方阵结果如下第1次迭代当前0号要素a的可达集合(b,f,a)1号要素b的可达集合c,e,b5号要素f的可达集合c,f0号要素a的可达集合b,f,a当前0号要素a的可达集合(b,f,a,c,e)当前1号要素b的可达集合(c,e,b)2号要素c的可达集合b,c4号要素e的可达集合f,e1号要素b的可达集合c,e,b当前1号要素b的可达集合(c,e,b,f)当前2号要素c的可达集合(b,c)1号要素b的可达集合c,e,b,f2号要素c的可达集合b,c当前2号要素c的可达集合(b,c,e,f)当前3号要素d的可达集合(a,d)0号要素a的可达集合b,f,a,c,e3号要素d的可达集合a,d当前3号要素d的可达集合(a,d,b,f,c,e)当前4号要素e的可达集合(f,e)5号要素f的可达集合c,f4号要素e的可达集合f,e当前4号要素e的可达集合(f,e,c)当前5号要素f的可达集合(c,f)2号要素c的可达集合b,c,e,f5号要素f的可达集合c,f当前5号要素f的可达集合(c,f,b,e)当前6号要素g的可达集合(b,g)1号要素b的可达集合c,e,b,f6号要素g的可达集合b,g当前6号要素g的可达集合(b,g,c,e,f)第1次迭代得到的转移矩阵如下:第2次迭代当前0号要素a的可达集合(b,f,a,c,e)1号要素b的可达集合c,e,b,f5号要素f的可达集合c,f,b,e0号要素a的可达集合b,f,a,c,e2号要素c的可达集合b,c,e,f4号要素e的可达集合f,e,c当前0号要素a的可达集合(b,f,a,c,e)当前1号要素b的可达集合(c,e,b,f)2号要素c的可达集合b,c,e,f4号要素e的可达集合f,e,c1号要素b的可达集合c,e,b,f5号要素f的可达集合c,f,b,e当前1号要素b的可达集合(c,e,b,f)当前2号要素c的可达集合(b,c,e,f)1号要素b的可达集合c,e,b,f2号要素c的可达集合b,c,e,f4号要素e的可达集合f,e,c5号要素f的可达集合c,f,b,e当前2号要素c的可达集合(b,c,e,f)当前3号要素d的可达集合(a,d,b,f,c,e)0号要素a的可达集合b,f,a,c,e3号要素d的可达集合a,d,b,f