27得票6回答
如何检测有向图是否有环?

如何检测有向图是否包含环?我考虑使用宽度优先搜索,但不确定。您有什么想法吗?

10得票2回答
图值传播算法

我有一个有向图 (N, A),其中每个节点 n[i] 都有一个值 v[i] 和一个阈值 t[i]。对于每个箭头 (n[i], n[j]),都满足不等式关系 v[i] <= v[j]。我需要有效地实现以下操作: increaseThreshold(i, x):将 t[i] 的值设为 m...

8得票2回答
有向图的数据结构,允许快速删除节点?

我需要存储一个有向图(不一定是无环的),以便节点删除尽可能快速。为了知道在删除节点时哪些边需要去掉,我不介意存储额外的数据。 如果我存储边的列表(作为节点索引对),那么当删除某个节点n时,我必须搜索整个列表以查找其源或目标为n的边。这对我的应用程序来说太昂贵了。是否可以通过在节点中存储一些附...

12得票3回答
点指向图是否允许具有不同rankdir的子图?

使用dot有向图语言,是否可以创建具有不同rankdir的子图? 我尝试了以下操作,但没有成功。两个图都是从左到右排列的,尽管在子图中存在rankdir="TB"。digraph g { rankdir="LR"; LEFT->RIGHT; clusterran...

40得票1回答
在networkx(Python)中获取有向图的根(头部)

我在一个项目中试图使用networkx进行一些图形表示,但不确定如何完成几个看似简单的任务。我创建了一个有许多节点和边的有向图,其中只有一个根元素。现在,我想从根开始遍历每个元素的子节点,并从它们中提取一些信息。如何获取这个DiGraph的根元素? 所以代码大概是这样的:#This is ...

11得票2回答
networkx:在边缘上绘制文本

为了我的论文,我需要绘制一些概率控制流图,即在边缘上描绘出概率的控制流图。 我发现 graph-tool 看起来非常有用,因为它可以使用现有图形的深拷贝,并且我的图形非常相似。 所以我的问题是,是否有可能在/旁边绘制边缘属性(或某些字符串)?如果不可能或者非常复杂,请问还有哪些工具在这种情...

23得票7回答
实现基于节点的图形界面?

我希望实现一个节点界面,基本上是一个DAG,其中每个节点对其输入连接执行操作,并输出某些内容(您可以将其连接到另一个节点)。 一些示例应用: 苹果公司的 "Shake" - 截图 The Foundry 公司的 "Nuke" - 截图 MindNode - 截图 vvvv - 截图集 Q...

10得票2回答
Java中的力导向布局实现

我一直在寻找一个Java实现的力导向图布局算法,但目前还没有找到。如果有任何帮助,将不胜感激 :)

19得票3回答
如何在Clojure中创建循环(且不可变)的数据结构而无需额外的间接引用?

我需要在Clojure中表示有向图。我想将图中的每个节点表示为一个对象(可能是一个记录),其中包括一个名为:edges的字段,它是从当前节点直接可达的节点的集合。希望不用说,但我希望这些图是不可变的。 使用这种方法,我可以构建有向无环图,只要进行拓扑排序并从“叶子向上”构建每个图。 然而,...

13得票3回答
在有向图的广度优先搜索中进行边分类

我在进行有向图的广度优先搜索时,遇到了正确分类边的困难。 在进行广度优先或深度优先搜索期间,您可以将遇到的边分为4类: TREE(树边) BACK(返祖边) CROSS(横叉边) FORWARD(前向边) Skiena [1] 给出了实现方法。如果您沿着从v1到v2的边移动,在Java中有...