Das Gewicht eines MST schätzen

Werbung
Das Gewicht eines MST schätzen
Johannes Bender
3. Juli 2007
Zusammenfassung
Zuerst werden wir erläutern, wie das Gewicht eines minimal aufspannenden
Baumes (MST) eines Graphen mit der Anzahl der Zusammenhangskomponenten (ZHK) in gewissen Untergraphen von G zusammenhängt.
Entwickelt wird ein (erwartet) sublinearer Algorithmus zur Bestimmung der
Anzahl der ZHK, durch dessen Zuhilfenahme wir das Gewicht eines MST
befriedigend präzise in (erwartet) sublinearer Zeit schätzen können.
Unter sublinearer Laufzeit verstehen wir o(m), wobei m die Anzahl der Kanten bezeichnet.
Es wird skizziert, dass es die Laufzeit des Algorithmus nahezu optimal ist.
Einführung
Wir definieren einen MST eines gewichteten Graphen folgendermassen.
Definition 1. MST eines natürlich gewichteten Graphen
Sei G = (V, E) ein zusammenhängender Graph mit einer Gewichtsfunktion
c : E −→ {1, ..., w}.
Ein MST ist ein Untergraph T = (V, E T ), E T ⊆ E dergestalt, dass folgendes
gilt:
1. T = (V, E T ) zusammenhängend.
2. ¬∃ E ∗ ⊂ E:
(a) T ∗ = (V, E ∗ ) zusammenhängend
P
P
(b)
e∈E ∗ c(e) <
e∈E T c(e)
1
Zu beachten ist dabei folgendes.
Bemerkungen 1.
1. Das Gewicht eines MST T = (V, E T ) von G = (V, E) ist definiert als
die Zahl
P
M (G) := C(E T ) := e∈E T c(e)
2. Ab jetzt gelte stets |V | = n, |E| = m.
3. Im folgenden sei die Zahl w ∈ N beliebig, aber fest: Also nicht etwa
wachsend mit n.
Viele der folgenden Überlegungen fussen auf dem folgenden bekannten Lemma.
Lemma 1. Anzahl der Kanten eines MST Sei T = (V, E T ) ein MST von G = (V, E) ⇒ E T = n − 1.
Beweisskizze 1.
Beweis durch vollständige Induktion nach n.
Es gibt viele Algorithmen, die das Gewicht eines MST genau bestimmen,
unter anderem diese:
1. Algorithmus von Kruskal mit einer Laufzeit von O(mlogn).
2. Algorithmus von Prim mit einer Laufzeit von O(m + nlogn).
3. Algorithmus von Chazelle, der uns eine Laufzeit von O(mα(m, n))
garantiert.
4. Der randomisierte Algorithmus von Karger, Klein und Tarjan, dessen
erwartete Laufzeit O(m) ist.
2
Zusammenhangskomponenten und das Gewicht eines MST
In diesem Abschnitt zeigen wir, wie das Gewicht eines MST von G von der
Anzahl der Zusammenhangskomponenten in speziellen Untergraphen von G
abhängt.
Dazu benötigen wir folgende Definitionen.
Definition 2.
Sei G = (V, E), l ∈ N
1. Gl := (V, Ei ), wobei c(e) ≤ i ∀e ∈ El
2. cl := c(Gl ) :=, wobei c die Anzahl der Zusammenhangskomponenten
bezeichne.
3. Sei T = (V, E T ) ein MST von G = (V, E), dann bezeichne
αi die An- T
zahl der Kanten mit Gewicht i aus E , formal αi (T ) = v ∈ E T : c(v) = i
4. Z(G) := Z1 , ...Zt , wobei Zs , s = 1, ..., t die Zusammenhangskomponenten von G bezeichne.
Für den Fall w = 2 kann man den Zusammenhang von Gewicht des Baumes und Anzahl der Zusammenhangskomponenten vom Gewicht 1 schnell
erkennen.
Lemma 2.
Sei G = (V, E), w = 2,
P
i
⇒ M (G) = n + c1 − 2(= n − w + w−1
i=1 c )
Beweisskizze 2.
Wegen Lemma 1 gilt α1 + α2 = n − 1.
Betrachte c1 (G), wievieler Kanten vom Gewicht 2 bedarf es?
Elementar ist die folgende Beobachtung.
Beobachtung 1. Das Gewicht eines MST
T
Sei T = (V, E
P ) ein MST von G = (V, E).
⇒ M (G) = i · αi (T )
3
Gegeben zwei MST T1 , T2 eines Graphen, dann ist nicht klar, dass
αi (T1 ) = αi (T2 ) ∀i (*)
Dass (*) gilt, folgt direkt aus dem folgenden Satz, der darüberhinaus viel
über die Struktur von MST aussagt.
Satz 1.
Seien T1 = (V, E1T ), T2 = (V, E2T ) zwei MST von G, dann gilt
Z(T1i ) = Z(T2i )
Beweisskizze 3.
Wiederholung: Z(T1i ) = Z(T2i ) ⇔ Z(T1i ) ⊆ Z(T2i ) ∧ Z(T1i ) ⊇ Z(T2i )
Angenommen, die Behauptung sei falsch, dann ist (o.B.d.A.)
∃ Zs1 ∈ Z(T1i ) : Zs1 ∈
/ Z( T1i ).
Sei i minimal sodass dies gilt.
Dann finden wir einen billigeren Baum. Ein Widerspruch.
Korollar 1.
Seien T1 = (V, E1T ), T2 = (V, E2T ) zwei MST von G = (V, E). Dann ist
αi (T1 ) = αi (T2 ).
Zum Abschluss dieses Kapitels folgender Satz, der die Abhängigkeit des
MST-Gewichts von ci genau fixiert.
Theorem 1. Zusammenhangskomponenten und Gewicht
Gegeben ein Graph G = (V, E), w ≥ 2, dann gilt
M (G) = n − w +
w−1
X
ci
i=1
Beweisskizze
Pn 4.
M (G) =P i=1 i · αi
Wegen i>l αi = cl − 1
P
Pw
Pw−1 l
Pw−1 i
⇒ M (G) = w−1
l=0
i=l+1 αi =
l=0 (c − 1) = n − w +
i=1 c
Unsere weitere Strategie ist, ci für alle i zu schätzen, um damit das MSTGewicht zu schätzen.
4
Anzahl der Zusammenhangskomponenten schätzen
Das Ziel dieses Abschnitts ist, einen Algorithmus zu finden, der für einen
beliebigen Graphen G und ein Fehlermass mit hoher Wahrscheinlichkeit
die Anzahl der Zusammenhangskomponenten hinreichend präzise (in bezug
auf ) in (erwartet) sublinearer Zeit schätzt.
Formal:
o(m)
input G, → output ĉ : P (|c − ĉ|) ≥ n ≤ 14
Definition 3.
Gegeben ein Graph G = (V, E) und eine Ecke u ∈ V , die in der Zusammenhangskomponente U liegt.
1. Der Grad eines Knoten ist definiert als d(u) = du := |{w ∈ V : (u, w) ∈ E|}
2. Der Durchschnittsgrad ist d =
2m
n
3. Wir definieren mu := |{e ∈ U }|
Als Grundlage für unsere Schätzung dient folgende Tatsache.
Lemma 3.
Gegeben G = (V, E) ohne isolierte
Ecken, U eine Zusammenhangskompodv
1P
nente von G und u ∈ U ⇒ 2 v∈V mv = c
P
Beweisskizze 5.
u∈U du = 2 · m
Folgendes sollte man beachten.
Bemerkungen 2.
du
1. Um auch Graphen mit isolierten Ecken zuzulassen, setzen wir m
=0
u
falls du = 0.
P
du
2. Wir können c also dadurch schätzen, dass wir u∈U m
schätzen. Geu
nau das tut Algorithmus 1.
3. Man beachte im folgenden, dass d = o(m); d · log(d) = o(m)
5
Algorithmus 1. approx-number-connected-components (G, , W, d∗ )
1 uniformly choose r = O( 12 ) vertices u1 , ..., ur
2 for i=1,...,r
3 set βi = 0
4 take the first step of a BFS from ui
5 (*) flip a coin
6 if(heads) ∧ (# vertices visited in BFS < W)
7
∧ (no visited vertex has degree > d∗ (= O( d ))
8
then resume BFS to double number of visited edges
9
if this allows BFS to complete
10
then if mui = 0 set βi = 2
|coinf lips|
11
else set βi = dui · |edges 2visited in BF S|
12
else go to
(*)
n Pr
13 output ĉ = 2r
i=1 βi
Analyse des Algorithmus
Um die Schätzung unseres Algorithmus zu untersuchen, bedarf es der Kenntnis der Definitionen von Erwartungswert und Varianz. Diese wird vorausgesetzt.
Erwartungswert und Varianz von βi
1. Verstehen wir d=0 als das Ereignis, dass BFS vorzeitig abbricht und
d=1 als das Ereignis, dass BFS endet, dann ist der Erwartungswert
von (der P
Zufallsvariablen) βi
E(βi ) = d∈{0,1} P (d) · βi (d)
2. Die Varianz von βi ist
V ar(βi ) = E((βi − E(βi ))2 ) = E(βi2 ) − (E(βi ))2
Erwartungswert und Varianz von ĉ
Die Menge S sei die Menge aller Knoten, für die in Zusammenhangskomponenten mit weniger als W Knoten liegen höchstens Grad d∗ haben. Mit
anderen Worten: die Menge der Knoten, bei denen BFS nur durch Zufall
oder durch Komplettierung abbricht.
d
Sei ui ∈ S ⇒ E(βi ) = muui
i
6
W und d∗ sind so gewählt, dass höchstens ·n
2 Komponenten Knoten haben, die nicht in S liegen, womit folgt, dass c − ·n
2 ≤ E(ĉ) ≤ ĉ.
Darüberhinaus gilt V ar(ĉ) ≤
n·c
r .
Markowsche und Tschebyscheffsche Ungleichung
Zur genaueren Untersuchung bedarf es weiterer Werkzeuge.
Wegen der Markowschen bzw. der Tschebyscheffschen Ungleichung gilt.
Aussage 1.
Sei a > 0; a ∈ R. Dann gilt
P (βi ≥ a) ≤ E(βi )/a
P (βi − E(βi )) ≥ a ≤ E(βi )/a2
Mit Tschebyscheff und der Beschränkung der Varianz folgt, dass für eine
geeignete Konstante
P (|ĉ − E(ĉ)|) > n
2 ) beliebig klein wird.
Daraus folgt |c − ĉ| ≤ n mit hoher Wahrscheinlichkeit.
d
Die Analyse der Laufzeit ergibt O(d−2 log( −2
), wobei wir die Berechnung
∗
von d unterschlagen haben, die mit einer Laufzeit von O( d ) nicht ins Gewicht fällt.
Die Analyse von Algorithmus führt somit zu folgendem Theorem.
Theorem 2.
Der Algorithmus approx-connected-components (G, , W, d∗ ) berechnet in
erwarteter Laufzeit o(m)( genauer O(d−2 log( d )) eine Schätzung von ĉ(G)
von c(G), die sich mit hoher Wahrscheinlichkeit höchstens um n von c(G)
unterscheidet.
Approximation von M (G)
Unter Zuhilfenahme des Algorithmus approx-connected-components sind
wir nun in der Lage, das Gewicht eines MST hinreichend präzise zu schätzen.
Formal bedeutet das:
o(m)
input
(G, ) → M̂ (G), sodass
P (M (G) − M̂ (G)) ≥ M (G) ≤ 14
7
Betrachte folgenden Algorithmus:
Algorithmus 2. approx-MST-weight(G, )
1 for i=1,...,w-1
2
approx-number-connected-components
(Gi , , 4w/, d∗ )
Pw−1 i
3 output M̂ (G) = n − w + i=1 ĉ
Folgendes Theorem ist die zentrale Erkenntnis dieses Vortrages, der Hauptteil der Arbeit wurde bei der Analyse von approx-connected-components
erledigt.
Theorem 3.
Gegeben ein Graph G und ein Fehlermass, dann berechnet Algorithmus 2
in o(m)
eine Schätzung
M̂ (G), für die gilt:
P (M (G) − M̂ (G)) ≥ M (G) ≤ 14
Beweisskizze 6.
Pw i
P
i
Betrachte C := w
i=1 ĉ
i=1 c und Ĉ :=
n·c
⇒ C − ·n
≤
E
Ĉ
≤
C
und
V
ar(
Ĉ)
≤
2
r
Mit Tschebyscheff folgt die Behauptung.
Untere Schranken
Wir bemerken, dass jeder Algorithmus, der das Gewicht eines MST schätzt
mit dem Fehlermass , mindestens Ω(dw−2 ) Kanten anschaut.
Man stelle sich Strings mit Elementen aus {0, 1}, wobei an jeder Stelle des
Strings mit Wahrscheinlichkeit q(1 + (−1)s ) eine 1 steht, ansonsten eine 0.
Angenommen, wir kennen s nicht und versuchen es zu schätzen, indem wir
uns den String anschauen, dann müssen wir uns Ω(d−2 ) Kanten anschauen.
Das kann man beweisen (Zeitaufwand ca. 45 Minuten).
Wählen wir einen Pfad, assoziieren mit den Kanten die Bits des Strings
und geben einer Kante Gewicht 1, falls ihr assoziiertes Bit 0 ist und ansonsten Gewicht w. Mit jedem Algorithmus, mit dem wir M(G) schätzen
können, können wir auch s schätzen und müssen folglich Ω(d−2 ) Kanten
anschauen.
Für höhere Durchschnittsgrade kann man einfach neue hochbewertete Kanten hinzufügen, die in einem MST nicht vorkommen würden, uns jedoch
dazu zwingen, mehr Kanten anzuschauen.
8
Herunterladen