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

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до: навігація, пошук
Діаграма Венна, що відображає множинні відношення між класами складності задач.

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

Зміст

Формальне визначення [ред.]

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

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

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

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

Гіпотеза P ≠ NP [ред.]

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

Приклади [ред.]

Посилання [ред.]

  1. а б Рейнгольд, Нивергельт Ю., Део Н. (1980). Комбинаторные Алгоритмы (рос.). Москва: Мир. с. 442—443. 
  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. 

Див. також [ред.]