Express your most wanted features here: https://www.ibm.com/developerworks/rfe/. And look what other users want.
On top of my list: better feedback if something is wrong. For example infeasible or unbounded models: give a reasonable report. Also make sure to answer the question: "What to do next?",
Second: be smarter with memory. I prefer that the model runs with fewer threads when memory is or becomes tight.
Update.
Here is a small example of a GAMS listing file with Cplex and with CONOPT of the same infeasible model. In most cases I woud prefer the second output. Note that I am not sure if these issues are pure Cplex or if the GAMS/Cplex link could be improved here.
Cplex |
S O L V E S U M M A R Y MODEL m OBJECTIVE z **** SOLVER STATUS 1 Normal Completion RESOURCE USAGE, LIMIT NA 1000.000 IBM ILOG CPLEX 24.6.1 r55820 Released Jan 18, 2016 WEI x86 64bit/MS Windows Space for names approximately 0.00 Mb No solution returned |
Conopt |
S O L V E S U M M A R Y MODEL m OBJECTIVE z **** SOLVER STATUS 1 Normal Completion RESOURCE USAGE, LIMIT 0.0000E+0000 1000.000 LOWER LEVEL UPPER MARGINAL ---- EQU objective . . . EPS ---- EQU e1 LOWER LEVEL UPPER MARGINAL i1 -1.0000 -1.0000 -1.0000 1.0000 ---- EQU e2 LOWER LEVEL UPPER MARGINAL i1 -INF -1.0000 -1.0000 -0.5000 ---- EQU e3 LOWER LEVEL UPPER MARGINAL i1 1.0000 . +INF 1.0000 INFES ---- VAR a LOWER LEVEL UPPER MARGINAL i1 . . +INF 1.5000 ---- VAR b LOWER LEVEL UPPER MARGINAL i1 . 1.0000 +INF . LOWER LEVEL UPPER MARGINAL ---- VAR z -INF 39.0000 +INF .
|
When I use IIS on this I see no difference. (I believe IIS is only for LPs, but I don’t see a message to that effect. I would like to see some feedback about why this option did not work.).
Sometimes CONOPT can also provide a “trace” of the presolve which can be very helpful:
** An equation is inconsistent with other equations in the **** ERRORS/WARNINGS IN EQUATION e1(i1) |
With GAMS+Cplex there is also some confusion about messages only available in the listing file or the log. You really have to inspect both very carefully. I would prefer important messages to be in both.
In this case a reasonable Cplex message ended up in the log but not in the listing file:
Constraints 'e1(i2)' and 'e1(i1)' are inconsistent.
For developers the handling of error messages is probably a boring detail, but my argument is that well-designed error messages and other feed feedback is very important. They are the only thing you have when things go wrong, and when there is already a state of confusion as things are not going the way they should go.
No comments:
Post a Comment