Трехстороннее разбиение графа METIS дает неправильные веса разбиения - PullRequest
0 голосов
/ 30 марта 2020

У меня есть ненаправленный граф из 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])

При этом создаются следующие (с цветовой кодировкой) разделы:

enter image description here

Зеленая перегородка имеет гораздо большую сумму (8), чем красная (5) или синяя (4). Как я могу это исправить?

Обратите внимание, что результат, как и ожидалось, при делении на четыре раздела.

...