Вот мой код:
Код: Выделить всё
import networkx as nx
G = nx.Graph()
edges = [
(1,2),(1,3),(2,3),
(4,5),(5,6),(4,6),
(7,8),(8,9),(9,7),
(10,11),
(3,4),(6,7),(9,10)
]
G.add_edges_from(edges)
group1 = {1,2,3,4,5}
group2 = {6,7,8,9,10,11}
cuts = []
for u, v in G.edges():
if (u in group1 and v in group2) or (u in group2 and v in group1):
cuts.append((u, v))
print(cuts)
Мои вопросы:
- Правильный ли это способ найти обрезанные края?
- Есть ли в NetworkX встроенная функция, позволяющая делать это более эффективно?
- Как я могу гарантировать, что раздел сбалансирован автоматически? вместо определения групп вручную?