在networkx中,是否可以向图对象添加有向和无向边?

6

我正在实现一个算法来确定数据集的图形结构。数据集中的变量之间可能存在无向或有向边。我可以在Python中创建自己的图形对象,但我想知道Networkx是否具备此功能。从我所见,Networkx只有Graph对象(仅限无向边)和DiGraph对象(仅限有向边)。在Networkx中是否有一种方法可以在无向图中包含有向边和/或反之亦然?


1
嗯...无向边和双向边之间有区别吗? - Scott Boston
1
@ScottBoston 很好的问题。我认为从技术上讲有所不同,但是对于我的算法来说,用双向边来表示无向边应该是可以的(算法不考虑双向性)。 - m13op22
1
然后考虑双向边,这将是解决您问题最简单的形式化方法。 - m.raynal
感谢 @ScottBoston 和 m.raynal。出于好奇,有没有一种方法可以在Networkx中处理无向边和双向边之间的差异? - m13op22
老实说,我不知道(我从未使用过networkx)。通常用于指代既是有向图又是无向图的图形术语是“混合图”(即使定义似乎有点模糊)。因此,我建议您在networkx中查找该术语,但我感觉这是一个非常罕见的对象,所以很少有库实际上会实现它们。 - m.raynal
1个回答

3

networkx没有混合图处理功能。曾经有讨论,但实现会对整个库产生影响,因此被暂停了。据我所知,graph-tooligraph也没有这种功能。如果你不满意双向边被视为无向边,那么恐怕你不能使用Python库,因为在最流行的Python图形库中,即networkxgraph-tooligraph中不能同时存在有向和无向边。


1
谢谢。我最终创建了自己的图形类来处理两者。 - m13op22

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接