• Keine Ergebnisse gefunden

8. Union/Find-Datenstrukturen 8.1 Motivation

N/A
N/A
Protected

Academic year: 2021

Aktie "8. Union/Find-Datenstrukturen 8.1 Motivation"

Copied!
18
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

8. Union/Find-Datenstrukturen 8.1 Motivation

Union(T

1

, T

2

): Vereinige T

1

und T

2

T

1

∩ T

2

= ∅ Find(x): Finde den

Repr¨ asentanten der (gr¨ oßten)

Teilmenge, in der sich x

gerade befindet.

(2)

8.2 Union/Find-Datenstruktur 8.2.1 Intrees

1

Initialisierung: x → •x: Mache x zur Wurzel eines neuen (einelementigen) Baumes.

2

Union(T

1

, T

2

):

T

1

T

2

T

2

T

1

3

Find : Suche Wurzel des Baumes, in dem sich x befindet.

Bemerkung: Naive Implementation: worst-case-Tiefe = n Zeit f¨ ur Find = Ω(n)

Zeit f¨ ur Union = O(1)

(3)

8.2.2 Gewichtete Union (erste Verbesserung)

Mache die Wurzel des kleineren Baumes zu einem Kind der Wurzel des gr¨ oßeren Baumes. Die Tiefe des Baumes ist dann O(log n).

Zeit f¨ ur Find = O(log n) Zeit f¨ ur Union = O(1)

Es gilt auch: Tiefe des Baumes im worst-case:

Ω(log n)

(4)

8.2.3 Pfad-Kompression mit gewichteter Union (zweite Verbesserung)

Wir betrachten eine Folge von k Find- und Union-Operationen auf

einer Menge mit n Elementen, darunter n − 1 Union.

(5)

Implementierung: Gewichtete Union f¨ ur Pfad-Kompression:

e c

b d a

y x

z C

B D A

E

Union

e c

b d a

y z

x

C B

D A

E

(6)

Implementierung: Find f¨ ur Pfad-Kompression:

e

c d

a b

y z

x

a y

d

b z

e c x

Find(c)

(Pfadkompression) ⇒

(7)

Bemerkung:

Nach Definition ist

log

n = min{i ≥ 0; log log log . . . log n

| {z }

i log’s

≤ 1}

Beispiel 73

log

0 = log

1 = 0 log

2 = 1

log

3 = 2

log

16 = 3 da 16 = 2

22

log

2

65536

= 5 da 2

65536

= 2

222

2

(8)

Satz 74

Bei der obigen Implementierung ergibt sich eine amortisierte Komplexit¨ at von O(log

n) pro Operation.

Beweis:

Sei T

0

der (endg¨ ultige) In-Baum, der durch die Folge der Union’s, ohne die Find ’s, entstehen w¨ urde (also keine Pfad-Kompression).

Ordne jedem Element x drei Werte zu:

rank(x):= H¨ ohe des Unterbaums in T

0

mit Wurzel x class(x):=

i ≥ 1 falls a

i−1

< rank(x) ≤ a

i

ist (i ≥ 1) 0 falls rank(x) = 0

Dabei gilt: a

0

= 0, a

i

= 2

2

..2 i 20en

f¨ ur i ≥ 1.

Setze zus¨ atzlich a

−1

:= −1.

(9)

0 1

2 3

4 5

6 0

0 class 1

class 2

class 3

class 0

(10)

Beweis (Forts.):

dist(x) ist die Distanz von x zu einem Vorfahr y im

momentanen Union/Find-Baum (mit Pfad-Kompression), so dass class(y) > class(x) bzw. y die Wurzel des Baumes ist.

Definiere die Potenzialfunktion Potenzial := c X

x

dist(x), c eine geeignete Konstante > 0

(11)

Beweis (Forts.):

Beobachtungen:

i) Sei T ein Baum in der aktuellen Union/Find-Struktur (mit Pfad-Kompression), seien x, y Knoten in T, y Vater von x.

Dann ist class(x) ≤ class(y).

ii) Aufeinander folgende Find(x) durchlaufen (bis auf eine)

verschiedene Kanten. Diese Kanten sind (im wesentlichen)

eine Teilfolge der Kanten in T

0

auf dem Pfad von x zur

Wurzel.

(12)

Beweis (Forts.):

Amortisierte Kosten Find(x):

Sei x

0

→ x

1

→ x

2

. . . x

k

= r der Pfad von x

0

zur Wurzel. Es gibt h¨ ochstens log

n-Kanten (x

i−1

, x

i

) mit class(x

i−1

) < class(x

i

). Ist class(x

i−1

) = class(x

i

) und i < k (also x

i

6= r), dann ist

dist(x

i−1

) vor der Find(x)-Operation ≥ 2, nachher gleich 1.

Damit k¨ onnen die Kosten f¨ ur alle Kanten (x

i−1

, x

i

) mit class(x

i−1

)

= class(x

i

) aus der Potenzialverringerung bezahlt werden. Es ergeben sich damit amortisierte Kosten

O(log

n)

(13)

Beweis (Forts.):

Amortisierte Gesamtkosten aller (n − 1)-Union’s:

r x

r

0

r x

r

0

T

1

< T

2

T

1

T

2

c

c c

c

c c

Die gesamte Potenzialerh¨ ohung durch alle Union’s ist nach oben

durch das Potenzial von T

0

beschr¨ ankt (Beobachtung ii).

(14)

Beweis (Forts.):

Potenzial(T

0

) ≤ c ·

logn

X

i=0

ai

X

rank(x)=j=ai−1+1

dist(x)

≤ c ·

logn

X

i=0

ai

X

rank(x)=j=ai−1+1

n 2

j

a

i

≤ c · n

logn

X

i=0

a

i

1

2

ai−1

= c · n

logn

X

i=0

1

= O(n log

n) .

Die zweite Ungleichung ergibt sich, da alle Unterb¨ aume, deren

(15)

8.2.4 Erweiterungen

1) Bessere obere Schranke α(k, n), k ≥ n. Betrachte die (Variante der) Ackermannfunktion A(m, n) mit:

A(0, n) = 2n; n ≥ 0

A(m, 0) = 2; m ≥ 1

A(m + 1, n + 1) = A(m, A(m + 1, n)) m

n

0 2 4 6 8

2 4 8 16 32

2 8 2

9

2

2

Die Ackermannfunktion A(·, ·)

steigt asymptotisch schneller als

jede primitiv-rekursive Funktion.

(16)

Definition 75

Die Klasse der primitiv-rekursiven Funktionen (auf den nat¨ urlichen Zahlen) ist induktiv wie folgt definiert:

1

Alle konstanten Funktionen sind primitiv-rekursiv.

2

Alle Projektionen sind primitiv-rekursiv.

3

Die Nachfolgerfunktion auf den nat¨ urlichen Zahlen ist primitiv-rekursiv.

4

Jede Funktion, die durch Komposition von primitiv-rekursiven Funktionen entsteht, ist primitiv-rekursiv.

5

Jede Funktion, die durch sog. primitive Rekursion aus primitiv-rekursiven Funktionen entsteht, ist primitiv-rekursiv.

Primitive Rekursion bedeutet folgendes Schema f¨ ur die Definition von f :

f (0, · · · ) = g(· · · )

(17)

Weiter wird gesetzt:

α(k, n) := min{i ≥ 1; A(i, k

n

) > log n}

Dann gilt: Der Zeitbedarf f¨ ur eine Folge von k Find- und Union-Operationen auf einer Menge mit n Elementen, darunter n − 1 Union, ist

O(kα(k, n)) .

Es gilt auch eine entsprechende untere Schranke.

Robert E. Tarjan:

Data Structures and Network Algorithms

SIAM CBMS-NSF Regional Conference Series in Applied

Mathematics Bd. 44 (1983)

(18)

2) Variante der Pfadkompression:

x

r Großvater

Diese Variante der Pfadhalbierung erf¨ ullt ebenfalls die

O(kα(k, n)) Schranke.

Referenzen

ÄHNLICHE DOKUMENTE

(DCXLIV) adopted at its 644 th meeting held on 12 December 2016, in which Council strongly rejected any attempt to circumvent or reverse the outcome of the presidential election

At their 5 th ministerial meeting held in Niamey, Niger, on 20 January 2015, the LCBC Member States and Benin requested me to, inter alia, submit to Council a

Introduction Variations of Classical Algorithms Implementation Enhancements The Fastest

Begr¨ unde kurz anhand der Ergebnisse, ob es sich bei diesen Mengen um K¨ orper handelt. Aufgabe 8 (Anordnung der reellen

die Multiplikation von Matrizen ist nicht

[r]

[r]

In a highly integrated financial system, such as in the European Union, taming moral hazard and excessive risk-taking requires a consistent set of regulatory