Клас складності NP

Клас складності NP (англ. Complexity class NP) — клас складності, до якого належать задачі, що можна розв'язати недетермінованими алгоритмами за поліноміальний час; тобто, недетермінованими алгоритмами в яких завжди існує шлях успішного обчислення за поліноміальний час відносно довжини вхідного рядка; очевидно, що P N P {\displaystyle {\mathcal {P}}\subseteq {\mathcal {NP}}} .[1]

Формальне визначення

Мова L {\displaystyle L} належить до класу NP (недетермінованих поліноміальних) якщо вона розпізнається недетермінованою машиною Тюрінга M {\displaystyle M} з поліноміальною часовою складністю T ( n ) {\displaystyle T(n)} .[2]

Властивості

Оскільки кожна детермінована машина Тюринга може розглядатись як недетермінована, але без вибору варіантів кроків, то клас P {\displaystyle {\mathcal {P}}} є підмножиною N P {\displaystyle {\mathcal {NP}}} . Однак до класу складності NP належить багато інших задач, належність яких до класу P не доведена.[2]

Однією з найгостріших задач математики є з'ясування вірності тотожності P = N P {\displaystyle {\mathcal {P}}={\mathcal {NP}}} . Тобто, пошуку відповіді на питання, чи є правильним твердження, що будь-що, що виконує недетермінована машина Тюринга за поліноміальний час можна виконати на детермінованій машині за, можливо більший, поліноміальний час.

Приклад задач

До задач класу складності NP належать:[3]

  • Розв'язність логічного виразу.
  • Триколірне розфарбування графу.
  • Побудова кліки з k {\displaystyle k} вершин на неорієнтованому графі.
  • Покриття множин: нехай задане сімейство F {\displaystyle F} підмножин E i {\displaystyle E_{i}} деякої множини E {\displaystyle E} ; необхідно знайти підсемейство G {\displaystyle G} із F {\displaystyle F} , так, що:
    F E i = G E i {\displaystyle \cup _{F}E_{i}=\cup _{G}E_{i}}
  • Розбиття множин: за попередніх умов, але, крім того, вимагається, щоб E i E j = {\displaystyle E_{i}\cap E_{j}=\emptyset } (для довільних E i , E j {\displaystyle E_{i},E_{j}} з G {\displaystyle G} ).
  • Існування гамільтонового циклу на неорієнтованому графі.
  • Задача пакування рюкзака: для змінних x i {\displaystyle x_{i}} , що приймають значення 0 та 1 розв'язати рівняння:
    a j x j = b {\displaystyle \sum a_{j}x_{j}=b} де a j {\displaystyle a_{j}} та b {\displaystyle b}  — наперед задані цілі числа.
    для загального випадку, ця задача є розв'язанням діофантового рівняння.
  • Розбиття на дві частини: нехай дано n {\displaystyle n} чисел y i {\displaystyle y_{i}} з N {\displaystyle {\mathcal {N}}} , необхідно розбити на дві множини I 1 {\displaystyle I_{1}} та I 2 {\displaystyle I_{2}} що не перетинаються, так, щоб:
    i I 1 y i = i I 2 y i . {\displaystyle \sum _{i\in I_{1}}y_{i}=\sum _{i\in I_{2}}y_{i}.}
  • Задача комівояжера[4].

Посилання

  1. Рейнгольд, Нивергельт Ю., Део Н. (1980). Комбинаторные Алгоритмы (рос.) . Москва: Мир. с. 444.
  2. а б John E. Hopcroft, Rajeev Motwani, Jeffrey D. Ullman (2001). Introduction to Automata Theory, Languages and Computation (англ.) (вид. 2). Addison-Wesley. с. 419. ISBN 0-201-44124-1.
  3. Лорьер Ж.-Л. (1991). Системы искусственного интеллекта. пер. с фр. Мир.
  4. Adleman, Leonard M. Molecular computation of solutions to combinatorial problems.

Див. також

  • Портал «Математика»
  • п
  • о
  • р
NP-повні задачі
Класифікація
Основи
NP-повна задача  · Клас складності NP  · Клас складності P
Задачі
Теорія складності обчислень
Логічні ігри
та головоломки
Списки
21 NP-повна задача Карпа  · Список NP-повних задач
Дослідники
Див. також
  • п
  • о
  • р
Вважаються легкими
Припускаються складними
Вважаються складними
  • EXPTIME
  • NEXPTIME
  • EXPSPACE
  • 2-EXPTIME
  • PR
  • RE
  • Co-RE
  • RE-complete
  • Co-RE-complete
  • PH
Інше