Im Nachfolgenden wird der Top Trading Cycle (TTC) Algorithmus vorgestellt.
Dabei wird dieser zunächst im Kontext der Immobilienwirtschaft eingeführt und anschließend auf das School-Choice-Problem adaptiert.
Abschließend werden Eigenschaften des TTC diskutiert und gegebenenfalls bewiesen.
TTC - Immobilienwirtschaft
Shapley und Scarfsha1974 haben ein Modell für den Häusertausch in der Immobilienwirtschaft entworfen.
In diesem Modell existieren n∈N Agenten und jeder dieser Agenten besitzt genau ein Haus.
Außerdem hat jeder Agent ai eine Präferenzliste Hi über alle Häuser auf dem Markt.
Die Präferenzliste stellt dabei die Vorlieben der Agenten über die einzelnen Häuser in Abhängigkeit zueinander dar.
So ist das am meisten präferierte Haus eines Agenten an erster Stelle seiner Präferenzliste.
Im Modell gibt es kein Geld und somit können keine Häuser gekauft werden.
Die Agenten können jedoch mit Häusern handeln.
Ziel ist es dabei, den Agenten nur durch Tauschhandel ein gemäß ihrer Präferenzen besseres Haus zuzuordnen.
Im Folgenden ist die Ausgangslage zusammengefasst.
Eingabe:
Eine Menge an Haus-Agent-Paaren S={(h1,a1),...,(hn,an)}
Eine vollständige strikte PräferenzlisteHi auf H={h1,...,hn} für jeden Agenten ai aus A={a1,...,an}
Ausgabe:
Ein Matching M zwischen Häusern und Agenten, sodass jedem Agenten ai ein Haus aus Hi zugeordnet ist.
Das Problem wird als gerichteterbipartiter Graph modelliert.
Dabei stellen die Agenten beziehungsweise die Häuser die Knoten dar.
Jeder Agent aj zeigt auf sein am stärksten präferiertes verfügbares Haus hj∗ aus Hj und jedes Haus hi zeigt auf seinen Besitzer ai.
Ein verfügbares Haus ist dabei ein Haus, welches den Graphen noch nicht verlassen hat.
Da somit jeder Agent eine eingehende Kante hat und die Präferenzlisten der Agenten vollständig sind, existiert in diesem gerichteten Graphen immer mindestens ein Kreis.
Ein gerichteter Kreis (a1′,h1′,...,am′,hm′) besteht dabei aus einer alternierenden Folge von Agenten und Häusern, wobei diese jeweils durch eine gerichtete Kante verbunden sind.
In jedem dieser Kreise werden die involvierten Händel vollzogen.
Das heißt jeder Agent im Kreis bekommt das Haus auf das er zeigt.
Anschließend werden die beteiligten Häuser und Agenten aus dem Kreis entfernt.
Bevor der Algorithmus wieder nach Kreisen sucht, werden die Zeiger, welche von den Agenten ausgehen, aktualisiert.
Jeder Agent zeigt wieder auf sein am stärksten präferiertes verfügbares Haus.
Der Algorithmus terminiert, wenn keine Agenten mehr im Graph vorhanden sind.
Das finale Matching besteht dann aus den Agent-Haus Paaren, welche den Graph im Verlauf gemeinsam verlassen haben.
Im nachfolgenden Pseudocode wird illustriert, wie der TTC vorgeht.
In der nachfolgenden Slideshow ist ein Beispiel für das Vorgehen
des TTC Algorithmus in der Immobilienwirtschaft anhand eines Graphen visualisiert.
Dabei wird wie im vorherigen Pseudocode beschrieben vorgegangen.
Der besseren Übersicht halber werden die an den gefundenen Kreisen beteiligten Agenten und Häuser nicht aus dem Graphen entfernt.
Die in den Kreisen enthaltenen Zuweisungen werden trotzdem terminiert.
In dem Graph stehen also ungerichtete Kanten für getroffene Zuweisungen und alle inzidenten Agenten und Häuser sind inaktiv.
Das heißt, kein aktiver Knoten kann auf sie zeigen.
Dies muss dann nur bei den Zeigeraktualisierungen der Agenten berücksichtigt werden.
Das Beispiel bekommt als Eingabe die Menge an Agent-Haus-Paaren S={(h1,a1),(h2,a2),(h3,a3),(h4,a4)} sowie eine Präferenzliste Hi für jeden Agenten ai, welche in der Slideshow links neben den jeweiligen Agenten dargestellt sind.
$\mathbf{while}$ $\exists \ a$ in $V$ $\mathbf{do}$
M={}
Top Trading Cycle - School Choice
Die Ausgangslage beim School-Choice-Problem unterscheidet sich in einigen Punkten von der im vorherigen Kapitel beschriebenen Situation.
Vergleicht man die beiden Ausgangslagen, wird der Unterschied schnell deutlich.
Die Schulen sind hier vergleichbar mit den Häusern und die Schüler mit den Agenten.
Analog zu den Agenten, zeigt hier jeder Schüler pi gemäß seiner Präferenzliste ≻pi auf seine am stärksten präferierte verfügbare Schule si∗.
Eine verfügbare Schule ist hierbei eine Schule, welche dem Schüler noch einen Platz anbieten kann.
Die Präferenzlisten der Schüler unterscheiden sich hingegen von denen der Agenten.
Im Allgemeinen wird davon ausgegangen, dass in den Präferenzlisten der Schüler nicht alle Schulen enthalten sind.
Das bedeutet, dass die Schüler bei ihrer Schulwahl aus allen Schulen meist nur eine begrenzte Anzahl wählen dürfen.
Dies hat zur Folge, dass nicht zwangsläufig jedem Schüler eine Schule zugeordnet werden kann.
Um diesem Umstand Rechnung zu tragen, wird eine Warteliste w eingeführt.
Sollte ein Schüler im Laufe des Algorithmus nicht mehr zuweisbar sein, wird er auf die Warteliste gesetzt.
Ein Schüler ist nicht mehr zuweisbar, wenn auf seiner Präferenzliste nur noch Schulen sind, welche nicht mehr verfügbar sind.
Die gegebenen Präferenzlisten werden somit um die Warteliste w als letztes Element für jeden Schüler pi erweitert.
Eine veränderte Präferenzliste ≻pi eines Schülers pi wäre zum Beispiel (s4,s8,s9,w) statt (s4,s8,s9).
In der Immobilienwirtschaft gehört jedes Haus einem Agenten.
Hier gehören die Schulen nicht den Schülern, sondern sind initial nicht belegt.
Außerdem hat jede Schule eine Präferenzliste über die Schüler.
Jedoch sind meist für Schulen keine strikten Präferenzlisten über die Schüler gegeben.
Das heißt sie enthalten Indifferenzen.
Diese werden aufgelöst indem eine zufällige Reihenfolge über die indifferenten Schüler erzeugt wird.
Eine veränderte Präferenzliste ≻sj einer Schule sj wäre zum Beispiel (p4,p2,p5,p6) statt ({p2,p4},p5,p6).
Folglich zeigt jede Schule sj nicht auf ihren Besitzer, sondern auf ihren am stärksten präferierten verfügbaren Schüler pj∗ gemäß ihrer Präferenzliste ≻sj.
Ein verfügbarer Schüler ist hierbei ein Schüler, welcher noch keiner Schule zugeordnet wurde.
Des Weiteren gibt es noch eine Kapazität Cj∈N pro Schule sj.
Diese beschreibt, wie viele Schüler eine Schule aufnehmen kann.
Für den Algorithmus bedeutet dies, dass der Schule sj maximal Cj Schüler zugewiesen werden können.
Um dies zu gewährleisten, wird hier ein Zähler cj für jede Schule sj eingeführt, welcher die derzeitige Auslastung angibt.
Wenn für eine Schule die Kapazität erreicht ist, ist diese nicht mehr verfügbar und kein Schüler kann mehr auf sie zeigen.
Ablauf des Algorithmus
Eingabe:
Ein Menge an Schülern P={p1,...,pn}
Ein Menge an Schulen S={s1,...,sm}
Eine Kapazität Cj für jede Schule sj
Eine strikte Präferenzliste ≻pi⊆S für jeden Schüler pi
Eine Präferenzliste ≻sj für jede Schule sj, mit gegebenenfalls Indifferenzen
Ausgabe:
Ein b-MatchingM zwischen Schulen/Warteliste und Schülern, sodass jedem Schüler pi eine Schule aus ≻pi oder die Warteliste w zugeordnet wird.
Dabei darf die Kapazität Cj der jeweiligen Schule sj nicht überschritten werden.
Nachfolgend wird das Vorgehen des Algorithmus' anhand eines Beispiels dargestellt.
Der besseren Übersicht halber werden auch hier die an den gefundenen Kreisen beteiligten Schüler und Schulen nicht aus dem Graphen entfernt.
Die in den Kreisen enthaltenen Zuweisungen werden trotzdem terminiert.
In dem Graph stehen also ungerichtete Kanten für getroffene Zuweisungen und alle Beteiligten sind inaktiv.
Das heißt kein aktiver Beteiligter darf auf sie zeigen.
Dies muss dann sowohl bei den Zeigeraktualisierungen der Schulen als auch bei denen der Schüler beachtet werden.
Das Beispiel bekommt die Menge der Schulen S={s1,s2,s3} und die Menge der Schüler P={p1,p2,p3,p4,p5} als Eingabe.
Außerdem noch die zugehörigen Kapazitäten Cj und Präferenzlisten ≻sj für jede Schule sj, sowie die Präferenzlisten ≻pi für jeden Schüler pi,
welche in der Slideshow jeweils neben den Schulen beziehungsweise den Schülern dargestellt sind.
$V\leftarrow P ~ \dot{\cup} ~ \{S ~ \cup ~ \{w\}\}$
Löse für jede Schule $s_j\in S$ Indifferenzen in $\succ_{s_j}$ auf
Erweitere $\succ_{p_i}$ für alle $p_i\in P$ um $w$ als letztes Element
$E\leftarrow\{(p_i,s_{i}^*),\ \forall p_i \in P \}\cup\{(s_j,p_j^*),\ \forall s_j \in S\}$
M={}
Eigenschaften des Algorithmus
Stabilität
Satz
Der TTC-Algorithmus liefert im Allgemeinen kein stabiles Matching.
Beweis
Betrachte das Beispiel im nachfolgenden Graph.
Dort ist das Matching dargestellt, welches der TTC für dieses Beispiel findet.
Das Beispiel hat dabei die Menge der Schulen S={s1,s2,s3} und die Menge der Schüler P={p1,p2,p3} als Eingabe.
Außerdem noch die zugehörigen Kapazitäten Cj und Präferenzlisten ≻sj für jede Schule sj, sowie die Präferenzlisten ≻pi für jeden Schüler pi,
welche im Graph jeweils neben den Schulen beziehungsweise den Schülern dargestellt sind.
Untersucht man das gefundene Matching M={{p1,s2},{p2,s1},{p3,s3}} auf Stabilität, wird schnell deutlich, dass diese Eigenschaft nicht gegeben ist.
Die Schüler p2 und p3 wurden den Schulen s1 beziehungsweise s3 zugewiesen.
Betrachtet man nun die Präferenzliste der Schule s1 und des Schülers p3 wird deutlich, dass s1 den Schüler p3 seiner Zuweisung vorzieht.
Analog bevorzugt Schüler p3 die Schule s1 vor der ihm zugewiesenen Schule.
Es existiert somit eine blockierende Kante(p3,s1).
Folglich liefert der TTC im Allgemeinen kein stabiles Matching.□
M={{p1,s2},{p2,s1},{p3,s3}}
Pareto-Effizienz
Satz
Der TTC-Algorithmus liefert immer ein schülerseitiges pareto-effizientes Matching.
Beweis
Betrachte den Pseudocode des TTC-Algorithmus.
Jeder Schüler der im ersten Durchlauf der äußeren While-Schleife den Graphen verlässt bekommt seine Erstwahl und kann somit keine bessere Schule bekommen als die ihm zugeordnete.
Jeder Schüler der im zweiten Durchlauf den Graph verlässt bekommt seine bestmögliche Wahl aus den noch verfügbaren Schulen.
Da es sich um strikte Präferenzen handelt, kann der Schüler seine Zuweisung nicht verbessern,
ohne einen Schüler zu verschlechtern, welcher im ersten Durchlauf einen Schulplatz bekommen hat.
Allgemein gesagt, kann von keinem Schüler die Zuweisung verbessert werden, ohne dass eine andere Schülerzuweisung verschlechtert wird, welche in einem vorherigen Durchlauf terminiert wurde.
Folglich ist der TTC schülerseitig pareto-effizient.□
Satz
Der TTC-Algorithmus liefert im Allgemeinen kein schulseitiges pareto-effizientes Matching.
Beweis
Betrachte das Beispiel im nachfolgenden Graph.
Dort ist das Matching dargestellt, welches der TTC für dieses Beispiel findet.
Das Beispiel hat dabei die Menge der Schulen S={s1,s2,s3} und die Menge der Schüler P={p1,p2,p3} als Eingabe.
Außerdem noch die zugehörigen Kapazitäten Cj und Präferenzlisten ≻sj für jede Schule sj, sowie die Präferenzlisten ≻pi für jeden Schüler pi,
welche im Graph jeweils neben den Schulen beziehungsweise den Schülern dargestellt sind.
Das Matching lautet M={{p1,s2},{p2,s1},{p3,s3}}.
Auch M′={{p1,s2},{p2,s3},{p3,s1}} ist ein zulässiges Matching
und weist außerdem einer Schule eine bessere Zuweisung als in M zu ohne eine andere Schule zu verschlechtern.
Somit wurde gezeigt, dass der TTC im Allgemeinen kein schulseitiges pareto-effizientes Matching liefert. □
M={{p1,s2},{p2,s1},{p3,s3}}
Satz
Der TTC-Algorithmus liefert im Allgemeinen kein beidseitiges pareto-effizientes Matching.
Beweis
Da keine schulseitige Pareto-effizienz gezeigt werden kann,
liefert der TTC-Algorithmus im Allgemeinen auch kein beidseitiges pareto-effizientes Matching.□
Strategiesicherheit
Satz
Der TTC-Algorithmus ist strategiesicher.
Beweis
Beweisidee:abd2003 Es ist zu zeigen, dass der TTC strategiesicher ist.
Wenn wir im Folgenden von einem Schritt k reden, bezeichnet dies einen Zyklus des TTC Algorithmus, welcher das Finden eines Kreises, die Terminierung der enhaltenen Zuweisungen
sowie das gemeinsame Verlassen des Graphen der gefunden Zuweisungen beinhaltet.
Nehmen wir nun an, dass ein Student den Graph in Schritt k verlässt, wenn er seine echten Präferenzen angibt.
Weil der Student in jedem Schritt immer auf seine beste noch verfügbare Wahl zeigt, haben all seine bevorzugten Plätze, verglichen mit dem nun zugewiesen Platz, den Graph bereits vor Schritt k verlassen.
Die Kreise die dazu geführt haben, kann er nicht durch das Verändern seiner Präferenzen beeinflussen.
Die besseren Plätze haben also den Graph schon vor Schritt k verlassen, unabhängig davon, ob er seine wahren Präferenzen angibt oder nicht.
Somit kann der Schüler sich nur selbst schaden, indem er falsche Präferenzen angibt.
Für den Beweis, dass der TTC strategiesicher ist, wird zunächst ein Lemma eingeführt.
Lemma
Fixiere die angegebenen Präferenzen aller Schüler außer von Schüler pi.
Nehme an, dass Schüler pi mit den Präferenzen ≻i in Schritt T und mit den Präferenzen ≻i′ in Schritt T′ den Graph verlässt.
Nehme an das T≤T′ gilt.
Dann sind zum Zeitpunkt T noch dieselben Schüler und Schulen verfügbar, egal ob Schüler pi die Präferenz ≻i oder ≻i′ angegeben hat.
Beweis
Weil Schüler pi es in beiden Fällen nicht schafft vor Schritt T an einem Kreis beteiligt zu sein,
entstehen dieselben Kreise vor Schritt T und deswegen wurden dieselben Schulen und Schüler vor Schritt T entfernt. □
Beweis: Betrachte einen Schüler pi mit den wahren Präferenzen ≻i.
Fixiere die angegebenen Präferenzen aller Schüler außer von Schüler pi.
Es wird nun gezeigt, dass die Angabe seiner wahren Präferenzen ≻i mindestens genauso gut ist, wie die Angabe jeder anderen Präferenz ≻i′.
Sei T der Schritt indem Schüler pi mit den Präferenzen ≻i′ den Graph verlässt.
Dabei sei (s,p1,s1,...,sk,pi) der Kreis, dem er dabei beiwohnt.
In Kreisen werden die Zuweisungen immer beginnend mit einem Schüler terminiert.
So wird zum Beispiel p1 der Schule s1 zugewiesen.
Da Schüler pi das letzte Element im Kreis ist, wird ihm die Schule s zugeordnet.
Sei außerdem T′ der Schritt, indem er unter seinen wahren Präferenzen ≻i den Graph verlässt.
Es wird nachfolgend gezeigt, dass die ihm unter seinen wahren Präferenzen ≻i zugewiesene Schule mindestens so gut ist wie Schule s.
Dabei müssen zwei Fälle betrachtet werden:
Fall 1:T′≥T. Nehme an, dass Schüler pi seine wahren Präferenzen ≻i angegeben hat.
Betrachte Schritt T.
Das Lemma besagt, dass in Schritt T die gleichen Schüler und Schulen vorhanden sind, egal ob Schüler pi die Präferenzen ≻i oder ≻i′ verwendet.
Deswegen zeigt in Schritt T Schule s auf Schüler p1, Schüler p1 zeigt auf Schule s1, ..., Schule sk zeigt auf Schüler pi.
Ferner machen sie dies solange Schüler pi im Graph bleibt.
Weil Schüler pi in jedem Schritt wahrheitsgemäß auf seine beste noch verfügbare Wahl zeigt,
bekommt er entweder eine Schule die mindestens so gut ist wie s oder nimmt an dem Kreis (s,p1,s1,...,sk,pi) teil und bekommt Schule s zugewiesen.
Fall 2:T′<T. Laut dem Lemma sind in Schritt T′ die selben Schulen und Schüler im Graph enthalten,
egal ob Schüler pi die Präferenzen ≻i oder ≻i′ verwendet.
Ferner wird Schüler pi mit den Präferenzen ≻i seine beste in Schritt T′ noch verfügbare Schule zugeordnet.
Deshalb ist auch in diesem Fall die Schüler pi mit seinen wahren Präferenzen ≻i zugeordnete Schule mindestens so gut wie Schule s.□
Rangmaximalität
Satz
Der TTC-Algorithmus garantiert keine schülerseitige Rangmaximalität.
Beweis
Betrachte das durch den TTC erzeugte Matching im nachfolgenden Graph.
Der TTC hat dabei die Menge der Schulen S={s1,s2,s3} und die Menge der Schüler P={p1,p2,p3,p4,p5} als Eingabe erhalten.
Außerdem noch die zugehörigen Kapazitäten Cj und Präferenzlisten ≻sj für jede Schule sj, sowie die Präferenzlisten ≻pi für jeden Schüler pi,
welche im Graph jeweils neben den Schulen beziehungsweise den Schülern dargestellt sind.
Das gefundene Matching lautet M={{p1,s3},{p2,s2},{p5,s1},{p3,s1},{p4,w}}.
Auch M′={{p1,s3},{p2,s3},{p3,s2},{p4,s1},{p5,s1}} ist ein zulässiges Matching und erfüllt außerdem mehr Erstwünsche.
Somit maximiert der TTC nicht immer die Anzahl erfüllter Erstwünsche und garantiert somit keine Rangmaximalität.□
Der TTC-Algorithmus liefert im Allgemeinen kein kardinalitätsmaximales Matching.
Beweis
Betrachte das durch den TTC erzeugte Matching im nachfolgenden Graph.
Der TTC hat dabei die Menge der Schulen S={s1,s2,s3} und die Menge der Schüler P={p1,p2,p3,p4,p5} als Eingabe erhalten.
Außerdem noch die zugehörigen Kapazitäten Cj und Präferenzlisten ≻sj für jede Schule sj, sowie die Präferenzlisten ≻pi für jeden Schüler pi,
welche im Graph jeweils neben den Schulen beziehungsweise den Schülern dargestellt sind.
Das gefundene Matching lautet M={{p1,s3},{p2,s2},{p5,s1},{p3,s1},{p4,w}}.
In dem Matching hat der TTC dem Schüler p4 die Warteliste zugeordnet.
Die Warteliste ist im TTC ein zusätzlicher Knoten, der eine Schule mit unbegrenzter Kapazität darstellt.
Er wird verwendet, um Schüler aus dem Graphen zu entfernen, welche nicht mehr zugewiesen werden können, da auf ihren Wahlschulen keine Plätze mehr frei sind.
Schülern, welche der Warteliste zugeordnet wurden, wird somit im Anschluss auch kein Schulplatz angeboten.
Deshalb müssen sämtliche Matchingkanten im gefundenen Matching, an denen die Warteliste beteiligt ist, bei der Untersuchung der Kardinalität herausgerechnet werden.
Somit hat das Matching M nicht eine Kardinalität von 5 sondern eine Kardinalität von 4.
Auch M′={{p1,s3},{p2,s3},{p3,s2},{p4,s1},{p5,s1}} ist ein zulässiges Matching und hat außerdem eine Kardinalität von 5.
Somit liefert der TTC im Allgemeinen kein kardinalitätsmaximales Matching. □