diff options
author | Andreas Müller <andreas.mueller@ost.ch> | 2021-07-27 12:33:10 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-07-27 12:33:10 +0200 |
commit | 34a89cce6f8e8abc7fe71cc89bbb2492a475a5db (patch) | |
tree | 4e90618011fddccf8725b4c22a7d3b0fb50d1c1e /buch/papers/munkres | |
parent | Merge branch 'master' of github.com:AndreasFMueller/SeminarMatrizen (diff) | |
parent | neue version (diff) | |
download | SeminarMatrizen-34a89cce6f8e8abc7fe71cc89bbb2492a475a5db.tar.gz SeminarMatrizen-34a89cce6f8e8abc7fe71cc89bbb2492a475a5db.zip |
Merge pull request #48 from Kuehnee/master
neue version
Diffstat (limited to '')
-rw-r--r-- | buch/papers/munkres/main.tex | 4 | ||||
-rw-r--r-- | buch/papers/munkres/teil0.tex | 19 | ||||
-rw-r--r-- | buch/papers/munkres/teil1.tex | 65 | ||||
-rw-r--r-- | buch/papers/munkres/teil2.tex | 83 | ||||
-rw-r--r-- | buch/papers/munkres/teil3.tex | 122 | ||||
-rw-r--r-- | buch/papers/munkres/teil4.tex | 31 | ||||
-rw-r--r-- | buch/papers/munkres/teil5.tex | 10 |
7 files changed, 97 insertions, 237 deletions
diff --git a/buch/papers/munkres/main.tex b/buch/papers/munkres/main.tex index 8915a3d..e5282dc 100644 --- a/buch/papers/munkres/main.tex +++ b/buch/papers/munkres/main.tex @@ -3,8 +3,8 @@ % % (c) 2020 Hochschule Rapperswil % -\chapter{Munkres-Algorithmus\label{chapter:munkres}} -\lhead{Munkres-Algorithmus} +\chapter{Das Zuordnungsproblem und der Munkres-Algorithmus\label{chapter:munkres}} +\lhead{Das Zuordnungsproblem und der Munkres-Algorithmus} \begin{refsection} \chapterauthor{Marc Kühne} diff --git a/buch/papers/munkres/teil0.tex b/buch/papers/munkres/teil0.tex index 1ef0538..0578429 100644 --- a/buch/papers/munkres/teil0.tex +++ b/buch/papers/munkres/teil0.tex @@ -3,19 +3,8 @@ % % (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil % -\section{Geschichte\label{munkres:section:teil0}} -\rhead{Geschichte} -Die Ungarische Methode wurde 1955 von Harold Kuhn entwickelt und veröffentlicht. -Der Name ``Ungarische Methode'' ergab sich, weil der Algorithmus -weitestgehend auf den früheren Arbeiten zweier ungarischer Mathematiker -basierte: Dénes Kőnig und Jenő Egerváry. -James Munkres überprüfte den Algorithmus im Jahr 1957 und stellte fest, -dass der Algorithmus (stark) polynomiell ist. -Seitdem ist der Algorithmus auch als Kuhn-Munkres oder -Munkres-Zuordnungsalgorithmus bekannt. -Die Zeitkomplexität des ursprünglichen Algorithmus war $O(n^4)$, -später wurde zudem festgestellt, dass er modifiziert werden kann, -um eine $O(n^3)$-Laufzeit zu erreichen. - - +\section{Einleitung\label{munkres:section:teil0}} +\rhead{Einleitung} +Im Bereich der Unternehmensplanung (Operations Research) gibt es verschiedene Fragestellungen. Eine davon ist das sogenannte Transportproblem. Zum Transport einheitlicher Objekte von mehreren Angebots- zu mehreren Nachfrageorten ist ein optimaler, d. h. kostenminimaler Plan zu finden, wobei die vorhandenen und zu liefernden Mengen an den einzelnen Standorten gegeben sowie die jeweiligen Transportkosten pro Einheit zwischen allen Standorten bekannt sind. +Nun gibt es im Bereich des klassischen Transportproblems Sonderfälle. Ein Sonderfall ist z.B. das Zuordnungsproblem. diff --git a/buch/papers/munkres/teil1.tex b/buch/papers/munkres/teil1.tex index 7cbbbfd..c13732c 100644 --- a/buch/papers/munkres/teil1.tex +++ b/buch/papers/munkres/teil1.tex @@ -3,19 +3,56 @@ % % (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil % -\section{Was ist die ungarische Methode? +\section{Beschrieb des Zuordnungsproblems \label{munkres:section:teil1}} \rhead{Problemstellung} -Es ist ein kombinatorischer Optimierungsalgorithmus, der das Zuordnungsproblem -in polynomieller Zeit löst. -\begin{itemize} -\item -Polynom = vielgliedrig -\end{itemize} -Der Begriff polynomielle Laufzeit bedeutet, dass die Laufzeit des Programms -wie $n^2$, $n^3$, $n^4$, etc.~wächst und vernünftig skaliert. -Mit der ungarischen Methode können also lineare Optimierungsprobleme gelöst -werden, die bei gewichteten Zuordnungen in bipartiten Graphen entstehen. -Mit ihr kann die eindeutige Zuordnung von Objekten aus zwei Gruppen so -optimiert werden, dass die Gesamtkosten minimiert werden bzw.~der -Gesamtgewinn maximiert werden kann. + +Das spezielle an einem Zuordnungsproblem ist, dass es an jedem Ort nur eine Einheit angeboten bzw. nachgefragt wird. Es werden hier nicht Mengen möglichst kostenminimal von einem zum anderen +Ort transportiert, sondern es geht um die kostenminimale Zuordnung von z.B. Personen, oder Bau-Materialien auf bestimmte Orte, Stellen oder Aufgaben. +Um dieses Problem in einer einfachen, händischen Art und Weise zu lösen wurde der Munkres-Algorithmus, auch die Ungarische Methode genannt, entwickelt. Diese Methode ist ein weiteres Hauptthema dieses Kapitels. + +\subsection{Zuordnungsproblem an einem konkreten Beispiel +\label{munkres:subsection:bonorum}} + +\subsection{Zuordnungsproblem abstrakt +\label{munkres:subsection:bonorum}} + +Es sind alle Angebots- und Bedarfsmengen gleich 1 +\begin{equation} +a_{i}=b_{j}=1 +\end{equation} + +\subsection{alternative Darstellungen des Zuordnungsproblems +\label{munkres:subsection:bonorum}} +\begin{equation} +Netzwerk +\end{equation} +\begin{equation} +Matrix +\end{equation} +\begin{equation} +Bitpartiter Graph +\end{equation} +Ein bipartiter Graph ist ein mathematisches Modell für Beziehungen +zwischen den Elementen zweier Mengen. +Es eignet sich sehr gut zur Untersuchung von Zuordnungsproblemen» +\begin{figure} +\centering +\includegraphics[width=5cm]{papers/munkres/figures/Netzwerkdarstellung} +\caption{Typische Netzwerkdarstellung eines Zuordnungsproblems.} +\label{munkres:Vr2} +\end{figure} + +\begin{figure} +\centering +\includegraphics[width=5cm]{papers/munkres/figures/Matrixdarstellung} +\caption{Typische 4x4 Matrixdarstellung eines Zuordnungsproblems.} +\label{munkres:Vr2} +\end{figure} + +\begin{figure} +\centering +\includegraphics[width=5cm]{papers/munkres/figures/bipartiter_graph} +\caption{$K_{3,3}$ vollständig bipartiter Graph mit 3 Knoten pro Teilmenge.} +\label{munkres:Vr2} +\end{figure} diff --git a/buch/papers/munkres/teil2.tex b/buch/papers/munkres/teil2.tex index 29db8d7..9a44cd4 100644 --- a/buch/papers/munkres/teil2.tex +++ b/buch/papers/munkres/teil2.tex @@ -3,86 +3,11 @@ % % (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil % -\section{Das Zuordnungsproblem +\section{Schwierigkeit der Lösung (Permutationen) \label{munkres:section:teil2}} -\rhead{Das Zuordnungsproblem} -Das (lineare) Zuordnungsproblem ist ein diskretes Optimierungsproblem aus -der Graphentheorie. -Es handelt sich um einen Spezialfall eines maximalen Matchings -minimalen Gewichtes in einem bipartiten, gewichteten Graphen +\rhead{Schwierigkeit der Lösung (Permutationen)} -Vereinfacht gesagt sind Zuordnungsprobleme spezielle Transportprobleme. -Der Unterschied zu klassischen Transportproblemen liegen darin, -dass hier nicht Mengen möglichst kostenminimal von einem zum anderen -Ort transportiert werden sollen, sondern es geht um die kostenminimale -Zuordnung von z.~B.~Personen, oder Bau-Materialien auf bestimmte -Orte, Stellen oder Aufgaben. -Dabei sind alle Angebots- und Bedarfsmenge gleich 1 -\begin{equation} -a_{i}=b_{j}=1 -\end{equation} +Eine Permutation ist eine Anordnung von Objekten in einer bestimmten Reihenfolge oder eine Umordnung von Objekten aus einer vorgegebenen Reihung. Ist eine maximale Zuordnung (maximales Matching) gefunden, so steht in jeder Zeile und jeder Spalte der Matrix genau ein Element, das zur optimalen Lösung gehört, eine solche Gruppe von Positionen wird auch als Transversale der Matrix bezeichnet. -\subsection{Zuordnungsproblem in Netzwerkdarstellung -\label{munkres:subsection:bonorum}} - -\begin{figure} -\centering -\includegraphics[width=5cm]{papers/munkres/figures/Netzwerkdarstellung} -\caption{Typische Netzwerkdarstellung eines Zuordnungsproblems.} -\label{munkres:Vr2} -\end{figure} - -\subsection{Matrix Formulierung -\label{munkres:subsection:bonorum}} -In der Matrixformulierung ist eine nicht-negative $n\times n$-Matrix -gegeben, wobei das Element in der $i$-ten Zeile und $j$-ten Spalte -die Kosten für die Zuweisung des $j$-ten Jobs an den $i$-ten Arbeiter -darstellt. -Wir müssen eine Zuordnung der Jobs zu den Arbeitern finden, so dass -jeder Job einem Arbeiter zugewiesen wird und jeder Arbeiter einen -Job zugewiesen bekommt, so dass die Gesamtkosten der Zuordnung -minimal sind. -Dies kann als Permutation der Zeilen und Spalten einer Kostenmatrix -$C$ ausgedrückt werden, um die Spur einer Matrix zu minimieren: -\begin{equation} -\min(L,R)Tr (LCR) -\end{equation} -wobei $L$ und $R$ Permutationsmatrizen sind. -Wenn das Ziel ist, die Zuordnung zu finden, die die maximalen Kosten -ergibt, kann das Problem durch Negieren der Kostenmatrix $C$ gelöst -werden. - -\subsection{Suche der optimalen Lösung -\label{munkres:subsection:bonorum}} -Ist eine maximale Zuordnung (maximales Matching) gefunden, so steht -in jeder Zeile und jeder Spalte der Matrix genau ein Element, das -zur optimalen Lösung gehört, eine solche Gruppe von Positionen wird -auch als Transversale der Matrix bezeichnet. -Deshalb kann die Problemstellung auch anders formuliert werden: Man -ordne die Zeilen- oder die Spaltenvektoren so um, dass die Summe -der Elemente in der Hauptdiagonale maximal wird. -Hieraus wird sofort ersichtlich, dass es in einer -$n\times n$-Matrix genau so viele Möglichkeiten gibt, die Zeilen- -bzw.~Spaltenvektoren zu ordnen, wie es Permutationen von $n$ Elementen -gibt, also $n!$. -Außer bei kleinen Matrizen ist es nahezu aussichtslos, die optimale -Lösung durch Berechnung aller Möglichkeiten zu finden. -Schon bei einer $10\times 10$-Matrix gibt es nahezu 3,63 Millionen (3.628.800) -zu berücksichtigender Permutationen. - -\subsection{Formulierung Bipartiter Graph -\label{munkres:subsection:bonorum}} -Der Algorithmus ist einfacher zu beschreiben, wenn wir das Problem -anhand eines bipartiten Graphen formulieren. -Wir haben einen vollständigen zweistufigen Graphen $G=(S,T;E)$ mit -$n$ Arbeiter-Eckpunkten ($S$) und $n$ Job-Scheitelpunkte ($T$), und -jede Kante hat einen nichtnegativen Preis $c(i,j)$. -Wir wollen ein perfektes Matching mit minimalen Gesamtkosten finden. - -\begin{figure} -\centering -\includegraphics[width=5cm]{papers/munkres/figures/bipartiter_graph} -\caption{$K_{3,3}$ vollständig bipartiter Graph mit 3 Knoten pro Teilmenge.} -\label{munkres:Vr2} -\end{figure} +Die Problemstellung kann auch so formuliert werden, dass man die Zeilen- oder die Spaltenvektoren so umordnet soll, dass die Summe der Elemente in der Hauptdiagonale maximal wird. Hieraus wird sofort ersichtlich, dass es in einer n×n-Matrix genau so viele Möglichkeiten gibt, die Zeilen- bzw. Spaltenvektoren zu ordnen, wie es Permutationen von n Elementen gibt, also n!. Außer bei kleinen Matrizen ist es nahezu aussichtslos, die optimale Lösung durch Berechnung aller Möglichkeiten zu finden. Schon bei einer 10×10-Matrix gibt es nahezu 3,63 Millionen (3.628.800) zu berücksichtigender Permutationen. diff --git a/buch/papers/munkres/teil3.tex b/buch/papers/munkres/teil3.tex index 806cd83..cd47c92 100644 --- a/buch/papers/munkres/teil3.tex +++ b/buch/papers/munkres/teil3.tex @@ -3,102 +3,44 @@ % % (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil % -\section{Der Algorithmus in Form von bipartiten Graphen +\section{Der Munkres-Algorithmus (Ungarische Methode) \label{munkres:section:teil3}} -\rhead{Der Algorithmus in Form von bipartiten Graphen} -Mit der ungarischen Methode können also lineare Optimierungsprobleme -gelöst werden, die bei gewichteten Zuordnungen in bipartiten Graphen -entstehen. +\rhead{Der Munkres-Algorithmus (Ungarische Methode)} -Mit ihr kann die eindeutige Zuordnung von Objekten aus zwei Gruppen -so optimiert werden, dass die Gesamtkosten minimiert werden bzw.~der -Gesamtgewinn maximiert werden kann. +Mit der ungarischen Methode können also lineare Optimierungsprobleme gelöst +werden, die bei gewichteten Zuordnungen in bipartiten Graphen entstehen. +Mit ihr kann die eindeutige Zuordnung von Objekten aus zwei Gruppen so +optimiert werden, dass die Gesamtkosten minimiert werden bzw.~der +Gesamtgewinn maximiert werden kann. -Ein bipartiter Graph ist ein mathematisches Modell für Beziehungen -zwischen den Elementen zweier Mengen. -Es eignet sich sehr gut zur Untersuchung von Zuordnungsproblemen» - -\subsection{Beweis, dass der Algorithmus Fortschritte macht +\subsection{Geschichte \label{munkres:subsection:malorum}} -Wir müssen zeigen, dass der Algorithmus, solange das Matching nicht -die maximal mögliche Größe hat, immer in der Lage ist, Fortschritte -zu machen --- das heißt, entweder die Anzahl der übereinstimmenden -Kanten zu erhöhen oder mindestens eine Kante zu straffen. -Es genügt zu zeigen, dass bei jedem Schritt mindestens eine der -folgenden Bedingungen erfüllt ist: - -\begin{itemize} -\item -$M$ die maximal mögliche Größe. -\item -$Gy$ enthält einen Erweiterungspfad. -\item -$G$ enthält einen losen Pfad: einen Pfad von einem Knoten in $Rs$ -zu einem Knoten in $T$ / $Z$ die aus einer beliebigen Anzahl von -festen Kanten, gefolgt von einer einzelnen losen Kante, besteht. -Die freie Kante einer freien Bahn ist also $Z$ (beinhaltet $T$), -so garantiert es, dass Delta gut definiert ist. -\end{itemize} -Wenn $M$ die maximal mögliche Größe hat, sind wir natürlich fertig. -Andernfalls muss es nach Berges Lemma im zugrundeliegenden Graphen -$G$ einen Augmentierungspfad $P$ in Bezug auf $M$ geben. -Dieser Pfad darf jedoch nicht in $G_y$ existieren: Obwohl jede -geradzahlige Kante in $P$ durch die Definition von $M$ fest ist, -können ungeradzahlige Kanten lose sein und in $G_y$ fehlen. -Ein Endpunkt von $P$ liegt in $R_{S}$, der andere in $R_T$; w.l.o.g., -nehmen Sie an, es beginnt in $R_{S}$. -Wenn jede Kante von $P$ dicht ist, dann bleibt sie ein augmentierender -Pfad in $G_y$ und wir sind fertig. -Andernfalls sei $uv$ die erste lose Kante auf $P$. -Wenn $v$ kein Element von $Z$ ist, dann haben wir einen losen Pfad -gefunden und sind fertig. -Andernfalls ist $v$ von irgendeinem anderen Pfad $Q$ aus festen -Kanten von einem Knoten in $R_{S}$ erreichbar. -Sei $P_{v}$ der Teilpfad von $P$, der bei $v$ beginnt und bis zum -Ende reicht, und sei $P'$ der Pfad, der gebildet wird, indem man -entlang $Q$ gebildet wird, bis ein Scheitelpunkt auf $P_{v}$ erreicht -wird, und dann weiter bis zum Ende von $P_{v}$. -Beachten Sie, dass $P'$ ein erweiternder Pfad in $G$ mit mindestens -einer losen Kante weniger als $P$ ist. -$P$ kann durch $P'$ ersetzt und dieser Argumentationsprozess iteriert -werden (formal, unter Verwendung von Induktion auf die Anzahl der -losen Kanten), bis entweder ein erweiternder Pfad in $G_y$ oder ein -losender Pfad in $G$ gefunden wird. +Die Ungarische Methode wurde 1955 von Harold Kuhn entwickelt und veröffentlicht. +Der Name ``Ungarische Methode'' ergab sich, weil der Algorithmus +weitestgehend auf den früheren Arbeiten zweier ungarischer Mathematiker +basierte: Dénes Kőnig und Jenő Egerváry. +James Munkres überprüfte den Algorithmus im Jahr 1957 und stellte fest, +dass der Algorithmus (stark) polynomiell ist. +Seitdem ist der Algorithmus auch als Kuhn-Munkres oder +Munkres-Zuordnungsalgorithmus bekannt. +Die Zeitkomplexität des ursprünglichen Algorithmus war $O(n^4)$, +später wurde zudem festgestellt, dass er modifiziert werden kann, +um eine $O(n^3)$-Laufzeit zu erreichen. -\subsection{Beweis, dass die Anpassung des Potentials $y$ $M$ unverändert lässt +\subsection{Besondere Leistung der Ungarischen Methode \label{munkres:subsection:malorum}} -Um zu zeigen, dass jede Kante in $M$ nach der Anpassung von $y$ -erhalten bleibt, genügt es zu zeigen, dass für eine beliebige Kante -in $M$ entweder beide Endpunkte oder keiner von ihnen in $Z$ liegen. -Zu diesem Zweck sei $vu$ eine Kante in $M$ von $T$ nach $S$. -Es ist leicht zu sehen, dass wenn $v$ in $Z$ ist, dann muss auch -$u$ in $Z$ sein, da jede Kante in $M$ dicht ist. -Nehmen wir nun an, dass $u$ kein Element von $Z$ und auch $v$ kein -Element von $Z$ ist. -$u$ selbst kann nicht in $R_{S}$ sein, da es der Endpunkt einer -angepassten Kante ist, also muss es einen gerichteten Pfad von engen -Kanten von einem Knoten in $R_{S}$ zu $u$ geben. -Dieser Pfad muss $v$ vermeiden, da es per Annahme nicht in $Z$ ist, -also ist der Knoten, der $u$ in diesem Pfad unmittelbar vorausgeht, -ein anderer Knoten $v$ (ein Element von $T$) und $v$ ein Element -von $u$ ist eine enge Kante von $T$ nach $S$ und ist somit in $M$. -Aber dann enthält $M$ zwei Kanten, die den Knoten $u$ teilen, was -der Tatsache widerspricht, dass $M$ ein Matching ist. -Jede Kante in $M$ hat also entweder beide Endpunkte oder keinen -Endpunkt in $Z$. +Es ist ein kombinatorischer Optimierungsalgorithmus, der das Zuordnungsproblem +in polynomieller Zeit löst. +Der Begriff polynomielle Laufzeit bedeutet, dass die Laufzeit des Programms +wie $n^2$, $n^3$, $n^4$, etc.~wächst und vernünftig skaliert. + -\subsection{Beweis, dass $y$ ein Potential bleibt +\subsection{Beispiel eines händischen Verfahrens \label{munkres:subsection:malorum}} -Um zu zeigen, dass y nach der Anpassung ein Potenzial bleibt, genügt -es zu zeigen, dass keine Kante ihr Gesamtpotenzial über ihre Kosten -hinaus erhöht. -Dies ist für Kanten in $M$ bereits durch den vorangegangenen Absatz -bewiesen. -Man betrachtet also eine beliebige Kante $uv$ von $S$ nach $T$. -Wenn $y(u)$ erhöht wird um $\Delta$, dann wird entweder $v\in -\mathbb{Z}_n$ in diesem Fall wird $y(v)$ verringert um $\Delta$, -wobei das Gesamtpotenzial der Kante unverändert bleibt, oder $v\in -T\setminus Z$, wobei die Definition von $\Delta$ garantiert, dass -$y(u)+y(v)+\Delta \le c(u,v)$ -Also $y$ bleibt ein Potential. +\begin{figure} +\centering +\includegraphics[width=14cm]{papers/munkres/figures/beispiel_munkres} +\caption{Händisches Beispiel des Munkres Algorithmus.} +\label{munkres:Vr2} +\end{figure} diff --git a/buch/papers/munkres/teil4.tex b/buch/papers/munkres/teil4.tex index 3d76743..9a27227 100644 --- a/buch/papers/munkres/teil4.tex +++ b/buch/papers/munkres/teil4.tex @@ -3,34 +3,7 @@ % % (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil % -\section{Matrix-Interpretation +\section{- \label{munkres:section:teil4}} -\rhead{Matrix-Interpretation} -Gegeben ist die quadratische Matrix $C=(c_{ij})$ der Grösse $n\times n$. -Ohne Beschränkung der Allgemeinheit werden eine Zuordnung $j -\rightarrow s_j$, $j = 1, \dots, n$ mit minimaler Gesamtsumme -$\sum_{j=1}^{n}c_{s_j,j}$ gesucht, wobei die $s_j$ eine Permutation -von $\{1,\ldots ,n\}$ sind. -Soll die Summe maximiert werden, dann kann $C$ durch $-C$ ersetzt werden. -Die Grundlage dieses Verfahrens ist, dass sich die optimale Zuordnung -unter bestimmten Änderungen der Matrix nicht ändert, sondern nur -der Optimalwert. -Diese Änderungen sind durch Knotenpotentiale bzw.~duale Variablen -\begin{equation} -u_1 u_2,{\dots}, u_n -\end{equation} +\rhead{-} -für die Zeilen und - -\begin{equation}v_1,v_2,\dots,v_n \end{equation} fuer die Spalten angegeben. -Die modifizierte Matrix hat dann die Komponenten $\tilde{c}_{i,j} -= c_{ij} - u_j - v_j$. - -In der Summe über jede kantenmaximale Zuordnung kommt jedes -Knotenpotential genau einmal vor, so dass die Änderung der Zielfunktion -eine Konstante ist. -Sind die Einträge von $C$ nichtnegativ, und sind alle Knotenpotentiale -ebenfalls nichtnegativ, so nennt man die modifizierte Matrix \~{C} -auch eine Reduktion. -Ziel ist, in der reduzierten Matrix möglichst viele Komponenten auf -den Wert Null zu bringen und unter diesen die Zuordnung zu konstruieren. diff --git a/buch/papers/munkres/teil5.tex b/buch/papers/munkres/teil5.tex index f8138f4..b938c50 100644 --- a/buch/papers/munkres/teil5.tex +++ b/buch/papers/munkres/teil5.tex @@ -3,12 +3,6 @@ % % (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil % -\section{Ungarische Methode anhand eines Beispiels +\section{- \label{munkres:section:teil5}} -\rhead{Ungarische Methode anhand eines Beispiels} -\begin{figure} -\centering -\includegraphics[width=14cm]{papers/munkres/figures/beispiel_munkres} -\caption{Händisches Beispiel des Munkres Algorithmus.} -\label{munkres:Vr2} -\end{figure} +\rhead{-} |