• Keine Ergebnisse gefunden

6.1 Minimale Schnitte

N/A
N/A
Protected

Academic year: 2021

Aktie "6.1 Minimale Schnitte"

Copied!
13
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

6.1 Definition EinMultigraphist eine Struktur(V,E,v), die aus einer Menge V von Knoten und einer MengeEvon Kanten besteht und einer Funktionv, die jeder Kante die Menge ihrer zwei (nicht notwendig verschiedenen) Endpunkte zuweist.

Bei Multigraphen können zwei Knoten also durch mehrere, wohl unterschiedene Kanten miteinander verbunden sein. Man spricht auch vonMehrfachkanten. 3 In diesem Kapitel sind alle Graphen Multigraphen ohne Schlingen mitungerichtetenKanten.

6.2 Im Folgenden bezeichnen wir stets mit ndie Anzahl der Knoten und mitmdie Anzahl der Kanten eines Multigraphen. Im Gegensatz zu „normalen“ Graphen ist alsomim allgemeinen nichtdurchO(n2)nach oben beschränkt.

6.3 Multigraphen kann man mit Datenstrukturen repräsentieren, die leichte Erweiterungen von Adjazenzmatrizen bzw. Adjazenzlisten sind, wie man sie für normale Graphen kennt.

In der AdjazenzmatrixAspeichert der EintragA[x,y], wie viele Kanten es zwischenxund ygibt. Analog kann man bei Adjazenzlisten vorgehen. Weil es weiter unten von Vorteil ist, soll zusätzlich in einer Variablenndie Anzahl Knoten, in einer Variablenmdie Gesamtzahl Kanten und in einem VektorMfür jeden Knoten die Zahl der von ihm ausgehenden Kanten gespeichert sein. Für allexgelte alsoM[x] =P

yA[x,y]und es seiP

xM[x] =2m.

Zeilen und Spalten seien jeweils von1bisndurchnummeriert.

6.1 Minimale Schnitte

In diesem Abschnitt beschäftigen wir uns mit dem Problem, minimale Schnitte in Multigraphen zu berechnen.

6.4 Definition EinSchnittin einem MultigraphenG(V,E)ist durch eine PartitionierungV=C∪C¯ der Knotenmenge in zwei disjunkte Teilmengen gegeben. DieGrößeeines Schnittes ist die Anzahl der Kanten{x,y}mitx∈Cundy∈C.¯

Ein minimaler Schnitt ist ein Schnitt mininaler Größe. 3

6.5 Lemma. Wenn in einem Multigraphen die minimalen Schnitte Größekhaben, dann ist auch der Grad jedes Knotens mindestensk. Für die Anzahl der Kanten gilt folglich:m>nk/2.

6.6 Beweis. Andernfalls würde die Partitionierung, die inCnur einen Knotenxmit Grad kleiner als kenthält, und in ¯C=Vr{x}alle anderen Knoten, einen Schnitt mit Größe kleiner alskliefern.

6.7 Definition Es seiGein Multigraph undxundyzwei Knoten vonG, die durch mindestens eine Kanteemiteinander verbunden sind. Der durch dieKontraktionvoneentstehende Multigraph G/ewie folgt definiert:

• Seine Knotenmenge istV0= (Vr{x,y})∪{z}, wobeizein neuer Knoten ist.

(2)

• Seine Kantenmenge ergibt sich ausE, indem alle Kanten zwischenxundyentfernt werden,

jede Kante, die inGeinen Knotenv∈Vr{x,y}mit einem Knoten aus{x,y}verband, durch eine Kante zwischenvundzersetzt wird und

alle anderen Kanten vonGübernommen werden.

Falls man nacheinander alle Kanten einer KantenteilmengeX⊂Ekontrahiert, so ist die Reihen- folge, in der die Kanten kontrahiert für das Ergebnis irrelevant. Daher schreibt man in diesem

Fall dann einfachG/Xfür den kontrahierten Graphen. 3

Bei der Kontraktion einer Kante verringert sich die Knotenzahl um genau1.

6.8 Durch die Kontraktion einer Kante können (zusätzliche) Mehrfachkanten entstehen. Abbildung6.1 zeigt ein einfaches Beispiel.

v

x

y e1

e2

e v z

e1 e2

Abbildung 6.1: Durch Kontraktion der Kanteeentstehen Mehrfachkanten.

6.9 Lemma. IstGein Multigraph mit einer Kantee, so sind die minimalen Schnitte vonG/emindes- tens so groß wie die vonG.

6.10 Beweis. Man betrachte einen minimalen Schnitt (K, ¯K)von G/e; seine Größe sei k. O. B. d. A.

seien die EndknotenxundyvoneinK. Indem man diese beiden Knoten „aus der Kontraktion auspackt“ und in der gleichen Teilmenge belässt, erhält man einen Schnitt vonG, dessen Größe ebenfallskist. Also haben die minimalen Schnitte vonGhöchstensGrößek.

6.11 Algorithmus. (Kontraktion) Es seiAdie Adjazenzmatrix eines MultigraphenGundeeine Kante zwischenxundy > x. Die Datenstrukturen fürG/elassen sich wie folgt berechnen:

proc graph←Kontraktion(graphG,edgee)

hIdee: benutze Zeile/Spaltexfür den kontrahierten Knoteni h und Zeile/Spalteyfür das, was bislang in Zeilenstandi hAktualisierung der Kantenzahleni

m←m−A[x,y]

M[x]←M[x] +M[y] −2·A[x,y]

M[y]←M[n]

hAktualisierung von Zeile/Spaltex:i A[x,·]←A[x,·] +A[y,·]

A[·,x]←A[·,x] +A[·,y]

A[x,x]←0

hAktualisierung von Zeile/Spaltey:i A[y,·]←A[n,·]

A[·,y]←A[·,n]

(3)

hdie bisherige Zeilenist nun bedeutungslosi n←n−1

returnhGraph, der zu den neuen Datenstrukturen gehörti

Dieser Algorithmus benötigt offensichtlich LaufzeitO(n). 6.12 Algorithmus. (IterierteKontraktion)

hEingabe: ein MultigraphG(V,E)i hAusgabe: ein SchnittCi

H←G

while(Hhat mehr als2Knoten und mindestens1Kante)do e←hzufällig gleichverteilt gewählte Kante vonHi

H←Kontraktion(H,e) od

(C, ¯C)← hdie beiden Mengen (von Knoten vonG), die den beiden Knoten vonHentsprecheni

6.13 Satz. Algorithmus6.12kann so implementiert werden, dass seine Laufzeit inO(n2)ist.

6.14 Beweis. Jeder Aufruf der Funktion Kontraktion benötigt LaufzeitO(n). Bei jedem Schleifendurch- lauf wird die Anzahl der Knoten vonHum1erniedrigt, d. h. es gibtn−2solche Durchläufe.

Es bleibt zu zeigen, dass der Algorithmus so implementiert werden kann,

1. dass man gleichverteilt zufällig eine Kante des Multigraphen auswählen kann, und 2. dass die MengenCund ¯Chinreichend schnell beschafft werden können.

Das geht zum Beispiel so:

1.

i←random(1,2m)hBeachte: jede Kante wird gleich zweimal gezählt!i x←0;s←0

whiles < ido x←x+1 s←s+M[x]

od

i←i− (s−M[x]) y←0;s←0 whiles < ido

y←y+1 s←s+A[x,y]

od

hWähle Kante zwischenxundyi

2. Man führt in der Prozedur Kontraktion zusätzlich eine weitere Datenstruktur mit. Es handelt sich um eine boolesche Matrix Q mit so vielen Zeilen und Spalten wie der ur- sprüngliche GraphGKnoten hat. Eine1als Eintrag inQ[x,y]bedeutet, dass die Knoten, die ursprünglich die Nummernxundyhatten, durch Kontraktionen zusammengefasst wurden.

Initialisiert werden muss die Matrix also mit der Einheitsmatrix. Algorithmus6.11sollte also unmittelbar vor der letzten Zuweisungn←n−1um die folgenden Zeilen erweitert werden:

Q[x,·]←Q[x,·]∨Q[y,·]

(4)

Q[y,·]←Q[n,·]

Da am Ende sicher nur noch zwei zusammengefasste Knoten existieren, ist die Bestimmung vonCund ¯Cleicht:Cist z. B. durch die1-Einträge in der ersten Zeile vonQgegeben und C¯ durch die0-Einträge dieser Zeile.

6.15 Satz. Algorithmus6.12findet mit WahrscheinlichkeitΩ(n−2)einen minimalen Schnitt.

6.16 Beweis. Wir führen den Beweis in drei Schritten:

1. Es sei(C, ¯C)irgendein Schnitt des ursprünglichen Graphen (der noch keine Mehrfachkanten hat). Wir behaupten, dass Algorithmus6.12genau dann diesen Schnitt als Ergebnis liefert, wenn keine der Kanten, die über ihn läuft, während des Algorithmus kontrahiert wird:

Es sei e eine am Ende noch vorhandene Kante, „die“ ursprünglich zwei Knotenxund y verband. Dann ist nun etwax ∈ Cundy ∈C. Wäre die Kante¯ e kontrahiert worden, müssten aberxundyam Ende zum gleichen Knoten vonHgehören.

2. Es sei(K, ¯K)ein minimaler Schnitt vonGder Größe k. Nachi−1 Schleifendurchläufen sei noch keine Kante dieses Schnittes kontrahiert worden. Dann ist also(K, ¯K)auch ein Schnitt des dann erhaltenen Graphen Hi−1 und wegen Lemma 6.9 muss es auch ein minimaler Schnitt sein. Also enthältHi−1noch mindestens(n−i+1)k/2Kanten. Folglich ist die Wahrscheinlichkeit, dass als nächstes eine derkKanten, die zum SchnittKgehören, kontrahiert wird, höchstens 2/(n−i+1)und die Wahrscheinlichkeit, dass keine dieser Kanten kontrahiert wird, mindestens1−2/(n−i+1).

3. Die Wahrscheinlichkeit, dass in keinem der Schritte einer der Kanten des Schnittes K kontrahiert wird, ist daher mindestens

n−2Y

i=1

1− 2 n−i+1

= Qn−2

i=1(n−i−1) Qn−2

i=1(n−i+1) = (n−2)!

n!/2 = (n−2)!2! n! > 2

n2 ∈Ω(1/n2)

Die Erfolgs-Wahrscheinlichkeit von2/n2in Satz6.15ist natürlich sein klein. Um sie zu vergrößern, kann man den mehrfach ausführen und einen kleinsten der dabei auftretenden Schnitte als Ergebnis wählen.

Wählt mank=n2/2Wiederholungen, ist die Wahrscheinlichkeit, keinen minimalen Schnitt zu finden, noch

1− 2

n2 n2/2

< 1 e .

Weitere Rechnungen zeigen, dassk∈Ω(n2)Wiederholungen auch notwendig sind, um konstante Fehlerwahrscheinlichkeit zu erreichen. Die resultierende Gesamtlaufzeit ist damit inΘ(n4)im Gegensatz zuO(n3)für den schnellsten bekannten deterministischen Algorithmus.

Das Problem besteht im Grunde darin, dass die Wahrscheinlichkeit, „aus Versehen“ eine Kante des minimalen Schnittes zu kontrahieren zu groß ist, wenn der Graph schon weit kontrahiert wurde. Einen besseren Algorithmus erhält man, wenn randomisiert nur bis zu einem Graphen mittKnoten kontrahiert, und dann deterministisch weiter arbeitet.

(5)

6.17 Algorithmus. (Beschränkte iterierteKontraktion) proc graph←IterContract(graphG,intt)

hEingabe: ein MultigraphG(V,E,v)und Anzahltvon Knoten am Endei hAusgabe: ein kontrahierter GraphHi

H←G

while(Hhat mehr alstKnoten)do

e←hzufällig gleichverteilt gewählte Kante vonHi H←Kontraktion(H,e)

od returnH

6.18 Lemma. Dei Wahrscheinlichkeit, dass bei Algorithmus 6.17im Ergebnisgraphen Hnoch ein minimaler Schnitt des ursprünglichen Graphen „vorhanden“ ist, ist mindestens

t 2

/ n

2

.

6.19 Beweis. Eine Abschätzung analog wie in Beweis6.16ergibt in diesem Fall:

n−tY

i=1

1− 2 n−i+1

=

Qn−t

i=1(n−i−1) Qn−t

i=1(n−i+1) =

Qn−t−2

i=1 (n−i−1)t(t−1) n(n−1)Qn−t

i=3(n−i+1)

= t(t−1) n(n−1) =

t 2

/ n

2

∈Ω((t/n)2)

6.20 Algorithmus.

proc cut←IterContractDetMinCut(graphG,intt)

hEingabe: ein MultigraphG(V,E,v)und Anzahltvon Knoten für Zwischengrapheni hAusgabe: ein Schnitt vonGi

C← hein trivialer Schnitti fori←1ton2/t2do

H←IterContract(G,t) D←DetMinCut(H) C←min(C,D) od

returnC

6.21 Lemma. Wählt man in Algorithmus 6.20t = n2/3, dann ist die Laufzeit in O(n8/3)und die Wahrscheinlichkeit, einen minimalen Schnitt vonGzu erhalten mindestens1−1/e.

6.22 Beweis. Der Zeitbedarf ist offensichtlich n2

t2 ·(n2+t3) = n4

t2 +n2t.

Für den gewählten Wert vontsind beide Summanden größenordungsmäßig inO(n8/3). Die Fehlerwahrscheinlichkeit ist höchstens

1− t2

n2 n2/t2

< 1 e .

(6)

Man kann das Problem aber noch schneller lösen. Die Idee besteht darin, für im Laufe der Berechnung erhaltene kontrahierte Zwischengraphen umso häufiger (randomisiert) nach einem minimalen Schnitt zu suchen, je kleiner diese Graphen schon sind.

6.23 Algorithmus. (MinimalerSchnitt schnell) proc cut←FastCut(graphG):

hEingabe: ein MultigraphG(V,E,v)i hAusgabe: ein SchnittCi

if(|V|66)then

C← hminimaler Schnitt, mittels vollständiger Suche ermittelti else

t← d1+n/√ 2e

H1←IterContract(G,t) H2←IterContract(G,t) C1←FastCut(H1) C2←FastCut(H2)

C← hder kleinere der beiden SchnitteC1undC2i fi

6.24 Satz. Algorithmus6.23hat LaufzeitO(n2logn).

6.25 Beweis. Die maximale Rekursionstiefe istΘ(logn). Die beiden Aufrufe vonIterContractbenöti- gen eine Zeit inO(n2). (In dieser Zeit könnten sogar Kontraktionen auf Graphen mit2Knoten durchgeführt werden.) Also ist der GesamtzeitbedarfT(n)für Eingabegraphen mitnKnoten

T(n) =2·Tl 1+n/

√ 2m

+O(n2). Hieraus ergibt sichT(n)∈O(n2logn).

6.26 Satz. Algorithmus6.23liefert mit einer Wahrscheinlichkeit inΩ(1/logn)einen minimalen Schnitt.

6.27 Beweis. Es seiGein Eingabegraph für den Algorithmus, dessen minimale Schnitte die Größe k haben. Ein solcher Schnitt möge eine Reihe von rekursiven Aufrufen von FastCut bis zu einer Stelle „überlebt“ haben; der dann erreichte Graph heiße H. Die durch die Aufrufe von IterContractdaraus resultierenden Graphen seienH1undH2. Der Aufruf fürHwird als Ergebnis einen minimalen Schnitt fürGliefern, falls für einHi gilt:

1. Der Schnitt überlebt die Kontraktionen zur Konstruktion vonHi. 2. FastCut(Hi)findet einen minimalen Schnitt inHi.

Die Wahrscheinlichkeit für Punkt 1 ist nach Lemma6.18mindestens d1+t/√

2e(d1+t/√ 2e−1) t(t−1) > t/√

2·t/√ 2 t(t−1) >1

2 t2 t(t−1) > 1

2 .

Zu Punkt 2.: Wir interessieren uns nun für eineuntere Schrankep(r)der Wahrscheinlichkeit, dass FastCutrNiveaus über dem Rekursionsabbruch einen minimalen Schnitt findet. Man mache sich klar, dass die wie folgt definierten Werte solche untere Schranken darstellen:p(0) =1und

p(r+1) =1−

1−1 2·p(r)

2

=p(r) −p(r)2 4 .

(7)

Setzt manq(r) =4/p(r) −1, bzw.p(r) =4/(q(r) +1), so ergibt sich hieraus 4

q(r+1) +1 = 4

q(r) +1− 4

(q(r) +1)2 = 4q(r) (q(r) +1)2 und weiter

q(r+1) =q(r) +1+ 1 q(r)

Per Induktion kann man leicht zeigen, dass für allergilt:r < q(r)< r+3+Hr−1. (Zur Erinnerung:

Dier-te harmonische Zahl istHr=Pr

i=11/i.) Denn es gilt:

r+1 < q(r) +1 < q(r+1) =q(r) +1+ 1

q(r) < r+3+Hr−1+1+1

r = (r+1) +3+Hr. Daher ist q(r) ∈r+O(logr)und folglichp(r) ∈ Ω(1/r). Für einen Ausgangsgraphen mit n Knoten ist aber die Rekursionstiefe Θ(logn) und damit die gesuchte Wahrscheinlichkeit Ω(1/logn).

(8)

6.2 Minimale spannende Bäume

Ausgangspunkt für die in diesem Abschnitt betrachtete Problemstellung sind ungerichtete Gra- phen, deren Kantenemit reellen Zahlenw(e)gewichtet sind. DasGewichtw(T)eines Teilgraphen T ist die Summe der Gewichte der Kanten, die zuT gehören.

Mitnwird wieder die Anzahl der Knoten und mitmdie Anzahl der Kanten vonGbezeichnet.

6.28 Problem. (Minimum spanning trees(MST)) Gegeben: ein zusammenhängender ungerichteter GraphG= (V,E), dessen Kantenemit rellen Zahlenw(e)gewichtet sind.

Gesucht: ein Teilgraph vonG, der ein Baum ist, derGaufspannt und unter allen solchen Bäumen minimales Gewicht hat.

Ist der Ausgangsgraph nicht zusammenhängend, dann existiert nur ein minimaler aufspan- nender Wald (MSF), der aus den MST für die einzelne Zusammenhangskomponenten besteht.

6.29 Man kann ohne Beschränkung der Allgemeinheit davon ausgehen, dass die Gewichte aller Kanten eines Graphen paarweise verschieden sind. Das erreicht man nötigenfalls, indem man alle Kanten e1,. . .,ek mit gleichemw(e1) =· · ·=w(ek)willkürlich total ordnet und festlegt, dass eine in der Ordnung frühere Kante auch „leichter“ sei.

Die nachfolgend betrachteten Algorithmen haben übrigens die Eigenschaft, dass die tatsäch- lichen Gewichte irrelevant sind. Es werden immer nur Gewichte zweier Kanten miteinander verglichen, um herauszufinden, welche leichter ist.

6.2.1 Ein deterministischer Algorithmus für MST

Wir bezeichnen im Folgenden eine Kante alslokal minimal, wenn es einen Knoten gibt, mit dem sie inzidiert und unter allen diesen das kleinste Gewicht hat.

6.30 Lemma. Jede lokal minimale Kante gehört zu einem MST vonG.

6.31 Beweis. Es seiedie lokal minimale Kante eines Knotensx; der andere Endpunkt voneseiy. Es seiT0ein aufspannender Baum vonG, dernichteenthalte. Wir zeigen:T0hat nicht minimales Gewicht.

Dazu seie0die Kante vonT0, die vonxwegführt und inT0auf dem kürzesten Weg vonx nachyliegt. Man betrachte nun den GraphenT, der ausT0entsteht, indem mane0entfernt und ehinzunimmt. Wir behaupten:

1. w(T)< w(T0). 2. T spanntGauf.

3. T ist ein Baum.

Der Reihe nach:

1. Das ist klar, dennw(e)< w(e0)undw(T) =w(T0) −w(e0) +w(e).

2. Es seizder andere Endpunkt vone0und es seienv1,v2 zwei Punkte vonG. Wenn der kürzeste Weg inT0 zwischen ihnene0 nichtbeinhaltet, dann sind die beiden in T0−e0 immer noch miteinander verbunden. Falls der Pfade0beinhaltete, dann kann man in T diese Kante ersetzen durch den Pfad vonxnachyund von dort zuz. Die beiden Punktev1 undv2sind also immer noch miteinander verbunden.

(9)

3. Angenommen, T enthielte einen Zyklus. Da T0 Baum war, muss der Zyklus die Kante e enthalten. Also gibt es in T0−e0 einen nicht verkürzbaren Pfad von xnach y. Dieser Pfad ist offensichtlich verschieden vom kürzesten Pfad inT0 vonxnach y, denn dieser beinhaltete Kantee0. Also gäbe es inT0zwei verschiedene (einer mit e0, einer ohnee0), nicht verkürzbare Pfade von x nach y. Also gäbe es in T0 auch schon einen Zyklus im Widerspruch dazu, dassT0Baum ist.

6.32 Korollar. Die lokal minimalen Kanten eines Graphen bilden einen Wald.

6.33 (Bor ˚uvka-Phase) Eine Bor ˚uvka-Phase ist ein Algorithmus, der folgendes leistet:

1. Er bestimmt die MengeL(G)aller lokal minimalen Kanten eines GraphenG.

2. Er berechnet den kontrahierten GraphenG/L(G). Falls Mehrfachkanten entstünden, wird nur die mit kleinstem Gewicht behalten und die anderen entfernt.

Der so ausGentstehende Graph werde mitB(G)bezeichnet.

6.34 Lemma. Eine Bor ˚uvka-Phase kann man in ZeitO(m+n)implementieren.

6.35 Beweis. Übung.

6.36 Lemma. Durch eine Bor ˚uvka-Phase wird die Anzahl der Knoten um mindestens die Hälfte reduziert.

6.37 Beweis. Eine Kante kann für höchstens zwei Knoten lokal minimal sein. Also werden in einer Bor ˚uvka-Phase mindestensn/2Kanten entfernt. Mit jeder entfernten Kante wird auch ein Knoten entfernt.

6.38 Lemma. Für jeden GraphenG gilt: Die Kanten in L(G) und die Kanten eines MST vonB(G) bilden zusammen einen MST vonG.

6.39 Beweis. Jeder aufspannende BaumT vonG, der alle Kanten ausL(G)enthält, induziert einen aufspannenden BaumT0vonB(G)mitw(T0) =w(T) −w(L(G)). Umgekehrt gilt auch, dass jeder aufspannde BaumT0vonB(G)einen aufspannenden Baum ¯T0vonGinduziert , der alle Kanten ausL(G)enthält und Gewichtw(T) =w(T0) +w(L(G))hat (überlegen Sie sich das).

Sei nun T einminimaleraufspannender Baum vonG(er enthält also alle Kanten ausL(G); siehe Lemma6.30) undB(T)der korrespondierende aufspannende Baum vonB(G). WäreB(T) nicht minimal fürB(G), sondern etwaT0, so hätte der dadurch induzierte aufspannende Baum ¯T0 vonGnur Gewichtw(T¯0) =w(T0) +w(L(G))< w(B(T)) +w(L(G)) =w(T)im Widerspruch zur Minimalität vonT.

6.40 Korollar. Wenn alle Kantengewichte paarweise verschieden sind, ist der MST eindeutig.

6.41 Algorithmus. (Bor ˚uvkasMST-Algorithmus) Man führt solange Bor ˚uvka-Phasen durch, bis der resultierende Graph höchstens noch zwei Knoten hat und führt Buch, welche Kanten jeweils kontrahiert werden. Wegen Lemma6.38ist dann klar, welche Kanten den MST bilden.

6.42 Lemma. Bor ˚uvkas MST-Algorithmus benötigtO(mlogn)Zeit.

6.43 Beweis. Nach Lemma6.36benötigt man nurO(logn)viele Phasen, von denen jede nach Lem- ma6.34nurO(m+n)Zeit benötigt. In zusammenhängenden Graphen istn∈O(m).

(10)

6.2.2 F-leichte und F-schwere Kanten

In diesem und im folgenden Abschnitt wird mitFein Wald in einem GraphenGbezeichnet, d. h.

also ein Teilgraph, der aus einem oder mehreren disjunkten Bäumen besteht.

6.44 Definition Es seiFein Wald inG,v1undv2zwei Knoten vonGundP(v1,v2)die Menge der Kanten des (kürzesten) Pfades inFvonv1 nachv2(falls er existiert; sonst seiP=∅). Wir setzen

WF(v1,v2) =

max{w(e)|e∈P(v1,v2)} fallsv1,v2 im gleichen Baum vonFliegen

∞ sonst

Eine Kante e = {v1,v2} heißtF-schwer, falls w(e) > WF(v1,v2)ist, und sie heißt F-leicht, falls

w(e)6WF(v1,v2). 3

6.45 Lemma. Es seiFein beliebiger(!) Wald vonGunde={v1,v2}eine Kante inG. Wenne F-schwer ist, dann gehörtenicht zum MST vonG.

Äquivalent ist: Wenn eine Kante zum MST gehört, dann ist sieF-leicht.

6.46 Beweis. Die Kantee={v1,v2}seiF-schwer und es bezeichnePden Pfad vonv1 nachv2, dessen Kanten alle leichter sind als die Kanteeselbst.

Bei der Bestimmung des MST etwa mit Bor ˚uvkas Algorithmus wirde nielokal minimale Kante vonv1 oderv2 sein, sondern immer eine der Kanten vonP. Also wirde auch nie zum (eindeutigen; siehe Korollar6.40) MST hinzugenommen.

6.47 Lemma. Ein aufspannender BaumT eines GraphenGist minimal, wenn die einzigenT-leichten Kanten inGdie Kanten vonT sind.

6.48 Beweis. Wenn die einzigenT-leichten Kanten inGdie Kanten vonT sind, dann sind alle Kanten, die nicht zuT gehörenT-schwer. Nach Lemma6.45gehören sie also sicher nicht zum MST vonG.

Also besteht der MST nur aus Kanten, die zuT gehören. Von ihnen kann man aber auch keine weglassen, da es dann kein aufspannender Baum vonGmehr ist.

Ohne einen der (nicht ganz einfachen) Algorithmen (siehe Dixon, Rauch und Tarjan1992; King 1997) anzugeben halten wir noch fest:

6.49 Satz. Zu einem GraphenGund einem WaldFinGkann man alleF-schweren Kanten vonGin Zeit O(m+n)finden.

6.2.3 Ein randomisierter MSF-Algorithmus

Es sei RandomSample(G,p)eine Funktion, die einen GraphenG0mit den gleichen Knoten wie in Gliefert, bei dem jede Kante vonGunabhängig mit WahrscheinlichkeitpzuG0hinzugenommen wird.

6.50 Lemma. Zu gegebenenGundpkann ein MSFF0für einG0=RandomSample(G,p)konstruiert werden, indem man einmal jede Kante vonGbetrachtet, sofern die Kanten nach aufsteigendem Gewicht sortiert vorliegen.

(11)

6.51 Beweis. Die Kantene1, . . . ,em vonG seien nach aufsteigendem Gewicht geordnet. Die Kon- struktion vonG0=RandomSample(G,p)erfolge, indem nacheinander für jedesidie Kanteei mit WahrscheinlichkeitpzuG0hinzu genommen werde.

Die Konstruktion des MSFF0kann in diesem Fall wie folgt erledigt werden:

F00 ← ∅ k←0

fori←1tomdo

ifRandomFloat(0,1)6pthen hnimmei={u,v}zuG0hinzui

ifuundvgehören zu verschiedenen Zusammenhangskomponenten vonFk−10 then k←k+1

Fk0 ←Fk−10 +ei fi

fi od

F0←Fk0 hist der MSFi

Offensichtlich wird durch diesen Algorithmus ein Wald konstruiert. Die Bedingung, dass die Enden uund v von ei zu verschiedenen Zusammenhangskomponenten von Fk0 gehören, ist äquivalent zu der Bedingung, dassei im betreffenden Schleifendurchlauf geradeFk0 leicht ist.

Nach Lemma 6.47ist das Endergebnis F0 genau dann MSF, falls er jede F0-leichte Kante vonG0 enthält. Wegen der aufsteigenden Gewichte der Kanten ist eine vonG0 genau dann F0-leicht, wenn e zu dem Zeitpunkt, zu dem es auf Zugehörigkeit zu Fk0 untersucht wird, Fk0-leicht ist. Und zu diesem Zeitpunkt ist e genau dann Fk0-leicht, wenn es verschiedenen Zusammenhangskomponenten vonFk0 verbindet.

6.52 Lemma. Es sei F0 ein minimaler aufspannender Wald von G0 = RandomSample(G,p). Der Erwartungswert für die Anzahl derF0-leichten Kanten vonG(!) ist kleiner oder gleichn/p.

6.53 Beweis. Da der MST eindeutig ist, ist es für die Aussage gleichgültig, mit welchem Algorithmus er berechnet wird.

Betrachten wir den Algorithmus aus Beweis6.51. AlsPhasei(i>1) bezeichnen wir die Reihe Schleifendurchläufe, zu deren Beginnkimmer den Werti−1hat. Salopp gesprochen beginnt Phasei, nachdemFi−10 gebildet wurde und endet mit der Bildung vonFi0.

Während jeder Phase werden sowohl einige Fi−10 -schwere Kanten betrachtet, die für den Beweis offensichtlich irrelevant sind, und einigeFi−10 -leichte Kanten.

Jede Kante vonG, dieFi−10 -leicht ist, hat Wahrscheinlichkeitp, dass sie zuG0und folglich zu Fi−10 hinzu genommen wird. Und mit der ersten Wahl einer solchen Kante endet die Phase auch.

Folglich ist die Anzahl der in PhaseibetrachtetenFi−10 -leichten Kanten geometrisch verteilt mit Parameterp. Der Erwartungswert für die Anzahl ist1/p.

Am Ende ist|F0|=k6n−1. Folglich ist die ZufallsvariableXder bis zum Ende von Phasek betrachteten leichten Kanten die Summe vonkidentisch geometrisch verteilten unabhängigen Zufallsvariablen. Um die danach noch betrachteten, aber nicht hinzugenommenen Kanten mit zu berücksichtigen, stelle man sich vor, dass diefor-Schleife noch länger durchlaufen werde, bis insgesamtnmal die Bedingung RandomFloat(0,1)< perfüllt war. Der Erwartungswert für die Anzahl Schritte, bis das jeweils einmal der Fall war, ist ebenfalls1/p. Es bezeichneY die Zufallsvariable für die dafür insgesamt notwendige Anzahl von Schleifendurchläufen.

(12)

Dann gilt für alle z: P(X > z) 6 P(Y > z) (man sagt, dass Xvon Y stochastisch dominiert werde). Es gilt dann auchE[X]6E[Y]. Dieser Erwartungswert ist aberE[Y] =n/p.

Der Algorithmus aus Beweis6.51dient nur dazu, den Beweis von Lemma6.52zu erleichtern;

dessen Aussage ist aber unabhängig davon, wie man den MSF konstruiert hat. Der Algorithmus ist im Weiteren nichtvon Bedeutung Es ist also z. B. nicht notwendig, dass die Kanten nach Gewicht sortiert vorliegen.

6.54 Algorithmus.

procF←MSF(G):

hEingabe: gewichteter ungerichteter GraphGmitnKnoten undmKanteni hAusgabe: der minimale aufspannende WaldFvonGi

1. G1←B(B(B(G)))

C1← hdie Kanten, die bei der Berechnung vonG1kontrahiert werdeni ifhG1enthält keine Kanten mehrithen

F←C1 returnF fi

2. G2←RandomSample(G1,1/2) 3. F2←MSF(G2)

4. C2← hdieF2-schweren Kanten inG1i G3← hG1ohne die Kanten inC2i 5. F3←MSF(G3)

6. F←C1∪F3 returnF

6.55 Satz. Algorithmus6.54berechnet den MSF des EingabegraphenG. 6.56 Beweis.

zu 1. Nach Lemma6.38ist klar, dass die Kanten ausC1 zum MSF vonGgehören. EnthältG1 keine weiteren Kanten, dann bilden also die Kanten ausC1gerade den MSF.

zu 3. F2ist ein Wald inG2und folglich auch inG1undG.

zu 4. Nach Lemma6.45gehören dieF2-schweren Kanten vonG1nicht zum MSF vonG1. Folglich hatG3den gleichen MSF wieG1,

zu 5. der alsF3berechnet wird.

zu 6. Wieder nach Lemma6.38ist daherC1∪F3ein MSF und also (wegen Zusammenhang) ein MST vonG.

6.57 Satz. Der Erwartungswert für die Laufzeit von Algorithmus6.54istO(m+n).

6.58 Beweis. Es bezeichneT(n,m)den Erwartungswert der Laufzeit von Algorithmus6.54für Einga- begraphen mitnKnoten undmKanten. Für die einzelnen Schritte gilt:

1. Laufzeit istO(m+n). UndG1hat höchstensn/8Knoten undmKanten.

(13)

2. Laufzeit istO(m+n). UndG2hat höchstensn/8Knoten und der Erwartungswert für die Anzahl Kanten istm/2.

3. Erwartungswert für die Laufzeit istT(n/8,m/2).

4. Laufzeit istO(m+n). UndG3 hat höchstens n/8 Knoten und Erwartungswert für die Anzahl Kanten ist(n/8)/(1/2) =n/4(nach Lemma6.52).

5. Erwartungswert für die Laufzeit istT(n/8,n/4). 6. Laufzeit istO(n).

Insgesamt ergibt sich

T(n,m)6T(n/8,m/2) +T(n/8,n/4) +c(n+m). Als Lösung dieser Rekurrenzungleichung ergibt sichT(n,m)∈O(n+m).

Literatur

Dixon, B., M. Rauch und R. E. Tarjan (1992). „Verification and Sensitivity Analysis of Minimum Spanning Trees in Linear Time“. In:SIAM Journal on Computing21.6, S. 1184–1192 (siehe S.60).

King, Valerie (1997). „A Simpler Minimum Spanning Tree Verification Algorithm“. In:Algorithmica 18.2, S. 263–270 (siehe S.60).

Referenzen

ÄHNLICHE DOKUMENTE

Ein (allgemeiner) Graph besteht aus einer Menge von Knoten V und einer Menge von Kanten E : G = ( V , E ). Wir konzentrieren uns zun¨achst auf ungerichtete bipartite Gra- phen,

Dazu setzen wir im Folgenden voraus, dass Q eine nicht ausgeartete quadratische Form ist, dim(V ) ≥ 3 gilt und dass der Witt Index mindestens 1

In der Auswertung kann dann genau auf die Reaktion eingegangen werden, sodass der Versuch auch einen

Ausdrucksauswertung, aber mit abstrakten Werten und Operatoren.. Abstrakte Ausdrucksauswertung ist

Der Landebetrieb Bau- und Liegenschaftsmanagement Sachsen-Anhalt (Landesbetrieb BLSA) informiert Sie hiermit über die Erhebung, Speicherung, Nutzung und Verarbeitung

Lineare Algebra II Pr¨ asenzaufgaben, Teil 1?.

b) Es gibt eine erkennbare Sprache, f¨ur die es keinen ¨aquivalenten NEA mit genau einem Endzustand gibt. Wenden Sie auf folgenden NEA die Potenzmengenkonstruktion an und berechnen

• &lt; ist linear, d.h. zwischen zwei beliebigen Elemente existiert immer noch ein weiteres.. a) Welche der S¨ atze sind erf¨ ullt in den Strukturen R &lt; bzw.. Welche der S¨