• Keine Ergebnisse gefunden

Algorithmen und Datenstrukturen A9. Laufzeitanalyse: Landau-Symbole Marcel L¨uthi and Gabriele R¨oger

N/A
N/A
Protected

Academic year: 2022

Aktie "Algorithmen und Datenstrukturen A9. Laufzeitanalyse: Landau-Symbole Marcel L¨uthi and Gabriele R¨oger"

Copied!
22
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Algorithmen und Datenstrukturen

A9. Laufzeitanalyse: Landau-Symbole

Marcel L¨ uthi and Gabriele R¨ oger

Universit¨ at Basel

17. M¨ arz 2021

(2)

Algorithmen und Datenstrukturen

17. M¨ arz 2021 — A9. Laufzeitanalyse: Landau-Symbole

A9.1 Landau-Notation

A9.2 Rechenregeln

A9.3 Zusammenfassung

(3)

Inhalt dieser Veranstaltung

A&D

Sortieren Komplexit¨ ats-

analyse Fundamentale Datenstrukturen

Suchen Graphen

Strings Weiterf¨ uhrende

Themen

(4)

A9.1 Landau-Notation

(5)

Ergebnis f¨ ur Mergesort

” Die Laufzeit von Mergesort w¨ achst genauso schnell wie n log 2 n.“

Theorem

Mergesort hat leicht ¨ uberlineare Laufzeit, d.h.

es gibt Konstanten c, c 0 , n 0 > 0, so dass f¨ ur alle n ≥ n 0 : cn log 2 n ≤ T (n) ≤ c 0 n log 2 n.

I Wir haben Terme niedrigerer Ordnung (Konstanten und n) in der Absch¨ atzung ignoriert bzw. verschwinden lassen.

I Wir haben uns nicht f¨ ur die genauen Werte der Konstanten interessiert, es reicht, wenn irgendwelche passenden

Konstanten existieren.

I Die Laufzeit f¨ ur kleine n ist nicht so wichtig.

(6)

Mehr bisherige Ergebnisse

Theorem

Der Merge-Schritt hat lineare Laufzeit, d.h. es gibt Konstanten c, c 0 , n 0 > 0, so dass f¨ ur alle n ≥ n 0 : c n ≤ T (n) ≤ c 0 n.

Theorem

Mergesort hat leicht ¨ uberlineare Laufzeit, d.h.

es gibt Konstanten c, c 0 , n 0 > 0, so dass f¨ ur alle n ≥ n 0 : cn log 2 n ≤ T (n) ≤ c 0 n log 2 n.

Theorem

Selectionsort hat quadratische Laufzeit, d.h. es gibt Konstanten

c > 0, c 0 > 0, n 0 > 0, so dass f¨ ur n ≥ n 0 : c n 2 ≤ T (n) ≤ c 0 n 2 .

K¨ onnen wir das nicht irgendwie kompakter aufschreiben?

(7)

Edmund Landau

Edmund Landau

I deutscher Mathematiker (1877–1938)

I analytische Zahlentheorie I kein Freund angewandter

Mathematik

International: Bachmann–Landau-Notation auch nach

Paul Gustav Heinrich Bachmann (deutscher Mathematiker)

(8)

Landau-Symbol Theta

Definition

F¨ ur eine Funktion g : N → R ist Θ(g ) die Menge aller Funktionen f : N → R , die genauso schnell wachsen wie g :

Θ(g ) = {f | ∃c > 0 ∃c 0 > 0 ∃n 0 > 0 ∀n ≥ n 0 : c · g (n) ≤ f (n) ≤ c 0 · g (n)}

” Die Laufzeit von Mergesort ist in Θ(n log 2 n).“

oder auch

” Die Laufzeit von Mergesort ist Θ(n log 2 n).“

(9)

Landau-Symbol Theta: Illustration

f ∈ Θ(g )

(10)

Jupyter-Notebook (mit Aufgaben)

Jupyter-Notebook: landau.ipynb

(11)

Mehr Landau-Symbole

I ” f w¨ achst nicht wesentlich schneller als g“

O (g ) = {f | ∃c > 0 ∃n 0 > 0 ∀n ≥ n 0 : f (n) ≤ c · g (n)}

I O f¨ ur

” Ordnung“ der Funktion

I ” f w¨ achst nicht wesentlich langsamer als g“

Ω(g ) = {f | ∃c > 0 ∃n 0 > 0 ∀n ≥ n 0 : c · g (n) ≤ f (n)}

I Es gilt Θ(g ) = O (g ) ∩ Ω(g ).

I Es gilt f ∈ Ω(g ) gdw. g ∈ O (f ).

I In der Informatik interessieren wir uns oft nur f¨ ur die

Begrenzung des Laufzeitwachstums nach oben: O statt Θ

(12)

Seltener ben¨ otigte Landau-Symbole

I ” f w¨ achst langsamer als g“

o (g ) = {f | ∀c > 0 ∃n 0 > 0 ∀n ≥ n 0 : f (n) ≤ c · g (n)}

I ” f w¨ achst schneller als g“

ω(g ) = {f | ∀c > 0 ∃n 0 > 0 ∀n ≥ n 0 : c · g (n) ≤ f (n)}

Aussprache: ω: kleines Omega

(13)

Interessante Funktionsklassen

In aufsteigender Ordnung (abgesehen von allgemeinen n k ):

g Wachstum 1 konstant log n logarithmisch

n linear

n log n leicht ¨ uberlinear n 2 quadratisch n 3 kubisch

n k polynomiell (Konstante k)

2 n exponentiell

(14)
(15)

A9.2 Rechenregeln

(16)

Beispiele Θ

I Bei der Analyse interessiert nur der Term h¨ ochster Ordnung (= am schnellsten wachsender Summand) einer Funktion.

I Beispiele

I f

1

(n) = 5n

2

+ 3n − 9 ∈ Θ(n

2

)

I f

2

(n) = 3n log

2

n + 2n

2

∈ Θ(n

2

)

I f

3

(n) = 9n log

2

n + n + 17 ∈ Θ(n log n)

I f

4

(n) = 8 ∈ Θ(1)

(17)

Beispiele Gross-O

I Bei der Analyse interessiert nur der Term h¨ ochster Ordnung (= am schnellsten wachsender Summand) einer Funktion.

I Beispiele

I f

1

(n) = 8n

2

− 3n − 9 ∈ O(n

2

) I f

2

(n) = n

3

− 3n log

2

n ∈ O(n

3

)

I f

3

(n) = 3n log

2

n + 1000n + 10

200

∈ O(n log n)

I Warum ist das so?

(18)

Zusammenh¨ ange

Es gilt:

I O (1) ⊂ O (log n) ⊂ O(n) ⊂ O(n log n) ⊂ O(n k ) ⊂ O (2 n ) (f¨ ur k ≥ 2)

I O (n k

1

) ⊂ O (n k

2

) f¨ ur k 1 < k 2

z.B. O(n 2 ) ⊂ O (n 3 )

(19)

Rechenregeln

I Produkt

f 1 ∈ O (g 1 ) und f 2 ∈ O(g 2 ) ⇒ f 1 f 2 ∈ O(g 1 g 2 ) I Summe

f 1 ∈ O (g 1 ) und f 2 ∈ O(g 2 ) ⇒ f 1 + f 2 ∈ O(g 1 + g 2 ) I Multiplikation mit Konstante

k > 0 und f ∈ O (g ) ⇒ kf ∈ O (g )

k > 0 ⇒ O(kg) = O(g )

(20)

Grund f¨ ur Beschr¨ ankung auf Term h¨ ochster Ordnung

Beispiel: 5n 3 + 2n ∈ O (n 3 )

I Wegen Regel bzgl. Multiplikation mit Konstante:

I 5n

3

∈ O(n

3

) I 2n ∈ O(n)

I Wegen O(n) ⊂ O (n 3 ) und 2n ∈ O(n):

I 2n ∈ O(n

3

) I Wegen Summenregel:

I 5n

3

+ 2n ∈ O(n

3

+ n

3

)

I Mit Multiplikation mit Konstante (bei Klasse):

I 5n

3

+ 2n ∈ O(n

3

)

(21)

A9.3 Zusammenfassung

(22)

Zusammenfassung

I Mit Landau-Symbolen definiert man Klassen von Funktionen, die nicht schneller/nicht langsamer/. . . wachsen als eine Funktion g .

I O(g ): Wachstum nicht schneller als g

I Θ(g ): Wachstum im Wesentlichen wie g

Referenzen

ÄHNLICHE DOKUMENTE

Bestimmte Grundbausteine ben¨ otigt man immer wieder bei Programmierprojekten, z.B. Sortierverfahren

Schritte innerhalb einer aufgerufenen Funktion Wichtig: Laufzeit ungef¨ ahr proportional zu Anzahl Operationen.. Laufzeitanalyse:

In der Analyse von Mergesort werden wir eine Logarithmusfunktion verwendet. Dies ist bei der Analyse von Laufzeiten oft

I Insgesamt f¨ ur Mergesort leicht ¨ uberlinear (analog zu Schl¨

Fall 1: k &lt; Schl¨ ussel in Knoten Gehe nach links Fall 2: k &gt; Schl¨ ussel in Knoten. Gehe nach rechts Fall 3: k = Schl¨ ussel

Datenstruktur Verkettete Liste von Schl¨ ussel/Werte-Paaren Suchen Elemente durchlaufen bis gefunden oder Listenende Einf¨ ugen Element in Liste.. Wert

Elemente werden in Array gespeichert, wobei Position durch Schl¨ ussel bestimmt ist.. Wichtigstes Werkzeug: Hashfunktion Berechnet Index aus

In einer auf Verkettung basierenden Hashtabelle mit M Listen und N Schl¨ usseln ist die Anzahl der Vergleiche (Gleichheitstests) f¨ ur Einf¨ ugungen und erfolglose Suchen ∼