XOR-SAT — различия между версиями
(→Описание) |
(→Решение XOR-SAT задачи методом Гаусса) |
||
Строка 12: | Строка 12: | ||
==Решение XOR-SAT задачи методом Гаусса== | ==Решение XOR-SAT задачи методом Гаусса== | ||
+ | |||
+ | {| class="wikitable" | ||
+ | |+ | ||
+ | !colspan="2"|Решение XOR-SAT задачи методом Гаусса | ||
+ | |-align="center" | ||
+ | ! | ||
<center> | <center> | ||
{| class="wikitable" align="center" style="color: blue; background-color:#ffffcc;" cellpadding="10" | {| class="wikitable" align="center" style="color: blue; background-color:#ffffcc;" cellpadding="10" | ||
Строка 39: | Строка 45: | ||
! style="background: #ffdddd;" |<tex> \cong 1 </tex> | ! style="background: #ffdddd;" |<tex> \cong 1 </tex> | ||
|} | |} | ||
− | + | </center> | |
+ | !дадддддддддддддддддддддддддд | ||
+ | |-align="center" | ||
+ | ! | ||
+ | <center> | ||
{| class="wikitable" align="center" style="color: blue; background-color:#ffffcc;" cellpadding="10" | {| class="wikitable" align="center" style="color: blue; background-color:#ffffcc;" cellpadding="10" | ||
|+ | |+ | ||
Строка 66: | Строка 76: | ||
! style="background: #ffdddd;" |<tex> \cong 0 </tex> | ! style="background: #ffdddd;" |<tex> \cong 0 </tex> | ||
|} | |} | ||
− | + | </center> | |
+ | |-align="center" | ||
+ | ! | ||
+ | <center> | ||
{| class="wikitable" align="center" style="color: blue; background-color:#ffffcc;" cellpadding="10" | {| class="wikitable" align="center" style="color: blue; background-color:#ffffcc;" cellpadding="10" | ||
|+ | |+ | ||
Строка 75: | Строка 88: | ||
!class="dark"| <tex>c</tex> | !class="dark"| <tex>c</tex> | ||
!class="dark"| <tex>d</tex> | !class="dark"| <tex>d</tex> | ||
− | !class="green" style="font-weight:normal" style="background: #ddffdd;"| | + | !class="green" style="font-weight:normal" style="background: #ddffdd;"| |
|Строка | |Строка | ||
|-align="center" | |-align="center" | ||
Строка 106: | Строка 119: | ||
| <tex>D</tex> | | <tex>D</tex> | ||
|} | |} | ||
− | + | </center> | |
+ | |-align="center" | ||
+ | ! | ||
+ | <center> | ||
{| class="wikitable" align="center" style="color: blue; background-color:#ffffcc;" cellpadding="10" | {| class="wikitable" align="center" style="color: blue; background-color:#ffffcc;" cellpadding="10" | ||
|+ | |+ | ||
Строка 147: | Строка 163: | ||
| <tex>B</tex> | | <tex>B</tex> | ||
|} | |} | ||
− | + | </center> | |
+ | |-align="center" | ||
+ | ! | ||
+ | <center> | ||
{| class="wikitable" align="center" style="color: blue; background-color:#ffffcc;" cellpadding="10" | {| class="wikitable" align="center" style="color: blue; background-color:#ffffcc;" cellpadding="10" | ||
|+ | |+ | ||
Строка 179: | Строка 198: | ||
| <tex>B</tex> | | <tex>B</tex> | ||
|} | |} | ||
− | + | </center> | |
+ | |-align="center" | ||
+ | ! | ||
+ | <center> | ||
{| class="wikitable" align="center" style="color: blue; background-color:#ffffcc;" cellpadding="10" | {| class="wikitable" align="center" style="color: blue; background-color:#ffffcc;" cellpadding="10" | ||
|+ | |+ | ||
Строка 211: | Строка 233: | ||
| <tex>B</tex> | | <tex>B</tex> | ||
|} | |} | ||
− | + | </center> | |
+ | |-align="center" | ||
+ | ! | ||
+ | <center> | ||
{| class="wikitable" align="center" style="color: blue; background-color:#ffffcc;" cellpadding="10" | {| class="wikitable" align="center" style="color: blue; background-color:#ffffcc;" cellpadding="10" | ||
|+ | |+ | ||
Строка 243: | Строка 268: | ||
| <tex>H=B \oplus E</tex> | | <tex>H=B \oplus E</tex> | ||
|} | |} | ||
+ | </center> | ||
+ | |-align="center" | ||
+ | ! | ||
+ | <center> | ||
{| class="wikitable" align="center" style="color: blue; background-color:#ffffcc;" cellpadding="10" | {| class="wikitable" align="center" style="color: blue; background-color:#ffffcc;" cellpadding="10" | ||
|+ | |+ | ||
Строка 283: | Строка 312: | ||
| <tex>H</tex> | | <tex>H</tex> | ||
|} | |} | ||
+ | </center> | ||
+ | |-align="center" | ||
+ | ! | ||
+ | <center> | ||
{| class="wikitable" align="center" style="color: blue; background-color:#ffffcc;" cellpadding="10" | {| class="wikitable" align="center" style="color: blue; background-color:#ffffcc;" cellpadding="10" | ||
|+ | |+ | ||
Строка 315: | Строка 348: | ||
|} | |} | ||
</center> | </center> | ||
− | + | |} | |
Следствие:<tex>R</tex>(<tex>a</tex>,<tex>c</tex>,<tex>d</tex>)<tex>\land</tex> <tex>R</tex>(<tex>b</tex>,<tex>\neg c</tex>,<tex>d</tex>)<tex>\land</tex><tex>R</tex>(<tex>a</tex>,<tex>b</tex>,<tex>\neg d</tex>)<tex>\land</tex><tex>R</tex>(<tex>a</tex>,<tex>\neg b</tex>,<tex>\neg c</tex>)<font color='red'>∧ R(¬a,b,c)</font> | Следствие:<tex>R</tex>(<tex>a</tex>,<tex>c</tex>,<tex>d</tex>)<tex>\land</tex> <tex>R</tex>(<tex>b</tex>,<tex>\neg c</tex>,<tex>d</tex>)<tex>\land</tex><tex>R</tex>(<tex>a</tex>,<tex>b</tex>,<tex>\neg d</tex>)<tex>\land</tex><tex>R</tex>(<tex>a</tex>,<tex>\neg b</tex>,<tex>\neg c</tex>)<font color='red'>∧ R(¬a,b,c)</font> | ||
Версия 01:34, 7 января 2017
Задача: |
КНФ функции, записанной в виде XOR-КНФ, таким образом, чтобы результат данной функции был равен . | (XOR-satisfiability) выполнимость функции — задача распределения аргументов в булевой
Содержание
Описание
Одним из особых случаев [1]
является класс задач, где каждый конъюнкт содержит операции (т. е. исключающее или), а не (обычные) операторы.Формально, обобщенная КНФ с тернарным булевым оператором работает только если или переменные дают в своих аргументах. Конъюнкты, имеющие более переменных могут быть преобразованы в сочетании с формулой преобразования с сохранением выполнимости булевой функции, т. е. - может быть снижена до - -
Это задача Р-класса, так как - формулу можно рассматривать как систему линейных уравнений по модулю , которая, в свою очередь, может быть решена за методом Гаусса [2].Такое представление возможно на основе связи между Булевой алгеброй и Булевым кольцом [3] и том факте, что арифметика по модулю образует конечное поле [4].
Решение XOR-SAT задачи методом Гаусса
Решение XOR-SAT задачи методом Гаусса | ||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
дадддддддддддддддддддддддддд | |||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||
|
Следствие:
( , , ) ( , , ) ( , , ) ( , , )∧ R(¬a,b,c)Вычислительная сложность
Поскольку
Как следствие, для каждой КНФ-формулы, можно решить - - -задачу и на основании результатов сделать вывод, что либо - задача решаема или, что - - - -задача нерешаема.
При условии, что - и -классы не равны, ни -, ни Хорн-, ни - не являются задачи NP-класса, в отличии от .
См. также
Примечания
- ↑ 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.