set NODES; # nodeset of digraph D param demand {NODES} ; # amounts required at destinations, # negative for supply nodes, zero for other nodes check: sum {j in NODES} demand[j] == 0; param cost {NODES,NODES} ; # shipment costs per unit, any real number var Xvar {NODES,NODES} >= 0; # units to be shipped minimize Total_Cost: sum {i in NODES, j in NODES} cost[i,j] * Xvar[i,j]; subject to Flowconserv {i in NODES}: sum {j in NODES} Xvar [j,i] - (sum {j in NODES} Xvar [i,j]) = demand[i];