XOR-SAT — различия между версиями

Материал из Викиконспекты
Перейти к: навигация, поиск
(Описание)
(Решение XOR-SAT задачи методом Гаусса)
Строка 12: Строка 12:
  
 
==Решение XOR-SAT задачи методом Гаусса==
 
==Решение XOR-SAT задачи методом Гаусса==
 +
<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"
 
|+
 
|+
Строка 38: Строка 39:
 
! style="background: #ffdddd;" |<tex> \cong 1 </tex>
 
! style="background: #ffdddd;" |<tex> \cong 1 </tex>
 
|}
 
|}
 +
</center>
  
 
==Вычислительная сложность==
 
==Вычислительная сложность==

Версия 00:01, 5 января 2017

Задача:
[math]\mathrm {XORSAT}[/math] (XOR-satisfiability) выполнимость функции — задача распределения аргументов в булевой КНФ функции, записанной в виде XOR-КНФ, таким образом, чтобы результат данной функции был равен [math] 1 [/math].


Описание

Одним из особых случаев [math]\mathrm {SAT}[/math] является класс задач, где каждый конъюнкт содержит операции [math]\oplus[/math] (т. е. исключающее или), а не (обычные) [math]\lor[/math] операторы.(Формально, обобщенная КНФ с тернарным булевым оператором R работает только если 1 или 3 переменные дают [math]\mathrm {TRUE}[/math] в своих аргументах. Конъюнкты,имеющие более 3 переменных могут быть преобразованы в сочетании с формулой преобразования с сохранением выполнимости булевой функции(ссылка на книгу ниже), т. е. [math]\mathrm {XOR}[/math]-[math]\mathrm {SAT}[/math] может быть снижена до [math]\mathrm {XOR}[/math]-[math]\mathrm {3}[/math]-[math]\mathrm {SAT}[/math])[1]


Это задача Р-класса,так как [math]\mathrm {XOR}[/math]-[math]\mathrm {SAT}[/math] формулу можно рассматривать как систему линейных уравнений по модулю 2,которая ,в свою очередь, может быть решена за [math]O(n^3)[/math] методом Гаусса[2].Такое представление возможно на основе связи между Булевой алгеброй и Булевым кольцом [3] и том факте,что арифметика по модулю 2 образует конечное поле [4].

Решение XOR-SAT задачи методом Гаусса

Система уравнений
("[math]1[/math]" означает «истинно», "[math]0[/math]" означает «ложно»)

Каждый конъюнкт ведет к одному уравнению.

Переменные Значения
[math] a [/math] [math]\oplus[/math] [math] c [/math] [math]\oplus[/math] [math] d [/math] [math]=1[/math]
[math] b [/math] [math]\oplus[/math] [math]\neg c [/math] [math]\oplus[/math] [math] d [/math] [math]=1[/math]
[math] a [/math] [math]\oplus[/math] [math] b [/math] [math]\oplus[/math] [math]\neg d [/math] [math]=1[/math]
[math] \neg a [/math] [math]\oplus[/math] [math] \neg b [/math] [math]\oplus[/math] [math]\neg c [/math] [math]=1[/math]
[math] \neg a [/math] [math]\oplus[/math] [math] b [/math] [math]\oplus[/math] [math] c [/math] [math] \cong 1 [/math]

Вычислительная сложность

Формула с 2-мя дизъюнктами может быть неудовлетворена(красный),[math]\mathrm {3-SAT}[/math](зелёный),[math]\mathrm {XOR-3-SAT}[/math](синий) ,ИЛИ/И [math]\mathrm {1-in-3-SAT}[/math], в зависимости от количества переменных со значением TRUE в 1-м (горизонтальном) и втором (вертикальном) конъюнкте.

Поскольку [math]\mathrm {a}[/math] [math]\mathrm {XOR}[/math] [math]\mathrm {b}[/math] [math]\mathrm {XOR}[/math] [math]\mathrm {c}[/math] принимает значение [math]\mathrm {TRUE}[/math],если и только если 1 из 3 переменных {a,b,c} принимает значение [math]\mathrm {TRUE}[/math] ,каждое решение в [math]\mathrm {1-in-3-SAT}[/math] задачи для данной КНФ-формулы является также решением [math]\mathrm {XOR-3-SAT}[/math] задачи, и ,в свою очередь,обратное также верно. Как следствие, для каждой КНФ-формулы, можно решить [math]\mathrm {XOR}[/math]-[math]\mathrm {3}[/math]-[math]\mathrm {SAT}[/math] -задачу и на основании результатов сделать вывод, что либо [math]\mathrm {3-SAT-задача}[/math] решаема или, что [math]\mathrm {1-in-3-SAT-задача}[/math] нерешаема. При условии ,что P- и NP-классы не равны,ни 2-,ни Хорн-,ни [math]\mathrm {XOR-SAT}[/math] не являются задачи NP-класса,в отличии от SAT.

См. также

Примечания

Источники информации