将这个谜题表达为 CSP 是什么意思

What does it mean by express this puzzle as a CSP

下面的附图是什么意思。

By labelling each cell with a variable, express the puzzle as a CSP. Hint:
recall that a CSP is composed of three parts.  

我最初以为只是将变量添加到每个单元格,如 A、B、C 等到每个单元格,然后约束这些单元格,但我认为这是不正确的。我不希望答案只是对所需内容的解释。在 CSP 方面。

在我看来,一个CSP最好分为两个部分:

  1. 说明约束条件。这称为 modeling 部分或 model.
  2. 搜索 使用 枚举谓词 的解决方案,例如 labeling/2.

最好使用谓词将这些部分分开,我们称之为 核心关系,它具有以下属性:

  • post是约束,即它表达了上面的第(1)部分。
  • 它的最后一个参数是仍然需要标记的变量列表。
  • 按照惯例,其名称以 下划线_.
  • 结尾

有了这种区别,您就可以:

  • 无需重新编译代码即可尝试不同的搜索策略
  • 关于核心关系的终止属性独立于任何具体(且通常非常昂贵)搜索的原因。

我可以看到一些讲师如何将第 (1) 部分分解为:

1a。说明变量的,例如使用in/2约束
1b.说明变量中的其他约束条件。

在我看来,这种区别是 人为的 ,因为 in/2 约束与建模部分中的所有其他约束一样是约束,但一些讲师也可能单独教授这一点由于历史原因,可以追溯到 CSP 系统不像现在这样动态的时代。

如今,您通常可以随时 post 额外的域限制,并可以任意顺序将 in/2 约束与其他约束自由混合。

因此,您期望的部分可能是:(a) 陈述 in/2 约束,(b) 陈述进一步的约束,以及 (c) 使用枚举谓词来搜索具体的解决方案。看来您已经对如何使用此方法解决这个具体的 CSP 有了正确的想法。