I'm using Pyomo to formulate an LP with approx 500,000 constraints and 200,000 decision variables. The LP is solved using CLP. Some instances fail to return even a feasible solution after many iterations (in the range 300,000-700,000). It's not hard for me to find a basic feasible solution, which would likely help the solver with solving the instances.

My questions are:

  1. Can I provide an initial solution to CLP to skip Phase 1 of the LP-solve (ideally from Pyomo)? If so, how?
  2. Are there other ways for me to explore to improve LP solving performance? The high iteration count is likely either due to degenerate constraints or numerical instability for some specific instances (see Klotz and Newman (2013) Practical Guidelines for Solving Difficult Linear Programs). I was unable to identify degenerate constraints in my formulation and have tried to limit the span of order of magnitudes in the parameters of the model. Are there any other approaches that have proved fruitful for you in similar situations?
  • $\begingroup$ Do you have any force to use CLP to solve your problem? Would you try using other solvers via NEOS interface using Pyomo? $\endgroup$
    – A.Omidi
    Aug 30, 2020 at 6:42
  • $\begingroup$ Thanks for your suggestion. Unfortunately, the Terms and Conditions of NEOS prohibit me from using their service. I've tried using Glpk as a solver, but found CLP better in terms of performance. $\endgroup$ Aug 30, 2020 at 17:13
  • $\begingroup$ Would you see this link? I hope it would be helpful. $\endgroup$
    – A.Omidi
    Aug 30, 2020 at 19:18
  • $\begingroup$ Would be interested in a solution in another high level language called JuMP (which runs on Julia not Python and has access to many solvers which can run locally on your machine (CPlex, Gurobi, ...) ) ? $\endgroup$ Sep 16, 2021 at 14:45


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.