删除节点(但保持图形强连接)
Removing nodes (but keeping graph strongly connected)
我试图模拟一个矩形房间,里面有一些直线障碍物,所以我将问题表述为 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' 对象没有属性 'is_directed'
这对我来说毫无意义,因为该图是 grid_2d_graph,显然是无向的。有什么问题,我该如何解决?
知道了。
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
我试图模拟一个矩形房间,里面有一些直线障碍物,所以我将问题表述为 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' 对象没有属性 'is_directed'
这对我来说毫无意义,因为该图是 grid_2d_graph,显然是无向的。有什么问题,我该如何解决?
知道了。
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