The General Algebraic Modeling System (GAMS) is a high-level modeling system for mathematical programming and optimization. It consists of a language compiler and a stable of integrated high-performance solvers. GAMS is tailored for complex, large scale modeling applications, and allows you to build large maintainable models that can be adapted quickly to new situations. GAMS is specifically designed for modeling linear, nonlinear and mixed integer optimization problems.
GAMS lets the user concentrate on modeling. GAMS encourages good modeling habits itself by requiring concise and exact specification of entities and relationships. The GAMS language is formally similar to common programming languages. It is therefore familiar to anyone with programming experience. But since the model is formulated in a way that is similar to its mathematical description, it can be understood and maintained not only by programmers, but also by the actual domain experts. GAMS focuses on the modeler and allows him to do all relevant things himself.
The balanced mix of declarative and procedural elements allows building complex algorithms and even the implementation of decomposition methods in GAMS. This is especially relevant for models addressing unusual problems that oftentimes come along with performance issues.
You can write the model independently of the data, and include data from many different kinds of sources, from plain ASCII to Excel or Access and many others, 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, parameters variables and equations. GDX files can be used to prepare data for a GAMS model, present results of a GAMS model, store results of the same model using different parameters etc. A GDX file does not store a model formulation or executable statements.
GDX files are binary files that are portable between different platforms.
The video GAMS and Excel - Using GDX to Transfer Data on our YouTube channel illustrates this for Excel.
The GAMS object-oriented APIs allow the seamless integration of GAMS into an application by providing appropriate classes for the interaction with GAMS. The three versions of the object-oriented GAMS API: .NET, Java, and Python work with .NET framework 4 (Visual Studio 2010), Java SE 5 and up, as well as Python 3.4, 2.7, and 2.6 accordingly.
In addition to the object-oriented GAMS APIs, there are expert-level (or low-level) GAMS APIs whose usage requires advanced knowledge of GAMS component libraries. See our documentation for further information on the APIs.
In addition to the APIs, GAMS offers smart links to applications like MS Excel, MatLab, or R. Through these, the user can keep working in his productive tool environment, while the application accesses all optimization capabilites of GAMS through an API. This allows for example the visualization and analyses of model data and results in the application.