Паросочетание

Материал из testwiki
Перейти к навигации Перейти к поиску

В теории графов паросочетание, или независимое множество рёбер в графе, — это набор попарно несмежных рёбер.

Определение

Пусть дан граф G = (V,E), паросочетание M в G — это множество попарно несмежных рёбер, то есть рёбер, не имеющих общих вершин, т.е. e,fM:ef=.

Связанные определения

Максимальное паросочетание — это такое паросочетание M в графе G, которое не содержится ни в каком другом паросочетании этого графа, то есть к нему невозможно добавить ни одно ребро, которое бы являлось несмежным ко всем рёбрам паросочетания. Другими словами, паросочетание M графа G является максимальным, если любое ребро в G имеет непустое пересечение, по крайней мере, с одним ребром из M. Ниже приведены примеры максимальных паросочетаний (красные рёбра) в трёх графах[1].

Наибольшее паросочетание (или максимальное по размеру паросочетание[2])— это такое паросочетание, которое содержит максимальное количество рёбер. Число паросочетания[3] ν(G) графа G — это число рёбер в наибольшем паросочетании. У графа может быть множество наибольших паросочетаний. При этом любое наибольшее паросочетание является максимальным, но не любое максимальное будет наибольшим. Следующие три рисунка показывают наибольшие паросочетания в тех же трёх графах[1].

Некоторые авторы используют термин «максимальное паросочетание» для наибольшего паросочетания[4][5][6][7].

Совершенным паросочетанием (или 1-фактором) называется паросочетание, в котором участвуют все вершины графа. То есть любая вершина графа инцидентна ровно одному ребру, входящему в паросочетание. Фигура (b) на рисунке выше является примером такого паросочетания. Любое совершенное паросочетание является наибольшим и максимальным. Совершенное паросочетание является также рёберным покрытием минимального размера. В общем случае ν(G)ρ(G), где ρ(G)число рёберного покрытия графа G, иными словами, размер наибольшего паросочетания не превосходит размера наименьшего рёберного покрытия.

Почти совершенным паросочетанием называется паросочетание, в котором не участвует ровно одна вершина. Это может произойти, если граф имеет нечётное число вершин. На рисунке выше паросочетание в графе (c) является почти совершенным. Если для любой вершины в графе существует почти совершенное паросочетание, не содержащее именно эту вершину, граф называется факторно-критическим.

Пусть задано паросочетание M.

  • чередующийся путь — это путь, в котором рёбра поочерёдно принадлежат паросочетанию и не принадлежат ему.
  • пополняющий путь (или увеличивающий путь) — это чередующийся путь, начинающийся и кончающийся свободными вершинами (то есть не участвующими в паросочетании).

Лемма Бержа утверждает, что паросочетание является наибольшим в том и только в том случае, если не существует пополняющего пути.

Свойства

  • Число совершенных паросочетаний в двудольном графе равно перманенту его матрицы смежности.
  • В любом графе без изолированных вершин число паросочетания и число рёберного покрытия в сумме дают число вершин[8].
    • В частности, если существует совершенное паросочетание, то оба числа равны |V| / 2.
  • Если A и B — два максимальных паросочетания, то |A| ≤ 2|B| и |B| ≤ 2|A|. Чтобы это увидеть, заметьте, что каждое ребро из B \ A может быть сопряжено максимум двум рёбрам из A \ B поскольку A — паросочетание. Однако каждое ребро A \ B сопряжено с ребром B \ A ввиду того, что B — максимальное. Следовательно,
    |AB|2|BA|
Далее мы имеем
|A|=|AB|+|AB|2|BA|+2|BA|=2|B|
  • В частности, отсюда вытекает, что любое максимальное паросочетание является 2-аппроксимацией наибольшего паросочетания, а также 2-аппроксимацией минимального максимального паросочетания. Это неравенство точное. Например, если G — путь с тремя рёбрами и 4 вершинами, минимальный размер максимального паросочетания равен 1, а размер наибольшего паросочетания равен 2.

Многочлен паросочетаний

Производящая функция числа k-рёберных паросочетаний в графе называется многочлен паросочетаний. Пусть G — граф и mk — число k-рёберных паросочетаний. Полиномом паросочетаний графа G будет

k0mkxk

Есть другое определение полинома паросочетаний

k0(1)kmkxn2k,

где n — число вершин в графе. Оба определения имеют свои области применения.

Алгоритмы и вычислительная сложность

Наибольшее паросочетание в двудольном графе

Задачи нахождения паросочетания часто возникают при работе с двудольными графами. Поиск наибольшего паросочетания в двудольном графе[9] G=(V=(X,Y),E) является, пожалуй, простейшей задачей. Алгоритм пополняющего пути получает его, находя пополняющий путь из каждой вершины xX в Y и добавляя его в паросочетание, если путь будет найден. Альтернативный способ решения заключается в том, что паросочетание будет дополняться до тех пор, пока существуют расширяющие дополняющие пути:

  1. Установи M=.
  2. Пока имеются расширяющие пополняющие пути P:
    1. M=ME(P), где - симметрическая разность множеств.

Пополняющий путь - это путь вида v0,{v0,v1},v1,{v1,v2},v2,,vl1,{vl1,vl},vl, для которого истинно {vi1,vi}M{vi,vi+1}M при 0il. Пополняющий путь называется расширяющим, если v0,vlM.

Лемма: Для любого графа G=(V,E), паросочетания M и пополняющего пути P справедливо ME(P) паросочетание и |ME(P)|=|M|+1. Доказательство: Пусть G=(V,M), G=(V,ME(P)) и v - начальная вершина P, так что δG(v)=0 и δG(v)=1, а также w - последняя вершина P, так что δG(w)=0 и δG(w)=1, и u - промежуточная вершина P, так что δG(u)=δG(u)=1. Из этого следует, что в граф будет добавлено на одно ребро больше, чем удалено из него.

Лемма: Для любого графа G=(V,E) и паросочетаний M, N таких, что |M|<|N| справедливо следующее: граф H=(V,MN) содержит минимум |N||M| не пересекающихся в вершинах пополняющих путей относительно M в G. Доказательство: Пусть GM=(V,M) и GN=(V,N), при этом действительно δ(GM){0,1} и δ(GN){0,1} и таким образом следует δ(H){0,1,2}. Пусть Gi=(V,Ei) при 1ig компоненты связности графа H. Из δ(H){0,1,2} следует

  • Gi является изолированной вершиной или
  • Gi является циклом четной длины или
  • Gi является путем четной длины или
  • Gi является путем нечетной длины

Вершины в Gi происходят попеременно из M и N. Пусть d(Gi)=|EiN||EiM|{1,0,1}

, а d(Gi)=1 только если Gi - пополняющий путь. i=1gd(Gi)=|NM||MN|=|N||M| и это означает, что должно существовать минимум |N||M| компонент Gi с d(Gi)=1 и, как следствие, дополняющих путей. Согласно определению компонент связности, такие дополняющи пути не будут пересекаться в вершинах.

Найти дополняющий путь можно следующим образом:

  1. Даны G=(V,W,E) двудольный граф и паросочетание M.
  2. Создай G=(VW,EE), где
    1. E={(v,w){v,w}EMvVwW}
    2. E={(w,v){v,w}MvVwW}
  3. Поиск дополняющего пути сводится к поиску в G из свободной вершины vV в свободную вершину wW.

Поскольку пополняющий путь может быть найден за O(|E|) - время поиска в глубину, время работы алгоритма составит O(|V||E|). Это решение эквивалентно добавлению суперисточника s с рёбрами ко всем вершинам X, и суперстока t с рёбрами из всех вершин Y (трансформация графа займет O(n+m), и поиску максимального потока из s в t. Все рёбра, по которым идёт поток из X в Y, образуют максимальное паросочетание, а размер наибольшего паросочетания будет равен величине потока. Несколько быстрее работает алгоритм Хопкрофта — Карпа, работающий за время O(VE). Другой подход базируется на алгоритме быстрого умножения матриц и даёт сложность O(V2.376)[10], что в теории лучше для достаточно плотных графов, но на практике алгоритм медленнее.[11]

Во взвешенном двудольном графе

Во взвешенном двудольном графе каждому ребру приписывается вес. Паросочетание максимального веса в двудольном графе[9] определяется как паросочетание, для которого сумма весов рёбер паросочетания имеет максимальное значение. Если граф не является полным двудольным, отсутствующие рёбра добавляются с нулевым весом. Задача поиска такого паросочетания известна как задача о назначениях. Замечательный венгерский алгоритм решает задачу о назначениях и был одним из первых алгоритмов комбинаторной оптимизации. Задача может быть решена с помощью модифицированного поиска кратчайшего пути в алгоритме пополняющего пути. Если используется алгоритм Беллмана — Форда, время работы будет O(V2E), или цену ребра можно сдвинуть для достижения времени O(V2logV+VE) при применении алгоритма Дейкстры с Фибоначчиевой кучей[12]. [13]

Наибольшие паросочетания

Шаблон:Main Имеется алгоритм полиномиального времени для нахождения наибольшего паросочетания или паросочетания максимального веса в графе, не являющемся двудольным. Следуя Шаблон:Не переведено 5 его называют методом путей, деревьев и цветов или просто алгоритмом Эдмондса для паросочетаний. Алгоритм использует Шаблон:Не переведено 5. Обобщение той же техники может быть использовано для поиска максимального независимого множества в графах без клешней. Алгоритм Эдмодса был впоследствии улучшен до времени работы O(VE), что соответствует алгоритмам для двудольных графов[14]. Другой (рандомизированный) алгоритм, разработанный Муча и Санковсим (Mucha, Sankowski)[10], основанный на быстром произведении матриц, даёт сложность O(V2.376).

Максимальные паросочетания

Максимальное паросочетание можно найти простым жадным алгоритмом. Cамым большим максимальным паросочетанием является наибольшее паросочетание, которое может быть найдено за полиномиальное время. Pеализация с использованием псевдокода:

  1. Дан граф G=(V,E).
  2. Установи M=.
  3. Пока множество E не пустое:
    1. Выбери eE.
    2. Установи M=M{e}.
    3. Установи E={eEee=}.
  4. Выведи M.

Однако неизвестно никакого полиномиального по времени алгоритма для нахождения наименьшего максимального паросочетания, то есть максимального паросочетания, содержащего наименьшее возможное число рёбер.

Заметим, что наибольшее паросочетание из k рёбер является рёберным доминирующим множеством с k рёбрами. И обратно, если задано минимальное рёберное доминирующее множество с k рёбрами, мы можем построить наибольшее паросочетание с k рёбрами за полиномиальное время. Таким образом, задача нахождения минимального по размеру максимального паросочетания эквивалентна задаче нахождения минимального рёберного доминирующего множества[15]. Обе эти задачи оптимизации известны как NP-трудные, а их распознавательные версии являются классическими примерами NP-полных задач[16]. Обе задачи могут быть аппроксимированы с коэффициентом 2 с полиномиальным временем — просто находим произвольное максимальное паросочетание M[17].

Задачи перечисления

Число паросочетаний в графе известно как индекс Хосойи. Вычисление этого числа является #P-полной задачей. Задача остаётся #P-полной в специальном случае перечисления совершенных паросочетаний в двудольном графе, поскольку вычисление перманента случайной 0-1 матрицы (другая #P-полная задача) — это то же самое, что вычисление числа совершенных паросочетаний в двудольном графе, имеющем заданную матрицу в качестве матрицы смежности. Существует, однако, рандомизированная аппроксимационная схема полиномиального времени для вычисления числа паросочетаний в двудольном графе[18]. Замечательная теорема Шаблон:Не переведено 5, утверждающая, что число совершенных паросочетаний в планарном графе может быть вычислено в точности за полиномиальное время с помощью алгоритма FKT.

Число совершенных паросочетаний в полном графе Kn (с чётным n) задаётся двойным факториалом (n − 1)!![19]. Число паросочетаний в полном графе без ограничения, чтобы паросочетание было совершенным, задаётся Шаблон:Не переведено 5[20].

Нахождение всех рёбер, паросочетаемых рёбер

Одной из основных задач в теории паросочетаний является поиск всех рёбер, которые могут быть расширены до наибольшего паросочетания. Лучший детерминированный алгоритм решения этой задачи работает за время O(VE)[21]. Существует рандомизированный алгоритм, решающий задачу за время O~(V2.376)[22]. В случае двудольного графа можно найти наибольшее паросочетание и использовать его для нахождения всех максимально паросочетаемых рёбер за линейное время[23]; что даст в результате O(V1/2E) для общих двудольных графов и O((V/logV)1/2E) для плотных двудольных графов с E=Θ(V2). В случае, если одно из наибольших паросочетаний известно заранее[24], общее время работы алгоритма будет O(V+E).

Характеристики и замечания

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

Теорема Холла (или теорема о свадьбах) обеспечивает характеризацию двудольных графов, имеющих совершенные паросочетания, а теорема Татта даёт характеризацию произвольных графов.

Совершенное паросочетание порождает остовный 1-регулярный подграф, то есть 1-фактор. В общем случае остовный k-регулярный подграф — это k-фактор.

Приложения

Структурная формула Кекуле ароматических соединений состоит из совершенных паросочетаний их углеродного скелета, показывая местоположение двойных связей в химической структуре. Эти структуры названы в честь Фридриха Августа Кекуле, который показал, что бензол (в терминах теории графов — это цикл из 6 вершин) может быть представлен в виде такой структуры[25].

Индекс Хосойи — это число непустых паросочетаний плюс единица. Он применяется в вычислительной и математической химии для исследования органических соединений.

См. также

Примечания

Шаблон:Примечания

Литература для дальнейшего чтения

  1. Шаблон:Книга
  2. Шаблон:Книга
  1. Шаблон:Книга
  2. Шаблон:Книга

Ссылки


Шаблон:Rq

  1. 1,0 1,1 Шаблон:Книга
  2. Alan Gibbons, Algorithmic Graph Theory, Cambridge University Press, 1985, Chapter 5.
  3. Шаблон:Книга
  4. Шаблон:Книга
  5. Шаблон:Книга
  6. Шаблон:Книга
  7. Шаблон:Книга
  8. Шаблон:Статья
  9. 9,0 9,1 Шаблон:Книга
  10. 10,0 10,1 Шаблон:Статья
  11. Шаблон:Статья.
  12. Шаблон:Статья
  13. Шаблон:Книга глава 4.1.3 Historical notes, books, and surveys, глава 4.4.3 Efficient implementations
  14. Шаблон:Статья
  15. Шаблон:Статья
  16. Шаблон:Книга. Рёберное доминирующее множество обсуждается при рассмотрении задач нахождения доминирующих множеств, задачи GT2 в приложении A1.1. Минимальное по размеру максимальное паросочетание — это задача GT10 в приложении A1.1.
  17. Шаблон:Книга Минимальное доминирующее рёберное множество — это задача GT3 в приложении B (страница 370). Минимальное по размеру максимальное паросочетание — это задача GT10 в приложении B (страница 374). См. также Minimum Edge Dominating Set Шаблон:Wayback и Minimum Maximal Matching Шаблон:Wayback в web compendium Шаблон:Wayback.
  18. Шаблон:Статья
  19. Шаблон:Статья
  20. Шаблон:Статья
  21. Шаблон:Статья
  22. Шаблон:Статья
  23. Шаблон:Статья
  24. Шаблон:Статья
  25. Смотрите, например, Шаблон:Статья