gpt4 book ai didi

java - Choco 求解器传播和搜索策略交互

转载 作者:行者123 更新时间:2023-12-02 02:35:07 25 4
gpt4 key购买 nike

我已经开始在工作中使用 choco-solver,但不明白传播器和搜索策略如何相互作用。

我认为 choco 有一些标志可以向我显示在传播过程中是否有任何约束变量的域发生了变化。如果有,则传播一次又一次开始,直到没有发生域变化。之后,如果约束仍然不满足或失败,搜索策略将连接到求解过程。

但是我的程序的输出表明我错了。 Propogator 实际上运行了 2 到 3 次,每次都更改域,但随后会调用搜索策略。

请帮帮我,我的结论哪里错了?或者它应该按照我的想法工作,但我的代码中有一些错误,导致错误的输出?

抱歉我的英语不好

最佳答案

Choco 是一个约束编程求解器,这些求解器都按照相同的原理工作。

与强力搜索不同,约束求解器将首先调用所有(相关)传播器以从变量域中删除它知道变量不能采用的值。调用一个传播器可能会触发新值变得不可能,从而可能会触发其他传播器再次运行。

一旦所有传播者报告他们无法再删除值(我们称之为修复点),将咨询搜索策略以了解下一步该做什么。 (总的来说,这是对解决方案的猜测,我们可能需要回溯)。

如果所有变量只有一个可能的值,这是一种解决方案。然而,在我们的搜索中,变量可能会丢失所有可能的值。在这种情况下,传播器将会失败。如果我们已经使用过搜索,我们将需要回溯。如果这是在根节点,则说明问题无法满足。

有关更多信息,请尝试几个约束求解器的教程。其中很多都可以在 Wikipedia 上找到。 。您也许还可以找到在线类(class)。

关于java - Choco 求解器传播和搜索策略交互,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46468877/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com