设A为图的邻接矩阵G = (V,E)。A(i,j) = 1如果节点i和j与边相连,A(i,j) = 0否则。
我的目标是了解是否G是非循环的。循环定义如下:
i并j连接:A(i,j) = 1j并k连接:A(j,k) = 1k并i连接:A(k,i) = 1
我已经实现了一个导航矩阵的解决方案,如下所示:
- 从边缘开始
(i,j) - 选择
O出自 的边的集合j,即j第 - 行中的所有 1A O以 DFS 方式导航- 如果从此导航生成的路径之一通向节点
i,则检测到循环
显然这个解决方案非常慢,因为我必须评估矩阵中的所有路径。如果A非常大,则所需的开销非常巨大。我想知道是否有一种方法可以导航邻接矩阵以便在不使用诸如 DFS 之类的昂贵算法的情况下找到循环。
我想在 MATLAB 中实现我的解决方案。
提前致谢,
埃莉诺。