Функціональна проблема

функціональною проблемою у теорії складності обчислень є обчислювальна складність, де для кожного введеного значення очікується окреме вихідне значення (обчислюваної функції), але воно більш складне, ніж у проблемі вибору. Для функціональних проблем вихідне значення зазвичай не просто «так» або «ні».

Формальне визначенняРедагувати

Функціональна проблема   визначається як відношення   над рядком довільної абетки  :   Алгоритм вирішується   якщо для кожного вводу   такий, що існує a   satisfying  , алгоритм видає один такий  .

ПрикладиРедагувати

Відома функціональна проблема — це функціональна здійсненність бульових формул, скорочено FSAT (англ. Functional Boolean Satisfiability Problem). Проблема, яка тісно пов'язана з задачею здійсненності бульових формул (SAT), може бути сформульована таким чином: Дана логічна формула   від змінних  , знайти значення   таке як   оцінюється до   або вирішити, що такого значення не існує. У цьому випадку співвідношення   дається кортежами правильно закодованих логічних формул і задовольняє призначенням. Інші помітні приклади включають проблему з задачі комівояжера, в якій пропонується маршрут продавця та проблема факторізації цілого числа яка вимагає списку множників.

Зв'язок з іншими класами складностіРедагувати

Розглянемо довільну проблему вибору у класі NP. За визначенням кожна проблема екземпляра   які мають відповідь «так», мають засвідчувати   який служить доказом відповіді «так». Таким чином, набір цих кортежів   утворює відношення. Клас складності, отриманий з цього перетворення, позначається через   або FNP[en] якщо скорочено. Відображення класу складності P означає FP[en]. Клас FP[en] — це сукупність функціональних завдань, які можна вирішити за допомогою машини Тюрінга у поліноміальному часі, в той час як FNP[en] — це сукупність функціональних завдань, які можна вирішити за допомогою недетермінованої машини Тюрінга у поліноміальному часі.

СамозалежністьРедагувати

Зверніть увагу, що вищезазначену проблему FSAT можна вирішити, використовуючи лише поліноміально багато викликів до підпрограми, яка вирішує проблему SAT: алгоритм спочатку може запитати, чи є формула   робочою. Після цього алгоритм може встановити змінну   на TRUE і попросити ще раз. Якщо результуюча формула все ще виконується, алгоритм зберігає значення   до значення TRUE і продовжує фіксувати  , в іншому випадку він вирішить, що   має бути FALSE і продовжить. Таким чином, FSAT вирішується в поліноміальному часі, використовуючи пророчу машину вирішувати SAT. Загалом, проблема в NP називається самозбуджуваною, якщо її функціональний варіант може бути вирішено в поліноміальний час, використовуючи оракул, що вирішує оригінальну проблему. Кожна NP-повнота проблема є самознижуваною. Вважається, що завдання цільної факторизації не самознижується.

Зниження і повні проблемиРедагувати

Функціональні проблеми можуть бути скорочені[en] дуже схоже на вирішення проблем: задані функціональні проблеми   та   також   зменшується до   якщо існують поліноміальні часи обчислювання функції   and   така, що для всіх випадків   of   та реальне рішення   з  , воно вважається

  • If   має  -рішення, після   має  -рішення.
  •  

Тому можна визначити FNP-повнота проблеми, аналогічні NP-повної задачі: Проблема   є FNP-повнота, якщо кожну проблему в FNP можна звести до  . Клас складності проблем FNP-повний позначається як FNP-C або FNPC . Це збігається з  . Отже, проблема FSAT також є проблемою FNP-повноти, і вона вважає, що   тоді і тільки тоді, коли  .

Загальні функціональні проблемиРедагувати

Відношення  , яке використовується для визначення функціональних завдань, має недолік неповного: не кожен вхід   має такий аналог   що  . Тому питання обчислюваності доказів не відділяється від питання про їх існування. Для подолання цієї проблеми зручно розглянути обмеження функціональних завдань на загальні відносини, що дають клас TFNP як підклас FNP. Цей клас містить такі проблеми, як розрахунок чистої рівноваги Неша у певних стратегічних іграх, де гарантовано існує рішення. Показано, що  . Крім того, якщо TFNP містить будь-яку проблему FNP-повноти, то  .

Див. такожРедагувати

ЛітератураРедагувати

  • Raymond Greenlaw, H. James Hoover, «Основи теорії обчислень: принципи та практика», Morgan Kaufmann, 1998, p. 45-51, ISBN 1-55860-474-X
  • Elaine Rich, Автомати, обчислюваність і складність: теорія та додатки, Prentice Hall, 2008, розділ 28.10 «Проблемні класи FP і FNP», с. 689—694, ISBN 0-13-228806-0