Сложности, часть 2 + рандом (4 февраля 2025)
- NP (nondeterministic polynomial time) - причём тут "недетерминированность"?
- Сведения, decision/search
- Размер максимальной клики (бинпоиск)
- Сама клика (фиксируем вершины по одной)
- SAT (фиксируем значения переменных по одной)
- Сведение: search 3-SAT → search k-INDEPENDENT (иногда то же сведение работает для search задач)
- Гипотезы
- Придумать время работы между полиномом и экспонентой (2sqrt(logn))
- Примеры
- Поиск числа, которое встречается в массиве больше половины раз: decision и search версии, RP и ZPP.
- k-я статистика и quick-sort (нам было сложно корректно выбрать медиану, что дал рандом? упрощение реализации)
- Пример алгоритма: 3-SAT (3-LIST-COLORING будет на практике) (подсказка − что выкинуть, работает на 2n из 3n подсказок)
- Поиск квадратичного невычета за O(log n).
- Проверка того, что AB = C: A(Bx) = Cx. Доказательство.
- Вероятностные алгоритмы: База
- Вероятностные алгоритмы (Probabilistic): Определение классов RP, coRP (работает на всех входах за полином, иногда ошибается)
- Вероятностные алгоритмы (Randomized): Определение класса ZPP. Работает всегда корректно, матожидание времение работы − полином.
- Отличие от детерминированных (есть подсказка = случайные биты, работает с некоторой вероятностью)
- Связь с недетерминированными (работает на половине подсказок)
- Понижение вероятности ошибки: p → pn (понижение от константы; понижение до константы)
- Теорема: ZPP = RP ∩ coRP
- Док-во: можно запустить с будильником алгоритм из ZPP, а можно запускать по очереди алгоритмы из RP и coRP
- random walk
- Решение SAT за 3n/2 (детерминированно)
- Решение SAT за 3n/2 (рандомизированно): что дал рандом? упрощение реализации
- Решение SAT за 1.334n (рандомизированно)
- Пример из жизни: вы в незнакомом городе, хотите найти хорошую кафешку. (а) перебор окрестности, (б) random walk, (в) repeat random walk
- Парадокс дней рождений и факторизация поллардом
- Сам парадокс. Оценка вероятностей в обе стороны.
- Факторизация: алгоритмы за корень, рандомизированный с gcd за корень.
- Факторизация: ро-эвристика Полларда для факторизации чисел.
− Перерыв −
- Сложность
- Теорема Левина: алгоритм для решения всех NP задач за околооптимальное время
- Класс PSPACE и вложение в NP. wiki
- Класс L (logn памяти). NL. Догадайтесь? wiki
- path(a,b) за log2n бит памяти, ham-path за полином памяти
- Итого: L ⊂ NL ⊂ P ⊂ NP ⊂ PSPACE ⊂ EXP. Известно, что NL ≠ PSPACE, что P ≠ EXP. Но неизвестны все одинарные включения и, например, L =? NP.