XOR-SAT — различия между версиями
(→Пример) |
м (→Вычислительная сложность) |
||
| Строка 340: | Строка 340: | ||
==Вычислительная сложность== | ==Вычислительная сложность== | ||
[[Файл:Булева выполнимость.png|400px|thumb|down|Формула с <tex>2</tex>-мя дизъюнктами может быть неудовлетворена(красный), <tex>3</tex>-<tex>\mathrm {SAT}</tex>(зелёный), <tex>\mathrm {XOR}</tex>-<tex>3</tex>-<tex>\mathrm {SAT}</tex>(синий), или/и <tex>1</tex>-<tex>\mathrm {in}</tex>-<tex>3</tex>-<tex>\mathrm {SAT}</tex>, в зависимости от количества переменных со значением <tex> \mathtt {true}</tex> в <tex>1</tex>-м (горизонтальном) и втором (вертикальном) конъюнкте.]] | [[Файл:Булева выполнимость.png|400px|thumb|down|Формула с <tex>2</tex>-мя дизъюнктами может быть неудовлетворена(красный), <tex>3</tex>-<tex>\mathrm {SAT}</tex>(зелёный), <tex>\mathrm {XOR}</tex>-<tex>3</tex>-<tex>\mathrm {SAT}</tex>(синий), или/и <tex>1</tex>-<tex>\mathrm {in}</tex>-<tex>3</tex>-<tex>\mathrm {SAT}</tex>, в зависимости от количества переменных со значением <tex> \mathtt {true}</tex> в <tex>1</tex>-м (горизонтальном) и втором (вертикальном) конъюнкте.]] | ||
| − | Поскольку <tex>a \oplus b \oplus c</tex> принимает значение <tex> \mathtt {true}</tex>, если и только если <tex>1</tex> из <tex>3</tex> переменных <tex>\{a,\ b,\ c\}</tex> принимает значение <tex> \mathtt {true}</tex>, каждое решение в <tex>1</tex>-<tex>\mathrm {in}</tex>-<tex>3</tex>-<tex>\mathrm {SAT}</tex> задачи для данной КНФ-формулы является также решением <tex>\mathrm {XOR}</tex>-<tex>3</tex>-<tex>\mathrm {SAT}</tex> задачи, и, в свою очередь,обратное также верно.<br> | + | Поскольку <tex>a \oplus b \oplus c</tex> принимает значение <tex> \mathtt {true}</tex>, если и только если <tex>1</tex> из <tex>3</tex> переменных <tex>\{a,\ b,\ c\}</tex> принимает значение <tex> \mathtt {true}</tex>, каждое решение в <tex>1</tex>-<tex>\mathrm {in}</tex>-<tex>3</tex>-<tex>\mathrm {SAT}</tex> задачи для данной КНФ-формулы является также решением <tex>\mathrm {XOR}</tex>-<tex>3</tex>-<tex>\mathrm {SAT}</tex> задачи, и, в свою очередь, обратное также верно.<br> |
Как следствие, для каждой КНФ-формулы, можно решить <tex>\mathrm {XOR}</tex>-<tex>3</tex>-<tex>\mathrm {SAT}</tex>-задачу и на основании результатов сделать вывод, что либо <tex>3</tex>-<tex>\mathrm {SAT}</tex> задача решаема или, что <tex>1</tex>-<tex>\mathrm {in}</tex>-<tex>3</tex>-<tex>\mathrm {SAT}</tex>-задача нерешаема.<br> | Как следствие, для каждой КНФ-формулы, можно решить <tex>\mathrm {XOR}</tex>-<tex>3</tex>-<tex>\mathrm {SAT}</tex>-задачу и на основании результатов сделать вывод, что либо <tex>3</tex>-<tex>\mathrm {SAT}</tex> задача решаема или, что <tex>1</tex>-<tex>\mathrm {in}</tex>-<tex>3</tex>-<tex>\mathrm {SAT}</tex>-задача нерешаема.<br> | ||
При условии, что <tex>\mathrm {P}</tex>- и <tex>\mathrm {NP}</tex>-классы не равны, ни <tex>2</tex>-, ни Хорн-, ни <tex>\mathrm {XOR}</tex>-<tex>\mathrm {SAT}</tex> не являются задачи [[Класс NP|<tex>\mathrm {NP}</tex>-класса]], в отличии от <tex>\mathrm {SAT}</tex>. | При условии, что <tex>\mathrm {P}</tex>- и <tex>\mathrm {NP}</tex>-классы не равны, ни <tex>2</tex>-, ни Хорн-, ни <tex>\mathrm {XOR}</tex>-<tex>\mathrm {SAT}</tex> не являются задачи [[Класс NP|<tex>\mathrm {NP}</tex>-класса]], в отличии от <tex>\mathrm {SAT}</tex>. | ||
Версия 19:38, 7 января 2017
| Задача: |
| (XOR-satisfiability) выполнимость функции — задача распределения аргументов в булевой КНФ функции, записанной в виде XOR-КНФ, таким образом, чтобы результат данной функции был равен . |
Содержание
Описание
Одним из особых случаев является класс задач, где каждый конъюнкт содержит операции (т. е. исключающее или), а не (обычные) операторы.Формально, обобщенная КНФ с тернарным булевым оператором работает только если или переменные дают в своих аргументах. Конъюнкты, имеющие более переменных могут быть преобразованы в сочетании с формулой преобразования с сохранением выполнимости булевой функции, т. е. - может быть снижена до --[1]
Это задача -класса, так как - формулу можно рассматривать как систему линейных уравнений по модулю , которая, в свою очередь, может быть решена за методом Гаусса [2].Такое представление возможно на основе связи между Булевой алгеброй и Булевым кольцом [3] и том факте, что арифметика по модулю образует конечное поле [4].
Пример решения XORSAT
Пример
Красные пункты могут быть добавлены для возможности представления КНФ-функции в виде -.
| Решение XOR-SAT задачи методом Гаусса | |||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
(«» означает «», «» означает «»)
Каждый конъюнкт ведет к одному уравнению. | ||||||||||||||||||||||||||||||||||||
|
Используя свойства Булевых колец
(, ), | ||||||||||||||||||||||||||||||||||||
|
Составим матрицу по следующему правилу:
Если переменная присутствовала в данном конъюнкте | ||||||||||||||||||||||||||||||||||||
|
Поменяем местами строки , чтобы упростить получение верхней треугольной матрицы. | ||||||||||||||||||||||||||||||||||||
|
|
Т.к. операция даёт при одинаковых аргументах,
применим её для строк и , | ||||||||||||||||||||||||||||||||||||
|
|
Теперь применим для строк и , чтобы получить в -м и -м столбцах. | ||||||||||||||||||||||||||||||||||||
|
Чтобы получить основную диагональную матрицу, сделаем и , | ||||||||||||||||||||||||||||||||||||
|
|
Осталось сделать и , потому что они отличаются в -м и -м столбцах. | ||||||||||||||||||||||||||||||||||||
Решение
Если красный пункт присутствует: Решений нет
Иначе:
Вычислительная сложность
Поскольку принимает значение , если и только если из переменных принимает значение , каждое решение в --- задачи для данной КНФ-формулы является также решением -- задачи, и, в свою очередь, обратное также верно.
Как следствие, для каждой КНФ-формулы, можно решить ---задачу и на основании результатов сделать вывод, что либо - задача решаема или, что ----задача нерешаема.
При условии, что - и -классы не равны, ни -, ни Хорн-, ни - не являются задачи -класса, в отличии от .
См. также
Примечания
- ↑ Alfred V. Aho; John E. Hopcroft; Jeffrey D. Ullman.The Design and Analysis of Computer Algorithms. Addison-Wesley.; здесь: Thm.10.4, 1974.
- ↑ Метод Гаусса
- ↑ Связь между Булевой алгеброй и Булевым кольцом
- ↑ Конечное поле
Источники информации
- Википедия — Boolean satisfiability problem
- Cook, Stephen A.Proceedings of the 3rd Annual ACM Symposium on Theory of Computing: 151–158, 1971.
