通用代数建模系统(GAMS)是数学编程和优化的高级建模系统。它由一个语言编译器和一个稳定的集成各种高性能的求解器组成。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上运行。
GAMS是灵活而强大的.模型可以非常方便的从一个计算机平台移到另外一个,只要GAMS已经在每个平台被安装好.GAMS很*进行敏感度分析.使用者能够方便的规划模型来求解一个成分的不同值,然后生成一个输*,列出了每种情况的解决方案特征.模型能够同时被开发和文档化,因为GAMS允许使用者包含解释性的文本来作为任意符号和等式的定义和解释.
GAMS不断的在被增强和扩展.2.25版本包含了多个语言扩展,例如在一个循环中的SOLVE声明,INCLUDE声明,IF-ELSE声明,和使用PUT声明进行报告编写的功能.其它的加强包括增加的系统集成特征,性能改善,新的子系统,和另外的计算机平台支持.
当前版本2.50包括一个基于Intel Windows平台(95/98/ME和NT/2K/XP)的集成开发环境(IDE).GAMS 2.50的新的分发包含新的语言特征和新发表的全新/更新的求解器,一年至少4次.请检查版本声明.
示例:
从着名的1963书(由George Dantzig编写)中提取的一个运输问题,用来描述GAMS的有效性.这个模型只是模型库中的部分,模型库中还包含了大量的完整GAMS模型.
支持模型的类型:
GAMS模型类型包括LP,MIP和NLPs的不同形式.这里列出了GAMS支持的所有的模型类型.
GAMS 的发展背景
GAMS 是"General Algebraic Modeling System"(一般性代数仿真系统)的缩写,较早是由美国的世界银行(World Bank)的 Meeraus 和 Brooke [Brooke, Kendrickm and Meeraus, 1992]所发展。"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)算法。