Открыть сервис

Теорема о разделении

Теорема о разделении — в теории сложности вычислений фундаментальное утверждение, устанавливающее взаимосвязь между классами сложности P и NP. В наиболее распространённой формулировке (теорема Ладнера) она утверждает, что если P ≠ NP, то существуют языки (задачи), которые не принадлежат классу P и не являются NP-полными, то есть занимают промежуточное положение между этими двумя классами. Теорема о разделении, доказанная Ричардом Ладнером в 1975 году, является одним из ключевых результатов теории сложности, поскольку она показывает, что гипотеза P ≠ NP не влечёт за собой того, что все задачи из NP, не входящие в P, обязательно являются NP-полными.

Формулировка

Пусть P — класс задач, разрешимых за полиномиальное время на детерминированной машине Тьюринга, а NP — класс задач, разрешимых за полиномиальное время на недетерминированной машине Тьюринга. Задача называется NP-полной, если она принадлежит NP и к ней полиномиально сводится любая другая задача из NP.

Теорема Ладнера (теорема о разделении): Если P ≠ NP, то существует язык (задача) L, такой что:

  1. L ∈ NP;
  2. L ∉ P;
  3. L не является NP-полным.

Иными словами, при условии P ≠ NP класс NP имеет нетривиальную иерархию: в нём существуют задачи, которые сложнее, чем задачи из P, но проще, чем NP-полные задачи.

Доказательство (основная идея)

Доказательство Ладнера конструктивно и основано на методе диагонализации с использованием понятия «полиномиально-временной ступенчатой функции» (полиномиально-временной иерархии). Идея состоит в построении языка L, который «медленно» растёт по сложности, чередуя этапы, на которых он ведёт себя как задача из P, и этапы, на которых он ведёт себя как задача, не являющаяся NP-полной.

Конкретно, строится последовательность натуральных чисел (ступеней), определяющих моменты времени, когда машины Тьюринга, пытающиеся решить L, должны либо остановиться с ответом «да», либо продолжить вычисления. Язык L определяется так, что:

Доказательство использует технику «задержек» (delays) и «подсказок» (oracles), чтобы гарантировать, что L не слишком прост и не слишком сложен.

Следствия и значение

1. Структура класса NP

Теорема о разделении показывает, что класс NP не является двухэлементным (P и NP-полные задачи) при условии P ≠ NP. Существует континуум возможных степеней сложности внутри NP, образующих так называемую иерархию Ладнера. Это означает, что задача может быть «чуть сложнее» P, но «чуть проще» NP-полной.

2. Отсутствие полной классификации

Теорема указывает на то, что даже если P ≠ NP, классификация всех задач из NP по степени сложности является нетривиальной. Не существует единого «порога», отделяющего P от NP-полноты.

3. Связь с гипотезой P ≠ NP

Теорема Ладнера не доказывает и не опровергает гипотезу P ≠ NP. Она лишь показывает, что если эта гипотеза верна, то структура NP богаче, чем просто два класса. Если же P = NP, то теорема тривиальна (все NP-задачи принадлежат P, и промежуточных задач нет).

4. Применение в других классах

Аналоги теорем о разделении существуют для других классов сложности, например, для классов EXP и NEXP, а также для классов с оракулами. В общем случае, для любых двух классов сложности, один из которых строго больше другого, можно построить задачу, лежащую между ними, если выполнены определённые условия (например, классы замкнуты относительно полиномиального сведения).

Примеры задач, предположительно являющихся промежуточными

Хотя теорема Ладнера гарантирует существование таких задач, она не даёт явных примеров. Однако на практике к числу задач, которые, как полагают, могут быть промежуточными (при условии P ≠ NP), относят:

Эти задачи не являются NP-полными в классическом смысле, но и полиномиальные алгоритмы для них неизвестны. Они могут служить кандидатами на роль «промежуточных» задач, существование которых предсказывает теорема Ладнера.

Критика и ограничения

Интересные факты

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →