\documentclass[12pt,fleqn,a4paper]{book}
%
% Packages used:
%
\usepackage[koi8-r]{inputenc}
\usepackage[russian,english]{babel}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{amsfonts}
\usepackage{amsthm}
\advance\textheight by 5mm
%
% Common customization:
%
\input defs
%
\renewcommand\mod{\mathrm{mod}\ }
%
% The document
%
\begin{document}
\selectlanguage{russian}
\lecture{3}{Параллельный алгоритм для
задачи о минимальном совершенном паросочетании}{Д.~Ицыксон}
%
% The lecture
%
\section{Постановка задачи}

Дан взвешенный неориентированный граф $G=(V,E,w)$ с четным числом вершин.
Требуется разбить все вершины на пары, соединенные ребром, так чтобы сумма
весов ребер была минимальна. Мы предполагаем, что хотя бы одно такое
(<<совершенное>>) паросочетание имеется.

Мы приведем параллельный алгоритм для этой задачи, использующий $\poly(n)$
процессоров и работающий время $O(\log n)$, где $n$ --- число вершин графа.

Мы воспользуемся следующим фактом, доказанным в другой лекции.
\begin{fact}
Определитель матрицы и обратную матрицу можно вычислить за $O(\log n)$ на 
$\poly(n)$ процессорах.
\end{fact}

\section{Матрица Татта (Tutte matrix)} 	

Сопоставим графу следующую символьную матрицу $A$:
$$a_{ij}=
       \begin{cases}
       x_{ij}, &\text{если $i<j$, $\{i,j\} \in E$}\\
       -x_{ij}, &\text{если $i>j$, $\{i,j\} \in E$}\\
       0, &\text{иначе}\\
      \end{cases}$$  

\begin{theorem}
В графе имеется совершенное паросочетание
тогда и только тогда, когда определитель матрицы Татта отличен
от нуля.
\end{theorem}

Далее в этом разделе предполагается, что минимальное паросочетание только одно
(как это обеспечить, будет показано в следующем разделе).

\begin{lemma}
Положим
$B=A[x_{ij}:=2^{w_{ij}}]$. Если в графе минимальное совершенное паросочетание
единственно и имеет вес $W$, то $\det B$ делится на $2^{2W}$ и не делится на
$2^{2W+1}$.
\end{lemma}

\begin{proof}
  $$\det B = \sum_{\sigma \in S_n} sgn(\sigma)B_{\sigma}$$
  $$B_{\sigma}=\prod_{i=1}^n B_{i,\sigma(i)}$$

Посмотрим на ненулевые $B_{\sigma}$. Они соответствуют набору направленных ребер
нашего графа $(i, \sigma(i))$, более того,
%Так как $B_{\sigma}\neq 0$, то это действительно
%ребра графа $G$. Каждая перестановка $\sigma$ соответствует
набору циклов.
Какой же вклад в $\det B$ вносит набор циклов,
соответствующий перестановке $\sigma$? Имеется 3 случая.
\begin{enumerate}
\item Все циклы состоят из двух вершин. Такая перестановка
соответствует совершенному паросочетанию.
Если это минимальное паросочетание, то $|B_{\sigma}|=2^{2W}$, иначе,
как минимум, $2^{2W+2}$ (по единственности минимального паросочетания).

\item Все циклы четной длины. Такой перестановке можно сопоставить
2 паросочетания: по четным ребрам и по нечетным.
Из них минимальным может быть только одно. Следовательно,
$|B_{\sigma}|$ делится на $2^{2W+1}$.

\item Есть циклы нечетной длины. Упорядочим в графе все циклы нечетной длины
(с учетом направления обхода), так чтобы цикл и обратный ему шли подряд.   
Возьмем наименьший цикл нечетной длины и развернем его. Получим перестановку 
$\sigma'$. Очевидно, что $sgn(\sigma)=sgn(\sigma')$. Знаки весов в этом цикле
для $\sigma'$ будут противоположными по знаку. Таким образом,
$B_{\sigma}+B_{\sigma'}=0$, т.е. эти две перестановки вносят нулевой
суммарный вклад в $\det B$.
\end{enumerate}
\end{proof}

\begin{lemma}
Пусть $B=A[x_{ij}:=2^{w_{ij}}]$, минимальное совершенное паросочетание
единственно и имеет вес $W$. Тогда ребро $(i,j)$ принадлежит паросочетанию
тогда и только тогда, когда
 $\frac{B^{(i,j)}2^{w_{ij}}}{2^{2W}}$ нечетно, где $B^{(i,j)}$ --- это
алгебраическое дополнение элемента $(i,j)$.
\end{lemma}

\begin{proof}

Доказательство аналогично доказательству предыдущей леммы.
Изменятся только разбор последнего случая: разворачивать будем наименьший
нечетный цикл, \emph{не содержащий ребра $(i,j)$};
такой есть, так как число вершин четно.
\end{proof}

Теперь достаточно лишь посчитать матрицу $\det B \times B^{-1}$ и выделить
элементы, у которых меньше всего нулей на конце в двоичной системе счисления.

\begin{remark}
Время работы алгоритма зависит не только от размера графа, но и от весов.
Так что веса должны быть не очень большими (заметим, что мы берем
от них экспоненту).
\end{remark}

Далее попытаемся избавиться от предположения единственности минимального
паросочетания.

\section{Isolating Lemma}
\begin{lemma}
Пусть $X=\{x_1,x_2,\ldots,x_m\}$, $\Gamma=\{S_1,S_2,\ldots,S_k\}$, 
$\forall i$, $S_i \subseteq X$.
Выберем $u_i=\mathrm{random}(1\texttt{..}2m)$ --- вес элемента $x_i$. Тогда 
$\Pr\{\exists ! i : \text{вес $S_i$ минимальный}\}\ge \frac{1}{2}$.
\end{lemma}

\begin{proof}
Не умаляя общности, считаем, что нет элементов, появляющихся во всех множествах
(или ни в одном).
Рассмотрим событие $A_i$, соответствующее тому, что вес минимального
подмножества, среди множеств, не содержащих элемент $x_i$, равняется весу
минимального подмножества, среди множеств, содержащих элемент $x_i$.
Вероятность $A_i$ не более $\frac{1}{2m}$, так как лишь одно значение $u_i$, при
фиксированных остальных весах сможет вызвать событие $A_i$.

Итого с вероятностью не менее $\frac{1}{2}$ событие $A_i$ не случится ни для
одного $i$, а тогда существует только одно множество минимального веса. 
\end{proof} 

При помощи этой леммы разберемся с ситуацией, 
когда в графе более одного минимального совершенного
паросочетания. Введем новые веса (нам уже были даны какие-то):
$$u_{ij}=w_{ij}\cdot2mn+\mathrm{random}(1\texttt{..}2m),$$
где $m$ --- число ребер.
Осталось применить лемму к $X=E$, $\Gamma=$ множество всех
минимальных совершенных паросочетания для старых весов.

\end{document}

