Изменения

Перейти к: навигация, поиск

Теория сложности (старая трешовая версия)

8976 байт добавлено, 19:10, 4 сентября 2022
м
rollbackEdits.php mass rollback
== Лекция 1. Вводная ==Начнем курс с введения понятий '''[[DTIME]]''' и '''[[DSPACE]]'''. *'''DTIME'''(''f''(''n'')) = <tex>\{ L \mid \exists </tex> машина Тьюринга <tex>m : L(m)=L, Time(m,x) \le f(|x|) \}</tex>, где <tex>|x|</tex> &mdash; длина входа <tex>x</tex>. *'''DSPACE'''(''f''(''n'')) = <tex>\{ L \mid \exists </tex> машина Тьюринга <tex>m : L(m)=L, Space(m,x) \le f(|x|) \}</tex>. Аналогичным образом введем классы '''[[NSPACE]]''' и '''[[NTIME]]''', использующие недетерминированную машину Тьюринга взамен детерминированной (в течении всего курса префикс '''D''' соответствует детерминизму, а '''N''' &mdash; недетерминизму). Рассмотрим и докажем теоремы о емкостной и временной иерархии. *[[Теорема о емкостной иерархии]] утверждает, что для любых двух [[Конструируемая по памяти функция|конструируемых по памяти функций]] <tex>f</tex> и <tex>g</tex> таких, что <tex> \lim \limits_{n \rightarrow \infty} f(n)/g(n) = 0</tex>, выполняется '''DSPACE'''(''g''(''n'')) &ne; '''DSPACE'''(''f''(''n'')). *[[Теорема о временной иерархии]] утверждает, что для любых двух [[Конструируемая по времени функция|конструируемых по времени функций]] <tex>f\,\!</tex> и <tex>g\,\!</tex> таких, что <tex> \lim \limits_{n \rightarrow \infty} \frac{t(f(n))}{g(n)} = 0</tex>, выполняется '''DTIME'''(''g''(''n'')) &ne; '''DTIME'''(''f''(''n'')). ---- Через понятия классов '''DSPACE''', '''DTIME''', '''NSPACE''' и '''NTIME''' будет дано определение многим сложностным классам, в том числе '''[[P]]''' и '''[[NP]]'''.  Класс '''P''' — класс языков (задач), разрешимых на детерминированной машине Тьюринга за полиномиальное время. Формально: *'''P'''=<tex>\bigcup_{i=0}^{\infty}</tex>'''DTIME'''<tex>(in^i)</tex> В свою очередь, при разрешении языка из класса '''NP''' используется недетерминированная машина: *'''NP'''=<tex>\bigcup_{i=0}^{\infty}</tex> '''NTIME'''<tex>(in^i)</tex>Дадим определение класса '''NP''' на языке сертификатов:*'''NP'''=<tex>\Sigma_1 = \{L|\exists R(x,y) \in P, p \in Poly | l \in L \Leftrightarrow \exists y, |y| \le p(x) | R(x,y)=1\}</tex> (первое равенство доказывается в статье '''[[NP]]'''). Поясним, что <tex>y</tex> является сертификатом принадлежности <tex>x</tex> языку <tex>L</tex>, если существует полиномиальное отношение (верификатор) <tex>R</tex>, такое что <tex>R(x,y)=1</tex> тогда и только тогда, когда <tex>x</tex> принадлежит <tex>L</tex>. Вместе со многими сложностными классами имеет смысл рассматривать и их дополнения (используется приставка '''co-'''). Например, класс '''[[co-NP]]'''. ---- Введем в рассмотрение отношения между языками: [[сведение по Карпу]] и [[сведение по Куку]].*Язык <tex>A</tex> сводится по Карпу к языку <tex>B</tex>, если существует функция <tex>f(x)</tex> такая, что <tex>x \in A</tex> тогда и только тогда, когда <tex>f(x) \in B</tex>.*Язык <tex>A</tex> сводится по Куку к <tex>B</tex>, если существует разрешающая язык <tex>A</tex> программа <tex>m</tex>, работающая полиномиальное время от длины входа, которая может использовать разрешающую программу <tex>m_B</tex> для языка <tex>B</tex> в качестве оракула. При этом время работы <tex>m_B</tex> не учитывается. В дальнейшем чаще будет рассматриваться сведение по Карпу. == Практика 1 ==*[[Сведение по Куку задачи факторизации к языку из NP]] == Лекция 2 ==*[[Теорема Кука]] == Практика 2 ==*[[Понятие NP-трудной и NP-полной задачи]]*[[NP-полнота задачи BH1N]]*[[NP-полнота задачи о выполнимости булевой формулы в форме КНФ]]*[[NP-полнота задачи о выполнимости булевой формулы в форме 3-КНФ]]*[[NP-полнота задачи о клике]]*[[NP-полнота задачи о независимом множестве]]*[[NP-полнота задачи о вершинном покрытии]] == Лекция 3 ==*[[Теорема Ладнера]]*[[Теорема Левина]]*[[Теорема Бейкера-Гилла-Соловэя]] == Практика 3 ==*[[NP-полнота задач о гамильтоновом цикле и пути в графах]]*[[NP-полнота задачи о сумме подмножества]]*[[NP-полнота задачи о рюкзаке]] == Практика, которой на самом деле не было ==*[[NP-полнота задачи о раскраске графа]] ==Лекция 4==*[[Схемная сложность]]*[[P/poly]]*[[Редкие языки]]*[[Теорема Махэни]] == Лекция 5 ==*[[Класс PS]]*[[Теорема Сэвича]]*[[PS-полнота задачи Generalized geography]] == Лекция 6 ==*Классы [[L]], [[NL]], [[NL-полнота|NLC]]*[[NL-полнота задачи о достижимости в графе]]*[[Классы EXP, NEXP. Полнота языков EXP и NEXP]]*[[Теорема о связи вопросов EXP=NEXP и P=NP]]*[[Теорема Иммермана]] == Практика 6 ==*[[Классы Sigma_i и Pi_i]]*[[Класс PH]]*[[Полиномиальная иерархия]]*[[Теоремы о коллапсе полиномиальной иерархии]] == Лекция 7 ==*[[Теорема Карпа-Липтона]] == Практика 7 ==*[[Вероятностная машина Тьюринга]]*[[Сложностный класс ZPP]]*[[Сложностные классы RP и coRP]]*[[Сложностный класс PP]]*[[Сложностный класс BPP]]*[[Уменьшение ошибки в классе RP, сильное и слабое определение]] == Лекция 8 ==*[[Теорема о включении BPP в P/poly]]*[[Теорема Лаутемана]]*[[Теорема Валианта-Вазирани]] == Практика 8 ==*[[Лемма Шварца-Зиппеля]] == Лекция 9 ==*[[Класс IP|Класс IP]]*[[GNI|Принадлежность проблемы GNI классу IP]]*[[Sharp SAT|#SAT]] == Лекция 10 ==*[[Теорема Шамира]]*[[Семейство универсальных попарно независимых хеш-функций|Семейство универсальных попарно независимых хеш-функций]]*[[Протокол Гольдвассера-Сипсера для оценки размера множества]]*[[Теорема Голдвассера, Сипсера]] == Лекция 11 ==*[[Абсолютная секретность]]*[[Лемма о невозможности существования вычислительно безопасных шифров в случае P = NP]]*[[Односторонние функции и псевдослучайные генераторы]]*[[Доказательства с нулевым разглашением]] == Лекция 12 ==*[[Кубит]]*[[Унитарные операторы]]*[[ЭПР парадокс]]*[[Квантовый логический элемент NOT]]*[[Преобразование Адамара]]*[[Квантовый логический элемент CNOT]]*[[Квантовый логический элемент Тоффоли]]*[[Квантовая схема]] == Лекция 13 ==*[[Класс PCP]]
1632
правки

Навигация