notes/school/di-ma/20181204_2-matching.md
Valentin Brandl 537045dd1e
All checks were successful
the build was successful
Add dima notes
2019-01-31 19:08:19 +01:00

1.9 KiB

title date
Matching 2018-12-04

Beispiele

i) verschiedene Jobs und Bewerber \widehat{=} Knoten. Kanten zwischen Job und Bewerber, falls Bewerber geeignet ist für Job.

Ziel: Jedem Job einen Bewerber zuordnen

![Beispiel Matching](20181204_2-matching.png)

i) Statt Jobs haben wir Rechentasks und statt Bewerbern haben wir Rechner. Kanten zwischen Task und Rechner falls Rechner die nötigen Ressourcen hat, um Task auszuführen

i) Heiraten. Kanten zwischen Personen, falls sie sich heiraten wollen. Ziel: alle sollen heiraten

Bemerkung: Fall i) und ii) entsprechen bipartiten Graphen.

Definition (Matching)

Sei G=(V,E) ein Graph und M \subseteq E

i) M heißt Matching, falls $$ \forall e_1,e_2 \in M : e_1 \cap e_2 = \emptyset

i) Ein Knoten v \in V heißt überdeckt von M, falls \exists e\in M:v\in e

i) Matching M heißt perfekt, falls alle Knoten überdeckt sind, d.h. |M|=\frac{|V|}{2}. Wenn |V| = 2y + 1 (|V| ist ungerade), gibt es kein perfektes Matching

Frage: Kann man effizient maximale Matchings finden?

Zumindest für bipartite Graphen, ja!

Notation

Sei G=(V,E) Graph und X \subseteq V. Dann sei


\Gamma(X) = \bigcup\limits_{a\in X} \Gamma(a)

Satz (Hall, Heiratssatz)

Sei G=(A\biguplus B, E) ein bipartiter Graph. G enthält ein Matching $M \subseteq E$ mit |M| = |A|, genau dann, wenn


\forall X \subseteq A : |\Gamma(X)| \geq |X|

Bemerkung

  • Falls Bedingung erfüllt, folgt |B| \geq |A|, denn \Gamma(A) \subseteq B
  • Falls |A| = |B|, dann ist das Matching perfekt.

Beweis

"$\Rightarrow$" sei M ein Matching mit |M| = |A| und X \subseteq A. Betrachten der Teilgraph G'=(A\bigcup B, M). Dann gilt $| \Gamma(X) | = | X |$ in G', da M Matching und damit gilt |\Gamma(X)| \geq |X| in G, da in G nur neue Nachbarn hinzu kommen können.