【问题标题】:Representing Minesweeper Constraints in Sat4J/CNF在 Sat4J/CNF 中表示扫雷约束
【发布时间】:2018-03-16 21:27:29
【问题描述】:

我正在尝试使用 SAT 求解器 (sat4j) 实现扫雷求解器,并且我对它们的工作原理有一个简单的了解。但我不知道的一件事是如何为地雷表示x+y+Z+....=2,因为 SAT 求解器使用布尔输入。如下表所示:

|一个 |乙 | c | d |电子| | f | 2 |克 | 3 | h | |我 | j | ķ | l |米 |

你可以写a+b+c+f+g+i+j+k = 2c+d+e+g+h+k+l+m= 3

【问题讨论】:

    标签: java sat sat4j


    【解决方案1】:

    如果a+b+c+f+g+i+j+k = 2 是指周围的单元格恰好包含两个地雷,那么您的字母确实是布尔变量,并且该约束称为基数约束。

    Sat4j 开箱即用地支持这一点。

    您可能会在这里找到一些提示: https://sat4j.gitbooks.io/case-studies/content/

    【讨论】:

    • 虽然提供的链接没有我要找的东西,但在 SAT4J API 中搜索基数约束给了我正在寻找的方法。谢谢。
    猜你喜欢
    • 2011-04-26
    • 2018-12-12
    • 2010-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-10
    • 2014-08-27
    • 1970-01-01
    相关资源
    最近更新 更多