Results
Results
Once we've added the model constraints, we call optimize
and
then output the optimal solution:
if m.status == GRB.Status.OPTIMAL: solution = m.getAttr('x', flow) for h in commodities: print('\nOptimal flows for %s:' % h) for i,j in arcs: if solution[h,i,j] > 0: print('%s -> %s: %g' % (i, j, solution[h,i,j]))
If you run the example gurobi.bat netflow.py, you should see the following output:
Optimize a model with 16 rows, 12 columns and 36 nonzeros Presolve removed 16 rows and 12 columns Presolve time: 0.00s Presolve: All rows and columns removed Iteration Objective Primal Inf. Dual Inf. Time 0 5.5000000e+03 0.000000e+00 0.000000e+00 0s Solved in 0 iterations and 0.00 seconds Optimal objective 5.500000000e+03 Optimal flows for Pencils : Detroit -> Boston : 50.0 Denver -> New York : 50.0 Denver -> Seattle : 10.0 Optimal flows for Pens : Detroit -> Boston : 30.0 Detroit -> New York : 30.0 Denver -> Boston : 10.0 Denver -> Seattle : 30.0