gpt4 book ai didi

prolog - 观点数独

转载 作者:行者123 更新时间:2023-12-01 18:23:58 25 4
gpt4 key购买 nike

我正在寻找使用约束编程解决数独问题的替代观点。

经典的观点是使用有限域(行,列)变量,这些变量可以取1到9的值。这是一个很好的观点,并且很容易为其定义约束。例如:(1,2) 值为 4 的变量表示 4 位于第 1 行第 2 列中。

但很难提出其他观点。我尝试并提出了采用二进制值的 3 维矩阵的观点。例如,以 1 作为值的变量 (1,2,7) 表示第 1 行第 2 列中有一个 7。但是如果使用二进制值,则应该使用二进制值所有其他观点都无法提供良好的约束。

还有其他好的观点吗?

编辑:一个好的观点应该能够简洁地表达约束。我更喜欢允许使用尽可能少的约束来描述问题的观点,只要这些约束具有有效的算法。

定义视点:视点是一对 X,D,其中 X = {x1, . 。 。 , xn} 是一组变量,D是域的集合;对于每个 xi ∈ X,关联域 Di 是以下集合x 的可能值。必须能够为变量和值赋予含义问题 P 方面的 CSP,因此可以说视点中的分配是什么X,D 旨在用 P 表示。

最佳答案

您给出的观点是数独构建关系(行、列、数字)的位置编码的同态映射。

另一种方法是对限制集(行[1-9]、列[1-9]、方 block [ul,um,ur,ml,mm,mr,ll,lm,lr]或任何限制进行编码apply) 以及其中是否放置了某个数字。这很可能会是就定义约束而言是可怕的。 (所以我猜这应该被认为是不好的)。它需要将限制集之间的关系单独编码为“已知”。

例如经典观点中的 (2,5,7) 意味着此替代方案中的 (row2,7)、(col5,7) 和 (um,7)。

正如您所看到的,问题在于逻辑位置和各种约束之间关系的编码。经典的视角建立在对位置数据进行编码的基础上,并对可能的放置应用约束。 (解释和解决数独问题的方式。)另一种方法是使用约束集作为视点,并需要将定位作为约束来解决。

不过,普通人的大脑可能会因为这种表现而陷入困境。 (而且我不会自愿找出限制条件......)

关于prolog - 观点数独,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35990953/

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