ВУЗ:
Составители:
язык L1 сводится к языку L2, если существует такая функция f: 0,1
*→0,1*, что для любого x ∈0,1* свойства x ∈ L1 и f(х) ∈ L2 эквивалентны.
Функция f называется сводящей функцией, а алгоритм, вычисляющий функцию
f, – сводящим алгоритмом. Если функция f вычислима за полиномиальное вре-
мя, то говорят, что язык L1 сводится к языку L2 за полиномиальное время и
используют запись: L1 ≤ р L2. Сводящая функция переводит любое слово x ∈
L1 в слово f(х) ∈ L2, а слово х ∉ L1 – в слово f(х) ∉ L2. Поэтому по ответу на
вопрос: «f(х) ∈ 2?» мы получаем ответ на вопрос «х ∈ L1?». Справедливо
утверждение: Если языки L1, L2 ⊂ 0,1*, и L1 ≤ р L2, то из L2 ∈ Р следует,
что L1∈ Р. При этом запись L1 ≤ р L2 можно интерпретировать так, что слож-
ность языка L1 не более чем полиномиально превосходит сложность языка L2.
Основное определение Язык L1⊂ 0, 1* называется NP – полным, если
выполняются условия:
1)
L1∈ NP;
2)
для любого L2 ∈ NP выполняется отношение L2 ≤ р L1.
Язык L1⊂ 0,1* называется NP – трудным, если выполнено условие 2), а
условие 1) может выполняться или не выполняться.
Основная теорема Если некоторая NP – полная задача разрешима за по-
линомиальное время, то Р = NP. Иначе говоря, если в классе NP есть задача, не
разрешимая за полиномиальное время, то все NP – полные задачи таковы.
Доказательство Если некоторый язык L1 является NP – полным и в то же
время разрешимым за полиномиальное время, то для любого языка L2 ∈ NP из
свойства 2) основного определения следует, что L2 ≤
р
L1. Последнее означает,
что L2∈Р. Утверждение в первой формулировке доказано. Вторая формулиров-
ка теоремы эквивалентна первой. В соответствии с этой теоремой предположе-
ние о том, что Р ≠ NP означает, что NP – полные задачи не могут быть решены
за полиномиальное время. Пока никто не предъявил полиномиальный алгоритм
для решения NP – полной задачи, и никто не доказал N ≠ NP.
3.6.6 Примеры NP – полных задач
Имеется множество NP – полных задач в различных разделах математи-
ки: логике, графах, алгебре и так далее. Рассмотрим несколько примеров.
1 Задача о выполнимости схемы Дана схема, состоящая из элементов «и»,
«или», «не». Требуется выяснить, является ли эта схема выполнимой. При этом
схема из функциональных элементов с несколькими входами и одним выходом
называется выполнимой, если существует входной булев вектор, для которого
выходной скаляр есть единица. Как уже известно, эта задача сводится к задаче
о выполнимости пропозициональной формулы ϕ ≡ ((х
1
→х
2
) ∨ ((х
1
↔ х
3
) ∨ х
4
)) ∧ х
2
имеет выполняющий набор (х
1
, х
2
, х
3
, х
4
) = (0, 0, 1, 1). (проверьте!) Вы-
полнимость можно проверить, перебрав все наборы значений переменных (для
формулы с n переменными их 2
n
). В данном случае достаточно проверку прове-
сти для представленного образца. Переборный алгоритм как видно, не является
язык L1 сводится к языку L2, если существует такая функция f: 0,1
*→0,1*, что для любого x ∈0,1* свойства x ∈ L1 и f(х) ∈ L2 эквивалентны.
Функция f называется сводящей функцией, а алгоритм, вычисляющий функцию
f, – сводящим алгоритмом. Если функция f вычислима за полиномиальное вре-
мя, то говорят, что язык L1 сводится к языку L2 за полиномиальное время и
используют запись: L1 ≤ р L2. Сводящая функция переводит любое слово x ∈
L1 в слово f(х) ∈ L2, а слово х ∉ L1 – в слово f(х) ∉ L2. Поэтому по ответу на
вопрос: «f(х) ∈ 2?» мы получаем ответ на вопрос «х ∈ L1?». Справедливо
утверждение: Если языки L1, L2 ⊂ 0,1*, и L1 ≤ р L2, то из L2 ∈ Р следует,
что L1∈ Р. При этом запись L1 ≤ р L2 можно интерпретировать так, что слож-
ность языка L1 не более чем полиномиально превосходит сложность языка L2.
Основное определение Язык L1⊂ 0, 1* называется NP – полным, если
выполняются условия:
1) L1∈ NP;
2) для любого L2 ∈ NP выполняется отношение L2 ≤ р L1.
Язык L1⊂ 0,1* называется NP – трудным, если выполнено условие 2), а
условие 1) может выполняться или не выполняться.
Основная теорема Если некоторая NP – полная задача разрешима за по-
линомиальное время, то Р = NP. Иначе говоря, если в классе NP есть задача, не
разрешимая за полиномиальное время, то все NP – полные задачи таковы.
Доказательство Если некоторый язык L1 является NP – полным и в то же
время разрешимым за полиномиальное время, то для любого языка L2 ∈ NP из
свойства 2) основного определения следует, что L2 ≤р L1. Последнее означает,
что L2∈Р. Утверждение в первой формулировке доказано. Вторая формулиров-
ка теоремы эквивалентна первой. В соответствии с этой теоремой предположе-
ние о том, что Р ≠ NP означает, что NP – полные задачи не могут быть решены
за полиномиальное время. Пока никто не предъявил полиномиальный алгоритм
для решения NP – полной задачи, и никто не доказал N ≠ NP.
3.6.6 Примеры NP – полных задач
Имеется множество NP – полных задач в различных разделах математи-
ки: логике, графах, алгебре и так далее. Рассмотрим несколько примеров.
1 Задача о выполнимости схемы Дана схема, состоящая из элементов «и»,
«или», «не». Требуется выяснить, является ли эта схема выполнимой. При этом
схема из функциональных элементов с несколькими входами и одним выходом
называется выполнимой, если существует входной булев вектор, для которого
выходной скаляр есть единица. Как уже известно, эта задача сводится к задаче
о выполнимости пропозициональной формулы ϕ ≡ ((х1→х2) ∨ ((х1 ↔ х3) ∨ х4
)) ∧ х2 имеет выполняющий набор (х1, х2, х3, х4) = (0, 0, 1, 1). (проверьте!) Вы-
полнимость можно проверить, перебрав все наборы значений переменных (для
формулы с n переменными их 2n). В данном случае достаточно проверку прове-
сти для представленного образца. Переборный алгоритм как видно, не является
Страницы
- « первая
- ‹ предыдущая
- …
- 71
- 72
- 73
- 74
- 75
- …
- следующая ›
- последняя »
