欢迎使用CSDN-markdown编辑器

 定理二<br />    设A是满足|A| = n 的一个集合,且R是A上的一个关系,那么有<br />R<sup></sup> = R ∪ R<sup>2</sup> ∪ … ∪ R<sup>n</sup>.<br />    换句话说, 计算R<sup></sup>时不需要比n大的R的幂。<div><br />证明<br />    设a和b是A中的元素,假设a,x<sub>1</sub>, x<sub>2</sub>, … , x<sub>m</sub>, b是R中一条从a到b的路径,也就是说(a, x<sub>1</sub>), (x<sub>1</sub>, x<sub>2</sub>), … , (x<sub>m</sub>, b)都在R中。<br />如果x<sub>i</sub>和x<sub>j</sub>是同一个点,i &lt; j, 那么该路径可划分为三个块。首先,一条从a到x<sub>i</sub>的路径,然后是一条从x<sub>i</sub>到x<sub>j</sub>的路径,最后是<br />从x<sub>j</sub>到b的路径。因为x<sub>i</sub> = x<sub>j</sub>, 中间的路径是自循环的,所以我们可以略过它并把另两条路径拼接。这给予了我们一条更短的</div><div>从a到b的路径。</div><div>    现在使a,x<sub>1</sub>, x<sub>2</sub>, … , x<sub>k</sub>, b是从a到b的最短路径。若a ≠ b,则该路径上所有顶点都是不同的。否则前面的讨论告诉我们我们</div><div>能够找到一条更短的路径。因此该路径长度最多是n - 1(在|A| = n的情况下)。若a = b,根据相似的理由,a,x<sub>1</sub>, x<sub>2</sub>, … , x<sub>k</sub></div><div>是不同的,所以该路径的长度最多为n。换句话说,若a R<sup></sup>b,那么a R<sup>k</sup> b,其中k满足1 ≤ k ≤ n。因此R<sup></sup> = R ∪ R<sup>2</sup> ∪ … ∪ R<sup>n</sup>.</div><div>    用来解决问题1的方法分别都有某些困难。绘图法对于大的集合、关系来说是不实用的,并且也不是系统化的。运用矩阵</div><div>的方法在一般情况下可用,且也是足够系统化以便电脑进行编程的,但它不够有效率,且构建大的矩阵的代价大到足以被</div><div>禁止使用。幸运的是,有一个更有效率的用来计算传递闭包的算法,它就是Warshall算法。</div><div>&nbsp;</div><div>Warshall算法</div><div>    设想有一个在集合A = {a<sub>1</sub>, a<sub>2</sub>, … , a<sub>n</sub>}上的关系R。若x<sub>1</sub>, x<sub>2</sub>, … , x<sub>m</sub>是R中的一条路径,那么除x<sub>1</sub>、x<sub>m</sub>外的任何顶点是这条路</div><div>径的内顶点。现在,对1 ≤ k ≤ n,我们定义一个布尔矩阵<b>W</b><sub>k</sub>. 当且仅当从a<sub>i</sub>到a<sub>j</sub>有R上的一条路径时,<b>W</b><sub>k</sub>的(i, j)位才为1,且</div><div>这条道路的内顶点来自集合{a<sub>1</sub>, a<sub>2</sub>, … , a<sub>k</sub>}。</div><div>    既然任何顶点都来自{a<sub>1</sub>, a<sub>2</sub>, … , a<sub>n</sub>},那么当且仅当在R上有某路径连接a<sub>i</sub>和a<sub>j</sub>时,<b>W</b><sub>n</sub>在(i, j)位为1。换句话说,<b>W</b><sub>n </sub>= <b>M</b><sub>R<sup></sup></sub></div><div>若我们定义<b>W</b><sub>0</sub><b>M</b><sub>R</sub>,那么我们会得到一个首位是<b>M</b><sub>R</sub>,末位是<b>M</b><sub>R<sup></sup></sub>的序列,我们会展现如何通过<b>W</b><sub>k-1</sub>去计算<b>W</b><sub>k</sub>。接着我们</div><div>会从矩阵<b>M</b><sub>R</sub>开始,一次前进一步,n次之后就能得到矩阵<b>M</b><sub>R<sup></sup></sub>。这个流程被称作Warshall算法。矩阵与</div><div>&nbsp;</div>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值