我是CP的新手。到目前为止,我玩过MiniZinc,我觉得这很有趣。
在我投入太多之前,我想弄清楚什么是CP语言&solver最好从最活跃的社区开始,在研究中积极开发和使用,以及最好的学习资源(示例和教程)。
到目前为止,选项似乎是:MiniZinc、ECLiPSe和/或工具。
谢谢,
MiniZinc是一个出色的起点。如果你对更多的语言感兴趣,我建议你学习Choco和JaCoP,它们都可以用作Java库,而且都有非常活跃的社区。
还可以看看OptaPlanner(Java、开源、Apache许可证):
- 每日提交
- 发送拉取请求的活跃社区贡献者
- 每月发布测试版,每年发布2个最终版本
- 350多页的手册以及javadocced
- 单元测试、集成测试和压力测试
- 红帽子的企业支持
在过去的几个月里,正如您所提到的,我一直在使用ECLiPSe编程语言来解决从规划问题到算术和逻辑难题的各种问题,我对这种语言的简单性和强大性感到惊讶。它是基于Prolog语言的,所以如果你有Prolog的基本知识,它将非常容易和快速地适应这种语言及其语法。该语言的一个好处(imo)是集成的逻辑循环,这使得访问某些数据非常方便。此外,该网站为其所有功能提供了非常清晰的文档和代码教程,并在这里提供了一个页面,其中包含一系列已知的现有问题的实现。这些对我学习语言特别有帮助。