diff --git a/ems.tex b/ems.tex index cee5eab063070aa24f1d3a3f7b447709f9bca86b..fe5710aefc24a7b1d9736912063d023abb526bdd 100644 --- a/ems.tex +++ b/ems.tex @@ -106,6 +106,68 @@ Eltern haften für ihre Kinder. \textit{(Im Beispiel Graph oben ist die rot gezeichnete Kante $\{A,Z\}$ eine blockierende Kante für das Matching.)} \end{defi} + +Hier sollte deutlich werden, dass das Stable Marriage Problem äquivalent zum Stable Matching Problem in bipartiten Graphen ist. + +Das ``Reduzieren'' von Problem aus der Realität auf Probleme z.B. der Graphentheorie ist eine weit verbreitete Technik. Man folgt der Idee: Wenn man einen Algorithmus A hat, der ein (abstraktes) (Graphen-)Problem X löst, und ein reales Problem Y auf das Problem X reduzierbar (oder äquivalent) ist, dann kann man auch Problem Y mit dem Algorithmus A lösen. + +\subsection{Exkurs: Stable Roommate Problem} + +\begin{halfboxl} + \vspace{-\baselineskip} + \begin{defi}{Stable Roommate Problem} + Das Stable Roommate Problem beschreibt, wie eine Menge von Personen anhand von Präferenzen in Paare aufgeteilt werden kann, sodass das resultierende Matching stabil ist.\\ + + \begin{itemize} + \item Gegeben: $2n$ Personen; jede Person sortiert die anderen $2n-1$ Personen in einer Präferenzlist + \item Gesucht: Eine Aufteilung der $2n$ Personen in $n$ Paare, so dass das entsprechende (perfekte) Matching stabil ist. + \end{itemize} + + Beim Stable Roommate Problem gibt es nicht immer ein stabiles perfektes Matching (siehe Beispiel rechts). + \end{defi} +\end{halfboxl}% +\begin{halfboxr} + \vspace{-\baselineskip} + \begin{center} + \begin{tikzpicture} + \node[draw,circle,minimum size=5mm, label = above:{$B,C,D$}] (A) at (2,0) {$A$}; + \node[draw,circle,minimum size=5mm, label = left:{$C,A,D$}] (B) at (0,-2) {$B$}; + \node[draw,circle,minimum size=5mm, label = below:{$A,B,D$}] (C) at (2,-4) {$C$}; + \node[draw,circle,minimum size=5mm, label = right:{$A,B,C$}] (D) at (4,-2) {$D$}; + + %\foreach \X [count=\Y from 2] in {1, ..., 3}{ + % \draw[-] (\X) -- (\Y); + %} + \draw[thick,red] (A) -- (B); + \draw[thick,green] (B) -- (C); + \draw[thick,red] (C) -- (D); + \draw[thick,green] (D) -- (A); + \draw[thick,blue] (A) -- (C); + \draw[thick,blue] (B) -- (D); + \end{tikzpicture} + + Alle Möglichkeiten an Matchings (rot, blau, grün) sind nicht stabil. + \end{center} +\end{halfboxr} + +\subsection{Algorithmen zum Lösen des Stable Marriage Problems} + +Es gibt zwei Algorithmen, die hier betrachtet werden: Die Seitensprung-Dynamik und Gale-Shapley-Algorithmus. + +\begin{algo} + \textbf{Eingabe:} Beliebiges Matching $M$ + + \textbf{Ausgabe:} Stabiles, perfektes Matching $M^*$. + \tcblower + + \textbf{WHILE} (unzufriedenes Paar $\{m,w\}$ existiert) + \begin{itemize} + \item Ersetze die Matchingkanten $\{m,w'\}$ und $\{m',w\}$ durch $\{m,w\}$ und $\{m',w'\}$ + \end{itemize} + \textbf{RETURN} $M^*$ + +\end{algo} + \section{Sortieren} \section{Laufzeit}