1

嗨,我需要一个非确定性约束满足问题工具,因为我需要具有相同问题输入的不同解决方案。有人知道具有这种特性的工具吗?

我只知道像 Gecode (c++)、Choco (Java) 和 Curry (Haskell) 这样的工具,我认为它们以确定性的方式工作。

4

3 回答 3

0

和 Zayenz 说的类似,你可以试试Minion with the flag -randomiseorder

于 2012-12-10T09:29:49.937 回答
0

如果您想要获得一些随机解决方案,大多数 CP 工具都支持使用随机启发式算法。例如,标准 Gecode 分支器对此有选项,例如整数变量的 INT_VAR_RND 和 INT_VAL_RND。要每次获得不同的搜索,请确保设置唯一的种子。

请注意,使用随机启发式方法不会为您提供任何分布保证。例如,您的问题可能只有两个解决方案,但几乎所有随机选择都可能导致其中一个解决方案给出非常倾斜的分布。

于 2012-12-10T08:50:22.980 回答
0

您是否尝试进行帕累托优化(又名多目标优化)并让用户选择其中一种帕累托最优解?

帕累托

人们通过简单地替换BestSolutionRecaller类来使用Drools Planner(java,开源)完成此操作。请参阅此线程此线程。Planner 6.0 或 6.1 将提供开箱即用的帕累托支持。

于 2012-12-10T09:01:26.037 回答