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