首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在研究中体现MiniZinc的效率

如何在研究中体现MiniZinc的效率
EN

Stack Overflow用户
提问于 2020-04-28 13:51:30
回答 1查看 191关注 0票数 2

不久前,我正在写一篇或相关的文章以供发表。本文利用MiniZinc给出了一个求解某一优化问题的MILP模型。我从10个实例中最优地解决10个实例。

一位顾问对此进行了回顾,并提到了以下2条评论:

  1. 您如何比较MiniZinc与其他最新一代的MILP解决方案,如CPLEX或Gurobi在性能方面?

我一直使用MiniZinc,它对我来说很有效。我如何展示MiniZinc所具有的多功能性?是否有参考书目或证明这一点的方法?

  1. 由于MiniZinc不是最著名的MILP求解者之一,所以您应该避免在摘要中提到它的名称。

出于什么原因,你不建议在摘要中提及它?

使用MiniZinc的有效理由是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-28 23:56:57

要证明使用MiniZinc是正确的,最重要的是澄清MiniZinc的功能。运筹学界有时非常固步自封,通常看两件事:

  1. 哪一组线性方程组编码你的问题?
  2. 什么样的解决过程被用来达成一个解决方案?

然而,MiniZinc应该被看作是这个过程中的一个早期步骤。它允许用户编写问题的高级模型,该模型被编译成求解者可以理解的规范(在MILP求解器的情况下,这将是一组线性方程组)。因此,在OR世界中,它比库(如PyOpt )要好于像Gurobi或CPlex这样的求解者。然而,与这些库不同的是,MiniZinc语言是在更高的层次上编写的,并且打算是解决技术不可知论的,这意味着,除了MILP解决程序之外,您还可以尝试CP、LCG、SMT和SAT解决程序。

关于为什么使用MiniZinc而不是JuMP或PyOpt的一个很好的论点是,MiniZinc通常可以在基于高层模型结构的编码中应用优化。已经发表了多篇关于自动线性化的问题的论文,这些问题在求解器上提供了很好的/新颖的性能。论文约束规划模型的改进线性化甚至表明,MiniZinc有时比该领域的专家创建更有效的线性模型。

最后,应该注意的是,MiniZinc实际上使用了您的顾问所提到的求解器。Gurobi和CPlex可能是线性化良好的问题的最佳MiniZinc求解者。尽管如此,如果您正在使用MiniZinc的一些其他解决程序,那么您可能仍在使用一种最先进的解决方法: Gecode是目前速度最快的约束编程解决程序之一;Gecode在MiniZinc挑战中多次击败它的所有竞争对手,是一种新颖的惰性子句生成求解器;还有更多来自不同解决程序技术的求解器可以与MiniZinc一起使用。

因此,直截了当地回答问题:

您如何比较MiniZinc与其他最新一代的MILP解决方案,如CPLEX或Gurobi在性能方面?

我们不把MiniZinc和Gurobi或CPlex作比较,因为MiniZinc不是一个解决者。然而,MiniZinc将为新的求解者创建模型,如Gurobi和CPlex。

由于MiniZinc不是最著名的MILP求解者之一,所以您应该避免在摘要中提到它的名称。(出于什么原因,你不建议在摘要中提到它?)

如果MiniZinc为您的应用程序做出了很大贡献,那么我认为提到它是公平的;但是,最好将它与使用过的解决程序结合起来。如果您在论文中描述了MiniZinc的过程或它为您所做的工作,它会有所帮助。

使用MiniZinc的有效理由是什么?

MiniZinc是一个很好的工具,可以创建一个人类可读的问题模型,该模型被转换成一个高效的线求解器的规范。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61481869

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档