Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
Теория сложности вычислений
Краткая экскурсия
Адигеев М.Г. Ростов-на-Дону, 28.05.2011
Маршрут
O Классы сложности
O NP, сводимость и полнота
O Приближенные алгоритмы
O PCP
O Основания математической
криптографии
2
Почему важна сложность?
O Существование алгоритма для задачи –
это ещѐ не всѐ.
O Очень важна сложность алгоритма.
O Сложность = количество ресурсов,
которые необходимы алгоритму для
решения задачи.
O Основные ресурсы: время, память.
3
Сложность алгоритма
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
Эффективные алгоритмы
5
O Эффективными алгоритмами принято
называть алгоритмы, имеющие
полиномиальную временную
сложность.
O Всегда ли полиномиальные по времени
алгоритмы действительно быстры?
Эффективные алгоритмы
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 тыс.лет
Сложность задачи
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).
Классы сложности
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
А есть ли классы?
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.
Класс 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
P =? NP
11
O Есть ли принципиальное
различие в сложности между
задачей проверки
доказательства, и задачей поиска
доказательства ???
O «Задача тысячелетия».
O Премия: $1M.
O Осталось всего 6 шт!!!
Сводимость
12
O Две задачи: L1 и L2
O Два алгоритма (машины Тьюринга)
O Обращение к оракулу
Сводимость
13
O Сводимость по Куку (Cook)
O Сводимость по Карпу (Karp)
O Сводимость по Левину
O NP-полнота. Класс NPC.
O Есть ли NP-полные задачи?
Свойства NPC
14
O Задача SAT (выполнимость булевой
формулы)
O Теорема: SAT NPC
O Если P и NPC пересекаются, то P=NP
O При условии P NP, в NP существуют
задачи, не принадлежащие ни P, ни NPC
Приближённые алгоритмы
15
O Эвристические
O С гарантированной оценкой точности
O Дана оптимизационная задача:
f(x) min для x X. Пусть x* -
оптимальное решение. Алгоритм
является -приближѐнным ( >0), если
для любого экземпляра задачи
алгоритм находит допустимое решение
x , такое что:
( ')1
( *)
f x
f x
Приближённые алгоритмы
16
O Возможно, = (n)
O Если =O(1), то задача принадлежит APX
O Задача MAX-SAT – оптимизационный вариант задачи
SAT.
O MAX-3SAT: формулы в 3-КНФ
O Граница: = 1/8
O Метрическая задача коммивояжѐра.
O Есть алгоритм с = ½.
O Не существует алгоритмов с = 1/4708
Задача коммивояжера
17
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.
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]
Математическая криптография
20
O Криптосистемы с открытым ключом
O Шифрование: (X, Y, E, D, K), K = (Kp, Ks)
O Стойкость криптосистемы…
O «Задача должна быть вычислительно
простой для законных пользователей и
вычислительно сложной для противника»
O Но требования к вычислительной
сложности – более жѐсткие
Стойкость
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
Стойкость
22
O Существуют ли стойкие криптосистемы?
O Необходимое условие: P NP
O Но этого не достаточно
O Необходимо также существование
односторонних функций
Односторонние функции
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|.
Трудные предикаты
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|).
Подбрасывание монеты
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.
Псевдослучайные генераторы
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).
ОСФ, ТП и ПСГ
27
O Если существует биективная сохраняющая длину
односторонняя функция, то существует функция f,
обладающая трудным предикатом b.
O Если существует биективная сохраняющая длину
функция с трудным предикатом, то для любой
сверхлинейной функции удлинения существуют
псевдослучайные генераторы.
O Если существуют псевдослучайные генераторы, то
существуют односторонние функции.
O ПСГ существуют тогда и только тогда, когда
существуют ОСФ.
Интерактивные доказательства
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|).
Интерактивные доказательства
29
O Класс IP.
O Теорема: IP=PSPACE
O Интерактивные доказательства с нулевым
разглашением. ZK.
O Теорема: Если существуют односторонние
функции, то ZK=IP
Рекомендуемые источники
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