Python Forum

Full Version: Reproducing assignment with min cost flow in networkx
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Hi so I have seen the ortools webpage ortools where it states that you can solve the assignment problem with the min cost flow algorithm, however when I try to reproduce this process with networkx I get an error. Can somebody point me to what am I doing wrong?

workersList = ['s1', 's2', 's3', 's4']
tasksList = ['c1', 'c2', 'c3', 'c4']
costs = [[90, 76, 75, 70], [35, 85, 55, 65], [125, 95, 90, 105], [45, 110, 95, 115]]

import networkx as nx
G = nx.DiGraph()
G.add_node('Start', demand = len(workersList))
G.add_node('End', demand = -len(workersList))
G.add_nodes_from(workersList)
G.add_nodes_from(tasksList)

for worker in workersList:
	G.add_edge('Start', work, weight=0, capacity=1)

for task in tasksList:
	G.add_edge(task, 'End', weigth=0, capacity=1)

for i, worker in enumerate(workersList):
	for j, task in enumerate(tasksList):
		if costs[i][j] != 'NA':
			G.add_edge(worker, task, weight=costs[i][j], capacity=1)

flowDict = nx.min_cost_flow(G)
print(flowDict)