SlideShare a Scribd company logo
1 of 110
Download to read offline
Помогают ли в вычислениях подбрасывания монетки?
М. Вялый
Вычислительный центр
им. А.А.Дородницына
Российской Академии наук

малый ШАД, 08.02.2014

М. Вялый (vyalyi@gmail.com)

Вычисления и случайность

малый ШАД, 08.02.2014

1 / 47
О чем пойдет речь

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
Детерминированные алгоритмы
Вместо определения
Алгоритм — настолько точно определенная инструкция, что она может
быть исполнена механически.

Основное свойство детерминированных алгоритмов
Каждое следующее состояние однозначно определяется текущим
состоянием.

М. Вялый (vyalyi@gmail.com)

Вычисления и случайность

малый ШАД, 08.02.2014

3 / 47
Детерминированные алгоритмы
Вместо определения
Алгоритм — настолько точно определенная инструкция, что она может
быть исполнена механически.

Основное свойство детерминированных алгоритмов
Каждое следующее состояние однозначно определяется текущим
состоянием.
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
Вероятностные алгоритмы
Подбрасывание монетки
Результат с равной вероятностью равен 0 или 1. Разные
подбрасывания независимы.

М. Вялый (vyalyi@gmail.com)

Вычисления и случайность

малый ШАД, 08.02.2014

4 / 47
Вероятностные алгоритмы
Подбрасывание монетки
Результат с равной вероятностью равен 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
Несущественные обобщения

1

У монетки может быть много сторон — исходов. Например, у
игральных костей их 6.

2

Вероятности исходов не обязательно равны. Сумма вероятностей
всех возможных исходов равна 1.

Разные испытания по-прежнему независимы.

М. Вялый (vyalyi@gmail.com)

Вычисления и случайность

малый ШАД, 08.02.2014

5 / 47
Несущественные обобщения

1

У монетки может быть много сторон — исходов. Например, у
игральных костей их 6.

2

Вероятности исходов не обязательно равны. Сумма вероятностей
всех возможных исходов равна 1.

Разные испытания по-прежнему независимы.

М. Вялый (vyalyi@gmail.com)

Вычисления и случайность

малый ШАД, 08.02.2014

5 / 47
Несущественные обобщения

1

У монетки может быть много сторон — исходов. Например, у
игральных костей их 6.

2

Вероятности исходов не обязательно равны. Сумма вероятностей
всех возможных исходов равна 1.

Разные испытания по-прежнему независимы.

М. Вялый (vyalyi@gmail.com)

Вычисления и случайность

малый ШАД, 08.02.2014

5 / 47
Подсчет вероятности ошибки
Два основных правила
Вероятности независимых событий перемножаются.
Вероятности несовместных событий складываются.

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
Велика ли вероятность ошибки 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
Если правильный ответ неизвестен
Пусть алгоритм дает ответ «да» или «нет».
Если вероятность ошибки меньше ε < 1/2, то повторения алгоритма
позволяют быстро уменьшать вероятность ошибки.

Правило голосования
Повтори алгоритм k раз и выдай тот ответ, который встретился чаще.

Вероятность ошибки для алгоритма голосования
Пусть вероятность ошибки .

М. Вялый (vyalyi@gmail.com)

Вычисления и случайность

малый ШАД, 08.02.2014

8 / 47
Если правильный ответ неизвестен
Пусть алгоритм дает ответ «да» или «нет».
Если вероятность ошибки меньше ε < 1/2, то повторения алгоритма
позволяют быстро уменьшать вероятность ошибки.

Правило голосования
Повтори алгоритм k раз и выдай тот ответ, который встретился чаще.

Вероятность ошибки для алгоритма голосования
Пусть вероятность ошибки .

М. Вялый (vyalyi@gmail.com)

Вычисления и случайность

малый ШАД, 08.02.2014

8 / 47
Если правильный ответ неизвестен
Пусть алгоритм дает ответ «да» или «нет».
Если вероятность ошибки меньше ε < 1/2, то повторения алгоритма
позволяют быстро уменьшать вероятность ошибки.

Правило голосования
Повтори алгоритм k раз и выдай тот ответ, который встретился чаще.

Вероятность ошибки для алгоритма голосования
Пусть вероятность ошибки 1/3.

М. Вялый (vyalyi@gmail.com)

Вычисления и случайность

малый ШАД, 08.02.2014

8 / 47
Если правильный ответ неизвестен
Пусть алгоритм дает ответ «да» или «нет».
Если вероятность ошибки меньше ε < 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
Если правильный ответ неизвестен
Пусть алгоритм дает ответ «да» или «нет».
Если вероятность ошибки меньше ε < 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
Если правильный ответ неизвестен
Пусть алгоритм дает ответ «да» или «нет».
Если вероятность ошибки меньше ε < 1/2, то повторения алгоритма
позволяют быстро уменьшать вероятность ошибки.

Правило голосования
Повтори алгоритм k раз и выдай тот ответ, который встретился чаще.

Вероятность ошибки для алгоритма голосования
Пусть вероятность ошибки ε.
Вероятность ошибки при голосовании k независимых исполнений алгоритма меньше
k
1−ε
2 ε(1 − ε) .
1 − 2ε

М. Вялый (vyalyi@gmail.com)

Вычисления и случайность

малый ШАД, 08.02.2014

8 / 47
План дальнейшего рассказа

1

Кооперативные вычисления

2

Ускорение работы алгоритмов

3

Фальшивая случайность

М. Вялый (vyalyi@gmail.com)

Вычисления и случайность

малый ШАД, 08.02.2014

9 / 47
Задача об установлении контакта

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
Алгоритмы для задачи о контакте
Задача
Докажите, что не существует детерминированного алгоритма, который
устанавливает контакт с любым партнером.

Вероятностный алгоритм
На каждом шаге выбирай место случайно, равновероятно и
независимо от предыдущих шагов.

Анализ алгоритма
Вероятность ошибки на каждом шаге 1/2.
После t шагов вероятность ошибки 2−t .

Замечание
Вероятность ошибки алгоритма контакта не зависит от действий
партнера.
М. Вялый (vyalyi@gmail.com)

Вычисления и случайность

малый ШАД, 08.02.2014

11 / 47
Алгоритмы для задачи о контакте
Задача
Докажите, что не существует детерминированного алгоритма, который
устанавливает контакт с любым партнером.

Вероятностный алгоритм
На каждом шаге выбирай место случайно, равновероятно и
независимо от предыдущих шагов.

Анализ алгоритма
Вероятность ошибки на каждом шаге 1/2.
После t шагов вероятность ошибки 2−t .

Замечание
Вероятность ошибки алгоритма контакта не зависит от действий
партнера.
М. Вялый (vyalyi@gmail.com)

Вычисления и случайность

малый ШАД, 08.02.2014

11 / 47
Алгоритмы для задачи о контакте
Задача
Докажите, что не существует детерминированного алгоритма, который
устанавливает контакт с любым партнером.

Вероятностный алгоритм
На каждом шаге выбирай место случайно, равновероятно и
независимо от предыдущих шагов.

Анализ алгоритма
Вероятность ошибки на каждом шаге 1/2.
После t шагов вероятность ошибки 2−t .

Замечание
Вероятность ошибки алгоритма контакта не зависит от действий
партнера.
М. Вялый (vyalyi@gmail.com)

Вычисления и случайность

малый ШАД, 08.02.2014

11 / 47
Алгоритмы для задачи о контакте
Задача
Докажите, что не существует детерминированного алгоритма, который
устанавливает контакт с любым партнером.

Вероятностный алгоритм
На каждом шаге выбирай место случайно, равновероятно и
независимо от предыдущих шагов.

Анализ алгоритма
Вероятность ошибки на каждом шаге 1/2.
После t шагов вероятность ошибки 2−t .

Замечание
Вероятность ошибки алгоритма контакта не зависит от действий
партнера.
М. Вялый (vyalyi@gmail.com)

Вычисления и случайность

малый ШАД, 08.02.2014

11 / 47
Задача проверки равенства третейским судьей
Условия

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
Детерминированные протоколы
Утверждение
Докажите, что если u и v определяются по x и y детерминированно,
т.е. u = f (x), v = g (y ), то для решения задачи равенства нужно
передать не меньше 2n битов.

М. Вялый (vyalyi@gmail.com)

Вычисления и случайность

малый ШАД, 08.02.2014

13 / 47
Детерминированные протоколы
Утверждение
Докажите, что если u и v определяются по x и y детерминированно,
т.е. u = f (x), v = g (y ), то для решения задачи равенства нужно
передать не меньше 2n битов.
Пусть длина u меньше n. Тогда возможных значений u меньше 2n , т.е.
меньше количества возможных значений x.

М. Вялый (vyalyi@gmail.com)

Вычисления и случайность

малый ШАД, 08.02.2014

13 / 47
Детерминированные протоколы
Утверждение
Докажите, что если 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
Детерминированные протоколы
Утверждение
Докажите, что если 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
Случайность как «канал связи»
Задача проверки равенства третейским судьей при наличии
общих случайных битов

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
Решение задачи проверки равенства с общим
источником случайности

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
Решение задачи проверки равенства с общим
источником случайности

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
Решение задачи проверки равенства с общим
источником случайности

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
Решение задачи проверки равенства с общим
источником случайности

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
Решение задачи проверки равенства с общим
источником случайности

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
Оценка вероятности ошибки
Утверждение
В случае 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
Оценка вероятности ошибки
Утверждение
В случае 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
Оценка вероятности ошибки
Утверждение
В случае 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
Уменьшение вероятности ошибки
Ошибка предложенного протокола — односторонняя. Это позволяет
уменьшать вероятность ошибки путем многократного выполнения
протокола.
Если Алиса и Боб выбирают 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
Уменьшение вероятности ошибки
Ошибка предложенного протокола — односторонняя. Это позволяет
уменьшать вероятность ошибки путем многократного выполнения
протокола.
Если Алиса и Боб выбирают 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
Уменьшение вероятности ошибки
Ошибка предложенного протокола — односторонняя. Это позволяет
уменьшать вероятность ошибки путем многократного выполнения
протокола.
Если Алиса и Боб выбирают 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
Протоколы при отсутствии общей случайности
Задача
Докажите, что есть способ выбора сообщений 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
Протоколы при отсутствии общей случайности
Задача
Докажите, что есть способ выбора сообщений 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
Протоколы при отсутствии общей случайности
Задача
Докажите, что есть способ выбора сообщений 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
План дальнейшего рассказа

1

Кооперативные вычисления

2

Ускорение работы алгоритмов

3

Фальшивая случайность

М. Вялый (vyalyi@gmail.com)

Вычисления и случайность

малый ШАД, 08.02.2014

19 / 47
Белые мыши теоретической информатики

Задача разрешения
По входным данным алгоритм должен ответить, обладают ли они
некоторым свойством.
Вход: описание данных.
Результат работы: ответ «да» или «нет».

Пример: проверка простоты числа
Вход: описание числа N (двоичная запись).
Результат работы: ответ «да», если N — простое и «нет» в
противном случае.

М. Вялый (vyalyi@gmail.com)

Вычисления и случайность

малый ШАД, 08.02.2014

20 / 47
Белые мыши теоретической информатики

Задача разрешения
По входным данным алгоритм должен ответить, обладают ли они
некоторым свойством.
Вход: описание данных.
Результат работы: ответ «да» или «нет».

Пример: проверка простоты числа
Вход: описание числа N (двоичная запись).
Результат работы: ответ «да», если N — простое и «нет» в
противном случае.

М. Вялый (vyalyi@gmail.com)

Вычисления и случайность

малый ШАД, 08.02.2014

20 / 47
Трудоемкость алгоритма
Время работы в худшем случае
t(n) — наибольшее количество элементарных шагов алгоритма при
работе на входных данных размера n.

Определение эффективного алгоритма
Время работы в худшем случае растет полиномиально: t(n) = nO(1) .

Одно из оправданий такого определения
Для алгоритма с временем работы n3 увеличение быстродействия
компьютера в 1000 раз увеличивает в 10 раз размер данных, для
которых можно решить задачу за то же время.
Для алгоритма с временем работы 1.1n увеличение быстродействия
компьютера в 1000 раз увеличивает на 72 размер данных, для которых
можно решить задачу за то же время.
М. Вялый (vyalyi@gmail.com)

Вычисления и случайность

малый ШАД, 08.02.2014

21 / 47
Трудоемкость алгоритма
Время работы в худшем случае
t(n) — наибольшее количество элементарных шагов алгоритма при
работе на входных данных размера n.

Определение эффективного алгоритма
Время работы в худшем случае растет полиномиально: t(n) = nO(1) .

Одно из оправданий такого определения
Для алгоритма с временем работы n3 увеличение быстродействия
компьютера в 1000 раз увеличивает в 10 раз размер данных, для
которых можно решить задачу за то же время.
Для алгоритма с временем работы 1.1n увеличение быстродействия
компьютера в 1000 раз увеличивает на 72 размер данных, для которых
можно решить задачу за то же время.
М. Вялый (vyalyi@gmail.com)

Вычисления и случайность

малый ШАД, 08.02.2014

21 / 47
Трудоемкость алгоритма
Время работы в худшем случае
t(n) — наибольшее количество элементарных шагов алгоритма при
работе на входных данных размера n.

Определение эффективного алгоритма
Время работы в худшем случае растет полиномиально: t(n) = nO(1) .

Одно из оправданий такого определения
Для алгоритма с временем работы n3 увеличение быстродействия
компьютера в 1000 раз увеличивает в 10 раз размер данных, для
которых можно решить задачу за то же время.
Для алгоритма с временем работы 1.1n увеличение быстродействия
компьютера в 1000 раз увеличивает на 72 размер данных, для которых
можно решить задачу за то же время.
М. Вялый (vyalyi@gmail.com)

Вычисления и случайность

малый ШАД, 08.02.2014

21 / 47
Уточнение исходного вопроса
Открытая проблема
Есть ли такая задача разрешения, для решения которой существуют
эффективные вероятностные алгоритмы с вероятностью ошибки
< 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
Ускорение работы случайным выбором
Удачные и неудачные варианты.
Детерминированный алгоритм вынужден перебирать варианты в
определенном порядке

М. Вялый (vyalyi@gmail.com)

Вычисления и случайность

малый ШАД, 08.02.2014

23 / 47
Ускорение работы случайным выбором
Удачные и неудачные варианты.
Детерминированный алгоритм вынужден перебирать варианты в
определенном порядке

Вероятностный алгоритм выбирает вариант случайно

М. Вялый (vyalyi@gmail.com)

Вычисления и случайность

малый ШАД, 08.02.2014

23 / 47
Оценка времени работы
Пусть всего вариантов 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
Оценка времени работы
Пусть всего вариантов 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
Оценка времени работы
Пусть всего вариантов 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
Оценка времени работы
Пусть всего вариантов 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
Проверка тождеств
Пример тождества: разность квадратов
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
Проверка тождеств
Пример тождества: разность квадратов
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
Проверка тождеств
Пример тождества: разность квадратов
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
Что говорит алгебра
Определения
Одночлен — это произведение числа и какого-то количества
переменных. Число называется коэффициентом.
Пример: 2x1 x2 x3 .
Многочлен — это сумма одночленов.
Пример: x 2 − y 2 .

Теорема 1
Любое целое алгебраическое выражение тождественно равно
некоторому многочлену.

Теорема 2
Многочлен тождественно равен нулю тогда и только тогда, когда все
его коэффициенты равны нулю.
М. Вялый (vyalyi@gmail.com)

Вычисления и случайность

малый ШАД, 08.02.2014

26 / 47
Что говорит алгебра
Определения
Одночлен — это произведение числа и какого-то количества
переменных. Число называется коэффициентом.
Пример: 2x1 x2 x3 .
Многочлен — это сумма одночленов.
Пример: x 2 − y 2 .

Теорема 1
Любое целое алгебраическое выражение тождественно равно
некоторому многочлену.

Теорема 2
Многочлен тождественно равен нулю тогда и только тогда, когда все
его коэффициенты равны нулю.
М. Вялый (vyalyi@gmail.com)

Вычисления и случайность

малый ШАД, 08.02.2014

26 / 47
Что говорит алгебра
Определения
Одночлен — это произведение числа и какого-то количества
переменных. Число называется коэффициентом.
Пример: 2x1 x2 x3 .
Многочлен — это сумма одночленов.
Пример: x 2 − y 2 .

Теорема 1
Любое целое алгебраическое выражение тождественно равно
некоторому многочлену.

Теорема 2
Многочлен тождественно равен нулю тогда и только тогда, когда все
его коэффициенты равны нулю.
М. Вялый (vyalyi@gmail.com)

Вычисления и случайность

малый ШАД, 08.02.2014

26 / 47
Простейший алгоритм проверки тождества
Задача проверки тождества (PIT)
Дано: целое алгебраическое выражение (формула с числами и
переменными, использующая операции сложения, вычитания и
умножения).
Спрашивается: является ли это выражение тождеством? (То есть
равно ли его значение нулю при любых значениях переменных.)
Простейший алгоритм для PIT:
1

Раскрыть скобки.

2

Привести подобные.

3

Если нашелся хотя бы один ненулевой коэффициент, то ответ
«нет» (не тождество). В противном случае ответ «да»
(тождество).

М. Вялый (vyalyi@gmail.com)

Вычисления и случайность

малый ШАД, 08.02.2014

27 / 47
Простейший алгоритм проверки тождества
Задача проверки тождества (PIT)
Дано: целое алгебраическое выражение (формула с числами и
переменными, использующая операции сложения, вычитания и
умножения).
Спрашивается: является ли это выражение тождеством? (То есть
равно ли его значение нулю при любых значениях переменных.)
Простейший алгоритм для PIT:
1

Раскрыть скобки.

2

Привести подобные.

3

Если нашелся хотя бы один ненулевой коэффициент, то ответ
«нет» (не тождество). В противном случае ответ «да»
(тождество).

М. Вялый (vyalyi@gmail.com)

Вычисления и случайность

малый ШАД, 08.02.2014

27 / 47
Простейший алгоритм проверки тождества
Задача проверки тождества (PIT)
Дано: целое алгебраическое выражение (формула с числами и
переменными, использующая операции сложения, вычитания и
умножения).
Спрашивается: является ли это выражение тождеством? (То есть
равно ли его значение нулю при любых значениях переменных.)
Простейший алгоритм для PIT:
1

Раскрыть скобки.

2

Привести подобные.

3

Если нашелся хотя бы один ненулевой коэффициент, то ответ
«нет» (не тождество). В противном случае ответ «да»
(тождество).

М. Вялый (vyalyi@gmail.com)

Вычисления и случайность

малый ШАД, 08.02.2014

27 / 47
Простейший алгоритм проверки тождества
Задача проверки тождества (PIT)
Дано: целое алгебраическое выражение (формула с числами и
переменными, использующая операции сложения, вычитания и
умножения).
Спрашивается: является ли это выражение тождеством? (То есть
равно ли его значение нулю при любых значениях переменных.)
Простейший алгоритм для PIT:
1

Раскрыть скобки.

2

Привести подобные.

3

Если нашелся хотя бы один ненулевой коэффициент, то ответ
«нет» (не тождество). В противном случае ответ «да»
(тождество).

М. Вялый (vyalyi@gmail.com)

Вычисления и случайность

малый ШАД, 08.02.2014

27 / 47
Является ли простейший алгоритм эффективным?

Напомним, что время работы оценивается в худшем случае.
Ответ: нет.

Неформальное объяснение
Количество разных (неподобных) одночленов в разложении формулы
√
размера L может оказаться велико: 2Ω( L) .
√
Функция 2Ω( L) растет быстрее любого многочлена, а время работы
простейшего алгоритма не меньше количества неподобных одночленов.

М. Вялый (vyalyi@gmail.com)

Вычисления и случайность

малый ШАД, 08.02.2014

28 / 47
Является ли простейший алгоритм эффективным?

Напомним, что время работы оценивается в худшем случае.
Ответ: нет.

Неформальное объяснение
Количество разных (неподобных) одночленов в разложении формулы
√
размера L может оказаться велико: 2Ω( L) .
√
Функция 2Ω( L) растет быстрее любого многочлена, а время работы
простейшего алгоритма не меньше количества неподобных одночленов.

М. Вялый (vyalyi@gmail.com)

Вычисления и случайность

малый ШАД, 08.02.2014

28 / 47
Является ли простейший алгоритм эффективным?

Напомним, что время работы оценивается в худшем случае.
Ответ: нет.

Неформальное объяснение
Количество разных (неподобных) одночленов в разложении формулы
√
размера L может оказаться велико: 2Ω( L) .
√
Функция 2Ω( L) растет быстрее любого многочлена, а время работы
простейшего алгоритма не меньше количества неподобных одночленов.

М. Вялый (vyalyi@gmail.com)

Вычисления и случайность

малый ШАД, 08.02.2014

28 / 47
Вероятностный алгоритм проверки тождества

Пусть дано целое алгебраическое выражение 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
Вероятностный алгоритм проверки тождества

Пусть дано целое алгебраическое выражение 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
Вероятностный алгоритм проверки тождества

Пусть дано целое алгебраическое выражение 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
Оценка времени работы
Легко видеть, что n L (каждую переменную, входящую в
выражение, нужно записать).
На шаге 2 выбирается nL

L2 случайных битов.

Есть эффективный алгоритм вычисления значения выражения на
заданном наборе переменных: выражение задает порядок
действий, каждую арифметическую операцию выполняем
школьными алгоритмами, они работают за время O( 2 ), где —
длина записи операндов. При этом
L и нужно выполнить L
операций.

Утверждение
Вероятностный алгоритм работает за время, которое растет не более
чем кубически от размера входного выражения.

М. Вялый (vyalyi@gmail.com)

Вычисления и случайность

малый ШАД, 08.02.2014

30 / 47
Оценка времени работы
Легко видеть, что n L (каждую переменную, входящую в
выражение, нужно записать).
На шаге 2 выбирается nL

L2 случайных битов.

Есть эффективный алгоритм вычисления значения выражения на
заданном наборе переменных: выражение задает порядок
действий, каждую арифметическую операцию выполняем
школьными алгоритмами, они работают за время O( 2 ), где —
длина записи операндов. При этом
L и нужно выполнить L
операций.

Утверждение
Вероятностный алгоритм работает за время, которое растет не более
чем кубически от размера входного выражения.

М. Вялый (vyalyi@gmail.com)

Вычисления и случайность

малый ШАД, 08.02.2014

30 / 47
Оценка времени работы
Легко видеть, что n L (каждую переменную, входящую в
выражение, нужно записать).
На шаге 2 выбирается nL

L2 случайных битов.

Есть эффективный алгоритм вычисления значения выражения на
заданном наборе переменных: выражение задает порядок
действий, каждую арифметическую операцию выполняем
школьными алгоритмами, они работают за время O( 2 ), где —
длина записи операндов. При этом
L и нужно выполнить L
операций.

Утверждение
Вероятностный алгоритм работает за время, которое растет не более
чем кубически от размера входного выражения.

М. Вялый (vyalyi@gmail.com)

Вычисления и случайность

малый ШАД, 08.02.2014

30 / 47
Оценка времени работы
Легко видеть, что n L (каждую переменную, входящую в
выражение, нужно записать).
На шаге 2 выбирается nL

L2 случайных битов.

Есть эффективный алгоритм вычисления значения выражения на
заданном наборе переменных: выражение задает порядок
действий, каждую арифметическую операцию выполняем
школьными алгоритмами, они работают за время O( 2 ), где —
длина записи операндов. При этом
L и нужно выполнить L
операций.

Утверждение
Вероятностный алгоритм работает за время, которое растет не более
чем кубически от размера входного выражения.

М. Вялый (vyalyi@gmail.com)

Вычисления и случайность

малый ШАД, 08.02.2014

30 / 47
Вероятность ошибки

Теорема
Вероятность ошибки предложенного алгоритма проверки равенства не
более
L
.
2L

М. Вялый (vyalyi@gmail.com)

Вычисления и случайность

малый ШАД, 08.02.2014

31 / 47
Ненулевой многочлен редко обращается в ноль
Наблюдение
Если целое алгебраическое выражение длины 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
Ненулевой многочлен редко обращается в ноль
Наблюдение
Если целое алгебраическое выражение длины 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
Случай одной переменной
Лемма Шварца – Зиппеля для одной переменной
Пусть 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
Случай одной переменной
Лемма Шварца – Зиппеля для одной переменной
Пусть 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
Случай одной переменной
Лемма Шварца – Зиппеля для одной переменной
Пусть 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
Случай одной переменной
Лемма Шварца – Зиппеля для одной переменной
Пусть 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
Индукция по числу переменных
Разложим многочлен 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
Индукция по числу переменных
Разложим многочлен 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
Индукция по числу переменных
Разложим многочлен 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
Детерминированные алгоритмы для PIT

Открытый вопрос
Есть ли эффективные алгоритмы проверки тождества?

М. Вялый (vyalyi@gmail.com)

Вычисления и случайность

малый ШАД, 08.02.2014

35 / 47
План дальнейшего рассказа

1

Кооперативные вычисления

2

Ускорение работы алгоритмов

3

Фальшивая случайность

М. Вялый (vyalyi@gmail.com)

Вычисления и случайность

малый ШАД, 08.02.2014

36 / 47
Источники случайности в реальных программах
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
Источники случайности в реальных программах
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
Источники случайности в реальных программах
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
Сравнение «истинной» и «фальшивой» случайности

истинные случайные биты с
random.org

М. Вялый (vyalyi@gmail.com)

фальшивые случайные биты
от Microsoft Windows

Вычисления и случайность

малый ШАД, 08.02.2014

38 / 47
Дерандомизация: избавление от случайности

Предположим, что алгоритм 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
Дерандомизация: избавление от случайности

Предположим, что алгоритм 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
Дерандомизация: избавление от случайности

Предположим, что алгоритм 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
Цена дерандомизации
Дерандомизированный алгоритм исполняет алгоритм 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
Цена дерандомизации
Дерандомизированный алгоритм исполняет алгоритм 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
Цена дерандомизации
Дерандомизированный алгоритм исполняет алгоритм 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
Цена дерандомизации
Дерандомизированный алгоритм исполняет алгоритм 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
Цель
Построить один псевдослучайный генератор для всех алгоритмов,
работающих за заданное время 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
Цель
Построить один псевдослучайный генератор для всех алгоритмов,
работающих за заданное время 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
Тестирование случайности

xm

x1

x2

x3

x4

x5

TESTER

T

T (x1 , . . . , xm )

Количество входов тестера — количество случайных битов,
использованных в алгоритме. Без ограничения общности считаем, что
алгоритм, работающий за время t, использует m = t случайных битов.
(Некоторые останутся фактически неиспользованными.)

М. Вялый (vyalyi@gmail.com)

Вычисления и случайность

малый ШАД, 08.02.2014

42 / 47
Требования к хорошему псевдослучайному генератору
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
Существуют ли хорошие псевдослучайные генераторы?
Частичный ответ
Да, существуют в предположении, что существуют семейства явно
заданных, но сложных функций.

М. Вялый (vyalyi@gmail.com)

Вычисления и случайность

малый ШАД, 08.02.2014

44 / 47
Схемная сложность
Определение
Схемная сложность C (f ) — это наименьший размер схемы,
вычисляющей f .

Утверждение (here be dragons!)
Существуют булевы функции от n переменных, имеющие схемную
сложность > 2n /3n.

Идея доказательства
Подсчет количества схем размера s с n входными переменными и
количества функций от n переменных.
При s < 2n /3n схем меньше, чем функций.

М. Вялый (vyalyi@gmail.com)

Вычисления и случайность

малый ШАД, 08.02.2014

45 / 47
Схемная сложность
Определение
Схемная сложность C (f ) — это наименьший размер схемы,
вычисляющей f .

Утверждение (here be dragons!)
Существуют булевы функции от n переменных, имеющие схемную
сложность > 2n /3n.

Идея доказательства
Подсчет количества схем размера s с n входными переменными и
количества функций от n переменных.
При s < 2n /3n схем меньше, чем функций.

М. Вялый (vyalyi@gmail.com)

Вычисления и случайность

малый ШАД, 08.02.2014

45 / 47
Схемная сложность
Определение
Схемная сложность C (f ) — это наименьший размер схемы,
вычисляющей f .

Утверждение (here be dragons!)
Существуют булевы функции от n переменных, имеющие схемную
сложность > 2n /3n.

Идея доказательства
Подсчет количества схем размера s с n входными переменными и
количества функций от n переменных.
При s < 2n /3n схем меньше, чем функций.

М. Вялый (vyalyi@gmail.com)

Вычисления и случайность

малый ШАД, 08.02.2014

45 / 47
Что такое «явно» заданная функция?

Описание семейства функций
Семейство функций: для каждого n задана функция fn (x1 , . . . , xn ).
Описание: алгоритм A, который по входным переменным x1 , . . . , xn ,
возвращает значение fn (x1 , . . . , xn ).
Чем меньше времени работает алгоритм, тем более «явным» является
описание.

Требования к функциям для построения PRG
Алгоритм должен работать за время 2O(n) .

М. Вялый (vyalyi@gmail.com)

Вычисления и случайность

малый ШАД, 08.02.2014

46 / 47
Что такое «явно» заданная функция?

Описание семейства функций
Семейство функций: для каждого n задана функция fn (x1 , . . . , xn ).
Описание: алгоритм A, который по входным переменным x1 , . . . , xn ,
возвращает значение fn (x1 , . . . , xn ).
Чем меньше времени работает алгоритм, тем более «явным» является
описание.

Требования к функциям для построения PRG
Алгоритм должен работать за время 2O(n) .

М. Вялый (vyalyi@gmail.com)

Вычисления и случайность

малый ШАД, 08.02.2014

46 / 47
Теорема Вигдерсона – Импальяццо
Теорема (в такой форме впервые доказана Умансом)
Если существует семейство функций fn от n переменных, которое
порождается алгоритмом, работающим за время 2O(n) ;
имеет схемную сложность 2Ω(n) ;
то работу любого эффективного вероятностного алгоритма можно
моделировать работой эффективного детерминированного алгоритма.

Avi Wigderson
М. Вялый (vyalyi@gmail.com)

Russel Impagliazzo
Вычисления и случайность

Christopher Umans
малый ШАД, 08.02.2014

47 / 47

More Related Content

Viewers also liked

Tecnología e industria
Tecnología e industriaTecnología e industria
Tecnología e industria
erikaaparicio
 
Colegio nacional educación profesional
Colegio nacional educación profesionalColegio nacional educación profesional
Colegio nacional educación profesional
Jair Pozos
 
Arena da ilha do retiro
Arena  da ilha do retiro Arena  da ilha do retiro
Arena da ilha do retiro
Portal NE10
 
Joel alumni spotlight
Joel alumni spotlightJoel alumni spotlight
Joel alumni spotlight
Joel Guberud
 
la empresa
la empresa la empresa
la empresa
ambcrea
 
Recommendation Letter [Miha]
Recommendation Letter [Miha]Recommendation Letter [Miha]
Recommendation Letter [Miha]
Raz Shalel
 
Mortose desaparecidos introducao
Mortose desaparecidos introducaoMortose desaparecidos introducao
Mortose desaparecidos introducao
Portal NE10
 

Viewers also liked (20)

Михаил Давыдов "Масштабируемые JavaScript-приложения"
Михаил Давыдов "Масштабируемые JavaScript-приложения"Михаил Давыдов "Масштабируемые JavaScript-приложения"
Михаил Давыдов "Масштабируемые JavaScript-приложения"
 
Леонид Шныр "О роли карт в прогрессивном сайтостроении"
Леонид Шныр "О роли карт в прогрессивном сайтостроении"Леонид Шныр "О роли карт в прогрессивном сайтостроении"
Леонид Шныр "О роли карт в прогрессивном сайтостроении"
 
Илья Наринский "Интегральный подход в дизайне"
Илья Наринский "Интегральный подход в дизайне"Илья Наринский "Интегральный подход в дизайне"
Илья Наринский "Интегральный подход в дизайне"
 
О.В. Сухорослов "Разбор ДЗ №3,4"
О.В. Сухорослов "Разбор ДЗ №3,4"О.В. Сухорослов "Разбор ДЗ №3,4"
О.В. Сухорослов "Разбор ДЗ №3,4"
 
Евгений Волков "Платформа LBS"
Евгений Волков "Платформа LBS"Евгений Волков "Платформа LBS"
Евгений Волков "Платформа LBS"
 
20131105 романенко
20131105 романенко20131105 романенко
20131105 романенко
 
CaseCard-Zin5
CaseCard-Zin5CaseCard-Zin5
CaseCard-Zin5
 
AMFI
AMFIAMFI
AMFI
 
Tecnología e industria
Tecnología e industriaTecnología e industria
Tecnología e industria
 
Colegio nacional educación profesional
Colegio nacional educación profesionalColegio nacional educación profesional
Colegio nacional educación profesional
 
Programação Outubro Rosa
Programação Outubro RosaProgramação Outubro Rosa
Programação Outubro Rosa
 
Arena da ilha do retiro
Arena  da ilha do retiro Arena  da ilha do retiro
Arena da ilha do retiro
 
Tema 1
Tema 1Tema 1
Tema 1
 
Joel alumni spotlight
Joel alumni spotlightJoel alumni spotlight
Joel alumni spotlight
 
la empresa
la empresa la empresa
la empresa
 
Recommendation Letter [Miha]
Recommendation Letter [Miha]Recommendation Letter [Miha]
Recommendation Letter [Miha]
 
Reference Pete
Reference PeteReference Pete
Reference Pete
 
Ml
MlMl
Ml
 
Mortose desaparecidos introducao
Mortose desaparecidos introducaoMortose desaparecidos introducao
Mortose desaparecidos introducao
 
Foro de catedra ua
Foro de catedra uaForo de catedra ua
Foro de catedra ua
 

More from Yandex

Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...
Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...
Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...
Yandex
 
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров Яндекса
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров ЯндексаСтруктурированные данные, Юлия Тихоход, лекция в Школе вебмастеров Яндекса
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров Яндекса
Yandex
 
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров Яндекса
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров ЯндексаПредставление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров Яндекса
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров Яндекса
Yandex
 
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...
Yandex
 
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...
Yandex
 
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...
Yandex
 
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...
Yandex
 
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...
Yandex
 
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...
Yandex
 
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...
Yandex
 
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...
Yandex
 
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеровКак защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Yandex
 
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...
Yandex
 
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...
Yandex
 
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...
Yandex
 
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...
Yandex
 
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...
Yandex
 
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...
Yandex
 
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...
Yandex
 

More from Yandex (20)

Предсказание оттока игроков из World of Tanks
Предсказание оттока игроков из World of TanksПредсказание оттока игроков из World of Tanks
Предсказание оттока игроков из World of Tanks
 
Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...
Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...
Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...
 
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров Яндекса
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров ЯндексаСтруктурированные данные, Юлия Тихоход, лекция в Школе вебмастеров Яндекса
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров Яндекса
 
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров Яндекса
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров ЯндексаПредставление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров Яндекса
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров Яндекса
 
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...
 
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...
 
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...
 
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...
 
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...
 
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...
 
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...
 
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...
 
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеровКак защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
 
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...
 
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...
 
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...
 
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...
 
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...
 
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...
 
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...
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
  • 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