Not an easy task, as can be seen here:
http://lists.gnu.org/archive/html/help-glpk/2012-01/msg00033.html
To really appreciate the features of a modeling system requires quite some investment. When comparing more systems, also often a “least common denominator” model is used. Some issues are more specialized, such as:
- Is there support for non-linear programming
- Performance characteristics for very large models
- Ability to do data manipulation efficiently
- Ability to write tailored algorithms if the model is not amenable to standard solution methods (see e.g. http://yetanothermathprogrammingconsultant.blogspot.com/2012/01/dinkelbachs-algorithm.html)
- Ability to debug large models and view large data sets
Some of these points are more difficult to evaluate and to weigh in a comparison.
PS: see comment below for some other interesting capabilities.
I would be tempted to add flexibility handling sets (sets of sets, sets of non-atomic types, ...), structured data types, and ability to work with both math programming and constraint programming (which means support for global CP constraints). For some people, support for solver callbacks may also be important.
ReplyDeleteCapability for extending and embedding: so that you can use the modeling language as part of a full optimization application.
ReplyDelete