【问题标题】:How I can convert ampl file to cplex?如何将ampl文件转换为cplex?
【发布时间】:2019-05-08 18:00:45
【问题描述】:

我在 Ampl 中编写了一个模型,我想通过 glpk 解决它。但是我注意到我需要一些 cplex 的操作,例如 ==>,而 glpk 没有它。我想知道有没有一种简单的方法可以将 Ampl 文件转换为 cplex?或者这是一个艰难的过程,我必须以 Cplex 格式重写所有内容!
(我没有买ampl,所以我不能在ampl中使用cplex)

【问题讨论】:

  • “CPLEX 格式”到底是什么意思? CPLEX 支持多种不同的文件格式。据我所知,您可以从 AMPL 导出 LP 或 SAV 文件。问题是 glpk 是否可以读取这些文件。也许您需要一些兼容 glpk 的格式而不是兼容 CPLEX 的格式?
  • 所以我可以通过 cplex 运行 ampl 文件?
  • 没有。但您可以从 AMPL 导出 CPLEX 可以读取的文件。只需在谷歌上搜索“AMPL”和“LP”或“AMPL”和“MPS”,您就会发现很多讨论解释了如何从 AMPL 生成 LP 或 MPS 文件。 CPLEX 可以读取 LP 和 MPS。也许甚至有一种方法可以导出 SAV 文件。那将是最好的。但同样,如果你想用 CPLEX 解决,那么你可以直接从 AMPL 调用它,或者不?生成 CPLEX 文件并不意味着您拥有 glpk 可以读取的文件。您将不得不尝试 glpk 是否理解。另见groups.google.com/forum/#!topic/ampl/kjBCs-4dXbY
  • @DanielJunglas 我有 cplex 求解器,如果我可以将 .mod 文件转换为 lp,我将通过 cplex 运行它
  • 如果您有 CPLEX 求解器,那么您可以直接从 AMPL 使用它。我上面链接的谷歌讨论对此有一些说明。实际上,它告诉您如何导出 MPS 文件(然后可以由 CPLEX 读取)以及如何直接从 AMPL 使用 CPLEX(通过 cplexampl)。

标签: linear-programming cplex ampl glpk


【解决方案1】:

如果您没有 AMPL 软件,则无法运行 AMPL 文件并将其自动转换为任何形式。

GLPK 包确实有自己的建模语言 GNU Mathprog,它实现了 AMPL 的线性子集。因此,有时将 AMPL 模型转换为 GNU Mathprog 模型并不难。然后 GLPK 可以处理 GNU Mathprog 模型并生成一个 MPS 或 LP 文件,供求解器读取。

GNU Mathprog 在 AMPL 中没有 ==>(“隐含”)运算符,因此任何使用该运算符的 AMPL 约束都必须转换为线性约束。有一些众所周知的方法可以进行这样的翻译。如果您需要帮助,那么这应该作为一个单独的问题发布。 (如果您显示您尝试翻译的完整 AMPL 约束,您将最有可能获得答案。)

【讨论】:

    猜你喜欢
    • 2020-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-28
    • 1970-01-01
    相关资源
    最近更新 更多