11. GRAPHEN 3 FLÜSSE UND SPANNBÄUME

Werbung
AlgorithmenundDatenstrukturen
11.GRAPHEN3
FLÜSSEUNDSPANNBÄUME
AlgorithmenundDatenstrukturen-Ma5hiasThimm([email protected])
1
AlgorithmenundDatenstrukturen
11.1. BERECHNUNG
MAXIMALERFLÜSSE
AlgorithmenundDatenstrukturen-Ma5hiasThimm([email protected])
2
Problemstellungen
Maximaler Fluss
•  Logistische Aufgabe:
–  Verteilungsnetz mit Kapazitäten
•  Wasserrohre
•  Förderbänder
•  Paketvermittlung im Rechnernetz
•  Quelle liefert (beliebig viele) Objekte pro
Zeiteinheit
•  Senke verbraucht diese
•  Jede Verbindung hat eine maximale Kapazität c
und einen aktuellen Fluss f
•  Wie hoch ist die Übertragungskapazität?
AlgorithmenundDatenstrukturen-Ma5hiasThimm([email protected])
3
Problemstellungen
Problemformalisierung
Gegeben:
Digraph(V,E)mitKapazitätsfunkOonc:E→,
R
Knotenq∈V(Quelle)undz∈V(Ziel)
4
2
4
4
5
q 1
6
5
6 z
6
12
10
3
5
AlgorithmenundDatenstrukturen-Ma5hiasThimm([email protected])
5
4
Problemstellungen
Definition: Fluss Ein Fluss f von q∈V nach z∈V ist eine Funktion
fq,z : E ! R
für die die folgenden zwei Bedingungen gelten:
1.  Die Kapazitäten werden eingehalten:
8e 2 E : fq,z (e)  c(e)
2.  Was in einen Knoten hereinfließt, muss wieder
herausfließen (mit Ausnahme von q und z):
X
X
8v 2 V \ {q, z} :
f ((u, v)) =
f ((v, w))
u2P (v)
w2S(v)
wobei P (v) = {u|(u, v) 2 E} (Vorgänger von v)
S(v) = {w|(v, w) 2 E} (Nachfolger von v)
und
AlgorithmenundDatenstrukturen-Ma5hiasThimm([email protected])
5
Problemstellungen
Maximaler Fluss
•  Wert eines Flusses
val(G, fq,z ) =
X
fq,z ((q, u))
u2S(q)
•  Gesucht: Wert eines maximalen Flusses
max{val(G, f )|f ist Fluss von q nach z}
f
AlgorithmenundDatenstrukturen-Ma5hiasThimm([email protected])
6
Problemstellungen
Beispiel1/3
Definieref1durch
f1((1,2))=2 f1((1,3))=4 f1((2,4))=1 f1((2,5))=1 f1((3,2))=0
f1((3,5))=4 f1((4,5))=0 f1((4,6))=1 f1((5,6))=5 →val(G,f1)=6
2
5
2
q 1
10
4
1
4
4
1
0
5
6
0
3
4
1
6 z
6
5
4
5
AlgorithmenundDatenstrukturen-Ma5hiasThimm([email protected])
5
7
12
Problemstellungen
Beispiel2/3
Definieref2durch
f2((1,2))=5 f2((1,3))=3 f2((2,4))=4 f2((2,5))=1 f2((3,2))=2
f2((3,5))=1 f2((4,5))=1 f2((4,6))=3 f2((5,6))=3 →f2istkeinFluss
2
5
5
q 1
10
3
4
4
4
1
1
5
6
2
3
4
3
6 z
6
3
1
5
AlgorithmenundDatenstrukturen-Ma5hiasThimm([email protected])
5
8
12
Problemstellungen
Beispiel3/3
Definieref3durch
f3((1,2))=5 f3((1,3))=9 f3((2,4))=4 f3((2,5))=5 f3((3,2))=4
f3((3,5))=5 f3((4,5))=0 f3((4,6))=4 f3((5,6))=10
→val(G,f3)=14(f3istmaximal)
4
4
2
5
5
q 1
10
9
4
5
0
5
6
4
3
4
4
6 z
6
10
5
5
AlgorithmenundDatenstrukturen-Ma5hiasThimm([email protected])
5
9
12
Algorithmen
Berechnung eines maximalen Flusses
•  Ford-Fulkerson-Algorithmus
–  EffizienteBesOmmungeinesmaximalenFlussesvon
qnachz
–  Vorgehensweise:MischungausGreedyundZufallsauswahl
•  Prinzip:FügesolangeverfügbarePfadezumGesam5luss
hinzuwiemöglich.
•  FindeneinesnutzbarenPfadesetwadurchTiefensuche
•  FürKantenwerdendreiWertenoOert:
1.  AktuellerFlussfentlangderKante
• 
IminiOalisiertenGraphenistdieserWertüberall0
2.  VorgegebeneKapazitätc
3.  Abgeleitetenochverfügbare(Rest-)Kapazitätc-f
AlgorithmenundDatenstrukturen-Ma5hiasThimm([email protected])
10
Algorithmen
Ford-Fulkerson-Algorithmus (Pseudocode)
VorläufigeVersion:
initialisiere Graph mit leerem Fluss;
do
wähle nutzbaren Pfad aus;
füge Fluss des Pfades zum Gesamtfluss hinzu;
while noch nutzbarer Pfad verfügbar
§  NutzbarerPfad
§  (zyklenfreier)PfadvonQuelleqzumZielz,deranallenKanteneine
verfügbareKapazitäthat
§  NutzbarerFluss
§  MinimumderverfügbarenKapazitätendereinzelnenKanten
AlgorithmenundDatenstrukturen-Ma5hiasThimm([email protected])
11
Algorithmen
Beispiel: Ford-Fulkerson-Algorithmus
2
4
4
4
5
s 1
6
5
6 t
6
12
10
3
5
5
GraphmitKapazitäten
AlgorithmenundDatenstrukturen-Ma5hiasThimm([email protected])
12
Algorithmen
Beispiel: Ford-Fulkerson-Algorithmus
2
0/4/4
4
0/4/4
0/5/5
s 1
0/6/6
0/5/5
0/6/6
6 t
0/10/10
0/12/12
3
0/5/5
5
IniOalisieremitFluss:0
NotaOon:<aktuellerFlussf>/<Kapazitätc>/<verfügbareKapazitätc-f>
AlgorithmenundDatenstrukturen-Ma5hiasThimm([email protected])
13
Algorithmen
Beispiel: Ford-Fulkerson-Algorithmus
AuswahlnutzbarerPfade:zufälligodergeeigneteHeurisOk
Anmerkung:esgibtkürzerePfadeundmithöhererKapazität
2
0/4/4
4
0/4/4
0/5/5
s 1
0/6/6
0/5/5
0/6/6
6 t
0/10/10
0/12/12
3
0/5/5
5
AuswahleinesPfades:1à2à5à6NutzbarerFluss:5
AlgorithmenundDatenstrukturen-Ma5hiasThimm([email protected])
14
Algorithmen
Beispiel: Ford-Fulkerson-Algorithmus
2
0/4/4
4
0/4/4
5/5/0
s 1
0/6/6
5/5/0
0/6/6
6 t
0/10/10
5/12/7
3
0/5/5
5
AktualisierendesFlusses
AuswahleinesPfades:1à3à5à6NutzbarerFluss:5
AlgorithmenundDatenstrukturen-Ma5hiasThimm([email protected])
15
Algorithmen
Beispiel: Ford-Fulkerson-Algorithmus
2
0/4/4
4
0/4/4
5/5/0
s 1
0/6/6
5/5/0
0/6/6
6 t
5/10/5
10/12/2
3
5/5/0
5
AktualisierendesFlusses
AuswahleinesPfades:1à3à2à4à6NutzbarerFluss:4
AlgorithmenundDatenstrukturen-Ma5hiasThimm([email protected])
16
Algorithmen
Beispiel: Ford-Fulkerson-Algorithmus
2
4/4/0
4
4/4/0
5/5/0
s 1
4/6/2
5/5/0
0/6/6
6 t
9/10/1
10/12/2
3
5/5/0
5
AktualisierendesFlusses
AlgorithmenundDatenstrukturen-Ma5hiasThimm([email protected])
17
Algorithmen
Beispiel: Ford-Fulkerson-Algorithmus
2
4/4/0
4
4/4/0
5/5/0
s 1
4/6/2
5/5/0
0/6/6
6 t
9/10/1
10/12/2
3
5/5/0
5
KeineweiterenPfademöglichèBerechnungbeendet
MaximalerFluss:14
AlgorithmenundDatenstrukturen-Ma5hiasThimm([email protected])
18
Algorithmen
Problem: Ungünstige Pfadwahl
•  DiebisherbetrachteteVersiondesAlgorithmusist
nichtimmeropOmal
2
0/5/5
s 1
0/5/5
4
0/5/5
t
0/5/5
0/5/5
3
AuswahleinesPfades:1à3à2à4NutzbarerFluss:5
AlgorithmenundDatenstrukturen-Ma5hiasThimm([email protected])
19
Algorithmen
Problem: Ungünstige Pfadwahl
•  DiebisherbetrachteteVersiondesAlgorithmusist
nichtimmeropOmal
2
0/5/5
s 1
5/5/0
t
0/5/5
5/5/0
AktualisierendesFlusses
4
5/5/0
3
KeineweiterePfadwahlmehrmöglich(opOmalLösungaberPfade(1,2,4)und(1,3,4))
AlgorithmenundDatenstrukturen-Ma5hiasThimm([email protected])
20
Algorithmen
Problem: Ungünstige Pfadwahl
•  Problem:Flusskannnichtzurückgenommenwerden
•  Lösung:erlaubeentgegengesetzteFlussrichtungdurch
Rückkanten
2
0/5/5
s 1
0/5/5
0/0/0
0/0/0
0/0/0 0/5/5
0/0/0
0/0/0
0/5/5
4
t
0/5/5
3
AuswahleinesPfades:1à3à2à4NutzbarerFluss:5
AlgorithmenundDatenstrukturen-Ma5hiasThimm([email protected])
21
Algorithmen
Problem: Ungünstige Pfadwahl
•  Problem:Flusskannnichtzurückgenommenwerden
•  Lösung:erlaubeentgegengesetzteFlussrichtungdurch
Rückkanten
2
0/5/5
s 1
5/5/0
-5/0/5
0/0/0
-5/0/5 5/5/0
-5/0/5
0/0/0
5/5/0
4
t
0/5/5
3
AktualisierendesFlusses
AuswahleinesPfades:1à2à3à4NutzbarerFluss:5
AlgorithmenundDatenstrukturen-Ma5hiasThimm([email protected])
22
Algorithmen
Problem: Ungünstige Pfadwahl
•  Problem:Flusskannnichtzurückgenommenwerden
•  Lösung:erlaubeentgegengesetzteFlussrichtungdurch
Rückkanten
2
5/5/0
s 1
-5/0/5
0/0/0
5/5/0
-5/0/5
4
0/5/5
-5/0/5
-5/0/5
5/5/0
t
5/5/0
3
AktualisierendesFlusses
KeineweiterenPfademöglichèBerechnungbeendet(MaximalerFluss:10)
AlgorithmenundDatenstrukturen-Ma5hiasThimm([email protected])
23
Algorithmen
Ford-Fulkerson-Algorithmus (Pseudocode)
FinaleVersion:
für jede Kante (u,v) füge Kante (v,u)
mit Kapazität 0 ein
initialisiere Graph mit leerem Fluss;
do
wähle nutzbaren Pfad aus;
füge Fluss des Pfades zum Gesamtfluss hinzu;
while noch nutzbarer Pfad verfügbar
AlgorithmenundDatenstrukturen-Ma5hiasThimm([email protected])
24
Analysen
Analyse
Theorem(Terminierung)
SindalleKapazitäteninGnicht-negaOvundra<onal,dann
terminiertderAlgorithmusvonFord-Fulkersonnach
endlicherZeit.
OhneBeweis
Theorem(Laufzeit)
IstXderWerteinesmaximalesFlussesinG=(V,E)undsind
alleKapazitäteninGnicht-negaOvundganzzahlig,sohat
derAlgorithmusvonFord-FulkersoneineLaufzeitvon
O(|E|X).
OhneBeweis
AlgorithmenundDatenstrukturen-Ma5hiasThimm([email protected])
25
Analysen
Analyse
Theorem(Korrektheit)
SindalleKapazitäteninGnicht-negaOvundra<onal,
dannberechnetderAlgorithmusvonFord-Fulkerson
denWerteinesmaximalenFlusses.
OhneBeweis
AlgorithmenundDatenstrukturen-Ma5hiasThimm([email protected])
26
Analysen
Ford-Fulkerson-Algorithmus
§  WahldesPfadesbeeinflusstAnzahlbenöOgterIteraOonen
§  VerfahrenvonEdmondsundKarp
§  AnzahlderPfadedieineinemGraphenG=(V,E)bis
zumFindendesmaximalenFlussesverfolgtwerden
müssenistkleinerals|V||E|,wennjeweilsderkürzeste
PfadvonQuelleqzuZielzgewähltwird
§  Daher:Auswahldesnächsten(kürzesten)Pfadeskann
basierendaufeinerVariantederBreitensucheerfolgen
§  VerbessertdieLaufzeitaufO(|V||E|2)
AlgorithmenundDatenstrukturen-Ma5hiasThimm([email protected])
27
AlgorithmenundDatenstrukturen
11.1. BERECHNUNG
MAXIMALERFLÜSSE
ZUSAMMENFASSUNG
AlgorithmenundDatenstrukturen-Ma5hiasThimm([email protected])
28
Zusammenfassung
•  BerechnungeinesmaximalesFlusses
•  AlgorithmusvonFord-Fulkerson
–  Idee:FügesolangeverfügbarePfadezumGesamqluss
hinzuwiemöglich
–  EinfügungvonRückwärtskantennotwendigum
OpOmalitätzugaranOeren
–  LaufzeitabhängigvonErgebniswert
–  Nurfürnicht-negaOveundraOonaleKapazitätenkorrekt
AlgorithmenundDatenstrukturen-Ma5hiasThimm([email protected])
29
AlgorithmenundDatenstrukturen
11.2.SPANNBÄUME
AlgorithmenundDatenstrukturen-Ma5hiasThimm([email protected])
30
Problemstellungen
Beispiel: Kommunikationsnetz
•  Zwischen n Knotenpunkten v1, …, vn soll ein möglichst
günstiges Kommunikationsnetz geschaltet werden, so
dass jeder Knotenpunkt mit jedem anderen verbunden
ist, ggf. auf einem Umweg über andere Knotenpunkte.
•  Bekannt sind Kosten ci,j für die direkte Verbindung
zwischen vi und vj, 1 ≤ i,j ≤ n.
•  Alle Kosten ci,j seien verschieden und größer als Null.
•  Modellierung als gewichtete, ungerichtete und
vollständige Graphen mit Gewichtsfunktion c
AlgorithmenundDatenstrukturen-Ma5hiasThimm([email protected])
31
Problemstellungen
Beispiel: Eingabe für Kommunikationsnetz
§  G=(V,E)
§  V={v1,…,v5}
§  E={(v1,v2),(v1,v3),(v1,v4),
(v1,v5),(v2,v3),(v2,v4),(v2,v5),(v3,v4),(v3,v5),(v4,v5)}
§  c((v1,v2))=6,c((v1,v3))=7,etc.;abgekürzt:c1,2=6,c1,3=7,etc.
AlgorithmenundDatenstrukturen-Ma5hiasThimm([email protected])
32
Problemstellungen
Problemstellung: Finde minimal aufspannenden Baum
EinigeDefiniOonen(Wdh.):
•  EinGraphG=(V,E)heisstzusammenhängend,wenn
fürallev,w∈VeinWegvonvnachwinGexisOert
•  EinGraphG=(V,E)enthälteinenKreis,wennes
unterschiedlicheKnotenv1,…,vn∈Vgibt,sodass
{v1,v2},…,{vn-1,n},{vn,v1}∈E
•  EinGraphG=(V,E)heisstBaum,wenner
–  zusammenhängendistund
–  keinenKreisenthält
AlgorithmenundDatenstrukturen-Ma5hiasThimm([email protected])
33
Problemstellungen
Problemstellung: Finde minimal aufspannenden Baum
EinigeDefiniOonen(Wdh.):
•  EinGraphG’=(V’,E’)heisstTeilgraphvonG=(V,E),wenn
V’⊆VundE‘⊆E∩(V‘xV‘)
•  EinGraphG’=(V’,E’)heisstinduzierterTeilgraphvon
G=(V,E)bzglV’⊆V,wennE‘=E∩(V‘xV‘)
•  EinGraphG‘=(V‘,E‘)heisstSpannbaumvonG=(V,E),
wenn
–  G‘istTeilgraphvonG,
–  V‘=Vund
–  G‘isteinBaum
Frage:WievieleKantenhateinSpannbaum?
AlgorithmenundDatenstrukturen-Ma5hiasThimm([email protected])
34
Problemstellungen
Problemstellung: Finde minimal aufspannenden Baum
WeitereDefiniOonen:
•  DasGewichteinesGraphenG=(V,E)ist
X
C(G) =
ci,j
(i,j)2E
•  EinGraphG‘=(V‘,E‘)isteinminimalerSpannbaum
vonG=(V,E)wenn
–  G‘isteinSpannbaumvonG
–  UnterallenSpannbäumenvonGhatG‘minimalesGewicht
Aufgabe:GegebenG=(V,E),findeeinenminimalen
SpannbaumvonG
AlgorithmenundDatenstrukturen-Ma5hiasThimm([email protected])
35
Algorithmen
Beispiel
AlgorithmenundDatenstrukturen-Ma5hiasThimm([email protected])
36
Algorithmen
Lösungsansatz: Algorithmus von Prim
•  Vorgehensweise
–  Schrittweise Verfeinerung
–  Aufbau eines aufspannenden Baumes durch
Hinzufügen von Kanten
•  Greedy-Muster
–  Jeweils kostengünstigste geeignete Kante als
Erweiterung
AlgorithmenundDatenstrukturen-Ma5hiasThimm([email protected])
37
Algorithmen
Aufspannender minimaler Baum
Pseudocode:
// Teilbaum B besteht anfangs aus einem
// beliebigen Knoten
while [ B noch nicht GV aufspannt ]
do [ suche kostengünstige von B ausgehende Kante ];
[ füge diese Kante zu B hinzu ];
od
AlgorithmenundDatenstrukturen-Ma5hiasThimm([email protected])
38
Algorithmen
Beispiel
AlgorithmenundDatenstrukturen-Ma5hiasThimm([email protected])
39
Analysen
Analyse
Theorem(Terminierung)
DerAlgorithmusvonPrimterminiertnachendlicher
Zeit.
Beweis:
EinfacheSchleifenanalyse.
Theorem(Laufzeit)
WirdfürdieImplemenOerungeinFibonacci-Heap
benutzt,sohatderAlgorithmusvonPrimeineLaufzeit
vonO(|E|+|V|log|V|).
OhneBeweis
AlgorithmenundDatenstrukturen-Ma5hiasThimm([email protected])
40
Analysen
Analyse
Theorem(Korrektheit)
IstGeinverbundenerungerichtetergewichteterGraph,so
berechnetderAlgorithmusvonPrimeinenminimalen
SpannbaumvonG.
Beweis:
Betrachte
while [ B noch nicht GV aufspannt ]
do [ suche kostengünstige von B ausgehende Kante ];
[ füge diese Kante zu B hinzu ];
od
Beobachtung:
•  BistamEndeeinBaum
•  BistamEndeeinSpannbaum
AlgorithmenundDatenstrukturen-Ma5hiasThimm([email protected])
41
Analysen
Analyse
Nochzuzeigen:BistamEndeeinminimaler
Spannbaum.
while [ B noch nicht GV aufspannt ]
do [ suche kostengünstige von B ausgehende Kante
[ füge diese Kante zu B hinzu ];
od
SeiB‘einminimalerSpannbaumvonGundB≠B‘.
BetrachtedenZeitpunktinderHauptschleife,andem
sichdieKonstrukOonvonBvonB‘unterscheidet.
SeiedieKante,diedannzuBhinzugefügtwird.
SeiV1dieMengederKnoten,dieschoninBsindund
V2=V\V1
AlgorithmenundDatenstrukturen-Ma5hiasThimm([email protected])
42
];
Analysen
Analyse
DaB‘einminimalerSpannbaumist,gibteseineKante
e‘,dieV1mitV2verbindet.
DaimAlgorithmusstetseinegünsOgsteKantegewählt
wird,mussgelteng(e)≤g(e‘).
TauschenwirinB‘dieKantee‘durcheerhaltenwir
alsoeinenminimalenSpannbaum,dernichtmehr
kostetalsB‘,esfolgtg(e)=g(e‘).
IndukOvfolgtdamitdieKorrektheit.
AlgorithmenundDatenstrukturen-Ma5hiasThimm([email protected])
43
AlgorithmenundDatenstrukturen
11.2SPANNBÄUME
ZUSAMMENFASSUNG
AlgorithmenundDatenstrukturen-Ma5hiasThimm([email protected])
44
Zusammenfassung
•  Spannbaum:Subgraph,deralleKnotenundgenau
|V|-1Kantenenthält
•  MinimalerSpannbaum:Spannbaummitminimalem
Gesamtgewicht
•  AlgorithmusvonPrim
–  Idee:WählestetsgünsOgstevomaktuellenBaum
ausgehendeKanteaus
AlgorithmenundDatenstrukturen-Ma5hiasThimm([email protected])
45
Herunterladen