Паросочетания в двудольных графах Лекция 8 Паросочетание • Паросочетанием в графе G называется множество попарно несмежных ребер. Задача «Максимальное Паросочетание» • Дан граф G. • Найти паросочетание в G максимальной мощности. Совершенное паросочетание Определение 8.1. • Пусть G ― граф и M ― паросочетание в G. Будем говорить, что вершина v покрыта M, если v e для некоторого e M . • M называется совершенным паросочетанием, если все вершины покрыты M. Биразбиение • Биразбиением графа G называется разбиение множества вершин на два подмножества, V(G)=A⋃B, такое что подграфы индуцированные на A и B ― оба пустые. • Граф называется двудольным, если он имеет биразбиение. Паросочетание в двудольном графе • Для графа G, пусть (G) обозначает мощность максимального паросочетания, а (G) ― мощность минимального вершинного покрытия в G. Теорема 8.2 (König [1931]) Если G ― двудольный, то (G) = (G). Доказательство • G' = (V(G)⋃{s,t}, E(G)⋃{{s,a}: a A}⋃ {{b,t}: b B}) • (G) – максимальное число вершинно-непересекающихся s-t-путей. • (G) – минимальное число вершин удаление которых разделяет вершины s и t. Вторая Теорема Менгера Theorem 7.2 (Menger [1927] ) Пусть G ― граф (ориентированный или неориентированный), пусть s и t две несмежные вершины и k N. Тогда существует k вершиннонепересекающихся s-t-путей, тогда и только тогда, когда после удаления любых k – 1 вершин (отличных от s и t) t остается достижима из s. Доказательство • G' = (V(G)⋃{s,t}, E(G)⋃{{s,a}: a A}⋃ {{b,t}: b B}) • (G) – максимальное число вершинно-непересекающихся s-t-путей. • (G) – минимальное число вершин удаление которых разделяет вершины s и t. • 2-я теорема Менгера (G) = (G). Теорема Холла Теорема 8.3 (Hall [1935] ) Пусть G ― двудольный граф с биразбиением V(G) = A⋃B. Тогда G имеет паросочетание, покрывающее A, тогда и только тогда, когда |(X)| ≥ |X| для всех X A. ((X) – множество вершин соседних с X.) Доказательство (достаточность) • Пусть G не имеет паросочетание, покрывающее A ((G) < |A|). • Теорема 8.2 (G) < |A|. • Рассмотрим A' A и B' B, такие что A' ⋃ B' покрывают все ребра и | A' ⋃ B' | < | A |. • Тогда (A /A' ) B'. • | (A /A' ) | ≤ |B'| < | A | – | A' | = |A /A' |, что противоречит условию теоремы. Теорема о бракосочетаниях Теорема 8.4 (Frobenius [1917] ) Пусть G ― двудольный граф с биразбиением V(G) = A⋃B. Тогда G имеет совершенное паросочетание, тогда и только тогда, когда |A| = |B| и |(X)| ≥ |X| для всех X A. Паросочетание в двудольном графе Теорема 8.5 Задача «Максимальное Паросочетание» в двудольном графе G может быть решена за время O(nm), где n = |V(G)| и m = |E(G)|. Справка • Используя идею о кратчайшем увеличивающем пути можно получить алгоритм с трудоемкостью O(n0.5(m + n)) (Hopcroft & Karp 1973). M- увеличивающий путь • Определение 8.6 Пусть G ― граф, и M ― паросочетание в G. Путь P называется M-чередующимся путем, если E(P) \ M является паросочетанием. Чередующийся путь называется M-увеличивающим, если его граничные точки не покрываются M, то есть | E(P) \ M | > | E(P) ∩ M |. Пример M-увеличивающего пути P: M E(P)\ M Паросочетание и увеличивающий путь Theorem 8.7 (Berge [1957] ) Пусть G ― граф, и M ― паросочетание в G. Тогда M является максимальным тогда и только тогда, когда не существует M-увеличивающего пути. Доказательство • Если M-увеличивающий путь P существует, то симметрическая разность M∆E(P) будет паросочетанием большей мощности. • Если существует паросочетание | M '| > | M |, то M∆M ' является вершиннонепересекающимся объединением путей и циклов, один из которых является увелличивающим. Алгебраический подход • Пусть G простой граф и пусть G' орграф, полученный из G произвольной ориентацией ребер. • Для произвольного вектора x определим матрицу Татта. Матрица Татта x xe eE G TG x t x vw v , wV G xv , w x tvw : xv , w 0 if v, w E G if w, v E G иначе Паросочетание и матрица Татта Теорема 8.8 (Tutte [1947] ) Граф G имеет совершенное паросочетание тогда и только тогда, когда det TG(x) ≠ 0. Доказательство • V(G) = {v1,…,vn} • Пусть Sn множество всех перестановок {1,…, n}. det TG x n x sgn t viv i S n i 1 x S n S n : tvi v i 0 i 1 n • Каждая перестановка π S'n соответствует орграфу Hπ = ( V(G),{(vi,vπ(i)): i = 1,…, n}), где ровно одна дуга входит в каждую вершину и ровно одна дуга выходит из нее. (Hπ Ğ'). Пример Hπ M Hπ vi π(i)=j, π(j)=i. vj Доказательство • Если существует перестановка π S'n такая что Hπ состоит только из четных циклов, то в G есть совершенное паросочетание. • Пусть это не так. То есть для каждой π S'n существует нечетный цикл. • Тогда r(π) S'n такая, что Hr(π) получается из Hπ обратной ориентацией дуг в первом нечетном цикле (r(r(π)) = π). Пример Hπ и Hr(π) Hπ Hr(π) vj vi vi vj vk vk π(i)=j, π(j)=k, π(k)=i. π(i)=k, π(j)=i, π(k)=j. sgn(π)= sgn(r(π)) w1 Hπ w2 w2k+1 w1,w2,w3, …, w2k,w2k+1 w2,w3,w4, …, w2k+1,w1 w1 Hr(π) w2 w2k+1 w1, w2,w3, …, w2k,w2k+1 w2k+1,w1,w2, …, w2k-1,w2k Одна перестановка получается из другой за 2к транспозиций. Доказательство n n i 1 i 1 x t viv i tvivr i • Следовательно, два соответствующих этим перестановкам слагаемые в сумме det TG x n x sgn t viv i S n взаимно сокращаются. i 1 • Так как это выполняется для всех пар π и r(π), то det TG(x)≡0. Вероятностный Алгоритм Следствие 8.9 (Lovász [1979] ) Пусть x = (xe)eE(G) ― случайный вектор, каждая координата которого равномерно распределена в [0,1]. Тогда с вероятностью 1 ранг TG(x) в точности равен 2(G). Упражнение 8.1 • Пусть G произвольный граф, M1 и M2 два максимальных паросочетания в нем. Доказать, что | M1 | ≤ | M2 |. Упражнение 8.2 • Доказать, что k-регулярный двудольный граф имеет k попарно не пересекающихся совершенных паросочетаний.