I have implemented an existing MIP Model into python with the python-mip solver and somehow I only get '0' as a solution to my minimization problem. What could be the problem? I am fairly new to LP and cannot really grasp, how I can fix this solution.

Welcome to the CBC MILP Solver 
Version: Trunk
Build Date: Nov 15 2020 

Starting solution of the Linear programming relaxation problem using Dual Simplex

Coin0506I Presolve 62 (-30) rows, 49 (-49) columns and 292 (-120) elements
Clp0000I Optimal - objective value 0
Coin0511I After Postsolve, objective 0, infeasibilities - dual 0 (0), primal 0 (0)
Clp0032I Optimal objective 0 - 0 iterations time 0.002, Presolve 0.00

Starting MIP optimization
Cgl0002I 4 variables fixed
Cgl0004I processed model has 62 rows, 49 columns (44 integer (44 of which binary)) and 292 elements
Coin3009W Conflict graph built in 0.000 seconds, density: 0.907%
Cgl0015I Clique Strengthening extended 0 cliques, 0 were dominated
Cbc0038I Initial state - 0 integers unsatisfied sum - 0
Cbc0038I Solution found of 0
Cbc0038I Relaxing continuous gives 0
Cbc0038I Before mini branch and bound, 44 integers at bound fixed and 5 continuous
Cbc0038I Mini branch and bound did not improve solution (0.00 seconds)
Cbc0038I After 0.00 seconds - Feasibility pump exiting with objective of 0 - took 0.00 seconds
Cbc0012I Integer solution of 0 found by feasibility pump after 0 iterations and 0 nodes (0.00 seconds)
Cbc0001I Search completed - best objective 0, took 0 iterations and 0 nodes (0.00 seconds)
Cbc0035I Maximum depth 0, 0 variables fixed on reduced cost
Total time (CPU seconds):       0.00   (Wallclock seconds):       0.00
  • 2
    $\begingroup$ Welcome to OR SE. To get any traction with this question, you would need to show us your model formulation (preferably in algebraic terms as opposed to code). $\endgroup$
    – prubin
    Commented Mar 28, 2022 at 18:26

1 Answer 1


Although we would need to see your model to really be able to tell what's happening, as a new practitioner here's a few things that you might find helpful:

First, zero can be a perfectly legitimate solution, especially since CBC proved that it's a globally optimal value. What you are interested in is the solution vector, not necessarily the optimal value of the objective per se.

Second, zero is actually a very common result for MIPs, since it's the minimum of a sum of binary variables with positive coefficients (assuming you're minimising). If that's your objective formulation, getting zero implies that none of your constraints was active at the global solution. This typically indicates that you forgot to add a constraint. I'm particularly suspicious that this is the case here since all your integers are binaries.

Third, especially if your objective coefficients have different signs, you should get suspicious that it might simply be that this is a legitimate answer to your problem and there's nothing wrong with your model. For sanity, double check your constraints to see if any of them are active at that solution and of course think about whether zero makes physical sense for what your objective is supposed to represent.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.