Представление ограничений тральщика в Sat4J/CNF

Я пытаюсь внедрить решатель тральщика с использованием SAT solver (sat4j), и у меня есть простое понимание того, как они работают. Но я не могу понять, как представить x+y+Z+....=2 для мин, так как решатели SAT используют логический ввод. Нечто подобное в таблице ниже:

| а | б | с | д | е |
| f | 2 | г | 3 | ч |
| я | J | к | л | м |

Вы могли бы написать a+b+c+f+g+i+j+k = 2 а также c+d+e+g+h+k+l+m= 3,

1 ответ

Решение

Если по a+b+c+f+g+i+j+k = 2 Вы имеете в виду, что окружающие ячейки содержат ровно две мины, тогда ваши буквы действительно являются булевыми переменными, и это ограничение называется ограничением мощности.

Это поддерживается из коробки Sat4j.

Вы можете найти некоторые советы здесь: https://sat4j.gitbooks.io/case-studies/content/

Другие вопросы по тегам