GAMS 28.2.0 x64 Advanced Mathematical Modeling Software
Software Introduction
GAMS is a software application for advanced mathematical modeling, programming, and optimization of these solutions. This software is capable of solving a wide range of linear, nonlinear problems. This software can help users explore and solve complex problems from different angles and from a higher perspective.
This program is particularly useful for large and advanced problems and complex domain problems. GAMS can be configured and set up for a variety of host platforms, including personal computers, workstations, mainframes, and supercomputers. In this program, complex and multifaceted problems that need to be solved from different angles can be modeled with high accuracy, and the user can modify the modeling formulas in different parts to see the changes.
One can switch from one solution to another and even convert a linear problem to a nonlinear problem. With the many features it provides, it helps the user to focus only on the modeling problem.
GAMS 28.2 Software Features
GAMS helps users not to worry about controlling these issues by automating various tasks such as memory management, processing, storage, input and output, and workflow control, and has more opportunities to model and analyze problems and evaluate the results. The GSAM programming language is similar to many other programming languages, and people who are already familiar with one of these programming languages will be able to communicate with it easily.
The codes written in this language are easy to record and can be coded and given various instructions so that it can be understood later. The solutions provided by GAMS software are completely portable and once completed, the obtained solutions can be easily transferred from one system to another.
GAMS 28.2 Software Features
1. Cutting edge modeling
Focus on modelers
GAMS allows its users to express mathematical models in a very similar way to their mathematical descriptions. Take a look at this simple example, which illustrates the basic structure and characteristics of a GAMS model and how it relates to a mathematical formula. The GAMS tutorial explains the same model in a more extensive way, or check out this video on our YouTube channel.
In this way, GAMS lets the user focus on modeling. GAMS encourages good modeling habits by requiring concise and accurate entity and relationship specifications. The GAMS language is formally similar to general-purpose programming languages. Therefore, it is familiar to anyone with programming experience. But because the model is formulated in a similar way to its mathematical description, it can be understood and maintained not only by programmers but also by actual domain experts. GAMS focuses on the modeler and allows him to do everything related by himself.
The balanced combination of declarative and procedural elements allows building complex algorithms and even implementing decomposition methods in GAMS. This is particularly important for models that solve unusual problems that are often accompanied by performance issues.
2. Design principles that make a difference
1. “We strive to adapt, not take over.”
GAMS focuses on its core competency: enabling users to build readable, maintainable models and solve them with the best solvers available anywhere. Our open architecture and numerous data interfaces enable seamless communication with external systems.
The separation of models, solvers, data, platforms, and user interfaces in independent layers makes it easy to switch solvers, work with multiple datasets, run on multiple platforms, and integrate GAMS into existing applications, structures, and workflows.
2. Independence of model and solver
We offer an extremely broad and diverse portfolio of more than 25 solutions, covering all expected business solutions.
LP/MIP/QCP/MIQCP: CPLEX, GUROBI, MOSEK, XPRESS
NLP: CONOPT, IPOPTH, KNITRO, MINOS, SNOPT
MINLP: ALPHAECP, ANTIGONE, BARON, DICOPT, OQNLP, SBB
Solvers for Mixed Complementarity Problems (MCP), Mathematical Programs with Equilibrium Constraints (MPEC), and Constrained Nonlinear Systems (CNS)
Free alternatives bundled with every GAMS system (e.g. BONMIN (MINLP), CBC (LP, MIP), COUENNE (MINLP), IPOPT (NLP); the academic license also includes SCIP and SOPLEX
For a full list of available solvers, see our documentation or price list.
Choosing which solver to use is simple – just change a line of code or adjust an option setting. There is no need to reimplement anything in order to compare solver performance or see possible improvements. Likewise, you can easily switch between model types (such as linear and nonlinear), so you can easily try different formulations.
With GAMS you get an environment that works with a wide variety of model types and solvers.
3. Independence of model and data
You can write the model independently of the data and include data from many different sources, from plain ASCII to Excel or Access and many other sources, for example using the GDX (GAMS Data eXchange) file format.
A GDX file is a file that stores the values of one or more GAMS symbols such as sets, parameter variables, and equations. GDX files can be used to prepare data for a GAMS model, display the results of a GAMS model, store the results of the same model using different parameters, etc. GDX files do not store model formulas or executable statements.
GDX files are binary files that are portable between different platforms.
The video GAMS and Excel – Streaming Data with GDX on our YouTube channel illustrates this.
4. Model and platform independence
Models are fully portable between platforms – write once, run anywhere.
GAMS runs on Windows, Linux, Mac OS X, SOLARIS, Sparc Solaris, and IBM Power AIX.
5. Independence of model and user interface
The GAMS object-oriented API allows seamless integration of GAMS into an application by providing appropriate classes for interaction with GAMS. The three versions of the object-oriented GAMS API: .NET, Java, and Python are associated with the .NET Framework 4 (Visual Studio 2010), Java SE 5 and later, and Python 3.4, 2.7, and 2.6.
In addition to the object-oriented GAMS API, there is also the Expert (or Low-Level) GAMS API, whose use requires advanced knowledge of the GAMS component library. For more information on the API, see our documentation.
In addition to the API, GAMS also provides intelligent links to applications such as MS Excel, MatLab or R. Through these, the user can continue to work in his productive tool environment while the application accesses all the optimization capabilities of GAMS via the API. This allows, for example, visualization and analysis of model data and results in the application.
3. A large global user community
GAMS is used by multinational companies, universities, research institutes and governments in more than 120 countries in many different fields, including the energy and chemical industries, for economic modelling, agricultural planning or manufacturing.
View our case studies to see how our users around the world are using GAMS.
Changelog
GAMS 28.2 28.2.0 Minor Release (August 19, 2019)
Acknowledgements
We would like to thank all users who reported issues and made suggestions to improve this release. Special thanks to Nayeem Chowdhury, Salvador Doménech Martínez, Michael Ferris, Antti Lehtila, Evangelos Panos, Jochen Uhrich, and Alexey Ziuzin.
GAMS system
GAMS
Setting $onMultiR now allows redefinition of macros.
Fixed a problem with finding the Python interpreter shipped with GAMS in some cases.
Fixed a bug in model generation that could lead to crashes or wrong results in some cases.
Solver
CPLEXD
Corrected reporting of (MI)QCP problem solutions when validity was used.
CplexD now reports the objectives of feasible relaxations in the solution summary when using existsopt.
tool
GAMS Studio
New version 0.12.4
Stability and performance improvements.
Improved robustness of glb file parser (see User Library).
Added a “What’s New” menu entry to show the latest changes to Studio.
Object-oriented API
Fixed GAMSDatabase.Export triggering an exception due to domain violation even when only relaxed domains were used.
Java
Added GAMSSymbolRecord.dispose() method to release external resources held by non-Java libraries on demand.