• Keine Ergebnisse gefunden

Effiziente Algorithmen (SS2014) Kapitel 3 Matchings Walter Unger

N/A
N/A
Protected

Academic year: 2022

Aktie "Effiziente Algorithmen (SS2014) Kapitel 3 Matchings Walter Unger"

Copied!
79
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Effiziente Algorithmen (SS2014)

Kapitel 3 Matchings

Walter Unger

Lehrstuhl für Informatik 1

02.07.2014 13:30

(2)

Einleitung mit Flüssen Altern. Pfade verbesserte Laufzeit mit Kosten Blüten Zwei Anwendungen

(3:2) <> Walter Unger 17.1.2015 17:56 SS2014 Zx

Inhalt I

1 Einleitung Definitionen maximales Matching

2 mit Flüssen Idee Transformation

3 Alternierende Pfade Idee

Aussagen Algorithmus

4 verbesserte Laufzeit Idee

Aussagen Algorithmus

Beispiel

5 mit Kosten Einleitung Erster Algorithmus Zweiter Algorithmus

6 Blüten

Probleme bei ungeraden Kreisen Algorithmus

Ergebnisse

7 Zwei Anwendungen Definitionen Aussagen Vorgehen Stabile Paarungen

(3)

Einleitung mit Flüssen Altern. Pfade verbesserte Laufzeit mit Kosten Blüten Zwei Anwendungen

(3:1) <> Walter Unger 17.1.2015 17:56 SS2014 Zg

Motivation und Anwendungen

vielfältige Zuordnungsprobleme:

Kunden auf Kundenberater

Anrufe im Callcenter auf Servicemitarbeiter Heiratsvermittlung

Jobs auf Maschinen Schwarzgeld auf Konten Grundsätzliche Probleme:

Bestimme größtes Matching.

Bestimme nicht erweiterbares Matching.

Bestimme größtes Matching mit Kantengewichten.

Bestimme günstigstes Matching (d.h. Kosten auf den Kanten) unter allen maximum Matchings.

Im Folgenden:G= (V,E) zusammenhängend,|V|=n,|E|=m Im Folgenden:G= (V,W,E) bipartit und zusammenhängend,

|V ∪W|=n,|E|=m

(4)

Einleitung mit Flüssen Altern. Pfade verbesserte Laufzeit mit Kosten Blüten Zwei Anwendungen

Definitionen (3:2) <> Walter Unger 17.1.2015 17:56 SS2014 Zg

Definitionen

δG(v) =|NG(v)|NG(v) ={wV(G)| {v,w} ∈E(G)}

Definition (Matching)

SeiG= (V,E) ungerichteter Graph.ME heißt Matching:

∀e,fM:ef =∅ D.h.∀v∈V :δG0(v)61 mitG0= (V,M).

Definition ((inklusions-)maximales Matching)

SeiG= (V,E) ungerichteter Graph.ME heißt maximales Matching:

∀M0:M(M0E :M0ist kein Matching.

Definition (maximum Matching)

SeiG= (V,E) ungerichteter Graph.ME heißt maximum Matching:

∀M0E :|M|<|M0|:M0 ist kein Matching.

(5)

Einleitung mit Flüssen Altern. Pfade verbesserte Laufzeit mit Kosten Blüten Zwei Anwendungen

Definitionen (3:3) <> Walter Unger 17.1.2015 17:56 SS2014 Zg

Beispiel

Betrachte Graph:

{{a,b}}Matching

{{a,b},{b,c}}kein Matching {{a,f},{c,d}}maximales Matching {{a,f},{b,c},{e,d}}maximum Matching

a b c

e d f

(6)

Einleitung mit Flüssen Altern. Pfade verbesserte Laufzeit mit Kosten Blüten Zwei Anwendungen

maximales Matching (3:4) <> Walter Unger 17.1.2015 17:56 SS2014 Zg

Algorithmus (maximales Matching)

Idee: Greedy, d.h. solange es geht, wähle Kante für das Matching.

1 GegebenG= (V,E)

2 M=∅

3 SolangeE nicht leer, mache:

1 WähleeE.

2 SetzeM=M∪ {e}

3 SetzeE={e0E|e0e=∅}

4 Ausgabe:M.

(7)

Einleitung mit Flüssen Altern. Pfade verbesserte Laufzeit mit Kosten Blüten Zwei Anwendungen

maximales Matching (3:5) <> Walter Unger 17.1.2015 17:56 SS2014 Zg

Beispiel

Idee: Greedy Algorithmus:

b1 b2 b3 b4 b5 b6 b7

a1 a2 a3 a4 a5 a6 a7

(8)

Einleitung mit Flüssen Altern. Pfade verbesserte Laufzeit mit Kosten Blüten Zwei Anwendungen

maximales Matching (3:6) <> Walter Unger 17.1.2015 17:56 SS2014 Zg

Probleme

Definition (Bipartites Matchingproblem) Gegeben: G= (V,W,E) bipartiter Graph.

Gesucht: Maximum Matching aufG.

Definition (Bipartites kostenminimales Matchingproblem)

Gegeben: G= (V,W,E) bipartiter Graph und Kostenfunktion l:E7→N.

Gesucht: Kostenminimales maximum Matching aufG.

(9)

Einleitung mit Flüssen Altern. Pfade verbesserte Laufzeit mit Kosten Blüten Zwei Anwendungen

Idee (3:7) <> Walter Unger 17.1.2015 17:56 SS2014 Zs

Idee (bipartites Matching und Flüsse)

Matching vonV nachW entspricht “Transport”.

Jeder Knoten kann eine Einheit transportieren.

Jede Matchingkante kann eine Einheit transportieren.

Modelliere das durch Fluss, erweitere Graph:

Füge Quelles ein und verbindes zu jedem Knoten ausV. Füge Senketein und verbinde jeden Knoten ausW zut.

Diese neuen Kanten können eine Einheit transportieren.

(10)

Einleitung mit Flüssen Altern. Pfade verbesserte Laufzeit mit Kosten Blüten Zwei Anwendungen

Idee (3:8) <> Walter Unger 17.1.2015 17:56 SS2014 Zs

Bipartites Matching und Flüsse

s

t

b1 b2 b3 b4 b5 b6 b7

a1 a2 a3 a4 a5 a6 a7

1 161

1611 16 1

1 1 161 1

16

1 1

16 1 1

161

1 161

1 16

1 1 16

1 1 161 16 1 1

1611 1 161

1 61 116

1 1

16

1 6 1

1 1 6

1 61

16 1 1 1

16

1 6

1 1

6

1 1 61 16 1

1 1

16

1 6

16

1 1

161

(11)

Einleitung mit Flüssen Altern. Pfade verbesserte Laufzeit mit Kosten Blüten Zwei Anwendungen

Transformation (3:9) <> Walter Unger 17.1.2015 17:56 SS2014 Zs

Formale Transformation

SeiG= (V,W,E) bipartiter Graph.

BestimmeG0= (V ∪W∪ {s,t},E0) mit:

E0=E00EsEt

E00={(v,w)| {v,w} ∈EvVwW} Es={(s,v)|vV}

Et ={(w,t)|wW}

Setzec:E07→Nmit∀e∈E0:c(e) = 1.

Lemma

Das bipartite Matchingproblem kann in Zeit O(n+m)auf das Flussproblem transformiert werden.

G hat Matching der Größeαgenau dann, wenn w(G0) =α.

Theorem

Das maximum Matching Problem ist auf bipartiten Graphen in Zeit O(n3) lösbar.

(12)

Einleitung mit Flüssen Altern. Pfade verbesserte Laufzeit mit Kosten Blüten Zwei Anwendungen

Transformation (3:10) <> Walter Unger 17.1.2015 17:56 SS2014 Zs

Formale Transformation mit Kostenfunktion

SeiG= (V,W,E) bipartiter Graph undl:E 7→Z. BestimmeG0= (V ∪W∪ {s,t},E0) undl0:E07→Zmit:

E0=E00EsEt

E00={(v,w)| {v,w} ∈EvVwW} Es={(s,v)|vV}undEt ={(w,t)|wW}.

∀(v,w)∈E00:l0(v,w) =l(v,w).

∀e∈EsEt :l0(e) = 0.

Setzec:E07→Nmit∀e∈E0:c(e) = 1.

Lemma

Das bipartite Matchingproblem mit Kosten kann in Zeit O(n+m)auf das Flussproblem mit Kosten transformiert werden.

Theorem

G hat Matching der Größeαmit Kostenβ genau dann, wenn w(G0) =αund die Kosten des Flusses sindβ.

(13)

Einleitung mit Flüssen Altern. Pfade verbesserte Laufzeit mit Kosten Blüten Zwei Anwendungen

Idee (3:11) <> Walter Unger 17.1.2015 17:56 SS2014 Zi

Nochmal das Beispiel

Betrachte das Beispiel ohne die Knotens undt:

Ein Fluss über eine Kante entspricht Matching.

Das Löschen einer Matchingkante entspricht einem Fluss über eine Rückwärtskante.

Damit ein Fluss über eine Rückwärtskante fließt, muss vorher und hinterher eine Vorwärtskante sein.

b1 b2 b3 b4 b5 b6 b7

a1 a2 a3 a4 a5 a6 a7

(14)

Einleitung mit Flüssen Altern. Pfade verbesserte Laufzeit mit Kosten Blüten Zwei Anwendungen

Idee (3:12) <> Walter Unger 17.1.2015 17:56 SS2014 Zi

Idee der alternierende Pfade

Damit arbeitet der Flussalgorithmus wie folgt:

Bestimme “erweiternden Pfad”:

Der Pfad startet an einem “freien” Knoten.

Der Pfad startet mit einer Vorwärtskante.

Der Pfad geht alternierend über Vorwärts- und Rückwärtskanten.

Der Pfad endet mit einer Vorwärtskante.

Der Pfad endet an einem “freien” Knoten.

Damit können wir einen weiteren Algorithmus angeben.

(15)

Einleitung mit Flüssen Altern. Pfade verbesserte Laufzeit mit Kosten Blüten Zwei Anwendungen

Idee (3:13) <> Walter Unger 17.1.2015 17:56 SS2014 Zi

Alternierende Pfade

AB= (AB)\(AB)

SeiG= (V,E) ungerichteter Pfad undME ein Matching.

Ein KnotenvV heißt frei, fallsv 6∈ ∪e∈Me.

Ein Pfadv0,{v0,v1},v1,{v1,v2},v2,{v2,v3},v3, . . . ,vl−1,{vl−1,vl},vl

heißt alternierend, falls{vi−1,vi} ∈M⇔ {vi,vi+1} 6∈M (0<i<l).

v0 v1 v2 v3 v4 v5 v6

Ein alterniernder Pfad

v0,{v0,v1},v1,{v1,v2},v2,{v2,v3},v3, . . . ,vl−1,{vl−1,vl},vl heißt erweiternd, fallsv0,vl frei sind.

v0 v1 v2 v3 v4 v5

Bemerkung: eine Kante zwischen freien Knoten ist ein verbessernder Pfad.

Damit arbeitet der Algorithmus wie folgt:

1 SetzeM=∅.

2 Solange es erweiternden PfadP gibt, mache:

1 ErweitereM, d.h.M=ME(P).

(16)

Einleitung mit Flüssen Altern. Pfade verbesserte Laufzeit mit Kosten Blüten Zwei Anwendungen

Idee (3:14) <> Walter Unger 17.1.2015 17:56 SS2014 Zi

Beispiel allgemeiner Graph

AB= (AB)\(AB)

Versuche verbessernde Pfade auf allgemeinen Graphen:

a0 b0

b1 b2

b3

b4

d0

c0

c1 c2

c3

c4

a1 d1

a2 d2

Ungerade Kreise können Probleme machen

(17)

Einleitung mit Flüssen Altern. Pfade verbesserte Laufzeit mit Kosten Blüten Zwei Anwendungen

Aussagen (3:15) <> Walter Unger 17.1.2015 17:56 SS2014 Zs

Aussagen zu verbessernden Pfaden

AB= (AB)\(AB)

Lemma (ein verbessernder Pfad)

Sei G= (V,E)Graph, M Matching und P verbessernder Pfad. Dann ist ME(P)Matching mit|M⊕E(P)|=|M|+ 1.

Beweis:

SeiG0= (V,M) undG00= (V,ME(P)).

Seiv der Startknoten vonP, dann giltδG0(v) = 0 undδG00(v) = 1.

Seiw der Endknoten vonP, dann giltδG0(w) = 0 undδG00(w) = 1.

Seiuein Zwischenknoten aufP, dann giltδG0(u) =δG00(u) = 1.

Es wird eine Kante mehr hinzugefügt als entfernt.

(18)

Einleitung mit Flüssen Altern. Pfade verbesserte Laufzeit mit Kosten Blüten Zwei Anwendungen

Aussagen (3:16) <> Walter Unger 17.1.2015 17:56 SS2014 Zs

Aussagen zu verbessernden Pfaden

δ(G) =v∈V(G)δG(v)

Lemma (Differenz zweier Matchings)

Sei G= (V,E)Graph, M,N Matchings mit|M|<|N|. Dann enthält H= (V,MN)mindestens|N| − |M|knotendisjunkte verbessernde Pfade bezüglich M in G.

Beweis:

SeiGM = (V,M) undGN= (V,N).

Es gilt:δ(GM)⊂ {0,1}undδ(GN)⊂ {0,1}.

Damit folgt:δ(H)⊂ {0,1,2}.

SeienGi = (V,Ei) (16i 6g) die Zusammenhangskomponenten vonH.

Wegenδ(Gi)⊂ {0,1,2}folgt:

Gi ist ein isolierte Knoten oder Gi ist ein Kreis gerader Länge oder Gi ist ein Pfad gerader Länge oder Gi ist ein Pfad ungerader Länge.

Die Kanten inGi stammen alternierend ausM undN.

(19)

Einleitung mit Flüssen Altern. Pfade verbesserte Laufzeit mit Kosten Blüten Zwei Anwendungen

Aussagen (3:17) <> Walter Unger 17.1.2015 17:56 SS2014 Zs

Fortsetzung

δ(G) =v∈V(G)δG(v)

Setzed(Gi) =|EiN| − |EiM|.

Damit gilt:d(Gi)∈ {−1,0,1}.

Damit gilt weiter:d(Gi) = 1 fallsGi verbessernder Pfad.

Pg

i=1d(Gi) =|N\M| − |M\N|=|N| − |M|

Damit muss es mindestens|N| − |M|KomponentenGi geben mit d(Gi) = 1.

Zusammengefasst gibt es mindestens|N| − |M|verbessernde Pfade.

Nach Definition der Komponenten sind diese knotendisjunkt.

Lemma

Sei G= (V,E)und M Matching in G .

M ist maximum Matching genau dann, wenn keinen verbessernden Pfad bezüglich M gibt.

(20)

Einleitung mit Flüssen Altern. Pfade verbesserte Laufzeit mit Kosten Blüten Zwei Anwendungen

Algorithmus (3:18) <> Walter Unger 17.1.2015 17:56 SS2014 Zs

Algorithmus

1 GegebenG= (V,W,E)

2 M=∅

3 Solange es verbessernden PfadPgibt, mache:

1 SetzeM=ME(P)

4 Ausgabe:M.

Theorem

Der obige Algorithmus hat eine Laufzeit von O(n·m).

Beweis:

Wegen|M|6bn/2cgibt es höchstensbn/2cSchleifendurchläufe.

Jede Schleife kann in ZeitO(m) ausgeführt werden.

(21)

Einleitung mit Flüssen Altern. Pfade verbesserte Laufzeit mit Kosten Blüten Zwei Anwendungen

Algorithmus (3:19) <> Walter Unger 17.1.2015 17:56 SS2014 Zs

Beispiel (Schleifendurchlauf)

b1 b2 b3 b4 b5 b6 b7

a1 a2 a3 a4 a5 a6 a7

b1 b2 b3 b4 b5 b6 b7

a1 a2 a3 a4 a5 a6 a7

(22)

Einleitung mit Flüssen Altern. Pfade verbesserte Laufzeit mit Kosten Blüten Zwei Anwendungen

Algorithmus (3:20) <> Walter Unger 17.1.2015 17:56 SS2014 Zs

Schleifendurchlauf

SeiG= (V,W,E) bipartiter Graph undMMatching.

ErzeugeG0= (V ∪W,E0E00) mit:

E0={(v,w)| {v,w} ∈E\MvVwW}und E00={(w,v)| {v,w} ∈MvVwW}.

Damit wird die Suche nach einem verbessernden Pfad eine Suche inG0: Von einem freien Knoten inV zu

einem freien Knoten inW.

Damit ergibt sich eine Laufzeit vonO(m) durch Tiefensuche.

(23)

Einleitung mit Flüssen Altern. Pfade verbesserte Laufzeit mit Kosten Blüten Zwei Anwendungen

Idee (3:21) <> Walter Unger 17.1.2015 17:56 SS2014 Zi

Idee

Falls Kanten oft die Rolle (Matching,nicht Matching) wechseln, erhalten wir eine schlechte Laufzeit.

Am Anfang besteht der verbessernde Pfad aus einer Kante.

Am Anfang sind die kürzesten verbessernden Pfade knotendisjunkt.

Idee: suche kürzeste verbessernde Pfade.

Falls diese knotendisjunkt sind, können diese gleichzeitig gesucht werden.

Beispiel:

a b c d e f

g h

Matching:M={{b,c},{d,e}}

Erster kürzester verbessernder Pfad:a,b,c,d,e,f Zweiter kürzester verbessernder Pfad:g,a,b,c,d,h Widerspruch, da (g,a) noch kürzerer verbessernder Pfad.

(24)

Einleitung mit Flüssen Altern. Pfade verbesserte Laufzeit mit Kosten Blüten Zwei Anwendungen

Aussagen (3:22) <> Walter Unger 17.1.2015 17:56 SS2014 Zs

Lemma 1

Lemma (kurzer Weg)

Sei M Matching in G= (V,E)und P kürzester verbessernder Pfad in G bezüglich M. Sei weiter P0verbessernder Pfad bezüglich ME(P), dann gilt:

|P0|>|P|+|P∩P0|.

Beweis:

SeiN= (M⊕P)P0. Nach Lemma “ein verbessernder Pfad” gilt:

|N|=|M|+ 2.

Nach Lemma “Differenz zweier Matchings” gibt es inMNzwei knotendisjunkte verbessernde PfadeP1,P2.

Wegen|PI|>|P|(l ∈ {1,2}) gilt:|M⊕N|>2· |P|.

Nun folgt:

(25)

Einleitung mit Flüssen Altern. Pfade verbesserte Laufzeit mit Kosten Blüten Zwei Anwendungen

Aussagen (3:23) <> Walter Unger 17.1.2015 17:56 SS2014 Zs

Fortsetzung

Zeige:|P0|>|P|+|PP0|

SeiN= (M⊕P)P0. Nach Lemma “ein verbessernder Pfad” gilt:

|N|=|M|+ 2.

Nach Lemma “Differenz zweier Matchings” gibt es inMNzwei knotendisjunkte verbessernde PfadeP1,P2.

Wegen|PI|>|P|(l ∈ {1,2}) gilt:|M⊕N|>2· |P|.

Nun folgt:

MN = M⊕((M⊕P)P0)

= (M⊕M)⊕(P⊕P0)

= PP0 Damit gilt: |P⊕P0| > 2· |P|

Betrachte: |P⊕P0| = |P∪P0| − |P∩P0| 6 |P|+|P0| − |P∩P0| Damit gibt: 2· |P| 6 |P|+|P0| − |P∩P0|

|P|+|P∩P0| 6 |P0|

(26)

Einleitung mit Flüssen Altern. Pfade verbesserte Laufzeit mit Kosten Blüten Zwei Anwendungen

Aussagen (3:24) <> Walter Unger 17.1.2015 17:56 SS2014 Zs

Idee und Situation

Ziel: Suche viele kürzeste verbessernde Pfade.

Starte mit leerem MatchingM0=∅.

Im Schritti seiPi ein kürzester verbessernder Pfad bezüglichMi−1. SetzeMi =Mi−1E(Pi).

Lemma (disjunkte kürzeste verbessernde Pfade) Für i,j>1gilt:

1 |Pi|6|Pi+1|

2 |Pi|=|Pj|=⇒Pi und Pjsind knotendisjunkt.

Beweis

1 |Pi|6|Pi+1|folgt aus Lemma “kurzer Weg”.

2 Folgt per Widerspruch:

(27)

Einleitung mit Flüssen Altern. Pfade verbesserte Laufzeit mit Kosten Blüten Zwei Anwendungen

Aussagen (3:25) <> Walter Unger 17.1.2015 17:56 SS2014 Zs

Beweis (Teil 2)

Seii<j,|Pi|=|Pj|undV(Pi)∩V(Pj)6=∅.

O.B.d.A.:∀k:i<k<j:∀l ∈ {i,j}:V(Pl)∩V(Pk) =∅.

Damit folgt:Pj ist ein verbessernder Pfad bezüglichMi =Mi−1Pi. WegenV(Pi)∩V(Pj)6=∅folgt:E(Pi)∩E(Pj)6=∅.

SeivV(Pi)∩V(Pj), genau die Matchingkante anv ist in E(Pi)∩E(Pj).

|E(Pi)∩E(Pj)|>1.

Aus Lemma “kurzer Weg” folgt:|Pj|>|Pi|+|PiPj|>|Pi|+ 1.

Widerspruch.

(28)

Einleitung mit Flüssen Altern. Pfade verbesserte Laufzeit mit Kosten Blüten Zwei Anwendungen

Algorithmus (3:26) <> Walter Unger 17.1.2015 17:56 SS2014 Zs

Idee und Algorithmus

Suche alle kürzesten verbessernden Pfade.

Je länger diese werden, um so weniger gibt es davon.

Alle knotendisjunkten Pfade nutzen jeweils mindestens eine Kante des aktuellen Matchings.

Damit erhalten wir eine bessere Laufzeit.

Der Algorithmus bestimmt in Rundei möglichst viele kürzeste verbessernden Pfade der Längeli.

l1<l2<l3< . . ..

Algorithmus:

1 GegebenG= (V,W,E) bipartiter Graph.

2 SetzeM=∅

3 Solange es verbessernde Pfade gibt, mache:

1 Bestimmel als die Länge des kürzesten verbessernden Pfads.

2 Bestimme eine inklusions-maximale Menge von verbessernden PfadenP1,P2, . . . ,Pi der Längel.

3 M=MP1P2P3. . .Pi.

(29)

Einleitung mit Flüssen Altern. Pfade verbesserte Laufzeit mit Kosten Blüten Zwei Anwendungen

Algorithmus (3:27) <> Walter Unger 17.1.2015 17:56 SS2014 Zs

Anzahl der Schleifendurchläufe

Lemma (Pfadlänge)

Sei M0 ein maximum Matching mit s=|M0|

und M ein nicht maximales Matching, dann gibt es einen M verbessernden Pfad der Länge höchstens

2· |M|

s− |M|

+ 1.

Beweis:

Es gibt höchstenss− |M|vieleM-verbessernde Pfade.

Diese Pfade enthalten zusammen höchstens|M|Kanten ausM.

Damit gibt es einen Pfad, der höchstensbs−|M||M| cKanten ausMenthält.

D.h. ein Pfad, der nicht länger ist als die Durchschnittslänge.

Dieser Pfad hat eine Länge von:

2· |M|

s− |M|

+ 1.

(30)

Einleitung mit Flüssen Altern. Pfade verbesserte Laufzeit mit Kosten Blüten Zwei Anwendungen

Algorithmus (3:28) <> Walter Unger 17.1.2015 17:56 SS2014 Zs

Anzahl der Schleifendurchläufe

M0maximum Matchings=|M0|und 2· |M|

s−|M|

+ 1

Teile in zwei Phasen auf:

Phase 1 aktiv, solange|M|6bs−√ scgilt.

Maximale Pfadlänge dann:

bs−√ sc s− bs−√ sc

+ 162·s− d√ se d√

se + 162·√ s+ 1 Damit gilt in jeder Runde der ersten Phase:l62·√

s+ 1.

Dal in Zweierschritten wächst, gibt es höchsten√ s Iterationen in der ersten Phase.

Phase 2 aktiv, falls|M|>bs−√ scgilt.

Es fehlen√

s viele Kanten.

Die Phase endet nach maximal√

s Iterationen.

(31)

Einleitung mit Flüssen Altern. Pfade verbesserte Laufzeit mit Kosten Blüten Zwei Anwendungen

Algorithmus (3:29) <> Walter Unger 17.1.2015 17:56 SS2014 Zs

Laufzeit

Lemma

Die Bestimmung einer inklusions-maximalen Menge von kürzesten verbessernden Pfaden geht in Zeit O(m)

Beweis (Idee wird auch beim gewichteten Matching benutzt.) SeiG= (V,W,E) bipartiter Graph undMMatching.

ErzeugeG0= (V ∪W,E0E00) mit:

E0={(v,w)| {v,w} ∈E\MvVwW}und E00={(w,v)| {v,w} ∈MvVwW}.

Damit wird die Suche nach einem verbessernden Pfad eine Suche inG0: Von den freien Knoten inV zu den freien Knoten inW.

Füge Quelle und Senke hinzu, damit entstehtG00.

Bestimme durch Breitensuche alle Kanten, die nicht auf einem kürzesten Pfad liegen.

Damit entsteht ein SchichtennetzwerkG000.

Damit ergibt sich eine Laufzeit vonO(m) durch Tiefensuche aufG000.

(32)

Einleitung mit Flüssen Altern. Pfade verbesserte Laufzeit mit Kosten Blüten Zwei Anwendungen

Beispiel (3:30) <> Walter Unger 17.1.2015 17:56 SS2014 Zs

Beispiel (Bestimme G

0

)

b1 b2 b3 b4 b5 b6 b7

a1 a2 a3 a4 a5 a6 a7

s t

a1 a2 a3 a4 a5 a6 a7

b1 b2 b3 b4 b5 b6 b7

(33)

Einleitung mit Flüssen Altern. Pfade verbesserte Laufzeit mit Kosten Blüten Zwei Anwendungen

Beispiel (3:31) <> Walter Unger 17.1.2015 17:56 SS2014 Zs

Beispiel (Breitensuche)

s t

a1 a2 a3 a4 a5 a6 a7

b1 b2 b3 b4 b5 b6 b7

s a4 t

a6

b3 b5 b7

a2 a5 a7

b1 b4 b6

a3

a1 b2

(34)

Einleitung mit Flüssen Altern. Pfade verbesserte Laufzeit mit Kosten Blüten Zwei Anwendungen

Beispiel (3:32) <> Walter Unger 17.1.2015 17:56 SS2014 Zs

Beispiel (Tiefensuche)

s t

a1 a2 a3 a4 a5 a6 a7

b1 b2 b3 b4 b5 b6 b7

s a4 t

a6

b3 b5 b7

a2 a5 a7

b1 b4 b6

(35)

Einleitung mit Flüssen Altern. Pfade verbesserte Laufzeit mit Kosten Blüten Zwei Anwendungen

Beispiel (3:33) <> Walter Unger 17.1.2015 17:56 SS2014 Zs

Beispiel (Verbessernde Pfade)

s t

a1 a2 a3 a4 a5 a6 a7

b1 b2 b3 b4 b5 b6 b7

s a4 t

a6

b3 b5 b7

a2 a5 a7

b1 b4 b6

(36)

Einleitung mit Flüssen Altern. Pfade verbesserte Laufzeit mit Kosten Blüten Zwei Anwendungen

Beispiel (3:34) <> Walter Unger 17.1.2015 17:56 SS2014 Zs

Beispiel

b1 b2 b3 b4 b5 b6 b7

a1 a2 a3 a4 a5 a6 a7

s a4 t

a6

b3 b5 b7

a2 a5 a7

b1 b4 b6

(37)

Einleitung mit Flüssen Altern. Pfade verbesserte Laufzeit mit Kosten Blüten Zwei Anwendungen

Beispiel (3:35) <> Walter Unger 17.1.2015 17:56 SS2014 Zs

Laufzeit

Theorem

Das Maximum Matchingproblem auf bipartiten Graphen kann in Zeit O(mn) gelöst werden.

(38)

Einleitung mit Flüssen Altern. Pfade verbesserte Laufzeit mit Kosten Blüten Zwei Anwendungen

Einleitung (3:36) <> Walter Unger 17.1.2015 17:56 SS2014 Zi

Matching mit Kosten

g(E) =P

e∈Eg(e)

Definition (maximum Matching)

SeiG= (V,E) ungerichteter bipatiter Graph mit Kantenkosteng:E 7→N. ME ist gewichtsmaximales Matching:

∀M0E :M0ist Matching. :g(M0)6g(M)

Idee suche erweiternden alternierenden Weg mit maximalen Kosten.

Verwende Idee von der schnellen Wegsuche

Hier werden nun Wege maximalen Gewichts gesucht.

SeiG= (V,W,E) bipartiter Graph undM Matching.

ErzeugeG0= (V ∪W,E0E00) mit:

E0={(v,w)| {v,w} ∈E\MvVwW}und E00={(w,v)| {v,w} ∈MvVwW}und

∀e∈E0:gM(e) =g(e) und∀e∈E00:gM(e) =−g(e).

Füge Quelle und Senke hinzu, damit entstehtG0.

(39)

Einleitung mit Flüssen Altern. Pfade verbesserte Laufzeit mit Kosten Blüten Zwei Anwendungen

Einleitung (3:37) <> Walter Unger 17.1.2015 17:56 SS2014 Zi

Idee

g(E) =P

e∈Eg(e)

SeiG= (V,W,E) bipartiter Graph,g:E 7→NundM Matching.

ErzeugeG0= (V ∪W,E0E00) mit:

E0={(v,w)| {v,w} ∈E\MvVwW}und E00={(w,v)| {v,w} ∈MvVwW}und

∀e∈E0:gM(e) =g(e) und∀e∈E00:gM(e) =−g(e).

Damit wird ein ungerichteterM-verbessender PfadPbestimmt.

Gewicht vonP:gM(P) =P

e∈P\Mg(e)−P

e∈P∩Mg(e).

Damit haben wir:

g(MP) =X

e∈M

g(e) + X

e∈P\M

g(e)− X

e∈P∩M

g(e) =g(M) +gM(p)

Damit ergibt sich der folgende Algorithmus:

(40)

Einleitung mit Flüssen Altern. Pfade verbesserte Laufzeit mit Kosten Blüten Zwei Anwendungen

Erster Algorithmus (3:38) <> Walter Unger 17.1.2015 17:56 SS2014 Zi

Algorithmus

g(E) =P

e∈Eg(e) 1 GegebenG= (V,W,E),g:7→N

2 M=∅undMopt =∅

3 Solange es verbessernden PfadPbezüglichM gibt, mache:

1 ∀e∈E0:gM(e) =g(e) und∀e∈E00:gM(e) =−g(e)

2 Bestimme verbessernden PfadPmit maximalen Gewicht bezüglich M undgM(e):

3 SetzeM=ME(P)

4 Fallsg(M)>g(Mopt), setzeMopt =M.

4 Ausgabe:Mopt. Theorem

Der obige Algorithmus bestimmt gewichtsmaximales Matching und hat eine Laufzeit von O(n2·m).

(41)

Einleitung mit Flüssen Altern. Pfade verbesserte Laufzeit mit Kosten Blüten Zwei Anwendungen

Erster Algorithmus (3:39) <> Walter Unger 17.1.2015 17:56 SS2014 Zi

Beweis

Lemma

Das im i -ten Schritt bestimmte Matching Mi ist das gewichtsmaximale Matching mit Kardinalität i .

Beweis per Induktion:

Induktionsanfangi = 0 ist klar (M0=∅), Induktionsschrittii+ 1 folgt.

SeienMi die Machtings, die imi-ten Schritt bestimmt wurden.

SeiM0 ein Matching mit|M0|=i+ 1 und maximalem Gewicht.

SeiPein verbessernde Pfad in MiM0. BetrachteM=M0P, es gilt|M|=i. Es gilt damit:PM=P\M0=PMi.

(42)

Einleitung mit Flüssen Altern. Pfade verbesserte Laufzeit mit Kosten Blüten Zwei Anwendungen

Erster Algorithmus (3:40) <> Walter Unger 17.1.2015 17:56 SS2014 Zi

Beweis

Lemma

Das im i -ten Schritt bestimmte Matching Mi ist das gewichtsmaximale Matching mit Kardinalität i .

Beweis per Induktion:

Induktionsanfangi = 0 ist klar (M0=∅), Induktionsschrittii+ 1 folgt.

SeienMi die Machtings, die imi-ten Schritt bestimmt wurden.

SeiM0 ein Matching mit|M0|=i+ 1 und maximalem Gewicht.

SeiPein verbessernde Pfad in MiM0. BetrachteM=M0P, es gilt|M|=i. Es gilt damit:PM=P\M0=PMi.

Per Induktion gilt:g(Mi)>g(M) =g(M0)−gM(P).

Und wir erhaltengM(P) =gMi(P)6gMi(P0),

wobeiP0der Pfad ist, den der Algorithmus bestimmte.

Damit:g(M0) =g(M) +gM(P)6g(Mi) +gMi(P0) =g(Mi+1).

(43)

Einleitung mit Flüssen Altern. Pfade verbesserte Laufzeit mit Kosten Blüten Zwei Anwendungen

Erster Algorithmus (3:41) <> Walter Unger 17.1.2015 17:56 SS2014 Zi

Laufzeit

Der Algorithmus bestimmtbn/2cmal einen verbessernden kostenmaximalen Weg.

Wir setzenl(e) =−gM(e) für alle Kanten, damit haben wir:

Der Algorithmus bestimmtbn/2cmal einen kürzesten Weg.

Dabei treten auch negative Gewichte auf.

Wegen des vorherigen Lemmas haben wir keine negativen Kreise bezüglichl.

Positive Kreise bezüglichgM widersprächen der Optimalität vonMi: Damit kann nun mit dem Bellmann-Ford-Algorithmus von einer Quelle aus gearbeitet werden.

Dieser hat LaufzeitO(nm).

Damit ist die GesammtlaufzeitO(n2m).

(44)

Einleitung mit Flüssen Altern. Pfade verbesserte Laufzeit mit Kosten Blüten Zwei Anwendungen

Zweiter Algorithmus (3:42) <> Walter Unger 17.1.2015 17:56 SS2014 Zi

Idee

l(e) =−gM(e)

Nutze den Dijkstra-Algorithmus (LaufzeitO(m+nlogn)).

Transformiere dazu die Längen, so dass keine negativen Werte auftreten.

Beachte: wir haben keine negativen Kreise.

Verwende dazu eine Potentilafunkionp:V 7→Zmit:

∀(v,w) =eE :l0(e) =l(e)−p(w) +p(v)

Die Berechnung so einer Potentialfunktionpim Rahmen der Suche nach dem Matching wird die Ungarische Methode genannt.

(45)

Einleitung mit Flüssen Altern. Pfade verbesserte Laufzeit mit Kosten Blüten Zwei Anwendungen

Zweiter Algorithmus (3:43) <> Walter Unger 17.1.2015 17:56 SS2014 Zi

Transformation 1

l(e) =−gM(e)

Lemma

Sei G= (V,E)Graph mit Kantengewichten l:E 7→Zund p:V 7→Z. Wenn G enthalte keine negativen Kreise, dann setze:

∀(v,w) =eE :l0(e) =l(e)−p(w) +p(v).

Dann gilt für jeden kürzesten Weg P von a nach b:

distl0(a,b) =p(a)p(b) + distl(a,b).

Beweis:

distl0(a,b) = P

e∈Pl0(e)

= P

(v,w)=e∈Pl(e)−p(w) +p(v)

= p(a)p(b) +P

e∈Pl(e)

Damit können die kürzesten Wege auch mit diesen neuen Kantengewichten bestimmt werden.

(46)

Einleitung mit Flüssen Altern. Pfade verbesserte Laufzeit mit Kosten Blüten Zwei Anwendungen

Zweiter Algorithmus (3:44) <> Walter Unger 17.1.2015 17:56 SS2014 Zi

Transformation 2

l(e) =−gM(e)

Lemma

Sei G= (V,E)Graph mit Kantengewichten l:E 7→Zund qV . Wenn G enthalte keine negativen Kreise, dann setze weiter p:V 7→Zmit

p(v) = distl(q,v)und

∀(v,w) =eE :l0(e) =l(e)−p(w) +p(v).

Dann gilt:

∀e∈E:l0(e)>0.

Beweis:

Für jede Kantee= (v,w) gilt: distl(q,w)6distl(q,v) +l(e).

Und damit:

l0(e) = l(e)−p(w) +p(v)

= l(e)−distl(q,w) + distl(q,v)

> l(e)−(distl(q,v) +l(e)) + distl(q,v) = 0

(47)

Einleitung mit Flüssen Altern. Pfade verbesserte Laufzeit mit Kosten Blüten Zwei Anwendungen

Zweiter Algorithmus (3:45) <> Walter Unger 17.1.2015 17:56 SS2014 Zi

Transformation 3

l(e) =−gM(e)

Lemma

Sei G= (V,E)Graph mit Kantengewichten l:E 7→Zund qV . Wenn G enthalte keine negativen Kreise, dann setze weiter p:V 7→Zmit

p(v) = distl(q,v)und

∀(v,w) =eE :l0(e) =l(e)−p(w) +p(v).

Dann gilt für die Kanten e eines kürzsten Weg von q aus:

l0(e) = 0.

Beweis:

Wegenl0(e) =l(e)−p(w) +p(v) gilt für ein Kantee= (q,v):l0(e) = 0.

SeiPein kürzester Weg von qnachv.

Dieser hat im Vergleich zu den ursprünglichen Kosten den aditiven Term p(q)p(v).

Damitp(q)p(v) = distl(q)−distl(v) =−distl(v).

Und weiter. distl0(v) = distl(v)−distl(v) = 0.

(48)

Einleitung mit Flüssen Altern. Pfade verbesserte Laufzeit mit Kosten Blüten Zwei Anwendungen

Zweiter Algorithmus (3:46) <> Walter Unger 17.1.2015 17:56 SS2014 Zi

Ungarische Methode

l(e) =−gM(e) 1 GegebenG= (V,W,E),g:E7→N

2 M=∅,Mopt =∅und für allevV setzep(v) = 0.

3 Für allewW setzep(w) = mine∈El(e).

4 Wiederhole die folgenden Schritte:

1 Füge KnotenqzuV hinzu und Kanten (q,v) zu allen Knoten aus vV\V(M).

2 Bestimme KantenlängenlM mit Hilfe vong undM.

3 Bestimmep(v) = distlM(q,v) für alle erreichbaren Knotenv.

4 Setzel0(e) =lM(e) +p(v)−p(w) für alle Kantene= (v,w).

5 Falls es PfadP mitl0(P) = 0 vonqzu einem Knoten aus W\V(M) gibt, so setzeM=ME(P)

6 Falls es keinen solchen PfadPgibt, so gebeMopt aus und terminiere.

7 Fallsg(M)>g(Mopt), setzeMopt =M.

(49)

Einleitung mit Flüssen Altern. Pfade verbesserte Laufzeit mit Kosten Blüten Zwei Anwendungen

Zweiter Algorithmus (3:47) <> Walter Unger 17.1.2015 17:56 SS2014 Zi

Laufzeit

l(e) =−gM(e)

Theorem

Der obige Algorithmus bestimmt gewichtsmaximales Matching und hat eine Laufzeit von O(n·(m+nlogn)).

Bemerkungen dazu (Nach Konstruktion gelten die vorherigen Ausagen):

Beim Übergang vonMi nachMi+1 werden nur Kantene mit Kosten l0(e) = 0 gedreht.

Damit vergrößert sich nicht der vonqaus erreichbare Teil.

Seie= (v,w) so eine Kante vor der Drehung.

Für die gedreht Kantee0= (w,v) gilt:

lM0i+1(e0) =lMi+1(e0)−p(w)+p(v) =−lMi(e0)−p(w)+p(v) =−lM0i(e) = 0.

Damit können wir im Schritt 5.4 den Dijkstra-Algorithmus anwenden.

Weiterhin können wir die Potentiale in Schritt 5.2 mit Breitesuche bestimmen.

DamitO(n) Iterationen mit LaufzeitO(m+nlogn) plusO(n+m).

(50)

Einleitung mit Flüssen Altern. Pfade verbesserte Laufzeit mit Kosten Blüten Zwei Anwendungen Probleme bei ungeraden Kreisen (3:48) <> Walter Unger 17.1.2015 17:56 SS2014 Zi

Einleitung

l(e) =−gM(e)

Was passiert, wenn der obige Algorithmus auf ungerade Kreise stößt?

Es gibt ggf. mehr Möglichkeiten des Durchlaufs.

Ausblick und Vorgehen:

Untersuche die möglichen Situationen.

Erkenne die Situationen, die kritisch für den Algorithmus sind.

Passe Algorithmus für diese Situationen an.

Referenzen

ÄHNLICHE DOKUMENTE

Anwendungen und Motivation (1:2.1) &lt;&gt; Walter Unger 17.1.2015 17:49 SS2014

Siehe: Zweiter Versuch am aufwendigeren Beispiel Siehe: Zweiter Versuch am einfachen Beispiel Siehe: kleines Beispiel und schönes

Pro Knoten gibt es maximal eine Kante, die betrachtet, aber nicht saturiert

Pfade verbesserte Laufzeit mit Kosten Blüten Zwei Anwendungen.. (3:2.3) &lt;&gt; Walter Unger 17.1.2015 17:49

Nicht Exakt: “= ⇒” hoffentlich polynomiale Laufzeit Hier: Approximationsalgorithmen in polynomialer Laufzeit?. D.h.: welche Approximationsfaktoren

Einleitung Vertex Cover TSP und Delta-TSP Steiner-Bäume Zentrumsproblem Färbung Approximationsalgorithmus (4:38) &lt;&gt; Walter Unger 17.1.2015 17:56 SS2014 Z s..

Anzahl der von S i neu überdeckten Elemente Wähle Menge S i , wo obiger Ausdrucke minimal ist.... Set Cover Scheduling Bin Packing Approximationsschema Allgemeine

Für jedes Stück der Eingabe muss der Algorithmus sofort eine Entscheidung treffen.. Getroffene Entscheidungen können nicht