Як вже було сказано в коментарях, це залежить від визначень, як зазвичай. Моя спроба відповісти на це потребує досить кількох визначень, тож це буде ще одним прикладом моєї нездатності дати стислі відповіді.
Визначення: завдання оптимізації є кортеж з( X , F , Z , ⊙ )( X, F, Z, ⊙ )
- ХХ набір відповідно кодованих (рядків) екземплярів або входів .
- F x ∈ XЖ є функцією , яка відображає кожен екземпляр до безлічі F ( х ) з можливих рішень по ї .x ∈ XЖ( х )х
- ZZ є цільовою функцієюяка відображає кожну пару ( х , у )( х , у) , де х ∈ Хx ∈ X і Y ∈ F ( х )у∈ F( х ) , щоб дійсне число Z ( х , у )Z( х , у) називаєтьсязначеннямпо уу .
- ⊙⊙ -напрям оптимізації, або min,хв або maxмакс .
Визначення: оптимальне рішення примірника х ∈ Хx ∈ X завдання оптимізації Р OПО є допустимим рішенням у ∈ F ( х )у∈ F( х ) , для яких Z ( х , у ) = ⊙ { Z ( х , у ' ) | у ' ∈ F ( x ) }Z( х , у)=⊙{Z(x,y′)∣y′∈F(x)} . Значення оптимального рішення позначається з O p t ( x )Opt(x)і називається оптимальним .
Визначення: Проблема з оцінкою , позначена P EPE , що відповідає задачі оптимізації P OPO , така: Дано екземпляр x ∈ Xx∈X , обчисліть O p t ( x ),Opt(x) якщо xx має оптимальне рішення, і в іншому випадку виведіть "немає оптимального рішення".
Зауважимо, що це просто запитує значення оптимального рішення не всього рішення, а також усіх його деталей.
Визначення: Проблема рішення , позначена P D, що відповідає задачі оптимізації P O, є наступною: Давши пару ( x , k ) , де x ∈ X і k ∈ Q , вирішують, чи має x можливе рішення y таке, що Z ( x , y ) ≤ k, якщо ⊙ = min і таке, що Z ( x , y )PDPO(x,k)x∈Xk∈QxyZ(x,y)≤k⊙=min≥ k, якщо ⊙ = макс .Z(x,y)≥k⊙=max
Перше спостереження полягає в тому, що в даний час Р Про ∈ N P O ⇒ P D ∈ N P . Доказ тут не важкий і опущений.PO∈NPO⇒PD∈NP
Тепер інтуїтивно P E і P D, відповідні P O , не складніше, ніж сам P O. Щоб висловити це почуття формально (тим самим визначивши, що має означати еквівалент ), ми будемо використовувати скорочення.PEPDPOPО
Нагадаємо, що мова L 1 є многочленним часом, зведеним до іншої мови L 2, якщо є функція f , обчислювана в поліноміальний час, така, що для всіх слів x , x ∈ L 1 ⇔ f ( x ) ∈ L 2 . Цей вид приводимості відомий як Карп або прискіпливість багатьох до одного , і якщо L 1 таким чином приводиться до L 2 , ми виражаємо це, записуючи L 1 ≤ m L 2L1L2fхx ∈ L1⇔ f( x ) ∈ L2L1L2L1≤мL2. Це центральне поняття у визначенні NP-повноти.
На жаль, багато-до одного скорочення відбувається між мовами, і не ясно, як їх використовувати в контексті проблем оптимізації. Тому нам потрібно розглянути інший вид скорочуваності, придатність Тюрінга . Спочатку нам це потрібно:
Визначення: оракула для проблемного P є (гіпотетичної) підпрограмою , яка може вирішити екземпляри Р в постійна час.ПП
Визначення: Проблема P 1 - поліноміально-часовий термін, зводиться до задачі P 2 , записаної P 1 ≤ T P 2 , якщо екземпляри P 1 можуть бути вирішені в поліноміальний час алгоритмом з доступом до оракула для P 2 .П1П2П1≤ТП2П1П2
Неофіційно, як і у ≤ m , відношення P 1 ≤ T P 2 виражає, що P 1 не складніше, ніж P 2 . Неважко також помітити, що якщо P 2 можна розв’язати за багаточленним часом, то і P 1 . Знову ≤ T - перехідне відношення. Наступний факт очевидний:≤мП1≤ТП2П1П2П2П1≤Т
Нехай P O ∈ N P O , то Р Д ≤ Т Р Е ≤ T P O .ПО∈ N P OПD≤ТПЕ≤ТПО
Тому що з урахуванням повного рішення, обчислити його значення та вирішити, чи відповідає він пов'язаному k просто.к
Визначення: Якщо для двох задач P 1 і P 2 обидва відношення P 1 ≤ T P 2 , P 2 ≤ P 1 утримуємо, запишемо P 1 ≡ T P 2 ; наше поняття еквівалентності .П1П2П1≤ТП2П2≤ P1П1≡ТП2
Тепер ми готові довести, що P D ≡ T P E з огляду на відповідну задачу оптимізації P O ∈ N P O, а Z ціле число. Треба показати, що P E ≤ T P D справедливо. Ми можемо визначити ⊙ { Z ( х , Y ) | у ∈ F ( х ) } з бінарним пошуком usign в Orcale для P D . визначення NПD≡ТПЕПО∈ N P OZПЕ≤ТПD⊙ { Z( х , у) ∣ у∈ F( x ) }ПDP OН П О забезпечує, що | Z(x,y) | ≤ 2 q ( | x | ) для деякого многочленаq, тому кількість кроків у двійковому пошуку є поліном у | х | . ◻| Z( х , у) | ≤ 2q( | х | )q| х |□
Для проблеми оптимізації P O відношення до P E менш чітке. У багатьох випадках конкретних, можна показати , що безпосередньо Р D ≡ Т Р Е ≡ T P O . Щоб довести, що це в цілому відповідає рамкам, поданим тут, нам потрібно додаткове припущення.ПОПЕПD≡ТПЕ≡ТПО
Спочатку нам потрібно поширити ≤ m від пар мов до пар відповідних задач рішення. Тоді легко побачити, що ≤ T є загальнішим, ніж ≤ m .≤м≤Т≤м
Нехай Р і Р ' - проблеми з рішенням; тоді P ≤ m P ′ ⇒ P ≤ T P ′ . Це справедливо, тому що багатозначне скорочення можна інтерпретувати як використання оракула дуже обмеженим чином: оракул викликається один раз, в самому кінці, і його результат також повертається як загальний результат. ◻ПП'П≤мП'⇒ Р≤ТП'□
Тепер ми готові до фіналу:
Нехай P O ∈ N P O і припустимо , що Z є цілочисельним і що Р D є NP-повною, то Р D ≡ Т Р Е ≡ Т Р Про . З попередніми спостереженнями залишається показати P ущільнювача ≤ T P E . Для цього ми будемо проявляти проблему P ' O ∈ N P O таке , що P O ≤ T P ' E . Тоді маємоПО∈ N P OZПD
ПD≡ТПЕ≡ТПО.
ПО≤ТПЕП'О∈ N P OПО≤ТП'ЕP O ≤ T P ' E ≤ T P ' D ≤ Т Р Д ≤ Т Р Е . Другий та третій
≤ T виконують через еквівалентність версії рішення та оцінки, підтвердженої раніше. Третя
≤ T випливає з NP-повноти
P D та двох фактів, згаданих раніше, а саме
P O ∈ N P O ⇒ P D ∈ N P і
P ≤ mПО≤ТП'Е≤ТП'D≤ТПD≤ТПЕ.
≤Т≤ТПDПО∈ N P O ⇒ PD∈ N PР ' Про ⇒ Р ≤ Т Р ' Про .
П≤мП'О⇒ Р≤ТП'О
Тепер деталі: Припустимо, що можливі рішення P O кодуються за допомогою алфавіту Σ, забезпеченого загальним порядком. Нехай w 0 , w 1 , ... - слова з Σ ∗, перелічені в порядку зменшення довжини та лексикографічного порядку в блоках слів із загальною довжиною. (Таким чином, w 0 - порожнє слово.) Для всіх y ∈ Σ ∗ нехай σ ( y ) позначає єдине ціле число i таке, що y = w i . Обидва σПОΣш0, ш1, …Σ∗ш0у∈ Σ∗σ( у)iу= шiσі σ - 1 можна обчислити в поліноміальний час. Нехай q - поліном такий, що для всіх x ∈ X і всіх y ∈ F ( x ) маємо σ ( y ) < 2 q ( | x | ) .σ- 1qx ∈ Xу∈ F( х )σ( у) < 2q( | х | )
Тепер задача P ′ O тотожна P O, за винятком модифікованої цільової функції Z ′ . Для x ∈ X і y ∈ F ( x ) беремо Z ′ ( x , y ) = 2 q ( | x | ) ⋅ Z ( x , y ) + σ ( y ) . Z ′П'ОПОZ'x ∈ Xу∈ F( х )Z'( х , у) = 2q( | х | )⋅ Z( х , у) + σ( у)Z' is computable in polynomial time thus P′O∈NPOП'О∈ N P O.
To show that PO≤TP′EПО≤ТП'Е we observe that xх is feasible for POПО if and only if it is feasible for P′EП'Е. We can assume that this is the case, since the opposite case is trivial to handle.
The substituion of Z′Z' for ZZ is monotonic in the sense that for all y1,y2∈F(x)у1, у2∈ F( х ), if Z(x,y1)<Z(x,y2)Z( х , у1) < Z( х , у2) then Z′(x,y1)<Z′(x,y2)Z'( х , у1) < Z'( х , у2). This implies that every optimal solution for xх in P′OП'О is an optimal solution of xх in POПО. Thus our task reduces to the computation of an optimal solution yу of xх in P′OП'О.
Querying the oracle for P′EП'Е we can get the value of Z′(x,y)=2q(|x|)⋅Z(x,y)+σ(y)Z'( х , у) = 2q( | х | )⋅ Z( х , у) + σ( у). Forming the remainder of this number modulo 2q(|x|)2q( | х | ) yields σ(y)σ( у) from which yу can be computed in polynomial time.