Изменения

Перейти к: навигация, поиск

Обсуждение:Заглавная страница

2657 байт убрано, 00:05, 19 ноября 2015
Данные изменения здесь неуместны
Что-то тут не так. Мне кстати последний вариант больше нравится.
 
== 2-SAT Выполнимость ==
 
Рассмотрим функцию, записанную в виде 2-КНФ (КНФ Крома). <br>
2-SAT выполнимость данной функции - эта задача распределения аргументов таким образом, чтобы результат данной функции был равен 1.
 
 
== Алгоритм Решения ==
 
 
Рассмотрим любой дизъюнкт функции: (a || b) <br>
Несложно заметить, что это равнозначно записи !a => b и !b => a <br>
 
Построим ориентированный граф, где вершинами будут аргументы и их отрицание, а ребрами будут ребра вида: !a => b и !b => a для каждого дизъюнкта функции (a || b) <br>
 
Для того, чтобы данная задача 2-SAT имела решение, необходимо и достаточно, чтобы для любой переменной x из вершины x нельзя достичь !x и из вершины !x нельзя достичь x одновременно. (!x => x && x => !x)
 
 
== Доказательство ==
 
Пусть 2-SAT имеет решение. <br>
Докажем, что не может быть такого, чтобы для любой переменной x из вершины x можно достичь !x и из вершины !x можно достичь x одновременно. (!x => x && x => !x) <br>
Тогда чтобы из !x достичь x (!x => x) x было верным, x должен быть равен 1. С другой стороны для того, чтобы из x достичь !x (!x => x) было верным, x должен быть равен 0. Отсюда следует противоречие. <br> <br>
 
Пусть для любой переменной x из вершины x нельзя достичь !x и из вершины !x нельзя достичь x одновременно. <br>
Докажем, что этого достаточно, чтобы 2-SAT имело решение. <br>
Пусть из !x можно достичь x, но из вершины x нельзя достичь !x. Докажем, что из x не достижимо такой y, что из y достижимо !y. (т.е. x => y => !y. (x = 1, y = 0)). <br>
Если из x => y, то (!x || y), отсюда следует (!y => !x). Тогда x => y => !y => !x. Следовательно x => !x. Противоречие.

Навигация