diff --git a/2020_Heiratssatz.tex b/2020_Heiratssatz.tex index 6b79953..5984dc8 100644 --- a/2020_Heiratssatz.tex +++ b/2020_Heiratssatz.tex @@ -1,18 +1,20 @@ -\documentclass[10pt,ngerman,a4paper, fancyfoot, git]{mkessler-script} +\documentclass{article} -\course{} -\lecturer{} -\author{} +\title{Graphentheorie und der Heiratssatz} +\author{Maximilian Keßler} \usepackage{heiratssatz} \begin{document} \maketitle -\cleardoublepage -\tableofcontents -\cleardoublepage +\section{Graphen} + +\input{inputs/graphen} + +\section{Der Heiratssatz} +\input{inputs/heiratssatz} \end{document} diff --git a/heiratssatz.sty b/heiratssatz.sty index 7099581..cdade48 100644 --- a/heiratssatz.sty +++ b/heiratssatz.sty @@ -1 +1,15 @@ \ProvidesPackage{heiratssatz}[2022/02/10 - Style file for notes of ] + +\usepackage{mkessler-math} +\usepackage{mkessler-unicodechar} +\usepackage{mkessler-enumerate} +\usepackage{mkessler-faktor} +\usepackage{mkessler-hypersetup} +\usepackage{fancythm} + +\usepackage[utf8]{inputenc} +\usepackage[ngerman]{babel} +\usepackage[T1]{fontenc} + +\newcommand{\gkl}[1]{\left\{ #1 \right\}} +\newcommand{\kl}[1]{\left( #1 \right) } diff --git a/inputs/graphen.tex b/inputs/graphen.tex new file mode 100644 index 0000000..b74c4ad --- /dev/null +++ b/inputs/graphen.tex @@ -0,0 +1,24 @@ +\begin{definition} + Ein \textit{Graph} ist ein Paar (V,E) von Ecken (Vertices) und Kanten (Edges), wobei Kanten zwischen zwei Ecken verlaufen. +\end{definition} + +\begin{definition} + Ein Graph heißt \textit{bipartit}, wenn wir $V = V_1 \sqcup V_2$ als disjunkte Vereinigung zweier Knotenmengen schreiben können, sodass die Teilgraphen auf $V_1$ und $V_2$ jeweils keine Kanten besitzen. +\end{definition} + +\begin{definition} + Ein Weg in einem Graphen $G=(V,E)$ ist eine Folge von Knoten $V_1,\ldots,V_n$ sodass es für $1\leq i\leq n-1$ jeweils eine Kante zwischen $V_i$ und $V_{i+1}$ gibt. Ein Weg mit $V_1=V_n$ heißt auch \textit{Kreis}. +\end{definition} + +\begin{definition} + Ein Graph ist zusammenhängend, wenn es für je zwei Knoten $v_1,v_2$ einen Weg von $v_1$ nach $v_2$ gibt. Für einen Knoten $v\in V$ ist die Zusammenhangskomponenten von $v$ die Menge aller Knoten, die von $v$ durch Wege erreichbar sind. Jeder Graph zerfällt auf diese Weise in Zusammenhangskomponenten. +\end{definition} + +\begin{lemma} + Ein Graph ist bipartit, genau dann, wenn er keine Zyklen ungerader Länge enthält. +\end{lemma} + +\begin{proof} + Ist der Graph bipartit und sei ein Zyklus gegeben, so wechseln wir mit jeder Kante die 'Hälfte', wir können also nur nach gerade vielen Kanten wieder am Ausgangspunkt sein, und somit ist jeder Zyklus gerade. \\ + Sei nun $G$ ein Graph, der nur gerade Zyklen enthält. OBdA sei $G$ zusammenhängend, wir wählen $v_0$ und setzen $v_0 \in A$. Für einen Knoten $v$ betrachte einen Weg von $v_0$ nach $v$, hat dieser gerade Länge, definiren $v\in A$, hat dieser ungerade Länge, definiere $v\in B$. Dies ist wohldefiniert, da sonst weg von $v_0$ nach $v$ mit ungerader und gerader Parität existiert, also zusammen ungerader Zyklus. Damit sind die Teilmengen $A,B$ definiert. Angenommen, es gibt nun eine Kante in $A$ von $v_1$ nach $v_2$, so betrachte Wege von $v_0$ nach $v_1,v_2$ mit jeweils gerader Länge, dann ist aber $v_0\ldots v_1 - v_2 \ldots v_0$ ungerader Zyklus. Analoge Argumentation für $B$. Also ist der Graph mit den konstruierten Mengen $A,B$ bipartit. +\end{proof} diff --git a/inputs/heiratssatz.tex b/inputs/heiratssatz.tex new file mode 100644 index 0000000..15d4202 --- /dev/null +++ b/inputs/heiratssatz.tex @@ -0,0 +1,36 @@ +Man stelle sich vor, wir haben eine Menge $M$ von Männern und eine Menge $F$ von Frauen, die wir verheiraten wollen. Jeder Mann gibt zudem an, welche Frauen er möglicherweise heiraten wollen würde. Wann ist es möglich, die Männer mit den Frauen zu verheiraten, sodass jeder Mann eine seiner Wunschfrauen bekommt, und natürlich keine Frau doppelt verheiratet wird?\\ +Wir können dies graphentheoretisch formulieren, indem wir einen bipartiten Graphen zeichenn, deren Hälften die Männer und Frauen sind, wobei wir einen Knoten zwischen einem Mann und einer Frau zeichen, wenn der Mann diese Frau potenziell heiraten will. 'Zu verheiraten' heißt hier also, eine Menge von Kanten auszuwählen, sodass jeder Mann eine entsprechende Kante hat, und jede Frau höchstens eine. \\ +Man kann nun mehr oder weniger offensichtliche Bedingungen feststellen, die gelten müssen, hierzu zählen: +\begin{itemize} + \item Jeder Mann sollte mindestens eine Frau mögen. + \item Es sollte mindestens so viele Frauen wie Männer geben + \item Wenn zwei Männer jeweils nur eine Frau mögen, so darf dies nicht die gleich sein. +\end{itemize} +Nach einer Weil könnte man auch auf folgendes kommen: +\begin{itemize} + \item Für Jede Teilmenge $N\subset M$ von (manchen) Männern, muss es mindestens $\abs{N} $ viele Frauen geben, die von einem dieser Männer gemocht wird. Nehmen wir nämlich an, dass wir die Männer verheiraten können, so sind dies (mindestens) die $\abs{N} $ vielen Partnerinnen der Männer. +\end{itemize} +Diese Bedingung nennt man auch Halls Heiratsbedingung, benannt nach Paul Hall, der diesen Sachverhalt das erste Mal untersuchte. Das überraschende ist nun, dass diese Bedingung bereits ausreicht: +\begin{thm}[Hall, 1935] + Gegeben sei ein bipartiter Graph mit den Knotenmengen $M$ und $F$. Dann gibt es ein vollständiges Matching von den Männern (in die Frauen) genau dann, wenn für jede Teilmenge $M'\subset M$ gilt, dass $\abs{M'} \leq \abs{N(M')} $. +\end{thm} +\begin{remark} + Wir bezeichnen hierbei mit $N(M')$ die Nachbarschaft der Knotenmenge $M'$, also alle Knoten, die von $M'$ mit genau einer Kante erreichbar sind (in unserem fall genau die Frauen). +\end{remark} +\begin{proof} + Starke Induktion nach der Anzahl der Männer. Für $n=1$ gibt es nichts zu zeigen. Betrachte nun $n+1$ Männer $m_1,\ldots m_{n+1}$ und setze $M= \left\{m_1,\ldots,m_n\right\} $. Wir wollen 2 Fälle unterscheiden: + \begin{itemize} + \item \textbf{Fall 1}: Die Hall-Bedingung ist für Teilmengen von $M$ immer 'lasch' (nicht scharf), d.h. für jede Teilmenge $M'\subset M$ gilt $\abs{N(M')} \geq \abs{M'}+1 $ . \\ + Dann verheiraten wir $m_{n+1}$ mit einer seiner Wunschpartnerinnen und stellen fest, dass nach Induktion die Menge $M$ die Hall-Bedingung (auch mit der fehlenden Frau) immer noch erfüllt, Induktion liefert uns ein Matching. + \item \textbf{Fall 2}: Dies ist nicht der Fall, d.h. es gibt eine Teilmenge $M'\subset M$, sodass $\abs{ N(M')} = \abs{M'} $ ist. Dann verheiraten wir zunächst mittels Induktion die Männer aus $M'$. Es bleibt zu überprüfen, dass die Hall-Bedingung nun noch für alle Teilmengen von $M\setminus M'$ gilt, wobei bereits verheiratete Frauen nicht mehr zur Nachbarschaft zählen. Nehmen wir also an, es gibt eine Menge von $k$ Männern, die nicht aus $M'$ sind, sodass es $x