1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11

# конспект · шаг 11 из 11

Конспект: P, NP, сведения и NP-полнота

выжимка - её можно унести в заметки

Понятия

Задача разрешения - вопрос с ответом «да» или «нет». Длина входа - число бит его записи.

Класс P - задачи, решаемые за время не больше c · nᵏ. Класс NP - задачи, у которых ответ «да» подтверждается сертификатом полиномиальной длины и полиномиальной проверяющей программой. co-NP - то же для ответа «нет».

КНФ - «и» скобок, в скобке «или» литералов (переменная или её отрицание). SAT - выполнима ли формула. 3-SAT - то же, скобки не длиннее трёх литералов.

Полиномиальное сведение A ≤ B - быстрый перевод входов A во входы B с тем же ответом.

NP-трудная задача - к ней сводится всё из NP. NP-полная - NP-трудная и сама в NP.

Независимое множество - вершины без рёбер между ними. Вершинное покрытие - вершины, задевающие каждое ребро. Клика - вершины, попарно соединённые.

Что унести

ВРЕМЯ, миллиард (для простоты счёта 2³⁰) операций в секунду
n          n²                 n⁵                 2ⁿ
40         меньше секунды     меньше секунды     17 минут
60         меньше секунды     меньше секунды     34 года
80         меньше секунды     3 с                35 миллионов лет
1000       меньше секунды     258 часов          -
удвоение входа:  nᵏ растёт в 2ᵏ раз;  2ⁿ возводится в квадрат
железо в 1000 раз быстрее: +10 к n

длина входа - биты записи:  число N занимает log₂ N бит
перебор делителей до √N:    бит        20      24       28
                            проверок   1022    4094     16382
                            2 в степени половины длины
NP: предъявить и проверить
задача                  сертификат           проверка
SAT                     значения переменных  подставить
цикл через все вершины  порядок вершин       каждая один раз, рёбра есть
сумма подмножества      номера чисел         сложить
составное число         делитель             разделить

P ⊆ NP ⊆ EXP;   P ≠ EXP доказано;   P = NP? и NP = co-NP? - неизвестно
проверить набор - длина формулы;   найти перебором - 2ⁿ наборов:
                                   16, 256, 1024 при n = 4, 8, 10
о сертификатах ответа «нет» определение ничего не обещает
СВЕДЕНИЕ  A ≤ B:  перевод полиномиален,  «да» → «да»,  «нет» → «нет»
B в P  →  A в P        A трудна  →  B трудна        A ≤ B ≤ C  →  A ≤ C

независимое множество размера k  ⇄  вершинное покрытие размера n − k
                                    (граф тот же)
независимое множество в G        ⇄  клика в дополнении G   (k то же)
вершинное покрытие ≤ покрытие множествами:
    элементы - рёбра, множество вершины - её рёбра
граф на 7 вершинах:  независимых 4, покрытие 3,
                     клика в дополнении - те же 4 вершины
NP-ПОЛНОТА
Кук-Левин:  проверка V(x, c)  →  схема из вентилей  →  формула;
            сертификат = переменные
    g = a и b       (¬g ∨ a) (¬g ∨ b) (g ∨ ¬a ∨ ¬b)
    g = a или b     (g ∨ ¬a) (g ∨ ¬b) (¬g ∨ a ∨ b)
    голосование из трёх:  5 вентилей, 16 скобок, 4 выполняющих набора

SAT ≤ 3-SAT:  (a ∨ b ∨ c ∨ d ∨ e)
              →  (a ∨ b ∨ y₁) (¬y₁ ∨ c ∨ y₂) (¬y₂ ∨ d ∨ e)
              k литералов  →  k − 2 скобки, k − 3 новые переменные;
              2-SAT лежит в P

3-SAT ≤ независимое множество:
    вершина - вхождение литерала;   рёбра внутри скобки;
    рёбра между x и ¬x из разных скобок
    k = число скобок;   между одинаковыми литералами рёбер НЕТ
    3 скобки по 3 литерала:  9 вершин, 9 + 6 = 15 рёбер

доказать NP-полноту B:   1) B в NP;
                         2) известную NP-полную задачу свести к B

Ловушки джокера

Посчитал время от величины числа. Цикл до N - экспонента от длины записи N.

Прочитал NP как «неполиномиальные». В NP лежит весь P.

Счёл полиномиальный алгоритм быстрым. n⁵ на тысяче элементов - одиннадцать суток.

Принял один негодный сертификат за ответ «нет». Так доказывается только «этот сертификат не подошёл».

Свёл свою задачу к SAT, чтобы показать её трудность. К SAT сводится и сортировка. Направление обратное.

Доказал одну половину сведения. Без «нет → нет» перевод может превращать невыполнимое в выполнимое.

Назвал NP-полную задачу неразрешимой или доказанно медленной. Она разрешима; медленность не доказана - доказана равносильность вопросу о P и NP.

Соединил одинаковые литералы в графе сведения. Запрещать нужно только x вместе с ¬x.

Решил, что NP-полная задача трудна на каждом входе. Оценка - для худшего случая.

Проверь себя

Почему граница проведена по многочлену и в чём измеряется вход? Что такое сертификат и почему у ответа «нет» его может не быть? Что следует из A ≤ B в каждую сторону? Как проверка превращается в формулу? Какие два шага доказывают NP-полноту новой задачи? Какие рёбра в графе сведения от 3-SAT и зачем каждое?

RP ошибается только отказом, coRP только принятием, BPP допускает обе ошибки. ZPP = RP ∩ coRP: верный ответ с полиномиальным ожидаемым временем.

P/poly - семейства полиномиальных схем без требования равномерности; совет зависит только от длины входа. Вычисление готовой схемы легко, CIRCUIT-SAT NP-полна.

IP: полиномиальный случайный проверяющий и неограниченный доказывающий, полнота и звуковость. IP = PSPACE. В протоколе неизоморфизма источник переименованного графа скрыт.

Комментарии

Пока нет комментариев. Будь первым!

Оставить комментарий

Комментарий появится после проверки. Email не публикуется. Войти, чтобы не вводить имя каждый раз.