Your SlideShare is downloading. ×
Михаил Вялый - помогает ли в вычислениях подбрасывание монетки
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Saving this for later?

Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime - even offline.

Text the download link to your phone

Standard text messaging rates apply

Михаил Вялый - помогает ли в вычислениях подбрасывание монетки

1,734
views

Published on


0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,734
On Slideshare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
13
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Помогают ли в вычислениях подбрасывания монетки? М. Вялый Вычислительный центр им. А.А.Дородницына Российской Академии наук малый ШАД, 08.02.2014 М. Вялый (vyalyi@gmail.com) Вычисления и случайность малый ШАД, 08.02.2014 1 / 47
  • 2. О чем пойдет речь 2+3 5 2+3 5 5×2 10 5×2 10 8−2 6 8−2 6 random 0 a×b a×b a+b a+b random a−b a−b a/b М. Вялый (vyalyi@gmail.com) Вычисления и случайность a/b малый ШАД, 08.02.2014 2 / 47
  • 3. Детерминированные алгоритмы Вместо определения Алгоритм — настолько точно определенная инструкция, что она может быть исполнена механически. Основное свойство детерминированных алгоритмов Каждое следующее состояние однозначно определяется текущим состоянием. М. Вялый (vyalyi@gmail.com) Вычисления и случайность малый ШАД, 08.02.2014 3 / 47
  • 4. Детерминированные алгоритмы Вместо определения Алгоритм — настолько точно определенная инструкция, что она может быть исполнена механически. Основное свойство детерминированных алгоритмов Каждое следующее состояние однозначно определяется текущим состоянием. 2+3 5 2+3 5 2+3 5 2+3 5 2+3 5 5×2 10 5×2 10 5×2 10 5×2 10 5×2 10 8−2 6 8−2 6 8−2 6 8−2 6 8−2 6 a×b a+b a×b a+b a×b a+b a×b a+b a×b a+b a−b a/b a−b a/b a−b a/b a−b a/b a−b a/b М. Вялый (vyalyi@gmail.com) Вычисления и случайность малый ШАД, 08.02.2014 3 / 47
  • 5. Вероятностные алгоритмы Подбрасывание монетки Результат с равной вероятностью равен 0 или 1. Разные подбрасывания независимы. М. Вялый (vyalyi@gmail.com) Вычисления и случайность малый ШАД, 08.02.2014 4 / 47
  • 6. Вероятностные алгоритмы Подбрасывание монетки Результат с равной вероятностью равен 0 или 1. Разные подбрасывания независимы. 2+3 5×2 8−2 random a×b 2+3 5 5×2 10 8−2 6 0 2+3 5×2 8−2 random a×b random a−b a/b a−b 2+3 a/b 5 5×2 10 2+3 5 5×2 10 8−2 6 8−2 random 0 random a×b a+b a×b a/b a−b random a−b 5 2+3 5×2 8−2 6 0 a+b random :) a/b 10 6 :) 5 10 8−2 0 a/b a+b random a−b 2+3 6 random 0 a×b 5×2 5 10 a+b 6 random 5 10 a+b 6 random a×b 0 random a+b a×b a/b a−b random a−b 0 a+b random a/b 2+3 5 5×2 10 8−2 random a×b 2+3 5 2+3 5 5×2 10 5×2 10 8−2 6 8−2 0 random 0 0 a×b a+b a×b a/b a−b a−b a/b a+b 2+3 random a−b 5 5×2 10 random a/b 8−2 random a×b 6 0 a+b random a−b М. Вялый (vyalyi@gmail.com) :) 6 random 6 a+b random Вычисления и случайность :( a/b малый ШАД, 08.02.2014 4 / 47
  • 7. Несущественные обобщения 1 У монетки может быть много сторон — исходов. Например, у игральных костей их 6. 2 Вероятности исходов не обязательно равны. Сумма вероятностей всех возможных исходов равна 1. Разные испытания по-прежнему независимы. М. Вялый (vyalyi@gmail.com) Вычисления и случайность малый ШАД, 08.02.2014 5 / 47
  • 8. Несущественные обобщения 1 У монетки может быть много сторон — исходов. Например, у игральных костей их 6. 2 Вероятности исходов не обязательно равны. Сумма вероятностей всех возможных исходов равна 1. Разные испытания по-прежнему независимы. М. Вялый (vyalyi@gmail.com) Вычисления и случайность малый ШАД, 08.02.2014 5 / 47
  • 9. Несущественные обобщения 1 У монетки может быть много сторон — исходов. Например, у игральных костей их 6. 2 Вероятности исходов не обязательно равны. Сумма вероятностей всех возможных исходов равна 1. Разные испытания по-прежнему независимы. М. Вялый (vyalyi@gmail.com) Вычисления и случайность малый ШАД, 08.02.2014 5 / 47
  • 10. Подсчет вероятности ошибки Два основных правила Вероятности независимых событий перемножаются. Вероятности несовместных событий складываются. 2+3 1/2 5×2 8−2 random a×b 2+3 5 5×2 10 8−2 6 0 random a×b a+b random 2+3 5×2 8−2 1/3 random a×b a−b 5 a−b a/b 5×2 1 2 = 1 6 1 3 · 1 2 = 1 6 2 3 · 1 4 = 1 6 2 3 · 3 4 = 1 2 0 2+3 8−2 random a×b 2+3 5 5×2 10 8−2 6 0 random a×b a+b random 10 · 6 5 5×2 1 3 10 a/b 5×2 2+3 0 a+b 1/2 5 6 a/b random a−b 2+3 5 10 a+b random 5 10 6 0 a+b random 10 8−2 random a×b 6 0 8−2 random a+b a×b a/b a−b random a−b a−b a−b a/b a/b 6 0 a+b random 2+3 a/b 1/4 5×2 8−2 random a×b 5 10 6 0 a+b random 2/3 2+3 5×2 8−2 random a×b 5 10 6 0 2+3 5×2 8−2 random a+b a×b a/b a−b random a−b a/b a−b 5 10 6 0 a+b random a/b 2+3 5×2 3/4 8−2 random a×b 5 10 6 0 a+b random a−b М. Вялый (vyalyi@gmail.com) Вычисления и случайность a/b малый ШАД, 08.02.2014 6 / 47
  • 11. Велика ли вероятность ошибки 9/10? Если ошибку можно обнаружить и алгоритм допускает повторное исполнение, то не очень. Повторения вероятностного алгоритма Количество повторений 1 2 3 ... 10 ... 100 М. Вялый (vyalyi@gmail.com) Вероятность ошибки во всех попытках 9/10 81/100 729/1000 ... 10 9 1 ≈ ≈ 0.37 10 e ... 9 100 ≈ 0.00003 10 Вычисления и случайность малый ШАД, 08.02.2014 7 / 47
  • 12. Если правильный ответ неизвестен Пусть алгоритм дает ответ «да» или «нет». Если вероятность ошибки меньше ε < 1/2, то повторения алгоритма позволяют быстро уменьшать вероятность ошибки. Правило голосования Повтори алгоритм k раз и выдай тот ответ, который встретился чаще. Вероятность ошибки для алгоритма голосования Пусть вероятность ошибки . М. Вялый (vyalyi@gmail.com) Вычисления и случайность малый ШАД, 08.02.2014 8 / 47
  • 13. Если правильный ответ неизвестен Пусть алгоритм дает ответ «да» или «нет». Если вероятность ошибки меньше ε < 1/2, то повторения алгоритма позволяют быстро уменьшать вероятность ошибки. Правило голосования Повтори алгоритм k раз и выдай тот ответ, который встретился чаще. Вероятность ошибки для алгоритма голосования Пусть вероятность ошибки . М. Вялый (vyalyi@gmail.com) Вычисления и случайность малый ШАД, 08.02.2014 8 / 47
  • 14. Если правильный ответ неизвестен Пусть алгоритм дает ответ «да» или «нет». Если вероятность ошибки меньше ε < 1/2, то повторения алгоритма позволяют быстро уменьшать вероятность ошибки. Правило голосования Повтори алгоритм k раз и выдай тот ответ, который встретился чаще. Вероятность ошибки для алгоритма голосования Пусть вероятность ошибки 1/3. М. Вялый (vyalyi@gmail.com) Вычисления и случайность малый ШАД, 08.02.2014 8 / 47
  • 15. Если правильный ответ неизвестен Пусть алгоритм дает ответ «да» или «нет». Если вероятность ошибки меньше ε < 1/2, то повторения алгоритма позволяют быстро уменьшать вероятность ошибки. Правило голосования Повтори алгоритм k раз и выдай тот ответ, который встретился чаще. Вероятность ошибки для алгоритма голосования Пусть вероятность ошибки 1/3. Вероятность ошибки при голосовании k независимых исполнений алгоритма k i=k/2 k i 1 3 М. Вялый (vyalyi@gmail.com) i 2 3 k k−i = i=k/2 k! i!(k − i)! Вычисления и случайность 1 3 i 2 3 k−i . малый ШАД, 08.02.2014 8 / 47
  • 16. Если правильный ответ неизвестен Пусть алгоритм дает ответ «да» или «нет». Если вероятность ошибки меньше ε < 1/2, то повторения алгоритма позволяют быстро уменьшать вероятность ошибки. Правило голосования Повтори алгоритм k раз и выдай тот ответ, который встретился чаще. Вероятность ошибки для алгоритма голосования Пусть вероятность ошибки 1/3. Вероятность ошибки при голосовании 100 независимых исполнений алгоритма 100 i=50 М. Вялый (vyalyi@gmail.com) 100 i 1 3 i 2 3 100−i Вычисления и случайность ≈ 0.0004 . малый ШАД, 08.02.2014 8 / 47
  • 17. Если правильный ответ неизвестен Пусть алгоритм дает ответ «да» или «нет». Если вероятность ошибки меньше ε < 1/2, то повторения алгоритма позволяют быстро уменьшать вероятность ошибки. Правило голосования Повтори алгоритм k раз и выдай тот ответ, который встретился чаще. Вероятность ошибки для алгоритма голосования Пусть вероятность ошибки ε. Вероятность ошибки при голосовании k независимых исполнений алгоритма меньше k 1−ε 2 ε(1 − ε) . 1 − 2ε М. Вялый (vyalyi@gmail.com) Вычисления и случайность малый ШАД, 08.02.2014 8 / 47
  • 18. План дальнейшего рассказа 1 Кооперативные вычисления 2 Ускорение работы алгоритмов 3 Фальшивая случайность М. Вялый (vyalyi@gmail.com) Вычисления и случайность малый ШАД, 08.02.2014 9 / 47
  • 19. Задача об установлении контакта 2+3 5 2+3 5 5×2 10 5×2 10 8−2 6 8−2 6 a×b a+b a×b a+b a−b a/b a−b a/b Условия Каждый участник ничего не знает о партнере. Время дискретно. В каждый момент участник выбирает место (верхнее или нижнее). Контакт установлен, если в какой-то момент времени оба участника выбрали одно и то же место. М. Вялый (vyalyi@gmail.com) Вычисления и случайность малый ШАД, 08.02.2014 10 / 47
  • 20. Алгоритмы для задачи о контакте Задача Докажите, что не существует детерминированного алгоритма, который устанавливает контакт с любым партнером. Вероятностный алгоритм На каждом шаге выбирай место случайно, равновероятно и независимо от предыдущих шагов. Анализ алгоритма Вероятность ошибки на каждом шаге 1/2. После t шагов вероятность ошибки 2−t . Замечание Вероятность ошибки алгоритма контакта не зависит от действий партнера. М. Вялый (vyalyi@gmail.com) Вычисления и случайность малый ШАД, 08.02.2014 11 / 47
  • 21. Алгоритмы для задачи о контакте Задача Докажите, что не существует детерминированного алгоритма, который устанавливает контакт с любым партнером. Вероятностный алгоритм На каждом шаге выбирай место случайно, равновероятно и независимо от предыдущих шагов. Анализ алгоритма Вероятность ошибки на каждом шаге 1/2. После t шагов вероятность ошибки 2−t . Замечание Вероятность ошибки алгоритма контакта не зависит от действий партнера. М. Вялый (vyalyi@gmail.com) Вычисления и случайность малый ШАД, 08.02.2014 11 / 47
  • 22. Алгоритмы для задачи о контакте Задача Докажите, что не существует детерминированного алгоритма, который устанавливает контакт с любым партнером. Вероятностный алгоритм На каждом шаге выбирай место случайно, равновероятно и независимо от предыдущих шагов. Анализ алгоритма Вероятность ошибки на каждом шаге 1/2. После t шагов вероятность ошибки 2−t . Замечание Вероятность ошибки алгоритма контакта не зависит от действий партнера. М. Вялый (vyalyi@gmail.com) Вычисления и случайность малый ШАД, 08.02.2014 11 / 47
  • 23. Алгоритмы для задачи о контакте Задача Докажите, что не существует детерминированного алгоритма, который устанавливает контакт с любым партнером. Вероятностный алгоритм На каждом шаге выбирай место случайно, равновероятно и независимо от предыдущих шагов. Анализ алгоритма Вероятность ошибки на каждом шаге 1/2. После t шагов вероятность ошибки 2−t . Замечание Вероятность ошибки алгоритма контакта не зависит от действий партнера. М. Вялый (vyalyi@gmail.com) Вычисления и случайность малый ШАД, 08.02.2014 11 / 47
  • 24. Задача проверки равенства третейским судьей Условия v u u, v ⇒ x = y? y x Алиса знает двоичное слово x длины n. Боб знает слово y той же длины. Они имеют возможность передать Чарли некоторую информацию (слова u и v ), по которой Чарли должен решить, равны ли слова x и y . Цель: передать как можно меньше битов при условии, что Чарли правильно отвечает на любых x, y . М. Вялый (vyalyi@gmail.com) Вычисления и случайность малый ШАД, 08.02.2014 12 / 47
  • 25. Детерминированные протоколы Утверждение Докажите, что если u и v определяются по x и y детерминированно, т.е. u = f (x), v = g (y ), то для решения задачи равенства нужно передать не меньше 2n битов. М. Вялый (vyalyi@gmail.com) Вычисления и случайность малый ШАД, 08.02.2014 13 / 47
  • 26. Детерминированные протоколы Утверждение Докажите, что если u и v определяются по x и y детерминированно, т.е. u = f (x), v = g (y ), то для решения задачи равенства нужно передать не меньше 2n битов. Пусть длина u меньше n. Тогда возможных значений u меньше 2n , т.е. меньше количества возможных значений x. М. Вялый (vyalyi@gmail.com) Вычисления и случайность малый ШАД, 08.02.2014 13 / 47
  • 27. Детерминированные протоколы Утверждение Докажите, что если u и v определяются по x и y детерминированно, т.е. u = f (x), v = g (y ), то для решения задачи равенства нужно передать не меньше 2n битов. Пусть длина u меньше n. Тогда возможных значений u меньше 2n , т.е. меньше количества возможных значений x. X x1 x2 u f М. Вялый (vyalyi@gmail.com) U Вычисления и случайность малый ШАД, 08.02.2014 13 / 47
  • 28. Детерминированные протоколы Утверждение Докажите, что если u и v определяются по x и y детерминированно, т.е. u = f (x), v = g (y ), то для решения задачи равенства нужно передать не меньше 2n битов. Пусть длина u меньше n. Тогда возможных значений u меньше 2n , т.е. меньше количества возможных значений x. X x1 x2 u f М. Вялый (vyalyi@gmail.com) U Для Чарли x1 и x2 неразличимы. Вычисления и случайность малый ШАД, 08.02.2014 13 / 47
  • 29. Случайность как «канал связи» Задача проверки равенства третейским судьей при наличии общих случайных битов v u u, v ⇒ x = y? y x 1 1 0 0 0 1 1 0 ... Алиса и Боб имеют доступ к общему источнику случайности. (Скажем к одному и тому же изданию книги «Таблица случайных чисел».) Цель: передать как можно меньше битов при условии, что вероятность ошибки Чарли мала на любых x, y . М. Вялый (vyalyi@gmail.com) Вычисления и случайность малый ШАД, 08.02.2014 14 / 47
  • 30. Решение задачи проверки равенства с общим источником случайности 1 Алиса и Боб выбирают случайное простое число p (одно и то же — случайность общая!) в интервале от n до 2n. 2 Алиса вычисляет U = X mod p, где X — число, двоичная запись которого совпадает со словом Алисы x. Боб поступает аналогично и вычисляет V = Y mod p. 3 Алиса и Боб передают двоичные записи чисел U, V Чарли. 4 Чарли говорит, что слова x и y равны, если u = v . Оценка длины сообщений Поскольку 0 U, V < p М. Вялый (vyalyi@gmail.com) 2n, то длина сообщений Вычисления и случайность 2 + log n. малый ШАД, 08.02.2014 15 / 47
  • 31. Решение задачи проверки равенства с общим источником случайности 1 Алиса и Боб выбирают случайное простое число p (одно и то же — случайность общая!) в интервале от n до 2n. 2 Алиса вычисляет U = X mod p, где X — число, двоичная запись которого совпадает со словом Алисы x. Боб поступает аналогично и вычисляет V = Y mod p. 3 Алиса и Боб передают двоичные записи чисел U, V Чарли. 4 Чарли говорит, что слова x и y равны, если u = v . Оценка длины сообщений Поскольку 0 U, V < p М. Вялый (vyalyi@gmail.com) 2n, то длина сообщений Вычисления и случайность 2 + log n. малый ШАД, 08.02.2014 15 / 47
  • 32. Решение задачи проверки равенства с общим источником случайности 1 Алиса и Боб выбирают случайное простое число p (одно и то же — случайность общая!) в интервале от n до 2n. 2 Алиса вычисляет U = X mod p, где X — число, двоичная запись которого совпадает со словом Алисы x. Боб поступает аналогично и вычисляет V = Y mod p. 3 Алиса и Боб передают двоичные записи чисел U, V Чарли. 4 Чарли говорит, что слова x и y равны, если u = v . Оценка длины сообщений Поскольку 0 U, V < p М. Вялый (vyalyi@gmail.com) 2n, то длина сообщений Вычисления и случайность 2 + log n. малый ШАД, 08.02.2014 15 / 47
  • 33. Решение задачи проверки равенства с общим источником случайности 1 Алиса и Боб выбирают случайное простое число p (одно и то же — случайность общая!) в интервале от n до 2n. 2 Алиса вычисляет U = X mod p, где X — число, двоичная запись которого совпадает со словом Алисы x. Боб поступает аналогично и вычисляет V = Y mod p. 3 Алиса и Боб передают двоичные записи чисел U, V Чарли. 4 Чарли говорит, что слова x и y равны, если u = v . Оценка длины сообщений Поскольку 0 U, V < p М. Вялый (vyalyi@gmail.com) 2n, то длина сообщений Вычисления и случайность 2 + log n. малый ШАД, 08.02.2014 15 / 47
  • 34. Решение задачи проверки равенства с общим источником случайности 1 Алиса и Боб выбирают случайное простое число p (одно и то же — случайность общая!) в интервале от n до 2n. 2 Алиса вычисляет U = X mod p, где X — число, двоичная запись которого совпадает со словом Алисы x. Боб поступает аналогично и вычисляет V = Y mod p. 3 Алиса и Боб передают двоичные записи чисел U, V Чарли. 4 Чарли говорит, что слова x и y равны, если u = v . Оценка длины сообщений Поскольку 0 U, V < p М. Вялый (vyalyi@gmail.com) 2n, то длина сообщений Вычисления и случайность 2 + log n. малый ШАД, 08.02.2014 15 / 47
  • 35. Оценка вероятности ошибки Утверждение В случае x = y Чарли всегда дает правильный ответ. Если x = y , вероятность ошибки Чарли не больше 3/4. В доказательстве используйте теоремы из теории чисел. Простых чисел довольно много Для всех достаточно больших n количество π(n) простых чисел от 1 до n удовлетворяет неравенствам n n 0.99 · < π(n) < 1.01 · ln n ln n Свойство делимости Если X − Y = 0 делится на простые n |X − Y | М. Вялый (vyalyi@gmail.com) p1 < · · · < pk p1 p2 · . . . · pk Вычисления и случайность 2n, то k n . малый ШАД, 08.02.2014 16 / 47
  • 36. Оценка вероятности ошибки Утверждение В случае x = y Чарли всегда дает правильный ответ. Если x = y , вероятность ошибки Чарли не больше 3/4. В доказательстве используйте теоремы из теории чисел. Простых чисел довольно много Для всех достаточно больших n количество π(n) простых чисел от 1 до n удовлетворяет неравенствам n n 0.99 · < π(n) < 1.01 · ln n ln n Свойство делимости Если X − Y = 0 делится на простые n |X − Y | М. Вялый (vyalyi@gmail.com) p1 < · · · < pk p1 p2 · . . . · pk Вычисления и случайность 2n, то k n . малый ШАД, 08.02.2014 16 / 47
  • 37. Оценка вероятности ошибки Утверждение В случае x = y Чарли всегда дает правильный ответ. Если x = y , вероятность ошибки Чарли не больше 3/4. В доказательстве используйте теоремы из теории чисел. Простых чисел довольно много Для всех достаточно больших n количество π(n) простых чисел от 1 до n удовлетворяет неравенствам n n 0.99 · < π(n) < 1.01 · ln n ln n Свойство делимости Если X − Y = 0 делится на простые n |X − Y | М. Вялый (vyalyi@gmail.com) p1 < · · · < pk p1 p2 · . . . · pk Вычисления и случайность 2n, то k n . малый ШАД, 08.02.2014 16 / 47
  • 38. Уменьшение вероятности ошибки Ошибка предложенного протокола — односторонняя. Это позволяет уменьшать вероятность ошибки путем многократного выполнения протокола. Если Алиса и Боб выбирают s простых модулей (случайно и независимо), вероятность ошибки становится меньше (3/4)s . Взяв достаточно большое s, вероятность ошибки можно сделать сколь угодно малой. Теорема При наличии общей случайности для любого ε > 0 существует такой способ выбора сообщений, который гарантирует решение задачи равенства с вероятностью ошибки меньше ε и передает O(log n) битов. Запись g (n) = O(f (n)) означает, что есть такие числа C и n0 , что для всех n > n0 выполняется g (n) < Cf (n). М. Вялый (vyalyi@gmail.com) Вычисления и случайность малый ШАД, 08.02.2014 17 / 47
  • 39. Уменьшение вероятности ошибки Ошибка предложенного протокола — односторонняя. Это позволяет уменьшать вероятность ошибки путем многократного выполнения протокола. Если Алиса и Боб выбирают s простых модулей (случайно и независимо), вероятность ошибки становится меньше (3/4)s . Взяв достаточно большое s, вероятность ошибки можно сделать сколь угодно малой. Теорема При наличии общей случайности для любого ε > 0 существует такой способ выбора сообщений, который гарантирует решение задачи равенства с вероятностью ошибки меньше ε и передает O(log n) битов. Запись g (n) = O(f (n)) означает, что есть такие числа C и n0 , что для всех n > n0 выполняется g (n) < Cf (n). М. Вялый (vyalyi@gmail.com) Вычисления и случайность малый ШАД, 08.02.2014 17 / 47
  • 40. Уменьшение вероятности ошибки Ошибка предложенного протокола — односторонняя. Это позволяет уменьшать вероятность ошибки путем многократного выполнения протокола. Если Алиса и Боб выбирают s простых модулей (случайно и независимо), вероятность ошибки становится меньше (3/4)s . Взяв достаточно большое s, вероятность ошибки можно сделать сколь угодно малой. Теорема При наличии общей случайности для любого ε > 0 существует такой способ выбора сообщений, который гарантирует решение задачи равенства с вероятностью ошибки меньше ε и передает O(log n) битов. Запись g (n) = O(f (n)) означает, что есть такие числа C и n0 , что для всех n > n0 выполняется g (n) < Cf (n). М. Вялый (vyalyi@gmail.com) Вычисления и случайность малый ШАД, 08.02.2014 17 / 47
  • 41. Протоколы при отсутствии общей случайности Задача Докажите, что есть способ выбора сообщений u, v в задаче равенства, при котором Алиса и Боб не знают случайных битов друг друга, √ передается O( n log n) битов, а вероятность ошибки меньше 1/3. Подсказка √ Два случайных подмножества размера 2 n в n-элементном множестве пересекаются с вероятностью > 4/5 (примерно 1 − 1/e 2 ). Теорема Бабаи – Киммеля (частный случай) При любом способе вероятностного выбора сообщений в задаче равенства, гарантирующем вероятность ошибки меньше 1/3, длина √ переданных сообщений Ω( n). Запись g (n) = Ω(f (n)) означает, что есть такие числа C и n0 , что для всех n > n0 выполняется g (n) > Cf (n). М. Вялый (vyalyi@gmail.com) Вычисления и случайность малый ШАД, 08.02.2014 18 / 47
  • 42. Протоколы при отсутствии общей случайности Задача Докажите, что есть способ выбора сообщений u, v в задаче равенства, при котором Алиса и Боб не знают случайных битов друг друга, √ передается O( n log n) битов, а вероятность ошибки меньше 1/3. Подсказка √ Два случайных подмножества размера 2 n в n-элементном множестве пересекаются с вероятностью > 4/5 (примерно 1 − 1/e 2 ). Теорема Бабаи – Киммеля (частный случай) При любом способе вероятностного выбора сообщений в задаче равенства, гарантирующем вероятность ошибки меньше 1/3, длина √ переданных сообщений Ω( n). Запись g (n) = Ω(f (n)) означает, что есть такие числа C и n0 , что для всех n > n0 выполняется g (n) > Cf (n). М. Вялый (vyalyi@gmail.com) Вычисления и случайность малый ШАД, 08.02.2014 18 / 47
  • 43. Протоколы при отсутствии общей случайности Задача Докажите, что есть способ выбора сообщений u, v в задаче равенства, при котором Алиса и Боб не знают случайных битов друг друга, √ передается O( n log n) битов, а вероятность ошибки меньше 1/3. Подсказка √ Два случайных подмножества размера 2 n в n-элементном множестве пересекаются с вероятностью > 4/5 (примерно 1 − 1/e 2 ). Теорема Бабаи – Киммеля (частный случай) При любом способе вероятностного выбора сообщений в задаче равенства, гарантирующем вероятность ошибки меньше 1/3, длина √ переданных сообщений Ω( n). Запись g (n) = Ω(f (n)) означает, что есть такие числа C и n0 , что для всех n > n0 выполняется g (n) > Cf (n). М. Вялый (vyalyi@gmail.com) Вычисления и случайность малый ШАД, 08.02.2014 18 / 47
  • 44. План дальнейшего рассказа 1 Кооперативные вычисления 2 Ускорение работы алгоритмов 3 Фальшивая случайность М. Вялый (vyalyi@gmail.com) Вычисления и случайность малый ШАД, 08.02.2014 19 / 47
  • 45. Белые мыши теоретической информатики Задача разрешения По входным данным алгоритм должен ответить, обладают ли они некоторым свойством. Вход: описание данных. Результат работы: ответ «да» или «нет». Пример: проверка простоты числа Вход: описание числа N (двоичная запись). Результат работы: ответ «да», если N — простое и «нет» в противном случае. М. Вялый (vyalyi@gmail.com) Вычисления и случайность малый ШАД, 08.02.2014 20 / 47
  • 46. Белые мыши теоретической информатики Задача разрешения По входным данным алгоритм должен ответить, обладают ли они некоторым свойством. Вход: описание данных. Результат работы: ответ «да» или «нет». Пример: проверка простоты числа Вход: описание числа N (двоичная запись). Результат работы: ответ «да», если N — простое и «нет» в противном случае. М. Вялый (vyalyi@gmail.com) Вычисления и случайность малый ШАД, 08.02.2014 20 / 47
  • 47. Трудоемкость алгоритма Время работы в худшем случае t(n) — наибольшее количество элементарных шагов алгоритма при работе на входных данных размера n. Определение эффективного алгоритма Время работы в худшем случае растет полиномиально: t(n) = nO(1) . Одно из оправданий такого определения Для алгоритма с временем работы n3 увеличение быстродействия компьютера в 1000 раз увеличивает в 10 раз размер данных, для которых можно решить задачу за то же время. Для алгоритма с временем работы 1.1n увеличение быстродействия компьютера в 1000 раз увеличивает на 72 размер данных, для которых можно решить задачу за то же время. М. Вялый (vyalyi@gmail.com) Вычисления и случайность малый ШАД, 08.02.2014 21 / 47
  • 48. Трудоемкость алгоритма Время работы в худшем случае t(n) — наибольшее количество элементарных шагов алгоритма при работе на входных данных размера n. Определение эффективного алгоритма Время работы в худшем случае растет полиномиально: t(n) = nO(1) . Одно из оправданий такого определения Для алгоритма с временем работы n3 увеличение быстродействия компьютера в 1000 раз увеличивает в 10 раз размер данных, для которых можно решить задачу за то же время. Для алгоритма с временем работы 1.1n увеличение быстродействия компьютера в 1000 раз увеличивает на 72 размер данных, для которых можно решить задачу за то же время. М. Вялый (vyalyi@gmail.com) Вычисления и случайность малый ШАД, 08.02.2014 21 / 47
  • 49. Трудоемкость алгоритма Время работы в худшем случае t(n) — наибольшее количество элементарных шагов алгоритма при работе на входных данных размера n. Определение эффективного алгоритма Время работы в худшем случае растет полиномиально: t(n) = nO(1) . Одно из оправданий такого определения Для алгоритма с временем работы n3 увеличение быстродействия компьютера в 1000 раз увеличивает в 10 раз размер данных, для которых можно решить задачу за то же время. Для алгоритма с временем работы 1.1n увеличение быстродействия компьютера в 1000 раз увеличивает на 72 размер данных, для которых можно решить задачу за то же время. М. Вялый (vyalyi@gmail.com) Вычисления и случайность малый ШАД, 08.02.2014 21 / 47
  • 50. Уточнение исходного вопроса Открытая проблема Есть ли такая задача разрешения, для решения которой существуют эффективные вероятностные алгоритмы с вероятностью ошибки < 1/3, но не существует эффективных детерминированных алгоритмов? 2+3 5 2+3 5 5×2 10 5×2 10 8−2 6 8−2 6 random 0 a×b a×b a+b a+b random a−b М. Вялый (vyalyi@gmail.com) a−b a/b Вычисления и случайность a/b малый ШАД, 08.02.2014 22 / 47
  • 51. Ускорение работы случайным выбором Удачные и неудачные варианты. Детерминированный алгоритм вынужден перебирать варианты в определенном порядке М. Вялый (vyalyi@gmail.com) Вычисления и случайность малый ШАД, 08.02.2014 23 / 47
  • 52. Ускорение работы случайным выбором Удачные и неудачные варианты. Детерминированный алгоритм вынужден перебирать варианты в определенном порядке Вероятностный алгоритм выбирает вариант случайно М. Вялый (vyalyi@gmail.com) Вычисления и случайность малый ШАД, 08.02.2014 23 / 47
  • 53. Оценка времени работы Пусть всего вариантов N, из них удачных K . Детерминированный алгоритм в худшем случае переберет N −K +1 вариантов. Вероятностный алгоритм находит удачный вариант за один шаг с вероятностью K N Вероятность ошибки (удачный вариант не найден) после t шагов K t 1− N При t ≈ 10N/K вероятность ошибки примерно равна e −10 ≈ 0.00005 М. Вялый (vyalyi@gmail.com) Вычисления и случайность малый ШАД, 08.02.2014 24 / 47
  • 54. Оценка времени работы Пусть всего вариантов N, из них удачных K . Детерминированный алгоритм в худшем случае переберет N −K +1 вариантов. Вероятностный алгоритм находит удачный вариант за один шаг с вероятностью K N Вероятность ошибки (удачный вариант не найден) после t шагов K t 1− N При t ≈ 10N/K вероятность ошибки примерно равна e −10 ≈ 0.00005 М. Вялый (vyalyi@gmail.com) Вычисления и случайность малый ШАД, 08.02.2014 24 / 47
  • 55. Оценка времени работы Пусть всего вариантов N, из них удачных K . Детерминированный алгоритм в худшем случае переберет N −K +1 вариантов. Вероятностный алгоритм находит удачный вариант за один шаг с вероятностью K N Вероятность ошибки (удачный вариант не найден) после t шагов K t 1− N При t ≈ 10N/K вероятность ошибки примерно равна e −10 ≈ 0.00005 М. Вялый (vyalyi@gmail.com) Вычисления и случайность малый ШАД, 08.02.2014 24 / 47
  • 56. Оценка времени работы Пусть всего вариантов N, из них удачных K . Детерминированный алгоритм в худшем случае переберет N −K +1 вариантов. Вероятностный алгоритм находит удачный вариант за один шаг с вероятностью K N Вероятность ошибки (удачный вариант не найден) после t шагов K t 1− N При t ≈ 10N/K вероятность ошибки примерно равна e −10 ≈ 0.00005 М. Вялый (vyalyi@gmail.com) Вычисления и случайность малый ШАД, 08.02.2014 24 / 47
  • 57. Проверка тождеств Пример тождества: разность квадратов x 2 − y 2 = (x + y )(x − y ) Тождества, про которые пойдет речь P(x1 , . . . , xn ) = 0, где P — целое алгебраическое выражение с переменными xi и числами. Еще один пример x4 (x4 + x1 + x2 )(x4 + x2 + x3 )(x4 + x3 + x1 )− −(x4 + x1 )(x4 + x2 )(x4 + x3 )(x4 + x1 + x2 + x3 )+ +x1 x2 x3 (2x4 + x1 + x2 + x3 ) Равно ли это выражение нулю при всех значениях переменных? М. Вялый (vyalyi@gmail.com) Вычисления и случайность малый ШАД, 08.02.2014 25 / 47
  • 58. Проверка тождеств Пример тождества: разность квадратов x 2 − y 2 = (x + y )(x − y ) Тождества, про которые пойдет речь P(x1 , . . . , xn ) = 0, где P — целое алгебраическое выражение с переменными xi и числами. Еще один пример x4 (x4 + x1 + x2 )(x4 + x2 + x3 )(x4 + x3 + x1 )− −(x4 + x1 )(x4 + x2 )(x4 + x3 )(x4 + x1 + x2 + x3 )+ +x1 x2 x3 (2x4 + x1 + x2 + x3 ) Равно ли это выражение нулю при всех значениях переменных? М. Вялый (vyalyi@gmail.com) Вычисления и случайность малый ШАД, 08.02.2014 25 / 47
  • 59. Проверка тождеств Пример тождества: разность квадратов x 2 − y 2 = (x + y )(x − y ) Тождества, про которые пойдет речь P(x1 , . . . , xn ) = 0, где P — целое алгебраическое выражение с переменными xi и числами. Еще один пример x4 (x4 + x1 + x2 )(x4 + x2 + x3 )(x4 + x3 + x1 )− −(x4 + x1 )(x4 + x2 )(x4 + x3 )(x4 + x1 + x2 + x3 )+ +x1 x2 x3 (2x4 + x1 + x2 + x3 ) Равно ли это выражение нулю при всех значениях переменных? М. Вялый (vyalyi@gmail.com) Вычисления и случайность малый ШАД, 08.02.2014 25 / 47
  • 60. Что говорит алгебра Определения Одночлен — это произведение числа и какого-то количества переменных. Число называется коэффициентом. Пример: 2x1 x2 x3 . Многочлен — это сумма одночленов. Пример: x 2 − y 2 . Теорема 1 Любое целое алгебраическое выражение тождественно равно некоторому многочлену. Теорема 2 Многочлен тождественно равен нулю тогда и только тогда, когда все его коэффициенты равны нулю. М. Вялый (vyalyi@gmail.com) Вычисления и случайность малый ШАД, 08.02.2014 26 / 47
  • 61. Что говорит алгебра Определения Одночлен — это произведение числа и какого-то количества переменных. Число называется коэффициентом. Пример: 2x1 x2 x3 . Многочлен — это сумма одночленов. Пример: x 2 − y 2 . Теорема 1 Любое целое алгебраическое выражение тождественно равно некоторому многочлену. Теорема 2 Многочлен тождественно равен нулю тогда и только тогда, когда все его коэффициенты равны нулю. М. Вялый (vyalyi@gmail.com) Вычисления и случайность малый ШАД, 08.02.2014 26 / 47
  • 62. Что говорит алгебра Определения Одночлен — это произведение числа и какого-то количества переменных. Число называется коэффициентом. Пример: 2x1 x2 x3 . Многочлен — это сумма одночленов. Пример: x 2 − y 2 . Теорема 1 Любое целое алгебраическое выражение тождественно равно некоторому многочлену. Теорема 2 Многочлен тождественно равен нулю тогда и только тогда, когда все его коэффициенты равны нулю. М. Вялый (vyalyi@gmail.com) Вычисления и случайность малый ШАД, 08.02.2014 26 / 47
  • 63. Простейший алгоритм проверки тождества Задача проверки тождества (PIT) Дано: целое алгебраическое выражение (формула с числами и переменными, использующая операции сложения, вычитания и умножения). Спрашивается: является ли это выражение тождеством? (То есть равно ли его значение нулю при любых значениях переменных.) Простейший алгоритм для PIT: 1 Раскрыть скобки. 2 Привести подобные. 3 Если нашелся хотя бы один ненулевой коэффициент, то ответ «нет» (не тождество). В противном случае ответ «да» (тождество). М. Вялый (vyalyi@gmail.com) Вычисления и случайность малый ШАД, 08.02.2014 27 / 47
  • 64. Простейший алгоритм проверки тождества Задача проверки тождества (PIT) Дано: целое алгебраическое выражение (формула с числами и переменными, использующая операции сложения, вычитания и умножения). Спрашивается: является ли это выражение тождеством? (То есть равно ли его значение нулю при любых значениях переменных.) Простейший алгоритм для PIT: 1 Раскрыть скобки. 2 Привести подобные. 3 Если нашелся хотя бы один ненулевой коэффициент, то ответ «нет» (не тождество). В противном случае ответ «да» (тождество). М. Вялый (vyalyi@gmail.com) Вычисления и случайность малый ШАД, 08.02.2014 27 / 47
  • 65. Простейший алгоритм проверки тождества Задача проверки тождества (PIT) Дано: целое алгебраическое выражение (формула с числами и переменными, использующая операции сложения, вычитания и умножения). Спрашивается: является ли это выражение тождеством? (То есть равно ли его значение нулю при любых значениях переменных.) Простейший алгоритм для PIT: 1 Раскрыть скобки. 2 Привести подобные. 3 Если нашелся хотя бы один ненулевой коэффициент, то ответ «нет» (не тождество). В противном случае ответ «да» (тождество). М. Вялый (vyalyi@gmail.com) Вычисления и случайность малый ШАД, 08.02.2014 27 / 47
  • 66. Простейший алгоритм проверки тождества Задача проверки тождества (PIT) Дано: целое алгебраическое выражение (формула с числами и переменными, использующая операции сложения, вычитания и умножения). Спрашивается: является ли это выражение тождеством? (То есть равно ли его значение нулю при любых значениях переменных.) Простейший алгоритм для PIT: 1 Раскрыть скобки. 2 Привести подобные. 3 Если нашелся хотя бы один ненулевой коэффициент, то ответ «нет» (не тождество). В противном случае ответ «да» (тождество). М. Вялый (vyalyi@gmail.com) Вычисления и случайность малый ШАД, 08.02.2014 27 / 47
  • 67. Является ли простейший алгоритм эффективным? Напомним, что время работы оценивается в худшем случае. Ответ: нет. Неформальное объяснение Количество разных (неподобных) одночленов в разложении формулы √ размера L может оказаться велико: 2Ω( L) . √ Функция 2Ω( L) растет быстрее любого многочлена, а время работы простейшего алгоритма не меньше количества неподобных одночленов. М. Вялый (vyalyi@gmail.com) Вычисления и случайность малый ШАД, 08.02.2014 28 / 47
  • 68. Является ли простейший алгоритм эффективным? Напомним, что время работы оценивается в худшем случае. Ответ: нет. Неформальное объяснение Количество разных (неподобных) одночленов в разложении формулы √ размера L может оказаться велико: 2Ω( L) . √ Функция 2Ω( L) растет быстрее любого многочлена, а время работы простейшего алгоритма не меньше количества неподобных одночленов. М. Вялый (vyalyi@gmail.com) Вычисления и случайность малый ШАД, 08.02.2014 28 / 47
  • 69. Является ли простейший алгоритм эффективным? Напомним, что время работы оценивается в худшем случае. Ответ: нет. Неформальное объяснение Количество разных (неподобных) одночленов в разложении формулы √ размера L может оказаться велико: 2Ω( L) . √ Функция 2Ω( L) растет быстрее любого многочлена, а время работы простейшего алгоритма не меньше количества неподобных одночленов. М. Вялый (vyalyi@gmail.com) Вычисления и случайность малый ШАД, 08.02.2014 28 / 47
  • 70. Вероятностный алгоритм проверки тождества Пусть дано целое алгебраическое выражение F от n переменных. Длина записи выражения равна L. 1 Для каждой переменной xi выбрать назависимо и равновероятно ее значение ai из промежутка целых чисел от 0 до 2L − 1. 2 Вычислить F (a1 , . . . , an ). 3 Если F (a1 , . . . , an ) = 0, то ответ «нет» (не тождество). В противном случае ответ «да» (тождество). М. Вялый (vyalyi@gmail.com) Вычисления и случайность малый ШАД, 08.02.2014 29 / 47
  • 71. Вероятностный алгоритм проверки тождества Пусть дано целое алгебраическое выражение F от n переменных. Длина записи выражения равна L. 1 Для каждой переменной xi выбрать назависимо и равновероятно ее значение ai из промежутка целых чисел от 0 до 2L − 1. 2 Вычислить F (a1 , . . . , an ). 3 Если F (a1 , . . . , an ) = 0, то ответ «нет» (не тождество). В противном случае ответ «да» (тождество). М. Вялый (vyalyi@gmail.com) Вычисления и случайность малый ШАД, 08.02.2014 29 / 47
  • 72. Вероятностный алгоритм проверки тождества Пусть дано целое алгебраическое выражение F от n переменных. Длина записи выражения равна L. 1 Для каждой переменной xi выбрать назависимо и равновероятно ее значение ai из промежутка целых чисел от 0 до 2L − 1. 2 Вычислить F (a1 , . . . , an ). 3 Если F (a1 , . . . , an ) = 0, то ответ «нет» (не тождество). В противном случае ответ «да» (тождество). М. Вялый (vyalyi@gmail.com) Вычисления и случайность малый ШАД, 08.02.2014 29 / 47
  • 73. Оценка времени работы Легко видеть, что n L (каждую переменную, входящую в выражение, нужно записать). На шаге 2 выбирается nL L2 случайных битов. Есть эффективный алгоритм вычисления значения выражения на заданном наборе переменных: выражение задает порядок действий, каждую арифметическую операцию выполняем школьными алгоритмами, они работают за время O( 2 ), где — длина записи операндов. При этом L и нужно выполнить L операций. Утверждение Вероятностный алгоритм работает за время, которое растет не более чем кубически от размера входного выражения. М. Вялый (vyalyi@gmail.com) Вычисления и случайность малый ШАД, 08.02.2014 30 / 47
  • 74. Оценка времени работы Легко видеть, что n L (каждую переменную, входящую в выражение, нужно записать). На шаге 2 выбирается nL L2 случайных битов. Есть эффективный алгоритм вычисления значения выражения на заданном наборе переменных: выражение задает порядок действий, каждую арифметическую операцию выполняем школьными алгоритмами, они работают за время O( 2 ), где — длина записи операндов. При этом L и нужно выполнить L операций. Утверждение Вероятностный алгоритм работает за время, которое растет не более чем кубически от размера входного выражения. М. Вялый (vyalyi@gmail.com) Вычисления и случайность малый ШАД, 08.02.2014 30 / 47
  • 75. Оценка времени работы Легко видеть, что n L (каждую переменную, входящую в выражение, нужно записать). На шаге 2 выбирается nL L2 случайных битов. Есть эффективный алгоритм вычисления значения выражения на заданном наборе переменных: выражение задает порядок действий, каждую арифметическую операцию выполняем школьными алгоритмами, они работают за время O( 2 ), где — длина записи операндов. При этом L и нужно выполнить L операций. Утверждение Вероятностный алгоритм работает за время, которое растет не более чем кубически от размера входного выражения. М. Вялый (vyalyi@gmail.com) Вычисления и случайность малый ШАД, 08.02.2014 30 / 47
  • 76. Оценка времени работы Легко видеть, что n L (каждую переменную, входящую в выражение, нужно записать). На шаге 2 выбирается nL L2 случайных битов. Есть эффективный алгоритм вычисления значения выражения на заданном наборе переменных: выражение задает порядок действий, каждую арифметическую операцию выполняем школьными алгоритмами, они работают за время O( 2 ), где — длина записи операндов. При этом L и нужно выполнить L операций. Утверждение Вероятностный алгоритм работает за время, которое растет не более чем кубически от размера входного выражения. М. Вялый (vyalyi@gmail.com) Вычисления и случайность малый ШАД, 08.02.2014 30 / 47
  • 77. Вероятность ошибки Теорема Вероятность ошибки предложенного алгоритма проверки равенства не более L . 2L М. Вялый (vyalyi@gmail.com) Вычисления и случайность малый ШАД, 08.02.2014 31 / 47
  • 78. Ненулевой многочлен редко обращается в ноль Наблюдение Если целое алгебраическое выражение длины L задает ненулевой многочлен, то его степень d L. Теорема прямо следует из этого наблюдения и такой леммы. Лемма Шварца – Зиппеля Пусть f — не равный тождественно нулю многочлен степени d от n переменных. Обозначим через Ns количество таких наборов (x1 , . . . , xn ), что 0 f (x1 , . . . , xn ) = 0; Тогда М. Вялый (vyalyi@gmail.com) Ns sn xi < s. d . s Вычисления и случайность малый ШАД, 08.02.2014 32 / 47
  • 79. Ненулевой многочлен редко обращается в ноль Наблюдение Если целое алгебраическое выражение длины L задает ненулевой многочлен, то его степень d L. Теорема прямо следует из этого наблюдения и такой леммы. Лемма Шварца – Зиппеля Пусть f — не равный тождественно нулю многочлен степени d от n переменных. Обозначим через Ns количество таких наборов (x1 , . . . , xn ), что 0 f (x1 , . . . , xn ) = 0; Тогда М. Вялый (vyalyi@gmail.com) Ns sn xi < s. d . s Вычисления и случайность малый ШАД, 08.02.2014 32 / 47
  • 80. Случай одной переменной Лемма Шварца – Зиппеля для одной переменной Пусть f — не равный тождественно нулю многочлен степени переменных. Тогда количество корней f не больше d . d от n Теорема Безу Многочлен f (x) делится без остатка на x − a в том и только том случае, когда f (a) = 0. Логарифмическое свойство степени многочлена Если f = 0, g = 0, то deg(fg ) = deg f + deg g . Следствие Количество корней многочлена одной переменной не превосходит его степени. М. Вялый (vyalyi@gmail.com) Вычисления и случайность малый ШАД, 08.02.2014 33 / 47
  • 81. Случай одной переменной Лемма Шварца – Зиппеля для одной переменной Пусть f — не равный тождественно нулю многочлен степени переменных. Тогда количество корней f не больше d . d от n Теорема Безу Многочлен f (x) делится без остатка на x − a в том и только том случае, когда f (a) = 0. Логарифмическое свойство степени многочлена Если f = 0, g = 0, то deg(fg ) = deg f + deg g . Следствие Количество корней многочлена одной переменной не превосходит его степени. М. Вялый (vyalyi@gmail.com) Вычисления и случайность малый ШАД, 08.02.2014 33 / 47
  • 82. Случай одной переменной Лемма Шварца – Зиппеля для одной переменной Пусть f — не равный тождественно нулю многочлен степени переменных. Тогда количество корней f не больше d . d от n Теорема Безу Многочлен f (x) делится без остатка на x − a в том и только том случае, когда f (a) = 0. Логарифмическое свойство степени многочлена Если f = 0, g = 0, то deg(fg ) = deg f + deg g . Следствие Количество корней многочлена одной переменной не превосходит его степени. М. Вялый (vyalyi@gmail.com) Вычисления и случайность малый ШАД, 08.02.2014 33 / 47
  • 83. Случай одной переменной Лемма Шварца – Зиппеля для одной переменной Пусть f — не равный тождественно нулю многочлен степени переменных. Тогда количество корней f не больше d . d от n Теорема Безу Многочлен f (x) делится без остатка на x − a в том и только том случае, когда f (a) = 0. Логарифмическое свойство степени многочлена Если f = 0, g = 0, то deg(fg ) = deg f + deg g . Следствие Количество корней многочлена одной переменной не превосходит его степени. М. Вялый (vyalyi@gmail.com) Вычисления и случайность малый ШАД, 08.02.2014 33 / 47
  • 84. Индукция по числу переменных Разложим многочлен f (x1 , . . . , xn ) = 0, deg f = d , по n-й переменной: k i fi (x1 , . . . , xn−1 )xn , f (x1 , . . . , xn ) = fk = 0, deg fk d − k. i=0 М. Вялый (vyalyi@gmail.com) Вычисления и случайность малый ШАД, 08.02.2014 34 / 47
  • 85. Индукция по числу переменных Разложим многочлен f (x1 , . . . , xn ) = 0, deg f = d , по n-й переменной: k i fi (x1 , . . . , xn−1 )xn , f (x1 , . . . , xn ) = fk = 0, d − k. deg fk i=0 Степень f по переменной xn не выше k при любых значениях остальных переменных. xn s 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ≤k 0 s x1 ≤ (d − k)sn−2 М. Вялый (vyalyi@gmail.com) Вычисления и случайность малый ШАД, 08.02.2014 34 / 47
  • 86. Индукция по числу переменных Разложим многочлен f (x1 , . . . , xn ) = 0, deg f = d , по n-й переменной: k i fi (x1 , . . . , xn−1 )xn , f (x1 , . . . , xn ) = fk = 0, d − k. deg fk i=0 Степень f по переменной xn не выше k при любых значениях остальных переменных. Всего наборов, обращающих f в 0, не более чем (d − k)s n−2 · s + xn s 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + (s n−1 − (d − k)s n−2 ) · k = = ds n−1 − k(d − k)s n−2 ≤k s x1 ≤ (d − k)sn−2 ds n−1 . М. Вялый (vyalyi@gmail.com) Вычисления и случайность малый ШАД, 08.02.2014 34 / 47
  • 87. Детерминированные алгоритмы для PIT Открытый вопрос Есть ли эффективные алгоритмы проверки тождества? М. Вялый (vyalyi@gmail.com) Вычисления и случайность малый ШАД, 08.02.2014 35 / 47
  • 88. План дальнейшего рассказа 1 Кооперативные вычисления 2 Ускорение работы алгоритмов 3 Фальшивая случайность М. Вялый (vyalyi@gmail.com) Вычисления и случайность малый ШАД, 08.02.2014 36 / 47
  • 89. Источники случайности в реальных программах 1 Специальные устройства Sun SSL Crypto Accelerator использует физический источник случайности для генерации криптографических ключей, используемых в сетевых протоколах. (http://en.wikipedia.org/wiki/Hardware_random_number_generator) 2 Таблицы случайных чисел (скажем, сайт random.org) 3 Программная эмуляция случайности — псевдослучайные числа: 101101011110001001111010001100 М. Вялый (vyalyi@gmail.com) /x = random.randint(0,1)/ Вычисления и случайность малый ШАД, 08.02.2014 37 / 47
  • 90. Источники случайности в реальных программах 1 Специальные устройства Sun SSL Crypto Accelerator использует физический источник случайности для генерации криптографических ключей, используемых в сетевых протоколах. (http://en.wikipedia.org/wiki/Hardware_random_number_generator) 2 Таблицы случайных чисел (скажем, сайт random.org) 3 Программная эмуляция случайности — псевдослучайные числа: 101101011110001001111010001100 М. Вялый (vyalyi@gmail.com) /x = random.randint(0,1)/ Вычисления и случайность малый ШАД, 08.02.2014 37 / 47
  • 91. Источники случайности в реальных программах 1 Специальные устройства Sun SSL Crypto Accelerator использует физический источник случайности для генерации криптографических ключей, используемых в сетевых протоколах. (http://en.wikipedia.org/wiki/Hardware_random_number_generator) 2 Таблицы случайных чисел (скажем, сайт random.org) 3 Программная эмуляция случайности — псевдослучайные числа: 101101011110001001111010001100 М. Вялый (vyalyi@gmail.com) /x = random.randint(0,1)/ Вычисления и случайность малый ШАД, 08.02.2014 37 / 47
  • 92. Сравнение «истинной» и «фальшивой» случайности истинные случайные биты с random.org М. Вялый (vyalyi@gmail.com) фальшивые случайные биты от Microsoft Windows Вычисления и случайность малый ШАД, 08.02.2014 38 / 47
  • 93. Дерандомизация: избавление от случайности Предположим, что алгоритм A использует в работе m случайных битов и дает один из двух возможных ответов. 1 Выберем псевдослучайный генератор (PRG): функцию G : {0, 1} → {0, 1}m . 2 Для каждой затравки z = z1 z2 . . . z вычислим функцию G (z) = r1 r2 . . . rm и запустим алгоритм A, подменяя i-й случайный бит битом ri . 3 Выберем тот ответ, который встретился чаще. Он и будет ответом дерандомизированного алгоритма. М. Вялый (vyalyi@gmail.com) Вычисления и случайность малый ШАД, 08.02.2014 39 / 47
  • 94. Дерандомизация: избавление от случайности Предположим, что алгоритм A использует в работе m случайных битов и дает один из двух возможных ответов. 1 Выберем псевдослучайный генератор (PRG): функцию G : {0, 1} → {0, 1}m . 2 Для каждой затравки z = z1 z2 . . . z вычислим функцию G (z) = r1 r2 . . . rm и запустим алгоритм A, подменяя i-й случайный бит битом ri . 3 Выберем тот ответ, который встретился чаще. Он и будет ответом дерандомизированного алгоритма. М. Вялый (vyalyi@gmail.com) Вычисления и случайность малый ШАД, 08.02.2014 39 / 47
  • 95. Дерандомизация: избавление от случайности Предположим, что алгоритм A использует в работе m случайных битов и дает один из двух возможных ответов. 1 Выберем псевдослучайный генератор (PRG): функцию G : {0, 1} → {0, 1}m . 2 Для каждой затравки z = z1 z2 . . . z вычислим функцию G (z) = r1 r2 . . . rm и запустим алгоритм A, подменяя i-й случайный бит битом ri . 3 Выберем тот ответ, который встретился чаще. Он и будет ответом дерандомизированного алгоритма. М. Вялый (vyalyi@gmail.com) Вычисления и случайность малый ШАД, 08.02.2014 39 / 47
  • 96. Цена дерандомизации Дерандомизированный алгоритм исполняет алгоритм A для каждой затравки, т. е. 2 раз. Столько же раз вычисляется значение PRG. Пусть алгоритм A работает за время T1 = poly(n), а вычисление значения генератора занимает время T2 . Тогда время работы дерандомизированного алгоритма 2 (T1 + T2 ) Чтобы не потерять эффективность, нужно использовать очень короткие затравки и достаточно быстрое вычисление значения генератора: = O(log n); T2 = poly(n) = 2O( М. Вялый (vyalyi@gmail.com) ) ⇒ Вычисления и случайность 2 (T1 + T2 ) = poly(n). малый ШАД, 08.02.2014 40 / 47
  • 97. Цена дерандомизации Дерандомизированный алгоритм исполняет алгоритм A для каждой затравки, т. е. 2 раз. Столько же раз вычисляется значение PRG. Пусть алгоритм A работает за время T1 = poly(n), а вычисление значения генератора занимает время T2 . Тогда время работы дерандомизированного алгоритма 2 (T1 + T2 ) Чтобы не потерять эффективность, нужно использовать очень короткие затравки и достаточно быстрое вычисление значения генератора: = O(log n); T2 = poly(n) = 2O( М. Вялый (vyalyi@gmail.com) ) ⇒ Вычисления и случайность 2 (T1 + T2 ) = poly(n). малый ШАД, 08.02.2014 40 / 47
  • 98. Цена дерандомизации Дерандомизированный алгоритм исполняет алгоритм A для каждой затравки, т. е. 2 раз. Столько же раз вычисляется значение PRG. Пусть алгоритм A работает за время T1 = poly(n), а вычисление значения генератора занимает время T2 . Тогда время работы дерандомизированного алгоритма 2 (T1 + T2 ) Чтобы не потерять эффективность, нужно использовать очень короткие затравки и достаточно быстрое вычисление значения генератора: = O(log n); T2 = poly(n) = 2O( М. Вялый (vyalyi@gmail.com) ) ⇒ Вычисления и случайность 2 (T1 + T2 ) = poly(n). малый ШАД, 08.02.2014 40 / 47
  • 99. Цена дерандомизации Дерандомизированный алгоритм исполняет алгоритм A для каждой затравки, т. е. 2 раз. Столько же раз вычисляется значение PRG. Пусть алгоритм A работает за время T1 = poly(n), а вычисление значения генератора занимает время T2 . Тогда время работы дерандомизированного алгоритма 2 (T1 + T2 ) Чтобы не потерять эффективность, нужно использовать очень короткие затравки и достаточно быстрое вычисление значения генератора: = O(log n); T2 = poly(n) = 2O( М. Вялый (vyalyi@gmail.com) ) ⇒ Вычисления и случайность 2 (T1 + T2 ) = poly(n). малый ШАД, 08.02.2014 40 / 47
  • 100. Цель Построить один псевдослучайный генератор для всех алгоритмов, работающих за заданное время t. Когда время работы фиксировано, алгоритмы несущественно отличаются от схем вычисления, т. е. последовательностей присваиваний. Булева схема вычисления y1 := x1 ∨ x2 , (допустима дизъюнкция); y2 := x2 ∧ x3 , (допустима конъюнкция); y3 := ¬x1 , (допустимо отрицание); y4 := y2 ∨ x4 , (допустимы предыдущие значения); ... ys := T (x1 , . . . , xm ), ys — значение схемы. Размер схемы — количество присваиваний s. М. Вялый (vyalyi@gmail.com) Вычисления и случайность малый ШАД, 08.02.2014 41 / 47
  • 101. Цель Построить один псевдослучайный генератор для всех алгоритмов, работающих за заданное время t. Когда время работы фиксировано, алгоритмы несущественно отличаются от схем вычисления, т. е. последовательностей присваиваний. Булева схема вычисления y1 := x1 ∨ x2 , (допустима дизъюнкция); y2 := x2 ∧ x3 , (допустима конъюнкция); y3 := ¬x1 , (допустимо отрицание); y4 := y2 ∨ x4 , (допустимы предыдущие значения); ... ys := T (x1 , . . . , xm ), ys — значение схемы. Размер схемы — количество присваиваний s. М. Вялый (vyalyi@gmail.com) Вычисления и случайность малый ШАД, 08.02.2014 41 / 47
  • 102. Тестирование случайности xm x1 x2 x3 x4 x5 TESTER T T (x1 , . . . , xm ) Количество входов тестера — количество случайных битов, использованных в алгоритме. Без ограничения общности считаем, что алгоритм, работающий за время t, использует m = t случайных битов. (Некоторые останутся фактически неиспользованными.) М. Вялый (vyalyi@gmail.com) Вычисления и случайность малый ШАД, 08.02.2014 42 / 47
  • 103. Требования к хорошему псевдослучайному генератору z G z2 z1 xm x1 x2 x3 x4 TESTER PRG T TESTER T x5 T (z1 , . . . , z ) T (x1 , . . . , xm ) Техническое определение псевдослучайного генератора Для любого тестера (схемы) T размера m3 выполняется | Pr[T (G (z1 , . . . , z )) = 1] − Pr[T (x1 , . . . , xm ) = 1]| < z М. Вялый (vyalyi@gmail.com) x Вычисления и случайность 1 10 малый ШАД, 08.02.2014 43 / 47
  • 104. Существуют ли хорошие псевдослучайные генераторы? Частичный ответ Да, существуют в предположении, что существуют семейства явно заданных, но сложных функций. М. Вялый (vyalyi@gmail.com) Вычисления и случайность малый ШАД, 08.02.2014 44 / 47
  • 105. Схемная сложность Определение Схемная сложность C (f ) — это наименьший размер схемы, вычисляющей f . Утверждение (here be dragons!) Существуют булевы функции от n переменных, имеющие схемную сложность > 2n /3n. Идея доказательства Подсчет количества схем размера s с n входными переменными и количества функций от n переменных. При s < 2n /3n схем меньше, чем функций. М. Вялый (vyalyi@gmail.com) Вычисления и случайность малый ШАД, 08.02.2014 45 / 47
  • 106. Схемная сложность Определение Схемная сложность C (f ) — это наименьший размер схемы, вычисляющей f . Утверждение (here be dragons!) Существуют булевы функции от n переменных, имеющие схемную сложность > 2n /3n. Идея доказательства Подсчет количества схем размера s с n входными переменными и количества функций от n переменных. При s < 2n /3n схем меньше, чем функций. М. Вялый (vyalyi@gmail.com) Вычисления и случайность малый ШАД, 08.02.2014 45 / 47
  • 107. Схемная сложность Определение Схемная сложность C (f ) — это наименьший размер схемы, вычисляющей f . Утверждение (here be dragons!) Существуют булевы функции от n переменных, имеющие схемную сложность > 2n /3n. Идея доказательства Подсчет количества схем размера s с n входными переменными и количества функций от n переменных. При s < 2n /3n схем меньше, чем функций. М. Вялый (vyalyi@gmail.com) Вычисления и случайность малый ШАД, 08.02.2014 45 / 47
  • 108. Что такое «явно» заданная функция? Описание семейства функций Семейство функций: для каждого n задана функция fn (x1 , . . . , xn ). Описание: алгоритм A, который по входным переменным x1 , . . . , xn , возвращает значение fn (x1 , . . . , xn ). Чем меньше времени работает алгоритм, тем более «явным» является описание. Требования к функциям для построения PRG Алгоритм должен работать за время 2O(n) . М. Вялый (vyalyi@gmail.com) Вычисления и случайность малый ШАД, 08.02.2014 46 / 47
  • 109. Что такое «явно» заданная функция? Описание семейства функций Семейство функций: для каждого n задана функция fn (x1 , . . . , xn ). Описание: алгоритм A, который по входным переменным x1 , . . . , xn , возвращает значение fn (x1 , . . . , xn ). Чем меньше времени работает алгоритм, тем более «явным» является описание. Требования к функциям для построения PRG Алгоритм должен работать за время 2O(n) . М. Вялый (vyalyi@gmail.com) Вычисления и случайность малый ШАД, 08.02.2014 46 / 47
  • 110. Теорема Вигдерсона – Импальяццо Теорема (в такой форме впервые доказана Умансом) Если существует семейство функций fn от n переменных, которое порождается алгоритмом, работающим за время 2O(n) ; имеет схемную сложность 2Ω(n) ; то работу любого эффективного вероятностного алгоритма можно моделировать работой эффективного детерминированного алгоритма. Avi Wigderson М. Вялый (vyalyi@gmail.com) Russel Impagliazzo Вычисления и случайность Christopher Umans малый ШАД, 08.02.2014 47 / 47