有没有人再使用AMPL了

时间:2009-11-06 02:16:53

标签: matlab ampl

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

我的问题是:AMPL是否仍在使用?如果是这样,它用于什么?

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

3 个答案:

答案 0 :(得分: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)在他们领域的最前沿创造的。

答案 1 :(得分:0)

一个名为YALMIP的matlab工具箱允许您在Matlab中进行配方。这反过来又很容易与其他预处理或后处理要求集成。

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

答案 2 :(得分:0)

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

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

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