Bp 312 en
Modelling languages for optimization
Autor: Podhradský Michal
The aim of this work is to thoroughly compare various currently available modelling languages for Mixed-Integer Linear Programming (MILP), both commercial and open-source, and eventually choose and recommend the one which is the most suitable for the task of modelling and optimal scheduling of cogeneration systems. A desired modelling language has to have a good performance while extracting the model into a solver-readable format, has to integrate well with a Java environment and has to be capable of reading and writing to MS Excel spreadsheets. However, the comparison is useful for anybody facing similar optimization and scheduling problems.
First, an overall comparison of available languages and their basic features is created. According to this comparison the 9 most promising languages are chosen for further testing (Yalmip, GAMS, OptimJ, Gurobi Java API, LINGO, AIMMS, AMPL, MPL and Zimpl). The second part of testing consists of implementing a model of a simple CHP system and investigating languages model formulating features, possibilities of Java interacting and facilities for MS Excel spreadsheets manipulation. Regarding the results of the second part, three languages (Yalmip, OptimJ, Zimpl) are selected for implementation of a more complicated model and benchmarking.
The fastest language is Zimpl, however the most suitable language for commercial use is OptimJ (thanks to its Java integration and reasonable speed). Algebraic languages such as AMPL, GAMS and LINGO are worth considering. Yalmip is not recommended for commercial use due its slow performance.