30
Теория сложности вычислений Краткая экскурсия Адигеев М.Г. Ростов-на-Дону, 28.05.2011

Теория сложности вычисленийit.mmcs.sfedu.ru/docs/ITCS-2011/6-complexity.pdfO NP-полнота. Класс NPC. O Есть ли NP-полные задачи?

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Теория сложности вычисленийit.mmcs.sfedu.ru/docs/ITCS-2011/6-complexity.pdfO NP-полнота. Класс NPC. O Есть ли NP-полные задачи?

Теория сложности вычислений

Краткая экскурсия

Адигеев М.Г. Ростов-на-Дону, 28.05.2011

Page 2: Теория сложности вычисленийit.mmcs.sfedu.ru/docs/ITCS-2011/6-complexity.pdfO NP-полнота. Класс NPC. O Есть ли NP-полные задачи?

Маршрут

O Классы сложности

O NP, сводимость и полнота

O Приближенные алгоритмы

O PCP

O Основания математической

криптографии

2

Page 3: Теория сложности вычисленийit.mmcs.sfedu.ru/docs/ITCS-2011/6-complexity.pdfO NP-полнота. Класс NPC. O Есть ли NP-полные задачи?

Почему важна сложность?

O Существование алгоритма для задачи –

это ещѐ не всѐ.

O Очень важна сложность алгоритма.

O Сложность = количество ресурсов,

которые необходимы алгоритму для

решения задачи.

O Основные ресурсы: время, память.

3

Page 4: Теория сложности вычисленийit.mmcs.sfedu.ru/docs/ITCS-2011/6-complexity.pdfO NP-полнота. Класс NPC. O Есть ли NP-полные задачи?

Сложность алгоритма

O Пусть x – входные данные для задачи.

O n=|x| - размер входных данных

O Сложность в худшем случае:

O Сложность в среднем:

O T(n)=O(f(n))

4

( ) max{ ( ) :| | }T n T x x n

| |

( ) ( ) ( )x n

T n p x T x

Page 5: Теория сложности вычисленийit.mmcs.sfedu.ru/docs/ITCS-2011/6-complexity.pdfO NP-полнота. Класс NPC. O Есть ли NP-полные задачи?

Эффективные алгоритмы

5

O Эффективными алгоритмами принято

называть алгоритмы, имеющие

полиномиальную временную

сложность.

O Всегда ли полиномиальные по времени

алгоритмы действительно быстры?

Page 6: Теория сложности вычисленийit.mmcs.sfedu.ru/docs/ITCS-2011/6-complexity.pdfO NP-полнота. Класс NPC. O Есть ли NP-полные задачи?

Эффективные алгоритмы

6

n O(n) O(2n)

50 1 сек 1 сек

51 1,02 сек 2 сек

52 1,04 сек 4 сек

60 1,2 сек 17 мин

70 1,4 сек 12 сут

80 1,6 сек 34 года

90 1,8 сек ~35 тыс.лет

Page 7: Теория сложности вычисленийit.mmcs.sfedu.ru/docs/ITCS-2011/6-complexity.pdfO NP-полнота. Класс NPC. O Есть ли NP-полные задачи?

Сложность задачи

7

O Сложность задачи = сложность самого быстрого алгоритма, решающего задачу

O ?

O Теорема Блюма (Blum) об ускорении:

O Определение. Функция g:N N называется сверхлинейной, если выполняется: n g(n)>n.

O Теорема. Для любой вычислимой сверхлинейной функции g существует разрешимое множество S такое, что если S разрешимо за время T(n) для некоторого T:N N, то оно разрешимо и за время T (n): g(T (n)) < T(n).

Page 8: Теория сложности вычисленийit.mmcs.sfedu.ru/docs/ITCS-2011/6-complexity.pdfO NP-полнота. Класс NPC. O Есть ли NP-полные задачи?

Классы сложности

8

O ОПРЕДЕЛЕНИЕ. Для функции f:N N

определим класс сложности C(f(n)) как

множество всех задач, для которых

существует хотя бы один алгоритм,

сложность которого не превышает O(f(n)) .

O DTIME(f(n))

O

O

0

( )k

k

P PTIME DTIME n

0

(2 )kn

k

EXPTIME DTIME

Page 9: Теория сложности вычисленийit.mmcs.sfedu.ru/docs/ITCS-2011/6-complexity.pdfO NP-полнота. Класс NPC. O Есть ли NP-полные задачи?

А есть ли классы?

9

O DTIME(n) = DTIME (2n) = DTIME (n+1)

O Теорема об иерархии.

O Функции, конструируемые по времени.

O Теорема: Пусть f и g — две вычислимые

конструируемые по времени функции, и g(n) =

(f(n) log f(n)). Тогда DTIME(f(n)) DTIME(g(n)).

O Следствие 1: Для любого k выполняется:

DTIME(nk) DTIME(nk+1).

O Следствие 2: P EXPTIME.

Page 10: Теория сложности вычисленийit.mmcs.sfedu.ru/docs/ITCS-2011/6-complexity.pdfO NP-полнота. Класс NPC. O Есть ли NP-полные задачи?

Класс NP

10

O Недетерминированные машины Тьюринга

O NTIME(f(n))

O

O Определение через ДМТ и сертификаты.

O ДМТ получает на входе x и сертификат y.

Для x L y: |y|<poly(|x|), при котором М

допускает (x,y).

для x L и y М отвергает пару (x,y).

0

( )k

k

NP NPTIME NTIME n

Page 11: Теория сложности вычисленийit.mmcs.sfedu.ru/docs/ITCS-2011/6-complexity.pdfO NP-полнота. Класс NPC. O Есть ли NP-полные задачи?

P =? NP

11

O Есть ли принципиальное

различие в сложности между

задачей проверки

доказательства, и задачей поиска

доказательства ???

O «Задача тысячелетия».

O Премия: $1M.

O Осталось всего 6 шт!!!

Page 12: Теория сложности вычисленийit.mmcs.sfedu.ru/docs/ITCS-2011/6-complexity.pdfO NP-полнота. Класс NPC. O Есть ли NP-полные задачи?

Сводимость

12

O Две задачи: L1 и L2

O Два алгоритма (машины Тьюринга)

O Обращение к оракулу

Page 13: Теория сложности вычисленийit.mmcs.sfedu.ru/docs/ITCS-2011/6-complexity.pdfO NP-полнота. Класс NPC. O Есть ли NP-полные задачи?

Сводимость

13

O Сводимость по Куку (Cook)

O Сводимость по Карпу (Karp)

O Сводимость по Левину

O NP-полнота. Класс NPC.

O Есть ли NP-полные задачи?

Page 14: Теория сложности вычисленийit.mmcs.sfedu.ru/docs/ITCS-2011/6-complexity.pdfO NP-полнота. Класс NPC. O Есть ли NP-полные задачи?

Свойства NPC

14

O Задача SAT (выполнимость булевой

формулы)

O Теорема: SAT NPC

O Если P и NPC пересекаются, то P=NP

O При условии P NP, в NP существуют

задачи, не принадлежащие ни P, ни NPC

Page 15: Теория сложности вычисленийit.mmcs.sfedu.ru/docs/ITCS-2011/6-complexity.pdfO NP-полнота. Класс NPC. O Есть ли NP-полные задачи?

Приближённые алгоритмы

15

O Эвристические

O С гарантированной оценкой точности

O Дана оптимизационная задача:

f(x) min для x X. Пусть x* -

оптимальное решение. Алгоритм

является -приближѐнным ( >0), если

для любого экземпляра задачи

алгоритм находит допустимое решение

x , такое что:

( ')1

( *)

f x

f x

Page 16: Теория сложности вычисленийit.mmcs.sfedu.ru/docs/ITCS-2011/6-complexity.pdfO NP-полнота. Класс NPC. O Есть ли NP-полные задачи?

Приближённые алгоритмы

16

O Возможно, = (n)

O Если =O(1), то задача принадлежит APX

O Задача MAX-SAT – оптимизационный вариант задачи

SAT.

O MAX-3SAT: формулы в 3-КНФ

O Граница: = 1/8

O Метрическая задача коммивояжѐра.

O Есть алгоритм с = ½.

O Не существует алгоритмов с = 1/4708

Page 17: Теория сложности вычисленийit.mmcs.sfedu.ru/docs/ITCS-2011/6-complexity.pdfO NP-полнота. Класс NPC. O Есть ли NP-полные задачи?

Задача коммивояжера

17

Page 18: Теория сложности вычисленийit.mmcs.sfedu.ru/docs/ITCS-2011/6-complexity.pdfO NP-полнота. Класс NPC. O Есть ли NP-полные задачи?

PCP

18

O Вероятностные алгоритмы. ВМТ

O онлайновые

O офлайновые

O Система вероятностной проверки

доказательств (PCP-система): ВМТ М с

оракулом

O Полнота: x L оракул П(x): Pr[MП(x)(x)=1] = 1.

O Корректность: x L и П: Pr[MП(x) =1] ≤ 1/2.

Page 19: Теория сложности вычисленийit.mmcs.sfedu.ru/docs/ITCS-2011/6-complexity.pdfO NP-полнота. Класс NPC. O Есть ли NP-полные задачи?

PCP

19

O Класс PCP[r(n),q(n)]

O «случайность»: r(.) – общий размер (в битах)

случайного входа у М.

O «подсказки»: q(.) – общее количество битов,

полученных от оракула.

O P = PCP[0, 0] = PCP[O(log n),0] = PCP [0, O(log n)]

O NP = PCP[0, poly(n)]

O PCP-theorem: NP = PCP[O(log n),3]

Page 20: Теория сложности вычисленийit.mmcs.sfedu.ru/docs/ITCS-2011/6-complexity.pdfO NP-полнота. Класс NPC. O Есть ли NP-полные задачи?

Математическая криптография

20

O Криптосистемы с открытым ключом

O Шифрование: (X, Y, E, D, K), K = (Kp, Ks)

O Стойкость криптосистемы…

O «Задача должна быть вычислительно

простой для законных пользователей и

вычислительно сложной для противника»

O Но требования к вычислительной

сложности – более жѐсткие

Page 21: Теория сложности вычисленийit.mmcs.sfedu.ru/docs/ITCS-2011/6-complexity.pdfO NP-полнота. Класс NPC. O Есть ли NP-полные задачи?

Стойкость

21

O Недостаточно сложности «в худшем

случае» или «в среднем».

O Надо учитывать как ресурсы противника,

так и вероятность успеха.

O x X, k=(kp,ks) K, ВМТ M, p(.)

1 1Pr[ ( ( , ), ) ( , ) & ]

2 (| |)s p iM E x k k i x

p x

Page 22: Теория сложности вычисленийit.mmcs.sfedu.ru/docs/ITCS-2011/6-complexity.pdfO NP-полнота. Класс NPC. O Есть ли NP-полные задачи?

Стойкость

22

O Существуют ли стойкие криптосистемы?

O Необходимое условие: P NP

O Но этого не достаточно

O Необходимо также существование

односторонних функций

Page 23: Теория сложности вычисленийit.mmcs.sfedu.ru/docs/ITCS-2011/6-complexity.pdfO NP-полнота. Класс NPC. O Есть ли NP-полные задачи?

Односторонние функции

23

O Пусть f:{0,1}* {0,1}* - честная функция,

такая что:

O ДМТ, вычисляющая f за полиномиальное

время;

O Для полиномиальной ВМТ M, p(.)

Pr[f(M(f(x)))=f(x)] < 1/p(|x|).

O Функция f честная: полином q: для всех x

выполняется: q(|f(x)|) > |x|.

Page 24: Теория сложности вычисленийit.mmcs.sfedu.ru/docs/ITCS-2011/6-complexity.pdfO NP-полнота. Класс NPC. O Есть ли NP-полные задачи?

Трудные предикаты

24

O Пусть f:{0,1}* {0,1}* - вычислимая

функция. Полиномиально вычислимая

функция b:{0,1}* {0,1} называется

трудным предикатом для f, если для

полиномиальной ВМТ M, p(.)

выполняется:

Pr[M(f(x))=b(x)] < 1/2 + 1/p(|x|).

Page 25: Теория сложности вычисленийit.mmcs.sfedu.ru/docs/ITCS-2011/6-complexity.pdfO NP-полнота. Класс NPC. O Есть ли NP-полные задачи?

Подбрасывание монеты

25

O Пусть имеется функция f с трудным

предикатом b.

O Алиса задумывает x {0,1}*. Боб должен будет

угадать b(x).

O Алиса вычисляет y=f(x) и пересылает Бобу.

O Боб выбирает z {0,1} и сообщает Алисе.

O Алиса сообщает Бобу задуманное x и они вместе

проверяют, кто выиграл: b(x) ?= z.

И всегда можно проверить, что Алиса не

жульничает: f(x) = y.

Page 26: Теория сложности вычисленийit.mmcs.sfedu.ru/docs/ITCS-2011/6-complexity.pdfO NP-полнота. Класс NPC. O Есть ли NP-полные задачи?

Псевдослучайные генераторы

26

O Через Un обозначим настоящую случайную битовую

строку длины n.

O Определение. Полиномиально вычислимая

функция g:{0,1}* {0,1}*называется

псевдослучайным генератором с удлинением l:N N

(l(n)>n), если для любой полиномиальной ВМТ D,

любого многочлена p(.) и всех достаточно больших

n выполняется:

| Pr[D(Un)=1] – Pr[D(M(Ul(n)))=1] | < 1/p(n).

Page 27: Теория сложности вычисленийit.mmcs.sfedu.ru/docs/ITCS-2011/6-complexity.pdfO NP-полнота. Класс NPC. O Есть ли NP-полные задачи?

ОСФ, ТП и ПСГ

27

O Если существует биективная сохраняющая длину

односторонняя функция, то существует функция f,

обладающая трудным предикатом b.

O Если существует биективная сохраняющая длину

функция с трудным предикатом, то для любой

сверхлинейной функции удлинения существуют

псевдослучайные генераторы.

O Если существуют псевдослучайные генераторы, то

существуют односторонние функции.

O ПСГ существуют тогда и только тогда, когда

существуют ОСФ.

Page 28: Теория сложности вычисленийit.mmcs.sfedu.ru/docs/ITCS-2011/6-complexity.pdfO NP-полнота. Класс NPC. O Есть ли NP-полные задачи?

Интерактивные доказательства

28

O S=(P,V)

O V – полиномиальная ВМТ.

O На P ограничений нет.

O Определение. Пара S=(P,V) называется

системой интерактивного доказательства,

если выполняются условия:

O Полнота: x L: Pr[S(x)=1] = 1.

O Корректность: x L: Pr[S(x)=1] ≤ 1/p(|x|).

Page 29: Теория сложности вычисленийit.mmcs.sfedu.ru/docs/ITCS-2011/6-complexity.pdfO NP-полнота. Класс NPC. O Есть ли NP-полные задачи?

Интерактивные доказательства

29

O Класс IP.

O Теорема: IP=PSPACE

O Интерактивные доказательства с нулевым

разглашением. ZK.

O Теорема: Если существуют односторонние

функции, то ZK=IP

Page 30: Теория сложности вычисленийit.mmcs.sfedu.ru/docs/ITCS-2011/6-complexity.pdfO NP-полнота. Класс NPC. O Есть ли NP-полные задачи?

Рекомендуемые источники

O А.А. Разборов. Краткие лекции по теории сложности вычислений.

http://genesis.mi.ras.ru/~razborov/phasis.ps

http://www.mi.ras.ru/~razborov/lecture.ps

O Н. Н. Кузюрин. Эффективные алгоритмы и сложность вычислений.

http://discopal.ispras.ru/ru.book-advanced-algorithms.htm

O Oded Goldreich. Introduction to Complexity Theory. Lecture Notes. И другие

материалы

http://www.wisdom.weizmann.ac.il/~oded/cc.html

O В.В. Ященко и др. Введение в криптографию.

http://nature.web.ru/db/msg.html?mid=1157083

O Википедия о PCP: http://en.wikipedia.org/wiki/Probabilistically_checkable_proof

O A history of the PCP theorem:

http://www.cs.washington.edu/education/courses/533/05au/pcp-history.pdf.

30