|
GAMS系统
通用代数建模系统(GAMS)是特别为建模线性,非线性和混合整数最优化问题而设计的.本系统对于大型的,复杂的问题特别有帮助.GAMS可以运行在个人计算机,工作站,大型机和超级计算机上. GAMS允许使用者通过制定简单的设置来把精力放在建模问题上.至于特定机器和系统软件执行的费时的细节将由GAMS系统来处理. GAMS对于处理大型的,复杂的,需要多次修订才能最终确定精确模型的独一无二的问题特别有帮助.系统以高度简洁和自然的方式来建模问题.使用者能够快速和方便的更改公式,能从一个求解器转到另一个,甚至稍加费心就能从线性转换到非线性.有关GAMS系统中求解器的简短介绍请点击
GAMS让使用者把精力集中到建模上.通过排除考虑纯技术上的机器特定的问题的需要,比如地址计算,存储分配,子程序链接,和输入输出和流程控制,GAMS增加了用于概念化和运行模型,和分析结果的时间.GAMS本身构建了良好的建模习惯,通过请求简明而精确的实体和关系的规范.GAMS语言形式上和通常使用的编程语言相似.因此对于那些有编程检验的使用者将非常熟悉. 使用GAMS,数据仅仅需要一次就能在熟悉的列表和表格形式中输入.模型以简练的代数声明来描述,对于人和机器都很容易读懂.非常相关的约束的整个集合都被输入到一个声明中.GAMS自动生成每个约束等式,并让使用者处理例外情况,假使那里一般来说是不需要的.在模型中的声明能够被重用,而不需要更改代数式,当其它的实例是相同的或出现了相关问题.错误的位置和类型会在尝试解决方案前被查明.GAMS处理动态模型,包括时间序列,滞后,及暂时终点的提示和处理. GAMS是灵活而强大的.模型可以非常方便的从一个计算机平台移到另外一个,只要GAMS已经在每个平台被安装好.GAMS很容易进行敏感度分析.使用者能够方便的规划模型来求解一个成分的不同值,然后生成一个输出报告,列出了每种情况的解决方案特征.模型能够同时被开发和文档化,因为GAMS允许使用者包含解释性的文本来作为任意符号和等式的定义和解释.
GAMS不断的在被增强和扩展.2.50版37.1.0分发版本包含了众多更新和增强,比如,提供面对对象的.NET API,gamsbatch批处理脚本,设置最优解范围,用以调用Lindo抽样程序的新的函数库lsadclib,以及在求解器方面的众多更新。更多内容请点击43.3.0分发最近更新(版本说明)
从著名的1963书(由George Dantzig编写)中提取的一个运输问题,用来描述GAMS的有效性.这个模型只是模型库中的部分,模型库中还包含了大量的完整GAMS模型.
GAMS模型类型包括LP,MIP和NLPs的不同形式.这里列出了GAMS支持的所有的模型类型. 通用代数建模系统(GAMS)是用于数学编程和优化的高级建模系统。 它由语言编译器和稳定的集成高性能求解器组成。 GAMS是为复杂的大规模建模应用程序量身定制的,可让您建立大型可维护模型,这些模型可快速适应新情况。 GAMS专为建模线性,非线性和混合整数优化问题而设计。 前沿建模 专注于建模员 GAMS 允许其用户以与他们的数学描述非常相似的方式来制定数学模型。 看看这个简单的例子,它说明了 GAMS 模型的基本结构和特征,以及它与数学公式的关系。 GAMS 教程以更广泛的方式解释了相同的模型,或者在我们的 YouTube 频道上观看此视频。 通过这种方式,GAMS 让用户可以专注于建模。 GAMS 通过要求实体和关系的简洁和准确的规范来鼓励良好的建模习惯。 GAMS 语言在形式上类似于常见的编程语言。 因此,任何有编程经验的人都熟悉它。 但由于模型的制定方式与其数学描述相似,因此不仅程序员可以理解和维护它,实际领域专家也可以理解和维护。 GAMS 专注于建模者,并允许他自己做所有相关的事情。 声明性和程序性元素的平衡组合允许构建复杂的算法,甚至可以在 GAMS 中实现分解方法。 这对于解决通常与性能问题一起出现的异常问题的模型尤其重要。 与众不同的设计原则 GAMS 专注于其核心竞争力:使我们的用户能够构建可读、可维护的模型,并使用任何地方可用的最佳求解器来解决它们。 我们的开放式架构和提供的许多数据接口允许与外部系统进行无缝通信。 模型、求解器、数据、平台和用户界面在独立的层中分离,可以轻松切换求解器、使用多个数据集、在多个平台上运行以及将 GAMS 集成到现有应用程序、结构和工作流中。 模型和求解器的独立性 我们提供超过 25 个求解器的极其广泛和多样化的产品组合,包括所有预期的商业求解器。 LP/MIP/QCP/MIQCP: CPLEX, GUROBI, MOSEK, XPRESS 选择要使用的求解器很简单——只需更改一行代码或调整一个选项设置即可。 无需重新实现任何东西来比较求解器性能或查看可能的改进。 同样,您可以在模型类型(例如线性和非线性)之间轻松切换,因此可以轻松尝试不同的公式。 使用 GAMS,您可以获得一个适用于各种模型类型和求解器的环境。 模型和数据的独立性 您可以独立于数据编写模型,并包括来自多种不同来源的数据,从纯 ASCII 到 Excel 或 Access 以及许多其他来源,例如使用 GDX(GAMS 数据交换)文件格式。 GDX 文件是一种存储一个或多个 GAMS 符号值的文件,例如集合、参数变量和方程。 GDX 文件可用于为 GAMS 模型准备数据、呈现 GAMS 模型的结果、使用不同参数存储同一模型的结果等。GDX 文件不存储模型公式或可执行语句。 GDX 文件是可在不同平台之间移植的二进制文件。 我们 YouTube 频道上的视频 GAMES 和 Excel - 使用 GDX 传输数据说明了 Excel 的这一点。 模型和平台的独立性 模型在平台之间完全可移植 - 一次编写,随处运行。 模型和用户界面的独立性 GAMS 面向对象的 API 通过为与 GAMS 的交互提供适当的类,允许将 GAMS 无缝集成到应用程序中。 面向对象的 GAMS API 的三个版本:.NET、Java 和 Python 可与 .NET framework 4 (Visual Studio 2010)、Java SE 5 及更高版本以及 Python 3.4、2.7 和 2.6 一起使用。 除了面向对象的 GAMS API 之外,还有专家级(或低级)GAMS API,其使用需要 GAMS 组件库的高级知识。 有关 API 的更多信息,请参阅我们的文档。 除了 API 之外,GAMS 还提供与 MS Excel、MatLab 或 R 等应用程序的智能链接。通过这些,用户可以继续在其生产工具环境中工作,同时应用程序通过 API 访问 GAMS 的所有优化功能。 例如,这允许对应用程序中的模型数据和结果进行可视化和分析。 庞大的全球用户社区 GAMS 在 120 多个国家被跨国公司、大学、研究机构和政府在许多不同领域使用,包括能源和化学工业,用于经济建模、农业规划或制造。 查看我们的案例研究,了解我们的用户在世界各地使用 GAMS 做什么。
|
|
|