GAMS 是一個高層次的數學規劃和優化建模系統。它是由一種語言的編譯器和一個穩定的集成了高性能求解器。 GAMS是專為複雜的,大型的建模應用程序,並允許你建立大維護的模型,可以很快地適應新的形勢。
GAMS以簡單清楚的使用者介面和強健穩定的數值分析能力見長。
GAMS事實上並不代表任何最佳化數值演算法,而是一個高階語言的使用者介面,利用GAMS可以很容易建立、修改、除錯你的最佳化模型輸入檔,而輸入檔經過編譯後,成為較低階的最佳化數值演算法程式所能接受的格式,再加以執行並寫出輸出檔。
數值演算法方面,對線性與非線性規劃問題,GAMS使用由新南威爾斯大學的Murtagh、及史丹福大學的Gill、Marray、Saunders、Wright等人所發展的MINOS [Murtagh and Saunders, 1983]演算法。MINOS是“Modular In-core Non-linear Optimization System”的縮寫,這個演算法綜合了縮減梯度法和準牛頓法,是專門為大型、複雜的線性與非線性問題設計的演算法。對混合整數規劃問題,則採用亞歷桑那大學的Marsten及巴爾第摩大學的Singhal[1987]共同發展的ZOOM(Zero/One Optimization Method)演算法。
Model Types
GAMS is able to formulate models in many different types of problem classes or model types. Typically, a solver will be capable of solving (i.e. will accept as input) more than one model type. The solver/model type matrix shows which solver is capable of which model type:
LP | MIP | NLP | MCP | MPEC | CNS | DNLP | MINLP | QCP | MIQCP | EMP** | Stoch. | Global | |
ALPHAECP | ✔ | ✔ | |||||||||||
ANTIGONE | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ * | ||||||
BARON | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ * | ||||
CBC | ✔ | ✔ | |||||||||||
CONOPT 3 | ✔ | ✔ | ✔ | ✔ | ✔ | ||||||||
CONOPT 4 | ✔ | ✔ | ✔ | ✔ | ✔ | ||||||||
COPT | ✔ | ✔ | ✔ | ✔ | |||||||||
CPLEX | ✔ | ✔ | ✔ | ✔ | |||||||||
DECIS | ✔ | ✔ | |||||||||||
DICOPT | ✔ | ✔ | |||||||||||
GUROBI | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ * | |||||
GUSS | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ||||
IPOPT | ✔ | ✔ | ✔ | ✔ | ✔ | ||||||||
JAMS | ✔ | ||||||||||||
HiGHS | ✔ | ✔ | |||||||||||
KESTREL | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | |
KNITRO | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ||||
LINDO | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ * | ||||
LINDOGLOBAL | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ * | |||||
MILES | ✔ | ||||||||||||
MINOS | ✔ | ✔ | ✔ | ✔ | ✔ | ||||||||
MOSEK | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ||||||
NLPEC | ✔ | ✔ | |||||||||||
ODHCPLEX | ✔ | ✔ | |||||||||||
PATH | ✔ | ✔ | |||||||||||
QUADMINOS | ✔ | ||||||||||||
RESHOP | ✔ | ||||||||||||
SBB | ✔ | ✔ | |||||||||||
SCIP | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ * | |||||
SHOT | ✔ | ✔ | |||||||||||
SNOPT | ✔ | ✔ | ✔ | ✔ | ✔ | ||||||||
SOPLEX | ✔ | ||||||||||||
XPRESS | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ * |
* deterministic global solver ** Here model type EMP excludes EMP-SP
When choosing a solver, some judgement should be applied when considering the listed model type capabilities for the solver - the same capability "check boxes" does not imply equality in capacity or suitability. For example, take a hypothetical solver WeOpt designed to solve MINLP models. Since the problem class MINLP includes NLP, MIP, and LP as subclasses, solver WeOpt could include these capabilities also. If WeOpt is also a good performer on NLP models, it would include that capability. But if it does not shine at all as a MIP or LP solver, we would choose not to include MIP and LP in the capability list for WeOpt. In such a case one can always solve using a more general model type (e.g. solve an LP model as NLP so WeOpt can be used), but WeOpt will not advertise itself as an LP solver. Since the WeOpt solver does not even recognize MCP or MPEC models, we don't include those capabilities.
There are two types of non-linear solvers: local and global. A local solver can find a local optimum but generally cannot comment on global optimality of the solution. A local optimum is a point where the objective value is better than its neighboring points but could be worse than a distant point. On the other hand, a global solver can find and prove that the obtained solution is a global optimum i.e., there is no feasible solution that would result in a better objective value. It is worth noting that a local solver can solve a model to global optimality in some special cases. In the table shown, the entries with * in the column Global indicate solvers that can solve a model to global optimality.
There are other differences in solvers that are difficult to quantify or cannot be captured by a capability table like the one shown. For example, for nonconvex NLP or QCP models, one solver could look only for first-order stationary points, another for local solutions, a third for local solutions using a scatter search or similar search heuristic, and a fourth could do a true global search for the global optimum. The relative merits (measured typically by speed alone) of solvers is the subject of considerable benchmarking activity and discussion.
The GAMS sales team can help answer questions you may have about solver capability. We also offer free evaluation licenses to help you decide what solvers are most suitable for your models.
如需詢價以下任一Solvers, 請於詢價單附註
Base Module |
---|
GAMS Base Module (required) |
MIRO Connector |
GAMS/Secure - encrypted Work Files Option |
Solvers |
GAMS/ALPHAECP1 |
GAMS/ANTIGONE1 |
GAMS/BARON1 |
GAMS/CONOPT |
GAMS/CPLEX |
GAMS/DECIS1 |
GAMS/DICOPT1 |
GAMS/GLOMIQO1 |
GAMS/IPOPTH |
GAMS/KNITRO |
GAMS/LGO2 |
GAMS/LINDO (includes GAMS/LINDOGLOBAL with no size restrictions) |
GAMS/LINDOGLOBAL2 |
GAMS/LOCALSOLVER |
GAMS/MINOS |
GAMS/MOSEK |
GAMS/MPSGE1 |
GAMS/MSNLP1 |
GAMS/ODHeuristic (requires presence of a GAMS/CPLEX or a GAMS/CPLEX-link license) |
GAMS/PATH (includes GAMS/PATHNLP) |
GAMS/SBB1 |
GAMS/SCIP1 (includes GAMS/SOPLEX) |
GAMS/SNOPT |
GAMS/XPRESS-MINLP |
GAMS/XPRESS-MIP |
GAMS/XPRESS-NLP |
Solver-Links |
GAMS/CPLEX-Link |
GAMS/GUROBI-Link |
GAMS/LOCALSOLVER-Link |
GAMS/MOSEK-Link |
GAMS/XPRESS-Link |
1 Performance will depend heavily on the choice of the selected sub-solver(s).
2 Maximum model size: 2000 constraints and 3000 variables
General Information
The GAMS Base Module includes the GAMS Language Compiler, GAMS-APIs, and many utilities.
All solvers are included in the system, but without a valid license, size limitations apply.
The GAMS End User License Agreement governs the use of the software, and is available on our website.
Solvers
• A GAMS/Solver connects the GAMS Base module to a particular solver and includes a license for this solver to be used through GAMS. It is not necessary to install additional software.
• A GAMS/Solver-Link connects the GAMS Base Module to a particular solver, but does not include a license for the solver. It may be necessary to install additional software before the solver can be used.
The use of the GAMS/Solver-Links, including the Open Source Links to commercial solvers requires confirmation that the user has a valid license agreement for use of the current version of the solver library,
and that the use of the solver will comply with the terms of that license agreement.
• Each solver has specific capabilities and strengths. Detailed information about the solvers, the availability on the supported platforms, and the model types they are capable of solving are available at this link.
Supported Platforms
GAMS supports the following platforms:
Platform | Description |
x86 64 bit Linux | AMD- or Intel-based 64-bit (x86_64) Linux systems with glibc 2.28 or higher. |
arm 64 bit macOS | Apple Silicon (arm64) Macintosh system with macOS 13 (Ventura) or higher. |
x86 64 bit macOS | Intel-based 64-bit (x86_64) Macintosh system with macOS 12 (Monterey) or higher. |
x86 64 bit MS Windows | Windows 10 or newer on AMD- or Intel-based (x86_64) architectures. |
Note
Compared to most of the GAMS system, GAMS Studio has some additional system requirements which are detailed here.
While the GAMS execution system itself is available on all supported platforms, for certain solvers, tools, and APIs, different availabilities can apply.