cyclic-graph相关内容

Prolog 图路径搜索与循环路径

我是 Prolog 的新手.我试图找出一个问题,我需要检查边缘之间是否存在路径.我完成了循环的非循环图形代码,我的代码将进入无限循环. path(Start, End) :- edge(Start, End).路径(开始,结束):- 边缘(开始,Z),路径(Z,结束). 我需要通过定义一个新的谓词来处理这种情况:新路径(开始,结束,路径)这应该消除无限循环.请让我知道如何进行. 解决方案 ..

如何在 Prolog 中通过直接访问相邻顶点来表示有向循环图

我需要在 Prolog 中构建带有循环的有向图(在运行时),但我不确定如何表示它.我的要求是我需要在恒定时间内从一个顶点到达他的邻居. 是否可以将其表示为一棵树,例如: t(left_son,V,right_son) 但是如何解决循环问题? 我可以列出边: 图([a,b,c,d],[e(a,b),e(b,c),e(c,a),e(c,d)]) 或者只是 [a->[b], ..
发布时间:2022-01-12 10:14:36 其他开发

如何检测有向图是否循环?

我们如何检测有向图是否有环?我想使用广度优先搜索,但我不确定.有任何想法吗? 解决方案 通常使用深度优先搜索来代替.不知道BFS好不好用. 在DFS中,生成树是按照访问顺序构建的.如果访问了树中节点的祖先(即创建了后边缘),则我们检测到一个循环. 参见 http://www.cs.nyu.edu/courses/summer04/G22.1170-001/6a-Graphs-M ..

有没有办法在没有运行时开销的情况下构建带有循环链接的结构?

我正在尝试在 Rust 中实现一个循环链接的数据结构.我的 Node 定义为: #[派生(调试)]枚举节点{Link(&'a Node),叶子,} 我正在尝试构建一个这样的最小结构(额外的括号以获得更好的生命周期可见性): fn main() {让占位符 = Node::Leaf;{让 link1 = Node::Link(&placeholder);{让 link2 = Node: ..
发布时间:2021-09-09 19:38:16 其他开发

如何在 Prolog 中通过直接访问邻居顶点来表示有向循环图

我需要在 Prolog 中用循环构建有向图(在运行时),但我不确定如何表示它.我的要求是我需要在恒定时间内从一个顶点到达他的邻居. 是否可以将其表示为一棵树,例如: t(left_son,V,right_son) 但是如何解决循环? 我可以制作一个边列表: graph([a,b,c,d],[e(a,b),e(b,c),e(c,a),e(c,d)]) OR just [ ..
发布时间:2021-06-22 18:42:50 其他开发

如何初始化和“修改"程序. Scala中的循环持久数据结构?

我已经搜索并找到了有关此主题的一些信息,但是答案令人困惑或不适用. 我有这样的东西: class Thing (val name:String, val refs:IndexedSeq[Ref]) class Ref (val name:String, val thing:Thing) 现在,我想说的是,加载文件,解析文件并从中填充此数据结构.它是不可变的且周期性的,怎么可能呢? ..
发布时间:2020-11-27 04:13:12 其他开发

如何检测将边添加到有向图是否导致循环?

我遇到了等待图,我想知道是否有任何有效的算法来检测是否添加了有向图的边缘会导致一个循环? 所讨论的图形是可变的(它们可以添加或删除节点和边).而且,我们对知道一个犯罪周期并不感兴趣,只是知道一个周期就足够了(以防止增加一个犯罪边缘). 当然,可以使用一种算法来计算强连接的组件(例如Tarjan的组件)来检查新图是否非循环,但是每次添加边缘时再次运行它似乎效率很低. /p> 解决方案 ..
发布时间:2020-11-20 18:43:07 其他开发

带循环路径的Prolog图路径搜索

我是Prolog中的一名新手.我试图找出一个问题,需要检查边缘之间是否存在路径.我已经完成了用于循环的非循环图代码,我的代码将进入无限循环. path(Start, End) :- edge(Start, End). path(Start, End) :- edge(Start, Z), path(Z, End). 我需要通过定义一个新的谓词来处理这种情况: new_path(开始,结束 ..

循环检测代码没有找到在Java中的有向图中返回正确的循环数?

我使用 DFS 来编写代码,用于计算有向图中的周期数。检查循环是否存在的方法工作正常。我现在迭代所有顶点(我在HashMap中),并检查顶点是否未访问,然后检查循环是否存在,如果是这样,则递增计数器1.现在代码中断,它不会给出正确的数字例如:对于具有以下边缘的图: $ $ $ $ $ $ $ $ $ $(AB),(BC),(CE),(EA) ,(BE) 这是我的代码; publ ..
发布时间:2018-05-25 17:58:32 Java开发

couting后边缘来获得在有向图cylces的数目

我一直在写code以获得所有可能的循环有向图。 这里是跟踪的背面边缘的实现,每当一回边缘被发现,它返回真,一个周期被检测到。我扩展了这个以下几点: 计算在一个树中的所有可能的后边缘,的背面边缘的数量应给循环数目。不知道这是正确的。用这个,我实现了以下内容:计数下面的变量是没有用的。最初,我是有给每个周期的计数。但是,这并不给出正确的答案。但 edgeMap 的大小商店所有的后缘似乎给正确的数字在一 ..