finale Version des Vorlesungsskripts - ZIB
finale Version des Vorlesungsskripts - ZIB
finale Version des Vorlesungsskripts - ZIB
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
3 Diskrete Optimierungsprobleme<br />
von Männern zu Frauen (Heirat), so dass die Summe der Antipathiekoeffizienten minimal<br />
ist. Dieses Problem wird häufig Heiratsproblem genannt.<br />
Das Matchingproblem in bipartiten Graphen kann man folgendermaßen interpretieren.<br />
Ein Betrieb habe m offene Stellen und n Bewerber für diese Positionen. Durch Tests hat<br />
man herausgefunden, welche Eignung Bewerber i für die Stelle j hat. Diese “Kompetenz”<br />
sei mit cij bezeichnet. Gesucht wird eine Zuordnung von Bewerbern zu Positionen, so<br />
dass die “Gesamtkompetenz” maximal wird.<br />
Das Zuordnungsproblem und das Matchingproblem in bipartiten Graphen sind offenbar<br />
sehr ähnlich, die Beziehungen zwischen dem Zuordnungsproblem und seiner gerichteten<br />
<strong>Version</strong> sind dagegen nicht ganz so offensichtlich. Dennoch sind diese drei Probleme in<br />
folgendem Sinne “äquivalent”: man kann sie auf sehr einfache Weise ineinander transformieren,<br />
d. h. mit einem schnellen Algorithmus zur Lösung <strong>des</strong> einen Problems kann<br />
man die beiden anderen Probleme lösen, ohne komplizierte Transformationsalgorithmen<br />
einzuschalten.<br />
Transformationstechniken, die einen Problemtyp in einen anderen überführen, sind<br />
außerordentlich wichtig und zwar sowohl aus theoretischer als auch aus praktischer Sicht.<br />
In der Theorie werden sie dazu benutzt, Probleme nach ihrem Schwierigkeitsgrad zu<br />
klassifizieren (siehe Kapitel 4), in der Praxis ermöglichen sie die Benutzung eines einzigen<br />
Algorithmus zur Lösung der verschiedensten Probleme und ersparen daher erhebliche<br />
Codierungs- und Testkosten. Anhand der drei vorgenannten Probleme wollen wir nun<br />
derartige Transformationstechniken demonstrieren.<br />
Bipartites Matchingsproblem −→ Zuordnungsproblem. Angenommen wir haben ein<br />
Matchingproblem in einem bipartiten Graphen und wollen es mit einem Algorithmus<br />
für Zuordnungsprobleme lösen. Das Matchingproblem ist gegeben durch einen bipartiten<br />
Graphen G = (V, E) mit Bipartition V1, V2 und Kantengewichten ce ∈ R für alle e ∈ E.<br />
O. B. d. A. können wir annehmen, dass m = |V1| ≤ |V2| = n gilt. Zur Menge V1 fügen<br />
wir n − m neue Knoten W (künstliche Knoten) hinzu. Wir setzen V ′<br />
1 := V1 ∪ W . Für<br />
je zwei Knoten i ∈ V ′<br />
1 und j ∈ V2, die nicht in G benachbart sind, fügen wir eine neue<br />
(künstliche) Kante ij hinzu. Die Menge der so hinzugefügten Kanten nennen wir E ′ , und<br />
den Graphen (V ′<br />
1 ∪ V2, E ∪ E ′ ) bezeichnen wir mit G ′ . G ′ ist der vollständige bipartite<br />
Graph Kn,n. Wir definieren neue Kantengewichte c ′ e wie folgt:<br />
c ′ e :=<br />
⎧<br />
⎪⎨ 0 falls e ∈ E<br />
⎪⎩<br />
′<br />
0<br />
−ce<br />
falls e ∈ E und ce ≤ 0<br />
falls e ∈ E und ce > 0<br />
Lösen wir das Zuordnungsproblem bezüglich G ′ mit den Gewichten c ′ e, e ∈ E ∪ E ′ ,<br />
so erhalten wir ein perfektes Matching M ′ minimalen Gewichts bezüglich c ′ . Es ist nun<br />
einfach zu sehen, dass<br />
M := {e ∈ M ′ | c ′ e < 0}<br />
ein Matching in G ist, das maximal bezüglich der Gewichtsfunktion c ist.<br />
Zuordnungsproblem −→ gerichtetes Zuordnungsproblem. Wir zeigen nun, dass man<br />
das Zuordnungsproblem mit einem Algorithmus für das gerichtete Zuordnungsproblem<br />
44