• Keine Ergebnisse gefunden

Kapitel IV Minimale Spannb¨ aume

N/A
N/A
Protected

Academic year: 2021

Aktie "Kapitel IV Minimale Spannb¨ aume"

Copied!
24
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Beweis (Forts.):

Fall 2:s(x, a)< s.

Fall 2.1:|c(x)| ≥p.

A C(x)

A¯ c(x)

#=s(x, a) f¨ur a∈A S

EADS 6 Eine bessere untere Schranke 394/598

ľErnst W. Mayr

(2)

Beweis (Forts.):

SeiS :=c(x)∪ {a}\ die Elemente, die in s(x, a) gez¨ahlt werden.

Der Gegenspieler antwortet nun so, dass das Ergebnis das kleinste Element inS wird. Istw ein Blatt in TA unterx, so ist little(w)=

A− {a}. Der EntscheidungsbaumT wird also gem¨aß folgender Regeln gestutzt (seiy der aktuelle Knoten und seien eund f die beiden Elemente, die iny verglichen werden):

2.1: falls e, f ∈S, dann bleibty erhalten

2.2: andernfalls sei o.B.d.A. e∈A\S oderf ∈A¯\S; ersetze y mit seinem Unterbaum durch das Kind von y und dessen Unterbaum, das der Antwort aufe < f entspricht.

Da ¨uberhalb des kritischen Knotenx keine zwei Elemente inS verglichen wurden, muss der Unterbaum vonTA unterhalb von x Tiefe≥ |S| −1 haben.

EADS 6 Eine bessere untere Schranke 395/598

ľErnst W. Mayr

(3)

Beweis (Forts.):

Zusammen mit Phase 1 ergibt sich eine Tiefe vonTA:

≥n−r− |c(x)|+|S| −1

≥n−r− |c(x)|+|c(x)|+ 1−(s−1)−1

=n−r−s+ 1

=n−p

EADS 6 Eine bessere untere Schranke 396/598

ľErnst W. Mayr

(4)

Beweis (Forts.):

Fall 2.2:|c(x)|< p. SeiS :=C(x).

Die Regeln f¨ur Phase 2 sind in diesem Fall so, dass der

Algorithmus als Antwort das Maximum vonS bestimmt. Damit ergibt sich f¨ur die Tiefe vonTA:

≥n−r− |c(x)|+|S| −1

≥n−r−(p−1) +r−1

=n−p .

EADS 6 Eine bessere untere Schranke 397/598

ľErnst W. Mayr

(5)

Beweis (Forts.):

Insgesamt ergibt sich also: Jeder Pfad inTA von x zu einem Blatt hat mindestens die L¨angen−p. Also enth¨alt jedesTAmindestens 2n−p Bl¨atter (vonT).

AlleTA’s zusammen enthalten≥ ni

2n−p Bl¨atter von T, wobei jedes Blatt vonT h¨ochstensn−i+ 1mal vorkommt: Seiw Blatt vonT, dann ist little(w)eindeutig bestimmt und es muss, falls TA das Blattwenth¨alt, little(w)⊆A sein.

F¨ur das Element inA\little(w)gibt es ≤n−i+ 1 M¨oglichkeiten.

Damit ist die Anzahl der Bl¨atter vonT ≥ n−i+11 ni

2n−p und H¨ohe(T)≥log

n i

2n−p n−i+ 1

.

EADS 6 Eine bessere untere Schranke 398/598

ľErnst W. Mayr

(6)

Literatur

L. Hyafil:

Bounds for selection

SIAM J. Comput.5, pp. 109–114 (1976) Sam Bent, John W. John:

Finding the median requires 2ncomparisons

Proc. 17th Annual ACM Symposium on Theory of Computing, pp. 213–216 (1985)

John Welliaveetil John:

A new lower bound for the set-partitioning problem SIAM J. Comput.17, pp. 640–647 (1988)

Dorit Dor, Uri Zwick:

Selecting the median

SIAM J. Comput.28(5), pp. 1722–1758 (1999)

EADS 6 Eine bessere untere Schranke 399/598

ľErnst W. Mayr

(7)

7. Untere Schranke f¨ur (vergleichsbasiertes) Sortieren Gegebenn Schl¨ussel, Queries ai < a? j. Dies entspricht einem Entscheidungsbaum:

π π0

(Permutationen)

π00 π000

· · · · ai< aj

ak< al ja nein

ja nein

EADS 7 Untere Schranke f¨ur (vergleichsbasiertes) Sortieren 400/598 ľErnst W. Mayr

(8)

Beobachtung:Jede Permutationπ ∈Sn kommt in mindestens einem Blatt des Entscheidungsbaums vor. Da|Sn|=n!, folgt, dass die Tiefe des Entscheidungsbaums

≥log2n!. Stirling’sche Approximation:n!≈√

2πn nen

Also

Tiefe ≥log2h√

2πnn e

ni

=nlog2n−nlog2e+1

2log2(2πn)

=nlog2n− O(n).

EADS 7 Untere Schranke f¨ur (vergleichsbasiertes) Sortieren 401/598 ľErnst W. Mayr

(9)

Satz 91

Jeder vergleichsbasierte Sortieralgorithmus ben¨otigt f¨ur das Sortieren vonn Schl¨usseln mindestens

nlog2n− O(n) Vergleiche.

EADS 7 Untere Schranke f¨ur (vergleichsbasiertes) Sortieren 402/598 ľErnst W. Mayr

(10)

8. Bucketsort im Schnitt

Gegeben seiennzuf¨allig und gleichverteilt gew¨ahlte Schl¨ussel im Intervall]0,1]. Um diese zu sortieren:

1 Initialisiere Buckets b1, . . . , bn

2 Legeai in Bucket dn·aie

3 Sortiere Schl¨ussel innerhalb eines jeden Buckets

4 Konkateniere die Buckets Satz 92

Wird zum Sortieren ein Sortieralgorithmus mit einer Zeitkomplexit¨at von O(n2) verwendet, dann hat obiger Bucketsort-Algorithmus im Durchschnitt einelineareLaufzeit.

EADS 8 Bucketsort im Schnitt 403/598

ľErnst W. Mayr

(11)

Beweis:

Seini die Anzahl der Elemente im Bucketbi (nach Schritt 2). Die Schritte 1,2 und 4 ben¨otigen zusammen Zeit O(n). Die Zeit f¨ur Schritt 3 betr¨agt:

O(

n

X

i=1

n2i). Die Erwartungswert f¨ur P

n2i l¨asst sich folgendermaßen absch¨atzen:

E

" n X

i=1

n2i

#

≤c X

1≤j<k≤n

Pr[aj und ak enden im gleichen Bucket]

=c

 X

1≤j<k≤n

1 n

=O(n).

EADS 8 Bucketsort im Schnitt 404/598

ľErnst W. Mayr

(12)

9. Quicksort

Wie bei vielen anderen Sortierverfahren (Bubblesort, Mergesort, usw.) ist auch bei Quicksort die Aufgabe, die Elemente eines Array a[1..n]zu sortieren.

Quicksort ist ein Divide-and-Conquer-Verfahren.

Divide:W¨ahle einPivot-Elementp (z.B. das letzte) und

partitionierea[l..r]gem¨aßpin zwei Teile a[l..i−1] unda[i+ 1..r]

(durch geeignetes Vertauschen der Elemente), wobei abschließend a[i] =p.

Conquer:Sortiere a[l..i−1] unda[i+ 1..r]rekursiv.

EADS 9 Quicksort 405/598

ľErnst W. Mayr

(13)

Algorithmus:

proc qs(a, l, r)

if l≥r then return fi

#ifdef Variante 2

vertausche a[random(l, r)]mit a[r]

#endif p:=a[r]

i:=l;j:=r repeat

while i < j and a[i]≤pdo i+ + od while i < j and p≤a[j]do j− − od if i < j then vertauschea[i]und a[j]fi until i=j

vertausche a[i]unda[r]

qs(a, l, i−1) qs(a, i+ 1, r)

EADS 9 Quicksort 406/598

ľErnst W. Mayr

(14)

Bemerkung:

Der oben formulierte Algorithmus ben¨otigt pro Durchlauf f¨ur nzu sortierende Schl¨ussel in der Regel n+ 1Schl¨usselvergleiche.

Lediglich wenn die beiden Indizes zusammenfallen (was nur bei einem Pivotduplikat passieren kann), ben¨otigt er nur nVergleiche.

Durch geschicktes Einstreuen vonif-Abfragen kann man in jedem Fall mitn−1Schl¨usselvergleichen auskommen.

EADS 9 Quicksort 407/598

ľErnst W. Mayr

(15)

Komplexit¨at von Quicksort:

Best-case-Analyse: Quicksort l¨auft nat¨urlich am schnellsten, falls die Partitionierung m¨oglichst ausgewogen gelingt, im Idealfall also immer zwei gleichgroße Teilintervalle entstehen, das Pivot-Element ist dann stets der Median.

Anzahl der Schl¨usselvergleiche:

logn

X

i=1

(n+ 1) = (n+ 1) logn≈nlogn Worst-case-Analyse: Z.B. bei einer aufsteigend sortierten Eingabe.

Anzahl der Schl¨usselvergleiche:

Ω(n2)

EADS 9 Quicksort 408/598

ľErnst W. Mayr

(16)

Average-case: Da die Laufzeit von Quicksort sehr stark von den Eingabedaten abh¨angt, kann man die Frage stellen, wie lange der Algorithmus “im Mittel“ zum Sortieren vonn Elementen braucht. Um jedoch ¨uberhaupt eine derartige Analyse durchf¨uhren zu k¨onnen, muss man zuerst die genaue Bedeutung von “im Mittel“ festlegen. Eine naheliegende Annahme ist, dass alle m¨oglichen Permutationen der Eingabedaten mit gleicher Wahrscheinlichkeit auftreten.

EADS 9 Quicksort 409/598

ľErnst W. Mayr

(17)

Satz 93

Die durchschnittliche Anzahl von Schl¨usselvergleichen von

Quicksort betr¨agt unter der Annahme, dass alle Permutationen f¨ur die Eingabe gleichwahrscheinlich sind, h¨ochstens

Cn= 2(n+ 1)(Hn+1−1)≈2nlnn−0.846n+o(n)≈1.386nlogn wobeiHn:=Pn

i=1i−1 dien-teHarmonische Zahlist.

Beweis:

(Variante mitn−1 Vergleichen pro Durchlauf)

SeiCn die Anzahl der Vergleiche bei einem Array der L¨angen.

C0 =C1= 0.

Cn=n−1 +1 n

n

X

j=1

(Cj−1+Cn−j)

EADS 9 Quicksort 410/598

ľErnst W. Mayr

(18)

Beweis (Forts.):

Da

i) (in beiden Varianten) dasj-kleinste Element bestimmt wird und

ii) auch f¨ur die rekursiven Aufrufe wieder alle Eingabepermutationen gleichwahrscheinlich sind:

⇒ Cn=n−1 + 2 n

n−1

X

j=0

Cj;

nCn=n2−n+ 2

n−1

X

j=0

Cj;

(n−1)Cn−1= (n−1)2−(n−1) + 2

n−2

X

j=0

Cj;

EADS 9 Quicksort 411/598

ľErnst W. Mayr

(19)

Beweis (Forts.):

nCn−(n−1)Cn−1= 2n−1−1 + 2Cn−1;

nCn= 2n−2 + (n+ 1)Cn−1; / 1 n(n+ 1) Cn

n+ 1 = 2 n−1

n(n+ 1)+ Cn−1

n =

= 2 n−1

n(n+ 1)+ 2 n−2

(n−1)n+ Cn−2

n−1 =

= 2 n−1

n(n+ 1)+· · ·+C2 3 =

= 2

n

X

j=2

j−1 j(j+ 1)

=

EADS 9 Quicksort 412/598

ľErnst W. Mayr

(20)

Beweis (Forts.):

= 2

n

X

j=2

j

j(j+ 1)− 1 j(j+ 1)

=

= 2

Hn+1−3 2 −

n

X

j=2

1 j − 1

j+ 1

=

= 2

Hn+1−3 2−

1 2− 1

n+ 1

=

= 2

Hn+1−2 + 1 n+ 1

⇒Cn= 2(n+ 1)

Hn+1−2 +n+11

; MitHn≈lnn+ 0.57721. . .+o(1)

⇒Cn≈2nlnn−4n+o(n)≈1.386nlogn

EADS 9 Quicksort 413/598

ľErnst W. Mayr

(21)

Kapitel IV Minimale Spannb¨ aume

1. Grundlagen

Ein GraphG= (V, E)besteht aus einer Menge V von Knoten und einer MengeE von Kanten. Wir werden nur endliche Knoten- (und damit auch Kanten-) Mengen betrachten. Die Anzahl der Knoten bezeichnen wir mitn(|V|=n), die Anzahl der Kanten mit m (|E|=m). Einegerichtete Kante mit den Endknotenu und v wird mit(u, v), eineungerichtetemit {u, v} notiert. Eine Kante

(v, v)∈E (bzw.{v, v}) heißt Schlinge. FallsE eine Multimenge ist, spricht man vonMehrfachkanten. Kanten(u, v) und (v, u) heißenantiparallel. Graphen ohne Schlingen und Mehrfachkanten heißeneinfache Graphen (engl. simple). F¨ur einfache ungerichtete Graphen gilt daher:

E⊆ V

2

:={X ⊆V,|X|= 2}

EADS 1 Grundlagen 414/598

ľErnst W. Mayr

(22)

Graphische Darstellung:

v1

v2 v3

v4

v5

K5

v1

v2 v3

v4

v5 v6

K3,3

EADS 1 Grundlagen 415/598

ľErnst W. Mayr

(23)

IstE⊆V ×V, dann heißtG gerichteter Graph (engl.digraph).

u v

Der zuGgeh¨orige ungerichtete Graph istG0 = (V, E0).E0 erh¨alt man, indem man inE die Richtungen wegl¨asst und

Mehrfachkanten beseitigt.

Seiv∈V. Unter der Nachbarschaft

N(v) :={w; (v, w) oder(w, v)∈E} eines Knotensv versteht man die Menge der direkten Nachbarn vonv. DerGrad eines Knotens ist definiert als:

deg(v) =

(|N(v)| ; falls Gungerichtet und indeg(v) + outdeg(v) ; falls Ggerichtet.

Dabei istindeg(v)die Anzahl aller Kanten, die v als Endknoten, undoutdeg(v)die Anzahl aller Kanten, die v als Anfangsknoten haben.

EADS 1 Grundlagen 416/598

ľErnst W. Mayr

(24)

Beobachtung:F¨ur einfache (gerichtete oder ungerichtete) Graphen gilt

X

v∈V

deg(v) = 2|E|.

Korollar 94

In jedem (einfachen) Graphen ist die Anzahl der Knoten mit ungeradem Grad eine gerade Zahl.

EADS 1 Grundlagen 417/598

ľErnst W. Mayr

Referenzen

ÄHNLICHE DOKUMENTE

  Wir nehmen eine Gleichverteilung auf der Eingabemenge

Average-case: Da die Laufzeit von Quicksort sehr stark von den Eingabedaten abh¨ angt, kann man die Frage stellen, wie lange der Algorithmus “im Mittel“ zum Sortieren von n

ľ Ernst W.. Wir betrachten die Folge der Queuezust¨ ande. Deswegen werden sie aus der Queue entfernt, und so wird das Element 9 das vorderste Queueelement. Im Zustand j) sind

Durch Entfernen von e zerf¨ allt M in zwei Teilb¨ aume, die, da C ein Kreis ist, durch eine geeignete Kante f 6= e aus C wieder verbunden werden k¨ onnen.c. Bei

Invariante: Es gibt stets einen minimalen Spannbaum, der alle gewählten und keine der verworfenen Kanten enthält.. Wenn die beiden Regeln die Invariante erhalten, dann ist

Oliver Schn¨ urer, Universit¨ at Konstanz Sommersemester 2010 Matthias Makowski.. Ubungen zur Vorlesung Differentialgeometrie

Gibt es mehrere Kanten, die einen noch nicht enthaltenen Knoten mit dem Baum verbinden, k¨ onnen nur die mit minimalem Gewicht gew¨ ahlt werden. Es reicht, jeweils nur eine solche

Universit¨ at T¨ ubingen T¨ ubingen, den 13.01.2014 Mathematisches