Klassischer Gale-Shapley-Algorithmus

David Gale und Lloyd S. Shapley entwickelten 1962 den Deferred Acceptance Algorithm, der später als der Gale-Shapley-Algorithmus bekannt wurde.

Der klassische GS findet eine Lösung für das Stable Marriage-Problem. Als Stable Marriage-Problem bezeichnet man die Suche nach einem stabilen Matching zwischen zwei gleich großen zueinander disjunkten Mengen. Dabei darf jedem Knoten maximal ein Matchingpartner zugeordnet werden: es handelt sich also nicht um ein b-Matching. Außerdem sind die Präferenzlisten vollständig und dürfen keine Indifferenzen beinhalten.

Der erweiterte GS kann für die Lösung des School-Choice-Problems verwendet werden. Ein Vorteil dieses Algorithmus ist, dass er garantiert, dass das resultierende Matching stabil ist. Aus diesem Grund wird er für seine Fairness geschätzt. Allerdings erfüllt er dafür in der Regel weniger Erstwünsche als rangmaximale Algorithmen (z.B. Boston-Algorithmus).

Gale und Shapley haben sich mit dem Stable Marriage-Problem ursprünglich im Kontext von Partnerzuteilungen zwischen Frauen und Männern beschäftigt. Aus diesem Grund verwenden wir im Folgenden die entsprechenden Bezeichnungen.

Eingabe:

  • Ein vollständiger bipartiter Graph G=(U ˙ W,E)G = (U ~\dot{\cup}~ W, E), wobei UU die Menge der Männer und WW die Menge der Frauen darstellt und E=U×WE = U \times W gilt
  • Für jeden Knoten mm in UU gibt es eine vollständige und strikte Präferenzliste m\succ_{m} über WW
  • Für jeden Knoten ww in WW gibt es eine vollständige und strikte Präferenzliste w\succ_{w} über UU

Ausgabe:

  • Ein stabiles Matching MM in GG

Der Gale-Shapley-Algorithmus löst das Stable Marriage-Problem und wird im folgenden Abschnitt analysiert. Zuerst wird der Algorithmus als Pseudocode beschrieben und darauffolgend einige Eigenschaften bewiesen.

Pseudocode

$M \leftarrow \emptyset $
$\mathbf{while}$ $\exists \: m$ für den gilt $M(m) = \emptyset$ $\mathbf{do}$
$\quad$ $m$ macht seiner favorisierten Frau $w$ einen Antrag.
$\quad\quad$ $\mathbf{if}$ $\nexists \: \tilde{m}\in U$, sodass $M(\tilde{m}) = w$ $\mathbf{then}$
$\quad\quad\quad$ $M \leftarrow$ $M \cup \{ \{m,w \}\}$
$\quad\quad$ $\mathbf{else}$
$\quad\quad\quad$ $\mathbf{if}$ $m \succ_{w} \tilde{m}$ $\mathbf{then}$
$\quad\quad\quad\quad$ $M \leftarrow$ $M \setminus \{ \{\tilde{m},w \} \} $
$\quad\quad\quad\quad$ Streiche $w$ aus $\succ_{\tilde{m}}$.
$\quad\quad\quad\quad$ $M \leftarrow$ $M \cup \{ \{ m,w \} \} $
$\quad\quad\quad$ $\mathbf{else}$
$\quad\quad\quad\quad$ Streiche $w$ aus $\succ_{m}$.
$\mathbf{return}$ $M$

Der Ausdruck M(v)M(v) gibt für einen Knoten vU ˙ Wv \in U ~\dot{\cup}~ W den zugeordneten Partner an.

  • Zeile 11: Das Matching MM wird mit der leeren Menge initialisiert.
  • Zeile 22: Solange es einen nicht verlobten Mann mUm \in U gibt führe Folgendes aus.
  • Zeile 33: Ein solcher beliebiger Mann mm (Reihenfolge nicht vorgegeben) macht seiner favorisierten Frau wWw\in W (höchste Position auf m\succ_{m}) einen Antrag.
  • Zeile 464-6: Seine favorisierte Frau ww nimmt den Antrag an, falls sie noch nicht mit einem Mann m~U\tilde{m} \in U verlobt ist.
  • Zeile 7107-10: Falls ww mit m~\tilde{m} verlobt ist, vergleicht sie diesen mit dem Antragsteller. Die Frau ww hebt ihre Verlobung auf, um sich mit dem Antragsteller mm zu verloben, sofern sie mm gemäß ihren Präferenzen w~\succ_{\tilde{w}} vorzieht. Falls ww die Verlobung mit m~\tilde{m} auflöst, streicht der Sitzengelassene m~\tilde{m} seine ehemalig Verlobte ww von seiner Präferenzliste.
  • Zeile 111211-12: Falls sich eine Frau ww durch eine Auflösung nicht verbessern würde, wird der Antrag von m abgelehnt und dieser streicht die Antragsempfängerin ww von seiner Präferenzliste.
  • Zeile 1313: Gib das Matching MM aus, wenn jeder Mann verlobt ist.

Beispiel

Unten erkennt man eine Instanz des Stable Marriage-Problems. Die Männer werden über die Knotenmenge UU = {Amir,\{Amir, Paul,Paul, Noah,Noah, Dimitri,Dimitri, Felix}Felix \} und die Frauen über die Knotenmenge WW = {Marianne,\{Marianne, Leonie,Leonie, Annette,Annette, Emilia,Emilia, Mia}Mia\} dargestellt. Die zur Person dazugehörige Präferenzliste ist links bzw. rechts von dem dazugehörigen Knoten zu finden. In den Präferenzlisten werden die Personen über die ersten beiden Anfangsbuchstaben codiert. Die Präferenzliste von Amir sagt z.B. aus, dass er Leonie gegenüber Marianne, Marianne gegenüber Mia, Mia gegenüber Annette und Annette gegenüber Emilia bevorzugt. Initial ist kein Mann mit einer Frau verlobt.

Während der Durchführung des Algorithmus stellen schwarze Kanten vorläufige Paare zwischen Männern und Frauen dar. Die schwarz und rot gestrichelten Kanten werden bei Konkurrenzsituationen zwischen zwei Männern genutzt. Der antragsstellende Mann ist in einer solchen Situation inzident zu der rot gestrichelten Kante.

Eigenschaften des Algorithmus

Stabilität

Satz

Der Gale-Shapley-Algorithmus findet ein stabiles Matching.

Mann-Optimalität

Definition

Ein Paar {m,w}\{m,w\} heißt zulässig, wenn es ein stabiles Matching MM mit {m,w}M\{m,w\} \in M gibt.

Ein Mann oder eine Frau in einem zulässigen Paar heißt zulässiger Mann oder zulässige Frau.

Satz

Der Gale-Shapley-Algorithmus liefert ein mann-optimales Matching.

Satz

Der Gale-Shapley-Algorithmus weist jeder Frau den für sie schlechtesten zulässigen Partner zu.

Kardinalitätsmaximalität

Satz

Der Gale-Shapley-Algorithmus findet bei strikten und vollständigen Präferenzlisten ein kardinalitätsmaximales Matching.

Pareto-Effizienz

Satz

Der Gale-Shapley-Algorithmus findet im Allgemeinen kein männerseitig pareto-effizientes Matching.

Rangmaximalität

Satz

Der Gale-Shapley-Algorithmus findet im Allgemeinen kein männerseitig rangmaximales Matching.

Strategiesicherheit

Satz

Der Gale-Shapley-Algorithmus ist im Allgemeinen nicht strategiesicher.



Erweiterter Gale-Shapley-Algorithmus

Wir behandelten in den vorherigen Probleminstanzen Situationen, in denen sowohl Männer als auch Frauen immer strikte und vollständige Präferenzlisten besaßen. Jedoch trifft man in der Realität häufig auf Situationen, in denen Männer und/oder Frauen die gegenüberliegende Seite nicht komplett einschätzen möchten oder können, was an ethischen Gründen oder Gründen, die den verursachenden Informationsaufwand betreffen, liegen könnte. Beispielsweise erzeugt das Erstellen von strikten Präferenzlisten über alle möglichen Partner einen hohen Aufwand, da man sich über alle möglichen Partner informieren muss. Hier wäre es möglicherweise einfacher, Partner in bestimmte Kategorien einzustufen und und diese Kategorien in eine Reihenfolge zu bringen. In solchen Kategorien fasst man Partner zusammen, für die man indifferent ist.

Wenn man solche Indifferenzen in dem Stable Marriage-Problem zulässt, dann erhält man das Stable Marriage Problem with Ties. Falls man die Annahmen noch weiter lockert und verkürzte Präferenzlisten zulässt, erhält man das Stable Marriage Problem with Ties and Incomplete Preferences.

Irving veröffentlichte 1994 eine Abhandlung, in der das Stable Marriage Problem with Ties thematisiert wurde.irv1994 In dieser Abhandlung teilte er das Konzept der Stabilität, in drei unterschiedlich starke Kategorien der Stabilität auf: Schwach-, Stark- und Super-Stabilität.

Irving stellt unter Anderem einen Algorithmus vor, welcher ein schwach-stabiles Matching findet, falls eines existiert. Im Folgenden wird dieser beschrieben.

Eingabe:

  • Ein bipartiter Graph G=(U˙W,E)G = (U \dot{\cup} W, E), wobei UU die Menge der Männer und WW die Menge der Frauen darstellt und EU×WE \subseteq U \times W gilt
  • Für jeden Knoten mm in UU gibt es eine Präferenzliste mit Indifferenzen m\succ_{m} über WW
  • Für jeden Knoten ww in WW gibt es eine Präferenzliste mit Indifferenzen w\succ_{w} über UU

Ausgabe:

  • Ein schwach-stabiles Matching in GG

Pseudocode

$M \leftarrow \emptyset $
$\mathbf{while}$ $\exists \: m$ für den gilt $M(m) = \emptyset$ und $\succ_{m}$ ist nicht leer $\mathbf{do}$
$\quad$ Mann $m$ macht seiner favorisierten Frau $w$ einen Antrag.
$\quad$ $M \leftarrow$ $M \cup \{ \{ m,w \} \}$
$\quad$ $\mathbf{if}$ $\exists \: \tilde{m}\in U : M(\tilde{m}) = w$ $\mathbf{then}$
$\quad\quad$ $M \leftarrow$ $M \setminus \{ \{ \tilde{m},w \} \} $
$\quad$ $\mathbf{for\text{ }each}$ $\hat{m} \in U$, für den gilt $m \succ_{w} \hat{m} $ $\mathbf{do}$
$\quad\quad$ Entferne $w$ aus $\succ_{\hat{m}}$.
$\mathbf{return}$ $M$
  • Zeile 11: Das Matching MM wird mit \emptyset initialisiert.
  • Zeile 22: Folgendes wird solange wiederholt bis jeder Mann mit einer nicht leeren Präferenzliste verlobt ist.
  • Zeile 33: Ein beliebiger Mann mm, der noch nicht verlobt ist und eine nicht leere Präferenzliste hat, macht seiner favorisierten Frau ww einen Antrag.
  • Zeile 464-6: Die Frau ww nimmt in jedem Fall den Antrag an und löst, falls vorhanden, eine bestehende Verlobung mit einem anderen Mann m~\tilde{m} auf.
  • Zeile 787-8: Danach streichen alle Nachfolger von mm gemäß der Präferenzliste von ww die Frau ww von ihren Präferenzlisten.
  • Zeile 99: Falls jeder Mann mit einer nicht leeren Präferenzliste verlobt ist, gib das Matching MM aus.

Im Unterschied zum Gale-Shapley-Algorithmus wird unter Umständen nicht jeder Mann seiner favorisierten Frau einen Antrag machen, da diese von seiner Präferenzliste wegen der Zeilen 787-8 gelöscht werden kann. Außerdem wird statt einem stabilen Matching nur ein schwach-stabiles Matching gefunden.

Erweiterter Gale-Shapley School-Choice Algorithmus (EGS-SC)

Im folgenden Abschnitt beschäftigen wir uns mit einer auf das School-Choice-Problem angepassten Version des Gale-Shapley-Algorithmus.kla2020 Mit diesem erweiterten Gale-Shapley School-Choice Algorithmus (EGSSCEGS-SC) findet man in der Eingabe ein schwach-stabiles Matching.

Wie beim Gale-Shapley-Algorithmus machen die Schüler ihren favorisierten Schulen einen Antrag. Jedoch kann eine Schule mehrere Anträge annehmen, weshalb erst ein Vergleich von allen aufgenommenen Schülern mit dem antragsstellenden Schüler gemacht wird, falls die Kapazität an Schulplätzen erschöpft ist.

Der Mechanismus der verzögerten Akzeptanz wird wie folgt realisiert. Eine Schule ss ersetzt einen aufgenommenen Schüler pp mit einem antragsstellenden Schüler pp', wenn die Schule den Schüler pp' gegenüber pp strikt präferiert. Es folgt eine Analyse des EGSSCEGS-SC.

Eingabe:

  • Eine Menge an Schülern PP
  • Eine Menge an Schulen SS
  • Eine Menge an Kapazitäten CC mit einer Kapazität csCc_s \in C für jede Schule sSs \in S
  • Eine Menge an strikten Präferenzlisten p\succ_{p} über eine Teilmenge SS für jeden Schüler pPp \in P
  • Eine Menge an Präferenzlisten mit Indifferenzen s\succ_{s} über eine Teilmenge PP für jede Schule sSs \in S

Ausgabe:

  • Ein schwach-stabiles Matching MM zwischen Schulen und Schülern

Pseudocode

$M \leftarrow \emptyset $
$\mathbf{while}$ $\exists \: p$ für den gilt $M(p)= \emptyset$ und $\succ_{p}$ ist nicht leer $\mathbf{do}$
$\quad$ Schüler $p$ macht seiner favorisierten Schule $s$ einen Antrag.
$\quad$ $\mathbf{if}$ $c_{s} \not= 0$ $\mathbf{then}$
$\quad\quad$ $M \leftarrow M \cup \{ \{p,s\}\}$
$\quad\quad$ $c_{s} = c_{s} - 1$
$\quad$ $\mathbf{else}$
$\quad\quad$ $\mathbf{if}$ $\nexists$ Schüler $\tilde{p}$, der Schule $s$ zugeordnet ist und $p$ $\succ_s$ $\tilde{p}$ gilt $\quad\quad$ $\mathbf{then}$
$\quad\quad\quad$ Streiche $s$ von $\succ_{p}$.
$\quad\quad$ $\mathbf{else}$
$\quad\quad\quad$ $M \leftarrow M \setminus \{ \{ \tilde{p}, s \}\}$
$\quad\quad\quad$ Streiche $s$ von $\succ_{\tilde{p}}$.
$\quad\quad\quad$ $M \leftarrow M \cup \{ \{p,s \}\}$
$\mathbf{return}$ $M$
  • Zeile 11: Das Matching MM wird mit \emptyset initialisiert.
  • Zeile 22: Setze die Kapazität jeder Schule sSs \in S auf ihre Anfangskapazität.
  • Zeile 343-4: Solange es einen nicht zugeordneten Schüler pp gibt dessen Präferenzliste nicht leer ist, macht Schüler pp seiner favorisierten Schule ss einen Antrag.
  • Zeile 575-7: Sofern die Kapazität seiner favorisierten Schule noch nicht ausgeschöpft ist, wird pp an ss aufgenommen.
  • Zeile 898-9: Falls die Kapazität der Schule ausgeschöpft ist, überprüft ss, ob es einen ihr zugeordneten Schüler p~\tilde{p} gibt, den sie strikt weniger bevorzugt als pp, also psp~p \succ_s \tilde{p}.
  • Zeile 1010: Falls es keinen solchen Schüler gibt, wird Schüler pp von Schule ss abgewiesen und streicht ss von seiner Präferenzliste.
  • Zeile 111411-14: Falls es so einen Schüler p~\tilde{p} gibt, verliert p~\tilde{p} seinen Platz an pp. Der Schüler p~\tilde{p} streicht ss von seiner Präferenzliste.
  • Zeile 1515: Wenn es keinen Schüler pp gibt, der keiner Schule zugeordnet ist und dessen Präferenzliste nicht leer ist, gib Matching MM aus.


Eigenschaften des Algorithmus

Mann-optimal

Satz

Der EGSSCEGS-SC liefert im Allgemeinen kein mann-optimales Matching.

Stabilität

Lemma

Es sei II eine Instanz des School-Choice-Problems (SCSC) und MM ein Matching in II. Dann ist MM genau dann schwach-stabil, wenn MM in einer Instanz des School-Choice-Problems ohne Indifferenzen (SCOISC-OI) II', die durch das künstliche Erzeugen einer strikten Ordnung entstanden ist, stabil ist.

Satz

Der EGSSCEGS-SC liefert ein schwach-stabiles Matching.

Kardinalitätsmaximalität

Satz

Der EGSSCEGS-SC liefert im Allgemeinen kein kardinalitätsmaximales Matching.

Weitere Eigenschaften

Da Instanzen des Stable Marriage-Problems Spezialfälle des School-Choice-Problems sind, in der alle Schüler und Schulen vollständige und strikte Präferenzlisten besitzen und zusätzlich alle Schulen eine Kapazität von 11 haben, kann man die in den Beweisen genutzten Instanzen für den Gale-Shapley-Algorithmus auch hier verwenden. Es werden damit folgende Eigenschaften festgestellt.

Korollar

Der EGSSCEGS-SC liefert im Allgemeinen kein schülerseitig pareto-effizientes Matching.

Der EGSSCEGS-SC liefert im Allgemeinen kein schülerseitig rangmaximales Matching.

Der EGSSCEGS-SC ist im Allgemeinen nicht strategiesicher.


  1. [MEG2020]: Megow, N., Vorlesung 11: Stabile Matchings, Operations Research, Universität Bremen, 2020.
  2. [KLO2017]: Kloosterman, A. und Troyan, P., Efficient and Essentially Stable Assignments, University of Virginia, 2017.
  3. [IRV1994]: Irving, Robert W. Stable marriage and indifference. Discrete Applied Mathematics. 43 (3): 261–272.
  4. [KLA2020]: Klause, K. J., Matching mit Präferenzen: Theoretische und Experimentelle Evaluation von Algorithmen zur Schulplatzvergabe, Universität Bremen, 2020.
  5. [MAN2013]: Manlove, D.F., Algorithmics of Matching under Preferences. World Scientific, 2013.