Thursday, May 15, 2008

GAMS/CPLEX bug

For large MIQCP/QCP models there is an issue with GAMS and with GAMS/CPLEX. It is simply very slow in handling the quadratics. There are two places where there is likely a complexity problem (e.g. a quadratic term in run time vs linear in the linear nonzeroes):

  1. In GAMS itself. Besides generating the model itself as usual, GAMS calls a program called QMAKER that exports the quadratic structure in the form of a GDX file. This QMAKER program is not suited for large models. E.g. for a very large MIQCP, GAMS can generate the model in 6.7 seconds, and then QMAKER needs 906.6 seconds to handle the quadratic terms.
  2. In the GAMS/CPLEX link there is a similar problem. Setting up the quadratic constraints is very slow for large models. I don't have timings because they are not provided.
I can only see one work around (only useful for testing purposes): use CONVERT to generate a scalar AMPL model and then use AMPL to generate the Cplex instance.