问题标签 [graph-traversal]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
1575 浏览

python - 迭代深度有限搜索返回次优路径——Python

如标题所示,我的迭代深度受限搜索返回次优路径。

这不是为了分配;只是对 IDLS 与 BFS 相比如何工作感兴趣

显然,我忽略了一些东西,但我的代码没有返回最佳路径,并且当以设定的限制(无迭代)运行时,或者刚好高于最佳路径时,它不会返回任何路径。

节点包含:状态、路径成本和解决方案(路径)

以下是代码:

0 投票
2 回答
8496 浏览

c++ - 获取 LLVM 中 BasicBlock 的前身

BasicBlock在 LLVM 框架中获取 a 的前辈最简单的方法是什么?

我看过DepthFirstIteratorand idf_iterator<BasicBlock*>,但实际上我需要对控制流图进行广度优先搜索。

我觉得这应该很容易,但是从文档或我一直在网上探索的示例中并不明显。

0 投票
2 回答
625 浏览

graph - 深度优先图搜索树中的后边

我已经完成了一项家庭作业,100 分中的大约 3 分用于以下问题。

“假设你在有向图上构建了一个 DFS 树。之后你注意到没有任何后边。这对图有什么说明?”

我已经对此进行了一些思考,我所能推断的是,这意味着存在隐含的依赖关系,因此只有一个特定的路径可以拓扑遍历图。不幸的是,我无法在网络上的任何地方找到有关此的任何信息,所以我想我会在这里发布我的答案,看看是否有人可以权衡它的(不)正确性。如果您有任何其他想法或建议可以帮助我解决此问题,请告诉我。

非常感谢!

0 投票
1 回答
1780 浏览

python - 使用 Networkx 运行有向图随机遍历的更有效方法

我正在尝试通过有向 networkx 图模拟随机遍历。伪代码如下

除了创建临时列表并删除元素(如果它们被标记为已访问)之外,是否有更有效的方法将路径标记为已行驶?

编辑

该算法的目标是在图中随机选择一个节点。选择该节点的随机后继/子节点。如果它未被访问,请到那里并将其标记为已访问。重复直到没有继任者/孩子或没有未访问的继任者/孩子

0 投票
1 回答
225 浏览

algorithm - 确定最近的边界(图论和几何)

示例图

图形

  • A : { x : x A ; y : y一个; 邻居:{ B, J } }
  • B : { x : x B ; :是邻居:{A,C}}
  • C : { x : x C ; y : y C ; 邻居:{ B, D, G, H } }
  • 等等

输入

一组顶点(点,笛卡尔坐标系)。

  • 一些顶点与其他顶点相连。
  • 输入上没有边的交点

问题

如何找到给定点的最近边界(例如绿点 1、2、3 之一)?我只能使用连接的顶点。

  • 第1点的解是 { A, B, C, D, E, F, G, I, J }。
    • 不是{ A, B, D } – { B and D } 和 { D and A } 之间没有边)。
  • 第2点的解是 { C, D, E, F, G }。
  • 第3点的解是 { C, G, H }。

我的想法

找到垂直线(这条线穿过问题点)和边缘(2个顶点之间)的交点。我现在知道2个顶点。怎么继续??

对于这种情况,我可以使用图论中的任何算法吗?

0 投票
2 回答
590 浏览

algorithm - 图遍历算法的使用

我正在阅读与 C++ 4e 中的数据结构和算法中的图形相关的材料(作者:Adam Drozdek)。在他的 Graph Breadth First Search 实现中,伪代码如下:

基本上,在图的实现中,我们已经保留了一组所有顶点和一组所有边。在 BFS 中,算法首先枚举该集合中未访问的每个顶点来遍历完整图。

我的问题是:由于我们已经将所有顶点存储在一个集合中,我们可以循环遍历该集合以对特定顶点进行操作,而无需使用 BFS 算法。为什么我们需要一个图遍历算法,主要用途是什么?

0 投票
0 回答
223 浏览

directed-acyclic-graphs - 是否有从 DAG 中提取元素的语言(或语言规范)

我有一个问题,我有大量的 DAG,我必须访问每个 DAG,并提取许多不同的项目集。

这听起来可能有点抽象,所以让我举个例子。Xpath 或 JSONPath 是指定如何从 xml 文档或 json 文档中提取元素的语言。它们是表示此类文档中特定元素的有效方式。因此,如果我有大量的 xml 文档,并且我想让消费者从每个文档中指定他们想要的内容,我会让他们为我提供一个 xpath 表达式,我会使用它来为每个人提供他们正在寻找的元素对于每个文档。

在这种情况下,我有许多 DAG,我的消费者每个人都想从每个 DAG 中提取几个项目(而不仅仅是一个项目)。我正在尝试设计一个规范,使人们可以从每个这样的 DAG 中表示他们想要的东西(具有指定特定元素的能力,具有不同复杂性的谓词)。我想知道是否已经存在对我所描述的目的有意义的语言规范。

如果这对于 DAG 不存在,但对于树存在,那也将非常有用。

0 投票
1 回答
201 浏览

neo4j - 无法从 RestTraverser 访问 iterator(),它给出异常 java.lang.IllegalAccessError

我正在使用 neo4j java-rest-binding 项目实现遍历框架。代码如下:

我需要执行代码中注释的 3 个任务:

  1. 打印与节点号相关的所有节点 ID。21
  2. 打印所有与节点号相关的关系 ID。21
  3. 遍历所有与节点号相关的路径。21

任务 1 和 2 工作正常。但是当我尝试执行traverser.iterator()第三个任务时,它会抛出一个异常说:

任何人都可以检查为什么会发生这种情况,或者如果我做错了,那么正确的方法是什么。提前致谢。

0 投票
2 回答
4693 浏览

javascript - JavaScript - 图形遍历 - 从起始节点按顺序(最近的)获取节点

我有一个看起来像这样的图表:

我需要编写一个javascript函数,给定一个起点(例如“B”),它将以最接近起点优先级的方式遍历图形。例如对于 B,它会得到孩子 D、F,然后是根,然后是兄弟 B、C,然后是孙子 G,然后是 B 和 C 的孩子,依此类推。

即使只有算法也可以

PS:我知道我可以在那里使用dijkstra,但我真的不知道如何

0 投票
2 回答
1490 浏览

neo4j - #Neo4j 在使用 java API 遍历时删除节点/关系

我需要遍历所有节点并根据某些标准删除所有节点(及其关系和连接节点)。出于测试目的(以确保我可以在遍历时删除节点),我试图只删除遍历中间的一个节点并使用另一个遍历来删除附加到该节点的所有节点和关系。我能够删除所有节点和关系,但之后当循环返回第一次遍历时,我得到了 IllegalStateException(节点已被删除)。遍历时是否可以删除节点/关系?如果是这样,遍历所有节点并沿途删除一些节点的有效方法是什么。提前致谢!