• Keine Ergebnisse gefunden

Diskrete Mathematik

N/A
N/A
Protected

Academic year: 2022

Aktie "Diskrete Mathematik"

Copied!
33
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Diskrete Mathematik

Univ.-Prof. Dr. Goulnara ARZHANTSEVA

SS 2020

c Univ.-Prof. Dr. Goulnara Arzhantseva Kapitel 09: Suchen und Sortieren 1 / 27

(2)

Überblick: Vorlesung

Einführung in die Grundbegriffe der Diskreten Mathematik

1 Einfache und abzählende Kombinatorik:

Stichproben, Permutationen, Partitionen

2 Erzeugende Funktionen, Lösen von Rekursionen

3 Das Prinzip der Inklusion und Exklusion,Suchen und Sortieren

4 Graphen und Netzwerke

c Univ.-Prof. Dr. Goulnara Arzhantseva Kapitel 09: Suchen und Sortieren 2 / 27

(3)

Algorithmus

EinAlgorithmusist ein standardisierter Ablauf. Mit ihm werden verschiedene Anweisungen in einer bestimmten, festgelegten Reihenfolge nacheinander durchgeführt.

Beispiel: PageRank

Suchmaschinen benutzen Algorithmen also, um aus vielen Parametern eine Rangierung einer Website zu berechnen. Zum Beispiel ist derPageRankvon Google ein Algorithmus.

c Univ.-Prof. Dr. Goulnara Arzhantseva Kapitel 09: Suchen und Sortieren 3 / 27

(4)

Algorithmus: Effizienzkriterium

Wir werden uns im folgenden nur mit dem “Effizienzkriterium Geschwindigkeit” befassen. Dabei kann man untersuchen,

wie lange der Algorithmus imschlechtest möglichen Falldauert (englisch: Worst case analysis),

oder wie lange der Algorithmus imDurchschnittdauert (englisch:

Average case analysis).

c Univ.-Prof. Dr. Goulnara Arzhantseva Kapitel 09: Suchen und Sortieren 4 / 27

(5)

Algorithmus: Beispiel

Sei der SuchbereichS= [7] gegeben.

Die Aufgabe lautet, eine unbekannte Zahlx ∈Sdurch (möglichst wenige) Fragen des Typs “x <i?” für irgendeini ∈[7] zu erraten.

Einen Algorithmus zur Bestimmung der gesuchten Zahlx kann man sehr einfach durch einenEntscheidungsbaumbeschreiben:

c Univ.-Prof. Dr. Goulnara Arzhantseva Kapitel 09: Suchen und Sortieren 5 / 27

(6)

Beispiel: Entscheidungsbaum ( aus Skriptum)

x<4?

x<6? x<3?

x<7? x<5? x<2?

1,2,3,4,5,6,7

4,5,6,7 1,2,3

3

6,7 4,5 1,2

7 6 5 4 2 1

Imschlechtesten Fall(Worst case) führt dieser Algorithmus in 3 Schritten zum Ziel (im besten Fall braucht man 2 Schritte), und im Durchschnitt(Average case) braucht man 1·2+6·37 = 207 Schritte.

c Univ.-Prof. Dr. Goulnara Arzhantseva Kapitel 09: Suchen und Sortieren 6 / 27

(7)

Beispiel: Entscheidungsbaum

Unser Beispiel zeigt zweierlei:

Ein (Such–)Algorithmus läßt sich zweckmäßig durch einen (Entscheidungs–)Baumbeschreiben,

DieEffizienz eines (Such–)Algorithmuskann man durch Analyse des entsprechenden (Entscheidungs–)Baumes ermitteln.

c Univ.-Prof. Dr. Goulnara Arzhantseva Kapitel 09: Suchen und Sortieren 7 / 27

(8)

Wurzelbaum

Definition: Wurzelbaum

EinWurzelbaumist ein Baum mit einem ausgezeichneten Knoten, der sogenanntenWurzel.

In einem Wurzelbaum gibt es eineimplizite Orientierungder Kanten

“von der Wurzel weg”, in folgendem Sinn:

Seiw die Wurzel und seie={v1,v2}eine Kante. Wenn die Länge des Weges vonw nachv1k ist, dann ist die Länge des Weges vonw nach v2k ±1 — o.B.d.A. nehmen wirk+ 1 an und orientieren die Kante dann:~e:= (v1,v2).

In einem Entscheidungsbaum ist die Wurzel der Knoten “ganz oben”, von dem aus sich alles verzweigt.

c Univ.-Prof. Dr. Goulnara Arzhantseva Kapitel 09: Suchen und Sortieren 8 / 27

(9)

Wurzelbaum

Definition: Wurzelbaum

EinWurzelbaumist ein Baum mit einem ausgezeichneten Knoten, der sogenanntenWurzel.

In einem Wurzelbaum gibt es eineimplizite Orientierungder Kanten

“von der Wurzel weg”, in folgendem Sinn:

Seiw die Wurzel und seie={v1,v2}eine Kante. Wenn die Länge des Weges vonw nachv1k ist, dann ist die Länge des Weges vonw nach v2k ±1 — o.B.d.A. nehmen wirk+ 1 an und orientieren die Kante dann:~e:= (v1,v2).

In einem Entscheidungsbaum ist die Wurzel der Knoten “ganz oben”, von dem aus sich alles verzweigt.

c Univ.-Prof. Dr. Goulnara Arzhantseva Kapitel 09: Suchen und Sortieren 8 / 27

(10)

Wurzelbaum

Definition: inneren Knoten und Blätter

In einem Wurzelbaum (mit der impliziten Orientierung) unterscheiden wir dann die sogenannten

inneren Knoten, die Ausgangsgrad>0 haben,

und dieBlätter(manchmal auchEndknotenoderäußere Knoten genannt), die Ausgangsgrad = 0 haben.

Die Wurzel kann selbst ein Blatt sein — wenn der Wurzelbaum nur aus einem einzigen Knoten besteht.

c Univ.-Prof. Dr. Goulnara Arzhantseva Kapitel 09: Suchen und Sortieren 9 / 27

(11)

Wurzelbaum

Definition: inneren Knoten und Blätter

In einem Wurzelbaum (mit der impliziten Orientierung) unterscheiden wir dann die sogenannten

inneren Knoten, die Ausgangsgrad>0 haben,

und dieBlätter(manchmal auchEndknotenoderäußere Knoten genannt), die Ausgangsgrad = 0 haben.

Die Wurzel kann selbst ein Blatt sein — wenn der Wurzelbaum nur aus einem einzigen Knoten besteht.

c Univ.-Prof. Dr. Goulnara Arzhantseva Kapitel 09: Suchen und Sortieren 9 / 27

(12)

Beispiel: Wurzelbaum und implizite Orientierung (aus Skriptum)

inneren Knoten = schwarze Punkte die Blätter = weiße Kreis

die Wurzel = dick Punkt

c Univ.-Prof. Dr. Goulnara Arzhantseva Kapitel 09: Suchen und Sortieren 10 / 27

(13)

Beispiel: Entscheidungsbaum (aus Skriptum)

x<4?

x<6? x<3?

x<7? x<5? x<2?

1,2,3,4,5,6,7

4,5,6,7 1,2,3

3

6,7 4,5 1,2

7 6 5 4 2 1

Im Entscheidungsbaum eines Suchalgorithmus bedeutet

einBlatt, da der Algorithmus zu einem Ergebnis gekommen ist, und der maximale Ausgangsgrad eines inneren Knotens die größte Anzahl der Teile, in die der Suchraum nach einer Frage zerfallen kann.

c Univ.-Prof. Dr. Goulnara Arzhantseva Kapitel 09: Suchen und Sortieren 11 / 27

(14)

Wurzelbaum: Länge, Niveau, q-Baum

Definition: Länge, Niveau,q-Baum

SeiWein Wurzelbaum mit Wurzelw, und seiv ein Knoten inW.

Die Länge des (eindeutigen!) Weges von der Wurzelwzum Knotenv heißtLängedes Knotens und wird mit`(v) bezeichnet. Die Menge der Knoten der Längek nennen wir dasNiveauk inW.

Wenn der maximale Ausgangsgrad eines inneren Knotens vonW kleinergleichqist, dann nennen wirWeinenq–Baum.Wheißt ein vollständigerq–Baum, wennjederinnere Knoten vonWAusgangsgrad q hat.

Ein innerer Knoten in einemq–BaumWheißtgesättigt, wenn sein Ausgangsgrad gleichqist.

Ein vollständigerq–Baum hat also nur gesättigte innere Knoten.

c Univ.-Prof. Dr. Goulnara Arzhantseva Kapitel 09: Suchen und Sortieren 12 / 27

(15)

Wurzelbaum: Länge, Niveau, q-Baum

Definition: Länge, Niveau,q-Baum

SeiWein Wurzelbaum mit Wurzelw, und seiv ein Knoten inW.

Die Länge des (eindeutigen!) Weges von der Wurzelwzum Knotenv heißtLängedes Knotens und wird mit`(v) bezeichnet. Die Menge der Knoten der Längek nennen wir dasNiveauk inW.

Wenn der maximale Ausgangsgrad eines inneren Knotens vonW kleinergleichqist, dann nennen wirWeinenq–Baum.Wheißt ein vollständigerq–Baum, wennjederinnere Knoten vonWAusgangsgrad q hat.

Ein innerer Knoten in einemq–BaumWheißtgesättigt, wenn sein Ausgangsgrad gleichqist.

Ein vollständigerq–Baum hat also nur gesättigte innere Knoten.

c Univ.-Prof. Dr. Goulnara Arzhantseva Kapitel 09: Suchen und Sortieren 12 / 27

(16)

Vollständiger q–Baum

Lemma: vollständigerq–Baum

Seiq≥2, und seiWein vollständigerq–Baum mit genaunBlättern.

Dann gilt die folgende Teilbarkeitsrelation:

(q−1)|(n−1) (1)

c Univ.-Prof. Dr. Goulnara Arzhantseva Kapitel 09: Suchen und Sortieren 13 / 27

(17)

Vollständiger q–Baum

Beweis: Induktion nach der Blattanzahln: Für den (einzigen)q–Baum mit nureinemBlatt (das dann zugleich die Wurzel ist!) ist die

Behauptung richtig.

In einem beliebigen vollständigenq–Baum mitn>1 Blättern gibt es also einen inneren Knotenv, an demq Blätterb1, . . . ,bq “hängen”1. Wenn wir diese Blätter entfernen (also den Teilgraphen betrachten, der durchV(W)\ {b1, . . . ,bq}induziert wird), dann hat der entstehende Wurzelbaum genaun−q+ 1 Blätter (v ist ja nun zu einem Blatt geworden), und er ist wieder ein vollständigerq–Baum:

Nach Induktionsvoraussetzung gilt (q−1)|(n−q);

daraus folgt (q−1)|(n−1).

1vkann als ein innerer Knoten maximaler Länge gewählt werden.

c Univ.-Prof. Dr. Goulnara Arzhantseva Kapitel 09: Suchen und Sortieren 14 / 27

(18)

Vollständiger q–Baum

Beweis: Induktion nach der Blattanzahln: Für den (einzigen)q–Baum mit nureinemBlatt (das dann zugleich die Wurzel ist!) ist die

Behauptung richtig.

In einem beliebigen vollständigenq–Baum mitn>1 Blättern gibt es also einen inneren Knotenv, an demq Blätterb1, . . . ,bq “hängen”1.

Wenn wir diese Blätter entfernen (also den Teilgraphen betrachten, der durchV(W)\ {b1, . . . ,bq}induziert wird), dann hat der entstehende Wurzelbaum genaun−q+ 1 Blätter (v ist ja nun zu einem Blatt geworden), und er ist wieder ein vollständigerq–Baum:

Nach Induktionsvoraussetzung gilt (q−1)|(n−q);

daraus folgt (q−1)|(n−1).

1vkann als ein innerer Knoten maximaler Länge gewählt werden.

c Univ.-Prof. Dr. Goulnara Arzhantseva Kapitel 09: Suchen und Sortieren 14 / 27

(19)

Vollständiger q–Baum

Beweis: Induktion nach der Blattanzahln: Für den (einzigen)q–Baum mit nureinemBlatt (das dann zugleich die Wurzel ist!) ist die

Behauptung richtig.

In einem beliebigen vollständigenq–Baum mitn>1 Blättern gibt es also einen inneren Knotenv, an demq Blätterb1, . . . ,bq “hängen”1. Wenn wir diese Blätter entfernen (also den Teilgraphen betrachten, der durchV(W)\ {b1, . . . ,bq}induziert wird), dann hat der entstehende Wurzelbaum genaun−q+ 1 Blätter (v ist ja nun zu einem Blatt geworden), und er ist wieder ein vollständigerq–Baum:

Nach Induktionsvoraussetzung gilt (q−1)|(n−q);

daraus folgt (q−1)|(n−1).

1vkann als ein innerer Knoten maximaler Länge gewählt werden.

c Univ.-Prof. Dr. Goulnara Arzhantseva Kapitel 09: Suchen und Sortieren 14 / 27

(20)

Allgemeine Suchproblem

Gegeben sei eine gewisserSuchraum, also eine MengeSvon möglichen Ereignissen (im Beispiel oben war das [7]).

Weiters seien gewisse “Tests” gegeben, mit denen der Suchraum in Teilmengen partitioniert wird (im Beispiel waren das die Fragen

“x <i?”): Das allgemeineSuchproblembesteht darin, ein bestimmtes (aber zunächst unbekanntes) Element inx ∈S durch eine

Kombination der verfügbaren Tests zu identifizieren.

Unter einemSuchalgorithmusverstehen wir eine derartige

“Kombination der verfügbaren Tests”, diein jedem Fall(d.h., unabhängig vom Elementx) zum Ziel führt.

c Univ.-Prof. Dr. Goulnara Arzhantseva Kapitel 09: Suchen und Sortieren 15 / 27

(21)

Allgemeine Suchproblem

Es ist klar, daß wir einen Suchalgorithmus durch einen Entscheidungsbaumbeschreiben können:

Das ist einq–Baum, wobeiq die größte Anzahl von Blöcken ist, in die ein Test den Suchraum partitioniert.

c Univ.-Prof. Dr. Goulnara Arzhantseva Kapitel 09: Suchen und Sortieren 16 / 27

(22)

Worst–Case Analyse: Informationstheoretische Schranke

DieWorst–Case Analyseeines Algorithmus stellt fest, wie lange der Algorithmus imschlechtesten Fallbraucht.

Für Suchalgorithmen ist das also diemaximaleLänge eines Blattes im entsprechenden EntscheidungsbaumW; wir nennen dies dieLänge des WurzelbaumesWund bezeichnen sie mitL(W):

L(W) := max

bBlatt inW`(b).

c Univ.-Prof. Dr. Goulnara Arzhantseva Kapitel 09: Suchen und Sortieren 17 / 27

(23)

Worst–Case Analyse

Satz: Die Länge des Wurzelbaumes

Seiq≥2 undWeinq–Baum mitnBlättern. Dann gilt L(W)≥llogqnm,

wo logqnder Logarithmus vonnzur Basisq ist.

Beweis: Die Behauptung ist klarerweise äquivalent zu

L:=L(W)≥logqnoderqL=qL(W)≥n. Letzteres zeigen wir durch Induktion nachL.

IstL= 0, dann besteht der Baum nur aus der Wurzel, die dann gleichzeitig das einzige Blatt ist, und wir haben in diesem Fallq0≥1.

c Univ.-Prof. Dr. Goulnara Arzhantseva Kapitel 09: Suchen und Sortieren 18 / 27

(24)

Worst–Case Analyse

Satz: Die Länge des Wurzelbaumes

Seiq≥2 undWeinq–Baum mitnBlättern. Dann gilt L(W)≥llogqnm,

wo logqnder Logarithmus vonnzur Basisq ist.

Beweis: Die Behauptung ist klarerweise äquivalent zu

L:=L(W)≥logqnoderqL=qL(W)≥n. Letzteres zeigen wir durch Induktion nachL.

IstL= 0, dann besteht der Baum nur aus der Wurzel, die dann gleichzeitig das einzige Blatt ist, und wir haben in diesem Fallq0≥1.

c Univ.-Prof. Dr. Goulnara Arzhantseva Kapitel 09: Suchen und Sortieren 18 / 27

(25)

Typischer q–Baum (aus Skriptum)

Für denInduktionsschrittbemerken wir, daß ein typischerq–BaumW folgendermaßen aussieht:

Von der Wurzelw weg führenk ≤qKanten; an den anderen Enden dieser Kanten hängt ein TeilgraphWi, der wieder die Struktur eines q–Baumes hat (symbolisiert durch die Dreiecke im unten Bild).

. . . W:

w

W1 W2 W3

(k ≤q) Wk

c Univ.-Prof. Dr. Goulnara Arzhantseva Kapitel 09: Suchen und Sortieren 19 / 27

(26)

Die Länge des Wurzelbaumes: Beweis

WegenL>0 befinden sich allenBlätter in diesen Teilbäumen, einer dieser Teilbäume muß daher mindestensn/k ≥n/qBlätter enthalten.

Bezeichnen wir diesen Teilbaum mitW0. Klarerweise gilt L(W0)≤L(W)−1, somit können wir aufW0 die

Induktionsvoraussetzung anwenden:

qL(W0)≥Anzahl der Blätter inW0 ≥ n q. Somit folgt:

qL(W) ≥qL(W0)+1=qL(W0)·q ≥ n qq =n.

c Univ.-Prof. Dr. Goulnara Arzhantseva Kapitel 09: Suchen und Sortieren 20 / 27

(27)

Informationstheoretische Schranke

Der Wertllogqnmheißtinformationstheoretische Schranke.

Es ist klar, daß wir für unser zuvor beschriebenes “allgemeines Suchproblem” keinen Algorithmus angeben können, derimmer(also auch imworst case) weniger Tests benötigt alsllogqnm.

c Univ.-Prof. Dr. Goulnara Arzhantseva Kapitel 09: Suchen und Sortieren 21 / 27

(28)

Informationstheoretische Schranke: Bemerkung

Als “Faustregel” für die Konstruktion eines Suchalgorithmus kann man offenbar ansehen: “Zerlege den Suchraum mit jedem Test in möglichst gleich große Teile”.

Es ist aberkeineswegs immermöglich, einen Algorithmus zu

konstruieren, der mit der theoretisch möglichen unteren Schranke für die Anzahl der Tests auskommt:

Typischerweise gelingt das nicht, wenn die Tests die Suchräume nicht

“hinreichend gleichförmig” partitionieren können.

c Univ.-Prof. Dr. Goulnara Arzhantseva Kapitel 09: Suchen und Sortieren 22 / 27

(29)

Beispiel: Binary search

Der klassische Algorithmus für das Einordnen eines neuen Elementsx in eine bereits geordneteListea1≤a2≤ · · · ≤anistBinary Search:

Der Suchraum ist hier die Menge der möglichen Stellen, wox eingeordnet werden könnte, er umfaßt alson+ 1 Elemente.

Der Algorithmus funktioniert so:

c Univ.-Prof. Dr. Goulnara Arzhantseva Kapitel 09: Suchen und Sortieren 23 / 27

(30)

Binary search: Algorithmus

SeiL= (a1,a2, . . . ,an) eine der Größe nach geordnete Liste vonn

reellen Zahlen (entspricht einem Suchraum vonn+ 1 möglichen Stellen), bei der wir möglicherweise bereits die Relationx ≤ankennen (entspricht einem Suchraum von nur mehrnmöglichen Stellen).

Wenn der der ListeLentsprechende Suchraum nur mehr ein Element enthält, sind wir fertig; d.h.: Wennn= 0oderwennn= 1 istundwir die Relationa2=an+1≤an=a1bereits kennen, dann schreiben wiran+1 an die erste Stelle.

c Univ.-Prof. Dr. Goulnara Arzhantseva Kapitel 09: Suchen und Sortieren 24 / 27

(31)

Binary search: Algorithmus

Ansonsten vergleichen wiran+1mit jenem Elementx der Liste, das den SuchraumS möglichst gleichmäßig zerteilt (fürm=|S|istx =adm/2e).

Giltan+1>x, dann setzen wirL=adm/2e+1, . . . ,an; giltan+1≤x, dann setzen wirL=a1, . . . ,adm/2e(hier kennen wir nun die Relation x ≤adm/2e); in jedem Fall beginnen wir wieder von vorne.

c Univ.-Prof. Dr. Goulnara Arzhantseva Kapitel 09: Suchen und Sortieren 25 / 27

(32)

Binary search: Informationstheoretische Schranke

Die informationstheoretische Schranke besagt, daß wir im worst case mindestensdlog2(n+ 1)eTests “an+1>x?” brauchen. Und mit Induktion sehen wir, daß der obige Algorithmus diese Schranke tatsächlich erreicht:

Fürn= 0 brauchen wir 0 = log2(1) Tests.

Fallsn>0, brauchen wir einen ersten Test und haben dann einen Liste vor uns, deren entsprechender Suchraum maximald(n+ 1)/2e Elemente enthält (denn der ursprüngliche Suchraum ist in zwei Blöcke n+ 1 =d(n+ 1)/2e+b(n+ 1)/2cpartitioniert worden).

Nach Induktion brauchen wir dafürdlog2(d(n+ 1)/2e)eTests.

c Univ.-Prof. Dr. Goulnara Arzhantseva Kapitel 09: Suchen und Sortieren 26 / 27

(33)

Binary search: Informationstheoretische Schranke

Die Anzahl der benötigten Tests ist also tatsächlich 1 +dlog2d(n+ 1)/2e

| {z }

=n+12 +[n≡0 (2)]2

e=1 + log2n+ 1

2 + log21 + [n≡0 (2)]

n+ 1

=log2(n+ 1) + log21 + [n≡0 (2)]

n+ 1

=dlog2(n+ 1 + [n≡0 (2)])e

=dlog2(n+ 1)e. (2)

Die letzte Gleichung folgt aus einer Betrachtung der Sprungstellen von dlog2(x)ebei 2m,m= 0,1, . . ..

n= 2r −27→r, n= 2r −17→r, n= 2r 7→r + 1.

c Univ.-Prof. Dr. Goulnara Arzhantseva Kapitel 09: Suchen und Sortieren 27 / 27

Referenzen

ÄHNLICHE DOKUMENTE

Ordne den Buchstaben A,.. (6 Punkte

(6 Punkte

Wie erhält man die Generator und PCHMatrix von

Knoten in Abbildung 5 die folgende Eigenschaft erf¨ullt sein: die Anzahl der Kanten die mit einem Knoten verbunden sind ist gerade, weil f¨ur jede Ankunft (¨uber eine Br¨ucke) in

Wahrscheinlich ist die Position zwischen diesen beiden Extremen richtig, denn zum einen ist der formale Be- weis von (großen) Programmen oft nicht praktikabel (oder m¨ oglich) und

Zwei Knoten werden mit einer Kante verbunden, wenn Sie geographisch so verteilt sind, dass sie sich beim Senden auf der gleichen Frequenz gegenseitig st¨ oren k¨ onnen.. Existiert

Zyklische Gruppen sind die Gruppen mit einer sehr einfachen Untergruppenstruktur, denn sei n die Ordnung von G, dann hat G (bis auf Isomorphie) für alle Teiler d von n genau

Zyklische Gruppen sind die Gruppen mit einer sehr einfachen Untergruppenstruktur, denn sei n die Ordnung von G, dann hat G (bis auf Isomorphie) für alle Teiler d von n genau