我正在使用python的图形工具,一个实现boost的库。 我需要仅使用具有edge_property的边进行深度优先搜索:

rel_need = True

所以,我正在使用

gt.dfs_search(g, g.vertex(0), NeedFinder(rel_need, pred, time))

使用此DFSVisitor:

class NeedFinder(gt.DFSVisitor):

    def __init__(self, rel_need, pred, time):
        self.rel_need = rel_need
        self.pred = pred
        self.time = time
        self.last_time = 0

    def discover_vertex(self, u):
        self.time[u] = self.last_time
        self.last_time += 1

    def examine_edge(self, e):
        pass

    def tree_edge(self, e):
        if self.rel_need[e]:
            self.pred[e.target()] = int(e.source())

好像我应该在examine_edge def中做一些检查,但是我找不到解释它的文档。 我在tree_edge def中进行了检查,它成功地过滤了所有rel_need = true边缘,但它不会改变遍历。 如何创建仅遍历某些边缘而不是所有边缘的DFSVisitor?

===============>>#1 票数:1 已采纳

您应该首先创建一个过滤图。 你可以做:

u = GraphView(g, efilt=rel_need)

其中rel_need是一个布尔属性映射,其中rel_need[e] == True表示边缘未被滤除。

然后,您可以使用图形u继续进行DFS搜索,并忽略rel_need[e] == False的边缘。

  ask by shawnrushefsky translate from so

未解决问题?本站智能推荐:

1回复

python graph-tool切掉边缘

用于python的graph-tool割断了我的边缘,无论我砍了多少,我似乎都无法修复它...帮助! 更改输出大小不会执行任何操作。 另外,我的边缘文字看起来很粗糙。 有什么建议么?
1回复

如何访问图形工具的边缘? 为什么图形工具边缘没有ID?

我正在尝试访问图形工具的边缘。 示例:假设下图。 图片 从顶点0到顶点4有两条边,一条边的长度为1,一条边的长度为2。 我的问题是现在知道边缘索引,如何选择特定的边缘。 可悲的是,图形工具文档现在指出:“ ...无法通过其索引直接获得边,但是如果已知给定边的源和目标顶点,
3回复

图形工具-从pandas数据框中读取边缘列表

我开始使用graph-tool ,从pandas dataframe df导入边缘列表,例如: 因此,基本上是有向边的列表。 我根据教程将它们导入到graph-tool中: 根据add_edge_list( edge_list )的文档: edge_list可以是形状为(E,2
1回复

图工具:如何访问复制图的属性

我创建了图g的过滤图,并希望将其用作新图。 据我所知,属性也已复制,但是如何访问它们? 如果我使用“ weight”,它将是g的属性映射,而不是sub。 如果没有将属性复制到sub,该怎么做。 由于新图的顶点数量不同,因此顶点的索引已更改。 非常感谢
1回复

当我交换顶点时,从无向边缘图工具中删除边缘不起作用

我是图工具python库的新手,而我只是在尝试基础知识。 我的remove_edge命令有问题。 让我们看一下代码: 现在工作正常,但是如果我将最后一行更改为: 边缘不会被移除。 因为我的图是无向的,所以不应该将它们识别为同一边吗? 如果没有,如何找到一种更好的方法来确保
1回复

Graph Tool的edge_gradient属性

我想在Graph Tool的gt.graph_draw()上使用edge_gradient属性,以便更好地可视化绘图中连接的方向,这些绘图对于诸如箭头之类的标记而言过于拥挤。 从文档中的描述来看,这似乎是这个属性应该做的。 但是,目前它只允许我将边缘设置为纯色。 我正在使用这样的属
1回复

如何使用顶点和边的分类属性在图形工具中绘制颜色?

我有一个graph_tool.Graph生成如下: (非常明显的)值错误是: 我不想不必设置自定义颜色图等,然后将这些属性名称映射到color,是否有一些简单的方法将分类值映射到颜色(例如,类似于prop_to_size东西)? 更新 好吧,不幸的是,即使是一个简单的
1回复

graph-tool:如何访问属性?

我想将一个类的实例存储在一个图工具图中,每个节点一个对象(或图工具称其为“顶点”)。 我正在尝试使用顶点属性,因为这似乎是实现此目的的方法 。 现在,我想读回我的类对象,例如,遍历所有节点/顶点并打印其标题: 另外,如何从图形中获取具有特定标题的类对象? 一种方法似乎是使用g
1回复

Python图形工具按索引有效访问顶点属性

我有一个顶点索引列表,我需要为其获取相应的顶点属性。 我可以考虑通过以下代码来做到这一点: 它工作正常,但是我可以完全避免使用python循环以获得更好的速度吗? 我之所以这样问,是因为我发现这个特定的代码比另一个完全用python数据结构编写的代码要慢得多。 例如,这就是我正
1回复

深度优先搜索邻接

检查有向图是否牢固连接的程序 我有一个defaultdict: 还有一个包含所有不同字符串的集合: 现在这是我的代码: 注意:我的defaultdict可以包含带可选边缘权重的有向字符串。 那么,如何检查相邻节点? 老实说,我不确定100%是我的示例中的相邻