Kapitel 4: Sortier- und Selektionsverfahren Gliederung 1

Werbung
Kapitel 4: Sortier- und Selektionsverfahren
Gliederung
1.  Grundlagen
2.  Analyse der Laufzeit von Algorithmen
3.  Untere Schranken für algorithmische Probleme
4.  Sortier- und Selektionsverfahren
5.  Paradigmen des Algorithmenentwurfs
6.  Ausgewählte Datenstrukturen
7.  Algorithmische Geometrie
8.  Umgang mit algorithmisch schwierigen Problemen
• 
• 
• 
4/2, Folie 1
© 2014 Prof. Steffen Lange
-
Sortieren durch Vergleichen
Untere Schranken fürs Sortieren durch Vergleichen
Selektionsverfahren
HDa/FbI
-
Algorithmik
Kapitel 4: Sortier- und Selektionsverfahren
Sortieren durch Vergleichen – untere Schranken
u  Zielstellung
• 
diskutieren, wie man beweisen kann, daß es kein Verfahren zum
Sortieren durch Vergleichen geben kann, das sowohl im „worst
case“ als im „average case“ eine Komplexität hat, die kleiner gleich
Θ(n*log(n)) ist
... problematisch ist, daß wir gar nicht alle Verfahren zum Sortieren
durch Vergleichen kennen (/* manche sind noch gar nicht entwickelt
worden */)
... wir müssen daher besser verstehen, was allen Verfahren zum
Sortieren durch Vergleichen gemeinsam ist
4/2, Folie 2
© 2014 Prof. Steffen Lange
-
HDa/FbI
-
Algorithmik
Kapitel 4: Sortier- und Selektionsverfahren
Sortieren durch Vergleichen – untere Schranken
u  Grundidee
• 
es sei A ein Verfahren zum Sortieren durch Vergleichen und n die
Länge der zu sortierenden Folge
• 
dann kann man A und n einen Entscheidungsbaum zuordnen (/* in
diesem Baum wird Buch geführt über die Vergleiche, die A beim
Sortieren einer Folge der Länge n durchführt */)
... um eine untere Schranke für das Sortieren durch Vergleichen
abzuleiten, genügt es Entscheidungsbäume besser zu verstehen
und deren Eigenschaften zu analysieren (/* es ist ausreichend, nur
solche Entscheidungsbäume zu analysieren, die „potentiell“ einem
Verfahren zum Sortieren durch Vergleichen zugeordnet werden
können */)
4/2, Folie 3
© 2014 Prof. Steffen Lange
-
HDa/FbI
-
Algorithmik
Kapitel 4: Sortier- und Selektionsverfahren
Sortieren durch Vergleichen – untere Schranken
u  Grundlegende Idee
• 
es sei n die Länge der betrachteten Schlüsselfolge
alle Entscheidungsbäume
(/* mit n Eingabevariablen */)
alle „relevanten“ Entscheidungsbäume
(/* mit n Eingabevariablen */)
alle Sortierverfahren (/* für das
Sortieren durch Vergleichen */)
4/2, Folie 4
© 2014 Prof. Steffen Lange
-
HDa/FbI
-
Algorithmik
Kapitel 4: Sortier- und Selektionsverfahren
Entscheidungsbäume
u  Beispiel - Entscheidungsbaum für InsertionSort (/* n = 3 */)
1:2
≤
≤
1:3
2:3
>
≤
4/2, Folie 5
2:3
<2,1,3>
>
<1,3,2>
>
≤
1:3
<1,2,3>
>
≤
<3,1,2>
<2,3,1>
>
<3,2,1>
• 
jeder innere Knoten (/* i:j */) ist mit einem Vergleich von Elementen der gegeben
Folge versehen (/* kurz für: a[i] ≤ a[j] */)
• 
jedes (/* <i,j,k> */) Blatt ist mit einer Permutation der Elemente der gegebenen
Folge versehen (/* kurz für: a[i],a[j],a[k] */)
© 2014 Prof. Steffen Lange
-
HDa/FbI
-
Algorithmik
Kapitel 4: Sortier- und Selektionsverfahren
Entscheidungsbäume
u  Erzeugung des zugeordneten Entscheidungsbaums
• 
es sei A ein Verfahren zum Sortieren durch Vergleichen und n die
Länge der zu sortierenden Folge
• 
die Wurzel ist mit dem ersten Vergleich versehen, den A durchführt
• 
es sei K ein innerer Knoten, der mit dem Vergleich i:j versehen ist
• 
4/2, Folie 6
• 
der linke Sohn wird mit dem Vergleich versehen, der von A als
nächstes durchgeführt wird, falls a[i] ≤ a[j] gilt
• 
der rechte Sohn wird mit dem Vergleich versehen, der von A als
nächstes durchgeführt wird, falls a[i] > a[j] gilt
falls kein Vergleich mehr durchgeführt wird, so wird ein Blatt erzeugt
(/* die Permutation, mit der das Blatt versehen wird, wird durch die auf
dem Pfad von der Wurzel zu diesem Blatt durchgeführten Vergleiche
festgelegt */)
© 2014 Prof. Steffen Lange
-
HDa/FbI
-
Algorithmik
Kapitel 4: Sortier- und Selektionsverfahren
Entscheidungsbäume
u  Illustration
1:2
≤
≤
1:3
2:3
>
≤
4/2, Folie 7
2:3
<2,1,3>
>
<1,3,2>
>
≤
1:3
<1,2,3>
>
≤
<3,1,2>
<2,3,1>
>
<3,2,1>
• 
da a[1] ≤ a[2] und a[2] ≤ a[3] gilt, steht hier die Permutation <1,2,3>
• 
da a[1] > a[2], a[1] >a[3] und a[2] ≤ a[3] gilt, steht hier die Permutation <2,3,1>
© 2014 Prof. Steffen Lange
-
HDa/FbI
-
Algorithmik
Kapitel 4: Sortier- und Selektionsverfahren
Entscheidungsbäume
u  Beobachtungen
• 
es sei A ein Verfahren zum Sortieren durch Vergleichen und n die
Länge der zu sortierenden Folge
Dem Paar (A,n) ist auf eindeutige Weise ein Entscheidungsbaum B zugeordnet.
Jedem Pfad von der Wurzel zu einem Blatt entspricht einer Berechnung des
Verfahrens A bei Eingabe einer Folge der Länge n. (/* Die Permutation, mit der
das Blatt versehen ist, beschreibt das Ergebnis der Berechnung, die in diesem
Blatt endet. */).
Wenn das Verfahren A in der Lage ist, jede Folge der Länge n zu sortieren, so
muß B so viele Blätter enthalten, wie es Permutationen von Folgen der Länge n
gibt (/* also n! viele Permutationen */).
4/2, Folie 8
© 2014 Prof. Steffen Lange
-
HDa/FbI
-
Algorithmik
Kapitel 4: Sortier- und Selektionsverfahren
Entscheidungsbäume
u  Beobachtungen
• 
es sei A ein Verfahren zum Sortieren durch Vergleichen und n die
Länge der zu sortierenden Folge
• 
es sei B der dem Paar (A,n) zugeordnete Entscheidungsbaum
... Beziehung zwischen B und der Anzahl der von A - bei Eingabe
einer Folge der Länge n - durchgeführten Vergleiche
4/2, Folie 9
„worst case“:
maximale Zahl von inneren Knoten auf einem
Pfad von der Wurzel zu einem Blatt
„average case“:
durchschnittliche Zahl von inneren Knoten auf
Pfaden von der Wurzel zu einem Blatt
© 2014 Prof. Steffen Lange
-
HDa/FbI
-
Algorithmik
Kapitel 4: Sortier- und Selektionsverfahren
Sortieren durch Vergleichen – untere Schranke für den “worst case“
u  Folgerung
• 
um eine untere Schranke für die Komplexität von Verfahren zum
Sortieren durch Vergleichen (/* im „worst case“ */) abzuleiten,
genügt es eine untere Schranke für die maximale Pfadlänge aller
Entscheidungsbäume mit mindestens n! vielen Blättern
anzugeben
... zur Erinnerung
• 
• 
4/2, Folie 10
jeder Entscheidungsbaum ist ein Binärbaum
die maximale Pfadlänge in einem Binärbaum entspricht der
maximalen Anzahl von inneren Knoten auf einem Pfad von der
Wurzel zu einem Blatt
© 2014 Prof. Steffen Lange
-
HDa/FbI
-
Algorithmik
Kapitel 4: Sortier- und Selektionsverfahren
Sortieren durch Vergleichen – untere Schranke für den “worst case“
u  Ergebnis und Begründung
Jedes Verfahren zum Sortieren durch Vergleichen hat im „worst case“ eine
Komplexität von Ω(n*log(n)), wobei n die Länge der zu sortierenden Folge
bezeichnet.
... der zugehörige Entscheidungsbaum ist ein Binärbaum mit n! Blättern
... jeder Binärbaum mit einer maximalen Pfadlänge t hat höchstens
2t Blätter (/* Warum ist das so? */)
4/2, Folie 11
• 
zugehörige Entscheidungsbaum B muß eine maximale
Pfadlänge t mit 2t ≥ n! haben (/* sonst hat er zu
wenige Blätter */)
• 
also muß t ≥ log(n!) gelten
• 
wegen log(n!) ≈ n*log(n), muß also t ≥ n*log(n) gelten
© 2014 Prof. Steffen Lange
-
HDa/FbI
-
Algorithmik
Kapitel 4: Sortier- und Selektionsverfahren
Sortieren durch Vergleichen – untere Schranke für den “average case“
u  Folgerung
• 
um eine untere Schranke für die Komplexität von Verfahren zum
Sortieren durch Vergleichen (/* im „average case“ */) abzuleiten,
genügt es eine untere Schranke für die durchschnittliche Pfadlänge
aller Entscheidungsbäume mit mindestens n! vielen Blättern
anzugeben
u  zugrunde liegende Beobachtung (/* wird später bewiesen */)
• 
4/2, Folie 12
ein Entscheidungsbaum mit N Blättern, welcher eine minimale
durchschnittliche Pfadlänge hat, hat nur Pfade der Länge ⎡log(N)⎤ bzw.
⎡log(N)⎤ - 1
© 2014 Prof. Steffen Lange
-
HDa/FbI
-
Algorithmik
Kapitel 4: Sortier- und Selektionsverfahren
Sortieren durch Vergleichen – untere Schranke für den “average case“
u  zugrunde liegende Beobachtung (/* wird später bewiesen */)
• 
ein Entscheidungsbaum mit N Blättern, welcher eine minimale
durchschnittliche Pfadlänge hat, hat nur Pfade der Länge ⎡log(N)⎤ bzw.
⎡log(N)⎤ - 1
u  ... eine unmittelbare Konsequenz wäre
• 
es sei E ein Entscheidungsbaum mit N Blättern
Wenn E eine minimale durchschnittliche Pfadlänge hat, so hat E
eine durchschnittliche Pfadlänge größer gleich ⎡log(N)⎤ - 1.
4/2, Folie 13
© 2014 Prof. Steffen Lange
-
HDa/FbI
-
Algorithmik
Kapitel 4: Sortier- und Selektionsverfahren
Sortieren durch Vergleichen – untere Schranke für den “average case“
u  Ergebnis und Begründung
Jedes Verfahren zum Sortieren durch Vergleichen hat im „average case“ eine
Komplexität von Ω(n*log(n)), wobei n die Länge der zu sortierenden Folge
bezeichnet.
... der zugehörige Entscheidungsbaum E hat n! viele Blätter
... es sei E* ein Entscheidungsbaum mit n! vielen Blättern und
minimaler durchschnittlicher Pfadlänge
... da E* eine durchschnittlich Pfadlänge größer gleich ⎡log(n!)⎤ - 1
hat und E* minimale durchschnittlicher Pfadlänge hat, muß auch E
eine durchschnittliche Pfadlänge größer gleich ⎡log(n!)⎤ - 1 haben
... wegen log(n!) ≈ n*log(n), muß E eine durchschnittliche Pfadlänge
größer gleich ⎡n*log(n)⎤ - 1 haben
4/2, Folie 14
© 2014 Prof. Steffen Lange
-
HDa/FbI
-
Algorithmik
Kapitel 4: Sortier- und Selektionsverfahren
Sortieren durch Vergleichen – untere Schranke für den “average case“
u  Das fehlende Teil
• 
es sei E ein Entscheidungsbaum mit N Blättern
Wenn E eine minimale durchschnittliche Pfadlänge hat, so hat E
nur Pfade der Länge ⎡log(N)⎤ bzw. ⎡log(N)⎤ - 1.
... indirekter Beweis
... Annahme E sei ein Entscheidungsbaum mit N Blättern, mit einer
minimalen durchschnittlichen Pfadlänge, der einen Pfad einer Länge
kleiner gleich ⎡log(N)⎤ - 2 hat
... es genügt zu zeigen, daß es dann einen Entscheidungsbaum E‘
mit N Blättern gibt, der eine kleinere durchschnittliche Pfadlänge als
E hat (/* dabei benutzen wir, daß E wenigstens einen Pfad der
Länge ⎡log(N)⎤ hat */)
4/2, Folie 15
© 2014 Prof. Steffen Lange
-
HDa/FbI
-
Algorithmik
Kapitel 4: Sortier- und Selektionsverfahren
Sortieren durch Vergleichen – untere Schranke für den “average case“
u  Begründung des fehlenden Teils
E
E‘
≤ ⎡log(N)⎤ - 2
B ...
...
B‘
B‘‘
B
B‘
B‘‘
≥ ⎡log(N)⎤
... man kann leicht zeigen, daß der Entscheidungsbaum E‘ eine kleinere
durchschnittliche Pfadlänge als E hat (/* Wie geht das ??? */)
4/2, Folie 16
© 2014 Prof. Steffen Lange
-
HDa/FbI
-
Algorithmik
Kapitel 4: Sortier- und Selektionsverfahren
Fazit mit Blick auf die betrachteten Sortierverfahren
4/2, Folie 17
Sortierverfahren
average case
worst case
BubbleSort
Θ(n2)
Θ(n2)
InsertionSort
Θ(n2)
Θ(n2)
HeapSort
Θ(n*log(n))
Θ(n*log(n))
unbekanntes
Sortierverfahren
Ω(n*log(n))
Ω(n*log(n))
© 2014 Prof. Steffen Lange
-
HDa/FbI
-
Algorithmik
Herunterladen