【问题标题】:Removing nodes (but keeping graph strongly connected)删除节点(但保持图强连接)
【发布时间】:2019-04-22 01:03:11
【问题描述】:

我正在尝试模拟一个带有一些直线障碍物的矩形房间,因此我将问题表述为 networkx 中的图形。要添加障碍物,我将选择节点,然后删除其所有边。为了防止图分区,这是我使用的代码

        self.G = nx.grid_2d_graph(*room_size)

        # create obstacles but keep graph strongly connected
        for i in range(obstacles):
            copy = self.G.copy
            while nx.number_connected_components(copy) != 1:
                copy = self.G.copy
                copy.remove_node(sample(self.G.nodes(),1))
            self.G = copy

但似乎 'nx.number_connected_components(copy)' 引发错误:'function' object has no attribute 'is_directed'

这对我来说毫无意义,因为该图是一个 grid_2d_graph,它显然是无向的。有什么问题,我该如何解决?

【问题讨论】:

  • 很高兴你解决了它。将来,为错误提供完整的“回溯”将有助于我们诊断问题。

标签: networkx connected-components strongly-connected-graph


【解决方案1】:

知道了。

while obstacles > 0:
    copy = self.G.copy()
    copy.remove_node(choice(list(self.G.nodes)))

    if nx.number_connected_components(copy) == 1:
        self.G = copy
        obstacles -= 1
    else:
        continue

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-11
    • 1970-01-01
    • 2015-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多