Покрытие вершин

редактировать
Набор вершин, который включает по крайней мере одну конечную точку каждого ребра в графе Пример графа, у которого покрытие вершин состоит из 2 вершин (внизу), но ни одной с меньшим количеством.

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

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

Проблемы вершинного покрытия были обобщены на гиперграфы, см. вершинное покрытие в гиперграфах.

Содержание
  • 1 Определение
    • 1.1 Примеры
    • 1.2 Свойства
  • 2 Вычислительная задача
    • 2.1 Формулировка ILP
    • 2.2 Точная оценка
      • 2.2.1 Управляемость с фиксированными параметрами
    • 2.3 Приблизительная оценка
      • 2.3.1 Неприблизимость
      • 2.3.2 Псевдокод
  • 3 Приложения
  • 4 Примечания
  • 5 Ссылки
  • 6 Внешние ссылки
Определение

Формально крышка вершины V ′ {\ displaystyle V '}V'неориентированного графа G = (V, E) {\ displaystyle G = (V, E)}G = (V, E) является подмножеством из V {\ displaystyle V}V такой, что uv ∈ E ⇒ u ∈ V ′ ∨ v ∈ V ′ {\ Displaystyle uv \ in E \ Rightarrow u \ in V '\ lor v \ in V'}{\displaystyle uv\in E\Rightarrow u\in V'\lor v\in V'}, то есть это набор вершин V ′ {\ displaystyle V ' }V'где каждое ребро имеет хотя бы одну конечную точку в покрытии вершины V '{\ displaystyle V'}V'. Говорят, что такой набор покрывает края G {\ displaystyle G}G . На следующем рисунке показаны два примера покрытий вершин, причем некоторые покрытия вершин V '{\ displaystyle V'}V'отмечены красным.

Vertex-cover.svg

Минимальное покрытие вершин - это покрытие вершин минимально возможного размера. Число вершинного покрытия τ {\ displaystyle \ tau}\ tau - это размер минимального вершинного покрытия, то есть τ = | V ′ | {\ Displaystyle \ тау = | V '|}\tau =|V'|. На следующем рисунке показаны примеры минимальных покрытий вершин на предыдущих графиках.

Minimum-vertex-cover.svg

Примеры

  • Набор всех вершин является вершинным покрытием.
  • Конечные точки любого максимального соответствия образуют вершинное покрытие.
  • полный двудольный граф K m, n {\ displaystyle K_ {m, n}}K_ {m, n} имеет минимальное покрытие вершин размером τ (K m, n) = min {m, n} {\ displaystyle \ tau (K_ {m, n}) = \ min \ {\, m, n \, \}}{\ displaystyle \ tau (K_ {m, n}) = \ min \ {\, m, n \, \}} .

Свойства

  • Набор вершин является покрытием вершин тогда и только тогда, когда его дополнение является независимым множеством.
  • Следовательно, количество вершин графа равно его минимальному числу вершинных покрытий плюс размер максимального независимого множества (Gallai 1959).
Вычислительная задача

проблема минимального покрытия вершин - это оптимизационная задача поиска наименьшего вершинного покрытия в заданном графе.

ЭКЗЕМПЛЯР: График G {\ displaystyle G}G
ВЫХОД: наименьшее число k {\ displaystyle k}k такое, что G {\ displaystyle G}G имеет вершинное покрытие размера k {\ displaystyle k}k .

Если проблема сформулирована как проблема решения, она называется проблемой вершинного покрытия :

ЭКЗЕМПЛЯР: График G {\ displaystyle G}G и положительное целое число k {\ displaystyle k}k .
ВОПРОС: G {\ displaystyle G}G иметь вершинное покрытие размером не более k {\ displaystyle k}k ?

Задача вершинного покрытия - это NP-полная проблема: это была одна из 21 NP- задачи Карпа. полные проблемы. Он часто используется в теории сложности вычислений как отправная точка для доказательств NP-сложности.

Формулировка ILP

Предположим, что каждая вершина имеет связанную стоимость c (v) ≥ 0 {\ displaystyle c (v) \ geq 0}c (v) \ geq 0 . Задача (взвешенного) минимального покрытия вершин может быть сформулирована как следующая целочисленная линейная программа (ILP).

минимизация∑ v ∈ V c (v) xv {\ displaystyle \ sum _ { v \ in V} c (v) x_ {v}}\ sum _ {v \ in V} c (v) x_ {v} (минимизировать общую стоимость)
при условииxu + xv ≥ 1 {\ displaystyle x_ {u} + x_ {v} \ geq 1}x_ {u} + x_ {v} \ geq 1 для всех {u, v} ∈ E {\ displaystyle \ {u, v \} \ in E}\ {u, v \} \ in E (покрывают каждое ребро графа)
xv ∈ {0, 1} {\ displaystyle x_ {v} \ in \ {0,1 \}}x_ {v} \ in \ {0,1 \} для всех v ∈ V {\ displaystyle v \ in V}v \ in V .(каждая вершина находится либо в покрытии вершины или нет)

Эта ILP принадлежит к более общему классу ILP для , покрывающих проблемы. Разрыв целостности этого ILP равен 2 {\ displaystyle 2}2 , поэтому его ослабление (позволяющее каждой переменной находиться в интервале от 0 до 1, вместо того, чтобы требовать, чтобы переменные были только 0 или 1) дает фактор- 2 {\ displaystyle 2}2 алгоритм аппроксимации для задачи минимального покрытия вершин. Кроме того, релаксация линейного программирования этой ILP является полуцелой, то есть существует оптимальное решение, для которого каждая запись xv {\ displaystyle x_ {v}}x_ {v} равна либо 0, 1 / 2 или 1. 2-приближенное вершинное покрытие может быть получено из этого дробного решения путем выбора подмножества вершин, переменные которых не равны нулю.

Точная оценка

вариант решения проблемы вершинного покрытия - NP-полный, что означает маловероятно, что существует эффективный алгоритм чтобы решить ее точно для произвольных графов. NP-полнота может быть доказана редукцией из 3-выполнимости или, как это сделал Карп, редукцией из задачи клики . Покрытие вершин остается NP-полным даже в кубических графах и даже в планарных графах степени не выше 3.

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

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

Управляемость с фиксированными параметрами

Алгоритм полного перебора может решить задачу за время 2n, где k - размер вершинного покрытия. Таким образом, вершинное покрытие является управляемым с фиксированным параметром, и если нас интересуют только малые k, мы можем решить проблему за полиномиальное время. Один из работающих здесь алгоритмов называется алгоритмом ограниченного дерева поиска, и его идея состоит в том, чтобы многократно выбирать некоторую вершину и рекурсивно ветвиться, с двумя случаями на каждом шаге: поместить либо текущую вершину, либо всех ее соседей в вершинное покрытие. Алгоритм решения вершинного покрытия, обеспечивающий наилучшую асимптотическую зависимость от параметра, выполняется за время O (1,2738 k + (k ⋅ n)) {\ displaystyle O (1,2738 ^ {k} + (k \ cdot n)) }{\ displaystyle O (1.2738 ^ {k} + (k \ cdot n))} . Значение klam этой временной границы (оценка наибольшего значения параметра, которое может быть решено за разумный промежуток времени) составляет приблизительно 190. То есть, если не могут быть найдены дополнительные алгоритмические улучшения, этот алгоритм является подходит только для экземпляров, у которых номер вершинного покрытия 190 или меньше. При разумных предположениях теории сложности, а именно гипотезе экспоненциального времени, время выполнения не может быть улучшено до 2, даже если n {\ displaystyle n}n равно O (k) {\ displaystyle O (k)}O (k) .

Однако для планарных графов и, в более общем смысле, для графов, исключающих некоторый фиксированный граф в качестве второстепенного, покрытие вершин размера k можно найти в время 2 O (k) n O (1) {\ displaystyle 2 ^ {O ({\ sqrt {k}})} n ^ {O (1)}}2 ^ {O ( {\ sqrt {k}})} n ^ {O (1)} , т. е. проблема субэкспоненциальная управляемая с фиксированными параметрами. Этот алгоритм снова является оптимальным в том смысле, что согласно гипотезе экспоненциального времени ни один алгоритм не может решить вершинное покрытие на плоских графах за время 2 o (k) n O (1) {\ displaystyle 2 ^ {o ({\ sqrt {k}})} n ^ {O (1)}}2 ^ {o ({\ sqrt {k}})} n ^ {O (1)} .

Приблизительная оценка

Можно найти приближение множителя 2 , многократно вводя оба конца ребра в покрытие вершин, а затем удаляя их из графа. Иначе говоря, мы находим максимальное соответствие M с помощью жадного алгоритма и строим вершинное покрытие C, которое состоит из всех конечных точек ребер в M. На следующем рисунке максимальное соответствие M отмечено красным, а вершинное покрытие C отмечено синим цветом.

Vertex-cover-from-maximal-matching.svg

Построенное таким образом множество C является вершинным покрытием: предположим, что ребро e не покрыто C; тогда M ∪ {e} - паросочетание и e ∉ M, что противоречит предположению о максимальности M. Кроме того, если e = {u, v} ∈ M, то любое вершинное покрытие, включая оптимальное вершинное покрытие, должно содержать u или v (или оба); в противном случае ребро e не покрывается. То есть оптимальное покрытие содержит по крайней мере одну конечную точку каждого ребра в M; в сумме множество C не более чем в 2 раза больше оптимального покрытия вершин.

Этот простой алгоритм был независимо открыт Фаникой Гаврил и Михалисом Яннакакисом.

Более сложные методы показывают, что существуют алгоритмы аппроксимации с немного лучшим коэффициентом аппроксимации. Например, алгоритм приближения с коэффициентом приближения 2 - Θ (1 / log ⁡ | V |) {\ displaystyle 2- \ Theta \ left (1 / {\ sqrt {\ log | V |}} \ справа)}2- \ Theta \ left (1 / {\ sqrt {\ log | V |}} \ right) известен. Задача может быть аппроксимирована коэффициентом приближения 2 / (1 + δ) {\ displaystyle 2 / (1+ \ delta)}2 / (1+ \ дельта) в δ {\ displaystyle \ delta}\ delta - плотные графы.

Непроксимируемость

Нет лучшего алгоритма аппроксимации постоянного фактора, чем приведенный выше. Задача минимального покрытия вершин - это APX-complete, то есть она не может быть сколь угодно хорошо аппроксимирована, кроме P= NP. Используя методы из теоремы PCP, Динур и Сафра доказали в 2005 году, что минимальное вершинное покрытие не может быть аппроксимировано с коэффициентом 1,3606 для любой достаточно большой степени вершины, если только P= NP. Позже коэффициент был улучшен до 2 - ϵ {\ displaystyle {\ sqrt {2}} - \ epsilon}{\ displaystyle {\ sqrt {2}} - \ epsilon} для любого ϵ>0 {\ displaystyle \ epsilon>0}\epsilon>0 . если гипотеза об уникальных играх верна, то минимальное покрытие вершин не может быть аппроксимировано никаким постоянным множителем лучше 2.

Хотя нахождение покрытия вершин минимального размера эквивалентно поиску максимального размера Независимый набор, как описано выше, две проблемы не эквивалентны способом, сохраняющим приближение: проблема Независимого набора не имеет аппроксимации постоянного множителя, если P= NP.

Псевдокод

APPROXIMATION-VERTEX-COVER (G) = C = ∅ E '= GE, в то время как E' ≠ ∅: пусть (u, v) - произвольное ребро E 'C = C ∪ {u, v} удалите из E' каждое ребро, инцидентное либо u, либо v return C
Приложения

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

Примечания
Ссылки
Внешние ссылки
Викискладе есть материалы, связанные с проблемой покрытия вершин.
Последняя правка сделана 2021-06-18 11:48:35
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте