Bad suffix .iis when problem is not infeasible.

53 views
Skip to first unread message

nhh1...@gmail.com

unread,
Feb 20, 2021, 7:34:15 AM2/20/21
to AMPL Modeling Language
Hi! I am trying to run an analysis when problems are infeasible. Hence, I have defined `iisfind=1` in the CPLEX options and this code block to ensure the results of the infeasibility analysis is saved to file only if infeasibility exists:

if solve_result_num >= 200 and solve_result_num < 300 then {
  display _varname, _var.iis > out/infeasibility_analysis_variables.txt;
  display _conname, _con.iis > out/infeasibility_analysis_constraints.txt;
}

When infeasibility do exist, this solution works perfectly. However, I get an error message when the problem is feasible and, for instance, stopped because of a time liimit. Which I find strange because the code to write these files are wrapped by an if statement that should not be run for feasible problems.

run.txt, line 54 (offset 2346):
Bad suffix .iis for _con
context:  display _conname,  >>> _con.iis  <<< > out/infeasibility_analysis_constraints.txt;
Possible suffix values for _con.suffix:
astatus   body      defvar   derstage
dinit     dinit0    dual     lb
lbs       lbs1      lbs2     ldual
lslack    no        relax    slack
sno       sstatus   stage    status
ub        ubs       ubs1     ubs2
udual     uslack 


Does anyone have a suggestion on how to solve this issue? I prefer not to add the `iis` settings only if problems become infeasible as that is not a sufficiently automatic approach for me.

Thank you in advance!
Best,
Christian

nhh1...@gmail.com

unread,
Feb 20, 2021, 7:41:44 AM2/20/21
to AMPL Modeling Language
I found the answer here: https://groups.google.com/g/ampl/c/z1CwzJv0FWU

The problem was that the suffix does not exist, as the error message correctly stated. Hence, the suffic must be defined first with:

suffix iis symbolic OUT;

Best,
Christian
Reply all
Reply to author
Forward
0 new messages