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