NP-повна задача

Матеріал з testwiki
Версія від 01:54, 2 березня 2022, створена imported>InternetArchiveBot (Bluelink 1 book for Перевірність (20220301)) #IABot (v2.0.8.6) (GreenC bot)
(різн.) ← Попередня версія | Поточна версія (різн.) | Новіша версія → (різн.)
Перейти до навігації Перейти до пошуку
Діаграма Венна відношення між класами складності задач (у випадку вірності гіпотези P ≠ NP).

NP-повна задача (Шаблон:Lang-en) — в теорії алгоритмів та теорії складності це задача, що належить до класу NP та всі задачі з класу NP можна звести до неї за поліноміальний час.[1]

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

Нехай L — мова (проблема) що належить до класу NP. Мова L називається NP-повною якщо виконуються такі умови:

  1. L належить до NP.
  2. Для довільної мови L в NP існує зведення до L за поліноміальний час.[2]

Якщо довільний окремий випадок задачі L1 можна перетворити в деякий окремий випадок задачі L2 в такий спосіб, що розв'язок задачі L1 можна отримати за поліноміальний час від розв'язку задачі L2 то кажуть, що L1 зводиться до L2.[1]

Якщо P ≠ NP, то всі NP-повні проблеми знаходяться в множині NP — P, через це доведення NP-повноти задачі можна розглядати як додатковий аргумент на користь того, що проблема не належить до класу P і для неї не існує точного поліноміального алгоритму.

NP-повнота в сильному сенсі

Задача називається NP-повною в сильному сенсі, якщо у неї існує підзадача, яка:

  1. Не є задачею з числовими параметрами (тобто максимальне значення величин, що зустрічаються в цій задачі, обмежено зверху поліномом від довжини входу),
  2. Належить до класу NP,
  3. Є NP-повною.

Клас таких задач називається NPCS. Якщо гіпотеза P ≠ NP справедлива, то для NPCS задач не існує псевдополіноміального алгоритму.

Гіпотеза P ≠ NP

Рівність класів P і NP вже понад 30 років є відкритою проблемою. Наукове співтовариство схиляється до негативного вирішення цього питання — у цьому випадку за поліноміальний час вирішувати NP-повні задачі не вдасться.

Приклади

Шаблон:Main

Див. також

Шаблон:Multicol

Шаблон:Multicol-break

Шаблон:Multicol-end

Примітки

Шаблон:Reflist Шаблон:Портал Шаблон:NP-повні задачі Шаблон:Класи складності Шаблон:Compu-prog-stub