• Keine Ergebnisse gefunden

A5.1LaufzeitanalyseAllgemein A5.1LaufzeitanalyseAllgemeinA5.2Beispiel:SelectionsortA5.3Zusammenfassung AlgorithmenundDatenstrukturen AlgorithmenundDatenstrukturen InhaltdieserVeranstaltung

N/A
N/A
Protected

Academic year: 2022

Aktie "A5.1LaufzeitanalyseAllgemein A5.1LaufzeitanalyseAllgemeinA5.2Beispiel:SelectionsortA5.3Zusammenfassung AlgorithmenundDatenstrukturen AlgorithmenundDatenstrukturen InhaltdieserVeranstaltung"

Copied!
5
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Algorithmen und Datenstrukturen

A5. Laufzeitanalyse: Einf¨ uhrung und Selectionsort

Marcel L¨ uthi and Gabriele R¨ oger

Universit¨ at Basel

10. M¨ arz 2021

M. L¨uthi, G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 10. M¨arz 2021 1 / 19

Algorithmen und Datenstrukturen

10. M¨ arz 2021 — A5. Laufzeitanalyse: Einf¨ uhrung und Selectionsort

A5.1 Laufzeitanalyse Allgemein A5.2 Beispiel: Selectionsort A5.3 Zusammenfassung

M. L¨uthi, G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 10. M¨arz 2021 2 / 19

A5. Laufzeitanalyse: Einf¨uhrung und Selectionsort Laufzeitanalyse Allgemein

A5.1 Laufzeitanalyse Allgemein

A5. Laufzeitanalyse: Einf¨uhrung und Selectionsort Laufzeitanalyse Allgemein

Inhalt dieser Veranstaltung

A&D

Sortieren Komplexit¨ ats-

analyse Fundamentale Datenstrukturen

Suchen Graphen

Strings Weiterf¨ uhrende

Themen

(2)

A5. Laufzeitanalyse: Einf¨uhrung und Selectionsort Laufzeitanalyse Allgemein

Exakte Laufzeitanalyse unrealistisch

I W¨ are sch¨ on: Formel, die f¨ ur konkrete Eingabe berechnet, wie lange das Programm l¨ auft.

I exakte Laufzeitprognose schwierig, da zu viele Einfl¨ usse:

I Geschwindigkeit und Architektur des Computers I Programmiersprache

I Compilerversion

I aktuelle Auslastung (was sonst noch l¨ auft) I Cacheverhalten

Wir k¨ onnen und wollen das nicht alles in die Formel aufnehmen.

M. L¨uthi, G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 10. M¨arz 2021 5 / 19

A5. Laufzeitanalyse: Einf¨uhrung und Selectionsort Laufzeitanalyse Allgemein

Laufzeitanalyse: Vereinfachung 1

Z¨ ahle Anzahl der Operationen statt die Zeit zu messen!

Was ist eine Operation?

I Idealerweise: eine Zeile Maschinencode oder – noch pr¨ aziser – ein Prozessorzyklus

I Stattdessen: Anweisungen, die konstante Zeit ben¨ otigen I konstante Zeit: Laufzeit unabh¨ angig von Eingabe

I ignoriere Laufzeitunterschiede verschiedener Anweisungen I z.B. Addition, Zuweisung, Verzweigung, Funktionsaufruf I grob: Operation = eine Zeile Code

I aber: auch beachten, was dahinter steht

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

M. L¨uthi, G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 10. M¨arz 2021 6 / 19

A5. Laufzeitanalyse: Einf¨uhrung und Selectionsort Laufzeitanalyse Allgemein

Laufzeitanalyse: Vereinfachung 2

Sch¨ atze ab statt genau zu z¨ ahlen!

I Meistens Absch¨ atzung nach oben (

” obere Schranke“) Wie viele Schritte braucht das Programm h¨ ochstens?

I Manchmal auch Absch¨ atzung nach unten (

” untere Schranke“) Wie viele Schritte werden mindestens ausgef¨ uhrt?

” Laufzeit“ f¨ ur Absch¨ atzung der Anzahl ausgef¨ uhrter Operationen

M. L¨uthi, G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 10. M¨arz 2021 7 / 19

A5. Laufzeitanalyse: Einf¨uhrung und Selectionsort Laufzeitanalyse Allgemein

Laufzeitanalyse: Vereinfachung 3

Absch¨ atzung nur abh¨ angig von Eingabegr¨ osse I T (n): Laufzeit bei Eingabe der Gr¨ osse n I Bei adaptiven Verfahren unterscheiden wir

I Beste Laufzeit (best case)

Laufzeit bei g¨ unstigstm¨ oglicher Eingabe I Schlechteste Laufzeit (worst case)

Laufzeit bei schlechtestm¨ oglicher Eingabe I Mittlere Laufzeit (average case)

Durchschnitt der Laufzeit ¨ uber alle Eingaben der Gr¨ osse n

M. L¨uthi, G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 10. M¨arz 2021 8 / 19

(3)

A5. Laufzeitanalyse: Einf¨uhrung und Selectionsort Laufzeitanalyse Allgemein

Kostenmodelle

Auch: Analyse mit Kostenmodell

I Identifiziere grundlegende Operationen der Algorithmenklasse z.B. f¨ ur vergleichsbasierte Sortierverfahren

I Vergleich von Schl¨ usselpaaren

I Tausch zweier Elemente oder Bewegung eines Elementes I Sch¨ atze Anzahl dieser Operationen ab.

M. L¨uthi, G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 10. M¨arz 2021 9 / 19

A5. Laufzeitanalyse: Einf¨uhrung und Selectionsort Laufzeitanalyse Allgemein

Beispiel aus C++-Referenz

http://www.cplusplus.com/reference/algorithm/sort/

M. L¨uthi, G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 10. M¨arz 2021 10 / 19

A5. Laufzeitanalyse: Einf¨uhrung und Selectionsort Beispiel: Selectionsort

A5.2 Beispiel: Selectionsort

A5. Laufzeitanalyse: Einf¨uhrung und Selectionsort Beispiel: Selectionsort

Selectionsort: Algorithmus

1

def selection_sort(array):

2

n = len(array)

3

for i in range(n - 1): # i = 0, ..., n-2

4

# find index of minimum element at positions i, ..., n-1

5

min_index = i

6

for j in range(i + 1, n): # j = i+1, ..., n-1

7

if array[j] < array[min_index]:

8

min_index = j

9

# swap element at position i with minimum element

10

array[i], array[min_index] = array[min_index], array[i]

(4)

A5. Laufzeitanalyse: Einf¨uhrung und Selectionsort Beispiel: Selectionsort

Selectionsort mit Kostenmodell

1

def selection_sort(array):

2

n = len(array)

3

for i in range(n - 1): # i = 0, ..., n-2

4

# find index of minimum element at positions i, ..., n-1

5

min_index = i

6

for j in range(i + 1, n): # j = i+1, ..., n-1

7

if array[j] < array[min_index]:

8

min_index = j

9

# swap element at position i with minimum element

10

array[i], array[min_index] = array[min_index], array[i]

→ n-1 mal Tausch zweier Elemente (

” linear“)

→ 0.5(n-1)n Schl¨ usselvergleiche (

” quadratisch“)

M. L¨uthi, G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 10. M¨arz 2021 13 / 19

A5. Laufzeitanalyse: Einf¨uhrung und Selectionsort Beispiel: Selectionsort

Selectionsort: Analyse I

Wir zeigen: T (n) ≤ c 0 · n 2 f¨ ur n ≥ 1 und irgendeine Konstante c 0 I Aussere Schleife (3-10) und innere Schleife (6-8) ¨

I Anzahl Operationen f¨ ur jede Iteration der ¨ ausseren Schleife:

I Konstante a f¨ ur Anzahl Operationen in Zeilen 7 und 8 I Konstante b f¨ ur Anzahl Operationen in Zeilen 5 und 10

i # Operationen 0 a(n − 1) + b 1 a(n − 2) + b

. . . n-2 a · 1 + b I Insgesamt: T (n) = P n−2

i =0 (a(n − (i + 1)) + b)

M. L¨uthi, G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 10. M¨arz 2021 14 / 19

A5. Laufzeitanalyse: Einf¨uhrung und Selectionsort Beispiel: Selectionsort

Selectionsort: Analyse II

T (n) = X n−2

i=0 (a(n − (i + 1)) + b)

= X n−1

i=1 (a(n − i ) + b)

= a X n−1

i=1 (n − i ) + b(n − 1)

= 0.5a(n − 1)n + b(n − 1)

≤ 0.5an 2 + b(n − 1)

≤ 0.5an 2 + b(n − 1)n

≤ 0.5an 2 + bn 2

= (0.5a + b)n 2

⇒ mit c 0 = (0.5a + b) gilt f¨ ur n ≥ 1, dass T (n) ≤ c 0 · n 2

M. L¨uthi, G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 10. M¨arz 2021 15 / 19

A5. Laufzeitanalyse: Einf¨uhrung und Selectionsort Beispiel: Selectionsort

Selectionsort: Analyse III

Zu grossz¨ ugig abgesch¨ atzt?

Wir zeigen f¨ ur n ≥ 2: T (n) ≥ c · n 2 f¨ ur irgendeine Konstante c

T (n) = · · · = 0.5a(n − 1)n + b(n − 1)

≥ 0.5a(n − 1)n

≥ 0.25an 2 (n − 1 ≥ 0.5n f¨ ur n ≥ 2)

⇒ mit c = 0.25a gilt f¨ ur n ≥ 2, dass T (n) ≥ c · n 2

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 : cn 2 ≤ T (n) ≤ c 0 n 2 .

M. L¨uthi, G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 10. M¨arz 2021 16 / 19

(5)

A5. Laufzeitanalyse: Einf¨uhrung und Selectionsort Beispiel: Selectionsort

Selectionsort: Analyse IV

Quadratische Laufzeit:

doppelt so grosse Eingabe, ca. viermal so lange Laufzeit Was bedeutet das in der Praxis?

I Annahme: c = 1, eine Operation dauert im Schnitt 10 −8 Sek.

I Bei 1 Tsd. Elementen warten wir

10 −8 · (10 3 ) 2 = 10 −8 · 10 6 = 10 −2 = 0.02 Sekunden.

I Bei 10 Tsd. Elementen 10 −8 · (10 4 ) 2 = 1 Sekunde I Bei 100 Tsd. Elementen 10 −8 · (10 5 ) 2 = 100 Sekunden I Bei 1 Mio. Elementen 10 −8 · (10 6 ) 2 Sekunden = 2.77 Stunden I Bei 1 Mrd. Elementen 10 −8 · (10 9 ) 2 Sekunden = 317 Jahre

1 Mrd. Zahlen bei 4 Bytes/Zahl sind

” nur“ 4 GB.

Quadratische Laufzeit problematisch f¨ ur grosse Eingaben

M. L¨uthi, G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 10. M¨arz 2021 17 / 19

A5. Laufzeitanalyse: Einf¨uhrung und Selectionsort Zusammenfassung

A5.3 Zusammenfassung

M. L¨uthi, G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 10. M¨arz 2021 18 / 19

A5. Laufzeitanalyse: Einf¨uhrung und Selectionsort Zusammenfassung

Zusammenfassung

I Bei der Laufzeitanalyse sch¨ atzen wir die Anzahl der ausgef¨ uhrten Operationen ab.

I Wir z¨ ahlen nicht exakt.

I Wir ignorieren, wie lange eine Operation tats¨ achlich dauert.

I Hauptsache: Laufzeit ungef¨ ahr proportional zu Anzahl Operationen.

I Selectionsort hat quadratische Laufzeit und ben¨ otigt linear viele Vertauschungen und quadratisch viele

Schl¨ usselvergleiche.

Referenzen

ÄHNLICHE DOKUMENTE

Zwölf Millionen Menschen auf der Flucht in der Region Syrien und Irak – das sind unvorstellbar viele Schicksale.. Die Diakonie Katastrophenhilfe hilft zusammen mit ihren

„Kooperation“ bilden die zwei Grundsäu- len, zudem wird es sehr konkret: •• Horizontalität im Alltag • Herrschaftsfrei wirtschaften •• Kritik an Strafe, Leben ohne

Nachspurübungen Ecken, Geraden und

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

Laufzeitanalyse Allgemein Beispiel: Selectionsort Exkurs: Logarithmus Beispiel: Mergesort Zusammenfassung!.

A5.1 Laufzeitanalyse Allgemein A5.2 Beispiel: Selectionsort A5.3 Exkurs: Logarithmus A5.4 Beispiel: Mergesort A5.5 Zusammenfassung.?. Laufzeitanalyse: Einf¨ uhrung, Selection-

Der elektrische Strom ist vielmehr das „Transportmittel“ für die elektrische Energie: Die elektrische Energie wird von den strömenden Ladungsträgern von einer Spannungsquelle

18.00 Uhr: Staffelgottesdienst: je ein Zug ab der Marinesied- lung und ab Eschede (Nähe Kreuzung Hermanns- burger Strasse / Bergener Strasse) zur Kreuzung. &#34;Am