Формальные языки

P vs NP

2000 год. Clay Mathematics Institute объявляет семь Проблем Тысячелетия, каждая с призом $1 млн. P vs NP - единственная из них, напрямую связанная с компьютерными науками. За 50+ лет получено только одно решение (гипотеза Пуанкаре, Перельман, 2003). P vs NP остаётся открытой. Но понять эту проблему - значит понять границы того, что вообще можно вычислить.

  • **RSA и HTTPS:** безопасность всего современного интернета основана на предположении P ≠ NP. Факторизация больших чисел - в NP, предположительно не в P. Каждое HTTPS-соединение - практическая ставка на P ≠ NP
  • **AlphaFold (DeepMind, 2020):** предсказание структуры белков. Задача сворачивания белков - NP-hard в общем случае. AlphaFold не решает задачу оптимально (это было бы P=NP), а находит очень хорошие решения через ML
  • **SAT-солверы в производстве:** Z3 (Microsoft), CaDiCaL, MiniSAT решают SAT-задачи с миллионами переменных за секунды в лучших случаях. Но это эвристики - худший случай экспоненциальный. Используются в верификации Intel Core i9
  • **Коммивояжёр в логистике:** Amazon Logistics, FedEx, DHL решают варианты TSP ежедневно. Не оптимально - аппроксимационными алгоритмами (Christofides: 1.5-аппроксимация). P ≠ NP обосновывает почему оптимальный алгоритм недостижим

Класс P: полиномиальное время

**P** - класс задач, решаемых детерминированной МТ за полиномиальное время O(n^k) для некоторого k. Полиномиальное время - это интуитивный порог «практически разрешимо»: O(n), O(n²), O(n³) - растут, но управляемо. Экспоненциальное O(2^n) - n=100 уже недостижимо. P содержит большинство стандартных алгоритмов.

Алгоритм работает за O(n^100). Он принадлежит классу P?

Класс NP: недетерминированное полиномиальное время

**NP** - класс задач, решаемых недетерминированной МТ за полиномиальное время. Интуитивно: задача в NP если **решение можно проверить за полиномиальное время**. Поиск решения может быть экспоненциальным, но проверка данного решения - быстрая. Это ключевая асимметрия: найти трудно, проверить легко.

**P ⊆ NP** - это доказано. Если задача разрешима за poly детерминированно, она разрешима за poly недетерминированно (просто используем детерминированный алгоритм). Вопрос: P = NP? Т.е. всё ли то, что можно проверить за poly, можно и найти за poly?

Задача в NP. Что это гарантирует?

P = NP? Последствия каждого ответа

Вопрос P = NP задан в 1971-м году (Кук). Приз за решение - $1 000 000 (Millennium Prize, Clay Institute). Большинство экспертов считают P ≠ NP, но доказательства нет. Важнее вопроса о деньгах - последствия каждого ответа для всей науки и технологий.

Если P = NPЕсли P ≠ NP (ожидаемое)
RSA, AES, ECDH - взломать за poly времяКриптография на основе трудности задач - фундамент
Оптимальное расписание, маршрутизация за polyАппроксимационные алгоритмы - вынужденный компромисс
Формальная верификация ПО за polyВерификация остаётся дорогой и ограниченной
Белки сворачиваются - предсказать структуру за polyAlphaFold - прорыв, но не P-алгоритм
Доказательства теорем - автоматически за polyМатематика останется творческим занятием
ИИ перепишет себя до совершенстваAGI остаётся сложной задачей

**Если P = NP**, конструктивное доказательство даст poly-алгоритм для SAT, что автоматически решает все NP-задачи через сведения. Но poly может быть O(n^10000) - теоретически быстро, практически бесполезно. **Если P ≠ NP**, большинство NP-задач не имеют poly-алгоритмов, что является фундаментом криптографии с открытым ключом.

Если завтра докажут P = NP, RSA перестанет быть безопасным. Почему?

Барьеры в доказательстве P ≠ NP

Почему за 50+ лет никто не доказал P ≠ NP? Не из-за недостатка усилий - есть три математических **барьера**, блокирующих известные методы доказательства. Понять их значит понять, насколько глубока проблема.

**Geometric Complexity Theory (GCT)** - наиболее перспективное направление (Mulmuley, Sohoni, 2001). Переводит P vs NP в задачу алгебраической геометрии и теории представлений. Пока не дала результата, но даёт новые инструменты. **Derandomization**: если BPP = P, это может помочь в атаке на P vs NP через связь с pseudo-random generators.

P vs NP легко решить - просто нужно найти экспоненциальную нижнюю оценку для SAT

Три математических барьера (релятивизация, натурализация, алгебраизация) блокируют все известные методы доказательства нижних оценок. Нужен принципиально новый математический подход

Доказательства нижних оценок для схем (circuit lower bounds) за 40+ лет достигли только суперлинейных оценок для ограниченных моделей. Полиномиальная нижняя оценка для произвольных схем - открытая проблема, предшествующая P vs NP по сложности.

Исследователь придумал новое доказательство P ≠ NP. Как барьеры помогают его проверить?

Итоги

  • **P:** задачи с poly-алгоритмом детерминированной МТ. **NP:** задачи с poly-верификатором (решение проверяется за poly). P ⊆ NP доказано
  • **P = NP?** Открытый вопрос с 1971. Большинство экспертов считают P ≠ NP. Приз $1 млн от Clay Institute
  • **Последствия P = NP:** крах RSA/AES криптографии, poly-алгоритмы для оптимизации, формальной верификации, предсказания белков
  • **Три барьера:** релятивизация, натурализация, алгебраизация блокируют все известные методы. Нужен принципиально новый математический подход

Связанные темы

P vs NP - центральный вопрос теории сложности:

  • NP-полнота — NP-полные задачи - наиболее трудные в NP: решить одну = решить все NP-задачи
  • Варианты МТ — NP определяется через недетерминированную МТ за poly шагов
  • Приближённые алгоритмы — Если P ≠ NP, аппроксимация - единственный выход для NP-hard задач

Вопросы для размышления

  • Если P = NP, но с константой k = 10000 (алгоритм O(n^10000)), что это означает для практики? Имеет ли такой результат ценность?
  • Криптография с открытым ключом основана на P ≠ NP. Но квантовые компьютеры разрушают RSA алгоритмом Шора. Означает ли это, что квантовые компьютеры решают P vs NP?
  • Три барьера объясняют трудность P vs NP. Означает ли их существование, что вопрос принципиально неразрешим (как halting problem) или просто очень труден?

Связанные уроки

  • comp-04
P vs NP

0

1

Войти