V2-14.04.2008

Werbung
Größenordnungen von Funktionen
Notation:
Algorithmen und Datenstrukturen
2. Vorlesung
N = {0, 1, 2, 3, . . .}
N+ = {n ∈ N | n > 0} = {1, 2, 3, . . .}
R+
0 = {x ∈ R | x ≥ 0}
Martin Dietzfelbinger
R+ = {x ∈ R | x > 0}
14. April 2008
Uns interessieren meistens (als Rechenaufwand oder
Abschätzungen hierfür) nur Funktionen, die schließlich“ po”
sitiv oder nichtnegativ sind. – Abkürzung:
F + := {f | f : N → R, ∃n0∀n ≥ n0 : f (n) > 0}.
F0+ := {f | f : N → R, ∃n0∀n ≥ n0 : f (n) ≥ 0}.
FG KTuEA, TU Ilmenau
AuD – 14.04.2008
FG KTuEA, TU Ilmenau
AuD – 14.04.2008
• Ignorieren von konstanten Faktoren. – Idee: Unterdrücke
Abhängigkeit von Programmiersprache, Prozessor, usw.
• Ignorieren von konstanten Faktoren und Termen kleinerer
Ordnung. – Ziel: Vereinfachung.
1
O-Notation
Informal: g ist von der Ordnung f“ (Notation O(f )), wenn:
”
• Asymptotische Sichtweise“: Werte für kleine“ n
”
”
ignorieren. – Erfahrungstatsache: Verhalten für große Eingabegrößen n häufig schon entscheidend bei normalen“
”
n.
2f
g
Funktionen mit unterschiedlich schnellem Wachstum bilden
Hierarchie. – Ausschnitt (vgl. Übung!):
log n,
√
n,
n
, n, nlog n, n(log n)2, n2, n3, 2n, en, 3n
log n
n0
Für genügend große n ist 0 ≤ g(n) ≤ c · f (n), für c > 0 konstant.
Bem.: In dieser Vorlesung: log x bedeutet log2 x.
FG KTuEA, TU Ilmenau
AuD – 14.04.2008
f
2
FG KTuEA, TU Ilmenau
AuD – 14.04.2008
3
O-Notation
O-Notation
Formal:
Beispiele:
Definition
(a) Wenn g(n) = 2n − 7 und f (n) = n, dann ist g ∈ O(f ).
Sei f ∈ F +.
(b) Wenn g(n) = 2n − 7 und f (n) = n2, dann ist g ∈ O(f ).
O(f ) := { g ∈ F0+ | ∃n0 ∈ N ∃c > 0
(c) Wenn g(n) = 4n3 − 13n2 + 10 und f (n) = n3 log n,
dann ist g ∈ O(f ).
∀n ≥ n0 : g(n) ≤ c · f (n)}
(d) Wenn g(n) = 3+2 sin(n) und f (n) ≡ 1, dann ist g ∈ O(f ).
Intuition I:
g ∈ O(f ) heißt, dass g asymptotisch (für genügend große n)
und unter Vernachlässigung konstanter Faktoren höchstens so schnell wächst wie f .
FG KTuEA, TU Ilmenau
AuD – 14.04.2008
4
(e) Wenn g(n) = 2n für gerade n und g(n) = 2/n für ungerade
n, und f (n) = n, dann ist g ∈ O(f ).
FG KTuEA, TU Ilmenau
AuD – 14.04.2008
O(f (n))-Notation
O(f (n))-Notation
Beispiele:
Schreib- und Sprechweisen:
(i) g(n) = O(f (n)) als Abkürzung für g ∈ O(f ).
(a) 2n − 7 = O(n).
(ii) g(n) ist O(f (n))“. Sprich: g(n) ist Groß-Oh von f (n)“
”
”
Warnung: Das =“ bedeutet nicht Gleichheit, ist nicht
”
symmetrisch.
(b) Jede Funktion g mit 2n log n ≤ g(n) ≤ 4n2/ log n
für alle n ≥ 10 erfüllt g(n) = O(n2).
Intuition II:
(d) 4 · 2n + 3 · n2 = O(2n).
O(f (n)) steht für ein beliebiges Element von O(f ).
F0+,
(Eine anonyme Funktion g ∈
von der man nur weiß, dass
sie für genügend große n durch c · f (n) beschränkt ist.)
Damit z. B. sinnvoll: 3n3 + 2n2 − 5n + 4 = 3n3 + O(n2).
FG KTuEA, TU Ilmenau
AuD – 14.04.2008
5
6
(c) 2n2 − 30n + 3 = O(n2).
(e) 4n2 log n + 2n(log n)3 = O(n3).
(e) 4n2 log n + 2n(log n)3 = O(n2 log n).
(f) 3 + 2 sin(n) = O(1).
FG KTuEA, TU Ilmenau
AuD – 14.04.2008
7
Konvention:
o-Notation
Möglichst kleine und möglichst einfache Funktionen
innerhalb des O(. . .)-Terms.
17n2/(log n)3 + 13n3/2 = O(n2/(log n)3)
17n2/(log n)3 + 13n3/2 = O(n2)
(klein)
g(n) wächst asymptotisch streng langsamer als f (n).“
”
oder
f
(einfach)
g
FG KTuEA, TU Ilmenau
AuD – 14.04.2008
8
FG KTuEA, TU Ilmenau
AuD – 14.04.2008
9
Ω-Notation
o-Notation
Definition
g(n) ist asymptotisch und bis auf einen konstanten Faktor
”
durch f nach unten beschränkt.“
+
Für f ∈ F :
g(n)
= 0}
n→∞ f (n)
o(f ) := {g ∈ F0+ | lim
f
Schreibe g(n) = o(f (n))“ für g ∈ o(f ).
”
(Sprich: g(n) ist klein-oh von f (n)“.)
”
Beispiele:
(a) n/ log n = o(n).
g
f /2
(b) 5n2 log n + 7n2.1 = o(n5/2).
(c) n10 = o(2n).
FG KTuEA, TU Ilmenau
AuD – 14.04.2008
n0
10
FG KTuEA, TU Ilmenau
AuD – 14.04.2008
11
Manchmal benutzt: Für f ∈ F +:
Ω-Notation
ω(f ) := {g ∈ F + | limn→∞ fg(n)
(n) = ∞}
Definition
Ω(f ) := {g ∈ F + |
g(n) wächst asymptotisch echt schneller als f .“
”
Schreibe g(n) = ω(f (n))“ für g ∈ ω(f ).
”
(Sprich: g(n) ist klein-omega von f (n)“.)
”
∃n0 ∈ N ∃d > 0
∀n ≥ n0 : g(n) ≥ d · f (n)}
Klar: Für f, g ∈ F + gilt: g ∈ ω(f ) ⇔ f ∈ o(g).
Schreibe g(n) = Ω(f (n))“ für g ∈ Ω(f ).
”
(Sprich: g(n) ist Groß-Omega von f (n)“.)
”
Beispiele: (a) 0.3n log n − 20n = Ω(n log n).
(b)
1 2
10 n
− 20n + 1 = Ω(n2).
(c) n10 log n = Ω(n10).
FG KTuEA, TU Ilmenau
AuD – 14.04.2008
12
FG KTuEA, TU Ilmenau
AuD – 14.04.2008
Θ-Notation
13
Θ-Notation
g(n) ist asymptotisch und bis auf konstante Faktoren von
”
derselben Größenordnung wie f (n).“
Für f ∈ F + definiere:
Θ(f ) := O(f ) ∩ Ω(f ) ,
d.h.
Θ(f ) = {g ∈ F + | ∃n0 ∈ N ∃c, d > 0
∀n ≥ n0 : d · f (n) ≤ g(n) ≤ c · f (n)}
2f
Beobachtung: g ∈ Θ(f ) ⇔ O(g) = O(f ).
Schreibe g(n) = Θ(f (n))“ für g ∈ Θ(f ).
”
(Sprich: g(n) ist Theta von f (n)“.)
”
f
g
f /2
n0
FG KTuEA, TU Ilmenau
AuD – 14.04.2008
14
FG KTuEA, TU Ilmenau
AuD – 14.04.2008
15
Rechenregeln
Rechenregeln
Lemma 1 (Grenzwertregel)
+
F0+
Falls f ∈ F , g ∈
ist g(n) = O(f (n)).
und
limn→∞ fg(n)
(n)
Folgerung aus der Grenzwertregel:
= c für ein c ≥ 0, so
Wenn g ein Polynom ist:
g(n) = ak nk + ak−1nk−1 + · · · + a1n + a0
Spezialfälle:
für ak , . . . , a1, a0 ∈ R, wobei ak > 0, und f (n) = nk , dann
c = 0: Voraussetzung bedeutet: g(n) = o(f (n)).
Also: g(n) = o(f (n)) ⇒ g(n) = O(f (n))
c > 0:
g(n)
ak−1
a0 a1
lim
= lim ak +
+ · · · + k−1 + k = ak ,
n→∞ f (n)
n→∞
n
n
n
limn→∞ fg(n)
(n) = c impliziert:
Es gibt n0, so dass für n ≥ n0 gilt: c/2 <
g(n)
f (n)
damit: ak nk + ak−1nk−1 + · · · + a1n + a0 = O(nk ).
< 2c.
Sogar: . . . = Θ(nk ).
Also: g(n) = Θ(f (n)), also g(n) = O(f (n)).
FG KTuEA, TU Ilmenau
AuD – 14.04.2008
16
FG KTuEA, TU Ilmenau
Rechenregeln
AuD – 14.04.2008
17
Rechenregeln
Lemma 2 (Transitivität)
Lemma 3 ( Konstante Faktoren weglassen“)
”
Ist g(n) = O(d · f (n)) und d > 0 beliebig,
dann gilt g(n) = O(f (n)).
Es seien f, g ∈ F +. Dann gilt für jedes h ∈ F0+:
Wenn g(n) = O(f (n)) und h(n) = O(g(n)),
dann folgt h(n) = O(f (n)).
D.h.: Wenn d > 0, dann ist O(d · f ) = O(f ).
D.h.: Wenn g ∈ O(f ), dann ist O(g) ⊆ O(f ).
Beispiele:
Kurz: h(n) = O(g(n)) = O(f (n)).
Nicht g(n) = O(3n log2.8 n), sondern g(n) = O(n log n);
nicht g(n) = O(n/3), sondern g(n) = O(n);
nicht g(n) = O(2.5), sondern g(n) = O(1).
Achtung: In der O(f (n))-Notation bedeutet =“ keine Gleich”
heit, die Relation ist nicht symmetrisch.
FG KTuEA, TU Ilmenau
AuD – 14.04.2008
18
Analog bei o(·), Ω(·), ω(·), Θ(·).
FG KTuEA, TU Ilmenau
AuD – 14.04.2008
19
Beispiele:
Rechenregeln
10n log n + 5n2 = O(n log n) + O(n2) = O(n2).
Lemma 4 (Linearität und Maximumsregel)
10n log n + 5n2 = Θ(n log n) + Θ(n2) = Θ(n2).
Ist g1(n) = O(f1(n)) und g2(n) = O(f2(n)), so folgt
10n log n + 5n2 = Ω(n log n) + Ω(n2) = Ω(n2).
g1(n) + g2(n) = O(f1(n) + f2(n))
= O(max{f1(n), f2(n)}).
Anwendung: Hintereinanderausführung von Algorithmen:
Rechenzeiten addieren sich, auch in der O-Abschätzung.
Analog bei o(·), Ω(·), ω(·), Θ(·).
FG KTuEA, TU Ilmenau
AuD – 14.04.2008
20
FG KTuEA, TU Ilmenau
Rechenregeln
AuD – 14.04.2008
21
Rechenregeln
Lemma 5 (Weglassen von Termen kleinerer Ordnung“)
”
Ist f ∈ F + und |g(n)| = o(f (n)),
und ist h(n) = O(f (n) + g(n)), so ist h(n) = O(f (n)).
Lemma 6 (Multiplikationsregel)
Ist g1(n) = O(f1(n)) und g2(n) = O(f2(n)),
so folgt g1(n)g2(n) = O(f1(n)f2(n)).
Analog bei o(·), Ω(·), ω(·), Θ(·).
Analog bei o(·), Ω(·), ω(·), Θ(·).
Bei o(·) genügt sogar: g1(n) = O(f1(n)) und g2(n) = o(f2(n)).
Fazit:
In Summen suche den dominierenden Term“;
”
lasse die anderen weg.
FG KTuEA, TU Ilmenau
AuD – 14.04.2008
Anwendung: Sei g1(n) = O(f1(n)) und g2(n) = O(f2(n)).
Wird eine Schleife g1(n)-mal ausgeführt,
wobei die Kosten für die einmalige Ausführung höchstens g2(n)
betragen, dann sind die Gesamtkosten O(f1(n)f2(n)).
22
FG KTuEA, TU Ilmenau
AuD – 14.04.2008
23
Rechenregeln
Rechenregeln
Lemma 7 (O-Notation in Summen)
O-Notation in Summen
Beispiel: Unterschiedliche Kosten für Schleifenrumpf bei verschiedenen Durchläufen.
n Durchläufe, Kosten beim i-ten Durchlauf: O(n · 2i).
Sei g : N × N → R+
0.
Für jedes n ∈ N sei an,1, . . . , an,t(n) Zahlenfolge mit
∃c > 0∃n0∀n ≥ n0∀1 ≤ i ≤ t(n) : 0 ≤ an,i ≤ c · g(n, i).
( an,i ist uniform durch ein Vielfaches von g(n, i) be”
schränkt“; man schreibt kurz: an,i = O(g(n, i)))
Maximum: O(n · 2n).
Multiplikationsregel liefert: O(n · (n · 2n)) = O(n2 · 2n).
Dann gilt (die Variable ist n):
⎛
an,i = O ⎝
Aber: 2 + 22 + 23 + · · · + 2n−1 + 2n = 2n+1 − 2 = O(2n).
n
Vermutung: Gesamtkosten sind nur O(n · 2 ).
1≤i≤t(n)
FG KTuEA, TU Ilmenau
AuD – 14.04.2008
24
Achtung!
AuD – 14.04.2008
AuD – 14.04.2008
25
Beispiel:
Algorithmus Straight Insertion Sort (Pseudocode)
(1) for i from 2 to n do
(2)
x ← A[i] ;
(3)
j ← i-1 ;
(4)
while j ≥ 1 and x.key < A[j].key do
(5)
A[j+1] ← A[j] ;
(6)
j ← j-1 ;
(7)
A[j+1] ← x.
⎞
g(n, i)⎠
1≤i≤t(n)
ist.
FG KTuEA, TU Ilmenau
1≤i≤t(n)
Gegeben: Algorithmus A für Inputmenge I.
∀1 ≤ i ≤ t(n) : 0 ≤ an,i ≤ cn · g(n, i),
1≤i≤t(n)
g(n, i)⎠
Anwendung: Kosten“ — Rechenzeiten“
”
”
Wenn es für jedes n ≥ n0 ein cn gibt mit
(an,i nicht-uniform beschränkt),
dann kann man nicht folgern, dass
⎛
an,i = O ⎝
FG KTuEA, TU Ilmenau
⎞
26
FG KTuEA, TU Ilmenau
AuD – 14.04.2008
27
Kosten“ – Rechenzeiten
”
Kosten“ – Rechenzeiten
”
Kosten, Aufwand, Rechenzeit“, wenn Algorithmus A auf
”
Eingabe x abläuft.
Jede Elementaroperation op ist mit einer Konstanten cop
bewertet.
Eingabegröße: n = |x| = size(x).
Idee: op benötigt höchstens Zeit cop (Takte oder μs)
In = {x ∈ I | size(x) = n} – Größenklasse
Technische Unterschiede (Prozessoren, Speicher usw.) können
bei der Festlegung der Konstanten berücksichtigt werden.
Beim Sortierproblem: size((a1, . . . , an)) = n
Die Konstanten cop werden nie explizit genannt.
FG KTuEA, TU Ilmenau
AuD – 14.04.2008
28
FG KTuEA, TU Ilmenau
AuD – 14.04.2008
29
Kosten
Kosten
kop(x) sei die Anzahl der Ausführungen der Elementaroperation op bei der Ausführung von A auf x. Dann:
Beispiel: Im S.I.S.-Algorithmus wird auf der Eingabe (1, 2, 3, 4)
der Zeilenendetest j ≥ 1“ in Zeile (4) genau dreimal durch”
geführt,
tA(x) :=
kop(x) · cop.
auf Eingabe (2, 1, 4, 3) wird er fünfmal durchgeführt.
op Operation
Analog für die anderen Operationen: jeder Input liefert ein
anderes Bild.
Wir nennen tA(x) die Kosten von A auf x.
Die Kosten stellen ein ungefähres Maß für die Rechenzeit dar.
Wir sagen daher oft Rechenzeit“ anstatt Kosten“.
”
”
Um die Kosten genau zu bestimmen, müsste man die Konstanten für alle ausgeführten Operationen addieren, für jedes
x ∈ I!
Zu kompliziert! Details haben keine Aussagekraft!
→ O-Notation.
FG KTuEA, TU Ilmenau
AuD – 14.04.2008
30
FG KTuEA, TU Ilmenau
AuD – 14.04.2008
31
O-Notation bei Kosten
O-Notation bei Kosten
Beispiel: S.I.S.-Algorithmus.
Mit Multiplikationsregel:
Wir beobachten: jeder Durchlauf durch die innere Schleife in
Zeilen (4)–(6) erfordert eine konstante (unabhängig von n)
Anzahl an Operationen,
Der i-te Durchlauf durch die äußere Schleife hat Kosten O(1)+
ki · O(ki) = O(1 + ki),
wobei ki = #{j < i | key(aj ) > key(ai)} (abhängig von x!).
hat also Kosten O(1).
Mit Summationsregel:
Der gesamte Ablauf hat Kosten
tS.I.S(x) = O(n +
ki).
2≤i≤n
Sogar: tS.I.S(x) = Θ(n +
FG KTuEA, TU Ilmenau
AuD – 14.04.2008
32
FG KTuEA, TU Ilmenau
2≤i≤n ki).
AuD – 14.04.2008
Worst-case-Kosten
33
Worst-case-Kosten
worst-case-Kosten oder Kosten im schlechtesten Fall:
Beispiel S.I.S.:
Sei A Algorithmus für Inputs aus I.
Für den Input x = (n, n − 1, . . . , 1) gilt
Erinnerung: In = {x ∈ I | size(x) = n}
n+
worst-case-Kosten:
ki = n +
2≤i≤n
TA(n) = max{tA(x) | x ∈ In}
Für jeden Input gilt n +
n + n(n−1)
.
2
(i − 1) = n +
2≤i≤n
2≤i≤n ki
≤ n+
n(n − 1)
.
2
2≤i≤n(i
− 1) =
Wenn man betonen will, dass es um die worst-case Kosten
geht: TA,worst(n).
Also: TS.I.S.,worst(n) = O(n + n2) = O(n2), sogar = Θ(n2).
FG KTuEA, TU Ilmenau
FG KTuEA, TU Ilmenau
AuD – 14.04.2008
34
AuD – 14.04.2008
35
Best-case-Kosten
Average-case Kosten
best-case-Kosten oder Kosten im besten Fall:
average-case-Kosten oder durchschnittliche Kosten:
Gegeben sei, für jedes n ∈ N,
eine Wahrscheinlichkeitsverteilung Prn auf In.
TA,best(n) = min{tA(x) | x ∈ In}
D.h.: Für jedes x ∈ In ist eine Wahrscheinlichkeit Prn(x)
festgelegt. (Empirisch, oder per Festlegung.)
Beispiel S.I.S.:
Für den Input (1, 2, . . . , n) gilt
n+
2≤i≤n
für jeden Input gilt n +
ki = n +
0 = n;
TA,av(n) = E(tA) =
2≤i≤n
2≤i≤n ki
Prn(x) · tA(x).
x∈In
(Erwartungswert, berechnet mit Prn; Mittelwert“)
”
≥ n.
Also: TS.I.S.,best(n) = O(n), sogar = Θ(n).
FG KTuEA, TU Ilmenau
AuD – 14.04.2008
36
FG KTuEA, TU Ilmenau
Average-case Kosten
AuD – 14.04.2008
37
Average-case Kosten
Beispiel S.I.S.:
Bilde Mittelwert/Erwartungswert für Fx =
Vereinfachung:
Für alle i = j: key(ai) < key(aj ) oder key(ai) > key(aj ).
Fx := #{(j, i) | 1 ≤ j < i ≤ n, key(aj ) > key(ai)}
Wahrscheinlichkeitsannahme
(Standard für das Sortierproblem):
Jede Anordnung der Eingabezahlen
Wahrscheinlichkeit.
hat
2≤i≤n ki.
Anzahl der Fehlstände“ in x = (a1, . . . , an).
”
Z. B. gibt es in (3, 7, 2) zwei Fehlstände.
dieselbe
D. h.: jede Anordnung der Schlüssel (a1, . . . , an) tritt mit
Wahrscheinlichkeit 1/n! auf.
(Beispiel bei Schlüsseln 2, 3, 7:
(2, 3, 7), (2, 7, 3), (3, 2, 7), (3, 7, 2), (7, 2, 3), (7, 3, 2): je 16 )
FG KTuEA, TU Ilmenau
AuD – 14.04.2008
38
FG KTuEA, TU Ilmenau
AuD – 14.04.2008
39
Average-case Kosten
Analyse von Kosten – Fazit
Kann Erwartungswert (Mittelwert) berechnen:
E(Fx) = 12 · n2 = 14 n(n − 1)
(Grob: Jedes der n2 Paare (j, i) weist mit Wahrscheinlichkeit
1
1
2 einen Fehlstand auf, trägt also 2 zur mittleren Anzahl der
Fehlstände bei.)
Aufwand von Straight Insertion Sort im mittleren Fall, auf
Inputs der Länge n,
unter der Gleichverteilungsannahme:
AuD – 14.04.2008
Selbst für feste Implementierung eines Algorithmus A auf
fester Maschine und feste
Eingabegröße“ n = size(x) = |x|
”
kann der Berechnungsaufwand auf verschiedenen Inputs höchst
unterschiedlich sein.
Begriff Die Laufzeit von Algorithmus A auf Eingaben x vom
”
Umfang n = size(x)“
ist meist sinnlos.
1
TS.I.S,av(n) = Θ(n + n(n − 1)) = Θ(n2).
4
FG KTuEA, TU Ilmenau
Fazit:
Sinnvoll: Schlechtester und bester Fall, eventuell durchschnittlicher Fall.
40
FG KTuEA, TU Ilmenau
AuD – 14.04.2008
41
Ignorieren konstanter Faktoren – Beispiel:
Analyse von Kosten – Fazit
Alternativer Sortieralgorithmus: Mergesort. (1. Sem.)
In allen drei Situationen:
Rechenzeit/Kosten: O(n log n).
Obere Schranken → O-Notation.
Mergesort wird für genügend große Inputs“ schneller sein als
”
Straight Insertion Sort, auch wenn wir die Konstanten nicht
kennen.
Untere Schranken → Ω-Notation .
Asymptotisches Verhalten, präzise: Θ-Notation.
Konstante Faktoren ignorieren!
FG KTuEA, TU Ilmenau
AuD – 14.04.2008
42
FG KTuEA, TU Ilmenau
AuD – 14.04.2008
43
Ein Vergleich: 10n log n versus n2/5
Ein Vergleich: 10n log n versus n2/5
n log n versus n*n,
bis n=500
n log n versus n*n,
bis n=3000
50000
1.8e+06
1.6e+06
40000
1.4e+06
1.2e+06
30000
1e+06
800000
20000
600000
400000
10000
200000
0
100
200
x
300
400
0
500
500
1000
1500
10*n*log n
n*n/5
FG KTuEA, TU Ilmenau
2000
x
2500
3000
10*n*log n
n*n/5
AuD – 14.04.2008
44
Ein Vergleich: 10n log n versus n2/5
FG KTuEA, TU Ilmenau
AuD – 14.04.2008
45
Ein Vergleich: 10n log n versus n2/5
n log n versus n*n,
bis n=10000
n log n versus n*n,
bis n=1000000
1e+11
2e+07
8e+10
1.5e+07
6e+10
1e+07
4e+10
5e+06
2e+10
0
2000
4000
x
6000
8000
0
10000
200000
10*n*log n
n*n/5
FG KTuEA, TU Ilmenau
AuD – 14.04.2008
400000
x
600000
800000
1e+06
10*n*log n
n*n/5
46
FG KTuEA, TU Ilmenau
AuD – 14.04.2008
47
Vergleich einiger Wachstumsordnungen
Hilft ein schnellerer Rechner?
Zeit für eine (Elementar-)Operation: 10 ns.
tA(n)
10
100
1000
log
√n
n
n
n log n
n3/2
n2
n3
1.1n
2n
n!
nn
33ns
32ns
100ns
0.3μs
0.3μs
1μs
10μs
26ns
10μs
36ms
1.7m
66ns
0.1μs
1μs
6.6μs
10μs
0.1ms
10ms
0.1ms
4.0·1014y
3.0·10142y
3.2·10184y
0.1μs
0.3μs
10μs
0.1ms
0.3ms
10ms
10s
7.8·1025y
FG KTuEA, TU Ilmenau
Wie wächst die maximal behandelbare Eingabegröße, wenn der Rechner
n
104
105
106
107
108
0.1μs
1μs
0.1ms
1.3ms
10ms
1s
2.8h
0.2μs
3.1μs
1ms
16ms
0.3s
1.7m
115d
0.2μs
10μs
10ms
0.2s
10s
2.8h
317y
0.2μs
31μs
0.1s
2.3s
5.2m
11d
3.2·105y
0.3μs
0.1ms
1s
27s
2.7h
3.2y
AuD – 14.04.2008
48
Hilft ein schnellerer Rechner?
Angetrieben durch die höheren Rechengeschwindigkeiten
und die noch rascher wachsenden Speicherkapazitäten
wächst in vielen Bereichen die Menge der zu bewältigenden
Daten noch schneller als die Rechnergeschwindigkeit.
Beispiele:
Indizes der Internet-Suchmaschinen.
Routenplaner, Fahrplan-, Ticketsysteme der Bahn.
Computergraphik
(Szenen aus zig Milliarden von Elementen!)
Effizienz der benutzten Algorithmen ist wichtiger denn je!
FG KTuEA, TU Ilmenau
AuD – 14.04.2008
50
um den Faktor 10 schneller wird?
tA(n) Maxalt
MaxNEU
log
n
n
n10
√
n
n
100n
n
n
10n
log n
n log n
n
10n · log n+log
10
n3/2
n
4.64n
n2
n
3.16n
n3
n
2.15n
nk
n
101/k n
cn
n
n + logc 10
n!
um von n auf n + 1 zu kommen,
nn
braucht man einen um den Faktor n
schnelleren Rechner
FG KTuEA, TU Ilmenau
AuD – 14.04.2008
49
Herunterladen