Изменения

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

2SAT

1073 байта добавлено, 19:25, 18 января 2016
м
Нет описания правки
{{Задача
|definition = <b>2-SAT <tex>\mathrm 2SAT</tex></b> (2-satisfiability) выполнимость функции — задача распределения аргументов в булевой [[КНФ|КНФ]] функции, записанной в виде [[Специальные_формы_КНФ|2-КНФ (КНФ Крома)]], таким образом, чтобы результат данной функции был равен <tex> 1 </tex>.
}}
Компоненты сильной связности найдем за <tex>O(N + M)</tex>, затем проверим каждую из <tex>N</tex> переменных за <tex>O(N)</tex>. Следовательно асимптотика <tex>O(N + M)</tex>.
== Примеры решения 2-SAT 2SAT ==
=== Первый пример ===
\overline a \to \overline b \wedge
a \to b
</tex>. Построим ориентированный граф со следующими множествами вершинам и ребер:множество вершин <tex> V = \{a, b, c\}, </tex>множество ребер <tex> E = \{(\overline a, b), (\overline b, a), (\overline a, c), (\overline c, a), (b, c), (\overline c, \overline b), (\overline a, \overline b), (a, b)\}</tex>.
Построим граф и рассмотрим Рассмотрим в графе следующие пути:
* <tex> \overline a \to b \to a </tex>
* <tex> \overline a \to \overline b \to a </tex>
* <tex> \overline c \to a </tex>
* <tex> a \to c </tex>
* <tex> \overline a \to b \to c </tex>.
Т.к. <tex> \overline a \to a </tex>, то <tex> a = 1, \overline a = 0 </tex>.
Т.к. <tex> a \to c </tex> и <tex> a = 1 </tex>, то <tex> c = 1, \overline c = 0 </tex>.
Значения <tex> b </tex> может быть любым, т.к. все вершины, из которых можно добраться в <tex> b </tex> имеют значение ноль.
<b> Ответ: </b> <tex> a = 1, b = 0, c = 1 </tex> или <tex> a = 1, b = 1, c = 1 </tex>.
=== Второй пример ===
</tex>
Построим ориентированный граф со следующими множествами вершинам и ребер:множество вершин <tex> V = \{a, b, c\}, </tex>множество ребер <tex> E = \{(a, c), (\overline c, \overline a), (c, \overline a), (a, \overline c), (\overline a, b), (\overline b, a), (b, a), (\overline b, \overline a)\}</tex>. Заметим следующий путь: <tex> a \to c \to \overline a \to b \to a </tex>. Отсюда следует, что <tex> a \to \overline a \to a </tex>. Следовательно по ранее доказанной теореме, у данной функции решений нет.
Отсюда следует, что <texb> a \to \overline a \to a Ответ: </texb>Решений нет.
Следовательно по ранее доказанной теореме, у данной функции решений нет
<b> Ответ: </b> Решений нет== Использование 2SAT ==
Решение 2SAT может потребоваться в следующих задачах:
*латинские квадраты,
*квазигруппы,
*числа Рамсея,
*система Штейнера,
*проектирование протоколов (пример: для сетевых коммуникаций),
*электронная коммерция (Электронные аукционы и автоматизированные брокеры,
*теории кодирования, криптографии,
*проектирование и тестирование лекарств (мед. препаратов).
== Использование 2-SAT Примечания ==
*[https://ru.wikipedia.org/wiki/Латинский_квадрат Латинские квадраты]
*[https://ru.wikipedia.org/wiki/Теорема_Рамсея#.D0.A7.D0.B8.D1.81.D0.BB.D0.B0_.D0.A0.D0.B0.D0.BC.D1.81.D0.B5.D1.8F Числа Рамсея]
*[https://ru.wikipedia.org/wiki/Система_Штейнера Система Штейнера]
*Проектирование протоколов (пример: для сетевых коммуникаций)
*Электронная коммерция (Электронные аукционы и автоматизированные брокеры
*Теории кодирования, криптографии
*Проектирование и тестирование лекарств (мед. препаратов)
== См. также ==
== Источники информации ==
*[http://e-maxx.ru/algo/2_sat MAXimal :: algo :: Задача 2-SAT 2SAT (2-CNF) ]
*[https://en.wikipedia.org/wiki/2-satisfiability 2-satisfiability — Википедия]
24
правки

Навигация