Задача здійсненності булевих формул: відмінності між версіями
[неперевірена версія] | [неперевірена версія] |
Вилучено вміст Додано вміст
Addbot (обговорення | внесок) |
шаблон |
||
Рядок 6:
Згідно з [[Теорема Кука|теоремою Кука]], доведеною [[Кук, Стівен|Стівеном Куком]] в 1971-му році, задача SAT для булевих формул, записаних в [[Кон'юнктивна нормальна форма|кон'юнктивній нормальній формі]], є [[NP- повне завдання|NP- повною]]. Вимога про запис в кон'юнктивній формі є важливою, оскільки, наприклад, завдання SAT для формул, представлених в [[Диз'юнктивна нормальна форма|диз'юнктивній нормальній формі]], тривіально вирішується за лінійний час залежно від розміру запису формули.
== Точне формулювання ==
Щоб чітко сформулювати [[задача розпізнавання|задачу розпізнавання]], необхідно умовитися про алфавіт, за допомогою якого задаються екземпляри мови. Цей алфавіт має бути фіксованим і кінцевим. <!-- виправити!!! -->У своїй книзі [[Хопкрофт, Джон|Хопкрофт]], Мотвані і Ульман пропонують використати наступний алфавіт: {
При використанні такого алфавіту дужки і оператори записуються природним чином, а змінні отримують наступні імена: x1, x10, x11, x100 і
Нехай деяка [[булева формула]], записана в звичайній математичній нотації, мала б довжину <math>N</math> символів. У ній кожне входження кожної змінної було описане хоча б одним символом, отже, всього в цій формулі не більше <math>N</math> змінних. Значить, в запропонованій вище нотації кожна змінна буде записана за допомогою <math>O\left(\log{N}\right)</math> символів. У такому разі, вся формула в новій нотації матиме довжину <math>O\left(N\log{N}\right)</math> символів, тобто довжина рядка зросте в [[многочлен|поліноміальне]] число разів.
Рядок 15:
Наприклад, формула <math>a\wedge\neg(b\vee c)</math> набуде вигляду <math>x1\wedge\neg(x10\vee x11)</math>.
== Обчислювальна складність ==
У 1971-му році в статті [[
У доказі [[Теорема Кука|теореми Кука]] кожна задача з [[Клас складності NP|класу NP]] в явному виді зводиться до SAT. Після появи результатів, Куком була доведена NP-повнота для безлічі інших задач. При цьому найчастіше для доказу NP-повноти деякої задачі наводиться [[поліноміальне зведення]] задачі SAT до цієї задачі, можливо в декілька кроків, тобто з використанням декількох проміжних задач.
== Окремі випадки задачі SAT ==
Цікавими окремими випадками задачі SAT є:
* Задача здійснимості булевих формул в кон'юнктивній нормальній формі (SATCNF)
* Задача здійснимості булевих формул в k-кон'юнктивній нормальній формі (k-SAT)
* Задача здійснимості булевих формул в 2-кон'юнктивній нормальній формі має поліноміальне рішення, тобто належить [[Клас складності P|класу P]].
Рядок 34:
* [http://report.vtsnet.ru (питання зведення 3-SAT до 2-SAT)]
* [http://www.satcompetition.org/ The international SAT Competitions web page]
* [http://www.satlib.org/ SATLIB
* [http://www.satlive.org/ Sat Live]
{{math-stub}}
▲[[Категорія:NP-повні задачі]]
|