Як ви вже сказали, рішення прийняти не потрібно, тому потрібні нові класи складності та нові типи скорочень, щоб визначити відповідне визначення твердості NP для оптимізаційних проблем .
Одним із способів цього є створення двох нових класів NPO та PO, які містять проблеми оптимізації, і вони, звичайно, імітують класи NP та P для вирішення проблем. Також потрібні нові скорочення. Тоді ми можемо відтворити версію NP-твердості для проблем оптимізації, яка була успішною для вирішення проблем. Але спочатку ми повинні погодитись, що таке проблема оптимізації .
Визначення: Нехай є проблемою оптимізації . - це набір входів або екземплярів, придатних, закодованих у вигляді рядків. - функція, яка відображає кожен екземпляр на набір рядків, можливі рішення екземпляра . Це безліч, оскільки існує багато рішень проблеми оптимізації. Таким чином, ми не маємо об'єктивної функції яка повідомляє нам для кожної пари екземпляра і вирішує її вартість або значення . O=(X,L,f,opt)XLx∈Xx f(x,y) y∈L(x)opt говорить нам, чи ми максимізуємо, чи мінімізуємо.
Це дозволяє нам визначити, що таке оптимальне рішення : Нехай є оптимальним рішенням екземпляра оптимізаційної задачі зОптимальне рішення часто позначається .x ∈ X O = ( X , L , f , o p t )yopt∈L(x)x∈XO=(X,L,f,opt)y ∗
f(x,yopt)=opt{f(x,y′)∣y′∈L(x)}.
y∗
Тепер ми можемо визначити клас NPO : Нехай є сукупністю всіх задач на оптимізацію допомогою:O = ( X , L , f , o p t )NPOO=(X,L,f,opt)
- X∈P
- Існує многочлен з для всіх екземплярів і всіх можливих рішень . Крім того, існує детермінований алгоритм, який визначає в поліноміальний час, чи .| у | ≤ p ( | x | ) x ∈ X y ∈ L ( x ) y ∈ L ( x )p|y|≤p(|x|)x∈Xy∈L(x)y∈L(x)
- f може бути оцінена в многочлен.
Інтуїція за нею полягає:
- Ми можемо ефективно перевірити, чи дійсно є дійсним екземпляром нашої проблеми оптимізації.x
- Розмір можливих рішень поліноміально обмежений розміром вхідних даних, і ми можемо ефективно перевірити, чи є можливим рішенням екземпляра .xy∈L(x)x
- Значення рішення можна визначити ефективно.y∈L(x)
Це відображає, як визначається , тепер для PO : Нехай - це сукупність усіх проблем з які можуть бути вирішені детермінованим алгоритмом за багаточлен.P O N P ONPPONPO
Тепер ми можемо визначити, що ми хочемо назвати алгоритмом наближення : Алгоритм наближення оптимізаційної задачі - це алгоритм, який обчислює доцільне рішення для екземпляра .y ∈ L ( x ) x ∈ XO=(X,L,f,opt)y∈L(x)x∈X
Примітка: щоб ми не просили оптимального рішення, ми лише те, що є здійсненним .
Тепер у нас є два типи помилок: Абсолютна похибка можливого рішення екземпляра задачі оптимізації дорівнює.x ∈ Xy∈L(x)x∈X| f ( x , y ) - f ( x , y ∗ ) |O=(X,L,f,opt)|f(x,y)−f(x,y∗)|
Ми називаємо абсолютну помилку алгоритму наближення для задачі оптимізації обмеженої якщо алгоритм обчислює для кожного екземпляра можливе рішення з абсолютною помилкою, обмеженою .O k A x ∈ X kAOkAx∈Xk
Приклад: Відповідно до теореми візування хроматичного індексу графа (кількість кольорів у фарбуванні краю з найменшою кількістю використовуваних кольорів) є або або , де - максимальний ступінь вузла. З доведення теореми може бути розроблений алгоритм наближення, який обчислює забарвлення краю зΔ + 1 Δ Δ + 1ΔΔ+1ΔΔ+1 кольорами. Відповідно, у нас є алгоритм наближення для Minimum−EdgeColoring-Проблема, де абсолютна помилка обмежена .1
Цей приклад є винятком, невеликі абсолютні помилки рідкісні, тому ми визначаємо відносну помилку апроксимаційного алгоритму A на прикладі x оптимізаційної задачі O = ( X , L , f , o p t ) при для всіх і бутиϵA(x)AxO=(X,L,f,opt)x ∈ X y ∈ L ( x )f(x,y)>0x∈Xy∈L(x)
ϵA(x):={0|f(x,A(x))−f(x,y∗)|max{f(x,A(x)),f(x,y∗)}f(x,A(x))=f(x,y∗)f(x,A(x))≠f(x,y∗)
де є допустимим рішенням обчислюється з допомогою апроксимації-алгоритму .AA(x)=y∈L(x)A
Тепер ми можемо визначити алгоритм наближення для задачі оптимізації як алгоритм -приближення для якщо відносна помилка обмежена для кожного примірника , таким чином
O = ( X , L , f , o p t )AO=(X,L,f,opt)δϵ A ( x ) δ ≥ 0 x ∈ X ϵ A ( x ) ≤ δOϵA(x)δ≥0x∈X
ϵA(x)≤δ∀x∈X.
Вибір у знаменнику визначення відносної помилки було вибрано, щоб зробити визначення симетричним для максимізації та мінімізації. Значення відносної помилки . У випадку проблеми з максимальним значенням рішення ніколи не менше і ніколи не перевищує для задачі мінімізації.ϵ A ( x ) ∈ [ 0 , 1 ] ( 1 - ϵ A ( x ) ) ⋅ f ( x , y ∗ ) 1 / ( 1 - ϵ A ( x ) ) ⋅ fmax{f(x,A(x)),f(x,y∗)}ϵA(x)∈[0,1](1−ϵA(x))⋅f(x,y∗)1/(1−ϵA(x))⋅f(x,y∗)
Тепер ми можемо назвати оптимізаційну задачу -approximable, якщо є алгоритм -approximation для який працює в поліноміальний час.δ A OδδAO
Ми не хочемо дивитися на помилку для кожного екземпляра , ми дивимось лише на найгірший випадок. Таким чином , ми визначаємо , то помилка максимальної relativ наближення-алгоритм для оптимізації, задачі , щоб бути
ϵ A ( n ) A O ϵ A ( n ) = sup { ϵ A ( x ) ∣ | х | ≤ n } .xϵA(n)AO
ϵA(n)=sup{ϵA(x)∣|x|≤n}.
Демає бути розміром екземпляра.|x|
Приклад: Максимальну відповідність у графіку можна перетворити на мінімальну кришку вузла шляхом додавання всіх падаючих вузлів від відповідності до кришки вершини. Таким чиномкраї вкриті. Оскільки кожна вершинна кришка, включаючи оптимальну, повинна мати один із вузлів кожного покритого краю, інакше це можна було б покращити, ми маємо . Звідси випливає, що
Таким чином, жадібний алгоритм максимального узгодження є -приближенням- алгоритм для . Звідси є приблизним.1 / 2C1 / +2 ⋅ | C | ⋅ f ( x , y ∗ ) | C | - f ( x , y ∗ )1/2⋅|C|1/2⋅|C|⋅f(x,y∗) 1/2Мяпятал-V
|C|−f(x,y∗)|C|≤12
1/2М яMinimal−VertexCover 1 / 2Minimal−VertexCover1/2
На жаль, відносна похибка не завжди є найкращим поняттям якості для наближення, як показує наступний приклад:
Приклад: Простий жадібний алгоритм може наближати . Аналіз показує, що і, таким чином, буде приблизний.| C |Minimum−SetCoverM i n i m u m - S e t C o v e r ln ( n )
|C||C∗|≤Hn≤1+ln(n)
Minimum−SetCoverln(n)1+ln(n)
Якщо відносна похибка близька до , вигідне наступне визначення.1
Нехай бути в оптимізації -Проблеми з для всіх і і наближення-алгоритму для . Коефіцієнт наближення можливого рішення екземпляра є
f ( x , y ) > 0 x ∈ X y ∈ L ( x ) A O r A ( x ) A ( x ) = y ∈ L ( x ) x ∈ X r A ( x ) = { 1 f (O=(X,L,f,opt)f(x,y)>0x∈Xy∈L(x)AO rA(x)A(x)=y∈L(x)x∈X
rA(x)={1max{f(x,A(x))f(x,y∗),f(x,y∗)f(x,A(x))}f(x,A(x))=f(x,y∗)f(x,A(x))≠f(x,y∗)
Як і раніше ми називаємо наближення-алгоритм -аппроксімаціей-алгоритм для оптимізації завдання- , якщо наближення-співвідношення обмежено для кожного входу .
І ще раз , якщо ми маємо -прібліженіем-алгоритм для оптимізації, завдання , то називається -approximable . Знову ми дбаємо лише про найгірший випадок і визначаємо максимальне відношення наближення яке буде
r O r A ( x ) r ≥ 1 x ∈ X r A ( x ) ≤ r r A O O r r A ( n ) S e t C o v e rArOrA(x)r≥1x∈X
rA(x)≤r
rAOOr rA(n)1 M i n i m u m -rA(n)=sup{rA(x)∣|x|≤n}.
Відповідно, коефіцієнт наближення більший за для субоптимальних рішень. Таким чином, кращі рішення мають менші співвідношення. Для ми можемо зараз записати, що це -доцільно. І у випадку ми знаємо з попереднього прикладу, що це -доступно. Між відносною похибкою та коефіцієнтом наближення маємо прості співвідношення:
1Minimum−SetCoverM e x C o v e r 2 r A ( x ) = 1(1+ln(n))Minimum−VertexCover2rA(x)=11−ϵA(x)ϵA(x)=1−1rA(x).
При малих відхиленнях від оптимального та відносна похибка є вигідною порівняно з коефіцієнтом апроксимації, що показує її сили для великих відхилень та .ϵ<1/2epsi ; ≥ 1 / 2 г ≥ 2r<2ϵ≥1/2r≥2
Дві версії -придатні не перетинаються, оскільки одна версія завжди має а інша . Випадок не є проблематичним, оскільки це досягається лише алгоритмами, які дають точне рішення, і, отже, не потрібно розглядати їх як алгоритми наближення.αα ≥ 1 α = 1α≤1α≥1α=1
Інший клас часто з’являється APX . Він визначається як сукупність усіх проблем оптимізації від які мають алгоритм -апроксимації з який працює в поліноміальний час.Or r ≥ 1NPOrr≥1
Ми майже через. Ми хотіли б скопіювати успішні ідеї скорочення та повноти з теорії складності. Зауваження полягає в тому, що багато варіантів оптимізаційних завдань, що важко приймають рішення, є нескладними між собою, тоді як варіанти їх оптимізації мають різні властивості щодо їх наближення. Це пояснюється поліноміальним скороченням Карпа, яке використовується при зменшенні NP-повноти, що не зберігає цільову функцію. І навіть якщо цільові функції збережені, поліноміально-скорочення Карпа може змінити якість рішення.
Нам потрібна більш сильна версія скорочення, яка не лише відображає випадки від проблеми оптимізації до екземплярів , але і хороші рішення від назад до хороших рішень від .O1O 2 O 1O2O2O1
Отже, ми визначаємо наближення-збереження-зменшення для двох задач оптимізації та від . Ми називаємо до , записаним як , якщо є дві функції і і константа з:O 2 = ( X 2 , L 2 , f 2 , o p t 2 ) N P O O 1 A P O 2 O 1O1=(X1,L1,f1,opt1)O2=(X2,L2,f2,opt2)NPOO1 APO2 g h cO1≤APO2ghc
- x 1 ∈ X 1 r > 1g(x1,r)∈X2 для всіх та раціональнихx1∈X1r>1
- L 1 ( x 1 ) ≠ ∅ x 1 ∈ X 1 r > 1L2(g(x,r1))≠∅ якщо для всіх та раціональнеL1(x1)≠∅x1∈X1r>1
- x 1 ∈ X 1 r > 1h(x1,y2,r)∈L1(x1) для всіх та раціональних і для всіхx1∈X1r>1y2∈L2(g(x1,r))
- Для фіксованих обидві функції і можуть бути обчислені двома алгоритмами за багаточленним часом у довжину їх входів.g hrgh
- У нас є для всіх і раціональний і для всіхx 1 ∈ X 1 r > 1 y 2 ∈ L 2 ( g ( x)
f2(g(x1,r),y2)≤r⇒f1(x1,h(x1,y2,r))≤1+c⋅(r−1)
x1∈X1r>1y2∈L2(g(x1,r))
У цьому визначенні і залежать від якості розчину . При цьому для різних якостей функції можуть відрізнятися. Ця спільність не завжди потрібна, і ми просто працюємо з і .годghg ( x 1 ) h ( x 1 , y 2 )rg(x1)h(x1,y2)
Тепер, коли ми маємо уявлення про зменшення проблем оптимізації, ми можемо, нарешті, перенести багато відомостей із теорії складності. Наприклад, якщо ми знаємо, що і ми показуємо, що випливає, що .O 1 ≤ A P O 2 O 1 ∈ A P XO2∈APXO1≤APO2O1∈APX
Нарешті, ми можемо визначити, що ми маємо на увазі під -hard та -комплект для оптимізації проблем:CCC
Нехай - проблема оптимізації з і клас оптимізаційних задач від тоді називається -твердою щодо якщо для всіх справедливо.N P O C N P O O C ≤ONPOCNPOOC O ′ ∈≤APO ′ ≤ A P OO′∈C O′≤APO
Таким чином, ми ще раз уявляємо про найскладнішу проблему в класі. Не дивно, що -старіша проблема називається -повною щодо якщо це елемент .C≤ A P CC≤APC
Таким чином, тепер ми можемо говорити про -комплектність та -комплектність тощо. І, звичайно, нам зараз пропонується проявити першу -повну проблему, яка бере на себе роль . Це майже природно, що може бути показано як -повне. За допомогою PCP-теореми однієї навіть може показати , що є -повний.A P X N P O S A T W e i g h t e d - S a t i s f i a b i l i t y N P O M a x i m u m - 3 S A T А Р ХNPOAPXNPOSATWeighted−SatisfiabilityNPOMaximum−3SATAPX