Informatik II. Algorithmen und Datenstrukturen. Vorläufige Version 1 c 2002 Peter Thiemann

Save this PDF as:
 WORD  PNG  TXT  JPG

Größe: px
Ab Seite anzeigen:

Download "Informatik II. Algorithmen und Datenstrukturen. Vorläufige Version 1 c 2002 Peter Thiemann"

Transkript

1 Informatik II Algorithmen und Datenstrukturen Vorläufige Version 1 c 2002 Peter Thiemann

2 1 Einführung 1.1 Inhalt Wichtige Datentypen und ihre Implementierung (Datenstrukturen) Operationen auf Datenstrukturen (Algorithmen) Komplexitätsanalyse Laufzeitanalyse der Operationen Speicherverbrauchsanalyse Techniken des Algorithmenentwurfs Informell: Korrektheit der Algorithmen Vorläufige Version 2 c 2002 Peter Thiemann

3 1.2 Ziele Reproduktion Anwendung Implementierung Auswahlkriterien Komplexitätsanalyse einfacher Algorithmen Entwurfsideen für Algorithmen Vorläufige Version 3 c 2002 Peter Thiemann

4 1.3 Hilfsmittel elementare Mathematik (Folgen, Reihen, Grenzwerte, Abschätzungen, Kombinatorik) algorithmische Notation z.b. Programmiersprache Vorläufige Version 4 c 2002 Peter Thiemann

5 1.4 Literatur T. Ottmann und P. Widmayer, Algorithmen und Datenstrukturen, 4. Auflage, Spektrum Verlag, Vorläufige Version 5 c 2002 Peter Thiemann

6 2 Grundlagen der Komplexitätsanalyse Referenzmaschine für Komplexitätsanalyse: Turingmaschine Definition 1 Sei M Turingmaschine für einen Algorithmus A(x) 1. Laufzeit von A bei Eingabe von x T (x) = Schritte, die M zur Berechnung von A(x)benötigt 2. Speicherplatzbedarf von A bei Eingabe von x S(x) = Bandplätze, die M zur Berechnung von A(x)benötigt Weitere Möglichkeiten für Referenzmaschinen 1. RAM (random access machine) 2. RM (register machine) Vorläufige Version 6 c 2002 Peter Thiemann

7 Beispiel: tm-find0 Turingmaschine über Alphabet {0, 1}, die feststellt, ob die Eingabe 0 enthält B q0 q0 N,0,qf R,B,q0 N,B,qf Startzustand q 0 ; Endzustand q f ; akzeptiert, falls Kopf auf nicht-leerem Platz x T(x) S(x) Vorläufige Version 7 c 2002 Peter Thiemann

8 Probleme mit der Definition 1. Komplexität hängt von konkreter Eingabe ab 2. Exakte Schrittzahl selten von Interesse 3. Algorithmen werden nicht in Form von Turingmaschinen aufgeschrieben Vorläufige Version 8 c 2002 Peter Thiemann

9 2.1 Abstraktion von der Eingabe Anstatt konkreter Eingabe x betrachte alle Eingaben der Größe n = x Bestimme Anzahl der Schritte/Plätze in Abhängigkeit von n neues Problem: Eingaben gleicher Größe können unterschiedlich viele Schritte/Plätze verbrauchen im Beispiel tm-find0 Eingabe braucht einen Schritt Eingabe braucht vier Schritte Eingabe braucht neun Schritte Vorläufige Version 9 c 2002 Peter Thiemann

10 Arten von Komplexität Lösung: extrahiere einen Wert aus allen Werten T (x) mit x = n T min (n) = min{t (x) x = n} best-case Komplexität Tmax(n) = max{t (x) x = n} worst-case Komplexität T (n) = x =n T (x) q n(x) q n (x) ist Wahrscheinlichkeit, dass x als Eingabe der Größe n auftritt average-case Komplexität Vorläufige Version 10 c 2002 Peter Thiemann

11 Bewertung best-case Komplexität leicht zu bestimmen, meist unwichtig worst-case Komplexität oft zu pessimistisch average-case Komplexität praktisch relevant schwierig zu bestimmen Wahrscheinlichkeitsverteilung meist unbekannt in Beweisen wird oft Gleichverteilung angenommen d.h. q n (x) = m 1 wobei m = {x x = n} Vorläufige Version 11 c 2002 Peter Thiemann

12 Beispiel: Laufzeitanalyse von tm-find0 best-case T min (n) = 1 falls x = 0... or x = ε worst-case Tmax(n) = n + 1 falls x = average-case Annahme: Gleichverteilung, d.h. q n (x) = 2 n T (n) = (0.5) n (0.5) n + (n + 1) (0.5) n = ( n k=1 k (1) 2 k ) + (n + 1) 2 n Vorläufige Version 12 c 2002 Peter Thiemann

13 Nebenrechnung n k=1 k 2 k = n 2 n = n n n. + 2 n (2) Jede Zeile von (2) ist (Endstück einer) geometrischen Folge n k=0 q k = qn+1 1 q 1 (3) Einsetzen von q = 1/2 in (3) ergibt n (1/2) k = (1/2)n+1 1 1/2 1 k=0 = 2(1/2) n = 2 2 n (4) Vorläufige Version 13 c 2002 Peter Thiemann

14 In Zeile j {1,..., n} von (2) steht gerade (5) 2 j + 2 (j+1) n = n k=0 (1/2)k j 1 k=0 (1/2)k (4) = 2 2 n (2 2 (j 1) ) = 2 n + 2 (j 1) Also ergibt die Summe aller Zeilen in (2): n j=1 2 n + 2 (j 1) = n 2 n + n j=1 2 (j 1) Einsetzen von (6) in (1) ergibt insgesamt = n 2 n + n 1 j=0 2 j (6) (4) = n 2 n (n 1) T (n) = n 2 n (n 1) + (n + 1) 2 n = n 2 (n 1) = n 2 2 n = 2 2 n (7) Vorläufige Version 14 c 2002 Peter Thiemann

15 2.2 Komplexität eines Problems Unterschied: Komplexität eines Problems Komplexität eines Algorithmus Komplexität eines Problems ist die minimale Laufzeit (Speicherplatzbedarf) eines Algorithmus, der das Problem löst Theorie: für manche Probleme gibt es untere Schranken, d.h. kein Algorithmus kann schneller laufen, als die untere Schranke angibt oft schwer zu bestimmen Komplexität eines konkreten Algorithmus liefert obere Schranke für ein Problem Falls die Komplexität eines Algorithmus der unteren Schranke eines Problems entspricht, so liegt eine genaue Schranke vor. Vorläufige Version 15 c 2002 Peter Thiemann

16 2.3 Wachstumsklassen von Funktionen Genaue Zahl von Schritten selten interessant und/oder technisch aufwändig zu ermitteln Variiert zwischen Implementierungen Verhalten wichtiger für große Eingaben asymptotisches Verhalten Unabhängigkeit von konstanten Faktoren Änderung bei Technologiewechsel Wachstumsverhalten von Funktionen ist interessanter Vorläufige Version 16 c 2002 Peter Thiemann

17 Definition: Landausche O-Notation Seien f, g : N R + Funktionen f O(g) f wächst nicht schneller als g, falls ( c R + ) ( n 0 N) ( n N) n > n 0 f(n) c g(n) f Ω(g) f wächst mindestens so schnell wie g, falls g O(f) f Θ(g) f genauso schnell wie g, falls f O(g) und g O(f) f o(g) f wächst langsamer als g, falls lim n f(n) g(n) = 0 f ω(g) f wächst schneller als g, falls g o(f) Vorläufige Version 17 c 2002 Peter Thiemann

18 Schreibweise Schreibe O(n log n) anstelle von O(λn.n log n) oder O(g) mit g(n) = n log n Oft: f = O(g) anstatt f O(g) Vorsicht, da Gesetze von = nicht gelten! Vorläufige Version 18 c 2002 Peter Thiemann

19 Beispiele Sei f 1 (n) = n; f 2 (n) = n; f 3 (n) = n k für k 1; f 4 (n) = 2 n f 1 O(f 2 ), denn für alle n > n 0 = 1 gilt: n n (mit c = 1) f 2 O(f 3 ), denn für alle n > n 0 = 1 gilt: n n k (mit c = 1; für alle k 1) f 3 O(f 4 ), denn es gilt sogar f 3 o(f 4 ): lim n n k 2 n = lim n nach l Hospital (k-fach angewendet) Zur Erinnerung: Regel von l Hospital lim n k n k 1 ln 2 2 n =... = lim n f (n) g (n) = c lim n falls lim n f(n) = lim n g(n) {0, ± } k! (ln 2) k 2 n = 0 f(n) g(n) = c Vorläufige Version 19 c 2002 Peter Thiemann

20 Visualisierung des Größenwachstums log(x) sqrt(x) x x*x x*x*x x*x*x*x exp(x) Vorläufige Version 20 c 2002 Peter Thiemann

21 Wachstumshierarchie O(1): konstante Funktionen O(log n): Logarithmische Funktionen O(log 2 n): Quadratisch logarithmische Funktionen O(n): Lineare Funktionen O(n log n): keine spezielle Bezeichnung O(n 2 ): quadratische Funktionen O(n 3 ): kubische Funktionen O(n k ): polynomielle Funktionen (für festes k 1) genauer: f heißt polynomiell beschränkt, wenn es ein Polynom p mit f = O(p) gibt O(2 n ): exponentielle Funktionen genauer: f wächst exponentiell, wenn es ein ɛ > 0 mit f = Θ(2 nɛ ) gibt Vorläufige Version 21 c 2002 Peter Thiemann

22 Skalierbarkeit Maximale Eingabelänge bei gegebener Rechenzeit Annahme: Rechenschritt Sekunden. Laufzeit T(n) 1 Sekunde 1 Minute 1 Stunde n n log n n n n Vorläufige Version 22 c 2002 Peter Thiemann

23 Maximale Eingabelänge in Abhängigkeit von Technologie Algorithmus mit Laufzeit T (n) p max. Eingabelänge mit alter Technologie pneu max. Eingabelänge mit neuer Technologie neue Technologie: 10-mal so schnell 10 T (p) = T (pneu) T (n) pneu Begründung n 10p n log n (fast 10)p log 10p = log p + log 10 log p n p n p n p Vorläufige Version 23 c 2002 Peter Thiemann

24 Beispiel: Exponentieller Algorithmus SAT (Erfüllbarkeit einer Formel der Aussagenlogik) Frage: Gegeben eine logische Formel mit n Variablen. Gibt es eine Belegung der Variablen, so dass die Formel wahr (erfüllt) ist? Alternativ: Gegeben ein kombinatorischer Schaltkreis mit n Eingängen. Gibt es eine Belegung der Eingänge, so dass der Ausgang 1 ist? Naive Lösung: Durchprobieren aller 2 n möglichen Belegungen. exponentielle Laufzeit Anmerkung: Es ist nicht bekannt, ob dieser Algorithmus der bestmögliche ist. Vorläufige Version 24 c 2002 Peter Thiemann

25 Weitere Eigenschaften Falls p 1 und p 2 Polynome vom Grad d 1 bzw. d 2 mit positivem Leitkoeffizienten sind, so gilt p 1 Θ(p 2 ) d 1 = d 2 p 1 o(p 2 ) d 1 < d 2 p 1 ω(p 2 ) d 1 > d 2 Für alle k > 0 und ε > 0 gilt log k n o(n ε ) dabei ist log k n = (log n) k 2 n/2 o(2 n ) Vorläufige Version 25 c 2002 Peter Thiemann

26 Rechenregeln für O f O(f) O(f) = O(O(f)) O(k f) = O(f) für Konstante k 0 O(k + f) = O(f) für Konstante k 0 O(f) O(g) = O(f g) O(f) + O(g) = O(max(f, g)) Multiplikationsregel Additionsregel Vorläufige Version 26 c 2002 Peter Thiemann

27 Beweis für Additions- und Multiplikationsregel Sei F O(f) und G O(g), d.h. es gibt c F, c G R + sowie n F, n G N, sodass ( n > n F ) F (n) c F f(n) und ( n > n G ) G(n) c G g(n) ist. Sei nun n 0 = max(n F, n G ). Offenbar gilt für c 1 = c F c G, dass ( n > n 0 ) F (n) G(n) c F f(n) c G g(n) = c(f g)(n). Es gilt also die Multiplikationsregel: F G O(f g). Weiter gilt für c 2 = c F + c G, dass ( n > n 0 ) F (n) + G(n) c F f(n) + c G g(n) c 2 (max(f, g))(n). Es gilt also die Additionsregel: F + G O(max(f, g)). Vorläufige Version 27 c 2002 Peter Thiemann

28 Die Wachstumsordnung auf Funktionen Definition 2 Eine Relation R M M, wobei M Menge, heißt reflexiv, falls ( m M) m R m; transitiv, falls ( m 1, m 2, m 3 M) m 1 R m 2 m 2 R m 3 m 1 R m 3 ; symmetrisch, falls ( m 1, m 2 M) m 1 R m 2 m 2 R m 1 ; Vorordnung, falls R reflexiv und transitiv; Äquivalenzrelation, falls R reflexiv, transitiv und symmetrisch. Vorläufige Version 28 c 2002 Peter Thiemann

29 Für M = {f r : N R + } definiere Es gilt: ist transitive Relation ist Vorordnung f g f g f g f O(g) f g f o(g) Die Relation, definiert durch f g, falls f g g f, ist eine Äquivalenzrelation f g f Θ(g) Bemerkung: Die Relationen,, auf Funktionen haben ähnliche Eigenschaften wie <,, = auf Zahlen. Unterschied: Aus f g folgt nicht f = g! Vorläufige Version 29 c 2002 Peter Thiemann

30 2.4 Kostenmaße Programmiersprache statt Turingmaschine Einheitskostenmaß Konkrete Maschine hat feste Wortbreite (z.b. 32 Bit); jedes Datenelement belegt gleichen Speicherplatz unabhängig von der Größe Turingmaschinen für Grundrechenarten, Vergleiche, Kopieren von 32 Bit Zahlen benötigen 32 c + d Schritte eine Konstante unabhängig von der Größe der Zahl Aufwand für diese Operationen ist O(1) logarithmisches Kostenmaß Jedes Datenelement belegt Platz in Abhängigkeit von seiner Größe Platzbedarf für Langzahl n in Dualdarstellung: log 2 n + 1 Grundrechenarten, Vergleiche, Kopieren benötigen O( log 2 n + 1 ) Schritte Vorläufige Version 30 c 2002 Peter Thiemann

31 2.5 Kosten für Programmteile Zuweisung: T (x := E) = E + 1 O(1) (E Ausdruck, ohne Funktionsaufrufe; Einheitskostenmaß) Sequenz: T (S 1 ;... ; S n ) = T (S 1 ) T (S n ) Konditional: T (if E S 1 S 2 ) = T (E) + max(t (S 1 ), T (S 2 )) Schleife: Rekursion: T (while E do S) = n i=1 T i(e) + T i (S) T selbst rekursiv definiert Bemerkung: oft werden nur wichtige Operationen gezählt: Vergleiche, Datenbewegungen, usw Vorläufige Version 31 c 2002 Peter Thiemann

32 2.6 Beispiele Algorithmus Bubble-Sort Sortiert die Zahlen im Array a[1..n] durch wiederholtes Vertauschen. repeat for (i = 1; i < n; i++) if (a[i] > a[i+1]) swap(a, i, i+1) until (keine Vertauschungen mehr notwendig) Abschätzen der Anzahl von Vergleichen: Worst Case: Innere Schleife: n 1 Vergleiche, maximal n Durchläufe (Minimum an a[n]) der äußeren Schleife O(n 2 ) Best Case: Array ist bereits sortiert: Ende nach einem Durchlauf O(n) Average Case: auch O(n 2 ) viele Vergleiche ausgeführt. Vorläufige Version 32 c 2002 Peter Thiemann

33 2.6.2 Das Maxsummenproblem Problem MaxSum: Betrachte ein Array a[1..n] von ganzen Zahlen. Berechne max{f(i, j) 1 i j n}, wobei f(i, j) = a i a j. Rechenschritte sind arithmetische Operationen und Vergleiche. Naiver Algorithmus Berechne alle Werte von f(i, j) und bestimme dabei das Maximum. m := f (1,1) for (i = 1; i <= n; i++) for (j = i; j <= n; j++) if (f (i,j) > m) m := f (i,j) Die Berechung von f(i, j) benötigt j i Additionen. Vorläufige Version 33 c 2002 Peter Thiemann

34 Analyse Naiver Algorithmus Es gibt j Paare der Form (, j) # Vergleiche: V 1 (n) = n j=1 j O(n2 ) # Additionen: A 1 (n) = = n i=1 n n (j i) j=i n i i=1 k=1 O(n 3 ) # Rechenschritte: T 1 (n) = V 1 (n) + A 1 (n) O(n 2 ) + O(n 3 ) = O(n 3 ). Tatsächlich auch Ω(n 3 ). k Vorläufige Version 34 c 2002 Peter Thiemann

35 2.6.3 Der etwas bessere Algorithmus Verwende f(i, j + 1) = f(i, j) + a j+1 m := f (1,1) for (i = 1; i <= n; i++) fij := 0 for (j = i; j <= n; j++) fij := fij + a[j] if (fij > m) m := fij Damit braucht man für alle f(i, )-Werte genau (n i + 1) Additionen. # Vergleiche: V 2 (n) = V 1 (n) O(n 2 ). # Additionen: A 2 (n) = n i=1 (n i + 1) = n + n 1 k=1 k O(n2 ). # Rechenschritte: T 2 (n) = V 2 (n) + A 2 (n) O(n 2 ). Vorläufige Version 35 c 2002 Peter Thiemann

36 2.6.4 Divide-And-Conquer Algorithmus a Zur Lösung von MaxSum auf a[1..n] unterteile die Menge der Index-Paare (i, j) in drei Klassen: 1. 1 i, j n/2 MaxSum auf a[1..n/2] 2. 1 i n/2 < j n neues Problem auf a[1..n]! 3. n/2 < i j n MaxSum auf a[n/2+1..n] Die Probleme 1 und 3 sind halb so groß wie das ursprüngliche Problem und werden rekursiv gelöst. Für Problem 2 setze g(i) = a i a n/2 für 1 i n/2 h(j) = a n/ a j für n/2 < j n f(i, j) = g(i) + h(j) Es gilt: f(i, j) maximal g(i) und h(j) maximal a (lat. divide et impera) teile und herrsche Vorläufige Version 36 c 2002 Peter Thiemann

37 Berechne nacheinander (in n/2 1 Additionen) g(n/2) = a n/2 g(n/2 1) = a n/2 1 + a n/2. g(1) = a a n/2 und daraus den maximalen Wert von g in (n/2 1) Vergleichen. Berechne den maximalen Wert von h analog. Damit ergeben sich für das zweite Problem insgesamt n 1 Additionen und n 2 Vergleiche, also 2n 3 Operationen, obwohl die Klasse n 2 /4 Paare (i, j) enthält. Gesamtergebnis aus Lösungen für 1, 2 und 3 durch 2 Vergleiche. Vorläufige Version 37 c 2002 Peter Thiemann

38 Rekursionsgleichung T 3 (1) = 0 T 3 (n) = 2T 3 (n/2) + 2 n Lösungsansatz: Angenommen n = 2 k T 3 (2 k ) = 2T 3 (2 k 1 ) + 2 k+1 1 = 4T 3 (2 k 2 ) + 2 k k+1 1 = 8T 3 (2 k 3 ) + 2 k k k+1 1 =... = 2 k T 3 (2 k k ) + k 2 k+1 k i=1 2i 1 = 0 + 2k 2 k 2 k + 1 = (2k 1)2 k + 1 Aus n = 2 k ergibt sich k = log 2 n und somit = (log 2 n 1)n + 1 O(n log n) Vorläufige Version 38 c 2002 Peter Thiemann

39 2.6.5 Scanline Algorithmus MaxSum lässt sich mit einem Durchlauf durch a[1..n] lösen Gesucht: maxsum k = max{ j l=i a l 1 i j k} Hilfsgröße: maxtail k = max{ k l=i a l 1 i k} Für k = 1 setze maxsum 1 = a 1 und maxtail 1 = a 1. Für k = 1,..., n 1 setze maxtail k+1 = max{ k+1 l=i a l 1 i k + 1} = max({a k+1 + k l=i a l 1 i k} {a k+1 }) = max(a k+1 + maxtail k, a k+1 ) maxsum k+1 = max{ j l=i a l 1 i j k + 1} = max({ j l=i a l 1 i j k} { k+1 l=i a l 1 i k + 1}) = max(maxsum k, maxtail k+1 ) T 4 (n) = (n 1) 3 = 3n 3 Operationen Vorläufige Version 39 c 2002 Peter Thiemann

40 2.6.6 Zusammenstellung der Ergebnisse Naiv: T 1 (n) O(n 3 ) Besser: T 2 (n) O(n 2 ) Divide-and-Conquer: T 3 (n) O(n log n) Scanline: T 4 (n) O(n) Bemerkung: Es ist möglich, den Scanline Algorithmus aus dem naiven Algorithmus herzuleiten! Vorläufige Version 40 c 2002 Peter Thiemann

41 2.7 Mastertheorem Gegeben eine Rekursionsgleichung für T : N R. c falls n d T (n) = at (n/b) + f(n) falls n > d. Dabei sind c 1 und d 1 natürliche Zahlen, a 1 und b > 1 reelle Konstanten und f eine reelle Funktion mit f(n) 0 für n d. Unterscheide drei Fälle: 1. ( ɛ > 0) f(n) O(n log b a ɛ ) 2. ( k 0) f(n) Θ(n log b a (log n) k ) 3. ( ɛ > 0) f(n) Ω(n log b a+ɛ ) und ( δ < 1) (n d) af(n/b) δf(n) T (n) Θ(n log b a ) T (n) Θ(n log b a (log n) k+1 ) T (n) Θ(f(n)) Vorläufige Version 41 c 2002 Peter Thiemann

42 Beispiele Mastertheorem 1. T (n) = 4T (n/2) + n; a = 4, b = 2, f(n) = n. Mit n log 2 4 = n 2 ist T (n) Θ(n 2 ), da Fall 1 gilt: n = f(n) O(n 2 ɛ ) für ɛ = 1. Genau: T (n) = 2n 2 n 2. T (n) = T (n/2) + 1; a = 1, b = 2, f(n) = 1. Mit n log 2 1 = 1 ist T (n) Θ(log n), da Fall 2 mit k = 0 gilt. Genau: T (n) = log n T (n) = 2T (n/2) + n log n; a = 2, b = 2, f(n) = n log n. Mit n log 2 2 = n ist T (n) Θ(n log 2 n), da Fall 2 mit k = 1 gilt. Vorläufige Version 42 c 2002 Peter Thiemann

43 4. T (n) = T (n/3) + n log n; a = 1, b = 3, f(n) = n. Mit n log 3 1 = 1 ist T (n) Θ(n), da Fall 3 gilt: f(n) = Ω(n 0+ɛ ) für ɛ = 1 und für δ = 1/3 gilt af(n/b) = (n/3) log(n/3) = (n/3)(log n log 3) (n/3) log n = f(n)/3 Vorläufige Version 43 c 2002 Peter Thiemann

Komplexität. G. Zachmann Clausthal University, Germany Leistungsverhalten von Algorithmen

Komplexität. G. Zachmann Clausthal University, Germany Leistungsverhalten von Algorithmen lausthal Informatik II Komplexität von Algorithmen. Zachmann lausthal University, ermany zach@in.tu-clausthal.de Leistungsverhalten von Algorithmen Speicherplatzkomplexität: Wird primärer & sekundärer

Mehr

Informatik I Komplexität von Algorithmen

Informatik I Komplexität von Algorithmen Informatik I Komplexität von Algorithmen G. Zachmann Clausthal University, Germany zach@in.tu-clausthal.de Leistungsverhalten von Algorithmen Speicherplatzkomplexität: Wird primärer & sekundärer Speicherplatz

Mehr

Notation für das asymptotische Verhalten von Funktionen

Notation für das asymptotische Verhalten von Funktionen Vorbemerkungen: Notation für das asymptotische Verhalten von Funktionen 1. Aussagen über die Komplexität von Algorithmen und von Problemen sollen (in der Regel) unabhängig von speziellen Maschinenmodellen

Mehr

2. Effizienz von Algorithmen

2. Effizienz von Algorithmen Effizienz von Algorithmen 2. Effizienz von Algorithmen Effizienz von Algorithmen, Random Access Machine Modell, Funktionenwachstum, Asymptotik [Cormen et al, Kap. 2.2,3,4.2-4.4 Ottman/Widmayer, Kap. 1.1]

Mehr

Informatik I Komplexität von Algorithmen

Informatik I Komplexität von Algorithmen Leistungsverhalten von Algorithmen Informatik I Komplexität von Algorithmen G. Zachmann Clausthal University, Germany zach@in.tu-clausthal.de Speicherplatzkomplexität: Wird primärer & sekundärer Speicherplatz

Mehr

Übung Algorithmen und Datenstrukturen

Übung Algorithmen und Datenstrukturen Übung Algorithmen und Datenstrukturen Sommersemester 2016 Patrick Schäfer, Humboldt-Universität zu Berlin Organisation Vorlesung: Montag 11 13 Uhr Marius Kloft RUD 26, 0 115 Mittwoch 11 13 Uhr Marius Kloft

Mehr

Achtung: Groß O definiert keine totale Ordnungsrelation auf der Menge aller Funktionen! Beweis: Es gibt positive Funktionen f und g so, dass

Achtung: Groß O definiert keine totale Ordnungsrelation auf der Menge aller Funktionen! Beweis: Es gibt positive Funktionen f und g so, dass Achtung: Groß O definiert keine totale Ordnungsrelation auf der Menge aller Funktionen! Beweis: Es gibt positive Funktionen f und g so, dass f O g und auch g O f. Wähle zum Beispiel und G. Zachmann Informatik

Mehr

WS 2009/10. Diskrete Strukturen

WS 2009/10. Diskrete Strukturen WS 2009/10 Diskrete Strukturen Prof. Dr. J. Esparza Lehrstuhl für Grundlagen der Softwarezuverlässigkeit und theoretische Informatik Fakultät für Informatik Technische Universität München http://www7.in.tum.de/um/courses/ds/ws0910

Mehr

2. Grundlagen. Beschreibung von Algorithmen durch Pseudocode. Korrektheit von Algorithmen durch Invarianten.

2. Grundlagen. Beschreibung von Algorithmen durch Pseudocode. Korrektheit von Algorithmen durch Invarianten. 2. Grundlagen Beschreibung von Algorithmen durch Pseudocode. Korrektheit von Algorithmen durch Invarianten. Laufzeitverhalten beschreiben durch O-Notation. 1 Beispiel Minimum-Suche Eingabe bei Minimum

Mehr

Vorlesung Datenstrukturen

Vorlesung Datenstrukturen Vorlesung Datenstrukturen Einleitung und Grundlagen Maike Buchin 18.4.2017 Verantwortliche Dozentin Organisation der Übungen Übungsleiter Korrekteure Maike Buchin Maike.Buchin@rub.de Raum NA 1/70 Sprechzeiten:

Mehr

2 Wachstumsverhalten von Funktionen

2 Wachstumsverhalten von Funktionen Algorithmen und Datenstrukturen 40 2 Wachstumsverhalten von Funktionen Beim Vergleich der Worst-Case-Laufzeiten von Algorithmen in Abhängigkeit von der Größe n der Eingabedaten ist oft nur deren Verhalten

Mehr

Komplexität von Algorithmen

Komplexität von Algorithmen Komplexität von Algorithmen Prof. Dr. Christian Böhm WS 07/08 in Zusammenarbeit mit Gefei Zhang http://www.dbs.informatik.uni-muenchen.de/lehre/nfinfosw Ressourcenbedarf - Größenordnungen Prozesse verbrauchen

Mehr

Übung zur Vorlesung Berechenbarkeit und Komplexität

Übung zur Vorlesung Berechenbarkeit und Komplexität RWTH Aachen Lehrgebiet Theoretische Informatik Reidl Ries Rossmanith Sanchez Tönnis WS 2012/13 Übungsblatt 7 26.11.2012 Übung zur Vorlesung Berechenbarkeit und Komplexität Aufgabe T15 Entwickeln Sie ein

Mehr

Abgabe: (vor der Vorlesung) Aufgabe 2.1 (P) O-Notation Beweisen Sie die folgenden Aussagen für positive Funktionen f und g:

Abgabe: (vor der Vorlesung) Aufgabe 2.1 (P) O-Notation Beweisen Sie die folgenden Aussagen für positive Funktionen f und g: TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Lehrstuhl für Sprachen und Beschreibungsstrukturen SS 2009 Grundlagen: Algorithmen und Datenstrukturen Übungsblatt 2 Prof. Dr. Helmut Seidl, S. Pott,

Mehr

Grundlagen: Algorithmen und Datenstrukturen

Grundlagen: Algorithmen und Datenstrukturen Technische Universität München Fakultät für Informatik Lehrstuhl für Effiziente Algorithmen Dr. Hanjo Täubig Tobias Lieber Sommersemester 2011 Übungsblatt 1 16. September 2011 Grundlagen: Algorithmen und

Mehr

Algorithmen und Datenstrukturen Effizienz und Funktionenklassen

Algorithmen und Datenstrukturen Effizienz und Funktionenklassen Algorithmen und Datenstrukturen Effizienz und Funktionenklassen Matthias Teschner Graphische Datenverarbeitung Institut für Informatik Universität Freiburg SS 12 Lernziele der Vorlesung Algorithmen Sortieren,

Mehr

Grundlagen: Algorithmen und Datenstrukturen

Grundlagen: Algorithmen und Datenstrukturen Grundlagen: Algorithmen und Datenstrukturen Prof. Dr. Hanjo Täubig Lehrstuhl für Effiziente Algorithmen (Prof. Dr. Ernst W. Mayr) Institut für Informatik Technische Universität München Sommersemester 2010

Mehr

3.3 Laufzeit von Programmen

3.3 Laufzeit von Programmen 3.3 Laufzeit von Programmen Die Laufzeit eines Programmes T(n) messen wir als die Zahl der Befehle, die für die Eingabe n abgearbeitet werden Betrachten wir unser Programm zur Berechnung von Zweierpotenzen,

Mehr

es gibt Probleme, die nicht berechenbar sind (z.b. Menge aller Funktionen N N und die Menge aller Sprachen sind überabzählbar)

es gibt Probleme, die nicht berechenbar sind (z.b. Menge aller Funktionen N N und die Menge aller Sprachen sind überabzählbar) Komplexitätstheorie es gibt Probleme, die nicht berechenbar sind (z.b. Menge aller Funktionen N N und die Menge aller Sprachen sind überabzählbar) andere Probleme sind im Prinzip berechenbar, möglicherweise

Mehr

Kapitel 9. Komplexität von Algorithmen und Sortieralgorithmen

Kapitel 9. Komplexität von Algorithmen und Sortieralgorithmen Kapitel 9 Komplexität von Algorithmen und Sortieralgorithmen Arrays 1 Ziele Komplexität von Algorithmen bestimmen können (in Bezug auf Laufzeit und auf Speicherplatzbedarf) Sortieralgorithmen kennenlernen:

Mehr

Grundlagen der Programmierung

Grundlagen der Programmierung GdP12 Slide 1 Grundlagen der Programmierung Vorlesung 12 Sebastian Iwanowski FH Wedel GdP12 Slide 2 Entwurf von Algorithmen Wie klassifiziert man Algorithmen? offensichtlich nicht durch die Unterscheidung

Mehr

( )= c+t(n-1) n>1. Stand der Vorlesung Komplexität von Algorithmen (Kapitel 3)

( )= c+t(n-1) n>1. Stand der Vorlesung Komplexität von Algorithmen (Kapitel 3) Stand der Vorlesung Komplexität von Algorithmen (Kapitel 3) Motivation: IT gestützte Steuerung, Überwachung, Fertigung, Produktion,. : erfordert effiziente Berechnungsvorschriften Ziel: Methoden kennen

Mehr

V. Claus, Juli 2005 Einführung in die Informatik II 45

V. Claus, Juli 2005 Einführung in die Informatik II 45 Um die Größenordnung einer reellwertigen oder ganzzahligen Funktion zu beschreiben, verwenden wir die so genannten Landau-Symbole (nach dem deutschen Mathematiker Edmund Landau, 1877-1938). Hierbei werden

Mehr

Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005. Rekursion

Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005. Rekursion Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005 Rekursion Rekursion Neue Denkweise Wikipedia: Als Rekursion bezeichnet man den Aufruf

Mehr

Algorithmen und Datenstrukturen I Grundlagen

Algorithmen und Datenstrukturen I Grundlagen Algorithmen und Datenstrukturen I Grundlagen Prof. Dr. Oliver Braun Letzte Änderung: 01.11.2017 14:15 Algorithmen und Datenstrukturen I, Grundlagen 1/24 Algorithmus es gibt keine präzise Definition Handlungsvorschrift

Mehr

Kostenmodell. Daniel Graf, Tobias Pröger. 22. September 2016 (aktualisierte Fassung 5 vom 9. Oktober 2016)

Kostenmodell. Daniel Graf, Tobias Pröger. 22. September 2016 (aktualisierte Fassung 5 vom 9. Oktober 2016) Kostenmodell Daniel Graf, Tobias Pröger 22. September 2016 (aktualisierte Fassung 5 vom 9. Oktober 2016) Erklärung: Diese Mitschrift ist als Ergänzung zur Vorlesung gedacht. Wir erheben keinen Anspruch

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen 1 Algorithmen und Datenstrukturen Wintersemester 2014/15 3. Vorlesung Laufzeitanalyse Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I 2 Recap: Diskutieren Sie mit Ihrer NachbarIn! 1. 2. 3. Was sind

Mehr

Kapitel 5: Paradigmen des Algorithmenentwurfs. Gliederung

Kapitel 5: Paradigmen des Algorithmenentwurfs. Gliederung Gliederung 1. Grundlagen 2. Analyse der Laufzeit von Algorithmen 3. Untere Schranken für algorithmische Probleme 4. Sortier- und Selektionsverfahren 5. Paradigmen des Algorithmenentwurfs 6. Ausgewählte

Mehr

Kapitel 9. Komplexität von Algorithmen und Sortieralgorithmen

Kapitel 9. Komplexität von Algorithmen und Sortieralgorithmen 1 Kapitel 9 Komplexität von Algorithmen und Sortieralgorithmen Ziele 2 Komplexität von Algorithmen bestimmen können (in Bezug auf Laufzeit und auf Speicherplatzbedarf) Sortieralgorithmen kennenlernen:

Mehr

Komplexität von Algorithmen:

Komplexität von Algorithmen: Komplexität von Algorithmen: Ansatz: Beschreiben/erfassen der Komplexität über eine Funktion, zur Abschätzung des Rechenaufwandes abhängig von der Größe der Eingabe n Uns interessiert: (1) Wie sieht eine

Mehr

Stand der Vorlesung Komplexität von Algorithmen (Kapitel 3)

Stand der Vorlesung Komplexität von Algorithmen (Kapitel 3) Stand der Vorlesung Komplexität von Algorithmen (Kapitel 3) Technische Universität München Motivation: IT gestützte Steuerung, Überwachung, Fertigung, Produktion,. : erfordert effiziente Berechnungsvorschriften

Mehr

Algorithmen und Datenstrukturen 1-1. Seminar -

Algorithmen und Datenstrukturen 1-1. Seminar - Algorithmen und Datenstrukturen 1-1. Seminar - Dominic Rose Bioinformatics Group, University of Leipzig Wintersemester 2009/10 Inhalt der ersten beiden Vorlesungen Algorithmenbegriff Komplexität, Asymptotik

Mehr

f 1 (n) = log(n) + n 2 n 5 f 2 (n) = n 3 + n 2 f 3 (n) = log(n 2 ) f 4 (n) = n n f 5 (n) = (log(n)) 2

f 1 (n) = log(n) + n 2 n 5 f 2 (n) = n 3 + n 2 f 3 (n) = log(n 2 ) f 4 (n) = n n f 5 (n) = (log(n)) 2 Prof. aa Dr. E. Ábrahám Datenstrukturen und Algorithmen SS Lösung - Präsenzübung.05.0 F. Corzilius, S. Schupp, T. Ströder Aufgabe (Asymptotische Komplexität): (6 + 0 + 6 = Punkte) a) Geben Sie eine formale

Mehr

3.2. Korrektheit und Komplexität am Beispiel: Sortieren Sortieren ist eine wichtige Basis-Operation für komplexe Algorithmen

3.2. Korrektheit und Komplexität am Beispiel: Sortieren Sortieren ist eine wichtige Basis-Operation für komplexe Algorithmen 3.2. Korrektheit und Komplexität am Beispiel: Sortieren Sortieren ist eine wichtige Basis-Operation für komplexe Algorithmen Sortierproblem Eingabe: Folge von n natürlichen Zahlen a 1, a 2,, a n, die Folge

Mehr

Die Komplexitätsklassen P und NP

Die Komplexitätsklassen P und NP Die Komplexitätsklassen P und NP Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen November 2011 Berthold Vöcking, Informatik 1 () Vorlesung Berechenbarkeit und

Mehr

Komplexität von Algorithmen OOPM, Ralf Lämmel

Komplexität von Algorithmen OOPM, Ralf Lämmel Ganz schön komplex! Komplexität von Algorithmen OOPM, Ralf Lämmel 885 Motivierendes Beispiel Algorithmus Eingabe: ein Zahlen-Feld a der Länge n Ausgabe: Durchschnitt Fragen: sum = 0; i = 0; while (i

Mehr

Abschnitt: Algorithmendesign und Laufzeitanalyse

Abschnitt: Algorithmendesign und Laufzeitanalyse Abschnitt: Algorithmendesign und Laufzeitanalyse Definition Divide-and-Conquer Paradigma Divide-and-Conquer Algorithmen verwenden die Strategien 1 Divide: Teile das Problem rekursiv in Subproblem gleicher

Mehr

1 Minimumssuche k = n Maximumssuche n. Median

1 Minimumssuche k = n Maximumssuche n. Median Kapitel 1 Einführung Anhand des folgenden Problems soll deutlich gemacht werden, welche Schwierigkeiten beim Vergleich verschiedener Lösungsansätze auftreten können, um dann einige sinnvolle Kriterien

Mehr

Ordnen Sie die folgenden Funktionen nach ihrer asymptotischer Komplexität in aufsteigender Reihenfolge: i=1 4i + n = 4 n. i=1 i + 3n = 4 ( n(n+1)

Ordnen Sie die folgenden Funktionen nach ihrer asymptotischer Komplexität in aufsteigender Reihenfolge: i=1 4i + n = 4 n. i=1 i + 3n = 4 ( n(n+1) für Informatik Prof. aa Dr. Ir. Joost-Pieter Katoen Christian Dehnert, Friedrich Gretz, Benjamin Kaminski, Thomas Ströder Tutoraufgabe (Asymptotische Komplexität): Ordnen Sie die folgenden Funktionen nach

Mehr

Kapitel 3 Zur Korrektheit und Effizienz von Algorithmen

Kapitel 3 Zur Korrektheit und Effizienz von Algorithmen Kapitel 3 Zur Korrektheit und Effizienz von Algorithmen Ziel: Kurze Einführung in den Pseudocode zur Beschreibung von Algorithmen Induktionsbeweise als wichtiges Hilfsmittel, um die Korrektheit eines Algorithmus

Mehr

Algorithmik Kap. 2: Laufzeit von Algorithmen

Algorithmik Kap. 2: Laufzeit von Algorithmen 1. Motivation 1.1 Fallstudie: Sortieralgorithmen 1.2 Fallstudie: Selektionsalgorithmen 2. Laufzeit von Algorithmen 2.1 Grundlagen 2.2 3. Paradigmen des Algorithmenentwurfs 3.1 Dynamisches Programmieren

Mehr

Algorithmen und Datenstrukturen Kapitel 1 Algorithmen & Algorithmenanalyse

Algorithmen und Datenstrukturen Kapitel 1 Algorithmen & Algorithmenanalyse Algorithmen und Datenstrukturen Kapitel 1 Algorithmen & Frank Heitmann heitmann@informatik.uni-hamburg.de 14. Oktober 2015 Frank Heitmann heitmann@informatik.uni-hamburg.de 1/48 Der Sprung ins Wasser...

Mehr

Kapitel 2: Analyse der Laufzeit von Algorithmen Gliederung

Kapitel 2: Analyse der Laufzeit von Algorithmen Gliederung Gliederung 1. Motivation / Einordnung / Grundlagen 2. Analyse der Laufzeit von Algorithmen 3. Untere Schranken für algorithmische Probleme 4. Sortier- und Selektionsverfahren 5. Paradigmen des Algorithmenentwurfs

Mehr

Algorithmen und Datenstrukturen (für ET/IT)

Algorithmen und Datenstrukturen (für ET/IT) Algorithmen und Datenstrukturen (für ET/IT) Wintersemester 2012/13 Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München Programm heute 1 Einführung 2 Mathematische Grundlagen

Mehr

Übung Algorithmen und Datenstrukturen

Übung Algorithmen und Datenstrukturen Übung Algorithmen und Datenstrukturen Sommersemester 2017 Marc Bux, Humboldt-Universität zu Berlin Organisatorisches Vorlesung: Montag 11 13 Uhr Ulf Leser RUD 26, 0 115 Mittwoch 11 13 Uhr Ulf Leser RUD

Mehr

8. Sortieren II. 8.1 Heapsort. Heapsort. [Max-]Heap 6. Heapsort, Quicksort, Mergesort. Binärer Baum mit folgenden Eigenschaften

8. Sortieren II. 8.1 Heapsort. Heapsort. [Max-]Heap 6. Heapsort, Quicksort, Mergesort. Binärer Baum mit folgenden Eigenschaften Heapsort, Quicksort, Mergesort 8. Sortieren II 8.1 Heapsort [Ottman/Widmayer, Kap. 2.3, Cormen et al, Kap. 6] 9 210 Heapsort [Max-]Heap 6 Inspiration von Selectsort: Schnelles Einfügen Binärer Baum mit

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Universität Innsbruck Institut für Informatik Zweite Prüfung 16. Oktober 2008 Algorithmen und Datenstrukturen Name: Matrikelnr: Die Prüfung besteht aus 8 Aufgaben. Die verfügbaren Punkte für jede Aufgabe

Mehr

1. Asymptotische Notationen 2. Zahlentheoretische Algorithmen 3. Sortierverfahren 4. String Matching 5. Ausgewählte Datenstrukturen

1. Asymptotische Notationen 2. Zahlentheoretische Algorithmen 3. Sortierverfahren 4. String Matching 5. Ausgewählte Datenstrukturen Gliederung 1. Asymptotische Notationen 2. Zahlentheoretische Algorithmen 3. Sortierverfahren 4. String Matching 5. Ausgewählte Datenstrukturen 1/1, Folie 1 2009 Prof. Steffen Lange - HDa/FbI - Effiziente

Mehr

Kapitel 6. Komplexität von Algorithmen. Xiaoyi Jiang Informatik I Grundlagen der Programmierung

Kapitel 6. Komplexität von Algorithmen. Xiaoyi Jiang Informatik I Grundlagen der Programmierung Kapitel 6 Komplexität von Algorithmen 1 6.1 Beurteilung von Algorithmen I.d.R. existieren viele Algorithmen, um dieselbe Funktion zu realisieren. Welche Algorithmen sind die besseren? Betrachtung nicht-funktionaler

Mehr

Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2014 / 2015 Vorlesung 3, Donnerstag 6.

Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2014 / 2015 Vorlesung 3, Donnerstag 6. Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2014 / 2015 Vorlesung 3, Donnerstag 6. November 2014 (O-Notation, Theta, Omega) Junior-Prof. Dr. Olaf Ronneberger

Mehr

Algebraische und arithmetische Algorithmen

Algebraische und arithmetische Algorithmen Kapitel 1 Algebraische und arithmetische Algorithmen 1.1 Das algebraische Berechnungsmodell Struktur: Körper (oder Ring) mit den Operationen +,,, (/) Eingabe: endliche Folge von Zahlen Ausgabe: endliche

Mehr

Einführung in die Informatik 2

Einführung in die Informatik 2 Einführung in die Informatik 2 NP-Vollständigkeit Sven Kosub AG Algorithmik/Theorie komplexer Systeme Universität Konstanz E 202 Sven.Kosub@uni-konstanz.de Sprechstunde: Freitag, 12:30-14:00 Uhr, o.n.v.

Mehr

Polynomielle Verifizierer und NP

Polynomielle Verifizierer und NP Polynomielle Verifizierer und NP Definition Polynomieller Verifizierer Sei L Σ eine Sprache. Eine DTM V heißt Verifizierer für L, falls V für alle Eingaben w Σ hält und folgendes gilt: w L c Σ : V akzeptiert

Mehr

1 Raumwechsel: Gr. 15 (Do 10-12, F-235) ab sofort in G Studie zum Arbeitsverhalten von Studierenden unter Leitung

1 Raumwechsel: Gr. 15 (Do 10-12, F-235) ab sofort in G Studie zum Arbeitsverhalten von Studierenden unter Leitung Organisatorisches Algorithmen und Datenstrukturen Kapitel 3: Divide & Conquer Frank Heitmann heitmann@informatik.uni-hamburg.de 1 Raumwechsel: Gr. 15 (Do 10-12, F-235) ab sofort in G-021. 2 Studie zum

Mehr

UE Algorithmen und Datenstrukturen 1 UE Praktische Informatik 1. Übung 5. Asymptotische Laufzeitkomplexität Definition Regeln Beispiele

UE Algorithmen und Datenstrukturen 1 UE Praktische Informatik 1. Übung 5. Asymptotische Laufzeitkomplexität Definition Regeln Beispiele UE Algorithmen und Datenstrukturen 1 UE Praktische Informatik 1 Übung 5 Asymptotische Laufzeitkomplexität Definition Regeln Beispiele Institut für Pervasive Computing Johannes Kepler Universität Linz Altenberger

Mehr

Objektorientierte Programmierung VL: Prof. Dr. Marco Block-Berlitz - Freie Universität Berlin Proinformatik III

Objektorientierte Programmierung VL: Prof. Dr. Marco Block-Berlitz - Freie Universität Berlin Proinformatik III Objektorientierte Programmierung VL: Prof. Dr. Marco Block-Berlitz - Freie Universität Berlin Proinformatik III Text: Hinnerk van Bruinehsen - Grafiken: Jens Fischer powered by SDS.mint SoSe 2011 1 Teil

Mehr

Heapsort / 1 A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8]

Heapsort / 1 A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8] Heapsort / 1 Heap: Ein Array heißt Heap, falls A [i] A [2i] und A[i] A [2i + 1] (für 2i n bzw. 2i + 1 n) gilt. Beispiel: A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8] Heapsort / 2 Darstellung eines Heaps als

Mehr

Grundlagen: Algorithmen und Datenstrukturen

Grundlagen: Algorithmen und Datenstrukturen Technische Universität München Fakultät für Informatik Lehrstuhl für Effiziente Algorithmen Dr. Hanjo Täubig Tobias Lieber Sommersemester 011 Übungsblatt 30. Mai 011 Grundlagen: Algorithmen und Datenstrukturen

Mehr

Laufzeit und Komplexität

Laufzeit und Komplexität Laufzeit und Komplexität Laufzeit eines Algorithmus Benchmarking versus Analyse Abstraktion Rechenzeit, Anzahl Schritte Bester, Mittlerer, Schlechtester Fall Beispiel: Lineare Suche Komplexitätsklassen

Mehr

12. Woche: Verifizierer, nicht-deterministische Turingmaschine, Klasse NP

12. Woche: Verifizierer, nicht-deterministische Turingmaschine, Klasse NP 12 Woche: Verifizierer, nicht-deterministische Turingmaschine, Klasse NP 12 Woche: Verifizierer, nicht-deterministische Turingmaschine, NP 254/ 333 Polynomielle Verifizierer und NP Ḋefinition Polynomieller

Mehr

4 Effizienz und Komplexität 3.1 1

4 Effizienz und Komplexität 3.1 1 4 Effizienz und Komplexität 3.1 1 Effizienz (efficiency): auf den Ressourcen-Verbrauch bezogene Programmeigenschaft: hohe Effizienz bedeutet geringen Aufwand an Ressourcen. Typische Beispiele: Speichereffizienz

Mehr

5. Übungsblatt zu Algorithmen I im SoSe 2016

5. Übungsblatt zu Algorithmen I im SoSe 2016 Karlsruher Institut für Technologie Institut für Theoretische Informatik Prof. Dr. Dennis Hofheinz Lukas Barth, Lisa Kohl 5. Übungsblatt zu Algorithmen I im SoSe 2016 https://crypto.iti.kit.edu/index.php?id=algo-sose16

Mehr

Kapitel 8. Rekursionsgleichungen. Landau-Symbole. Lösen von Rekursionsgleichungen Allgemeines Iterationsmethode Spezialfälle Erzeugende Funktionen

Kapitel 8. Rekursionsgleichungen. Landau-Symbole. Lösen von Rekursionsgleichungen Allgemeines Iterationsmethode Spezialfälle Erzeugende Funktionen Rekursionsgleichungen Landau-Symbole Kapitel 8 Lösen von Rekursionsgleichungen Allgemeines Iterationsmethode Spezialfälle Erzeugende Funktionen Kapitel 8 Rekursionsgleichungen p./42 Landau-Symbole () Modellierung

Mehr

Berechenbarkeitstheorie 19. Vorlesung

Berechenbarkeitstheorie 19. Vorlesung 1 Berechenbarkeitstheorie Dr. Institut für Mathematische Logik und Grundlagenforschung WWU Münster WS 15/16 Alle Folien unter Creative Commons Attribution-NonCommercial 3.0 Unported Lizenz. Erinnerung:

Mehr

Vorlesung Berechenbarkeit und Komplexität alias Theoretische Informatik: Komplexitätstheorie und effiziente Algorithmen. Wintersemester 2012/13

Vorlesung Berechenbarkeit und Komplexität alias Theoretische Informatik: Komplexitätstheorie und effiziente Algorithmen. Wintersemester 2012/13 Vorlesung Berechenbarkeit und Komplexität alias Theoretische Informatik: und effiziente Algorithmen Wintersemester 2012/13 Prof. Barbara König Übungsleitung: Henning Kerstan & Sebastian Küpper Barbara

Mehr

Modul Algorithmik, T-Katalog

Modul Algorithmik, T-Katalog Modul Algorithmik, T-Katalog Sommersemester 2017 Steffen Lange 1/1, Folie 1 2017 Prof. Steffen Lange - HDa/FbI - Algorithmik Organisatorisches u Vorlesung Folien im Netz u Übung eine Übung alle 14 Tage

Mehr

Das Kino-Problem (Beispiel 7.5) hat gezeigt, dass es unterschiedlich effiziente Algorithmen

Das Kino-Problem (Beispiel 7.5) hat gezeigt, dass es unterschiedlich effiziente Algorithmen Kapitel 8 Komplexität Fools ignore complexity. Pragmatists suffer it. Some can avoid it. Geniuses remove it. (Alan J. Perlis) 8.1 Motivation Das Kino-Problem (Beispiel 7.5) hat gezeigt, dass es unterschiedlich

Mehr

Aufgabe 8. 1 Arbeitsweise illustrieren. 2 Korrektheitsbeweis führen. 3 Laufzeitanalyse durchführen.

Aufgabe 8. 1 Arbeitsweise illustrieren. 2 Korrektheitsbeweis führen. 3 Laufzeitanalyse durchführen. Aufgabe 8 Betrachten Sie den folgenden Algorithmus namens Bubble-Sort. Bubble-Sort(A[1..n]): 1 for i 1 to length(a) 1 2 do for j length(a) downto i + 1 3 do if A[j 1] > A[j] 4 then A[j 1] A[j] 1 Arbeitsweise

Mehr

String - Matching. Kapitel Definition

String - Matching. Kapitel Definition Kapitel 1 String - Matching 1.1 Definition String - Matching ( übersetzt in etwa Zeichenkettenanpassung ) ist die Suche eines Musters ( Pattern ) in einem Text. Es findet beispielsweise Anwendung bei der

Mehr

Übersicht. Datenstrukturen und Algorithmen. Übersicht. Heaps. Vorlesung 8: Heapsort (K6) Joost-Pieter Katoen. 7. Mai 2015

Übersicht. Datenstrukturen und Algorithmen. Übersicht. Heaps. Vorlesung 8: Heapsort (K6) Joost-Pieter Katoen. 7. Mai 2015 Datenstrukturen und Algorithmen Vorlesung 8: (K6) 1 Joost-Pieter Katoen Lehrstuhl für Informatik Software Modeling and Verification Group http://moves.rwth-aachen.de/teaching/ss-15/dsal/ 7. Mai 015 3 Joost-Pieter

Mehr

Laufzeit einer DTM, Klasse DTIME

Laufzeit einer DTM, Klasse DTIME Laufzeit einer DTM, Klasse DTIME Definition Laufzeit einer DTM Sei M eine DTM mit Eingabealphabet Σ, die bei jeder Eingabe hält. Sei T M (w) die Anzahl der Rechenschritte d.h. Bewegungen des Lesekopfes

Mehr

Algorithmenbegriff: Berechenbarkeit. Algorithmenanalyse. (Berechnung der Komplexität)

Algorithmenbegriff: Berechenbarkeit. Algorithmenanalyse. (Berechnung der Komplexität) Über-/Rückblick Algorithmenbegriff: Berechenbarkeit Turing-Maschine RAM µ-rekursive Funktionen Zeit Platz Komplexität Algorithmentechniken Algorithmenanalyse (Berechnung der Komplexität) Rekursion Iteration

Mehr

16. All Pairs Shortest Path (ASPS)

16. All Pairs Shortest Path (ASPS) . All Pairs Shortest Path (ASPS) All Pairs Shortest Path (APSP): Eingabe: Gewichteter Graph G=(V,E) Ausgabe: Für jedes Paar von Knoten u,v V die Distanz von u nach v sowie einen kürzesten Weg a b c d e

Mehr

Zeitkomplexität (1) Proseminar Theoretische Informatik. Proseminar Theoretische Informatik: Lisa Dohrmann 1

Zeitkomplexität (1) Proseminar Theoretische Informatik. Proseminar Theoretische Informatik: Lisa Dohrmann 1 Zeitkomplexität (1) Proseminar Theoretische Informatik Proseminar Theoretische Informatik: Lisa Dohrmann 1 Warum Komplexitätsbetrachtung? Ein im Prinzip entscheidbares und berechenbares Problem kann in

Mehr

Datenstrukturen & Algorithmen

Datenstrukturen & Algorithmen Datenstrukturen & Algorithmen VO 708.031 Um was geht es? Datenstrukturen Algorithmen Algorithmus Versuch einer Erklärung: Ein Algorithmus nimmt bestimmte Daten als Input und transformiert diese nach festen

Mehr

Numerische Verfahren und Grundlagen der Analysis

Numerische Verfahren und Grundlagen der Analysis Numerische Verfahren und Grundlagen der Analysis Rasa Steuding Hochschule RheinMain Wiesbaden Wintersemester 2011/12 R. Steuding (HS-RM) NumAna Wintersemester 2011/12 1 / 26 1. Folgen R. Steuding (HS-RM)

Mehr

Algorithmen & Komplexität

Algorithmen & Komplexität Algorithmen & Komplexität Angelika Steger Institut für Theoretische Informatik Was ist ein Algorithmus? Ein Algorithmus ist eine eindeutige Handlungsvorschrift, [bestehend] aus endlich vielen, wohldefinierten

Mehr

Der Lese-Schreib-Kopf kann auch angehalten werden (H). Die Verarbeitung ist dann beendet.

Der Lese-Schreib-Kopf kann auch angehalten werden (H). Die Verarbeitung ist dann beendet. Die Turingmaschine besteht aus der Steuereinheit, die verschiedene Zustände annimmt dem Band, welches unendlich ausgedehnt ist, aber nur auf einem endlichem Bereich mit Zeichen aus einem Alphabet beschrieben

Mehr

Hier ist ein einfaches Turingprogramm. Außer dem Leerzeichen ist das Band nur mit. 1 belegt.

Hier ist ein einfaches Turingprogramm. Außer dem Leerzeichen ist das Band nur mit. 1 belegt. Die Turingmaschine besteht aus der Steuereinheit, die verschiedene Zustände annimmt dem Band, welches unendlich ausgedehnt ist, aber nur auf einem endlichem Bereich mit Zeichen aus einem Alphabet beschrieben

Mehr

4 Rekursionen. 4.1 Erstes Beispiel

4 Rekursionen. 4.1 Erstes Beispiel 4 Rekursionen Viele Algorithmen besitzen sowohl eine iterative als auch eine rekursive Lösung. Sie unterscheiden sich darin, dass die iterative Version meist einen etwas längeren Kode besitzt, während

Mehr

Algorithmen und Datenstrukturen (Th. Ottmann und P. Widmayer) Folien: Suchverfahren Autor: Stefan Edelkamp / Sven Schuierer

Algorithmen und Datenstrukturen (Th. Ottmann und P. Widmayer) Folien: Suchverfahren Autor: Stefan Edelkamp / Sven Schuierer Algorithmen und Datenstrukturen (Th. Ottmann und P. Widmayer) Folien: Suchverfahren Autor: Stefan Edelkamp / Sven Schuierer Institut für Informatik Georges-Köhler-Allee Albert-Ludwigs-Universität Freiburg

Mehr

Programmiertechnik II

Programmiertechnik II Analyse von Algorithmen Algorithmenentwurf Algorithmen sind oft Teil einer größeren Anwendung operieren auf Daten der Anwendung, sollen aber unabhängig von konkreten Typen sein Darstellung der Algorithmen

Mehr

Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2014 / Vorlesung 9, Donnerstag 18.

Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2014 / Vorlesung 9, Donnerstag 18. Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2014 / 2015 Vorlesung 9, Donnerstag 18. Dezember 2014 (Teile und Herrsche, Mastertheorem) Junior-Prof. Dr.

Mehr

7. Sortieren Lernziele. 7. Sortieren

7. Sortieren Lernziele. 7. Sortieren 7. Sortieren Lernziele 7. Sortieren Lernziele: Die wichtigsten Sortierverfahren kennen und einsetzen können, Aufwand und weitere Eigenschaften der Sortierverfahren kennen, das Problemlösungsparadigma Teile-und-herrsche

Mehr

Datenstrukturen und Algorithmen

Datenstrukturen und Algorithmen Datenstrukturen und Algorithmen VO 708.031 27.10.2011 stefan.klampfl@tugraz.at 1 Wiederholung Wir vergleichen Algorithmen anhand des ordnungsmäßigen Wachstums von T(n), S(n), Asymptotische Schranken: O-Notation:

Mehr

Übung Algorithmen und Datenstrukturen

Übung Algorithmen und Datenstrukturen Übung Algorithmen und Datenstrukturen Sommersemester 2016 Patrick Schäfer, Humboldt-Universität zu Berlin Agenda 1. Vorstellen des vierten Übungsblatts 2. Vorbereitende Aufgaben für das vierte Übungsblatt

Mehr

Divide & Conquer. Problem in Teilprobleme aufteilen Teilprobleme rekursiv lösen Lösung aus Teillösungen zusammensetzen

Divide & Conquer. Problem in Teilprobleme aufteilen Teilprobleme rekursiv lösen Lösung aus Teillösungen zusammensetzen Teile & Herrsche: Divide & Conquer Problem in Teilprobleme aufteilen Teilprobleme rekursiv lösen Lösung aus Teillösungen zusammensetzen Probleme: Wie setzt man zusammen? [erfordert algorithmisches Geschick

Mehr

Lösungen zur Vorlesung Berechenbarkeit und Komplexität

Lösungen zur Vorlesung Berechenbarkeit und Komplexität Lehrstuhl für Informatik 1 WS 009/10 Prof. Dr. Berthold Vöcking 0.0.010 Alexander Skopalik Thomas Kesselheim Lösungen zur Vorlesung Berechenbarkeit und Komplexität. Zulassungsklausur Aufgabe 1: (a) Worin

Mehr

Entscheidungsbäume. Definition Entscheidungsbaum. Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen?

Entscheidungsbäume. Definition Entscheidungsbaum. Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen? Entscheidungsbäume Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen? Definition Entscheidungsbaum Sei T ein Binärbaum und A = {a 1,..., a n } eine zu sortierenden Menge. T ist ein Entscheidungsbaum

Mehr

Bucketsort. Korrektheit. Beispiel. Eingabe: Array A mit n Elementen im Bereich [0,1) Annahme: die Elemente sind in [0,1) gleichverteilt.

Bucketsort. Korrektheit. Beispiel. Eingabe: Array A mit n Elementen im Bereich [0,1) Annahme: die Elemente sind in [0,1) gleichverteilt. Bucketsort Beispiel Eingabe: Array A mit n Elementen im Bereich [0,1) Annahme: die Elemente sind in [0,1) gleichverteilt 1 2 A.78.17 0 1 B.12.17 Sonst: Skalieren ( Aufwand O(n) ) 3.39 2.21.23.26 Idee:

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Martin Hofmann Sommersemester 2009 1 Überblick über die Vorlesung Was sind Algorithmen, wieso Algorithmen? Ein Algorithmus ist eine genau festgelegte Berechnungsvorschrift,

Mehr

Alle bislang betrachteten Sortieralgorithmen hatten (worst-case) Laufzeit Ω(nlog(n)).

Alle bislang betrachteten Sortieralgorithmen hatten (worst-case) Laufzeit Ω(nlog(n)). 8. Untere Schranken für Sortieren Alle bislang betrachteten Sortieralgorithmen hatten (worst-case) Laufzeit Ω(nlog(n)). Werden nun gemeinsame Eigenschaften dieser Algorithmen untersuchen. Fassen gemeinsame

Mehr

Prof. Dr. Margarita Esponda

Prof. Dr. Margarita Esponda Die O-Notation Analyse von Algorithmen Die O-Notation Prof. Dr. Margarita Esponda Freie Universität Berlin ALP II: Margarita Esponda, 5. Vorlesung, 26.4.2012 1 Die O-Notation Analyse von Algorithmen Korrektheit

Mehr

2. Algorithmen und Algorithmisierung Algorithmen und Algorithmisierung von Aufgaben

2. Algorithmen und Algorithmisierung Algorithmen und Algorithmisierung von Aufgaben Algorithmen und Algorithmisierung von Aufgaben 2-1 Algorithmisierung: Formulierung (Entwicklung, Wahl) der Algorithmen + symbolische Darstellung von Algorithmen Formalismen für die symbolische Darstellung

Mehr

Einführung in die Informatik I

Einführung in die Informatik I Einführung in die Informatik I Berechenbarkeit und Komplexität Prof. Dr. Nikolaus Wulff Berechenbarkeit Im Rahmen der Turingmaschine fiel zum ersten Mal der Begriff Berechenbarkeit. Ein Funktion f heißt

Mehr

8 Komplexitätstheorie

8 Komplexitätstheorie 8 Komplexitätstheorie Formale Grundlagen der Informatik I Herbstsemester 2012 Robert Marti Vorlesung teilweise basierend auf Unterlagen von Prof. emer. Helmut Schauer Grundidee der Komplexitätstheorie

Mehr

Algorithmen und Datenstrukturen Tutorium I

Algorithmen und Datenstrukturen Tutorium I Algorithmen und Datenstrukturen Tutorium I 20. - 25. 04. 2016 AlgoDat - Tutorium I 1 1 Organisatorisches Kontakt 2 Landau-Notation Definiton von O Logarithmen Gesetze & Ableitung Satz von l Hôpital 3 Algorithmen

Mehr

Informatik II, SS 2014

Informatik II, SS 2014 Informatik II SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 4 (7.5.2014) Asymptotische Analyse, Sortieren IV Algorithmen und Komplexität Erfahrungen 1. Übung C++ / Java sind komplett ungewohnt Struktur

Mehr

1. Musterlösung. Problem 1: Average-case-Laufzeit vs. Worst-case-Laufzeit

1. Musterlösung. Problem 1: Average-case-Laufzeit vs. Worst-case-Laufzeit Universität Karlsruhe Algorithmentechnik Fakultät für Informatik WS 06/07 ITI Wagner Musterlösung Problem : Average-case-Laufzeit vs Worst-case-Laufzeit pt (a) Folgender Algorithmus löst das Problem der

Mehr

1 Asymptotische Notation

1 Asymptotische Notation In diesem Kapitel wollen wir die Grundlagen der asymptotischen Notation vermitteln. Diese ist ein wichtiges Werkzeug zur Betrachtung der Effizienz eines Algorithmus. 1.1 Grundlagen und einleitende Beispiele

Mehr