0

I´m running a MIP model on PYOMO calling CPLEX as a Solver.

I´m receiving the following log:

  Implied bounds make row 'c_e_x1835719_' infeasible.

I would like to know which of my constraints c_e_x1835719 is representing. How should I accomplish this in PYOMO?

Here follows my solver call:

 results = SolverFactory.solve(model, 
                               tee = True,
                               logfile = "model.log")

I´ve tried to mimic this thread from OPL setting a larger BigMAPthreshold via option_string but it failed (CPLEX didin´t recognized BigMAPthreshold as a valid parameter).

 results = SolverFactory.solve(model, 
                               tee = True,
                               logfile = "model.log",
                               option_string='bigMapTheshold=1000000')

I´m declaring my constraints as follows:

    model.profit=Constraint(model.T, name='profit', rule=_profit)

EDIT:

As first comment on question, presolve changes constraints configurations and so it makes no sense trying to get original constraint name on log.

BUT...

Would it be possible to print this exactly new infeasible constraint in order to investigate what might be the root cause of infeasibility?

Thanks

Bruno
  • 87
  • 5
  • 2
    Note that the CPLEX message comes from presolve. At this time, the constraint may have already been altered by presolve and informations from other constraints may have been used to change it. So just looking at this constraint may not tell you what is wrong. You should better use the conflict refiner to figure out which constraints/bounds in your original model are in conflict. – Daniel Junglas Mar 23 '20 at 07:20
  • Thanks. I´ve editted my question accordingly to your comment. – Bruno Mar 23 '20 at 17:20

1 Answers1

1

As Daniel mentioned, you should use the conflict refiner. I don't know if Pyomo provides an interface to this CPLEX feature. If it doesn't, you can save your model as an .lp or .sav file and use the CPLEX Interactive:

cplex -c "read file.sav" "tools conflict"

The documentation about that feature is at https://www.ibm.com/support/knowledgecenter/SSSA5P_12.10.0/ilog.odms.cplex.help/CPLEX/UsrMan/topics/infeas_unbd/conflict_refiner/06_Interactive_title_synopsis.html.

Xavier Nodet
  • 5,033
  • 2
  • 37
  • 48