n-Queens 问题:如果表达式为 True,为什么接下来写的表达式可以断言每行最多有一个皇后?

问题描述

虽然我试图通过制作模型来理解它,但我无法理解它。 提前致谢!

enter image description here

解决方法

这个说法是错误的。考虑 2x2 的情况,其中顶行包含两个皇后,底行是空的。

然后 Q2(应该断言每行最多有 1 个皇后)扩展为:

(¬p(1,1) ∨ ¬p(2,1)) ∧
(¬p(2,1))

现在底行是空的,所以 ¬p(2,1) 为真,满足两个条件。这意味着 Q2 在不应该满足时得到满足。


如果您不相信上述扩展,请运行以下 Python 代码亲自查看:

n = 2
for i in range(1,1+n):
    for j in range(1,1+(n-1)):
        for k in range(j+1,1+n):
            print(f"!p({i},{j}) v !p({k},{j})")

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...