AMPL 用于优化建模的高级建模工具

2022-05-03   卡贝软件

原标题:AMPL 用于优化建模的高级建模工具

AMPL

AMPL是一套用于优化建模的高级建模工具。AMPL是一种描述并求解大规模复杂数学问题的建模语言。AMPL支持世界上大部分的求解器,如CBC、CPLEX、FortMP、Gurobi、MINOS、IPOPT、SNOPT和KNITRO。AMPL语言的的一个主要的特点是对优化问题的数学表达式的简化,这使得简明地可读地定义优化问题成为可能。根据NEOS的统计AMPL是使用最为广泛的数学模型语言。

AMPL IDE

在售的求解器(Solver)

线性求解器

这些求解器都处理连续变量和整数变量中的线性和凸二次优化问题:

  • CPLEX (IBM Corporation)
  • Gurobi (Gurobi Optimization)
  • Xpress (FICO)

单个求解器提供其他问题类型的扩展。所有这些都包含用于线性编程的快速原始单纯形,双重单纯形和内部方法,以及用于纯整数和混合整数问题的复杂的分支切割和启发式搜索方法。 包括多个处理器和内核上的并行计算选项。 此类解决方案是商业,政府和研究机构中应用最广泛的应用程序。

非线性求解器

此类别中的求解器为寻找涉及平滑非线性函数(包括比率,多项式,指数和对数以及三角形式)的问题的局部最优解提供了最有效的方法。 它们提供了各种经过验证的算法:

  • CONOPT (ARKI Consulting & Development) — 基于减少梯度的多方法架构
  • KNITRO (Ziena Optimization) — 选择内点和主动集方法,支持整数变量和自动多重启动
  • LOQO (Princeton University) — 应用于二次近似序列的内点法
  • MINOS (Stanford University) — 基于线性原始单纯形方法的减少梯度方法
  • SNOPT (Stanford University) — 序贯二次逼近法

对于给定的问题类,通常会发现这些求解器方法中的一个或多个是有利的。 非线性求解器广泛用于具有物理组件的能量传输和工程设计等应用,以及先进的经济和金融建模。

替代求解器

这些求解器结合了多种方法来处理由于多个局部最优解,非光滑和离散函数和/或高度组合或逻辑约束而难以实现的优化问题。 我们正在构建此类别的产品,从以下开始:

  • BARON (The Optimization Firm) — 连续和整数变量中的全局非凸非线性优化
  • LGO (Pintér Consulting) — 一般函数形式的全局和局部优化

使用AMPL,可以轻松地在相同的模型和数据上尝试多种求解器替代方案,以确定哪种方法最适合给定的应用程序。

  • 开源求解器

AMPL 系统是一个复杂的建模工具,支持整个优化建模生命周期:开发、测试、部署和维护.

通过使用以人们对优化模型的相同方式来表示优化模型的高级表示,AMPL 促进了快速开发和可靠的结果。

AMPL 集成了一种建模语言,用于描述优化数据、变量、目标和约束; 用于浏览模型和分析结果的命令语言; 以及用于收集和操作数据以及实现迭代优化方案的脚本语言。 所有这些都使用相同的概念和语法来简化应用程序构建。

强大的建模语言功能

  • 对集合和集合运算符的广泛支持。 AMPL 模型可以使用成对、三元组和更长的元组; 在集合上索引的集合的集合; 无序、有序和循环对象集; 和数字组。
  • 算术、逻辑和条件表达式的通用和自然语法; 求和和其他迭代运算符的熟悉约定。
  • 连续和整数变量中线性和凸二次问题的自动处理。
  • 非线性规划功能,例如初始原始值和对偶值、用户定义函数、快速自动微分和“定义”变量的自动消除。
  • 网络流、分段线性、互补条件和逻辑含义的便捷替代符号。

有价值的建模支持功能

  • 具有批处理选项的交互式命令环境。 强大的显示命令让您可以使用自动格式化或您自己的首选项查看任何模型组件或表达式、在屏幕上浏览或写入文件。
  • 强大的脚本语言,包括循环和 if-then-else 命令。 AMPL 命令语言中的程序可以定义复杂的迭代方案来处理输入数据、重复调整和求解多个模型的实例,并准备分析结果。
  • 模型和数据的分离。 即使集合和数据表增长,AMPL 模型也保持简洁。 模型可能包含多种数据有效性条件。
  • 数据输入和输出连接。 简洁的语句将模型数据和结果与关系数据表的内容相关联。

广泛的可用性

可用的求解器包括最流行和最强大的优化引擎:

  • 用于连续和混合整数问题的线性和凸二次求解器(CPLEX、Gurobi、Xpress)。
  • 用于连续问题(CONOPT、Ipopt、KNITRO、MINOS、SNOPT)和混合整数问题(Bonmin、Couenne、KNITRO)的局部求解的非线性求解器。

使用我们的开源 AMPL 求解器库将您自己的求解器连接到 AMPL。

支持的平台包括 Windows、Linux、MacOS 和几个基于 Unix 的工作站。

详尽的支持材料

AMPL 书提供了详细的介绍性教程以及所有基本和高级功能的教程介绍。

提供了大量示例,包括 AMPL 书中的所有模型和数据以及用于常见迭代方案的各种脚本。

Google群组上的AMPL用户论坛对公众开放搜索或发帖。