深圳业务员吧 关注:585贴子:1,826
  • 1回复贴,共1
求助

传递闭包一定能在有限步内计算得到吗

只看楼主收藏回复



1楼2023-05-16 18:07回复
    在有限个元素的有向图中,传递闭包可以通过Floyd算法在$O(n^3)$的时间内计算得到。具体而言,给定$n$个元素的有向图,对应的邻接矩阵为$A$,则其传递闭包$R$可以通过以下算法计算得到:for k from 1 to nfor i from 1 to nfor j from 1 to nR[i][j] := R[i][j] or (R[i][k] and R[k][j])其中$R[i][j]$表示元素$i$和$j$之间是否存在路径,如果有则为1,否则为0。每次进行更新时,判断是否存在从$i$到$j$的路径,如果有则$R[i][j]$置为1。Floyd算法的时间复杂度为$O(n^3)$,在有限步内可以计算得到传递闭包。当然,如果是大规模的图,时间复杂度会极高,这时候需要选择其他更高效的算法。


    IP属地:广西2楼2023-05-27 20:11
    回复