Вычислительно трудные задачи и дерандомизация
Представим себе, что есть явная вычислительная задача, про которую достоверно известно, что ее нельзя решить за разумное время. Хорошо это или плохо? С одной стороны, грустно, наверное, мы никогда не сможем решать эту задачу. С другой стороны, не только мы, но и враг не сможет решить эту задачу за разумное время и можно попытаться использовать это задачу для надежного шифрования данных, чтобы враг не смог взломать шифр, не решив задачу. Это идея появилась давно и попытки строить криптографические протоколы на основе вычислительно трудных задач начались в 1970–х годах.
Другая неожиданная польза от вычислительно трудных задач была открыта в конце 1990–х — начале 2000–х. И этот результат является одним из самых ярких результатов в теоретической информатики последних лет (и является основным в этом курсе). Оказывается, имея явную вычислительно трудную задачу, можно избавиться от случайных чисел в вероятностных алгоритмах. Ситуация в мире вычислений такая: либо любой вероятностный алгоритм можно дерандомизировать избавиться от использования случайных чисел), либо не существуют явных вычислительно сложных задач.
Под явной задачей имеется в виду задача, которую можно решить за экспоненциальное время, а под вычислительно трудной — такая, которая не решается с помощью булевых схем полиномиального размера. Хотя случайная булевая функция с большой вероятностью решается только схемами экспоненциального размера, ни для какой явной функции мы доказывать это не умеем. Курс начнется с самых красивых примеров экспоненциальных нижних оценок в ограниченных (в неограниченных же не получается!!) моделях вычислений: монотонные схемы (за этот результат А. Разборов получил премию Неванлинны), схемы ограниченной глубины и др. Продемонстрировав существующую технику доказательств нижних оценок, мы поговорим о философской и полемической работе А. Разборова и С. Рудича “Natural proofs” (авторы удостоились премии Гёделя в 2007–м году за этот результат), основной результат которой заключается в том, что существующая техника оказательства нижних оценок является «естественной», а при разумных криптографических предположениях, естественных доказательств недостаточно для того, чтобы доказать нетривиальную нижнюю оценку для схем.
Вторая часть курса будет посвящена непосредственно дерандомизации (избавлению алгоритмов от случайных чисел). Будут приведены результаты о том, как можно понижать вероятность ошибки алгоритма, используя лишь небольшое число дополнительных случайных битов, будет рассказан детерминированный (дерандомизация вероятностного) алгоритм Рейнгольда выхода из лабиринта, использующий только логарифмическую (от размера лабиринта) память, будут приведены конструкции экстракторов, графские конструкции, позволяющие использовать «плохие» (зависимые, неравномерно распределенные) случайные биты в алгоритмах. И главным результатом этой части будет дерандомизация при условии cуществования функции, вычислимой за экспоненциальное время, которая не вычислима с помощью схем полиномиального размера.
В доказательствах основных результатов курса будет использоваться и подробно обсуждаться глубокая современная техника: random restriction lemma, error–correcting codes, Impagliazzo hardcore lemma, Yao XOR lemma, графы–расширители и пр. Понимание этой техники может существенно облегчить чтение статей по теоретической информатики.
Курс может рассматриваться, как продолжение курса «Структурная теория сложности», но не будет от него зависеть, все нужные определения будут повторены. Несмотря на амбициозность программы курса, курс планируется читать достаточно подробно и понятно, так что на него приглашаются и слушатели, которые раньше не сталкивались с этой областью.
АвторДмитрий Ицыксон
ОрганизаторComputer Science клуб при ПОМИ РАН
Лекции
2Онлайн-курсы по программированию
3
Машинное обучение для анализа текстов
От бизнес-идеи к ее реализации: учимся инновационному предпринимательству с нуля.
С платными опциями

Разработка игры-платформера на Defold: базовый уровень
Создайте свой первый платформер с нуля! За 7 недель вы не просто освоите движок Defold, а пройдете весь путь геймдев-разработчика: от кода и анимаций до дизайна и сюжета.
Бесплатный

Python для начинающих
Курс посвящен основам программирования на языке Python — одном из самых популярных и понятных языков, идеально подходящих для первого знакомства с IT.
Бесплатный
Ещё курсы Дмитрия Ицыксона
8Вероятностно проверяемые доказательства
9 лекций · Дмитрий Ицыксон
Вероятностные методы в вычислениях
11 лекций · Дмитрий Ицыксон
Вероятностные методы в вычислениях (2015)
12 лекций · Дмитрий Ицыксон
Вычислимость и логика
11 лекций · Дмитрий Ицыксон
Математические основы Computer Science
14 лекций · Дмитрий Ицыксон
Основы вычислимости и теории сложности
11 лекций · Дмитрий Ицыксон
Сложность вычислений и основы криптографии
12 лекций · Дмитрий Ицыксон
Теоретико-сложностные основы криптографии
13 лекций · Дмитрий Ицыксон