中国科学软件网-首页
GAMS 2.5——运筹规划分析软件

2017年10月21日至23日运筹优化软件GAMS及CGE模型应用培训在北京举办,主讲老师是娄峰老师,内容包括包括GAMS基本操作方法及软件简介,GAMS的高级语法及实用功能,GAMS 案例讲解分析,GAMS编程等内容,欢迎大家报名参加。报名及详情【点击了解


通用代数建模系统(GAMS)是数学编程和优化的高级建模系统。它由一个语言编译器和一个稳定的集成各种高性能的求解器组成。GAMS适用于复杂的、大规模的建模应用,并允许您创建大的维护模型以很快的适应新的情况。



最前沿的建模系统

专注建模

GAMS允许用户在某种程度上,用跟数学描述非常相似的方式来制定数学模型。看一下这些例子就能说明GAMS模型的基本结构和特征以及与数学表达式的关系。GAMS让用户专注建模,通过要求简洁和精确的实体和关系规范,鼓励良好的建模习惯。GAMS语言与通用编程语言形式相似,因此对于有编程经验的人来说是熟悉的。由于模型的制定方式在某种程度上与它的数学描述类似,所以不仅是程序员,实际领域的专家也能理解和维护。GAMS专注于建模并且允许做所有相关的事。
陈述性知识和程序性要素的平衡混合,允许用户在GAMS中构建复杂的算法甚至实现分解方法。尤其是解决异常问题的模型,以及随之而来的性能问题。

设计不一样的规则

我们努力去适应,而非直接拿来。
GAMS专注于其核心竞争力:让用户创建可读性、可维护的模型,用最好的求解方法解决任何问题。开放的体系结构和多个数据接口允许与外部系统无缝通信。
模型、求解器、数据、平台和用户界面都在独立层,便于切换求解器、使用多个数据集、在多个平台运行以及将GAMS整合到现有的应用、结构和工作流中去。

独立的模型和求解器

提供超过25个广泛和多样化的求解器组合,包括所有预期的商业化求解器。
  • LP/MIP/QCP/MIQCP: CPLEX, GUROBI, MOSEK, XPRESS
  • NLP: CONOPT, IPOPTH, KNITRO, MINOS, SNOPT
  • MINLP: ALPHAECP, ANTIGONE, BARON, DICOPT, OQNLP, SBB
  • 混合互补问题求解器(MCP)、平衡约束数学规划求解器(MPEC)和约束非线性系统求解器(CNS)
  • 免费捆绑到每个GAMS系统中的 (比如 BONMIN (MINLP), CBC (LP, MIP), COUENNE (MINLP), IPOPT (NLP)。教育版还包括了SCIP和SOPLEX。
选择使用的求解器非常简单---只要改变一行代码或者调整一个选项设置就可以了。想要比较求解器的性能或者看有什么改进的可能,也不需要做任何的设置。同样的,模型类型可以轻松切换(比如:线性和非线性),尝试不同的公式也非常的容易。通过使用GAMS,您可以得到一个广泛类型的模型和求解器的环境。

独立的模型和数据

你可以编写独立的模型数据,包括各种不同来源的数据,从ASCII到Excel或者Access 以及其他各种来源。比如使用GDX(GAMS数据交换)文件格式。GDX文件可以保存一个或多个GAMS符号的值,比如集、参数变量和方程。GDX文件可以为GAMS模型准备数据、展示GAMS模型的结果、使用不同的参数为这同一个模型保存结果等。GDX文件不能保存一个模型的公式或者执行语句。GDX文件二进制文件,可在不同平台进行移植。

独立的模型和平台

模型在平台间是完全可移植的---写一次,可以在任意地方运行。
GAMS可以在Windows, Linux, Mac OS X, SOLARIS, Sparc Solaris和 IBM Power AIX上运行。

独立的模型和用户界面

面向对象的GAMA API允许GAMS无缝整合到为交互提供适当类别的应用中。这三个面向对象GAMS API是.NET, Java和Python与.NET framework 4 (Visual Studio 2010)、Java SE 5或更高版本以及Python 3.4, 2.7和2.6。
除了面向对象的GAMA API,还有专家级别(或级别) 的GAMS API,它们的使用要求有高深知识的GAMS组件库。
除了API, GAMS还提供智能链接到应用程序,如MS Excel, MatLab或R。用户可以在这个环境中继续工作,通过一个API就可以访问GAMS所有的优化功能。这就允许应用中的模型数据和结果可以可视化和分析了。

大型、全球用户社区

超过120多个国家的不同领域的跨国公司、学校、研究机构和政府都在使用GAMS,包括能源化工、经济建模、农业规划或制造业。

GAMS求解器

GAMS中包含了多个数学规划模型,下面是每个模型的模型类型和支持平台的简介。
求解器描述
求解器描述
ALPHAECP基于扩展平面切割(ECP)方法的MINLP求解器LGO全局--局部非线性优化求解套件
AMPL在AMPL模型系统中使用求解器时与GAMS模型连接LINDO 10.0随机求解器,包括一个无限制版本的LINDOGLOBAL
ANTIGONE 1.1MINLP确定性全局优化LINDOGLOBAL 10.0成熟全局解决方案的MINLP求解器
BARON成熟全球解决方案的分支和减少优化向导LINGO在LINGO模型系统中使用求解器求解GAMS模型的链接
BDMLP任意GAMS系统都配备了LP和MIP求解器LOCALSOLVER 6.0混合邻域搜索算法
BENCH实用方便的GAMS求解器和验证方案LSGAMS线性回归求解器
BONMIN 1.8COIN-OR MINLP求解器执行各类分支定界和外逼近算法MILESMCP求解器
CBC 2.9高性能LP/MIP求解器MINOSNLP求解器
CONOPT 3大型的NLP求解器MOSEK 8大型LP/MIP加锥凸非线性规划系统
CONOPT 4大型的NLP求解器MSNLP全局优化的多启动方法
CONVERT将模型转换成其他语言的标量模型的框架NLPEC使用其他GAMS NLP求解器把MPEC转换成NLP
COUENNE 0.5(MI)NLP确定性全局优化OQNLP全局优化的多头启动方法
CPLEX 12.7高性能LP/MIP求解器OsiCplexBare-Bone与CPLEX连接
DE产生和解决包括EMP/SP中的随机规划的确定等价OsiGurobiBare-Bone 与Gurobi连接
DECIS大规模随机规划求解器OsiMosekBare-Bone与 Mosek 连接
DICOPT求解MINLP模型框架OsiXpressBare-Bone与 Xpress 连接
EXAMINER检查解点并评估其优点的工具PATHNLP凸面问题的大规模NLP求解器
GAMSCHKGAMS求解线性规划问题时对结构和解决方案属性的检查系统PATH大规模MCP求解器
GLOMIQO 2.3混合整数二次模型分支定界全局优化PYOMO在PYOMO模型系统中使用求解器求解GAMS模型的链接
GUROBI 7.0高性能LP/MIP求解器SBB求解MINLP模型的分支定界算法
GUSS有效解决多个相关模型实例的框架(收集更新分散的求解方案)SCIP 3.2高性能约束整数规划求解器
IPOPT 3.12大规模非线性规划的内点优化算法SNOPT基于NLP求解器的大规模SQP算法
JAMS扩展数学规划求解器(包括LogMIP)SOPLEX 2.2高性能LP求解器
KESTREL本地GAMS系统使用远程NEOS求解器框架XA大规模LP/MIP求解器
KNITRO 10.0大型NLP求解器XPRESS 28.01高性能LP/MIP求解器

案例分析

CyBio调度器
制药行业高通量筛选的调度软件


优化碳捕获技术
美国能源部门在两个项目中使用GAMS旨在推进碳捕获技术

50赫兹电力交易拍卖优化
50赫兹传输公司采集电力交易报价管理平台
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.

Cutting Edge Modeling

Focusing on the modeler

GAMS allows its users to formulate mathematical models in a way that is very similar to their mathematical description. Take a look at this simple example that illustrates the basic structure and characteristics of a GAMS model and how it relates to the mathematical formulation. The GAMS Tutorial explains the same model in a more extensive way, or take a look at this video on our YouTube channel.
Through this, 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.

Design Principles That Make a Difference

"We make an effort to fit in, rather than take over."

GAMS focuses on its core competence: empowering our users to build readable, maintainable models and to solve them with the best solvers available anywhere. Our open architecture and the many data interfaces provided allow seamless communication with external systems.
Model, solver, data, platform and user interface are separated in independent layers, making it easy to switch a solver, use multiple data sets, run on multiple platforms, and integrate GAMS into existing applications, structures, and workflows.

Independence of Model and Solver

We offer an exceptionally extensive and diverse portfolio of more than 25 solvers, including all the expected commercial solvers.
  • 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); for academic licenses also SCIP and SOPLEX
See our documentation or our price list for a full list of the available solvers.
Selecting the solver to use is simple - just change one line of code or adjust one option setting. No need to reimplement anything in order to compare solver performance or see what improvements are possible. Similarly, you can switch easily between model types (e.g. linear and nonlinear), so experimenting with different formulations is easy.
With GAMS, you get one environment for a wide range of model types and solvers.

Independence of Model and Data

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.

Independence of Model and Platform

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.

Independence of Model and User Interface

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.

Large, Global User Community

GAMS is used in more than 120 countries by multinational companies, universities, research institutions and governments in many different areas, including the energy and chemical industries, for economic modelling, agricultural planning, or manufacturing.
Check out our Case Studies to see what our users are doing with GAMS around the world.

GAMS Solvers

A large number of solvers for mathematical programming models have been hooked up to GAMS. Below we give a brief description of each solver with the model types and platforms supported by each solver.
SolverDescription
ALPHAECPMINLP solver based on the extended cutting plane (ECP) method
AMPLA link to solve GAMS models using solvers within the AMPL modeling system
ANTIGONE 1.1Deterministic global optimization for MINLP
BARONBranch-And-Reduce Optimization Navigator for proven global solutions
BDMLPLP and MIP solver that comes with any GAMS system
BENCHA utility to facilitate benchmarking of GAMS solvers and solution verification
BONMIN 1.8COIN-OR MINLP solver implementing various branch-and-bound and outer approximation algorithms
CBC 2.9High-performance LP/MIP solver
CONOPT 3Large scale NLP solver
CONOPT 4Large scale NLP solver
CONVERTFramework for translating models into scalar models of other languages
COUENNE 0.5Deterministic global optimization for (MI)NLP
CPLEX 12.7High-performance LP/MIP solver
DEGenerates and solves the deterministic equivalent of a stochastic program, included in EMP/SP
DECISLarge scale stochastic programming solver
DICOPTFramework for solving MINLP models
EXAMINERA tool for examining solution points and assessing their merit
GAMSCHKA System for Examining the Structure and Solution Properties of Linear Programming Problems Solved using GAMS
GLOMIQO 2.3Branch-and-bound global optimization for mixed-integer quadratic models
GUROBI 7.0High performance LP/MIP solver
GUSSA framework for solving many instances of related models efficiently (Gather-Update-Solver-Scatter)
IPOPT 3.12Interior Point Optimizer for large scale nonlinear programming
JAMSSolver to reformulate extended mathematical programs (incl. LogMIP)
KESTRELFramework for using remote NEOS solvers with a local GAMS system
KNITRO 10.0Large scale NLP solver
LGOA global-local nonlinear optimization solver suite
LINDO 10.0A stochastic solver from Lindo Systems, Inc. Includes an unrestricted version of LINDOGLOBAL
LINDOGLOBAL 10.0MINLP solver for proven global solutions
LINGOA link to solve GAMS models using solvers within the LINGO modeling system
LOCALSOLVER 6.0Hybrid neighborhood local search solver
LSA Linear Regression Solver for GAMS
MILESMCP solver
MINOSNLP solver
MOSEK 8Large scale LP/MIP plus conic and convex non-linear programming system
MSNLPMulti-start method for global optimization
NLPECMPEC to NLP translator that uses other GAMS NLP solvers
OQNLP Multi-start method for global optimization
OsiCplexBare-Bone link to CPLEX
OsiGurobiBare-Bone link to Gurobi
OsiMosekBare-Bone link to Mosek
OsiXpressBare-Bone link to Xpress
PATHNLPLarge scale NLP solver for convex problems
PATHLarge scale MCP solver
PYOMOA link to solve GAMS models using solvers within the PYOMO modeling system
SBBBranch-and-Bound algorithm for solving MINLP models
SCIP 3.2High-performance Constraint Integer Programming solver
SNOPTLarge scale SQP based NLP solver
SOPLEX 2.2High-performance LP solver
XALarge scale LP/MIP solver
XPRESS 28.01High performance LP/MIP solver

视频课程

  • 中国区典型用户

    • 中国科学院
    • 清华大学
    • 厦门大学
    • 交通运输部水运科学研究院
    • 香港浸會大學
    • 哈尔滨工业大学
    • 中国环境规划研究院
    • 北京科学学研究中心
    • 浙江工商大学
    • 东北大学
    • 北京师范大学
    • 中国社会科学研究院
    • 北方工业大学
    • 中国农业科学研究院
    • 南京农业大学
    • 北京工业大学
    • 湖北经济学院
    • 山东大学
    • 重庆大学
    • 首都师范大学
    • 华南理工大学
    • 国家林业局
    • 广西大学
    • 华北电力大学
    • 南方科技大学
    • 中国科学院广州能源研究所
    • 中国石油大学(北京)
    • 中国电力科学研究院
    • 大连理工大学
    • 香港大学深圳研究院
    • 内蒙古财经大学
    • 上海交通大学
    • 安阳师范学院
    • 江西财经大学
    • 湖南大学
    • 中国石油天然气集团公司
    • 杭州电子科技大学
    • 天津大学
    • 中国华能集团公司技术经济研究院
    • 黄河水利科学研究院
    • 河北经贸大学
    • 华南理工大学
    • 重庆科技学院
    • 南方电网科学研究院
    • 上海财经大学
    • 北京理工大学
    • 四川大学
    • 中国石油勘探开发研究院
    • 东北财经大学
    • 中国科学院大学
    • 海南电网有限责任公司
    • 东北电力大学
    • 国家发展和改革委员会能源研究所
    • 广州市环境保护科学研究院
    • 天津财经大学
    • 天津科技大学
    • 内蒙古师范大学
    • 东南大学
    • 中国石油独山子石化公司
    • 中国农业科学院
    • 华中农业大学
    • 江西财经大学
    • 昆明理工大学
    • 中国农业大学
    • 福建农林大学
    • 神华科学技术研究院有限责任公司
    • 河海大学
    • 长安大学
    • 河北工业大学
    • 南通大学
    • 南京大学
    • 深圳大学
    • 中国石油化工股份有限公司石油化工科学研究院
    • 西南民族大学
    • 中科院大学
    • 国家气候战略中心
    • 江苏科技大学