Monday, March 9, 2009

AMPL vs. GAMS on radiotherapy treatment planning

 

hi all,
i would just like to solicit your advice regarding whether to get an
academic license for AMPL or GAMS. i'm currently doing a master's
thesis on cancer radiotherapy treatment planning (RTP), and i've yet
to decide between AMPL or GAMS for prototyping the models. some of my
decision criteria include language syntax, user interface, software
cost and available literature on RTP.
i think that the syntax for AMPL is better compared to GAMS because
the former more closely resembles the algebraic model formulations.
however, there seem to be more literature on RTP in GAMS and there's
also an integrated development environment for it. thanks for your
help.

 

Both systems are very good in what they are doing and widely used, so you cannot really go wrong with either choice. I would probably suggest to add extra points for the modeling system that is used by your colleagues and collaborators. That makes exchanging models and data easier and also is easier when discussing problems, tricks, issues etc.

Bob Fourer (AMPL) answered:

It's hard to find someone who can give equally expert advice on two competing
systems, as once you become familiar with one of them you don't usually have
much incentive to keep learning about the other.  But here are a few comments
from my hardly unbiased view.

AMPL was designed with the idea of being much closer to mathematical notation
and generally much more natural to use than GAMS, and it's superior on that
score.  A GAMS model typically relies on more special conventions and
reformulations than its AMPL counterpart; a case in point is the often extensive
use of the GAMS $ operator to impose various conditions.  Also, the IDE
notwithstanding, GAMS is fundamentally more of a batch system whereas AMPL
offers a more flexible option of interactively exploring models and results.
Finally while in certain areas GAMS is established through long use, still I see
modelers in these areas choosing AMPL, particularly when they are undertaking
new projects that do not depend on existing GAMS models.

In my opinion AMPL and GAMS are closer in practice than suggested here (e.g. where you use $ in GAMS, one would use : in AMPL). I actually slightly prefer the GAMS syntax when doing real work, as it is a little bit more compact and it is obvious where a summation ends (in AMPL this is based on operator priority, in GAMS a sum is visually bracketed by parentheses).

4 comments:

  1. Consider opensource alternatives - usually the buglist will be available when compared to closed source solutions. Opensource can be uphill though....

    For instance, GNU MathProg, which is based upon the AMPL 1.0 specification but has developed its own extensions.

    Also, consider ZIMPL as a front end to many other solvers - like glpsol.

    Recently, I hacked together some Octave code to read ZIMPL mps files and use gplsol from within the Octave environment. Octave being the opensource verison of matlab.

    ReplyDelete
  2. GAMS has more options for optimization solvers than AMPL.

    ReplyDelete
    Replies
    1. For applications in chemical engineering, GAMS has a greater number of solvers which show "positive" benchmarks on a wide number of problems. In my opinion, GAMS has also seen more tests on industrially relevant applications (partly due to it being arguably used more widely by engineers than AMPL).

      "Finally while in certain areas GAMS is established through long use, still I see
      modelers in these areas choosing AMPL, particularly when they are undertaking
      new projects that do not depend on existing GAMS models."

      In my opinion and for the sample of AMPL + GAMS users (which includes people who develop solvers), this claim is totally false.

      Delete
    2. *for the sample of AMPL + GAMS users I know

      Delete