Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...
Михаил Вялый - помогает ли в вычислениях подбрасывание монетки
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
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