MAXimal | |
добавлено: 16 Sep 2010 17:09 Содержание [скрыть] Матрица ТаттаМатрица Татта — это изящный подход к решению задачи о паросочетании в произвольном (не обязательно двудольном) графе. Правда, в простом виде алгоритм не выдаёт сами рёбра, входящие в паросочетание, а только размер максимального паросочетания в графе. Ниже мы сначала рассмотрим результат, полученный Таттом (Tutte) для проверки существования совершенного паросочетания (т.е. паросочетания, содержащего ОпределениеПусть дан граф Тогда матрицей Татта (Tutte) называется следующая матрица где Таким образом, в случае полного графа с Матрица Татта антисимметрична (кососимметрична). Теорема ТаттаРассмотрим определитель Теорема Татта гласит: в графе Канадский математик Вильям Томас Татт (William Thomas Tutte) первым указал на тесную связь между паросочетаниями в графах и определителями матриц (1947 г.). Более простой вид этой связи позже обнаружил Эдмондс (Edmonds) в случае двудольных графов (1967 г.). Рандомизированные алгоритмы для нахождения величины максимального паросочетания и самих рёбер этого паросочетания были предложены позже, соответственно, Ловасом (Lovasz) (в 1979 г.), и Рабином (Rabin) и Вазирани (Vazirani) (в 1984 г.). Практическое применение: рандомизированный алгоритмНепосредственно применять теорему Татта даже в задаче проверки существования совершенного паросочетания нецелесообразно. Причиной этого является то, что при символьном вычислении определителя (т.е. в виде многочленов над переменными Венгерский математик Ласло Ловас (Laszlo Lovasz) был первым, указавшим возможность применения здесь рандомизированного алгоритма для упрощения вычислений. Идея очень проста: заменим все переменные Тогда, если полином Понятно, что такой тест (подстановка случайных значений и вычисление определителя Мы можем повторить этот тест несколько раз, подставляя в качестве значений переменных новые случайные числа, и с каждым повторным запуском мы получаем всё большую уверенность в том, что тест выдал правильный ответ. На практике в большинстве случаев достаточно одного теста, чтобы определить, есть ли в графе совершенное паросочетание или нет; несколько таких тестов дают уже весьма высокую вероятность. Для оценки вероятности ошибки можно использовать лемму Шварца-Зиппеля (Schwartz–Zippel), которая гласит, что вероятность обращения в ноль ненулевого полинома Например, при использовании стандартной функции случайных чисел C++ Асимптотика решения получается равной Восстановить само совершенное паросочетание как набор рёбер является более сложной задачей. Самым простым, хотя и медленным, вариантом будет восстановление этого паросочетания по одному ребру: перебираем первое ребро ответа, выбираем его так, чтобы в оставшемся графе существовало совершенное паросочетание, и т.д. Доказательство теоремы ТаттаЧтобы хорошо понять доказательство этой теоремы, сначала рассмотрим более простой результат, — полученный Эдмондсом для случая двудольных графов. Теорема ЭдмондсаРассмотрим двудольный граф, в каждой доле которого по Эта матрица похожа на матрицу Татта, однако матрица Эдмондса имеет вдвое меньшую разность, и каждому ребру здесь соответствует только одна ячейка матрицы. Докажем следующую теорему: определитель Доказательство. Распишем определитель согласно его определению, как сумма по всем перестановкам: Заметим, что поскольку все ненулевые элементы матрицы Свойства антисимметричных матрицДля доказательства теоремы Татта необходимо воспользоваться несколькими известными фактами линейной алгебры о свойствах антисимметричных матриц. Во-первых, если антисимметричная матрица имеет нечётный размер, то её определитель всегда равен нулю (теорема Якоби (Jacobi)). Для этого достаточно заметить, что антисимметричная матрица удовлетворяет равенству откуда и следует, что при нечётных Во-вторых, оказывается, что в случае антисимметричных матриц чётного размера их определитель всегда можно записать как квадрат некоторого полинома относительно переменных-элементов этой матрицы (полином называется пфаффианом (pfaffian), а результат принадлежит Мьюру (Muir)): В-третьих, этот пфаффиан представляет собой не произвольный многочлен, а сумму вида: Таким образом, каждое слагаемое в пфаффиане — это произведение таких Доказательство теоремы ТаттаВоспользовавшись вторым и третьим свойством из предыдущего пункта, мы получаем, что определитель Теорема Ловаса: обобщение для поиска размера максимального паросочетанияФормулировкаРанг матрицы Татта совпадает с удвоенной величиной максимального паросочетания в данном графе. ПрименениеДля применения этой теоремы на практике можно воспользоваться тем же самым приёмом рандомизации, что и в вышеописанном алгоритме для матрицы Татта, а именно: подставить вместо переменных случайные значения, и найти ранг полученной числовой матрицы. Ранг матрицы, опять же, ищется за Впрочем, следует отметить, что приведённая выше лемма Шварца-Зиппеля неприменима в явном виде, и интуитивно кажется, что вероятность ошибки здесь становится выше. Однако утверждается (см. работы Ловаса (Lovasz)), что и здесь вероятность ошибки (т.е. того, что ранг полученной матрицы окажется меньше, чем удвоенный размер максимального паросочетания) не превосходит ДоказательствоДоказательство будет вытекать из теоремы линейной алгебры, известной как теорема Фробениуса (Frobenius). Пусть дана антисимметричная матрица Покажем, как это свойство позволяет установить соответствие между рангом матрицы С одной стороны, рассмотрим в графе Покажем теперь обратное неравенство. Обозначим ранг матрицы Объединяя два доказанных неравенства, мы получаем утверждение теоремы: ранг матрицы Татта совпадает с удвоенной величиной максимального паросочетания. Алгоритм Рабина-Вазирани нахождения максимального паросочетанияЭтот алгоритм является дальнейшим обобщением двух предыдущих теорем, и позволяет, в отличие от них, выдавать не только величину максимального паросочетания, но и сами рёбра, входящие в него. Формулировка теоремыПусть в графе существует совершенное паросочетание. Тогда его матрица Татта невырождена, т.е. (Здесь через ПрименениеЭту теорему можно применять для восстановления самих рёбер максимального паросочетания. Сначала придётся выделить подграф, в котором содержится искомое максимальное паросочетание (это можно сделать параллельно с алгоритмом поиска ранга матрицы). После этого задача сводится к поиску совершенного паросочетания по данной числовой матрице, полученной из матрицы Татта. Здесь мы уже применяем теорему Рабина-Вазирани, — находим обратную матрицу (что можно сделать модифицированным алгоритмом Гаусса за Доказательство теоремыВспомним известную формулу для элементов обратной матрицы где через Отсюда сразу получаем, что элемент Литература
|