Класи складності, що стосуються переліку всіх рішень?


15

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

Чи існує клас складності для опису задач, що мають форму "заданий предикат, що обчислюється багаточленним часом і рядок x , перерахуйте всі y, для яких P ( x , y ) є правдивим [вставте деякі відповідні обмеження складності]? " Я розумію, що може бути складно встановити обмеження, враховуючи, що кількість рішень може бути експоненціально більшою за розмір вхідного x , хоча це не здається непереборним.P(x,y)xyP(x,y)x


Цікаво. Можливо, на практиці занадто багато випадків відповідних проблем часто мають експоненціальну кількість рішень, якщо такі є. Примірники для SAT і CLIQUE, як правило, мають великий простір рішення.
чі

3
Ось ще один ансат для формалізації цього. Проблема в X Е (для Х-перелічуваних) , якщо є Х-алгоритм з таким чином, що ( х , я ) повертає I - е рішення (тобто I - е у с Р ( х , у ) ) WRT якесь замовлення. Зверніть увагу, наскільки це схоже на те, як іноді визначають RE. Це обходить розмір простору рішення і фокусується на тому, наскільки важко знайти наступне рішення. Загальна вартість, звичайно, доступна шляхом підсумовування. PXEAA(x,i)iIyP(x,y)
Рафаель

3
(Я ніколи не бачив , як це визначено в класі , але ви знаєте про концепцію перерахування з поліноміальної затримкою ?)

@Raphael Це може бути не те, що ми шукаємо. Наприклад, якщо найкращий алгоритм для повинен повторювати всі рішення, поки він не знайде i з них і не запуститься в часі Θ ( f ( | x | ) ) , то складність, яку ми шукаємо, Θ ( f ( | x | ) ) , але підсумовування передбачає складність Θ ( f ( | x | ) 2 ) . A(x,i)iΘ(f(|x|))Θ(f(|x|))Θ(f(|x|)2)
Lieuwe Vinkhuijzen

@RickyDemer Це те, що я витрусив з моїх прищепок, чи не так? Приємно знати, що існує усталена формалізація.
Рафаель

Відповіді:


10

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

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

Затримка є вартістю ресурсів , пов'язаної з обчисленням необхідного між довільними перерахованими рішеннями. Іншими словами, затримка - це міра простору та часу, необхідних для отримання розчину після i t h . Проблеми, рішення яких потребують часу O ( 1 ) для кожного перерахування, мають постійну затримку. Кажуть, що вимога часу O ( p o l y ( n ) ) має поліноміальну затримку.i+1thithO(1)O(poly(n))

Для проблеми з перерахуванням, яку ви конкретно згадували у своєму запитанні, слід ознайомитись з класом та пов’язаними з цим побратимами у розділі 2.1 розділу «Перерахування: Алгоритми та складність» Йоганнеса Шмідта (Посилання внизу).ENUMNP


Чому ми дбаємо про час попереднього обчислення та затримку?

Затримка дуже важлива для розуміння справжніх тонкощів проблем перерахування. Перерахування елементів (до розміру n ) і { x : ϕ ( x ) }, де ϕ ( x ) - булева формула (тобто SAT), обидва займають експоненціальний час. Однак перерахування через Σ Σn{x:ϕ(x)}ϕ(x)Σвимагає лише постійної затримки, оскільки ви можете просто пройти елементи в певному порядку. Як нам відомо, затримка перерахування рішень для екземпляра 3SAT може бути експоненціальною. Наша робота як теоретиків складності полягає в тому, щоб зрозуміти, чому остання проблема є принципово складнішою (більш складною), ніж перша. Затримка робить досить гарну роботу, демонструючи цю різницю.

Так само нам також потрібно знати, скільки зроблено попередніх обчислень. Ми можемо зменшити затримку будь-якої проблеми перерахування до постійного часу та простору, попередньо обчисливши всі рішення та зберігаючи їх у списку, який слід перерахувати пізніше. Завдання полягає в тому, щоб знайти найкращий баланс між двома ресурсами.

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

PNP


Ресурси

Це опитування (справді спроба формалізації) має допомогти вам розпочати роботу. Це також доводить деякі основні теореми ієрархії.

Перерахування: Алгоритми та складність (Йоханнес Шмідт, 2009)

https://www.thi.uni-hannover.de/fileadmin/forschung/arbeiten/schmidt-da.pdf

Для перерахунку результатів складності перерахування ознайомтеся з цією збіркою, куратором якої був Кунігіро Васа. Оскільки він класифікований за типом проблеми, ви можете легко знайти ряд робіт, присвячених перерахуванню циклів графіків. Слід змінити алгоритми, що займаються, щоб розглядати лише цикли із заданим вузлом.

http://www-ikn.ist.hokudai.ac.jp/~wasa/enumeration_complexity.html


ΣnO(1)O(1)

1
@j_random_hacker Я не думаю, що ваше мислення неправильне, хоча реальна відповідь на ваше запитання - це "залежить". Автори цих робіт зазвичай вказують, яку модель обчислень (звичайна стрічка TM проти RAM проти Word RAM) вони використовують. Цей вибір змінить те, що можна вважати постійною роботою в часі, а що не може (наприклад, збільшення числа або отримання результату). Припускається, що ця різниця зникне, як тільки ваша затримка стане багаточленною через розширену тезу Церкви Тьюрінга.
mdxn
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.