gpt4 book ai didi

prolog - 使用 CLPFD 求解 CuFrog

转载 作者:行者123 更新时间:2023-12-02 02:08:42 27 4
gpt4 key购买 nike

好的,所以我有一个叫做 CuFrog 的谜题,它包括在每个位置填充一个数字的 3x3x3 立方体,但从一个位置跳到另一个位置时跳过一个位置。例如,考虑一个展平的立方体,第 1 侧 (1,1) 右侧的有效位置将是第 1 侧的 (3,1)。

所以我在 Prolog 中使用约束来做到这一点,我已经给出了每个变量的域(1 到 54),我说过它们必须都不同,并且对于每个位置,集合中的一个位置right-left-down-up 必须是该位置的当前值 + 1。

此外,我已经给出了拼图的入口点,这意味着我已经将数字 1 放在了第一个位置。

问题是,当我标记变量时,SICStus 没有找到我的答案。 :(看来我一定是在某处遗漏了限制,或者我做错了什么。有人可以帮忙吗?

谢谢。

最佳答案

所以你说 CLP(FD) 没有找到解决方案。你
意味着它以“否”结束还是你的意思不是
终止?

这个问题看起来像一个 Hamiltonian path 问题。它
可能是搜索需要指数时间,并且简单地
不会在实际时间内终止。

在这种特殊情况下,给出对称性等限制
打破启发式,实际上可以减少搜索时间!
例如,从您的起点开始,您可以修复搜索
在 2 个方向上,其他方向可以稍后导出。

所以如果答案是“否”,这意味着限制太多。
如果答案是它没有终止,这意味着没有
足够的限制或无法实际解决。

尽管你在寻找路径时付出了所有的蛮力,
后来可能会证明一个解决方案是系统的。或者
你可能会自己明白这个想法。

再见

关于prolog - 使用 CLPFD 求解 CuFrog,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13789362/

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