Параметрическая редукция — это техника для разработки эффективных алгоритмов, которые достигают своей эффективности путём препроцессорного шага, в котором вход алгоритма заменяется на меньший вход, называемый «ядром». Результат решения задачи на ядре должен быть либо тем же самым, что и при исходных данных, либо выход решения для ядра должен легко преобразовываться в желаемый выход исходной задачи.
Параметрическая редукция часто достигается путём применения набора правил редукции, которые отсекают часть конкретной задачи, с которой легко справиться. В теории параметризованной сложности[en] часто можно доказать, что ядро с гарантированными границами, зависящими от размера ядра (как функции некоторых параметров, связанных с задачей), могут быть найдены за полиномиальное время. Если это возможно, результатом будет фиксированно-параметрически разрешимый[en] алгоритм, время работы которого является суммой шага (полиномиального времени) параметрической редукции и (неполиномиального, но ограниченного параметром) времени для решения ядра. Более того, любая задача, которую можно решить фиксированно-параметрически разрешимым алгоритмом, может быть решена алгоритмом параметрической редукции этого типа.
Стандартный пример алгоритма параметрической редукции — параметрическая редукция задачи о вершинном покрытии С. Басса[1]. В этой задаче входом является неориентированный граф вместе с числом . Выходом является множество максимум вершин, которое включает конечную вершину каждого графа, если такое множество существует, либо исключение неудачи, если такого множества не существует. Эта задача является NP-трудной. Однако следующие правила могут быть использованы для её параметрической редукции:
Алгоритм, который применяет эти правила повторно, пока не могут быть сделаны дальнейшие редукции, обязательно обрывается с ядром, которое имеет не более рёбер и (поскольку каждое ребро имеет максимум две конечные вершины и нет изолированных вершин) не более вершин. Эта параметрическая редукция может быть осуществлена за линейное время. Когда ядро построено, задача о вершинном покрытии может быть решена алгоритмом полного перебора, который проверяет, что каждое подмножество ядра является покрытием ядра. Таким образом, задача о вершинном покрытии может быть решена за время для графа с вершинами и рёбрами, что позволяет решить их эффективно, когда мало, даже если и велики.
Хотя эта граница является фиксированно-параметрически разрешимой, её зависимость от параметра выше, чем можно пожелать. Более сложные процедуры параметрической редукции могут улучшить эту границу путём нахождения более маленьких ядер за счёт большего времени работы на шаге параметрической редукции. Известны алгоритмы для задачи о вершинном покрытии параметрической редукции, которые дают ядра максимум с вершинами. Алгоритм, на котором достигается эта улучшенная граница, использует полуцелочисленность релаксации задачи о вершинном покрытии задачей линейного программирования согласно Джорджу Немхаузеру[en] и Троттеру[2]. Другой алгоритм параметрической редукции, достигающий эту границу, основывается на приёме, который называется правилом коронной редукции и использует доводы альтернирования пути[3]. В настоящее время лучший известный алгоритм параметрической редукции в терминах числа вершин принадлежит Лампису[4] и достигает вершин для любой константы .
Невозможно для этой задачи найти ядро размера , если только не P=NP, в этом случае ядро привело бы к полиномиальному алгоритму для NP-трудной задачи о вершинном покрытии. Однако более строгие границы для размера ядра могут быть доказаны в этом случае — если только не coNP NP/poly (что теоретики сложности вычислений считают маловероятным), для любого невозможно за полиномиальное время найти ядра с рёбрами[5].
В литературе нет ясного общего мнения, как следовало бы определить параметрическую редукцию формально и имеется тонкая разница в использовании таких выражений.
В обозначениях Дауни — Феллоуза[6] параметризованная задача — это подмножество , описывающее задачу разрешимости.
Параметрическая редукция параметризованной задачи — это алгоритм, который берёт представителя и отображает его за время, полиномиально зависящее от и , в представителя , так что
Выход параметрической редукции называется ядром. В этом общем контексте размер строки часто называется её длиной. Некоторые авторы предпочитают число вершин или число рёбер в качестве размера в контексте задач на графах.
В обозначениях Флама — Гроэ[7] параметризованная задача состоит из задачи приятия решения и функции , собственно параметризации. Параметр представителя задачи — число .
Параметрическая редукция для параметризованной задачи является алгоритмом, который берёт представителя с параметром и отображает его за полиномиальное время в представителя так, что
Заметим, что в этих обозначениях граница размера подразумевает, что параметр также ограничен функцией от .
Функцию часто называют размером ядра. Если говорят, что допускает полиномиальное ядро. Подобным образом для задача допускает линейное ядро.
Задача является фиксированно-параметрически разрешимой тогда и только тогда, когда её можно параметрически редуцировать и она разрешима.
То, что параметрически редуцируемая и разрешимая задача является фиксированно-параметрически разрешимой, можно видеть из определения выше: алгоритм параметрической редукции, который работает за время для некоторого c, привлекается для получения ядра размера . Затем ядро решается алгоритмом, который проверяет, что задача разрешима. Полное время работы этой процедуры равно , где — время работы алгоритма, используемого для решения ядер. Поскольку вычислимо, например, при предположении, что вычислимо, а можно вычислить путём перебора всех возможных входов длины , отсюда вытекает, что задача фиксированно-параметрически разрешима.
Доказательство в другом направлении, что фиксированно-параметрически разрешимая задача является параметрически редуцируемой и разрешимой, чуть более трудно. Предположим, что вопрос нетривиален, что означает, что имеется по меньшей мере один представитель задачи с именем , принадлежащий языку, и по меньшей мере один представитель задачи, не принадлежащий языку, с именем . В противном случае замена любого представителя пустой строкой является допустимой параметрической редукцией. Предположим также, что задача является фиксированно-параметрически разрешимой, то есть она имеет алгоритм, работающий максимум за шагов на представителях задачи для некоторой константы и некоторой функции . Для осуществления параметрической редукции входа применяем алгоритм на заданном входе за максимум шагов. Если алгоритм завершается ответом, используем ответ для выбора либо , либо в качестве ядра. Если, вместо этого, достигаем границы число шагов без прерывания, возвращаем саму задачу в качестве ядра. Поскольку возвращается в качестве ядра для входа с , отсюда следует, что размер полученного таким образом ядра не превосходит . Граница размера вычислима в предположениях фиксированно-параметрической разрешимости, что вычислима.
Для улучшения этой статьи желательно: |
Данная страница на сайте WikiSort.ru содержит текст со страницы сайта "Википедия".
Если Вы хотите её отредактировать, то можете сделать это на странице редактирования в Википедии.
Если сделанные Вами правки не будут кем-нибудь удалены, то через несколько дней они появятся на сайте WikiSort.ru .