iis bad suffix error for linear program

483 views
Skip to first unread message

bethanyc

unread,
May 14, 2014, 3:05:14 AM5/14/14
to am...@googlegroups.com
I have a linear program that is found to be infeasible by CPLEX (i.e., it makes it past presolve just fine).  I want to determine which constraints are causing the infeasibility.  I have tried using the "option iisfind 1" command, but get a "bad suffix" error:

CPLEX 12.4.0.0: infeasible problem.
2 dual simplex iterations (0 in phase I)
constraint.dunbdd returned
4327 extra dual simplex iterations for ray
#Total          1220.67
#execute        0.196           0               1240710448
ampl: display con.iis;

con is not defined
context:  display  >>> con.iis; <<<
ampl: display _con.iis;

Bad suffix .iis for _con
context:  display  >>> _con.iis; <<<
Possible suffix values for _con.suffix:
        astatus   body     defvar    derstage
        dinit     dinit0   dual      dunbdd
        lb        lbs      lbs1      lbs2
        ldual     lslack   no        relax
        slack     sno      sstatus   stage
        status    ub       ubs       ubs1
        ubs2      udual    uslack

I have tried turning presolve off (even though that shouldn't matter in this case) and typing "solve" a second time, but I get the same error each time.  I saw some other posts on here with a similar issue, but they presumably were resolved by just turning presolve off (although I could have easily missed a more relevant post).  I feel like this should be straight-forward.  Any suggestions would be appreciated.  Thank you!

victor.z...@gmail.com

unread,
May 14, 2014, 1:36:21 PM5/14/14
to am...@googlegroups.com
You should use 

  option cplex_options 'iisfind 1';

instead of

  option iisfind 1;


HTH,
Victor


--
You received this message because you are subscribed to the Google Groups "AMPL Modeling Language" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ampl+uns...@googlegroups.com.
To post to this group, send email to am...@googlegroups.com.
Visit this group at http://groups.google.com/group/ampl.
For more options, visit https://groups.google.com/d/optout.

bethanyc

unread,
May 15, 2014, 1:07:06 AM5/15/14
to am...@googlegroups.com
Thank you!  Works now.  I figured it had to be something simple (although I'm not sure how I completely missed that!).

jl.ro...@gmail.com

unread,
Apr 14, 2017, 10:27:51 AM4/14/17
to AMPL Modeling Language
I was getting the same error as bethanyc, but I already had the options defined correctly, so the answer from Victor didn't help. Instead, I got the answer from the AMPL book (2nd edition section 14.3, page 303). You can also get the info from: http://www.ampl.com/NEW/suffixes.html

From what I understand, AMPL returns only a limited number of pre-defined suffixes (the ones listed in the error message brought up by bethanyc: astatus   body     defvar    derstage , etc.). If you want to add other ones (e.g. .iis), you need to specify it. So basically, you need to add these lines before you access the variable

suffix iis symbolic OUT;
option iis_table '\
0	non	not in the iis\
1	low	at lower bound\
2	fix	fixed\
3	upp	at upper bound\
';

And then magic, it works!

Robert Fourer

unread,
Apr 15, 2017, 1:03:44 PM4/15/17
to am...@googlegroups.com
If you choose the solver's IIS feature, then the solver defines "suffix iis" for you (if it has not been defined already). However the AMPL command processor does a preliminary parsing of a loop before any commands in the loop are executed; as a result, if you make a reference to .iis in a loop, then the command processor may encounter .iis before a "solve;" has had a chance to define it. In this particular case, you need to explicitly define "suffix iis symbolic OUT;" before the beginning of the loop. (You do not need to worry about defining option iis_table, however.)

Bob Fourer
am...@googlegroups.com

=======
Reply all
Reply to author
Forward
0 new messages