У меня есть ненаправленный граф из 7 узлов (для тестирования). Каждый узел имеет значение. Я хочу разбить график на 3 части с примерно равным весом разделов.
import networkx as nx
import metis
G = nx.Graph()
G.add_node(0, node_value=3)
G.add_node(1, node_value=2)
G.add_node(2, node_value=4)
G.add_node(3, node_value=1)
G.add_node(4, node_value=1)
G.add_node(5, node_value=3)
G.add_node(6, node_value=3)
G.graph['node_weight_attr'] = 'node_value'
(edgecuts, parts) = metis.part_graph(G, 3, tpwgts=[0.333, 0.333, 0.334])
При этом создаются следующие (с цветовой кодировкой) разделы:
Зеленая перегородка имеет гораздо большую сумму (8), чем красная (5) или синяя (4). Как я могу это исправить?
Обратите внимание, что результат, как и ожидалось, при делении на четыре раздела.