• Keine Ergebnisse gefunden

Effiziente Algorithmen und Datenstrukturen

N/A
N/A
Protected

Academic year: 2021

Aktie "Effiziente Algorithmen und Datenstrukturen"

Copied!
18
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

WS 2006/07

Effiziente Algorithmen und Datenstrukturen

Ernst W. Mayr

Fakult¨at f¨ur Informatik TU M¨unchen

http://www14.in.tum.de/lehre/2006WS/ea/

Wintersemester 2006/07

(2)

1. Ziel der Vorlesung

Der Zweck der Vorlesung ist das Studium fundamentaler Konzepte in der Algorithmentheorie. Es werden relevante Maschinenmodelle, grundlegende und h¨ ohere Datenstrukturen sowie der Entwurf und die Analyse sequentieller Algorithmen besprochen. Dabei wird eine Reihe verschiedener Analysemethoden (f¨ ur entsprechend

unterschiedliche Anforderungen) eingef¨ uhrt.

Die betrachteten Problemklassen umfassen eine umfangreiche Auswahl der in der Praxis relevanten kombinatorischen Probleme, wobei die algorithmischen Ans¨ atze sich in dieser Vorlesung jedoch praktisch auf deterministische, sequentielle, exakte Algorithmen beschr¨ anken.

F¨ ur weiterf¨ uhrende Konzepte und Ans¨ atze (z.B. probabilistische, parallele, approximative Algorithmen) wird auf entsprechende Vorlesungen verwiesen.

EADS 1/15

ľErnst W. Mayr

(3)

2. Maschinenmodelle

Turingmaschine (TM)

Registermaschine (RAM)

Boolesche Schaltkreise

(Quantencomputer)

(DNA-Computer)

. . .

(4)

-Schreibkopf .Lesekopf

Ausgabeband Eingabeband

Steuer- einheit

Speicher- zugriffs- einheit

- -

Speicher M0 M1

.. .

?

Z

QQs +

Registermaschine

EADS 2 Maschinenmodelle 3/15

ľErnst W. Mayr

(5)

3. Komplexit¨ atsmaße

Ein Problem ist formal eine Sprache L ⊆ Σ

. x ∈ Σ

heißt eine Probleminstanz f¨ ur L, wenn wir untersuchen wollen, ob x ∈ L.

Sei M eine (Turing- oder) Registermaschine.

M entscheidet L, falls f¨ ur alle x ∈ Σ

M nach endlicher Zeit h¨ alt mit

(

Antwort

” ja“, falls x ∈ L Antwort

” nein“, falls x 6∈ L M akzeptiert L, falls f¨ ur alle x ∈ Σ

gilt

(

falls x ∈ L : M h¨ alt mit Antwort “ja“

falls x 6∈ L : M h¨ alt mit Antwort “nein“ oder M h¨ alt nicht.

(6)

Berechnung von Funktionen:

Seien Σ, Γ Alphabete. Eine TM (bzw. RAM) M berechnet eine (partielle) Funktion f : Σ

→ Γ

gdw. f¨ ur alle x im Definitionsbereich von f gilt:

bei Eingabe x h¨ alt M nach endlich vielen Schritten, und zwar mit Ausgabe f (x).

EADS 5/15

ľErnst W. Mayr

(7)

Wir berechnen die Komplexit¨ at eines Problems in Abh¨ angigkeit von der L¨ ange der Eingabe:

Eingaben x ∈ Σ

n

haben L¨ ange n.

Insbesondere bei Funktionen oder Problemen, deren Eingabe als

” als aus

n

Argumenten bestehend“ interpretiert werden kann, betrachten wir oft auch die uniforme Eingabel¨ ange n.

Beispiel 1

Sollen n Schl¨ ussel ∈ Σ

(vergleichsbasiert) sortiert werden, so

nehmen wir als Eingabel¨ ange gew¨ ohnlich n, die Anzahl der

Schl¨ ussel, und nicht ihre Gesamtl¨ ange.

(8)

Komplexit¨ atsressourcen:

Man betrachtet u.a.

Rechenzeit Speicherplatz

Anzahl von Vergleichen Anzahl von Multiplikationen Schaltkreisgr¨ oße

Programmgr¨ oße

Schachtelungstiefe von Laufschleifen

EADS 7/15

ľErnst W. Mayr

(9)

Komplexit¨ at der Ressourceneinheiten:

Wir unterscheiden

uniformes Kostenmodell: Die Kosten jeder Ressourceneinheit sind 1.

logarithmisches Kostenmodell: Die Kosten eines

Rechenschritts sind durch die L¨ ange der Operanden bestimmt:

1 DerZeitbedarfeines Rechenschritts ist gleich der gr¨oßten L¨ange eines Operanden des Rechenschritts.

2 DerPlatzbedarf einer Speicherzelle ist gleich der gr¨oßten L¨ange eines darin gespeicherten Wertes.

(10)

Wir unterscheiden verschiedene Arten der Komplexit¨ at:

worst-case Komplexit¨ at:

C

wc

(n) := max{C(x); |x| = n}

durchschnittliche Komplexit¨ at (average complexity):

C

avg

(n) := 1

n

|

X

|x|=n

C(x)

allgemeiner: Wahrscheinlichkeitsmaß µ Cavg(n) := X

x∈Σn

µ(x)·C(x)

EADS 3 Komplexit¨atsmaße 9/15

ľErnst W. Mayr

(11)

Wir unterscheiden verschiedene Arten der Komplexit¨ at:

amortisierte Komplexit¨ at:

durchschnittliche Kosten der Operationen in Folgen der L¨ ange n

worst-case ¨ uber alle Folgen der L¨ ange n von Operationen probabilistische oder randomisierte Komplexit¨ at:

Algorithmus hat Zufallsbits zur Verf¨ ugung. Erwartete Laufzeit

(¨ uber alle Zufallsfolgen) f¨ ur feste Eingabe x, dann worst-case

f¨ ur alle |x| = n.

(12)

Beispiel 2

r := 2

for i := 1 to n do r := r

2

od co

das Ergebnis ist

2

2n

oc

Zeitbedarf:

uniform:nSchritte

logarithmisch:1 + 2 + 4 +· · ·+ 2n= 2n+1−1 = Θ(2n)

Platzbedarf:

uniform:O(1) logarithmisch:2n

EADS 10/15

ľErnst W. Mayr

(13)

4. Wachstumsverhalten von Funktionen f, g seien Funktionen von

N0

nach

R+

.

g = O(f ) [auch: g(n) = O(f (n) oder g ∈ O(f)] gdw.

(∃c > 0∃n

0

N0

∀n ≥ n

0

)[g(n) ≤ c · f (n)]

g = Ω(f) [auch: g(n) = Ω(f (n) oder g ∈ Ω(f)] gdw.

(∃c > 0∃n

0

N0

∀n ≥ n

0

)[g(n) ≥ c · f (n)]

g = Θ(f) gdw. g = O(f ) und g = Ω(f )

(14)

4. Wachstumsverhalten von Funktionen f, g seien Funktionen von

N0

nach

R+

.

g = o(f ) gdw.

(∀c > 0∃n

0

N0

∀n ≥ n

0

)[g(n) ≤ c · f (n)]

g = ω(f) gdw.

(∀c > 0∃n

0

N0

∀n ≥ n

0

)[g(n) ≥ c · f (n)]

g = Ω

(f ) gdw.

(∃c > 0)[g(n) ≥ c · f (n) f¨ ur unendlich viele n]

g = ω

(f ) gdw.

(∀c > 0)[g(n) ≥ c · f (n) f¨ ur unendlich viele n]

EADS 4 Wachstumsverhalten von Funktionen 11/15

ľErnst W. Mayr

(15)

Beispiel 3

n

3

ist nicht O

n3 logn

.

(16)

Size n

Growth 10 20 30 40 50 60

Rates

n .00001 .00002 .00003 .00004 .00005 .00006 seconds seconds seconds seconds seconds seconds

n2 .0001 .0004 .0009 .0016 .0025 .0036

seconds seconds seconds seconds seconds seconds n3 .001 .008 .027 .064 .125 .216

seconds seconds seconds seconds seconds seconds

n5 .1 3.2 24.3 1.7 5.2 13.0

seconds seconds seconds minutes minutes minutes

2n .001 1.0 17.9 12.7 35.7 366

seconds seconds minutes days years centuries

5n .059 58 6.5 3855 2 x108 1.3 x1013

seconds minutes years centuries centuries centuries

EADS 13/15

ľErnst W. Mayr

(17)

5. Rekursionsgleichungen Beispiel 4 (Mergesort)

T (n) = 2T n

2

+ cn

= cn + 2T n

2

= cn + 2

c n 2 + 2T

n 4

= cn + cn + 4T n

4

≈ cn log

2

n (nur genau f¨ ur Zweierpotenzen)

(18)

Methoden zur L¨ osung von Rekursionsgleichungen

1

Multiplikatorenmethode

2

Lineare homogene Rekursionsgleichungen k¨ onnen mit Hilfe des charakteristischen Polynoms gel¨ ost werden

3

Umwandlung inhomogener Rekursionsgleichungen in homogene

4

Erzeugendenfunktionen

5

Transformation des Definitions- bzw. Wertebereichs

6

. . .

Es gibt keinen vollst¨ andigen Satz von Methoden.

EADS 5 Rekursionsgleichungen 15/15

ľErnst W. Mayr

Referenzen

ÄHNLICHE DOKUMENTE

Falls schlechte Wahl getroffen wird, dauert es länger Lösung zu berechnen 2. Falls schlechte Wahl getroffen wird, gibt es

Für

I Aber: Jeder deterministische Algorithmus muss für manche Eingaben alle Blätter besuchen. I Es ist also manchmal „sehr schwierig“, deterministisch eine solche kleine Teilmenge

Eine

I Frage:

Damit ist eine zufällig gewählte Kante mit hoher Wahrscheinlichkeit nicht im Schnitt.. Damit sind die inzidenten Knoten einer zufällig gewählten Kante mit hoher Wahrscheinlichkeit

Damit ist eine zufällig gewählte Kante mit hoher Wahrscheinlichkeit nicht im Schnitt.. Damit sind die inzidenten Knoten einer zufällig gewählten Kante mit hoher Wahrscheinlichkeit

Damit ist eine zufällig gewählte Kante mit hoher Wahrscheinlichkeit nicht im Schnitt.. Damit sind die inzidenten Knoten einer zufällig gewählten Kante mit hoher Wahrscheinlichkeit