Search code examples
modelingpyomoamplgams-mathjulia-jump

What are the main benefits and motivations for creating new algebraic modeling languages (AML) nowadays?


In the last few decades, there were multiple algebraic modeling languages (AML) created, e.g., AMPL, GAMS, AIMMS, are among the most well-known and widely used names. I've been using mainly the first two options.

However, recently, new AMLs were created and now have excellent community support, e.g., Pyomo and JuMP are two probably the most promising names. I tried a bit of both them. The obvious thing is that for people having experience in Python or Julia programming languages, these two AMLs are great tools, and the learning curve is much steeper.

What are other main benefits (maybe new features, better efficiency, extended functionality) and motivation in general for creating these new AMLs?


Solution

  • I guess the most prominent reasons would be unified handling and support for many different solvers, clever use of data structures, interfaces to other commonly used tools such as Excel, MATLAB,.. and convenient embedding in programs written in popular languages. Since optimization for standard problems has become more and more a black-box tool it can readily be applied in the context of e.g. web-based applications - often written in object-oriented code.