我正在尝试熟悉约束编程。
到目前为止,我看到的所有文档/视频都只包含基于CP库利用率(如Choko、Gecode、JaCoP等)的顶级概念和代码示例的描述。
我希望至少在没有任何库的情况下用Java实现一些简单的东西。
有没有什么资源可以让我找到实现主要CP思想的Java/C#/C++/Python中的工作代码?(至少是“多寄钱”的问题解决方案)。
(或者,如果有人能在这里解释一下,那就太好了)。
发布于 2013-06-27 01:23:21
这取决于你想要做什么。
1-如果您想要开始使用约束编程(CP)工具,您首先需要了解此方法中的建模。为此,您必须能够将给定问题定义为一组约束,然后将模型发布到求解器(该求解器已经知道如何处理这些约束)。
我个人发现G12_MiniZinc_Distribution (可以通过http://www.minizinc.org/获得)和它的最新教程是一个非常好的入门方式(最新的发行版包含许多型号)。如果你想看看CP模型是什么样子,还有一些在线模型(w.r.t minizinc语法):http://www.hakank.org/minizinc。
2-如果你对CP有一个高级的理论理解,你可能会直接从可用的库中看到一些技术(例如传播器)的实现,因为从头开始开发CP Solver (IMO)是一个愚蠢的想法。以下是一些开放源码的求解器/库: G12、Choco、Mistral或-Tools。
发布于 2017-03-28 23:16:28
发布于 2019-09-07 16:24:29
如果仍然有人,请查找下面这样的内容:
你可能想看看Minicp,在那里你可以找到幻灯片,它是一个用Java语言编写的求解器。
如果您想用高级但快速的编程语言从头开始编写自己的求解器,请查看我的博客系列:ConstraintSolver.jl blog posts
https://stackoverflow.com/questions/17321436
复制相似问题