我在用着 BGL 存放我的dag。顶点有状态。在我想更新依赖的顶点的顶点之一中的状态变化。我可以使用boost :: depth_first_search和自定义访问者进行此操作。

现在的逻辑是,如果顶点处于特定状态,我不想更新搜索的顶点及其依赖性。基本上,我想控制DFS或BFS中的顶点的出现。在BGL中实现这一目标的最佳方法是什么。

谢谢。

有帮助吗?

解决方案

似乎BOOST :: DEPTH_FIRST_SERACH不支持这一点,但是通过其第二个过载允许“终端函数”(terminatorFunc),基础的boost :: depth_first_visit确实可以。

因此,您可以将BOOST :: DEPTH_FIRST_SERACH的实现复制,并用您自己的(非琐事)终结器函数替换传递给boost :: depth_first_visit的详细信息:: depth_first_visit。

其他提示

缺乏深度优先搜索的终止 - 是我见过的图形库中最愚蠢的事情。

可能是,这可能是出路:filtered_graph上的depth_first_search。您可以以某种方式标记stop-vertex,并且在过滤器的函数中,filtered_graph只是隐藏事件边缘

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top