1

我即将将我的硕士论文工作用于优化,我对 AMPL 的局限性有一些疑问。

我的导师似乎相信,当使用 Gurobi 求解器的完整许可证(我的大学有)时,AMPL 将处理几乎所有情况。

然而,在大多数当前的论文作品中,我看到大多数人仍然在其他语言(如 C、C#、Python 等)中使用遗传算法和启发式算法。是否最好用其他语言实现自己的启发式算法,或者是否有设置为您提供这个在 AMPL 中,前提是您拥有某些求解器的完整许可证?

到目前为止,我的大学在必须使用你自己的启发式方法时没有遇到任何实际问题,所以这意味着我必须在我的最后一门课程中学习这些,直到论文工作即将开始。

提前致谢!森德泽

4

1 回答 1

3

使用 AMPL 实现启发式方法是可能的,许多人使用 AMPL 的脚本功能或将其嵌入到其他语言中。这允许在比求解器 API 提供的更高级别上工作,并允许实现独立于求解器的方法(AMPL 提供对许多求解器的访问)。

另一种可能性是将您的方法实现为 AMPL 求解器,这也有其优势,因为您无需担心编写自己的输入法或 MPS 等传统格式的限制。SSDSolver就是这种方法的一个例子。它实现了一个切割平面算法来解决具有二阶随机优势约束的问题,并使用另一个 AMPL 求解器(例如cplex)来解决子问题。

于 2013-12-18T00:51:24.780 回答