首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用CLPFD求解CuFrog

使用CLPFD求解CuFrog
EN

Stack Overflow用户
提问于 2012-12-10 00:40:56
回答 1查看 178关注 0票数 2

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

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

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

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2015-09-02 02:17:14

因此,您说CLP(FD)没有找到解决方案。你是说它以"no“结束,还是说它不会结束?

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

在这种特殊情况下,给出对称破坏启发式等限制,实际上可以减少搜索时间!例如,从你的起点开始,你可以将搜索固定在两个方向上,其他方向可以在以后派生。

因此,如果答案是“不”,这意味着有太多的限制。如果答案是它不会终止,这意味着没有足够的限制或不可能实际解决。

尽管你在搜索一条路径时付出了所有的蛮力,但后来可能会发现,解决方案是系统的。或者你可能会自己领会到这个想法。

再见

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13789362

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档