Теория алгоритмов. Зюзысов В.М. - 69 стр.

UptoLike

Составители: 

Сводимость за полиномиальное время
Говорят, что язык L
1
сводится за полиномиальное время к языку L
2
(запись: L
1
P
L
2
), если
существует такая функция f: {0, 1}
*
{0, 1}
*
, вычислимая за полиномиальное время, что
для любого x{0, 1}
*
,
x L
1
f(x) L
2
.
Функцию f называют сводящей функцией, а полиномиальный алгоритм F, вычисляющий
функцию f, – сводящим алгоритмом.
Теорема 40. Если язык L
1
{0, 1}
*
сводится за полиномиальное время к языку
L
2
{0, 1}
*
и L
2
P, то L
1
P.
Доказательство. Пусть A
2
полиномиальный алгоритм, распознающий язык L
2
, а
F полиномиальный алгоритм, сводящий язык L
1
к языку L
2
. Построим алгоритм A
1
,
который будет за полиномиальное время разрешать язык L
1
.
Рис. 2 иллюстрирует построение. Получив вход x{0, 1}
*
, алгоритм A
1
(с помощью
алгоритма F) получает f(x) и с помощью алгоритма A
2
проверяет, принадлежит ли слово
f(x) языку L
2
. Результат работы алгоритма A
2
на слове f(x) и выдается алгоритмом A
1
в
качестве ответа.
Определение полиномиальной сводимости гарантирует, что алгоритм A
1
дает
правильный ответ; он полиномиален, поскольку полиномиальны алгоритмы F и A
1
.
F
A
2
f(x)
f(x)
L
2
?
A
1
x
f(x) L
1
?
Рис. 2. Принадлежность слова x к языку L
1
можно проверить, использовав сводящий
алгоритм F и алгоритм A
2
, разрешающий язык L
2
.
Понятие сводимости позволяет придать точный смысл утверждению о том, что один язык
не менее труден, чем другой (с точностью до полинома). Запись L
1
P
L
2
можно
интерпретировать так: сложность языка L
1
не более чем полиномиально превосходит
сложность языка L
2
. Наиболее трудны в этом смысле NP-полные задачи.
NP-полнота
Язык L {0, 1}
*
называется NP-полным, если
1) L NP;
2) L
P
L для любого L
NP.
Класс NP-полных языков будем обозначать NPC.
Основное свойство NP-полных языков состоит в следующем.
Теорема 41. Если некоторая NP-полная задача разрешима за полиномиальное
время, то P = NP. Другими словами, если в классе NP существует задача, не разрешимая
за полиномиальное время, то все NP-полные задачи таковы.
Доказательство. Пусть L
NP-полный язык, который одновременно оказался
разрешимым за полиномиальное время (LP и LNPC). Тогда для любого языка L
по
свойству 2 определения NP-полного языка имеем L
P
L. Следовательно, L
P (теорема
40), и первое утверждение теоремы доказано.
Второе утверждение теоремы является переформулировкой первого.