Определение

Задачи типа SAT (от англ. satisfaction) - это задачи на поиск набора аргументов, удволетворяющих заданной булевой функции, записанной в КНФ. Отдельные ее вариации, в которых в каждом клозе ровно переменных имеют свое название . Стандартная запись:

2-SAT

Описание

Самая популярная разновидность задачи SAT, иначе называемая КФН в форме Крона. Имеет полиномиальное решение за по времени, где n - кол-во задаваемых аргументов функции, а m - кол-во клозов в записи.

Алгоритм

Заметим, что . Тогда давайте сделаем замену всех клозов, используя это преобразование и построим на этом ориентированный граф создавая ребро из u в v, если существут клоз в нашей формуле. Тогда поймем, что наша задача свелась к тому, что мы хотим расставить 0 и 1 в графе так, что у нас нет стрелки из 1 в 0, а также . Утверждение. , где - какой-то цикл в полученном графе. Доказательство. Предположим нашлись и разные по значению, лежащие в одном цикле. Тогда не умаляя общности равен 1, пойдем от него дальше по циклу. Так как стрелка ведет из 1, то она ведет в 1, значит элемент в цикле за тоже 1. Будем продолжать по нему идти, пока не дойдем до , он должын быть и 0 и 1, противоречие. Значит не бывает двух переменных, имеющих разные значения и лежащих в одном цикле. Заметим, что раз у нас каждый элемент в цикле равен либо 0, либо 1, мы можем сжать все циклы в вершины. Алгоритм, делающий это с асимптотикой уже существует, он называется конденсация графа, воспользуемся им. Единственное изменение которое нам нужно сделать, это отследить, что в одном цикле не оказалась вершина и ее отрицание. В таких случаях решения нет. В остальных случаях у нас есть DAG, для которого мы хотим решать аналогичную задачу. Давайте сделаем topsort этого графа и теперь расставим значения 0 и 1 соответственно следующему правило. Правило. Если в получившемся отсортированном массиве имеет номер, меньший номера , то , иначе . Доказательство работы. Разберемся, что может пойти не так. Так как у нас DAG, то у нас нет пути из в напрямую, значит это сломаться не могло. Также из