Відповіді:
Алі, хороше запитання.
Припустимо, ви хочете показати, що деяка проблема P обчислювально обчислювальна. Тепер ви можете припустити, що P важко лише виходячи з того, що в нас поки що немає ефективних алгоритмів. Але це доволі надумані докази, ні? Можливо, ми пропустили якийсь приємний спосіб поглянути на P, який би полегшив рішення. Отже, щоб припустити, що P важко, ми хотіли б накопичити більше доказів. Зниження - це інструмент, щоб зробити саме це! Якщо ми можемо звести якусь іншу природну задачу Q до P, то ми показали, що P принаймні так само важко, як і Q. Але Q може бути проблемою з якоїсь зовсім іншої області математики, і люди, можливо, десятиліттями намагаються вирішити Q також . Таким чином, ми можемо бачити наше неспроможність знайти ефективний алгоритм для Q як доказ того, що P важко. Якщо у нас багато таких Q '
Саме це забезпечує теорія повноти NP. Якщо ви докажете, що ваша проблема не є повною, то ви прив'язали її твердість до твердості сотень інших проблем, кожна з яких представляє значний інтерес для різних громад. Таким чином, морально кажучи, ви можете бути впевнені, що ваша проблема справді важка.
Доведення проблеми NP-Complete є успіхом у дослідженні, оскільки це позбавляє вас від необхідності шукати ефективне та точне рішення загальної проблеми, яку ви вивчаєте. Це доводить, що ваша проблема є членом класу проблем, настільки важких, що ніхто не зміг знайти ефективний і точний алгоритм для будь-якої з проблем, і таке рішення для будь-якої з проблем означало б вирішення всіх проблеми.
Зазвичай це трамплін, тому що проблема все ще існує - вам просто доведеться розслабити свої вимоги. Зазвичай люди намагаються розібратися, як розслабити одне або кілька «ефективних», «точних» чи «загальних». Неефективне і точне-загальне - це спроба знайти кращі та кращі константи в експоненті цих алгоритмів. Ефективне і неточне загальне - це вивчення алгоритмів наближення. Ефективне і точне, але не загальне - це дослідження простежуваності фіксованого параметра та пошук підкласів введення, для яких можна знайти ефективні алгоритми.
Давайте розглянемо два різні випадки, чому дві різні особи хотіли б довести проблему :
а) Ви працюєте над програмним проектом. Вказавши вашу систему, ви починаєте визначати архітектуру програми. Сюди входить розбиття великої проблеми / потреби, що додаток служить для менших проблем. Скажімо, вам було поставлено завдання знайти ефективний (ми не хочемо, щоб наш додаток був повільним!) Для однієї з таких менших проблем. Протягом певного часу, не вдається знайти алгоритм полінома. Тоді ви можете подумати: можливо, ця проблема дуже складна, тому знайти складний алгоритм дуже важко (або навіть неможливо). Доводячи, що проблема , у вас є деякі докази цієї вашої думки, і ви повинні почати розглянути альтернативний підхід (наприклад, змінити проблему, щоб вона стала легшою).
б) Ви досліджуєте теорію складності. За визначенням ви хочете охарактеризувати проблеми (або класи проблем) відповідно до кількості необхідних ресурсів, тобто складності їх вирішення. Доводячи, що певна проблема є , ви отримуєте певну думку:
Узагальнення, характеристика проблеми дозволяє використовувати загальні методи. Вивчаючи клас, з яким він пов'язаний, ви можете думати на абстрактному рівні, не турбуючись про специфіку цієї конкретної проблеми, яка є загальною для математики та науки загалом. Робота з класами замість окремих членів дозволяє використовувати відомі методики, а також застосовувати свої уявлення до більшої кількості об'єктів, а не лише до одного.
Кожна проблема має кілька зв'язків з іншими проблемами. Крім того, існують зв’язки між класами проблем та складності.
Тому класифікація однієї проблеми як NPC зазвичай дає нам уявлення про інші проблеми, а також класи складності.
Наприклад, візьміть задачу про ізоморфізм графіка (GI). У наступній роботі:
Уве Шенінг, Графічний ізоморфізм знаходиться в низькій ієрархії , Праці 4-го щорічного симпозіуму з теоретичних аспектів інформатики , 1987, 114–124; також: Журнал комп'ютерних та системних наук, т. 37 (1988), 312–323.
доведено, що якщо GI ∈ NPC, то поліноміальна ієрархія (PH) руйнується до другого рівня; що стане серйозним проривом у теорії структурної складності.