GAMS - 通用建模软件
· 使用GAMS引擎和GitHub Actions进行自动GAMS模型测试
通用代数建模系统(GAMS)是一种用于数学规划的建模系统。它由一个语言编译器和一系列相关的高性能解算器组成。
GAMS用于建模线性,非线性和混合整数问题。对于大型的,复杂的问题很有帮助。GAMS透过简单的操作模式,排除了一些技术问题,让用户能够能专心于模块的建立。当前GAMS新版本为47.4。
GAMS建模语言使建模人员可以将现实中的问题转换为计算机代码。然后,GAMS语言编辑器将此代码转换为求解器可以理解和求解的格式。这种架构允许在不改变模型公式的情况下更改所使用的求解器。
为什么选择GAMS
通用代数建模系统(GAMS)根植于相关设计原则中,它是一个经过发展和成熟的系统。
GAMS是一种健壮的,可扩展的新代数建模技术,用于开发复杂的大规模应用程序。
GAMS是用于构建健壮且具有故障保护功能的系统的成熟工具,可以提高模型开发人员的生产率,并很大的简化应用程序的开发和维护。开发环境使您能够快捷构建模型,而部署工具(MIRO)使您能够立即将解决方案作为Web应用程序提供。
APIs
GAMS可以到您的业务应用程序中。有适用于Python,C++、.NET等的API。
求解器
GAMS为主要的商业和学术解决方案提供了界面。它可以在主要平台上运行。
MIRO
借助MIRO,您可以通过零编程将现有GAMS模型转换为交互式Web应用程序。
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
模型和数据的独立性
您可以独立于数据编写模型,并包括来自多种不同自己来源的数据,从存ASCII到Excel或Access以及其他来源,例如使用GDX(GAMS Datae Xchange)文件格式。GDX文件是存储GAMS符号(例如集合,参数变量和方程式)的值的文件GDX文件可用于为GAMS模型准备数据,GDX文件可在不同平台之间移植的二进制文件。
模型和平台的独立性
模型在平台之间可移植-一次编写,随处运行
GAMS可在Windows , Linux , Mac OS X , SOLARIS , Sparc Solaris和IBM Power AIX上运行
模型和用户界面的独立性
GAMS面向对象的API允许通过为与GAMS的交互提供的类,将GAMS到应用程序中。面向对象的GAMS API的三个版本:.NET , Java和python与.NET框架 4 (Visual Studio 2010),Java SE 5及版本以及python 3.4 , 2.7和2.6相关。
GAMS允许使用者通过制定的设置来把精力放在建模问题上。至于机器和系统软件执行的费时的细节将由GAMS系统来处理。
GAMS对于处理大型的,复杂的,需要多次修订才能确定模型的问题很有帮助,系统以高度简洁和自然的方式来建模问题。使用者能够快的和方便的更改公式,能从一个求解器转到另一个,甚至稍加费心就能从线性转换到非线性。
GAMS让使用者把精力集中到建模上,通过排除技术上的机器的问题的需要,比如地址计算,存储分配,子程序链接和输入输出和流程控制,GAMS增加了用于概念化和运行模型,和分析结果的时间。GAMS本身构建了良好的建模习惯,通过请求简明的实体和关系的规范。GAMS语言形式上和通常使用的编程语言相似。因此对于那些有编程检验的使用者将很熟悉。
使用GAMS,数据需要一次就能在熟悉的列表和表格形式中输入。模型以简练的代数声明来描述,对于人和机器都能读懂,相关的约束的整个集合都被输入到声明中。GAMS自动生成约束等式,并让使用者处理例外情况,假使那里来说是要不需要的。在模型中的声明能够被重用,而不需要更改代数式,当其他的实例是相同的或出现了相关问题。错误的位置和类型会在尝试解决方案前被查明。GAMS处理动态模型,包括时间序列,滞后,及暂时终点的提示和处理。
GAMS模型可以方便的从计算机平台移到另一个。只要GAMS已经在平台被安装好。GAMS能进行敏感度分析。使用者能够方便的规划模型来求解成分的不同值,然后生成输出报告。列出了每种情况的解决方案。模型能够同时被开发文档化,因为GAMS允许使用者包含解释性的文本作为任意符号和等式的定义和解释。
GAMS的平台
GAMS将支持的平台集划分为所谓的核心平台和外围平台,以识别并更好地描述这俩组平台的演变过程。核心平台的用户社区规模庞大,活跃且识别良好,但对于外围平台则不然。对于核心平台,GAMS将继续直接下载GAMS的新版本,而外围平台将根据请求提供。然后,核心平台可用性的变化将在时间发生之前公布,而外围平台的变化可能很少或根本没有通知。
核心平台如下:
注意:与大多数GAMS系统相比,GAMS Studio具有一些额外的系统要求。
GAMS 38.1版本放弃了对Mac OS X 10.14(Mojave)的支持。
添加了对Mac OS X12(Monterey)的支持
外围平台如下:
虽然GAMS执行系统本身可在支持的平台上使用,但用于某些求解器,工具和API,可以应用不同的可用性。
睿驰科技提供手册和中文版书籍
- 2024-12-09
- 2024-12-03
- 2024-12-03
- 2024-11-27
- 2024-11-19
- 2024-11-12
- 2024-12-10
- 2024-12-10
- 2024-12-09
- 2024-12-06
- 2024-12-05
- 2024-12-05