代码之家  ›  专栏  ›  技术社区  ›  monksy

有人用过AMPL吗

  •  1
  • monksy  · 技术社区  · 14 年前

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

    我的问题是:AMPL还在使用吗?如果有的话,它的用途是什么?

    是的,我确实理解AMPL可以用matlab代替,但是AMPL是免费的,matlab甚至不接近。

    3 回复  |  直到 7 年前
        1
  •  0
  •   Kyle    14 年前

    一个名为yalmip的matlab工具箱允许您在matlab中进行公式化。这反过来使得它很容易与其他预处理或后处理需求集成。

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

        2
  •  18
  •   Escualo    14 年前

    你很困惑。

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

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

    Matlab是一种用于技术计算的语言:线性代数、微分方程、统计学和一些优化——Matlab的优化能力与AMPL相差无几。

    AMPL通过自动微分提供精确的一阶和二阶导数,这是一个只有GAM可以测量的关键特性,你可能不知道这有多重要和困难,但相信我,这是。

    没有人愿意为“AMPL编码员”提供工作,因为没有这样的事情。这项工作是提供给一个人谁知道什么是优化和什么工具在最前线。同样,没有人给“matlab编码器”提供工作,他们给一个熟悉matlab的工程师提供工作。

    最后,AMPL不是免费的。您可以免费使用学生版,仅用于学习目的。这种版本将您限制为100个变量和约束(我假定您知道这意味着什么)。如果您想要一个成熟的AMPL,您需要支付许可证和解决者的许可证,每个人!ipopt是开源的,但是cplex非常昂贵。

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

    AMPL和matlab有一个共同点:它们都是由杰出的科学家(moler->matlab,gay->ampl)在各自领域的前沿创造的。

        3
  •  0
  •   Antonello    7 年前

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

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

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