173
с/к “Эффективные алгоритмы” Лекция 10: Дерандомизация А. Куликов Computer Science клуб при ПОМИ http://logic.pdmi.ras.ru/infclub/ А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 1 / 42

20071125 efficientalgorithms kulikov_lecture10

Embed Size (px)

Citation preview

Page 1: 20071125 efficientalgorithms kulikov_lecture10

с/к “Эффективные алгоритмы”Лекция 10: Дерандомизация

А. Куликов

Computer Science клуб при ПОМИhttp://logic.pdmi.ras.ru/∼infclub/

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 1 / 42

Page 2: 20071125 efficientalgorithms kulikov_lecture10

План лекции

1 Метод условных вероятностейОбщая идеяОбщий методНахождение двудольного подграфаМаксимальная выполнимость

2 Метод малых пространств событийНезависимость по kНахождение двудольного подграфа

3 Свободные от сумм множества

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 2 / 42

Page 3: 20071125 efficientalgorithms kulikov_lecture10

План лекции

1 Метод условных вероятностейОбщая идеяОбщий методНахождение двудольного подграфаМаксимальная выполнимость

2 Метод малых пространств событийНезависимость по kНахождение двудольного подграфа

3 Свободные от сумм множества

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 2 / 42

Page 4: 20071125 efficientalgorithms kulikov_lecture10

План лекции

1 Метод условных вероятностейОбщая идеяОбщий методНахождение двудольного подграфаМаксимальная выполнимость

2 Метод малых пространств событийНезависимость по kНахождение двудольного подграфа

3 Свободные от сумм множества

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 2 / 42

Page 5: 20071125 efficientalgorithms kulikov_lecture10

Методы

Методы

Естественным способом дерандомизации вероятностногоалгоритма A является нахождение эффективного метода поиска всоответствующем пространстве событий Ω точки w , хорошейотносительно входа x .Точка w называется хорошей относительно x , если A(x , w) = f (x).Проблема состоит в том, что пространство событий, как правило,имеет экспоненциальный размер.Два метода:

1 Метод условных вероятностей. Начинает с тривиальногопространства Ω, но ищет в нём хитро.

2 Метод малых пространств событий. Пытается построитьвероятностное пространство Ω′ меньшего (полиномиального)размера, после чего перебирает все его точки.

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 3 / 42

Page 6: 20071125 efficientalgorithms kulikov_lecture10

Методы

МетодыЕстественным способом дерандомизации вероятностногоалгоритма A является нахождение эффективного метода поиска всоответствующем пространстве событий Ω точки w , хорошейотносительно входа x .

Точка w называется хорошей относительно x , если A(x , w) = f (x).Проблема состоит в том, что пространство событий, как правило,имеет экспоненциальный размер.Два метода:

1 Метод условных вероятностей. Начинает с тривиальногопространства Ω, но ищет в нём хитро.

2 Метод малых пространств событий. Пытается построитьвероятностное пространство Ω′ меньшего (полиномиального)размера, после чего перебирает все его точки.

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 3 / 42

Page 7: 20071125 efficientalgorithms kulikov_lecture10

Методы

МетодыЕстественным способом дерандомизации вероятностногоалгоритма A является нахождение эффективного метода поиска всоответствующем пространстве событий Ω точки w , хорошейотносительно входа x .Точка w называется хорошей относительно x , если A(x , w) = f (x).

Проблема состоит в том, что пространство событий, как правило,имеет экспоненциальный размер.Два метода:

1 Метод условных вероятностей. Начинает с тривиальногопространства Ω, но ищет в нём хитро.

2 Метод малых пространств событий. Пытается построитьвероятностное пространство Ω′ меньшего (полиномиального)размера, после чего перебирает все его точки.

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 3 / 42

Page 8: 20071125 efficientalgorithms kulikov_lecture10

Методы

МетодыЕстественным способом дерандомизации вероятностногоалгоритма A является нахождение эффективного метода поиска всоответствующем пространстве событий Ω точки w , хорошейотносительно входа x .Точка w называется хорошей относительно x , если A(x , w) = f (x).Проблема состоит в том, что пространство событий, как правило,имеет экспоненциальный размер.

Два метода:1 Метод условных вероятностей. Начинает с тривиального

пространства Ω, но ищет в нём хитро.2 Метод малых пространств событий. Пытается построить

вероятностное пространство Ω′ меньшего (полиномиального)размера, после чего перебирает все его точки.

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 3 / 42

Page 9: 20071125 efficientalgorithms kulikov_lecture10

Методы

МетодыЕстественным способом дерандомизации вероятностногоалгоритма A является нахождение эффективного метода поиска всоответствующем пространстве событий Ω точки w , хорошейотносительно входа x .Точка w называется хорошей относительно x , если A(x , w) = f (x).Проблема состоит в том, что пространство событий, как правило,имеет экспоненциальный размер.Два метода:

1 Метод условных вероятностей. Начинает с тривиальногопространства Ω, но ищет в нём хитро.

2 Метод малых пространств событий. Пытается построитьвероятностное пространство Ω′ меньшего (полиномиального)размера, после чего перебирает все его точки.

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 3 / 42

Page 10: 20071125 efficientalgorithms kulikov_lecture10

Методы

МетодыЕстественным способом дерандомизации вероятностногоалгоритма A является нахождение эффективного метода поиска всоответствующем пространстве событий Ω точки w , хорошейотносительно входа x .Точка w называется хорошей относительно x , если A(x , w) = f (x).Проблема состоит в том, что пространство событий, как правило,имеет экспоненциальный размер.Два метода:

1 Метод условных вероятностей. Начинает с тривиальногопространства Ω, но ищет в нём хитро.

2 Метод малых пространств событий. Пытается построитьвероятностное пространство Ω′ меньшего (полиномиального)размера, после чего перебирает все его точки.

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 3 / 42

Page 11: 20071125 efficientalgorithms kulikov_lecture10

Методы

МетодыЕстественным способом дерандомизации вероятностногоалгоритма A является нахождение эффективного метода поиска всоответствующем пространстве событий Ω точки w , хорошейотносительно входа x .Точка w называется хорошей относительно x , если A(x , w) = f (x).Проблема состоит в том, что пространство событий, как правило,имеет экспоненциальный размер.Два метода:

1 Метод условных вероятностей. Начинает с тривиальногопространства Ω, но ищет в нём хитро.

2 Метод малых пространств событий. Пытается построитьвероятностное пространство Ω′ меньшего (полиномиального)размера, после чего перебирает все его точки.

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 3 / 42

Page 12: 20071125 efficientalgorithms kulikov_lecture10

План лекции

1 Метод условных вероятностейОбщая идеяОбщий методНахождение двудольного подграфаМаксимальная выполнимость

2 Метод малых пространств событийНезависимость по kНахождение двудольного подграфа

3 Свободные от сумм множества

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 4 / 42

Page 13: 20071125 efficientalgorithms kulikov_lecture10

План лекции

1 Метод условных вероятностейОбщая идеяОбщий методНахождение двудольного подграфаМаксимальная выполнимость

2 Метод малых пространств событийНезависимость по kНахождение двудольного подграфа

3 Свободные от сумм множества

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 5 / 42

Page 14: 20071125 efficientalgorithms kulikov_lecture10

Общая идея

Общая идея

Основная цель метода — преобразовывать вероятностныедоказательства существования комбинаторных объектов вэффективные детерминированные алгоритмы построения такихобъектов.На каждом шаге текущее пространство событий делится на дверавные по размеру части, для каждой из которых вычисляетсяусловная вероятность нахождения в ней хорошей точки.После этого поиск продолжается в половине, для которойподсчитанная вероятность оказалась выше.Поиск завершается через log2 |Ω| шагов, когда в пространствеокажется всего одна точка (которая должна быть хорошей).Метод работает, если такие условные вероятности могут бытьэффективно подсчитаны (или хотя бы приближены).

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 6 / 42

Page 15: 20071125 efficientalgorithms kulikov_lecture10

Общая идея

Общая идеяОсновная цель метода — преобразовывать вероятностныедоказательства существования комбинаторных объектов вэффективные детерминированные алгоритмы построения такихобъектов.

На каждом шаге текущее пространство событий делится на дверавные по размеру части, для каждой из которых вычисляетсяусловная вероятность нахождения в ней хорошей точки.После этого поиск продолжается в половине, для которойподсчитанная вероятность оказалась выше.Поиск завершается через log2 |Ω| шагов, когда в пространствеокажется всего одна точка (которая должна быть хорошей).Метод работает, если такие условные вероятности могут бытьэффективно подсчитаны (или хотя бы приближены).

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 6 / 42

Page 16: 20071125 efficientalgorithms kulikov_lecture10

Общая идея

Общая идеяОсновная цель метода — преобразовывать вероятностныедоказательства существования комбинаторных объектов вэффективные детерминированные алгоритмы построения такихобъектов.На каждом шаге текущее пространство событий делится на дверавные по размеру части, для каждой из которых вычисляетсяусловная вероятность нахождения в ней хорошей точки.

После этого поиск продолжается в половине, для которойподсчитанная вероятность оказалась выше.Поиск завершается через log2 |Ω| шагов, когда в пространствеокажется всего одна точка (которая должна быть хорошей).Метод работает, если такие условные вероятности могут бытьэффективно подсчитаны (или хотя бы приближены).

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 6 / 42

Page 17: 20071125 efficientalgorithms kulikov_lecture10

Общая идея

Общая идеяОсновная цель метода — преобразовывать вероятностныедоказательства существования комбинаторных объектов вэффективные детерминированные алгоритмы построения такихобъектов.На каждом шаге текущее пространство событий делится на дверавные по размеру части, для каждой из которых вычисляетсяусловная вероятность нахождения в ней хорошей точки.После этого поиск продолжается в половине, для которойподсчитанная вероятность оказалась выше.

Поиск завершается через log2 |Ω| шагов, когда в пространствеокажется всего одна точка (которая должна быть хорошей).Метод работает, если такие условные вероятности могут бытьэффективно подсчитаны (или хотя бы приближены).

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 6 / 42

Page 18: 20071125 efficientalgorithms kulikov_lecture10

Общая идея

Общая идеяОсновная цель метода — преобразовывать вероятностныедоказательства существования комбинаторных объектов вэффективные детерминированные алгоритмы построения такихобъектов.На каждом шаге текущее пространство событий делится на дверавные по размеру части, для каждой из которых вычисляетсяусловная вероятность нахождения в ней хорошей точки.После этого поиск продолжается в половине, для которойподсчитанная вероятность оказалась выше.Поиск завершается через log2 |Ω| шагов, когда в пространствеокажется всего одна точка (которая должна быть хорошей).

Метод работает, если такие условные вероятности могут бытьэффективно подсчитаны (или хотя бы приближены).

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 6 / 42

Page 19: 20071125 efficientalgorithms kulikov_lecture10

Общая идея

Общая идеяОсновная цель метода — преобразовывать вероятностныедоказательства существования комбинаторных объектов вэффективные детерминированные алгоритмы построения такихобъектов.На каждом шаге текущее пространство событий делится на дверавные по размеру части, для каждой из которых вычисляетсяусловная вероятность нахождения в ней хорошей точки.После этого поиск продолжается в половине, для которойподсчитанная вероятность оказалась выше.Поиск завершается через log2 |Ω| шагов, когда в пространствеокажется всего одна точка (которая должна быть хорошей).Метод работает, если такие условные вероятности могут бытьэффективно подсчитаны (или хотя бы приближены).

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 6 / 42

Page 20: 20071125 efficientalgorithms kulikov_lecture10

Пример: задача максимальной выполнимости

Пример: задача максимальной выполнимости

Рассмотрим КНФ формулу, содержащую только 3-клозы.Если присвоить каждой переменной значение случайным образом,то в среднем выполнится 7/8 всех клозов.Такой метод, однако, гарантирует лишь существование такогонабора, но ничего не говорит о том, как его искать.

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 7 / 42

Page 21: 20071125 efficientalgorithms kulikov_lecture10

Пример: задача максимальной выполнимости

Пример: задача максимальной выполнимостиРассмотрим КНФ формулу, содержащую только 3-клозы.

Если присвоить каждой переменной значение случайным образом,то в среднем выполнится 7/8 всех клозов.Такой метод, однако, гарантирует лишь существование такогонабора, но ничего не говорит о том, как его искать.

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 7 / 42

Page 22: 20071125 efficientalgorithms kulikov_lecture10

Пример: задача максимальной выполнимости

Пример: задача максимальной выполнимостиРассмотрим КНФ формулу, содержащую только 3-клозы.Если присвоить каждой переменной значение случайным образом,то в среднем выполнится 7/8 всех клозов.

Такой метод, однако, гарантирует лишь существование такогонабора, но ничего не говорит о том, как его искать.

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 7 / 42

Page 23: 20071125 efficientalgorithms kulikov_lecture10

Пример: задача максимальной выполнимости

Пример: задача максимальной выполнимостиРассмотрим КНФ формулу, содержащую только 3-клозы.Если присвоить каждой переменной значение случайным образом,то в среднем выполнится 7/8 всех клозов.Такой метод, однако, гарантирует лишь существование такогонабора, но ничего не говорит о том, как его искать.

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 7 / 42

Page 24: 20071125 efficientalgorithms kulikov_lecture10

Обезьяна и бананы

Обезьяна и бананы

Построим бинарное дерево с 2n листами, соответствующими всемвозможным наборам.Корень дерева будет снизу, листья — где-то в небе.Левая ветка каждого узла на уровне i будет соответствоватьслучаю xi = 0, правая — xi = 1.В каждый лист повесим чёрный ящик, в который положимстолько бананов, сколько клозов выполняет соответствующийнабор.После этого пригласим обезьяну достать какой-нибудь из ящиков.

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 8 / 42

Page 25: 20071125 efficientalgorithms kulikov_lecture10

Обезьяна и бананы

Обезьяна и бананыПостроим бинарное дерево с 2n листами, соответствующими всемвозможным наборам.

Корень дерева будет снизу, листья — где-то в небе.Левая ветка каждого узла на уровне i будет соответствоватьслучаю xi = 0, правая — xi = 1.В каждый лист повесим чёрный ящик, в который положимстолько бананов, сколько клозов выполняет соответствующийнабор.После этого пригласим обезьяну достать какой-нибудь из ящиков.

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 8 / 42

Page 26: 20071125 efficientalgorithms kulikov_lecture10

Обезьяна и бананы

Обезьяна и бананыПостроим бинарное дерево с 2n листами, соответствующими всемвозможным наборам.Корень дерева будет снизу, листья — где-то в небе.

Левая ветка каждого узла на уровне i будет соответствоватьслучаю xi = 0, правая — xi = 1.В каждый лист повесим чёрный ящик, в который положимстолько бананов, сколько клозов выполняет соответствующийнабор.После этого пригласим обезьяну достать какой-нибудь из ящиков.

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 8 / 42

Page 27: 20071125 efficientalgorithms kulikov_lecture10

Обезьяна и бананы

Обезьяна и бананыПостроим бинарное дерево с 2n листами, соответствующими всемвозможным наборам.Корень дерева будет снизу, листья — где-то в небе.Левая ветка каждого узла на уровне i будет соответствоватьслучаю xi = 0, правая — xi = 1.

В каждый лист повесим чёрный ящик, в который положимстолько бананов, сколько клозов выполняет соответствующийнабор.После этого пригласим обезьяну достать какой-нибудь из ящиков.

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 8 / 42

Page 28: 20071125 efficientalgorithms kulikov_lecture10

Обезьяна и бананы

Обезьяна и бананыПостроим бинарное дерево с 2n листами, соответствующими всемвозможным наборам.Корень дерева будет снизу, листья — где-то в небе.Левая ветка каждого узла на уровне i будет соответствоватьслучаю xi = 0, правая — xi = 1.В каждый лист повесим чёрный ящик, в который положимстолько бананов, сколько клозов выполняет соответствующийнабор.

После этого пригласим обезьяну достать какой-нибудь из ящиков.

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 8 / 42

Page 29: 20071125 efficientalgorithms kulikov_lecture10

Обезьяна и бананы

Обезьяна и бананыПостроим бинарное дерево с 2n листами, соответствующими всемвозможным наборам.Корень дерева будет снизу, листья — где-то в небе.Левая ветка каждого узла на уровне i будет соответствоватьслучаю xi = 0, правая — xi = 1.В каждый лист повесим чёрный ящик, в который положимстолько бананов, сколько клозов выполняет соответствующийнабор.После этого пригласим обезьяну достать какой-нибудь из ящиков.

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 8 / 42

Page 30: 20071125 efficientalgorithms kulikov_lecture10

Обезьяна и бананы

Обезьяна и бананы

Повторив эксперимент много раз для разных формул с разнымиколичествами клозов и переменных, с удивлением обнаружим, чтообезьяна всегда достаёт ящик, количество бананов в котором неменее 7/8 от общего количества клозов.Обезьяна никогда не смотрит на формулу (хотя ей разрешаетсяэто делать).Спросив её, в чём же её секрет (у неё определён-но он есть, это не могло быть просто удачей), получим такой ответ:

“Элементарно! В каждом узле я делаю одно и то же: ясмотрю, в каком поддереве больше бананов (ветка,поддерживающая это поддерево, наклонена ниже) иименно в него и иду.”

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 9 / 42

Page 31: 20071125 efficientalgorithms kulikov_lecture10

Обезьяна и бананы

Обезьяна и бананыПовторив эксперимент много раз для разных формул с разнымиколичествами клозов и переменных, с удивлением обнаружим, чтообезьяна всегда достаёт ящик, количество бананов в котором неменее 7/8 от общего количества клозов.

Обезьяна никогда не смотрит на формулу (хотя ей разрешаетсяэто делать).Спросив её, в чём же её секрет (у неё определён-но он есть, это не могло быть просто удачей), получим такой ответ:

“Элементарно! В каждом узле я делаю одно и то же: ясмотрю, в каком поддереве больше бананов (ветка,поддерживающая это поддерево, наклонена ниже) иименно в него и иду.”

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 9 / 42

Page 32: 20071125 efficientalgorithms kulikov_lecture10

Обезьяна и бананы

Обезьяна и бананыПовторив эксперимент много раз для разных формул с разнымиколичествами клозов и переменных, с удивлением обнаружим, чтообезьяна всегда достаёт ящик, количество бананов в котором неменее 7/8 от общего количества клозов.Обезьяна никогда не смотрит на формулу (хотя ей разрешаетсяэто делать).

Спросив её, в чём же её секрет (у неё определён-но он есть, это не могло быть просто удачей), получим такой ответ:

“Элементарно! В каждом узле я делаю одно и то же: ясмотрю, в каком поддереве больше бананов (ветка,поддерживающая это поддерево, наклонена ниже) иименно в него и иду.”

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 9 / 42

Page 33: 20071125 efficientalgorithms kulikov_lecture10

Обезьяна и бананы

Обезьяна и бананыПовторив эксперимент много раз для разных формул с разнымиколичествами клозов и переменных, с удивлением обнаружим, чтообезьяна всегда достаёт ящик, количество бананов в котором неменее 7/8 от общего количества клозов.Обезьяна никогда не смотрит на формулу (хотя ей разрешаетсяэто делать).Спросив её, в чём же её секрет (у неё определён-но он есть, это не могло быть просто удачей), получим такой ответ:

“Элементарно! В каждом узле я делаю одно и то же: ясмотрю, в каком поддереве больше бананов (ветка,поддерживающая это поддерево, наклонена ниже) иименно в него и иду.”

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 9 / 42

Page 34: 20071125 efficientalgorithms kulikov_lecture10

Обезьяна и бананы

Обезьяна и бананыПовторив эксперимент много раз для разных формул с разнымиколичествами клозов и переменных, с удивлением обнаружим, чтообезьяна всегда достаёт ящик, количество бананов в котором неменее 7/8 от общего количества клозов.Обезьяна никогда не смотрит на формулу (хотя ей разрешаетсяэто делать).Спросив её, в чём же её секрет (у неё определён-но он есть, это не могло быть просто удачей), получим такой ответ:

“Элементарно! В каждом узле я делаю одно и то же: ясмотрю, в каком поддереве больше бананов (ветка,поддерживающая это поддерево, наклонена ниже) иименно в него и иду.”

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 9 / 42

Page 35: 20071125 efficientalgorithms kulikov_lecture10

План лекции

1 Метод условных вероятностейОбщая идеяОбщий методНахождение двудольного подграфаМаксимальная выполнимость

2 Метод малых пространств событийНезависимость по kНахождение двудольного подграфа

3 Свободные от сумм множества

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 10 / 42

Page 36: 20071125 efficientalgorithms kulikov_lecture10

Общий метод

Общий метод

Рассмотрим пространство событий Ω = {0, 1}n.Пусть A1, . . . , Am — набор событий, а X1, . . . , Xm явлюятся иххарактеристическими переменными.Рассмотрим также случайную переменную X = X1 + · · ·+ Xm.E (X ) =

∑︀mi=1 Prob (Ai ).

Допустим, что у нас есть доказательство того факта, чтоE (X ) ≥ k .Значит, есть точка (𝜖1, . . . , 𝜖n) в пространстве событий, в которойвыполнены хотя бы k событий.Наша задача — найти такую точку детерминированно.

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 11 / 42

Page 37: 20071125 efficientalgorithms kulikov_lecture10

Общий метод

Общий методРассмотрим пространство событий Ω = {0, 1}n.

Пусть A1, . . . , Am — набор событий, а X1, . . . , Xm явлюятся иххарактеристическими переменными.Рассмотрим также случайную переменную X = X1 + · · ·+ Xm.E (X ) =

∑︀mi=1 Prob (Ai ).

Допустим, что у нас есть доказательство того факта, чтоE (X ) ≥ k .Значит, есть точка (𝜖1, . . . , 𝜖n) в пространстве событий, в которойвыполнены хотя бы k событий.Наша задача — найти такую точку детерминированно.

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 11 / 42

Page 38: 20071125 efficientalgorithms kulikov_lecture10

Общий метод

Общий методРассмотрим пространство событий Ω = {0, 1}n.Пусть A1, . . . , Am — набор событий, а X1, . . . , Xm явлюятся иххарактеристическими переменными.

Рассмотрим также случайную переменную X = X1 + · · ·+ Xm.E (X ) =

∑︀mi=1 Prob (Ai ).

Допустим, что у нас есть доказательство того факта, чтоE (X ) ≥ k .Значит, есть точка (𝜖1, . . . , 𝜖n) в пространстве событий, в которойвыполнены хотя бы k событий.Наша задача — найти такую точку детерминированно.

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 11 / 42

Page 39: 20071125 efficientalgorithms kulikov_lecture10

Общий метод

Общий методРассмотрим пространство событий Ω = {0, 1}n.Пусть A1, . . . , Am — набор событий, а X1, . . . , Xm явлюятся иххарактеристическими переменными.Рассмотрим также случайную переменную X = X1 + · · ·+ Xm.

E (X ) =∑︀m

i=1 Prob (Ai ).Допустим, что у нас есть доказательство того факта, чтоE (X ) ≥ k .Значит, есть точка (𝜖1, . . . , 𝜖n) в пространстве событий, в которойвыполнены хотя бы k событий.Наша задача — найти такую точку детерминированно.

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 11 / 42

Page 40: 20071125 efficientalgorithms kulikov_lecture10

Общий метод

Общий методРассмотрим пространство событий Ω = {0, 1}n.Пусть A1, . . . , Am — набор событий, а X1, . . . , Xm явлюятся иххарактеристическими переменными.Рассмотрим также случайную переменную X = X1 + · · ·+ Xm.E (X ) =

∑︀mi=1 Prob (Ai ).

Допустим, что у нас есть доказательство того факта, чтоE (X ) ≥ k .Значит, есть точка (𝜖1, . . . , 𝜖n) в пространстве событий, в которойвыполнены хотя бы k событий.Наша задача — найти такую точку детерминированно.

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 11 / 42

Page 41: 20071125 efficientalgorithms kulikov_lecture10

Общий метод

Общий методРассмотрим пространство событий Ω = {0, 1}n.Пусть A1, . . . , Am — набор событий, а X1, . . . , Xm явлюятся иххарактеристическими переменными.Рассмотрим также случайную переменную X = X1 + · · ·+ Xm.E (X ) =

∑︀mi=1 Prob (Ai ).

Допустим, что у нас есть доказательство того факта, чтоE (X ) ≥ k .

Значит, есть точка (𝜖1, . . . , 𝜖n) в пространстве событий, в которойвыполнены хотя бы k событий.Наша задача — найти такую точку детерминированно.

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 11 / 42

Page 42: 20071125 efficientalgorithms kulikov_lecture10

Общий метод

Общий методРассмотрим пространство событий Ω = {0, 1}n.Пусть A1, . . . , Am — набор событий, а X1, . . . , Xm явлюятся иххарактеристическими переменными.Рассмотрим также случайную переменную X = X1 + · · ·+ Xm.E (X ) =

∑︀mi=1 Prob (Ai ).

Допустим, что у нас есть доказательство того факта, чтоE (X ) ≥ k .Значит, есть точка (𝜖1, . . . , 𝜖n) в пространстве событий, в которойвыполнены хотя бы k событий.

Наша задача — найти такую точку детерминированно.

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 11 / 42

Page 43: 20071125 efficientalgorithms kulikov_lecture10

Общий метод

Общий методРассмотрим пространство событий Ω = {0, 1}n.Пусть A1, . . . , Am — набор событий, а X1, . . . , Xm явлюятся иххарактеристическими переменными.Рассмотрим также случайную переменную X = X1 + · · ·+ Xm.E (X ) =

∑︀mi=1 Prob (Ai ).

Допустим, что у нас есть доказательство того факта, чтоE (X ) ≥ k .Значит, есть точка (𝜖1, . . . , 𝜖n) в пространстве событий, в которойвыполнены хотя бы k событий.Наша задача — найти такую точку детерминированно.

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 11 / 42

Page 44: 20071125 efficientalgorithms kulikov_lecture10

Общий метод (продолжение)

Общий метод (продолжение)

Введём n случайных переменных Y1, . . . , Yn, где каждая из Yiпринимает значение 0 и 1 независимо и равновероятно.Мы находим биты 𝜖1, . . . , 𝜖n.Допустим, 𝜖1, . . . , 𝜖j−1 уже выбраны.Выбираем значение для 𝜖j в зависимости от значения условногомат. ожидания

E (X | 𝜖1, . . . , 𝜖j) =m∑︁

i=1

Prob (Ai | 𝜖1, . . . , 𝜖j),

где под “𝜖1, . . . , 𝜖j ” понимается событие “Y1 = 𝜖1, . . . , Yj = 𝜖j ”.

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 12 / 42

Page 45: 20071125 efficientalgorithms kulikov_lecture10

Общий метод (продолжение)

Общий метод (продолжение)Введём n случайных переменных Y1, . . . , Yn, где каждая из Yiпринимает значение 0 и 1 независимо и равновероятно.

Мы находим биты 𝜖1, . . . , 𝜖n.Допустим, 𝜖1, . . . , 𝜖j−1 уже выбраны.Выбираем значение для 𝜖j в зависимости от значения условногомат. ожидания

E (X | 𝜖1, . . . , 𝜖j) =m∑︁

i=1

Prob (Ai | 𝜖1, . . . , 𝜖j),

где под “𝜖1, . . . , 𝜖j ” понимается событие “Y1 = 𝜖1, . . . , Yj = 𝜖j ”.

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 12 / 42

Page 46: 20071125 efficientalgorithms kulikov_lecture10

Общий метод (продолжение)

Общий метод (продолжение)Введём n случайных переменных Y1, . . . , Yn, где каждая из Yiпринимает значение 0 и 1 независимо и равновероятно.Мы находим биты 𝜖1, . . . , 𝜖n.

Допустим, 𝜖1, . . . , 𝜖j−1 уже выбраны.Выбираем значение для 𝜖j в зависимости от значения условногомат. ожидания

E (X | 𝜖1, . . . , 𝜖j) =m∑︁

i=1

Prob (Ai | 𝜖1, . . . , 𝜖j),

где под “𝜖1, . . . , 𝜖j ” понимается событие “Y1 = 𝜖1, . . . , Yj = 𝜖j ”.

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 12 / 42

Page 47: 20071125 efficientalgorithms kulikov_lecture10

Общий метод (продолжение)

Общий метод (продолжение)Введём n случайных переменных Y1, . . . , Yn, где каждая из Yiпринимает значение 0 и 1 независимо и равновероятно.Мы находим биты 𝜖1, . . . , 𝜖n.Допустим, 𝜖1, . . . , 𝜖j−1 уже выбраны.

Выбираем значение для 𝜖j в зависимости от значения условногомат. ожидания

E (X | 𝜖1, . . . , 𝜖j) =m∑︁

i=1

Prob (Ai | 𝜖1, . . . , 𝜖j),

где под “𝜖1, . . . , 𝜖j ” понимается событие “Y1 = 𝜖1, . . . , Yj = 𝜖j ”.

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 12 / 42

Page 48: 20071125 efficientalgorithms kulikov_lecture10

Общий метод (продолжение)

Общий метод (продолжение)Введём n случайных переменных Y1, . . . , Yn, где каждая из Yiпринимает значение 0 и 1 независимо и равновероятно.Мы находим биты 𝜖1, . . . , 𝜖n.Допустим, 𝜖1, . . . , 𝜖j−1 уже выбраны.Выбираем значение для 𝜖j в зависимости от значения условногомат. ожидания

E (X | 𝜖1, . . . , 𝜖j) =m∑︁

i=1

Prob (Ai | 𝜖1, . . . , 𝜖j),

где под “𝜖1, . . . , 𝜖j ” понимается событие “Y1 = 𝜖1, . . . , Yj = 𝜖j ”.

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 12 / 42

Page 49: 20071125 efficientalgorithms kulikov_lecture10

Общий метод (продолжение)

Общий метод (продолжение)

Ясно, что

Prob (Ai | 𝜖1, . . . , 𝜖j) =Prob (Ai | 𝜖1, . . . , 𝜖j , 0) + Prob (Ai | 𝜖1, . . . , 𝜖j , 1)

2.

Таким образом,

E (X | 𝜖1, . . . , 𝜖j) =E (X | 𝜖1, . . . , 𝜖j , 0) + E (X | 𝜖1, . . . , 𝜖j , 1)

2,

откуда заключаем, что

E (X | 𝜖1, . . . , 𝜖j) ≤ max{E (X | 𝜖1, . . . , 𝜖j , 0) ,E (X | 𝜖1, . . . , 𝜖j , 1)}.

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 13 / 42

Page 50: 20071125 efficientalgorithms kulikov_lecture10

Общий метод (продолжение)

Общий метод (продолжение)Ясно, что

Prob (Ai | 𝜖1, . . . , 𝜖j) =Prob (Ai | 𝜖1, . . . , 𝜖j , 0) + Prob (Ai | 𝜖1, . . . , 𝜖j , 1)

2.

Таким образом,

E (X | 𝜖1, . . . , 𝜖j) =E (X | 𝜖1, . . . , 𝜖j , 0) + E (X | 𝜖1, . . . , 𝜖j , 1)

2,

откуда заключаем, что

E (X | 𝜖1, . . . , 𝜖j) ≤ max{E (X | 𝜖1, . . . , 𝜖j , 0) ,E (X | 𝜖1, . . . , 𝜖j , 1)}.

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 13 / 42

Page 51: 20071125 efficientalgorithms kulikov_lecture10

Общий метод (продолжение)

Общий метод (продолжение)Ясно, что

Prob (Ai | 𝜖1, . . . , 𝜖j) =Prob (Ai | 𝜖1, . . . , 𝜖j , 0) + Prob (Ai | 𝜖1, . . . , 𝜖j , 1)

2.

Таким образом,

E (X | 𝜖1, . . . , 𝜖j) =E (X | 𝜖1, . . . , 𝜖j , 0) + E (X | 𝜖1, . . . , 𝜖j , 1)

2,

откуда заключаем, что

E (X | 𝜖1, . . . , 𝜖j) ≤ max{E (X | 𝜖1, . . . , 𝜖j , 0) ,E (X | 𝜖1, . . . , 𝜖j , 1)}.

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 13 / 42

Page 52: 20071125 efficientalgorithms kulikov_lecture10

Общий метод (завершение)

Общий метод (завершение)

Таким образом, если выбирать значения 𝜖j+1 так, чтобымаксимизировать значение E (X | 𝜖1, . . . , 𝜖j+1), то его значение небудет уменьшаться.Поскольку в начале оно было не менее k , то будет оно не менее kи в конце.Но в конце у каждого 𝜖i уже есть значение, а значит,E (X | 𝜖1, . . . , 𝜖n) будет равно количеству событий, выполненных вданной точке.

ЗамечаниеМетод работает, если n не слишком велико (это, как правило,выполнено) и, что более важно, если условные вероятностиProb (Ai | 𝜖1, . . . , 𝜖j) могут быть вычислены эффективно.

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 14 / 42

Page 53: 20071125 efficientalgorithms kulikov_lecture10

Общий метод (завершение)

Общий метод (завершение)Таким образом, если выбирать значения 𝜖j+1 так, чтобымаксимизировать значение E (X | 𝜖1, . . . , 𝜖j+1), то его значение небудет уменьшаться.

Поскольку в начале оно было не менее k , то будет оно не менее kи в конце.Но в конце у каждого 𝜖i уже есть значение, а значит,E (X | 𝜖1, . . . , 𝜖n) будет равно количеству событий, выполненных вданной точке.

ЗамечаниеМетод работает, если n не слишком велико (это, как правило,выполнено) и, что более важно, если условные вероятностиProb (Ai | 𝜖1, . . . , 𝜖j) могут быть вычислены эффективно.

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 14 / 42

Page 54: 20071125 efficientalgorithms kulikov_lecture10

Общий метод (завершение)

Общий метод (завершение)Таким образом, если выбирать значения 𝜖j+1 так, чтобымаксимизировать значение E (X | 𝜖1, . . . , 𝜖j+1), то его значение небудет уменьшаться.Поскольку в начале оно было не менее k , то будет оно не менее kи в конце.

Но в конце у каждого 𝜖i уже есть значение, а значит,E (X | 𝜖1, . . . , 𝜖n) будет равно количеству событий, выполненных вданной точке.

ЗамечаниеМетод работает, если n не слишком велико (это, как правило,выполнено) и, что более важно, если условные вероятностиProb (Ai | 𝜖1, . . . , 𝜖j) могут быть вычислены эффективно.

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 14 / 42

Page 55: 20071125 efficientalgorithms kulikov_lecture10

Общий метод (завершение)

Общий метод (завершение)Таким образом, если выбирать значения 𝜖j+1 так, чтобымаксимизировать значение E (X | 𝜖1, . . . , 𝜖j+1), то его значение небудет уменьшаться.Поскольку в начале оно было не менее k , то будет оно не менее kи в конце.Но в конце у каждого 𝜖i уже есть значение, а значит,E (X | 𝜖1, . . . , 𝜖n) будет равно количеству событий, выполненных вданной точке.

ЗамечаниеМетод работает, если n не слишком велико (это, как правило,выполнено) и, что более важно, если условные вероятностиProb (Ai | 𝜖1, . . . , 𝜖j) могут быть вычислены эффективно.

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 14 / 42

Page 56: 20071125 efficientalgorithms kulikov_lecture10

Общий метод (завершение)

Общий метод (завершение)Таким образом, если выбирать значения 𝜖j+1 так, чтобымаксимизировать значение E (X | 𝜖1, . . . , 𝜖j+1), то его значение небудет уменьшаться.Поскольку в начале оно было не менее k , то будет оно не менее kи в конце.Но в конце у каждого 𝜖i уже есть значение, а значит,E (X | 𝜖1, . . . , 𝜖n) будет равно количеству событий, выполненных вданной точке.

ЗамечаниеМетод работает, если n не слишком велико (это, как правило,выполнено) и, что более важно, если условные вероятностиProb (Ai | 𝜖1, . . . , 𝜖j) могут быть вычислены эффективно.

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 14 / 42

Page 57: 20071125 efficientalgorithms kulikov_lecture10

План лекции

1 Метод условных вероятностейОбщая идеяОбщий методНахождение двудольного подграфаМаксимальная выполнимость

2 Метод малых пространств событийНезависимость по kНахождение двудольного подграфа

3 Свободные от сумм множества

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 15 / 42

Page 58: 20071125 efficientalgorithms kulikov_lecture10

Существование двудольного подграфаТеоремаВ любом графе с m рёбрами существует двудольный подграф с неменее чем m/2 рёбрами.

ДоказательствоРассмотрим граф G = (V , E ), где V = {1, . . . , n}.Рассмотрим также случайное подмножество его вершин U,включая в это подмножество каждую вершину независимо свероятностью 1/2.Ребро e = {i , j} назовём пересекающим, если ровно один из егоконцов лежит в U.Через X обозначим количество пересекающих рёбер.Тогда X =

∑︀e∈E Xe , где Xe — индикатор того, что e является

пересекающим.Ясно, что E (Xe) = 1/2.

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 16 / 42

Page 59: 20071125 efficientalgorithms kulikov_lecture10

Существование двудольного подграфаТеоремаВ любом графе с m рёбрами существует двудольный подграф с неменее чем m/2 рёбрами.

Доказательство

Рассмотрим граф G = (V , E ), где V = {1, . . . , n}.Рассмотрим также случайное подмножество его вершин U,включая в это подмножество каждую вершину независимо свероятностью 1/2.Ребро e = {i , j} назовём пересекающим, если ровно один из егоконцов лежит в U.Через X обозначим количество пересекающих рёбер.Тогда X =

∑︀e∈E Xe , где Xe — индикатор того, что e является

пересекающим.Ясно, что E (Xe) = 1/2.

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 16 / 42

Page 60: 20071125 efficientalgorithms kulikov_lecture10

Существование двудольного подграфаТеоремаВ любом графе с m рёбрами существует двудольный подграф с неменее чем m/2 рёбрами.

ДоказательствоРассмотрим граф G = (V , E ), где V = {1, . . . , n}.

Рассмотрим также случайное подмножество его вершин U,включая в это подмножество каждую вершину независимо свероятностью 1/2.Ребро e = {i , j} назовём пересекающим, если ровно один из егоконцов лежит в U.Через X обозначим количество пересекающих рёбер.Тогда X =

∑︀e∈E Xe , где Xe — индикатор того, что e является

пересекающим.Ясно, что E (Xe) = 1/2.

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 16 / 42

Page 61: 20071125 efficientalgorithms kulikov_lecture10

Существование двудольного подграфаТеоремаВ любом графе с m рёбрами существует двудольный подграф с неменее чем m/2 рёбрами.

ДоказательствоРассмотрим граф G = (V , E ), где V = {1, . . . , n}.Рассмотрим также случайное подмножество его вершин U,включая в это подмножество каждую вершину независимо свероятностью 1/2.

Ребро e = {i , j} назовём пересекающим, если ровно один из егоконцов лежит в U.Через X обозначим количество пересекающих рёбер.Тогда X =

∑︀e∈E Xe , где Xe — индикатор того, что e является

пересекающим.Ясно, что E (Xe) = 1/2.

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 16 / 42

Page 62: 20071125 efficientalgorithms kulikov_lecture10

Существование двудольного подграфаТеоремаВ любом графе с m рёбрами существует двудольный подграф с неменее чем m/2 рёбрами.

ДоказательствоРассмотрим граф G = (V , E ), где V = {1, . . . , n}.Рассмотрим также случайное подмножество его вершин U,включая в это подмножество каждую вершину независимо свероятностью 1/2.Ребро e = {i , j} назовём пересекающим, если ровно один из егоконцов лежит в U.

Через X обозначим количество пересекающих рёбер.Тогда X =

∑︀e∈E Xe , где Xe — индикатор того, что e является

пересекающим.Ясно, что E (Xe) = 1/2.

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 16 / 42

Page 63: 20071125 efficientalgorithms kulikov_lecture10

Существование двудольного подграфаТеоремаВ любом графе с m рёбрами существует двудольный подграф с неменее чем m/2 рёбрами.

ДоказательствоРассмотрим граф G = (V , E ), где V = {1, . . . , n}.Рассмотрим также случайное подмножество его вершин U,включая в это подмножество каждую вершину независимо свероятностью 1/2.Ребро e = {i , j} назовём пересекающим, если ровно один из егоконцов лежит в U.Через X обозначим количество пересекающих рёбер.

Тогда X =∑︀

e∈E Xe , где Xe — индикатор того, что e являетсяпересекающим.Ясно, что E (Xe) = 1/2.

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 16 / 42

Page 64: 20071125 efficientalgorithms kulikov_lecture10

Существование двудольного подграфаТеоремаВ любом графе с m рёбрами существует двудольный подграф с неменее чем m/2 рёбрами.

ДоказательствоРассмотрим граф G = (V , E ), где V = {1, . . . , n}.Рассмотрим также случайное подмножество его вершин U,включая в это подмножество каждую вершину независимо свероятностью 1/2.Ребро e = {i , j} назовём пересекающим, если ровно один из егоконцов лежит в U.Через X обозначим количество пересекающих рёбер.Тогда X =

∑︀e∈E Xe , где Xe — индикатор того, что e является

пересекающим.

Ясно, что E (Xe) = 1/2.

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 16 / 42

Page 65: 20071125 efficientalgorithms kulikov_lecture10

Существование двудольного подграфаТеоремаВ любом графе с m рёбрами существует двудольный подграф с неменее чем m/2 рёбрами.

ДоказательствоРассмотрим граф G = (V , E ), где V = {1, . . . , n}.Рассмотрим также случайное подмножество его вершин U,включая в это подмножество каждую вершину независимо свероятностью 1/2.Ребро e = {i , j} назовём пересекающим, если ровно один из егоконцов лежит в U.Через X обозначим количество пересекающих рёбер.Тогда X =

∑︀e∈E Xe , где Xe — индикатор того, что e является

пересекающим.Ясно, что E (Xe) = 1/2.

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 16 / 42

Page 66: 20071125 efficientalgorithms kulikov_lecture10

Доказательство (завершение)

Доказательство

Таким образом,

E (X ) =∑︁e∈E

E (Xe) =|E |2

.

Значит, X ≥ |E |/2 для некоторого подмножества U.

ЗамечаниеДанная теорема показывает, что существует вероятностный алгоритмнахождения двудольного подграфа с мат. ожиданием числа рёбер неменее |E |/2. Мы покажем, как превратить этот алгоритм вдетерминированный.

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 17 / 42

Page 67: 20071125 efficientalgorithms kulikov_lecture10

Доказательство (завершение)

ДоказательствоТаким образом,

E (X ) =∑︁e∈E

E (Xe) =|E |2

.

Значит, X ≥ |E |/2 для некоторого подмножества U.

ЗамечаниеДанная теорема показывает, что существует вероятностный алгоритмнахождения двудольного подграфа с мат. ожиданием числа рёбер неменее |E |/2. Мы покажем, как превратить этот алгоритм вдетерминированный.

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 17 / 42

Page 68: 20071125 efficientalgorithms kulikov_lecture10

Доказательство (завершение)

ДоказательствоТаким образом,

E (X ) =∑︁e∈E

E (Xe) =|E |2

.

Значит, X ≥ |E |/2 для некоторого подмножества U.

ЗамечаниеДанная теорема показывает, что существует вероятностный алгоритмнахождения двудольного подграфа с мат. ожиданием числа рёбер неменее |E |/2. Мы покажем, как превратить этот алгоритм вдетерминированный.

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 17 / 42

Page 69: 20071125 efficientalgorithms kulikov_lecture10

Доказательство (завершение)

ДоказательствоТаким образом,

E (X ) =∑︁e∈E

E (Xe) =|E |2

.

Значит, X ≥ |E |/2 для некоторого подмножества U.

ЗамечаниеДанная теорема показывает, что существует вероятностный алгоритмнахождения двудольного подграфа с мат. ожиданием числа рёбер неменее |E |/2. Мы покажем, как превратить этот алгоритм вдетерминированный.

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 17 / 42

Page 70: 20071125 efficientalgorithms kulikov_lecture10

Дерандомизация

Дерандомизация

Заведём n случайных переменных Y1, . . . , Yn, где Yi = 1 ⇔ i ∈ U.Выбираем 𝜖1 ∈ {0, 1} так, чтобыE (X | Y1 = 𝜖1) ≥ E (X | Y1 = 𝜖1 ⊕ 1) и присваиваем Y1 значение𝜖1.Повторим этот процесс для всех Yi .В конце получим E (X | Y1 = 𝜖1, . . . , Yn = 𝜖n) ≥ |E |/2.При этом X уже не является случайной переменной (поскольку Uуже задано), поэтому X ≥ |E |/2.Ясно, что необходимые условные вероятности простовычисляются.

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 18 / 42

Page 71: 20071125 efficientalgorithms kulikov_lecture10

Дерандомизация

ДерандомизацияЗаведём n случайных переменных Y1, . . . , Yn, где Yi = 1 ⇔ i ∈ U.

Выбираем 𝜖1 ∈ {0, 1} так, чтобыE (X | Y1 = 𝜖1) ≥ E (X | Y1 = 𝜖1 ⊕ 1) и присваиваем Y1 значение𝜖1.Повторим этот процесс для всех Yi .В конце получим E (X | Y1 = 𝜖1, . . . , Yn = 𝜖n) ≥ |E |/2.При этом X уже не является случайной переменной (поскольку Uуже задано), поэтому X ≥ |E |/2.Ясно, что необходимые условные вероятности простовычисляются.

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 18 / 42

Page 72: 20071125 efficientalgorithms kulikov_lecture10

Дерандомизация

ДерандомизацияЗаведём n случайных переменных Y1, . . . , Yn, где Yi = 1 ⇔ i ∈ U.Выбираем 𝜖1 ∈ {0, 1} так, чтобыE (X | Y1 = 𝜖1) ≥ E (X | Y1 = 𝜖1 ⊕ 1) и присваиваем Y1 значение𝜖1.

Повторим этот процесс для всех Yi .В конце получим E (X | Y1 = 𝜖1, . . . , Yn = 𝜖n) ≥ |E |/2.При этом X уже не является случайной переменной (поскольку Uуже задано), поэтому X ≥ |E |/2.Ясно, что необходимые условные вероятности простовычисляются.

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 18 / 42

Page 73: 20071125 efficientalgorithms kulikov_lecture10

Дерандомизация

ДерандомизацияЗаведём n случайных переменных Y1, . . . , Yn, где Yi = 1 ⇔ i ∈ U.Выбираем 𝜖1 ∈ {0, 1} так, чтобыE (X | Y1 = 𝜖1) ≥ E (X | Y1 = 𝜖1 ⊕ 1) и присваиваем Y1 значение𝜖1.Повторим этот процесс для всех Yi .

В конце получим E (X | Y1 = 𝜖1, . . . , Yn = 𝜖n) ≥ |E |/2.При этом X уже не является случайной переменной (поскольку Uуже задано), поэтому X ≥ |E |/2.Ясно, что необходимые условные вероятности простовычисляются.

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 18 / 42

Page 74: 20071125 efficientalgorithms kulikov_lecture10

Дерандомизация

ДерандомизацияЗаведём n случайных переменных Y1, . . . , Yn, где Yi = 1 ⇔ i ∈ U.Выбираем 𝜖1 ∈ {0, 1} так, чтобыE (X | Y1 = 𝜖1) ≥ E (X | Y1 = 𝜖1 ⊕ 1) и присваиваем Y1 значение𝜖1.Повторим этот процесс для всех Yi .В конце получим E (X | Y1 = 𝜖1, . . . , Yn = 𝜖n) ≥ |E |/2.

При этом X уже не является случайной переменной (поскольку Uуже задано), поэтому X ≥ |E |/2.Ясно, что необходимые условные вероятности простовычисляются.

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 18 / 42

Page 75: 20071125 efficientalgorithms kulikov_lecture10

Дерандомизация

ДерандомизацияЗаведём n случайных переменных Y1, . . . , Yn, где Yi = 1 ⇔ i ∈ U.Выбираем 𝜖1 ∈ {0, 1} так, чтобыE (X | Y1 = 𝜖1) ≥ E (X | Y1 = 𝜖1 ⊕ 1) и присваиваем Y1 значение𝜖1.Повторим этот процесс для всех Yi .В конце получим E (X | Y1 = 𝜖1, . . . , Yn = 𝜖n) ≥ |E |/2.При этом X уже не является случайной переменной (поскольку Uуже задано), поэтому X ≥ |E |/2.

Ясно, что необходимые условные вероятности простовычисляются.

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 18 / 42

Page 76: 20071125 efficientalgorithms kulikov_lecture10

Дерандомизация

ДерандомизацияЗаведём n случайных переменных Y1, . . . , Yn, где Yi = 1 ⇔ i ∈ U.Выбираем 𝜖1 ∈ {0, 1} так, чтобыE (X | Y1 = 𝜖1) ≥ E (X | Y1 = 𝜖1 ⊕ 1) и присваиваем Y1 значение𝜖1.Повторим этот процесс для всех Yi .В конце получим E (X | Y1 = 𝜖1, . . . , Yn = 𝜖n) ≥ |E |/2.При этом X уже не является случайной переменной (поскольку Uуже задано), поэтому X ≥ |E |/2.Ясно, что необходимые условные вероятности простовычисляются.

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 18 / 42

Page 77: 20071125 efficientalgorithms kulikov_lecture10

План лекции

1 Метод условных вероятностейОбщая идеяОбщий методНахождение двудольного подграфаМаксимальная выполнимость

2 Метод малых пространств событийНезависимость по kНахождение двудольного подграфа

3 Свободные от сумм множества

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 19 / 42

Page 78: 20071125 efficientalgorithms kulikov_lecture10

СуществованиеТеоремаДля любой формулы F = C1 ∧ · · · ∧ Cm существует набор,выполняющий хотя бы (1− 2−l ) от общего числа клозов, где l —длина минимального клоза формулы F .

ДоказательствоПрисвоим каждой переменной значение 0 или 1 с вероятностью1/2. Полученный набор обозначим через w .Пусть lj = |Cj |, Zj — индикатор того, что клоз Cj выполнен.E (Zj) = Prob (Cj(w) = 1) = 1− Prob (Cj(w) = 0) = 1− 2−lj .Пусть Z — количество выполненных клозов, тогда

E (Z ) =m∑︁

j=1

(1− 2−lj ) ≥ m(1− 2−l ).

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 20 / 42

Page 79: 20071125 efficientalgorithms kulikov_lecture10

СуществованиеТеоремаДля любой формулы F = C1 ∧ · · · ∧ Cm существует набор,выполняющий хотя бы (1− 2−l ) от общего числа клозов, где l —длина минимального клоза формулы F .

Доказательство

Присвоим каждой переменной значение 0 или 1 с вероятностью1/2. Полученный набор обозначим через w .Пусть lj = |Cj |, Zj — индикатор того, что клоз Cj выполнен.E (Zj) = Prob (Cj(w) = 1) = 1− Prob (Cj(w) = 0) = 1− 2−lj .Пусть Z — количество выполненных клозов, тогда

E (Z ) =m∑︁

j=1

(1− 2−lj ) ≥ m(1− 2−l ).

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 20 / 42

Page 80: 20071125 efficientalgorithms kulikov_lecture10

СуществованиеТеоремаДля любой формулы F = C1 ∧ · · · ∧ Cm существует набор,выполняющий хотя бы (1− 2−l ) от общего числа клозов, где l —длина минимального клоза формулы F .

ДоказательствоПрисвоим каждой переменной значение 0 или 1 с вероятностью1/2. Полученный набор обозначим через w .

Пусть lj = |Cj |, Zj — индикатор того, что клоз Cj выполнен.E (Zj) = Prob (Cj(w) = 1) = 1− Prob (Cj(w) = 0) = 1− 2−lj .Пусть Z — количество выполненных клозов, тогда

E (Z ) =m∑︁

j=1

(1− 2−lj ) ≥ m(1− 2−l ).

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 20 / 42

Page 81: 20071125 efficientalgorithms kulikov_lecture10

СуществованиеТеоремаДля любой формулы F = C1 ∧ · · · ∧ Cm существует набор,выполняющий хотя бы (1− 2−l ) от общего числа клозов, где l —длина минимального клоза формулы F .

ДоказательствоПрисвоим каждой переменной значение 0 или 1 с вероятностью1/2. Полученный набор обозначим через w .Пусть lj = |Cj |, Zj — индикатор того, что клоз Cj выполнен.

E (Zj) = Prob (Cj(w) = 1) = 1− Prob (Cj(w) = 0) = 1− 2−lj .Пусть Z — количество выполненных клозов, тогда

E (Z ) =m∑︁

j=1

(1− 2−lj ) ≥ m(1− 2−l ).

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 20 / 42

Page 82: 20071125 efficientalgorithms kulikov_lecture10

СуществованиеТеоремаДля любой формулы F = C1 ∧ · · · ∧ Cm существует набор,выполняющий хотя бы (1− 2−l ) от общего числа клозов, где l —длина минимального клоза формулы F .

ДоказательствоПрисвоим каждой переменной значение 0 или 1 с вероятностью1/2. Полученный набор обозначим через w .Пусть lj = |Cj |, Zj — индикатор того, что клоз Cj выполнен.E (Zj) = Prob (Cj(w) = 1) = 1− Prob (Cj(w) = 0) = 1− 2−lj .

Пусть Z — количество выполненных клозов, тогда

E (Z ) =m∑︁

j=1

(1− 2−lj ) ≥ m(1− 2−l ).

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 20 / 42

Page 83: 20071125 efficientalgorithms kulikov_lecture10

СуществованиеТеоремаДля любой формулы F = C1 ∧ · · · ∧ Cm существует набор,выполняющий хотя бы (1− 2−l ) от общего числа клозов, где l —длина минимального клоза формулы F .

ДоказательствоПрисвоим каждой переменной значение 0 или 1 с вероятностью1/2. Полученный набор обозначим через w .Пусть lj = |Cj |, Zj — индикатор того, что клоз Cj выполнен.E (Zj) = Prob (Cj(w) = 1) = 1− Prob (Cj(w) = 0) = 1− 2−lj .Пусть Z — количество выполненных клозов, тогда

E (Z ) =m∑︁

j=1

(1− 2−lj ) ≥ m(1− 2−l ).

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 20 / 42

Page 84: 20071125 efficientalgorithms kulikov_lecture10

Дерандомизация

Дерандомизация

Покажем, как найти соответствующий набор x1 = w1, . . . , xn = wn.Пусть w1, . . . , wi уже выбраны. Введём обозначения:ei = E (Z | x1 = w1, . . . , xi = wi ) ,ei0 = E (Z | x1 = w1, . . . , xi = wi , xi+1 = 0) ,ei1 = E (Z | x1 = w1, . . . , xi = wi , xi+1 = 1) .

Тогда e0 = E (Z ) и ei = (ei0 + ei1)/2.На каждом шаге присваиваем xi+1 такое значение wi+1, длякоторого eiwi+1 ≥ ei .В данном случае нет необходимости точного вычисленияусловных вероятностей ei0 и ei1

Мы присваиваем xi+1 значение 1, если ei1 − ei ≥ 0.

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 21 / 42

Page 85: 20071125 efficientalgorithms kulikov_lecture10

Дерандомизация

ДерандомизацияПокажем, как найти соответствующий набор x1 = w1, . . . , xn = wn.

Пусть w1, . . . , wi уже выбраны. Введём обозначения:ei = E (Z | x1 = w1, . . . , xi = wi ) ,ei0 = E (Z | x1 = w1, . . . , xi = wi , xi+1 = 0) ,ei1 = E (Z | x1 = w1, . . . , xi = wi , xi+1 = 1) .

Тогда e0 = E (Z ) и ei = (ei0 + ei1)/2.На каждом шаге присваиваем xi+1 такое значение wi+1, длякоторого eiwi+1 ≥ ei .В данном случае нет необходимости точного вычисленияусловных вероятностей ei0 и ei1

Мы присваиваем xi+1 значение 1, если ei1 − ei ≥ 0.

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 21 / 42

Page 86: 20071125 efficientalgorithms kulikov_lecture10

Дерандомизация

ДерандомизацияПокажем, как найти соответствующий набор x1 = w1, . . . , xn = wn.Пусть w1, . . . , wi уже выбраны. Введём обозначения:ei = E (Z | x1 = w1, . . . , xi = wi ) ,ei0 = E (Z | x1 = w1, . . . , xi = wi , xi+1 = 0) ,ei1 = E (Z | x1 = w1, . . . , xi = wi , xi+1 = 1) .

Тогда e0 = E (Z ) и ei = (ei0 + ei1)/2.На каждом шаге присваиваем xi+1 такое значение wi+1, длякоторого eiwi+1 ≥ ei .В данном случае нет необходимости точного вычисленияусловных вероятностей ei0 и ei1

Мы присваиваем xi+1 значение 1, если ei1 − ei ≥ 0.

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 21 / 42

Page 87: 20071125 efficientalgorithms kulikov_lecture10

Дерандомизация

ДерандомизацияПокажем, как найти соответствующий набор x1 = w1, . . . , xn = wn.Пусть w1, . . . , wi уже выбраны. Введём обозначения:ei = E (Z | x1 = w1, . . . , xi = wi ) ,ei0 = E (Z | x1 = w1, . . . , xi = wi , xi+1 = 0) ,ei1 = E (Z | x1 = w1, . . . , xi = wi , xi+1 = 1) .

Тогда e0 = E (Z ) и ei = (ei0 + ei1)/2.

На каждом шаге присваиваем xi+1 такое значение wi+1, длякоторого eiwi+1 ≥ ei .В данном случае нет необходимости точного вычисленияусловных вероятностей ei0 и ei1

Мы присваиваем xi+1 значение 1, если ei1 − ei ≥ 0.

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 21 / 42

Page 88: 20071125 efficientalgorithms kulikov_lecture10

Дерандомизация

ДерандомизацияПокажем, как найти соответствующий набор x1 = w1, . . . , xn = wn.Пусть w1, . . . , wi уже выбраны. Введём обозначения:ei = E (Z | x1 = w1, . . . , xi = wi ) ,ei0 = E (Z | x1 = w1, . . . , xi = wi , xi+1 = 0) ,ei1 = E (Z | x1 = w1, . . . , xi = wi , xi+1 = 1) .

Тогда e0 = E (Z ) и ei = (ei0 + ei1)/2.На каждом шаге присваиваем xi+1 такое значение wi+1, длякоторого eiwi+1 ≥ ei .

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

Мы присваиваем xi+1 значение 1, если ei1 − ei ≥ 0.

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 21 / 42

Page 89: 20071125 efficientalgorithms kulikov_lecture10

Дерандомизация

ДерандомизацияПокажем, как найти соответствующий набор x1 = w1, . . . , xn = wn.Пусть w1, . . . , wi уже выбраны. Введём обозначения:ei = E (Z | x1 = w1, . . . , xi = wi ) ,ei0 = E (Z | x1 = w1, . . . , xi = wi , xi+1 = 0) ,ei1 = E (Z | x1 = w1, . . . , xi = wi , xi+1 = 1) .

Тогда e0 = E (Z ) и ei = (ei0 + ei1)/2.На каждом шаге присваиваем xi+1 такое значение wi+1, длякоторого eiwi+1 ≥ ei .В данном случае нет необходимости точного вычисленияусловных вероятностей ei0 и ei1

Мы присваиваем xi+1 значение 1, если ei1 − ei ≥ 0.

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 21 / 42

Page 90: 20071125 efficientalgorithms kulikov_lecture10

Дерандомизация

ДерандомизацияПокажем, как найти соответствующий набор x1 = w1, . . . , xn = wn.Пусть w1, . . . , wi уже выбраны. Введём обозначения:ei = E (Z | x1 = w1, . . . , xi = wi ) ,ei0 = E (Z | x1 = w1, . . . , xi = wi , xi+1 = 0) ,ei1 = E (Z | x1 = w1, . . . , xi = wi , xi+1 = 1) .

Тогда e0 = E (Z ) и ei = (ei0 + ei1)/2.На каждом шаге присваиваем xi+1 такое значение wi+1, длякоторого eiwi+1 ≥ ei .В данном случае нет необходимости точного вычисленияусловных вероятностей ei0 и ei1

Мы присваиваем xi+1 значение 1, если ei1 − ei ≥ 0.

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 21 / 42

Page 91: 20071125 efficientalgorithms kulikov_lecture10

Дерандомизация (завершение)

Дерандомизация (завершение)

Присвоение значения переменной xi+1 влияет, конечно, только наклозы, содержащие эту переменную.Каждый клоз Cj , содержащий литерал xi+1, будет выполнен (приприсвоении xi+1 = 1) и увеличит ei на 1− (1− 2−lj ) = 2−lj .Клоз Cj , содержащий литерал x̄i+1, станет на один литералкороче, что уменьшит его вероятность быть выполненным с(1− 2−lj ) до (1− 2−(lj−1)) (то есть опять на 2−lj ).Таким образом,

ei1 − ei =∑︁

Cj∈𝒞:Cj∋xi+1

2−lj −∑︁

Cj∈𝒞:Cj∋x̄i+1

2−lj ,

где 𝒞 — множество оставшихся к данному моменту клозов, lj —длина клоза Cj .

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 22 / 42

Page 92: 20071125 efficientalgorithms kulikov_lecture10

Дерандомизация (завершение)

Дерандомизация (завершение)Присвоение значения переменной xi+1 влияет, конечно, только наклозы, содержащие эту переменную.

Каждый клоз Cj , содержащий литерал xi+1, будет выполнен (приприсвоении xi+1 = 1) и увеличит ei на 1− (1− 2−lj ) = 2−lj .Клоз Cj , содержащий литерал x̄i+1, станет на один литералкороче, что уменьшит его вероятность быть выполненным с(1− 2−lj ) до (1− 2−(lj−1)) (то есть опять на 2−lj ).Таким образом,

ei1 − ei =∑︁

Cj∈𝒞:Cj∋xi+1

2−lj −∑︁

Cj∈𝒞:Cj∋x̄i+1

2−lj ,

где 𝒞 — множество оставшихся к данному моменту клозов, lj —длина клоза Cj .

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 22 / 42

Page 93: 20071125 efficientalgorithms kulikov_lecture10

Дерандомизация (завершение)

Дерандомизация (завершение)Присвоение значения переменной xi+1 влияет, конечно, только наклозы, содержащие эту переменную.Каждый клоз Cj , содержащий литерал xi+1, будет выполнен (приприсвоении xi+1 = 1) и увеличит ei на 1− (1− 2−lj ) = 2−lj .

Клоз Cj , содержащий литерал x̄i+1, станет на один литералкороче, что уменьшит его вероятность быть выполненным с(1− 2−lj ) до (1− 2−(lj−1)) (то есть опять на 2−lj ).Таким образом,

ei1 − ei =∑︁

Cj∈𝒞:Cj∋xi+1

2−lj −∑︁

Cj∈𝒞:Cj∋x̄i+1

2−lj ,

где 𝒞 — множество оставшихся к данному моменту клозов, lj —длина клоза Cj .

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 22 / 42

Page 94: 20071125 efficientalgorithms kulikov_lecture10

Дерандомизация (завершение)

Дерандомизация (завершение)Присвоение значения переменной xi+1 влияет, конечно, только наклозы, содержащие эту переменную.Каждый клоз Cj , содержащий литерал xi+1, будет выполнен (приприсвоении xi+1 = 1) и увеличит ei на 1− (1− 2−lj ) = 2−lj .Клоз Cj , содержащий литерал x̄i+1, станет на один литералкороче, что уменьшит его вероятность быть выполненным с(1− 2−lj ) до (1− 2−(lj−1)) (то есть опять на 2−lj ).

Таким образом,

ei1 − ei =∑︁

Cj∈𝒞:Cj∋xi+1

2−lj −∑︁

Cj∈𝒞:Cj∋x̄i+1

2−lj ,

где 𝒞 — множество оставшихся к данному моменту клозов, lj —длина клоза Cj .

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 22 / 42

Page 95: 20071125 efficientalgorithms kulikov_lecture10

Дерандомизация (завершение)

Дерандомизация (завершение)Присвоение значения переменной xi+1 влияет, конечно, только наклозы, содержащие эту переменную.Каждый клоз Cj , содержащий литерал xi+1, будет выполнен (приприсвоении xi+1 = 1) и увеличит ei на 1− (1− 2−lj ) = 2−lj .Клоз Cj , содержащий литерал x̄i+1, станет на один литералкороче, что уменьшит его вероятность быть выполненным с(1− 2−lj ) до (1− 2−(lj−1)) (то есть опять на 2−lj ).Таким образом,

ei1 − ei =∑︁

Cj∈𝒞:Cj∋xi+1

2−lj −∑︁

Cj∈𝒞:Cj∋x̄i+1

2−lj ,

где 𝒞 — множество оставшихся к данному моменту клозов, lj —длина клоза Cj .

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 22 / 42

Page 96: 20071125 efficientalgorithms kulikov_lecture10

План лекции

1 Метод условных вероятностейОбщая идеяОбщий методНахождение двудольного подграфаМаксимальная выполнимость

2 Метод малых пространств событийНезависимость по kНахождение двудольного подграфа

3 Свободные от сумм множества

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 23 / 42

Page 97: 20071125 efficientalgorithms kulikov_lecture10

План лекции

1 Метод условных вероятностейОбщая идеяОбщий методНахождение двудольного подграфаМаксимальная выполнимость

2 Метод малых пространств событийНезависимость по kНахождение двудольного подграфа

3 Свободные от сумм множества

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 24 / 42

Page 98: 20071125 efficientalgorithms kulikov_lecture10

Введение

Введение

Рассмотрим некоторую функцию f , определенную на {0, 1}n.Вероятностный алгоритм A для вычисления f имеет некотороевероятностное пространство (Ω, P), где Ω — пространствособытий, а P — вероятностная мера.Считаем, что все точки Ω равновероятны.Называем точку w ∈ Ω хорошей для входа x , если A(x , w) = f (x).Говорим, что алгоритм A вычисляет f , еслиProb (A(x , w) = f (x)) ≥ 1/2 для всех x .Проблема в том, что Ω, как правило, имеет экспоненциальныйразмер.

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 25 / 42

Page 99: 20071125 efficientalgorithms kulikov_lecture10

Введение

ВведениеРассмотрим некоторую функцию f , определенную на {0, 1}n.

Вероятностный алгоритм A для вычисления f имеет некотороевероятностное пространство (Ω, P), где Ω — пространствособытий, а P — вероятностная мера.Считаем, что все точки Ω равновероятны.Называем точку w ∈ Ω хорошей для входа x , если A(x , w) = f (x).Говорим, что алгоритм A вычисляет f , еслиProb (A(x , w) = f (x)) ≥ 1/2 для всех x .Проблема в том, что Ω, как правило, имеет экспоненциальныйразмер.

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 25 / 42

Page 100: 20071125 efficientalgorithms kulikov_lecture10

Введение

ВведениеРассмотрим некоторую функцию f , определенную на {0, 1}n.Вероятностный алгоритм A для вычисления f имеет некотороевероятностное пространство (Ω, P), где Ω — пространствособытий, а P — вероятностная мера.

Считаем, что все точки Ω равновероятны.Называем точку w ∈ Ω хорошей для входа x , если A(x , w) = f (x).Говорим, что алгоритм A вычисляет f , еслиProb (A(x , w) = f (x)) ≥ 1/2 для всех x .Проблема в том, что Ω, как правило, имеет экспоненциальныйразмер.

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 25 / 42

Page 101: 20071125 efficientalgorithms kulikov_lecture10

Введение

ВведениеРассмотрим некоторую функцию f , определенную на {0, 1}n.Вероятностный алгоритм A для вычисления f имеет некотороевероятностное пространство (Ω, P), где Ω — пространствособытий, а P — вероятностная мера.Считаем, что все точки Ω равновероятны.

Называем точку w ∈ Ω хорошей для входа x , если A(x , w) = f (x).Говорим, что алгоритм A вычисляет f , еслиProb (A(x , w) = f (x)) ≥ 1/2 для всех x .Проблема в том, что Ω, как правило, имеет экспоненциальныйразмер.

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 25 / 42

Page 102: 20071125 efficientalgorithms kulikov_lecture10

Введение

ВведениеРассмотрим некоторую функцию f , определенную на {0, 1}n.Вероятностный алгоритм A для вычисления f имеет некотороевероятностное пространство (Ω, P), где Ω — пространствособытий, а P — вероятностная мера.Считаем, что все точки Ω равновероятны.Называем точку w ∈ Ω хорошей для входа x , если A(x , w) = f (x).

Говорим, что алгоритм A вычисляет f , еслиProb (A(x , w) = f (x)) ≥ 1/2 для всех x .Проблема в том, что Ω, как правило, имеет экспоненциальныйразмер.

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 25 / 42

Page 103: 20071125 efficientalgorithms kulikov_lecture10

Введение

ВведениеРассмотрим некоторую функцию f , определенную на {0, 1}n.Вероятностный алгоритм A для вычисления f имеет некотороевероятностное пространство (Ω, P), где Ω — пространствособытий, а P — вероятностная мера.Считаем, что все точки Ω равновероятны.Называем точку w ∈ Ω хорошей для входа x , если A(x , w) = f (x).Говорим, что алгоритм A вычисляет f , еслиProb (A(x , w) = f (x)) ≥ 1/2 для всех x .

Проблема в том, что Ω, как правило, имеет экспоненциальныйразмер.

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 25 / 42

Page 104: 20071125 efficientalgorithms kulikov_lecture10

Введение

ВведениеРассмотрим некоторую функцию f , определенную на {0, 1}n.Вероятностный алгоритм A для вычисления f имеет некотороевероятностное пространство (Ω, P), где Ω — пространствособытий, а P — вероятностная мера.Считаем, что все точки Ω равновероятны.Называем точку w ∈ Ω хорошей для входа x , если A(x , w) = f (x).Говорим, что алгоритм A вычисляет f , еслиProb (A(x , w) = f (x)) ≥ 1/2 для всех x .Проблема в том, что Ω, как правило, имеет экспоненциальныйразмер.

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 25 / 42

Page 105: 20071125 efficientalgorithms kulikov_lecture10

Существование меньшего пространства событий

ТеоремаСуществует множество S ⊆ Ω размера не более n, такое что длялюбого входа x ∈ {0, 1}n найдётся хотя бы одна хорошая точка в S .

ДоказательствоРассмотрим 0/1-матрицу M = (mx ,w ) размера 2n × |Ω|, такую чтоmx ,w = 1 ⇔ w является хорошей точкой для x .В каждой строчке этой матрицы стоит хотя бы половина 1.Значит, есть и столбец, в котором есть хотя бы половина 1.Положим соответствующий элемент в S , выкинемсоответствующие строчки, повторим.

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 26 / 42

Page 106: 20071125 efficientalgorithms kulikov_lecture10

Существование меньшего пространства событий

ТеоремаСуществует множество S ⊆ Ω размера не более n, такое что длялюбого входа x ∈ {0, 1}n найдётся хотя бы одна хорошая точка в S .

Доказательство

Рассмотрим 0/1-матрицу M = (mx ,w ) размера 2n × |Ω|, такую чтоmx ,w = 1 ⇔ w является хорошей точкой для x .В каждой строчке этой матрицы стоит хотя бы половина 1.Значит, есть и столбец, в котором есть хотя бы половина 1.Положим соответствующий элемент в S , выкинемсоответствующие строчки, повторим.

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 26 / 42

Page 107: 20071125 efficientalgorithms kulikov_lecture10

Существование меньшего пространства событий

ТеоремаСуществует множество S ⊆ Ω размера не более n, такое что длялюбого входа x ∈ {0, 1}n найдётся хотя бы одна хорошая точка в S .

ДоказательствоРассмотрим 0/1-матрицу M = (mx ,w ) размера 2n × |Ω|, такую чтоmx ,w = 1 ⇔ w является хорошей точкой для x .

В каждой строчке этой матрицы стоит хотя бы половина 1.Значит, есть и столбец, в котором есть хотя бы половина 1.Положим соответствующий элемент в S , выкинемсоответствующие строчки, повторим.

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 26 / 42

Page 108: 20071125 efficientalgorithms kulikov_lecture10

Существование меньшего пространства событий

ТеоремаСуществует множество S ⊆ Ω размера не более n, такое что длялюбого входа x ∈ {0, 1}n найдётся хотя бы одна хорошая точка в S .

ДоказательствоРассмотрим 0/1-матрицу M = (mx ,w ) размера 2n × |Ω|, такую чтоmx ,w = 1 ⇔ w является хорошей точкой для x .В каждой строчке этой матрицы стоит хотя бы половина 1.

Значит, есть и столбец, в котором есть хотя бы половина 1.Положим соответствующий элемент в S , выкинемсоответствующие строчки, повторим.

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 26 / 42

Page 109: 20071125 efficientalgorithms kulikov_lecture10

Существование меньшего пространства событий

ТеоремаСуществует множество S ⊆ Ω размера не более n, такое что длялюбого входа x ∈ {0, 1}n найдётся хотя бы одна хорошая точка в S .

ДоказательствоРассмотрим 0/1-матрицу M = (mx ,w ) размера 2n × |Ω|, такую чтоmx ,w = 1 ⇔ w является хорошей точкой для x .В каждой строчке этой матрицы стоит хотя бы половина 1.Значит, есть и столбец, в котором есть хотя бы половина 1.

Положим соответствующий элемент в S , выкинемсоответствующие строчки, повторим.

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 26 / 42

Page 110: 20071125 efficientalgorithms kulikov_lecture10

Существование меньшего пространства событий

ТеоремаСуществует множество S ⊆ Ω размера не более n, такое что длялюбого входа x ∈ {0, 1}n найдётся хотя бы одна хорошая точка в S .

ДоказательствоРассмотрим 0/1-матрицу M = (mx ,w ) размера 2n × |Ω|, такую чтоmx ,w = 1 ⇔ w является хорошей точкой для x .В каждой строчке этой матрицы стоит хотя бы половина 1.Значит, есть и столбец, в котором есть хотя бы половина 1.Положим соответствующий элемент в S , выкинемсоответствующие строчки, повторим.

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 26 / 42

Page 111: 20071125 efficientalgorithms kulikov_lecture10

Независимость по k

ОпределениеСлучайные переменные X1, . . . , Xn, принимающие значения в конечноммножестве S , называются независимыми по k (k-wise independent),если для любой последовательности (si1 , . . . , sik ) из k значений(sij ∈ S) выполнено равенство

Prob (Xi1 = si1 , . . . , Xik = sik ) =k∏︁

j=1

Prob(︀Xij = sij

)︀.

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 27 / 42

Page 112: 20071125 efficientalgorithms kulikov_lecture10

План лекции

1 Метод условных вероятностейОбщая идеяОбщий методНахождение двудольного подграфаМаксимальная выполнимость

2 Метод малых пространств событийНезависимость по kНахождение двудольного подграфа

3 Свободные от сумм множества

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 28 / 42

Page 113: 20071125 efficientalgorithms kulikov_lecture10

Существование двудольного графа

Существование двудольного графа

Мы доказали, что в любом графе G = (V , E ) есть бинарныйподграф с хотя бы |E |/2 рёбрами.Другими словами, найдётся подмножество вершин U ⊆ V , такоечто количество рёбер между U и V ∖ U не менее |E |/2.Мы использовали случайные переменные для нахождения такогоU.Именно, для каждой вершины i ∈ V мы бросали монетку дляпринятия решения, добавлять i в U или нет.Это требовало n подбрасываний монеток, поэтомусоответствующее пространство событий имело огромныйразмер — 2n.

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 29 / 42

Page 114: 20071125 efficientalgorithms kulikov_lecture10

Существование двудольного графа

Существование двудольного графаМы доказали, что в любом графе G = (V , E ) есть бинарныйподграф с хотя бы |E |/2 рёбрами.

Другими словами, найдётся подмножество вершин U ⊆ V , такоечто количество рёбер между U и V ∖ U не менее |E |/2.Мы использовали случайные переменные для нахождения такогоU.Именно, для каждой вершины i ∈ V мы бросали монетку дляпринятия решения, добавлять i в U или нет.Это требовало n подбрасываний монеток, поэтомусоответствующее пространство событий имело огромныйразмер — 2n.

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 29 / 42

Page 115: 20071125 efficientalgorithms kulikov_lecture10

Существование двудольного графа

Существование двудольного графаМы доказали, что в любом графе G = (V , E ) есть бинарныйподграф с хотя бы |E |/2 рёбрами.Другими словами, найдётся подмножество вершин U ⊆ V , такоечто количество рёбер между U и V ∖ U не менее |E |/2.

Мы использовали случайные переменные для нахождения такогоU.Именно, для каждой вершины i ∈ V мы бросали монетку дляпринятия решения, добавлять i в U или нет.Это требовало n подбрасываний монеток, поэтомусоответствующее пространство событий имело огромныйразмер — 2n.

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 29 / 42

Page 116: 20071125 efficientalgorithms kulikov_lecture10

Существование двудольного графа

Существование двудольного графаМы доказали, что в любом графе G = (V , E ) есть бинарныйподграф с хотя бы |E |/2 рёбрами.Другими словами, найдётся подмножество вершин U ⊆ V , такоечто количество рёбер между U и V ∖ U не менее |E |/2.Мы использовали случайные переменные для нахождения такогоU.

Именно, для каждой вершины i ∈ V мы бросали монетку дляпринятия решения, добавлять i в U или нет.Это требовало n подбрасываний монеток, поэтомусоответствующее пространство событий имело огромныйразмер — 2n.

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 29 / 42

Page 117: 20071125 efficientalgorithms kulikov_lecture10

Существование двудольного графа

Существование двудольного графаМы доказали, что в любом графе G = (V , E ) есть бинарныйподграф с хотя бы |E |/2 рёбрами.Другими словами, найдётся подмножество вершин U ⊆ V , такоечто количество рёбер между U и V ∖ U не менее |E |/2.Мы использовали случайные переменные для нахождения такогоU.Именно, для каждой вершины i ∈ V мы бросали монетку дляпринятия решения, добавлять i в U или нет.

Это требовало n подбрасываний монеток, поэтомусоответствующее пространство событий имело огромныйразмер — 2n.

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 29 / 42

Page 118: 20071125 efficientalgorithms kulikov_lecture10

Существование двудольного графа

Существование двудольного графаМы доказали, что в любом графе G = (V , E ) есть бинарныйподграф с хотя бы |E |/2 рёбрами.Другими словами, найдётся подмножество вершин U ⊆ V , такоечто количество рёбер между U и V ∖ U не менее |E |/2.Мы использовали случайные переменные для нахождения такогоU.Именно, для каждой вершины i ∈ V мы бросали монетку дляпринятия решения, добавлять i в U или нет.Это требовало n подбрасываний монеток, поэтомусоответствующее пространство событий имело огромныйразмер — 2n.

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 29 / 42

Page 119: 20071125 efficientalgorithms kulikov_lecture10

Где использовалась независимость?

Где использовалась независимость?

Независимость использовалась только для того, чтобызаключить, что для любых двух вершин i ̸= j события i ∈ U иj ∈ U независимы.Используя это, мы показывали, что

Prob (i ∈ U, j ̸∈ U) = Prob (i ∈ U) · Prob (j ̸∈ U) = 1/4.

В этом доказательстве, таким образом, достаточно независимостипо 2 индикаторов Xi событий i ∈ U.Это замечание позволяет нам значительно уменьшить размерсоответствующего пространства событий.

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 30 / 42

Page 120: 20071125 efficientalgorithms kulikov_lecture10

Где использовалась независимость?

Где использовалась независимость?Независимость использовалась только для того, чтобызаключить, что для любых двух вершин i ̸= j события i ∈ U иj ∈ U независимы.

Используя это, мы показывали, что

Prob (i ∈ U, j ̸∈ U) = Prob (i ∈ U) · Prob (j ̸∈ U) = 1/4.

В этом доказательстве, таким образом, достаточно независимостипо 2 индикаторов Xi событий i ∈ U.Это замечание позволяет нам значительно уменьшить размерсоответствующего пространства событий.

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 30 / 42

Page 121: 20071125 efficientalgorithms kulikov_lecture10

Где использовалась независимость?

Где использовалась независимость?Независимость использовалась только для того, чтобызаключить, что для любых двух вершин i ̸= j события i ∈ U иj ∈ U независимы.Используя это, мы показывали, что

Prob (i ∈ U, j ̸∈ U) = Prob (i ∈ U) · Prob (j ̸∈ U) = 1/4.

В этом доказательстве, таким образом, достаточно независимостипо 2 индикаторов Xi событий i ∈ U.Это замечание позволяет нам значительно уменьшить размерсоответствующего пространства событий.

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 30 / 42

Page 122: 20071125 efficientalgorithms kulikov_lecture10

Где использовалась независимость?

Где использовалась независимость?Независимость использовалась только для того, чтобызаключить, что для любых двух вершин i ̸= j события i ∈ U иj ∈ U независимы.Используя это, мы показывали, что

Prob (i ∈ U, j ̸∈ U) = Prob (i ∈ U) · Prob (j ̸∈ U) = 1/4.

В этом доказательстве, таким образом, достаточно независимостипо 2 индикаторов Xi событий i ∈ U.

Это замечание позволяет нам значительно уменьшить размерсоответствующего пространства событий.

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 30 / 42

Page 123: 20071125 efficientalgorithms kulikov_lecture10

Где использовалась независимость?

Где использовалась независимость?Независимость использовалась только для того, чтобызаключить, что для любых двух вершин i ̸= j события i ∈ U иj ∈ U независимы.Используя это, мы показывали, что

Prob (i ∈ U, j ̸∈ U) = Prob (i ∈ U) · Prob (j ̸∈ U) = 1/4.

В этом доказательстве, таким образом, достаточно независимостипо 2 индикаторов Xi событий i ∈ U.Это замечание позволяет нам значительно уменьшить размерсоответствующего пространства событий.

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 30 / 42

Page 124: 20071125 efficientalgorithms kulikov_lecture10

Малое пространство событий

Малое пространство событий

Будем рассматривать множество U как последовательностьраскрасок X1, . . . , Xn : V → {0, 1}, где Xi = 1 ⇔ i ∈ U.Наша задача состоит в том, чтобы построить как можно меньшеепространство событий для этих переменных так, чтобы они былинезависимыми по 2.Предположим, что n = 2d . Сопоставим вершинам графа элементыполя Fn.Выберем случайно и независимо два элемента a и b этого поля исопоставим каждому элементу i случайную переменнуюZi = a · i + b.

ЛеммаСлучайные переменные являются независимыми по 2.

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 31 / 42

Page 125: 20071125 efficientalgorithms kulikov_lecture10

Малое пространство событий

Малое пространство событийБудем рассматривать множество U как последовательностьраскрасок X1, . . . , Xn : V → {0, 1}, где Xi = 1 ⇔ i ∈ U.

Наша задача состоит в том, чтобы построить как можно меньшеепространство событий для этих переменных так, чтобы они былинезависимыми по 2.Предположим, что n = 2d . Сопоставим вершинам графа элементыполя Fn.Выберем случайно и независимо два элемента a и b этого поля исопоставим каждому элементу i случайную переменнуюZi = a · i + b.

ЛеммаСлучайные переменные являются независимыми по 2.

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 31 / 42

Page 126: 20071125 efficientalgorithms kulikov_lecture10

Малое пространство событий

Малое пространство событийБудем рассматривать множество U как последовательностьраскрасок X1, . . . , Xn : V → {0, 1}, где Xi = 1 ⇔ i ∈ U.Наша задача состоит в том, чтобы построить как можно меньшеепространство событий для этих переменных так, чтобы они былинезависимыми по 2.

Предположим, что n = 2d . Сопоставим вершинам графа элементыполя Fn.Выберем случайно и независимо два элемента a и b этого поля исопоставим каждому элементу i случайную переменнуюZi = a · i + b.

ЛеммаСлучайные переменные являются независимыми по 2.

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 31 / 42

Page 127: 20071125 efficientalgorithms kulikov_lecture10

Малое пространство событий

Малое пространство событийБудем рассматривать множество U как последовательностьраскрасок X1, . . . , Xn : V → {0, 1}, где Xi = 1 ⇔ i ∈ U.Наша задача состоит в том, чтобы построить как можно меньшеепространство событий для этих переменных так, чтобы они былинезависимыми по 2.Предположим, что n = 2d . Сопоставим вершинам графа элементыполя Fn.

Выберем случайно и независимо два элемента a и b этого поля исопоставим каждому элементу i случайную переменнуюZi = a · i + b.

ЛеммаСлучайные переменные являются независимыми по 2.

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 31 / 42

Page 128: 20071125 efficientalgorithms kulikov_lecture10

Малое пространство событий

Малое пространство событийБудем рассматривать множество U как последовательностьраскрасок X1, . . . , Xn : V → {0, 1}, где Xi = 1 ⇔ i ∈ U.Наша задача состоит в том, чтобы построить как можно меньшеепространство событий для этих переменных так, чтобы они былинезависимыми по 2.Предположим, что n = 2d . Сопоставим вершинам графа элементыполя Fn.Выберем случайно и независимо два элемента a и b этого поля исопоставим каждому элементу i случайную переменнуюZi = a · i + b.

ЛеммаСлучайные переменные являются независимыми по 2.

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 31 / 42

Page 129: 20071125 efficientalgorithms kulikov_lecture10

Малое пространство событий

Малое пространство событийБудем рассматривать множество U как последовательностьраскрасок X1, . . . , Xn : V → {0, 1}, где Xi = 1 ⇔ i ∈ U.Наша задача состоит в том, чтобы построить как можно меньшеепространство событий для этих переменных так, чтобы они былинезависимыми по 2.Предположим, что n = 2d . Сопоставим вершинам графа элементыполя Fn.Выберем случайно и независимо два элемента a и b этого поля исопоставим каждому элементу i случайную переменнуюZi = a · i + b.

ЛеммаСлучайные переменные являются независимыми по 2.

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 31 / 42

Page 130: 20071125 efficientalgorithms kulikov_lecture10

Доказательство

Доказательство

Prob (Zi = x , Zj = y) = Prob (ai + b = x , aj + b = y)

= Prob(︁a = x−y

i−j , b = yi−xji−j

)︁= 1

n2

= Prob (Zi = x) · Prob (Zj = y) .

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 32 / 42

Page 131: 20071125 efficientalgorithms kulikov_lecture10

Построение малого пространства событий

Построение малого пространства событий

Присвоим теперь переменной Xi значение первого бита двоичнойзаписи Zi .По лемме переменные Xi также независимы по 2.Красим теперь каждую вершину в цвет Xi .Каждая такая раскраска задаётся парой (a, b) элементов поля Fn.Пространство событий, таким образом, имеет размер всего n2.Значит, для нахождения требуемой раскраски можно произвестиполный перебор элементов пространства.

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 33 / 42

Page 132: 20071125 efficientalgorithms kulikov_lecture10

Построение малого пространства событий

Построение малого пространства событийПрисвоим теперь переменной Xi значение первого бита двоичнойзаписи Zi .

По лемме переменные Xi также независимы по 2.Красим теперь каждую вершину в цвет Xi .Каждая такая раскраска задаётся парой (a, b) элементов поля Fn.Пространство событий, таким образом, имеет размер всего n2.Значит, для нахождения требуемой раскраски можно произвестиполный перебор элементов пространства.

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 33 / 42

Page 133: 20071125 efficientalgorithms kulikov_lecture10

Построение малого пространства событий

Построение малого пространства событийПрисвоим теперь переменной Xi значение первого бита двоичнойзаписи Zi .По лемме переменные Xi также независимы по 2.

Красим теперь каждую вершину в цвет Xi .Каждая такая раскраска задаётся парой (a, b) элементов поля Fn.Пространство событий, таким образом, имеет размер всего n2.Значит, для нахождения требуемой раскраски можно произвестиполный перебор элементов пространства.

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 33 / 42

Page 134: 20071125 efficientalgorithms kulikov_lecture10

Построение малого пространства событий

Построение малого пространства событийПрисвоим теперь переменной Xi значение первого бита двоичнойзаписи Zi .По лемме переменные Xi также независимы по 2.Красим теперь каждую вершину в цвет Xi .

Каждая такая раскраска задаётся парой (a, b) элементов поля Fn.Пространство событий, таким образом, имеет размер всего n2.Значит, для нахождения требуемой раскраски можно произвестиполный перебор элементов пространства.

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 33 / 42

Page 135: 20071125 efficientalgorithms kulikov_lecture10

Построение малого пространства событий

Построение малого пространства событийПрисвоим теперь переменной Xi значение первого бита двоичнойзаписи Zi .По лемме переменные Xi также независимы по 2.Красим теперь каждую вершину в цвет Xi .Каждая такая раскраска задаётся парой (a, b) элементов поля Fn.

Пространство событий, таким образом, имеет размер всего n2.Значит, для нахождения требуемой раскраски можно произвестиполный перебор элементов пространства.

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 33 / 42

Page 136: 20071125 efficientalgorithms kulikov_lecture10

Построение малого пространства событий

Построение малого пространства событийПрисвоим теперь переменной Xi значение первого бита двоичнойзаписи Zi .По лемме переменные Xi также независимы по 2.Красим теперь каждую вершину в цвет Xi .Каждая такая раскраска задаётся парой (a, b) элементов поля Fn.Пространство событий, таким образом, имеет размер всего n2.Значит, для нахождения требуемой раскраски можно произвестиполный перебор элементов пространства.

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 33 / 42

Page 137: 20071125 efficientalgorithms kulikov_lecture10

План лекции

1 Метод условных вероятностейОбщая идеяОбщий методНахождение двудольного подграфаМаксимальная выполнимость

2 Метод малых пространств событийНезависимость по kНахождение двудольного подграфа

3 Свободные от сумм множества

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 34 / 42

Page 138: 20071125 efficientalgorithms kulikov_lecture10

Свободные от сумм множества

ИдеяМы уже увидели два способа дерандомизации вероятностныхалгоритмов. Приведём теперь пример вероятностного доказательства,в котором скрыт детерминированный алгоритм.

ОпределениеПодмножество B некоторой аддитивной группы называется свободнымот сумм (sum-free), если x + y ̸∈ B для любых x , y ∈ B .

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 35 / 42

Page 139: 20071125 efficientalgorithms kulikov_lecture10

Свободные от сумм множества

ИдеяМы уже увидели два способа дерандомизации вероятностныхалгоритмов. Приведём теперь пример вероятностного доказательства,в котором скрыт детерминированный алгоритм.

ОпределениеПодмножество B некоторой аддитивной группы называется свободнымот сумм (sum-free), если x + y ̸∈ B для любых x , y ∈ B .

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 35 / 42

Page 140: 20071125 efficientalgorithms kulikov_lecture10

Теорема

Определение

Zn = {0, 1, 2, . . . , n − 1} — множество всех вычетов (остатков) помодулю n.Z*n — множество остатков, взаимно простых с n (для простого nZn = Z*n ∖ {0}).

ТеоремаПусть p = 3k + 2 ∈ P, w(x) — неотрицательная функция,определённая на Z*p. Допустим, что W =

∑︀x∈Z*p w(x) > 0. Тогда

найдётся свободное от сумм подмножество E группы Z*p, для которого∑︁x∈E

w(x) > W /3.

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 36 / 42

Page 141: 20071125 efficientalgorithms kulikov_lecture10

Теорема

ОпределениеZn = {0, 1, 2, . . . , n − 1} — множество всех вычетов (остатков) помодулю n.

Z*n — множество остатков, взаимно простых с n (для простого nZn = Z*n ∖ {0}).

ТеоремаПусть p = 3k + 2 ∈ P, w(x) — неотрицательная функция,определённая на Z*p. Допустим, что W =

∑︀x∈Z*p w(x) > 0. Тогда

найдётся свободное от сумм подмножество E группы Z*p, для которого∑︁x∈E

w(x) > W /3.

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 36 / 42

Page 142: 20071125 efficientalgorithms kulikov_lecture10

Теорема

ОпределениеZn = {0, 1, 2, . . . , n − 1} — множество всех вычетов (остатков) помодулю n.Z*n — множество остатков, взаимно простых с n (для простого nZn = Z*n ∖ {0}).

ТеоремаПусть p = 3k + 2 ∈ P, w(x) — неотрицательная функция,определённая на Z*p. Допустим, что W =

∑︀x∈Z*p w(x) > 0. Тогда

найдётся свободное от сумм подмножество E группы Z*p, для которого∑︁x∈E

w(x) > W /3.

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 36 / 42

Page 143: 20071125 efficientalgorithms kulikov_lecture10

Теорема

ОпределениеZn = {0, 1, 2, . . . , n − 1} — множество всех вычетов (остатков) помодулю n.Z*n — множество остатков, взаимно простых с n (для простого nZn = Z*n ∖ {0}).

ТеоремаПусть p = 3k + 2 ∈ P, w(x) — неотрицательная функция,определённая на Z*p. Допустим, что W =

∑︀x∈Z*p w(x) > 0. Тогда

найдётся свободное от сумм подмножество E группы Z*p, для которого∑︁x∈E

w(x) > W /3.

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 36 / 42

Page 144: 20071125 efficientalgorithms kulikov_lecture10

Доказательство

Доказательство

Пусть S = {k + 1, . . . , 2k + 1}.Заметим, что |S | > (p − 1)/3 и S является свободным от суммподмножеством группы Zp.Пусть t выбрано случайно из Z*p.Пусть f (t) =

∑︀w(x), где сумма берётся по всем x , для которых

x · t ∈ S ( x · t вычисляется в Zp).Поскольку Z*p является мультипликативной группой,E (f (t)) = W · (|S |/(p − 1)) > W /3.Рассмотрим t ∈ Z*p, для которого выполнено такое неравенство, иопределим E как t−1S .

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 37 / 42

Page 145: 20071125 efficientalgorithms kulikov_lecture10

Доказательство

ДоказательствоПусть S = {k + 1, . . . , 2k + 1}.

Заметим, что |S | > (p − 1)/3 и S является свободным от суммподмножеством группы Zp.Пусть t выбрано случайно из Z*p.Пусть f (t) =

∑︀w(x), где сумма берётся по всем x , для которых

x · t ∈ S ( x · t вычисляется в Zp).Поскольку Z*p является мультипликативной группой,E (f (t)) = W · (|S |/(p − 1)) > W /3.Рассмотрим t ∈ Z*p, для которого выполнено такое неравенство, иопределим E как t−1S .

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 37 / 42

Page 146: 20071125 efficientalgorithms kulikov_lecture10

Доказательство

ДоказательствоПусть S = {k + 1, . . . , 2k + 1}.Заметим, что |S | > (p − 1)/3 и S является свободным от суммподмножеством группы Zp.

Пусть t выбрано случайно из Z*p.Пусть f (t) =

∑︀w(x), где сумма берётся по всем x , для которых

x · t ∈ S ( x · t вычисляется в Zp).Поскольку Z*p является мультипликативной группой,E (f (t)) = W · (|S |/(p − 1)) > W /3.Рассмотрим t ∈ Z*p, для которого выполнено такое неравенство, иопределим E как t−1S .

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 37 / 42

Page 147: 20071125 efficientalgorithms kulikov_lecture10

Доказательство

ДоказательствоПусть S = {k + 1, . . . , 2k + 1}.Заметим, что |S | > (p − 1)/3 и S является свободным от суммподмножеством группы Zp.Пусть t выбрано случайно из Z*p.

Пусть f (t) =∑︀

w(x), где сумма берётся по всем x , для которыхx · t ∈ S ( x · t вычисляется в Zp).Поскольку Z*p является мультипликативной группой,E (f (t)) = W · (|S |/(p − 1)) > W /3.Рассмотрим t ∈ Z*p, для которого выполнено такое неравенство, иопределим E как t−1S .

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 37 / 42

Page 148: 20071125 efficientalgorithms kulikov_lecture10

Доказательство

ДоказательствоПусть S = {k + 1, . . . , 2k + 1}.Заметим, что |S | > (p − 1)/3 и S является свободным от суммподмножеством группы Zp.Пусть t выбрано случайно из Z*p.Пусть f (t) =

∑︀w(x), где сумма берётся по всем x , для которых

x · t ∈ S ( x · t вычисляется в Zp).

Поскольку Z*p является мультипликативной группой,E (f (t)) = W · (|S |/(p − 1)) > W /3.Рассмотрим t ∈ Z*p, для которого выполнено такое неравенство, иопределим E как t−1S .

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 37 / 42

Page 149: 20071125 efficientalgorithms kulikov_lecture10

Доказательство

ДоказательствоПусть S = {k + 1, . . . , 2k + 1}.Заметим, что |S | > (p − 1)/3 и S является свободным от суммподмножеством группы Zp.Пусть t выбрано случайно из Z*p.Пусть f (t) =

∑︀w(x), где сумма берётся по всем x , для которых

x · t ∈ S ( x · t вычисляется в Zp).Поскольку Z*p является мультипликативной группой,E (f (t)) = W · (|S |/(p − 1)) > W /3.

Рассмотрим t ∈ Z*p, для которого выполнено такое неравенство, иопределим E как t−1S .

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 37 / 42

Page 150: 20071125 efficientalgorithms kulikov_lecture10

Доказательство

ДоказательствоПусть S = {k + 1, . . . , 2k + 1}.Заметим, что |S | > (p − 1)/3 и S является свободным от суммподмножеством группы Zp.Пусть t выбрано случайно из Z*p.Пусть f (t) =

∑︀w(x), где сумма берётся по всем x , для которых

x · t ∈ S ( x · t вычисляется в Zp).Поскольку Z*p является мультипликативной группой,E (f (t)) = W · (|S |/(p − 1)) > W /3.Рассмотрим t ∈ Z*p, для которого выполнено такое неравенство, иопределим E как t−1S .

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 37 / 42

Page 151: 20071125 efficientalgorithms kulikov_lecture10

Идеи алгоритмаИдеи алгоритма

Итак, нам дан набор чисел {a1, . . . , aN}, длина записи которогоравна l =

∑︀Ni=1 log2 |ai |.

Наша задача состоит в нахождении свободного от суммподмножества размера хотя бы N/3 за полиномиальное от lвремя.Считаем, что l достаточно велико.Ясно, что у любого ai есть не более l различных простыхделителей.Известно, что для любых двух взаимно простых чисел b и cколичество простых чисел p ≤ x вида p = bk + c растет какx/(𝜙(x) · ln x), где 𝜙(b) = |{y ∈ Zb : gcd(y , b) = 1}| — функцияЭйлера.Значит, найдётся простое число p ≤ 3l log2 l вида p = 3k + 2,которое не делит ни одно из ai .

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 38 / 42

Page 152: 20071125 efficientalgorithms kulikov_lecture10

Идеи алгоритмаИдеи алгоритма

Итак, нам дан набор чисел {a1, . . . , aN}, длина записи которогоравна l =

∑︀Ni=1 log2 |ai |.

Наша задача состоит в нахождении свободного от суммподмножества размера хотя бы N/3 за полиномиальное от lвремя.Считаем, что l достаточно велико.Ясно, что у любого ai есть не более l различных простыхделителей.Известно, что для любых двух взаимно простых чисел b и cколичество простых чисел p ≤ x вида p = bk + c растет какx/(𝜙(x) · ln x), где 𝜙(b) = |{y ∈ Zb : gcd(y , b) = 1}| — функцияЭйлера.Значит, найдётся простое число p ≤ 3l log2 l вида p = 3k + 2,которое не делит ни одно из ai .

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 38 / 42

Page 153: 20071125 efficientalgorithms kulikov_lecture10

Идеи алгоритмаИдеи алгоритма

Итак, нам дан набор чисел {a1, . . . , aN}, длина записи которогоравна l =

∑︀Ni=1 log2 |ai |.

Наша задача состоит в нахождении свободного от суммподмножества размера хотя бы N/3 за полиномиальное от lвремя.

Считаем, что l достаточно велико.Ясно, что у любого ai есть не более l различных простыхделителей.Известно, что для любых двух взаимно простых чисел b и cколичество простых чисел p ≤ x вида p = bk + c растет какx/(𝜙(x) · ln x), где 𝜙(b) = |{y ∈ Zb : gcd(y , b) = 1}| — функцияЭйлера.Значит, найдётся простое число p ≤ 3l log2 l вида p = 3k + 2,которое не делит ни одно из ai .

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 38 / 42

Page 154: 20071125 efficientalgorithms kulikov_lecture10

Идеи алгоритмаИдеи алгоритма

Итак, нам дан набор чисел {a1, . . . , aN}, длина записи которогоравна l =

∑︀Ni=1 log2 |ai |.

Наша задача состоит в нахождении свободного от суммподмножества размера хотя бы N/3 за полиномиальное от lвремя.Считаем, что l достаточно велико.

Ясно, что у любого ai есть не более l различных простыхделителей.Известно, что для любых двух взаимно простых чисел b и cколичество простых чисел p ≤ x вида p = bk + c растет какx/(𝜙(x) · ln x), где 𝜙(b) = |{y ∈ Zb : gcd(y , b) = 1}| — функцияЭйлера.Значит, найдётся простое число p ≤ 3l log2 l вида p = 3k + 2,которое не делит ни одно из ai .

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 38 / 42

Page 155: 20071125 efficientalgorithms kulikov_lecture10

Идеи алгоритмаИдеи алгоритма

Итак, нам дан набор чисел {a1, . . . , aN}, длина записи которогоравна l =

∑︀Ni=1 log2 |ai |.

Наша задача состоит в нахождении свободного от суммподмножества размера хотя бы N/3 за полиномиальное от lвремя.Считаем, что l достаточно велико.Ясно, что у любого ai есть не более l различных простыхделителей.

Известно, что для любых двух взаимно простых чисел b и cколичество простых чисел p ≤ x вида p = bk + c растет какx/(𝜙(x) · ln x), где 𝜙(b) = |{y ∈ Zb : gcd(y , b) = 1}| — функцияЭйлера.Значит, найдётся простое число p ≤ 3l log2 l вида p = 3k + 2,которое не делит ни одно из ai .

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 38 / 42

Page 156: 20071125 efficientalgorithms kulikov_lecture10

Идеи алгоритмаИдеи алгоритма

Итак, нам дан набор чисел {a1, . . . , aN}, длина записи которогоравна l =

∑︀Ni=1 log2 |ai |.

Наша задача состоит в нахождении свободного от суммподмножества размера хотя бы N/3 за полиномиальное от lвремя.Считаем, что l достаточно велико.Ясно, что у любого ai есть не более l различных простыхделителей.Известно, что для любых двух взаимно простых чисел b и cколичество простых чисел p ≤ x вида p = bk + c растет какx/(𝜙(x) · ln x), где 𝜙(b) = |{y ∈ Zb : gcd(y , b) = 1}| — функцияЭйлера.

Значит, найдётся простое число p ≤ 3l log2 l вида p = 3k + 2,которое не делит ни одно из ai .

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 38 / 42

Page 157: 20071125 efficientalgorithms kulikov_lecture10

Идеи алгоритмаИдеи алгоритма

Итак, нам дан набор чисел {a1, . . . , aN}, длина записи которогоравна l =

∑︀Ni=1 log2 |ai |.

Наша задача состоит в нахождении свободного от суммподмножества размера хотя бы N/3 за полиномиальное от lвремя.Считаем, что l достаточно велико.Ясно, что у любого ai есть не более l различных простыхделителей.Известно, что для любых двух взаимно простых чисел b и cколичество простых чисел p ≤ x вида p = bk + c растет какx/(𝜙(x) · ln x), где 𝜙(b) = |{y ∈ Zb : gcd(y , b) = 1}| — функцияЭйлера.Значит, найдётся простое число p ≤ 3l log2 l вида p = 3k + 2,которое не делит ни одно из ai .

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 38 / 42

Page 158: 20071125 efficientalgorithms kulikov_lecture10

Идеи алгоритма (продолжение)

Идеи алгоритма (продолжение)

Пусть w(x) = |{t ∈ A : t ≡ x (mod p)}|.Поскольку p не делит ни одно ai , то W = N.Значит, найдётся свободное от сумм множество E ⊆ Z*p, длякоторого множество B = {t ∈ A : t mod p ∈ E} содержит хотя быN/3 элементов.Более того, данное множество B также является свободным отсумм, поскольку из x + y = z для некоторых x , y , z ∈ B следовалобы, что x + y ≡ z (mod p), и E не было бы свободным от сумм.

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 39 / 42

Page 159: 20071125 efficientalgorithms kulikov_lecture10

Идеи алгоритма (продолжение)

Идеи алгоритма (продолжение)Пусть w(x) = |{t ∈ A : t ≡ x (mod p)}|.

Поскольку p не делит ни одно ai , то W = N.Значит, найдётся свободное от сумм множество E ⊆ Z*p, длякоторого множество B = {t ∈ A : t mod p ∈ E} содержит хотя быN/3 элементов.Более того, данное множество B также является свободным отсумм, поскольку из x + y = z для некоторых x , y , z ∈ B следовалобы, что x + y ≡ z (mod p), и E не было бы свободным от сумм.

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 39 / 42

Page 160: 20071125 efficientalgorithms kulikov_lecture10

Идеи алгоритма (продолжение)

Идеи алгоритма (продолжение)Пусть w(x) = |{t ∈ A : t ≡ x (mod p)}|.Поскольку p не делит ни одно ai , то W = N.

Значит, найдётся свободное от сумм множество E ⊆ Z*p, длякоторого множество B = {t ∈ A : t mod p ∈ E} содержит хотя быN/3 элементов.Более того, данное множество B также является свободным отсумм, поскольку из x + y = z для некоторых x , y , z ∈ B следовалобы, что x + y ≡ z (mod p), и E не было бы свободным от сумм.

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 39 / 42

Page 161: 20071125 efficientalgorithms kulikov_lecture10

Идеи алгоритма (продолжение)

Идеи алгоритма (продолжение)Пусть w(x) = |{t ∈ A : t ≡ x (mod p)}|.Поскольку p не делит ни одно ai , то W = N.Значит, найдётся свободное от сумм множество E ⊆ Z*p, длякоторого множество B = {t ∈ A : t mod p ∈ E} содержит хотя быN/3 элементов.

Более того, данное множество B также является свободным отсумм, поскольку из x + y = z для некоторых x , y , z ∈ B следовалобы, что x + y ≡ z (mod p), и E не было бы свободным от сумм.

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 39 / 42

Page 162: 20071125 efficientalgorithms kulikov_lecture10

Идеи алгоритма (продолжение)

Идеи алгоритма (продолжение)Пусть w(x) = |{t ∈ A : t ≡ x (mod p)}|.Поскольку p не делит ни одно ai , то W = N.Значит, найдётся свободное от сумм множество E ⊆ Z*p, длякоторого множество B = {t ∈ A : t mod p ∈ E} содержит хотя быN/3 элементов.Более того, данное множество B также является свободным отсумм, поскольку из x + y = z для некоторых x , y , z ∈ B следовалобы, что x + y ≡ z (mod p), и E не было бы свободным от сумм.

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 39 / 42

Page 163: 20071125 efficientalgorithms kulikov_lecture10

Алгоритм

Алгоритм

Посчитать все простые числа до 3l log2 l .Найти среди них число p = 3k + 2, которое не делит ни одночисло из набора A.Вычислить значения w(x) для всех x ∈ Z*p.Полным перебором найти такое t ∈ Z*p, для которого f (t) > N/3и построить множество E = t−1S .Построить множество B = {t ∈ A : t mod p ∈ E}.

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 40 / 42

Page 164: 20071125 efficientalgorithms kulikov_lecture10

Алгоритм

АлгоритмПосчитать все простые числа до 3l log2 l .

Найти среди них число p = 3k + 2, которое не делит ни одночисло из набора A.Вычислить значения w(x) для всех x ∈ Z*p.Полным перебором найти такое t ∈ Z*p, для которого f (t) > N/3и построить множество E = t−1S .Построить множество B = {t ∈ A : t mod p ∈ E}.

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 40 / 42

Page 165: 20071125 efficientalgorithms kulikov_lecture10

Алгоритм

АлгоритмПосчитать все простые числа до 3l log2 l .Найти среди них число p = 3k + 2, которое не делит ни одночисло из набора A.

Вычислить значения w(x) для всех x ∈ Z*p.Полным перебором найти такое t ∈ Z*p, для которого f (t) > N/3и построить множество E = t−1S .Построить множество B = {t ∈ A : t mod p ∈ E}.

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 40 / 42

Page 166: 20071125 efficientalgorithms kulikov_lecture10

Алгоритм

АлгоритмПосчитать все простые числа до 3l log2 l .Найти среди них число p = 3k + 2, которое не делит ни одночисло из набора A.Вычислить значения w(x) для всех x ∈ Z*p.

Полным перебором найти такое t ∈ Z*p, для которого f (t) > N/3и построить множество E = t−1S .Построить множество B = {t ∈ A : t mod p ∈ E}.

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 40 / 42

Page 167: 20071125 efficientalgorithms kulikov_lecture10

Алгоритм

АлгоритмПосчитать все простые числа до 3l log2 l .Найти среди них число p = 3k + 2, которое не делит ни одночисло из набора A.Вычислить значения w(x) для всех x ∈ Z*p.Полным перебором найти такое t ∈ Z*p, для которого f (t) > N/3и построить множество E = t−1S .

Построить множество B = {t ∈ A : t mod p ∈ E}.

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 40 / 42

Page 168: 20071125 efficientalgorithms kulikov_lecture10

Алгоритм

АлгоритмПосчитать все простые числа до 3l log2 l .Найти среди них число p = 3k + 2, которое не делит ни одночисло из набора A.Вычислить значения w(x) для всех x ∈ Z*p.Полным перебором найти такое t ∈ Z*p, для которого f (t) > N/3и построить множество E = t−1S .Построить множество B = {t ∈ A : t mod p ∈ E}.

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 40 / 42

Page 169: 20071125 efficientalgorithms kulikov_lecture10

Что мы узнали за сегодня?

Что мы узнали за сегодня?

Метод условных вероятностей на каждом шаге уменьшаетпространство событий вдвое и в конце концов находит хорошуюточку.Метод малых пространств строит меньшее пространство событийи находит в нём хорошую точку полным перебором.Иногда детерминированный алгоритм можно извлечьнепосредственно из вероятностного доказательства.

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 41 / 42

Page 170: 20071125 efficientalgorithms kulikov_lecture10

Что мы узнали за сегодня?

Что мы узнали за сегодня?Метод условных вероятностей на каждом шаге уменьшаетпространство событий вдвое и в конце концов находит хорошуюточку.

Метод малых пространств строит меньшее пространство событийи находит в нём хорошую точку полным перебором.Иногда детерминированный алгоритм можно извлечьнепосредственно из вероятностного доказательства.

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 41 / 42

Page 171: 20071125 efficientalgorithms kulikov_lecture10

Что мы узнали за сегодня?

Что мы узнали за сегодня?Метод условных вероятностей на каждом шаге уменьшаетпространство событий вдвое и в конце концов находит хорошуюточку.Метод малых пространств строит меньшее пространство событийи находит в нём хорошую точку полным перебором.

Иногда детерминированный алгоритм можно извлечьнепосредственно из вероятностного доказательства.

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 41 / 42

Page 172: 20071125 efficientalgorithms kulikov_lecture10

Что мы узнали за сегодня?

Что мы узнали за сегодня?Метод условных вероятностей на каждом шаге уменьшаетпространство событий вдвое и в конце концов находит хорошуюточку.Метод малых пространств строит меньшее пространство событийи находит в нём хорошую точку полным перебором.Иногда детерминированный алгоритм можно извлечьнепосредственно из вероятностного доказательства.

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 41 / 42

Page 173: 20071125 efficientalgorithms kulikov_lecture10

Спасибо за внимание!

А. Куликов (CS клуб при ПОМИ) 10. Дерандомизация 42 / 42