Проблеми з рішенням проти "реальних" проблем, які не так-ні-ні


36

Я читав у багатьох місцях, що деякі проблеми важко визначити (їх важко наблизити ). Але наближення не є проблемою рішення: відповідь - це дійсне число, а не Так чи Ні. Також на кожен бажаний коефіцієнт наближення є багато відповідей, які є правильними, і багато неправильних, і це змінюється з бажаним коефіцієнтом наближення!

Тож як можна сказати, що ця проблема є важкою для NP?

(натхненний другою кулею в « Як важко підрахувати кількість простих шляхів між двома вузлами у спрямованому графіку? )

Відповіді:


27

Як ви вже сказали, рішення прийняти не потрібно, тому потрібні нові класи складності та нові типи скорочень, щоб визначити відповідне визначення твердості NP для оптимізаційних проблем .

Одним із способів цього є створення двох нових класів NPO та PO, які містять проблеми оптимізації, і вони, звичайно, імітують класи NP та P для вирішення проблем. Також потрібні нові скорочення. Тоді ми можемо відтворити версію NP-твердості для проблем оптимізації, яка була успішною для вирішення проблем. Але спочатку ми повинні погодитись, що таке проблема оптимізації .

Визначення: Нехай є проблемою оптимізації . - це набір входів або екземплярів, придатних, закодованих у вигляді рядків. - функція, яка відображає кожен екземпляр на набір рядків, можливі рішення екземпляра . Це безліч, оскільки існує багато рішень проблеми оптимізації. Таким чином, ми не маємо об'єктивної функції яка повідомляє нам для кожної пари екземпляра і вирішує її вартість або значення . O=(X,L,f,opt)XLxXx f(x,y) yL(x)opt говорить нам, чи ми максимізуємо, чи мінімізуємо.

Це дозволяє нам визначити, що таке оптимальне рішення : Нехай є оптимальним рішенням екземпляра оптимізаційної задачі зОптимальне рішення часто позначається .x X O = ( X , L , f , o p t )yoptL(x)xXO=(X,L,f,opt)y

f(x,yopt)=opt{f(x,y)yL(x)}.
y

Тепер ми можемо визначити клас NPO : Нехай є сукупністю всіх задач на оптимізацію допомогою:O = ( X , L , f , o p t )NPOO=(X,L,f,opt)

  1. XP
  2. Існує многочлен з для всіх екземплярів і всіх можливих рішень . Крім того, існує детермінований алгоритм, який визначає в поліноміальний час, чи .| у | p ( | x | ) x X y L ( x ) y L ( x )p|y|p(|x|)xXyL(x)yL(x)
  3. f може бути оцінена в многочлен.

Інтуїція за нею полягає:

  1. Ми можемо ефективно перевірити, чи дійсно є дійсним екземпляром нашої проблеми оптимізації.x
  2. Розмір можливих рішень поліноміально обмежений розміром вхідних даних, і ми можемо ефективно перевірити, чи є можливим рішенням екземпляра .xyL(x)x
  3. Значення рішення можна визначити ефективно.yL(x)

Це відображає, як визначається , тепер для PO : Нехай - це сукупність усіх проблем з які можуть бути вирішені детермінованим алгоритмом за багаточлен.P O N P ONPPONPO

Тепер ми можемо визначити, що ми хочемо назвати алгоритмом наближення : Алгоритм наближення оптимізаційної задачі - це алгоритм, який обчислює доцільне рішення для екземпляра .y L ( x ) x XO=(X,L,f,opt)yL(x)xX

Примітка: щоб ми не просили оптимального рішення, ми лише те, що є здійсненним .

Тепер у нас є два типи помилок: Абсолютна похибка можливого рішення екземпляра задачі оптимізації дорівнює.x XyL(x)xX| f ( x , y ) - f ( x , y ) |O=(X,L,f,opt)|f(x,y)f(x,y)|

Ми називаємо абсолютну помилку алгоритму наближення для задачі оптимізації обмеженої якщо алгоритм обчислює для кожного екземпляра можливе рішення з абсолютною помилкою, обмеженою .O k A x X kAOkAxXk

Приклад: Відповідно до теореми візування хроматичного індексу графа (кількість кольорів у фарбуванні краю з найменшою кількістю використовуваних кольорів) є або або , де - максимальний ступінь вузла. З доведення теореми може бути розроблений алгоритм наближення, який обчислює забарвлення краю зΔ + 1 Δ Δ + 1ΔΔ+1ΔΔ+1 кольорами. Відповідно, у нас є алгоритм наближення для MinimumEdgeColoring-Проблема, де абсолютна помилка обмежена .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)>0xXyL(x)

ϵA(x):={0f(x,A(x))=f(x,y)|f(x,A(x))f(x,y)|max{f(x,A(x)),f(x,y)}f(x,A(x))f(x,y)

де є допустимим рішенням обчислюється з допомогою апроксимації-алгоритму .AA(x)=yL(x)A

Тепер ми можемо визначити алгоритм наближення для задачі оптимізації як алгоритм -приближення для якщо відносна помилка обмежена для кожного примірника , таким чином O = ( X , L , f , o p t )AO=(X,L,f,opt)δϵ A ( x ) δ 0 x X ϵ A ( x ) δOϵA(x)δ0xX

ϵA(x)δxX.

Вибір у знаменнику визначення відносної помилки було вибрано, щоб зробити визначення симетричним для максимізації та мінімізації. Значення відносної помилки . У випадку проблеми з максимальним значенням рішення ніколи не менше і ніколи не перевищує для задачі мінімізації.ϵ 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М яMinimalVertexCover 1 / 2MinimalVertexCover1/2

На жаль, відносна похибка не завжди є найкращим поняттям якості для наближення, як показує наступний приклад:

Приклад: Простий жадібний алгоритм може наближати . Аналіз показує, що і, таким чином, буде приблизний.| C |MinimumSetCoverM i n i m u m - S e t C o v e r ln ( n )

|C||C|Hn1+ln(n)
MinimumSetCoverln(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)>0xXyL(x)AO rA(x)A(x)=yL(x)xX

rA(x)={1f(x,A(x))=f(x,y)max{f(x,A(x))f(x,y),f(x,y)f(x,A(x))}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)r1xX

rA(x)r
rAOOr rA(n)1 M i n i m u m -
rA(n)=sup{rA(x)|x|n}.
Відповідно, коефіцієнт наближення більший за для субоптимальних рішень. Таким чином, кращі рішення мають менші співвідношення. Для ми можемо зараз записати, що це -доцільно. І у випадку ми знаємо з попереднього прикладу, що це -доступно. Між відносною похибкою та коефіцієнтом наближення маємо прості співвідношення: 1MinimumSetCoverM e x C o v e r 2 r A ( x ) = 1(1+ln(n))MinimumVertexCover2
rA(x)=11ϵA(x)ϵA(x)=11rA(x).

При малих відхиленнях від оптимального та відносна похибка є вигідною порівняно з коефіцієнтом апроксимації, що показує її сили для великих відхилень та .ϵ<1/2epsi ; 1 / 2 г 2r<2ϵ1/2r2

Дві версії -придатні не перетинаються, оскільки одна версія завжди має а інша . Випадок не є проблематичним, оскільки це досягається лише алгоритмами, які дають точне рішення, і, отже, не потрібно розглядати їх як алгоритми наближення.αα 1 α = 1α1α1α=1

Інший клас часто з’являється APX . Він визначається як сукупність усіх проблем оптимізації від які мають алгоритм -апроксимації з який працює в поліноміальний час.Or r 1NPOrr1

Ми майже через. Ми хотіли б скопіювати успішні ідеї скорочення та повноти з теорії складності. Зауваження полягає в тому, що багато варіантів оптимізаційних завдань, що важко приймають рішення, є нескладними між собою, тоді як варіанти їх оптимізації мають різні властивості щодо їх наближення. Це пояснюється поліноміальним скороченням Карпа, яке використовується при зменшенні 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 cO1APO2ghc

  1. x 1X 1 r > 1g(x1,r)X2 для всіх та раціональнихx1X1r>1
  2. L 1 ( x 1 ) x 1X 1 r > 1L2(g(x,r1)) якщо для всіх та раціональнеL1(x1)x1X1r>1
  3. x 1X 1 r > 1h(x1,y2,r)L1(x1) для всіх та раціональних і для всіхx1X1r>1y2L2(g(x1,r))
  4. Для фіксованих обидві функції і можуть бути обчислені двома алгоритмами за багаточленним часом у довжину їх входів.g hrgh
  5. У нас є для всіх і раціональний і для всіхx 1X 1 r > 1 y 2L 2 ( g ( x)
    f2(g(x1,r),y2)rf1(x1,h(x1,y2,r))1+c(r1)
    x1X1r>1y2L2(g(x1,r))

У цьому визначенні і залежать від якості розчину . При цьому для різних якостей функції можуть відрізнятися. Ця спільність не завжди потрібна, і ми просто працюємо з і .годghg ( x 1 ) h ( x 1 , y 2 )rg(x1)h(x1,y2)

Тепер, коли ми маємо уявлення про зменшення проблем оптимізації, ми можемо, нарешті, перенести багато відомостей із теорії складності. Наприклад, якщо ми знаємо, що і ми показуємо, що випливає, що .O 1 A P O 2 O 1A P XO2APXO1APO2O1APX

Нарешті, ми можемо визначити, що ми маємо на увазі під -hard та -комплект для оптимізації проблем:CCC

Нехай - проблема оптимізації з і клас оптимізаційних задач від тоді називається -твердою щодо якщо для всіх справедливо.N P O C N P O O CONPOCNPOOC O APO A P OOC OAPO

Таким чином, ми ще раз уявляємо про найскладнішу проблему в класі. Не дивно, що -старіша проблема називається -повною щодо якщо це елемент .CA P CCAPC

Таким чином, тепер ми можемо говорити про -комплектність та -комплектність тощо. І, звичайно, нам зараз пропонується проявити першу -повну проблему, яка бере на себе роль . Це майже природно, що може бути показано як -повне. За допомогою 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 А Р ХNPOAPXNPOSATWeightedSatisfiabilityNPOMaximum3SATAPX


11
О, і, будь ласка, прийміть мої вибачення за цю порівняно довгу публікацію, але я не встиг написати коротшу.
uli

1
Лінія перфорації звичайно полягає в тому, що за теоремою PCP ви можете зв'язати MAX3SAT і SAT, тим самим показуючи, що NP-важко наблизити MAX 3SAT до кращої, ніж якась константа. Це в певному сенсі еквівалент теореми Кука-Левіна.
Суреш

1
@ Суреш Звичайно, але цей результат, який ви згадуєте, потребує зменшення розриву, наскільки я пам’ятаю. І як ви вже писали про них у своєму дописі, я не хотів їх дублювати тут.
uli

Чудова відповідь, +1! Цікаво, чи базується ваша відповідь на деяких посиланнях?
Тім

@Tim Звичайно, є книги, я перерахував декілька у коментарях іншої відповіді
uli

19

Зазвичай, що показано, це твердість NP-версії проблеми "прогалини". Наприклад, припустимо, що ви хочете показати, що важко наблизити SET COVER до коефіцієнта 2.

Ви визначаєте наступний екземпляр "обіцянки" SET COVER, який будемо викликати 2-GAP-SET-COVER:

  • 2

Припустимо, ми покажемо, що проблема вирішення, у який із двох випадків проблема потрапляє, не є повною. Тоді ми показали, що наближення SET COVER до коефіцієнта 2 є NP-важким, тому що ми могли використовувати такий алгоритм для розрізнення цих двох випадків.


4

Дві існуючі відповіді дуже інформативні, але я не думаю, що жодна з них насправді відповідає на питання, яке є: "Як проблема, яка навіть не є проблемою рішення, може бути важкою для NP, коли NP - це клас проблем прийняття рішень. ? "

LLL

Деякі приклади.

  1. LLLL
  2. #SAT - проблема обчислення кількості задовольняючих завдань формулам CNF. Очевидно, що це не в NP, оскільки, як ви зауважуєте, NP - це клас проблем вирішення, і #SAT не є однією з таких. Однак, #SAT є важким для NP під скороченням поліномального часу Тьюрінга, оскільки ми можемо зменшити SAT до нього. Враховуючи примірник SAT, ми запитуємо, скільки є задовольняючих завдань: якщо є хоча б один, ми говоримо "задовольняється"; в іншому випадку "незадовільно".
  3. φφφφ=φ(Z1Z10)Ziφφφφφ
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.