Я тестирую функции минимального сокращения как для Networkx, так и для Igraph, но я столкнулся с ситуацией, когда они возвращают разные значения для своих соответствующих функций mincut, учитывая точно такой же график.
G = nx.Graph()
graph = ig.Graph()
#LINES[1 - 3] are just src dest weights from a file. I did not include the parsing code for clarity purposes.
G.add_edge(lines[1], lines[2], weight=int(lines[3]))
graph.add_vertex(lines[1])
graph.add_vertex(lines[2])
graph.add_edge(lines[1], lines[2], weight=int(lines[3]), capacity=int(lines[3]))
ans = nx.stoer_wagner(G)
print("MinCut Val: ", ans[0])
print(graph.mincut())
Мой вывод из командной строки выглядит следующим образом:
MinCut Val: 744
Graph cut (0 edges, 1024 vs 31232 vertices, value=0.0000)
Есть ли причина такого несоответствия? Как это возможно для mincut быть 0 для одного и 744 для другого?
Спасибо!