- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在寻找使用约束编程解决数独问题的替代观点。
经典的观点是使用有限域(行,列)变量,这些变量可以取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/
Closed. This question is opinion-based。它当前不接受答案。
我有一个项目需要在工作和在家中使用两台不同的计算机进行。 我需要能够在两台计算机上都处理代码,所以问题有两个。 共享代码 共享工作空间。 用svn 1很简单;但是我感到很讨厌将损坏的代码提交给svn,
我正在尝试在 Eclipse 中实现 coreNLP 情绪分析器。得到错误: Unable to resolve "edu/stanford/nlp/models/lexparser/englishP
我有一个输入框: 如果我在输入字段中输入 .75 ,则应在 .75 之前自动添加 0 ,使其变为 0.75 此外,如果我输入 1.3 那么它应该变成 1.30 我已经尝试过: echo "
我有一个带有以下行的父组件 根据上下文,它呈现路由器配置中定义的两个组件之一 path: 'parent', component: Parent, children: [ {
我安装了最新的 angular-ui-select (v0.12) 和 angular v1.2.27。我的页面无法加载。我得到: expected expression, got . (a poin
我是一名优秀的程序员,十分优秀!