Что такое отслеживаемость фиксированных параметров? Почему это полезно?

некоторые проблемы, которые NP-hard также фиксированный параметр tractable, или FPT. Википедия описывает проблему как проблему с фиксированным параметром, если есть алгоритм, который решает ее во времени f (k) · |x|O (1).

Что это значит? Почему эта концепция полезна?

1 ответов


для начала, в предположении, что P ≠ NP, нет полиномиально-временных, точных алгоритмов для любой NP-трудной задачи. Хотя мы не знаем, P = NP или P ≠ NP, у нас нет алгоритмов полиномиального времени для любых NP-жестких задач.

идея отслеживаемости фиксированных параметров заключается в том, чтобы взять NP-трудную задачу, для которой мы не знаем никаких алгоритмов полиномиального времени, и попытаться разделить сложность на две части - некоторую часть, которая зависит исключительно от размер входного сигнала, и некоторая часть которая зависит от некоторого "параметра" к проблеме.

в качестве примера, рассмотрим!--5-->0/1 задача о ранце. В этой задаче вам дается список из n объектов, которые имеют связанные веса и значения, а также некоторый максимальный вес W, который вам разрешено носить. Вопрос в том, чтобы определить максимальную сумму стоимости, которую вы можете нести. Эта проблема NP-трудна, что означает, что нет алгоритма полиномиального времени, который ее решает. Ля метод грубой силы займет время о(2n), рассматривая все возможные подмножества элементов, что чрезвычайно медленно для больших n. Однако можно решить эту проблему за время O (nW), где n-количество элементов, а W-количество веса, которое вы можете нести. Если вы посмотрите на среду выполнения O (nW), вы заметите, что она разделена на две части: компонент, линейный по количеству элементов (часть n) и компонент, линейный по весу (часть W). Если W является любой фиксированной константой, то время выполнения этого алгоритма будет O (n), что является линейным временем, хотя проблема в целом NP-жесткая. Это означает, что если мы рассматриваем W как некоторый настраиваемый "параметр" задачи, для любого фиксированного значения этого параметра задача заканчивается полиномиальным временем (которое является "управляемым" в смысле теории сложности.)

в качестве другого примера рассмотрим проблему нахождения длинных простых путей в графе. Данная проблема является NP-трудной, и наивный алгоритм поиска простых путей длины k в графе занимает время O (n! / (н - к)!), который для большого k оказывается сверхэкспонентным. Однако, используя технику цветовая кодировка, можно решить эту проблему во времени O ((2e)kn3 log n), где k-длина пути для поиска, а n-количество узлов на входном графике. Обратите внимание, что эта среда выполнения также имеет два "компонента": один компонент, который является полиномом в числе узлов входного графа (n3 log N part) и один компонент, экспоненциальный в k ((2e)k часть). Это означает, что для любого фиксированного значения k существует алгоритм полиномиального времени для поиска путей длины k в графе; время выполнения будет O (n3 log n).

в обоих этих случаях мы можем взять проблему, для которой у нас есть решение экспоненциального времени (или хуже), и найти новое решение, время выполнения которого является некоторым полиномом в n раз какая-то сумасшедшая функция какого-то дополнительного параметра."В случае проблемы рюкзака этот параметр - максимальное количество веса, которое мы можем нести; в случае нахождения длинных путей параметр - длина пути, который нужно найти. Вообще говоря, задача называется fixed-parameter tractable, если существует некоторый алгоритм решения задачи, определенный в терминах двух величин: n, размер входного сигнала и k, некоторый "параметр", где время выполнения

O(p(n) * f (k))

где p(n) - некоторая полиномиальная функция, а f (k) - произвольная функция в k. Интуитивно это означает, что сложность задачи масштабируется полиномиально с n (это означает, что по мере увеличения размера проблемы среда выполнения будет масштабироваться красиво), но может масштабироваться произвольно плохо с параметром k. Это отделяет " присущую жесткость "проблемы таким образом, что" жесткая часть "проблемы обвиняется в параметре k, в то время как" легкая часть " проблемы задача заряжается от размера входного сигнала.

Как только у вас есть время выполнения, которое выглядит как O(p(n) · f(k)), мы сразу получаем алгоритмы полиномиального времени для решения проблемы для любого фиксированного k. В частности, если K фиксирован, то f(k) - некоторая константа, поэтому O(p(n) · f(k)) - это просто O(p(n)). Это алгоритм полиномиального времени. Поэтому, если мы" исправим "параметр, мы получим некоторый "сглаживаемый" алгоритм решения проблемы. Таково происхождение термина фиксированный параметр сговорчивый.

(Примечание: определение Википедии о отслеживаемости фиксированных параметров говорит о том, что алгоритм должен иметь время выполнения f(k) · |x|O (1). Здесь |x / относится к размеру ввода, который я назвал N здесь. Это означает, что определение Википедии совпадает с утверждением, что время выполнения-f (k) · nO (1). Как уже упоминалось в этом более раннем ответе, nO (1) означает "некоторый многочлен в n", и поэтому это определение заканчивается будучи эквивалентным тому, который я дал здесь).

fixed-parameter tractability имеет огромные практические последствия для проблемы. Это часто встречается с проблемами, которые являются NP-hard. Если вы обнаружите проблему с фиксированным параметром и параметр низкий, может быть значительно эффективнее использовать алгоритм с фиксированным параметром, чем использовать обычный алгоритм грубой силы. Например, приведенный выше пример цветового кодирования для поиска длинных путей на графике используется для большой успех в вычислительной биологии чтобы найти пути секвенирования в дрожжевых клетках, и раствор рюкзака 0/1 часто используется, потому что общие значения W достаточно низки, чтобы он был практичным.

надеюсь, что это помогает!