Кернелизация - Kernelization

В Информатика, а ядро это метод проектирования эффективных алгоритмы которые достигают своей эффективности за счет этапа предварительной обработки, на котором входные данные алгоритма заменяются входными данными меньшего размера, называемыми «ядром». Результат решения проблемы в ядре должен быть таким же, как и в исходном вводе, или должно быть легко преобразовать вывод ядра в желаемый результат исходной задачи.

Кернелизация часто достигается путем применения набора правил сокращения, которые отсекают части экземпляра, которые легко обрабатывать. В параметризованная теория сложности, часто можно доказать, что ядро ​​с гарантированными границами размера ядра (как функции некоторого параметра, связанного с проблемой) можно найти в полиномиальное время. Когда это возможно, это приводит к управляемый с фиксированными параметрами алгоритм, время работы которого является суммой (полиномиальное время) шага кернеризации и (неполиномиального, но ограниченного параметром) времени решения ядра. В самом деле, любая проблема, которая может быть решена с помощью управляемого алгоритма с фиксированными параметрами, может быть решена с помощью алгоритма керизации этого типа.

Пример: вершинное покрытие

Стандартным примером алгоритма керриризации является ядро проблема покрытия вершины пользователя S. Buss.[1]В этой задаче на входе неориентированный граф вместе с номером . На выходе получается набор не более вершины, которые включают в себя конечную точку каждого ребра в графе, если такой набор существует, или исключение отказа, если такого набора не существует. Эта проблема NP-жесткий. Однако для его ядра можно использовать следующие правила сокращения:

  1. Если и является вершиной степени больше, чем , удалять от графика и уменьшить одним. Каждая вершина покрывает размер должен содержать так как в противном случае пришлось бы выбрать слишком много его соседей, чтобы покрыть инцидентные края. Таким образом, оптимальное вершинное покрытие исходного графа может быть сформировано из покрытия редуцированной задачи путем добавления назад к обложке.
  2. Если является изолированной вершиной, удалите ее. Изолированная вершина не может покрывать никакие ребра, поэтому в этом случае не может быть частью какого-либо минимального покрытия.
  3. Если больше чем ребра остаются в графе, и ни одно из двух предыдущих правил не может быть применено, тогда граф не может содержать вершинное покрытие размера . Ведь после удаления всех вершин степени выше , каждая оставшаяся вершина может покрывать не более края и набор вершины могли покрывать не более края. В этом случае экземпляр может быть заменен экземпляром с двумя вершинами, одним ребром и , который также не имеет решения.

Алгоритм, который многократно применяет эти правила до тех пор, пока не перестанут быть сокращены, обязательно завершается ядром, которое имеет не более ребер и (поскольку каждое ребро имеет не более двух конечных точек и нет изолированных вершин) не более вершины. Это ядро ​​может быть реализовано в линейное время. Как только ядро ​​построено, проблема вершинного покрытия может быть решена с помощью поиск грубой силы алгоритм, который проверяет, является ли каждое подмножество ядра покрытием ядра. Таким образом, проблема покрытия вершин может быть решена за время для графика с вершины и края, позволяя эффективно решать, когда маленький, даже если и оба большие.

Хотя эта граница является управляемой с фиксированным параметром, ее зависимость от параметра выше, чем можно было бы ожидать. Более сложные процедуры ядра могут улучшить эту границу, найдя ядра меньшего размера, за счет большего времени выполнения на этапе ядра. В примере с вершинным покрытием известны алгоритмы ядра, которые производят ядра с не более чем один алгоритм, который достигает этой улучшенной оценки, использует полуцелую линейная программа релаксации вершинного покрытия из-за Немхаузер и Троттер.[2] Другой алгоритм ядра, достигающий этой границы, основан на так называемом правиле уменьшения короны и использует альтернативный путь аргументы.[3] Самый известный в настоящее время алгоритм ядра с точки зрения количества вершин обусловлен Лэмпис (2011) и достигает вершины для любой фиксированной константы .

В этой задаче невозможно найти ядро ​​размера , если P = NP, для такого ядра приведет к полиномиальному алгоритму для NP-жесткого покрытия вершин. Однако в этом случае можно доказать гораздо более сильные ограничения на размер ядра: если только coNP NP / поли (считает маловероятным теоретики сложности ), для каждого невозможно за полиномиальное время найти ядра с края.[4]Для вершинного покрытия неизвестно, будут ли ядра с вершины для некоторых будет иметь маловероятные теоретико-сложные последствия.

Определение

В литературе нет четкого консенсуса относительно того, как следует формально определять ядро, и есть тонкие различия в использовании этого выражения.

Обозначение Дауни-Феллоуз

В обозначениях Дауни и товарищи (1999), а параметризованная задача это подмножество описывая проблема решения.

А ядро для параметризованной задачи это алгоритм, который берет экземпляр и отображает его в полиномиальное время от и к экземпляру такой, что

  • в если и только если в ,
  • размер ограничена вычислимой функцией в , и
  • ограничена функцией из .

Выход ядра называется ядром. В этом общем контексте размер строки просто относится к его длине. Некоторые авторы предпочитают использовать количество вершин или количество ребер в качестве меры размера в контексте задач графа.

Обозначение Флума-Гроэ

В обозначениях Flum & Grohe (2006 г.), п. 4), а параметризованная задача состоит из проблемы решения и функция , параметризация. В параметр экземпляра это номер .

А ядро для параметризованной задачи это алгоритм, который берет экземпляр с параметром и отображает его за полиномиальное время в экземпляр такой, что

  • в если и только если в и
  • размер ограничена вычислимой функцией в .

Обратите внимание, что в этих обозначениях ограничение на размер означает, что параметр также ограничена функцией из .

Функция часто называют размером ядра. Если , он сказал, что допускает полиномиальное ядро. Аналогично для , задача допускает линейное ядро.

Кернелизируемость и управляемость с фиксированными параметрами эквивалентны

Проблема решаема с фиксированными параметрами тогда и только тогда, когда она доступна для ядра и разрешимый.

То, что керризуемая и разрешимая проблема является решаемой с фиксированными параметрами, можно увидеть из приведенного выше определения: сначала алгоритм керриризации, который выполняется во времени для некоторого c вызывается для генерации ядра размером Затем ядро ​​решается с помощью алгоритма, который доказывает, что проблема разрешима. Общее время работы этой процедуры составляет , где - время работы алгоритма, используемого для решения ядер. вычислимо, например используя предположение, что вычислим и проверяет все возможные входные данные длины , это означает, что проблема решаема с фиксированными параметрами.

Другое направление, когда проблема с фиксированными параметрами является управляемой и разрешимой, является немного более сложной. Предположим, что вопрос нетривиальный, это означает, что есть по крайней мере один экземпляр на языке, который называется , и по крайней мере один экземпляр, который не на языке, называется ; в противном случае замена любого экземпляра пустой строкой является допустимым ядром. Предположим также, что проблема решаема с фиксированными параметрами, то есть у нее есть алгоритм, который работает не более шаги на экземплярах , для некоторой постоянной и некоторая функция . Чтобы создать ядро ​​для ввода, запустите этот алгоритм на данном входе не более шаги. Если он заканчивается ответом, используйте этот ответ, чтобы выбрать либо или как ядро. Если вместо этого он превышает ограничить количество шагов без завершения, затем вернуть само как ядро. Потому что возвращается как ядро ​​только для входов с , следует, что размер ядра, полученного таким образом, не превышает . Эта граница размера вычислима, исходя из предположения, что управляемость с фиксированными параметрами вычислимо.

Еще примеры

  • Крышка Vertex параметризованный размером вершинного покрытия: крышка вершины проблема имеет ядра с не более чем вершины и края.[5] Кроме того, для любого , вершинное покрытие не имеет ядер с края, если .[4] Задачи о вершинном покрытии в -однородные гиперграфы имеют ядра с края с помощью лемма подсолнечника, и у него нет ядер размером если только .[4]
  • Набор вершин обратной связи параметризуется размером набора вершин обратной связи: набор вершин обратной связи проблема имеет ядра с вершины и края.[6] Кроме того, в нем нет ядер с края, если .[4]
  • k-путь: Задача k-пути состоит в том, чтобы решить, имеет ли данный граф дорожка длины не менее . В этой задаче есть ядра экспоненциального размера в , и он не имеет ядер размера, полиномиального от если только .[7]
  • Двумерные задачи: Многие параметризованные версии двумерный задачи имеют линейные ядра на плоских графах и, в более общем смысле, на графах, исключая некоторый фиксированный граф как незначительный.[8]

Кернелизация для структурной параметризации

Пока параметр в Примеры выше выбран размер желаемого раствора, в этом нет необходимости. Также можно выбрать меру структурной сложности ввода в качестве значения параметра, что приведет к так называемым структурным параметризациям. Этот подход полезен для случаев, когда размер решения велик, но для которых ограничена другая мера сложности. Например, номер вершины обратной связи неориентированного графа определяется как минимальная мощность множества вершин, удаление которых делает ациклический. В крышка вершины Задача, параметризованная номером вершины обратной связи входного графа, имеет полиномиальную ядро.[9]: Существует алгоритм с полиномиальным временем, который по графику чей номер вершины обратной связи , выводит график на вершины такие, что минимальное покрытие вершин в можно преобразовать в минимальное вершинное покрытие для за полиномиальное время. Алгоритм ядра, таким образом, гарантирует, что экземпляры с небольшим числом вершин обратной связи сводятся к мелким экземплярам.

Смотрите также

  • Итерационное сжатие, другой метод проектирования для управляемых алгоритмов с фиксированными параметрами

Заметки

  1. ^ Это неопубликованное наблюдение подтверждается в статье Басс и Голдсмит (1993)
  2. ^ Flum & Grohe (2006)
  3. ^ Flum & Grohe (2006) дать ядро ​​на основе уменьшения кроны, которое вершины. В граница вершин немного сложнее и фольклор.
  4. ^ а б c d Делл и ван Мелкебек (2010)
  5. ^ Чен, Кандж и Цзя (2001)
  6. ^ Томассе (2010)
  7. ^ Bodlaender et al. (2009)
  8. ^ Фомин и др. (2010)
  9. ^ Янсен и Бодлендер (2013)

использованная литература

дальнейшее чтение