1

我参加了“智能决策”课程(主要是问题优化课程)。在课堂上,我们了解了 AMPL 以及如何扩展求解器。我最近没有听到太多关于它的消息,也没有看到它的工作列表。

我的问题是:AMPL 还在使用吗?如果是这样,它是用来做什么的?

是的,我确实知道 AMPL 可以用 Matlab 代替,但是 AMPL 是免费的,而 Matlab 甚至不接近。

4

3 回答 3

19

你很困惑。

AMPL 和 Matlab 是两个完全不同的东西,它们可能在某些应用领域相交,但它们旨在解决完全不同类型的问题。

AMPL 是一种描述优化问题的语言。它本身不做任何事情:它只是为用户提供与求解器交互的方法。求解器可以用于线性规划 (CPLEX)、非线性规划 (Ipopt) 或其他更深奥的变体。

Matlab 是一种用于技术计算的语言:线性代数、微分方程、统计和-确定-一些优化-Matlab 的优化能力与 AMPL 相比相形见绌。

AMPL 通过自动微分提供精确的一阶和二阶导数,这是一个只有 GAMS 才能达到的关键功能,您可能不知道这有多重要和困难,但是 - 相信我 - 它是。

没有人会为“AMPL 编码器”提供工作,因为没有这样的东西。该工作提供给知道什么是优化以及最前沿的工具的人。同样,没有人为“Matlab 编码器”提供工作,他们将工作提供给了解 Matlab 的工程师。

最后,AMPL 不是免费的。您可以免费使用学生版,仅用于学习目的。这样的版本将您限制为 100 个变量和约束(我想您知道这意味着什么)。如果你想要一个成熟的 AMPL,你需要为许可证和求解器的许可证付费,每一个!Ipopt 是开源的,但 Cplex 相当昂贵。

是的,AMPL 仍在使用,而且非常多。我用它来计算最佳的航天器轨迹,相信我,没有什么比这更接近了。我喜欢Matlab,但是使用Matlab进行认真的优化就像用勺子打开一罐食物——你可能会成功,但会有血和泪。

AMPL 和 Matlab 有一个共同点:它们都是由处于各自领域前沿的杰出科学家(Moler->Matlab,Gay->AMPL)创建的。

于 2009-11-25T07:46:23.810 回答
0

一个名为 YALMIP 的 matlab 工具箱允许您在 Matlab 中进行公式化。这反过来又使得与其他预处理或后处理要求集成变得非常容易。

我以前是 AMPL 用户,但是在找到 YALMIP 后,我不再使用 AMPL。因为这节省了我编写代码以准备输入 AMPL 的数据并处理输出的时间。

于 2010-04-27T07:29:15.957 回答
0

虽然 GAMS 和 AMPL 是特定领域的语言,但我现在更喜欢通用语言中的优化库。

您可以获得最先进的编程语言功能、编辑器、调试器、大型支持库、与其他库的轻松集成(例如,IO 或可视化数据)以及将特定优化模型轻松嵌入到更大的模型中。

Pyomo(用于 Python)和Jump(用于 Julia)可能是编写优化问题(包括非线性问题)的两个最著名、快速且功能完整的实现。

于 2017-08-03T08:18:28.480 回答