Які саме класи FP, FNP і TFNP?


13

У своїй книзі « Комп’ютерна складність» Пападімітріу визначає FNP так:

Припустимо, що - мова в NP . Згідно з пропозицією 9.1, існує поліноміальний можна розв'язати, полиномиально збалансовано співвідношення таке , що для всіх рядків : Існує рядок с тоді і тільки тоді , коли . Проблема функції, пов'язана з , позначається , полягає в наступній обчислювальній задачі:R L x y R L ( x , y ) x L L F LLRLxyRL(x,y)xLLFL

Дано , знайдіть рядок такий, що якщо такий рядок існує; якщо такого рядка не існує, поверніть "ні".y R L ( x , y )xyRL(x,y)

Клас усіх функціональних проблем, пов'язаних, як описано вище, з мовою в NP , називається FNP . FP - це підклас, що виникає, якщо ми розглянемо лише функції функцій у FNP, які можна вирішити за багаточлен.

(...)

(...), ми називаємо задачу у загальній величині FNP, якщо для кожного рядка є принаймні один такий, що . Підклас FNP, що містить усі задачі на загальну функцію, позначається TFNP .x y R ( x , y )R xyR(x,y)

У діаграмі venn в огляді глави Papadimitriou має на увазі, що FP TFNP FNP .

Мені важко зрозуміти, чому саме це означає, що FP TFNP, оскільки проблеми в FP не повинні бути загальними самі по собі.

Для кращого розуміння я без перешкод шукаю літературу, щоб знайти водонепроникне визначення FP , FNP та сортів.

На мою дуже (скромну) думку, я думаю, що мало (правильного!) Дидактичного матеріалу з цих тем.

Для проблем із рішенням класи - це набори мов (тобто набори рядків).

Які саме класи є проблемами функцій? Чи вони сукупності стосунків, мов, ...? Що таке тверде визначення?


4
Поширене позначення дещо неохайне. По- перше, FP був і використовується для позначення класу полі-тимчасових функцій (звідси всього) поза контекстом завдань пошуку NP, де вона була перевизначена. По-друге, кожна проблема пошуку, розв'язувана в поліноміальний час, має повне розширення, розв’язувана в поліноміальний час, тому в цьому сенсі не існує великої реальної різниці між загальним і неповним визначенням ПЗ, тому обидві плутаються зловживанням мовою.
Emil Jeřábek

Відповіді:


11

Коментар Еміля Джерабека - це приємне резюме, але я хотів зазначити, що є й інші класи з більш чіткими визначеннями, які фіксують більш-менш те саме поняття, та уточнити зв’язок між усіма цими речами.

[Попередження: хоча я вважаю, що я правильно визначив, деякі речі нижче відображають мої особисті переваги - я намагався зрозуміти, де це було.]

У детермінованому світі функціональний клас - це лише сукупність функцій (у звичайному, математичному сенсі слова "функція", тобто карта ). Інколи ми хочемо дозволити "часткові функції", вихід яких "визначений" для певних входів. (Рівнозначно, функції, визначені на підмножині а не на всіх.)Σ ΣΣΣ

На жаль, є два різних визначення для плавають навколо, і наскільки я можу сказати, вони не є рівнозначними (хоча вони "морально" еквівалентні).FP

  • F P F N P , T F N PFP (визначення 1) - це клас функцій, який можна обчислити в многочлени. Щоразу, коли ви бачите і його не в контексті, коли люди говорять про , це визначення я припускаю.FPFNP,TFNP

У недетермінованому світі речі стають трохи смішними. Там зручно допускати "часткові, багатозначні функції". Було б природним також називати таку річ бінарним відношенням , тобто підмножиною . Але з точки зору складності, часто філософсько та психічно корисно мислити ці речі як "недетерміновані функції". Я думаю, що багато з цих визначень пояснюються наступними класами (визначення яких повністю стандартизовані, якщо не дуже відомі):Σ×Σ

  • x x x { ( x , y ) : y  виводиться деякою гілкою обчислення на вході  x }NPMV : Клас "часткових, багатозначних функцій", обчислений недетермінованою машиною за багаточлен. Що це означає, що існує багаточасова недетермінована машина, і на вході , на кожній недетермінованій гілці вона може прийняти і зробити деякий вихід, або відхилити і не зробити вихід. Тоді "багатозначний" висновок на вході - це набір усіх виходів на всіх недетермінованих гілках, коли дано як вхід. Зауважте, що цей набір може бути порожнім, тому як "багатозначна функція" це може бути лише частковим. Якщо ми подумаємо про це з точки зору бінарних відношень, це відповідає співвідношенню .xxx{(x,y):y is output by some branch of the computation on input x}

  • N P M V xNPMVt : Всього "функцій" в , тобто на кожному вході принаймні одна гілка (і тому робить вихід за визначенням)NPMVx

  • N P M V Σ NPSV : (потенційно часткові) функції в . Тут є деяка гнучкість у тому, що декілька гілок можуть приймати, але якщо будь-яка гілка приймає, то всі приймаючі гілки повинні бути гарантовані, щоб зробити однаковий результат (щоб він справді був однозначним). Однак, можливо, жодна гілка не приймає, тому функція є лише "частковою функцією" (тобто не визначена для всіх ).NPMVΣ

  • N P S V Σ Σ N P S V t = F P N Pc o N PNPSVt : загальні функції в . Це дійсно функції, у звичайному розумінні цього слова, . Це не надто важка вправа побачити, що (використовуючи Def 1 для FP вище).NPSVΣΣNPSVt=FPNPcoNP

Коли ми говоримо про потенційно багатозначні функції, говорити про стримування класів складності вже не є корисним: безумовно просто тому, що не містить будь-які багатозначні "функції", але робить. Натомість ми говоримо про "c-стримування", позначене . Функція (потенційно часткова, багатозначна) уточнює (потенційно часткову багатозначну) функцію якщо: (1) для кожного вводу для якого робить деякий вихід, так це , і (2) виходи завжди є підмножиною виходівN P S V N P M V c f g x g f f g N P M V N P S V N P M V c N P S VNPMVNPSVNPSVNPMVcfgxgffg . Відповідне питання полягає в тому, чи має кожна "функція" уточнення . Якщо так, ми пишемо .NPMVNPSVNPMVcNPSV

  • f : D Σ D Σ P F x D f ( x ) x DPF (трохи менший стандарт) - це клас (потенційно частковий) функцій, обчислюваний у полі-часі. Тобто, функція ( ) знаходиться в , якщо є полі-часу детермінованою машини таким чином , що на входах машина видає , а на входах машина не робить виводу (/ відхиляє / каже "ні" / проте ви хочете сформулювати це).f:DΣDΣPFxDf(x)xD

  • F N P R Σ × Σ R f ( y ) [ R ( x , y ) ] f y f F N P R R P F N PFNP - це клас "функціональних проблем" (а не клас функцій). Я також би назвав "реляційним класом", але насправді будь-які слова, які ви використовуєте для його опису, вам потрібно потім уточнити, тому я не особливо частковий до цього визначення. До будь-якого бінарного відношення є пов'язана "проблема функції". Що таке функціональна проблема? У мене немає чіткого математичного визначення, як я це роблю для мови / функції / відношення; скоріше, це визначається тим, що є правильним рішенням: правильним рішенням проблеми функції, пов'язаної з є будь-яка (потенційно часткова) функція така, що якщоFNPRΣ×ΣRf(y)[R(x,y)]f виводить будь-який такий , інакше не робить виводу. - клас проблем функцій, пов'язаних з відношеннями таким, що (якщо розглядається як мова пар) і p-збалансований. Тож - це не клас функцій, не клас мов, а клас "проблемних функцій", де "проблема" тут визначається приблизно з точки зору того, що означає її вирішити.yfFNPRRPFNP

  • F N P R R x y R ( x , y )TFNP - це клас проблем функцій у - визначений співвідношенням як вище - такий є тотальним, в тому сенсі, що для кожного існує такий, що .FNPRRxyR(x,y)

Для того, щоб не потрібно писати речі типу "Якщо кожен (респ., ) проблема функції має рішення в (відповідно. відповідно до вище визначення), то ... "у цьому контексті використовується визначення 2 , яке:T F N P P F F P F PFNPTFNPPFFPFP

  • F N P y 0 y x y 0 y R y y 0FP (визначення 2) - клас задач функцій в які мають багаточасова розв'язка. Можна припустити , що рішення (= функція) тут тотально, вибираючи спеціальну рядок , яке не є допустимим для будь-яких , і мають вихідний функції , коли не було б в іншому випадку бути не діє . (Якщо потрібно, ми можемо змінити відношення , попередньо додавши кожне до 1, а потім взяти як рядок 0; це не змінить складності будь-якого пов'язаного).FNPy0yxy0yRyy0

Ось, як ці різні визначення відносяться один до одного, (визначення 2, про що ви повинні припустити, оскільки воно знаходиться в контексті, де його порівнюють з ) еквівалентно до . (def 2) еквівалентно (def 1).F N P N P M V c P F T F N PF P N P M V t c F PFNPFPFNPNPMVcPFTFNPFPNPMVtcFP


Дякую за широку відповідь. Я намагаюся перетравити це, і це було дуже корисно до цих пір. Я припускаю, однак, ви мали на увазі FP FNP та FP TFNP в останньому абзаці?
Ауберон

1
@ Auberon: Ні, останній абзац - це переклад між різними домислами. У ньому сказано, що тощо.FNPFPNPMVcPF
Джошуа Грохов

@JoshuaGrochow або можливо чи ієрархія руйнується? Чи також у чи навпаки (це здається правдоподібним, оскільки жодних наслідків не має ніякого значення)? N P P U P P U P P T F N PNPPTFNPNPPUPPUPPTFNP
Т ....

3

На додаток до великої відповіді Джошуа, я хочу додати наступні визначення з Елейн Рух її Автомати, обчислюваність та складність .

Клас ФП : Бінарне відношення в тоді і тільки тоді існує детермінований поліноміальний алгоритм часу , що, з огляду на довільний вхідний , можна знайти таких , що .F P x y ( x , y ) QQFPxy(x,y)Q

Клас ФНП : Бінарне відношення в тоді і тільки тоді існує детермінований поліноміальний час верифікатор, задана довільна вхідні пара , визначає , є чи . Рівнозначно, є в iff, якщо існує недетермінований алгоритм поліноміального часу, який, даючи довільний вхід , може знайти деякий такий, щоF N P ( x , y ) ( x , y ) Q Q F N P x y ( x , y ) QQFNP(x,y)(x,y)QQFNPxy(x,y)Q

З цих визначень видно, що . Вона також коротко розповідає про проблеми поза .F N PFPTFNPFNPFNP

Для мене це був найбільш задовольняючий ресурс, який складається з однієї єдиної сторінки, яку я знайшов з давніх часів.


Після того, як я трохи задумався над цим визначенням, я підозрюю, що два "еквівалентні" визначення зовсім не еквівалентні ...FNP
Ауберон

Я думаю, щоб отримати еквівалентність, потрібно припустити, що відношення є p-обмеженим (тобто є поліном таким, що якщо такий, що , то є такий з ). Також потрібно вказати, що це означає для "недетермінованого алгоритму для знаходження " - тобто що означає недетермінований алгоритм "зробити вихід"? Це частина, чому мені подобається сімейство визначень y ( x , y ) Q y | у | p ( | x | ) уpy(x,y)Qy|y|p(|x|)y
NPMV
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.