i am looking to solve probabilistic optimization problems in Power System and came across the GAMS software, not sure what are the distinguished capabilities of this software is.
The GAMS has a powerful cplex solver (an optimization tool which can deals integer variables). However the number of constraints and variables are limited 300 under the demo version.
GAMS is a dedicated environment for solving optimization problems of various kinds however, MATLAB is multipurpose environment which also has ability to solve optimization problems of various kinds.
GAMS is more powerful than MATLAB. Further, GAMS has almost all type of available solvers which are not available in MATLAB. Also, GAMS is time efficient as compared to MATLAB. However, defining a problem in MATLAB is relatively easier and in GAMS expertise required while formulating any difficult problem.
You can use all powerful solvers (cplex, gurobi...) with MATLAB, using, for instance, the yalmip framework. I believe having many interfaces to other applications is in fact an advantage of MATLAB.
GAMS, AMPL, and lately JuMP are systems one can use to solve a deterministic optimization problem. These systems help to translate the problem from math into other forms which are suitable for many solvers. Unfortunately, those solver, as far as I know, are designn for deterministic algorithm. Hence, for stochastic optimization, these systems are not immediately useful.
GAMS (AMPL and AIIMS too) is in the family of math programming languages especially suited for optimization problem - a bit different from a more general purpose numerical analysis language like MATLAB (Mathematica and the more modern open source alternatives like GNU Octave, etc).
I personally prefer a specialized math programming language because it is very specifically geared to define an optimization problem, gives me access to pretty much any solver I like, allows me to seamlessly build it incrementally, change the problem from linear to nonlinear to discrete or an equilibrium problem with very little effort (and have access to lots of good solvers including free solvers within each category), have great support from the firm who have excellent optimization experts, link with database, have access to a range of supporting utilities. In short QUITE A FEW pluses! The downside is that these are not as versatile as MATLAB or as popular - so if one needs to do more than optimization, it may be frustrating to code things in GAMS that it is not well suited for.
In terms of cost they are comparable (but again MATLAB does more things and can be more expensive). The world seems to be moving to open-source tools and there are great additions like Python and R. Since the optimization solvers are still the most expensive component, I do not see a great advantage in moving to an open-source environment but let's hope someday we will also have powerful free optimization solvers!
While Deb has covered almost all general aspects in favour and counter to GAMS, let me summarise a few specific advantages of the platform. (For details on these, you may go through some of the sample problems available with the demo of the software.)
A strong virtual parallelism across SET elements when solving an optimisation problem, that makes programming very convenient to the user.
"Dynamic" SET definitions within parent SET's that makes variation of optimisation solution space very convenient within nested loops or otherwise. Also makes multiple scenario programming very easy.
A very powerful bunch of options to the user with reference to condition definitions - at SET level, at statement level, and at SOLVE level.
And of course, the SOLVER profile can be quite powerful depending on the installation that you are working with.
Further, I have a view on probabilistic problems that differs considerably from that of Novalio.
While the platform is indeed designed for deterministic problems, with a bit of effort and careful programming, stochastic problems can be solved - I have solved problems involving correlations as well as Monte Carlo's on GAMS.
The only thing that is challenging on GAMS (as far as I have been able to make out !) is realisation of complex evolutionary optimisation algos. I doubt if much of those can be effectively realised on the platform, but I will be happy to be proved wrong !!
Agree with Sanjay that these math programming languages including GAMS have been used extensively for stochastic programming and probabilistic methods with optimization built into these. Dynamic programming methods that were considered outside the realm of math programming languages at least when I had learnt my trade many years ago. Since then however there are quite a few of these applications including a version of Stochastic Dual DP (SDDP) model available now as part of the GAMS library (developed by Vattenfall Trading company).
I personally used GAMS for many years. I hardly found how to call my mathematical formulation inside MATLAB which makes the life way easier for solving a problem iteratively, like Scenario Decomposition algorithm for stochastic programming formulation. It is almost two years that I started using Python and Gurobi which is way easier to build the model, run it and retrieve variables out of it.
With GAMS, you can formulate your problem in a very intuitive way, close to how you will express it mathematically. Furthermore, GAMS has a number of embedded solvers, some are free, others require a license, which you can choose from. They have trial versions of the ones that require a license. This gives you the ability to formulate your problem once in GAMS, and then test it on different solvers, without having to do any additional coding for the other solvers.
I personally use CPLEX and its Concert technology, which is a C++ library of its functions. With operator overloading capability of C++, Concert is implemented to mimic the notation of mathematical programming. But I only deal with linear/integer programming, and it works very well in those domains.
I have inherited a moderately sized model coded in GAMS, but I do not have access to the GAMS software. The commercial license (which I would need) is extremely expensive, so I was wondering what is the best free alternative? I am happy to convert the GAMS code into another language. Thanks!