【问题标题】:Comparison of GAMS versus AMPL Algebraic Modelling LanguagesGAMS 与 AMPL 代数建模语言的比较
【发布时间】:2010-01-21 20:14:37
【问题描述】:

我很想从 GAMS 和 AMPL 的用户那里获得关于这两种语言的优缺点的意见。

【问题讨论】:

标签: modeling ampl gams-math


【解决方案1】:

就功能而言,它们几乎相同,可以表达大多数类型的优化问题。就个人而言,我更喜欢 AMPL,因为它具有直观和富有表现力的语法,并且在 book 中有很好的记录。 AMPL 的另一个重要优势是,尽管它是商业的,但您可以避免供应商锁定,因为有一个开源替代方案 - GNU MathProg。另一方面,GAMS 曾经拥有比 AMPL 更先进的 IDE,尽管它随着新 AMPL IDE 的引入而改变。

您可以在其 Wikipedia 文章中找到来自 George Dantzig 在 AMPL 和 GAMS 中提出的相同运输问题的示例:AMPLGAMS

【讨论】:

  • 谢谢,我最终选择了 AMPL,主要是因为您参考的书中有很好的文档。
  • 顺便说一句,这本书现在可以在线免费获得。
【解决方案2】:

This blog 有话要说:

这两个系统在他们正在做的事情和广泛使用方面都非常出色,所以你不能 这两种选择都真的出错了。我可能会建议加分 用于您的同事和合作者使用的建模系统。那 使模型和数据的交换更容易,在讨论时也更容易 问题、技巧、问题等。

Bob Fourer (AMPL) 回答:

很难找到可以在两个竞争中提供同样专家建议的人 系统,因为一旦您熟悉其中一个,您通常不会 有很大的动力继续了解对方。但是这里有一些cmets 从我几乎不带偏见的观点来看。

AMPL 的设计理念是更接近数学符号 并且通常比 GAMS 使用起来更自然,而且它更胜一筹 分数。 GAMS 模型通常依赖于更特殊的约定和 比其 AMPL 对应物重新制定;一个典型的例子是通常广泛的 使用 GAMS $ 运算符来施加各种条件。此外,IDE 尽管如此,GAMS 基本上更像是一个批处理系统,而 AMPL 提供更灵活的交互式探索模型和结果的选项。 最后,虽然在某些领域 GAMS 是通过长期使用建立起来的,但我仍然看到 这些领域的建模者选择 AMPL,尤其是在他们从事 不依赖于现有 GAMS 模型的新项目。

在我看来,AMPL 和 GAMS 在实践中比这里建议的更接近(例如 在 GAMS 中使用 $,在 AMPL 中使用 :)。我其实有点喜欢 做实际工作时的 GAMS 语法,因为它更紧凑一点,而且 求和结束的地方很明显(在 AMPL 中,这是基于运算符的优先级, 在 GAMS 中,总和用括号括起来)。

【讨论】:

    【解决方案3】:

    在我看来,所有语法方面的考虑都只是个人喜好问题; AMPL 和 GAMS 语言都易于学习,并且在可以考虑的模型类型方面提供了可以说是相同的范围。

    在撰写本文时,GAMS 提供了更多的求解器。话虽如此,AMPL 的求解器列表并不是 GAMS 求解器列表的子集。对于特定应用程序,我建议在购买 AMPL 或 GAMS 之前对求解器进行基准测试(例如,通过 NEOS 服务器进行优化)。

    就我个人而言,我更喜欢 AMPL 的语法,因为它更接近数学符号。但是,我更喜欢将 GAMS 用于工业应用,主要是因为求解器的可用性以及它在许多行业中的嵌入/验证。这通常简化了与已经使用 GAMS 的行业合作伙伴/客户的对话。

    【讨论】:

    • 它们与 AIMMS 和 LINGO 相比如何?
    • @skan,您能否添加示例链接?是否有 python API?谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-05-06
    • 2020-10-05
    • 2010-10-14
    • 2021-08-26
    • 2011-01-04
    • 2011-06-02
    • 1970-01-01
    相关资源
    最近更新 更多