Thursday, June 4, 2009

NEOS: SCIP indicator constraints with AMPL

The question came up whether Cplex is the only solver that supports indicator constraints. It looks like SCIP supports these also: http://scip.zib.de/doc/html/cons__indicator_8c.html. I tried this with the the NEOS setup at http://www-neos.mcs.anl.gov/neos/solvers/milp:scip/AMPL.html but that seems to have a rather unsophisticated AMPL link to put it mildly. As only minimization is allowed it looks like it is going through an MPS file. As a result the AMPL indicator constraints are also not available. The error message I receive when I submit a test model with an implication is a little bit off:

ERROR: Runtime error encountered


2 variables, all nonlinear
0 algebraic constraints
1 logical constraint
1 linear objective; 2 nonzeros.
Problem has 2 nonlinear variables.  No MPS file written.


Please correct and resubmit.

The model is really linear. I suspect AMPL uses nonlinear functions as a mechanism to communicate the logical constraints with the solver.

I like the concept of indicator constraints and how they are implemented in AMPL (http://www.ampl.com/INFORMS06.pdf). I would certainly hope other solvers would also move into this direction. Given the increasing attention for Constraint Programming, it makes sense to expect that these features get more traction. I also tried to check the GAMS documentation on GAMS/SCIP to see what GAMS has to offer here. Unfortunately the documentation for GAMS/SCIP is largely nonexistent: http://www.gams.com/dd/docs/solvers/coin.pdf.