Grundbegriffe der Informatik

Größe: px
Ab Seite anzeigen:

Download "Grundbegriffe der Informatik"

Transkript

1 Grundbegriffe der Informatik Einheit 17: Quantitative Aspekte von Algorithmen Thomas Worsch KIT, Institut für Theoretische Informatik Wintersemester 2015/2016 GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 1 / 72

2 Überblick Ressourcenverbrauch bei Berechnungen Groß-O-Notation Ignorieren konstanter Faktoren Notation für obere und untere Schranken des Wachstums Eine grauenhafte Schreibweise Rechnen im O-Kalkül Matrixmultiplikation Rückblick auf die Schulmethode Algorithmus von Strassen Asymptotisches Verhalten implizit definierter Funktionen Laufzeit von Teile-und-Herrsche-Algorithmen Ineinander geschachtelte Schleifen GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 2 / 72

3 Wo sind wir? Ressourcenverbrauch bei Berechnungen Groß-O-Notation Matrixmultiplikation Asymptotisches Verhalten implizit definierter Funktionen GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 3 / 72

4 Zählen arithmetischer Operationen in Abhängigkeit von der Größe der Objekte im vorangegangenen Kapitel Addition von n n-matrizen: n 2 Multiplikation von n n-matrizen 2n 3 n 2 Berechnung der Wegematrix n n n3 + n 2 oder weniger... Idee: Anzahl durchgeführter Operationen «Laufzeit» der Algorithmen GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 4 / 72

5 Ressourcen für Rechnungen Laufzeit/Rechenzeit Speicherplatzbedarf insbesondere für Zwischenergebnisse Komplexitätsmaße im Sinne von computational complexity Effizienz interessiert aber: «premature optimization is the root of all evil» (Knuth, 1974) GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 5 / 72

6 O, Θ, Ω zur Notation asymptotischen Wachstums wichtiges Handwerkszeug zum Reden über und Ausrechnen von z. B. Laufzeiten insbesondere «kontrollierte Ungenauigkeiten» O: «Groß-O» eingeführt von Bachmann (oder früher) von Landau bekannt gemacht Ω, Θ von Knuth zumindest verbreitet GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 6 / 72

7 Insertionsort Wieviele Vertauschungen sind nötig? void sort(long[ ] a) { for (int i 1; i < a.length; i++) { insert(a, i); } } void insert(long[ ] a, int idx) { int i idx; // Tausche a[idx] nach links bis einsortiert while (i > 0 a[i 1] > a[i]) { // Elemente a[i 1] und a[i] vertauschen a[i 1] a[i]; i i 1; } } GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 7 / 72

8 Insertionsort Wieviele Vertauschungen sind nötig? idx i void sort(long[ ] a) { for (int i 1; i < a.length; i++) { insert(a, i); } } void insert(long[ ] a, int idx) { int i idx; // Tausche a[idx] nach links bis einsortiert while (i > 0 a[i 1] > a[i]) { // Elemente a[i 1] und a[i] vertauschen a[i 1] a[i]; i i 1; } } GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 7 / 72

9 Insertionsort Wieviele Vertauschungen sind nötig? idx i i void sort(long[ ] a) { for (int i 1; i < a.length; i++) { insert(a, i); } } void insert(long[ ] a, int idx) { int i idx; // Tausche a[idx] nach links bis einsortiert while (i > 0 a[i 1] > a[i]) { // Elemente a[i 1] und a[i] vertauschen a[i 1] a[i]; i i 1; } } GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 7 / 72

10 Insertionsort Wieviele Vertauschungen sind nötig? idx i i i void sort(long[ ] a) { for (int i 1; i < a.length; i++) { insert(a, i); } } void insert(long[ ] a, int idx) { int i idx; // Tausche a[idx] nach links bis einsortiert while (i > 0 a[i 1] > a[i]) { // Elemente a[i 1] und a[i] vertauschen a[i 1] a[i]; i i 1; } } GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 7 / 72

11 Insertionsort Laufzeitabschätzung? Laufzeit Anzahl Vergleiche Anzahl Vertauschungen (im wesentlichen...) Anzahl Schleifendurchläufe abhängig von Problemgröße n = a.length abhängig von konkreter Probleminstanz wenn a anfangs an sortiert: while-schleife wird überhaupt nicht ausgeführt. wenn a anfangs entgegengesetzt geordnet: Schleifenrumpf n 1 i=1 i = n(n 1)/2 mal ausgeführt GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 8 / 72

12 Ressourcenverbrauch wie detailliert? für jede Probleminstanz einzeln präzise aber oft unpraktikabel gröber: nur in Abhängigkeit von der «Problemgröße» wenn Ressourcenverbrauch für verschiedene Instanzen gleicher Größe unterschiedlich ist: bester Fall? (best case) Durchschnitt? (average case) schlechtester Fall? (worst case) GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 9 / 72

13 Ressourcenverbrauch wie detailliert? für jede Probleminstanz einzeln präzise aber oft unpraktikabel gröber: nur in Abhängigkeit von der «Problemgröße» wenn Ressourcenverbrauch für verschiedene Instanzen gleicher Größe unterschiedlich ist: bester Fall? (best case) oft total uninteressant Durchschnitt? (average case) schlechtester Fall? (worst case) GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 9 / 72

14 Ressourcenverbrauch wie detailliert? für jede Probleminstanz einzeln präzise aber oft unpraktikabel gröber: nur in Abhängigkeit von der «Problemgröße» wenn Ressourcenverbrauch für verschiedene Instanzen gleicher Größe unterschiedlich ist: bester Fall? (best case) oft total uninteressant Durchschnitt? (average case) oft sehr schwer schlechtester Fall? (worst case) GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 9 / 72

15 Ressourcenverbrauch wie detailliert? für jede Probleminstanz einzeln präzise aber oft unpraktikabel gröber: nur in Abhängigkeit von der «Problemgröße» wenn Ressourcenverbrauch für verschiedene Instanzen gleicher Größe unterschiedlich ist: bester Fall? (best case) oft total uninteressant Durchschnitt? (average case) oft sehr schwer schlechtester Fall? (worst case) oft angegeben mit dem Hinweis, dass es auch besser sein kann... GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 9 / 72

16 Was ist wichtig Das sollten Sie mitnehmen: Bedarf an Rechenzeit und Speicherplatzbedarf wichtige Komplexitätsmaße oft Quantifizierung in Abhängigkeit von Problemgröße oft schlimmster Fall (worst case) gelegentlich ein «mittlerer» Fall (average case) Das sollten Sie üben: Abschätzen/ausrechnen wie oft ein Programmstück, z. B. ein Schleifenrumpf, durchlaufen wird. GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 10 / 72

17 Wo sind wir? Ressourcenverbrauch bei Berechnungen Groß-O-Notation Ignorieren konstanter Faktoren Notation für obere und untere Schranken des Wachstums Eine grauenhafte Schreibweise Rechnen im O-Kalkül Matrixmultiplikation Asymptotisches Verhalten implizit definierter Funktionen GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 11 / 72

18 Warum keine exakten Angaben? Man will nicht. Man kann nicht. Man «soll» nicht. GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 12 / 72

19 Warum keine exakten Angaben? Man will nicht. Faulheit Vergänglichkeit der genauen Werte bald neuer Prozessor mangelndes Interesse an genauen Werten Man kann nicht. Man «soll» nicht. GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 12 / 72

20 Warum keine exakten Angaben? Man will nicht. Faulheit Vergänglichkeit der genauen Werte bald neuer Prozessor mangelndes Interesse an genauen Werten Man kann nicht. Unfähigkeit Unkenntnis von Randbedingungen Ungenauigkeiten im Algorithmus (??) Man «soll» nicht. GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 12 / 72

21 Warum keine exakten Angaben? Man will nicht. Faulheit Vergänglichkeit der genauen Werte bald neuer Prozessor mangelndes Interesse an genauen Werten Man kann nicht. Unfähigkeit Unkenntnis von Randbedingungen Ungenauigkeiten im Algorithmus (??) Man «soll» nicht. Unabhängigkeit von konkreten Probleminstanzen Unabhängigkeit von Programmiersprache Unabhängigkeit von Prozessor GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 12 / 72

22 Wie ungenau wollen wir über Funktionen reden? Ignorieren konstanter Faktoren Motivation: Geschwindigkeitssteigerungen bei Prozessoren irrelevant nur obere (bzw. untere) Schranken Motivation: können nur schlechtesten Fall analysieren GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 13 / 72

23 Wo sind wir? Ressourcenverbrauch bei Berechnungen Groß-O-Notation Ignorieren konstanter Faktoren Notation für obere und untere Schranken des Wachstums Eine grauenhafte Schreibweise Rechnen im O-Kalkül Matrixmultiplikation Asymptotisches Verhalten implizit definierter Funktionen GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 14 / 72

24 Zu Notation und Redeweise Notation: R + : Menge der positiven reellen Zahlen (ohne 0) R + 0 : Menge der nichtnegativen rellen Zahlen, R+ 0 = R + {0}. betrachten Funktionen f : N 0 R + 0. GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 15 / 72

25 Zu Notation und Redeweise Notation: R + : Menge der positiven reellen Zahlen (ohne 0) R + 0 : Menge der nichtnegativen rellen Zahlen, R+ 0 = R + {0}. betrachten Funktionen f : N 0 R + 0. Redeweisen: asymptotisches Wachstum oder größenordnungsmäßiges Wachstum von Funktionen GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 15 / 72

26 Zu Notation und Redeweise Notation: R + : Menge der positiven reellen Zahlen (ohne 0) R + 0 : Menge der nichtnegativen rellen Zahlen, R+ 0 = R + {0}. betrachten Funktionen f : N 0 R + 0. Redeweisen: asymptotisches Wachstum oder größenordnungsmäßiges Wachstum von Funktionen Definition: Funktion д : N 0 R + 0 wächst asymptotisch genauso schnell wie Funktion f : N 0 R + 0, wenn gilt: c,c R + : n 0 N 0 : n n 0 : c f (n) д(n) c f (n) schreibe f д oder f (n) д(n) GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 15 / 72

27 Erläuterungen zur Definition von f д (1) c,c R + : n 0 N 0 : n n 0 : c f (n) д(n) c f (n) c f(x) c f(x) f(x) cf(x) 100 f(x) 10 0 cf(x) Achtung: kontinuierliche Funktionen gezeichnet, aber Definition für diskrete Funktionen GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 16 / 72

28 Erläuterungen zur Definition von f д (2) c,c R + : n 0 N 0 : n n 0 : c f (n) д(n) c f (n) c f(x) c f(x) g(x) cf(x) 100 g(x) 10 0 cf(x) Achtung: kontinuierliche Funktionen gezeichnet, aber Definition für diskrete Funktionen GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 17 / 72

29 Beispiel f : n 3n 2 und д : n 10 2 n 2. Behauptung: f д GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 18 / 72

30 Beispiel f : n 3n 2 und д : n 10 2 n 2. Behauptung: f д c f (n) д(n): für c = 10 3 und n 0 = 0 gilt n n 0 : c f (n) = n n 2 = д(n) д(n) c f (n) gilt z. B. für c = 1 und n 0 = 0: n n 0 : д(n) = 10 2 n 2 3n 2 = c f (n) GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 18 / 72

31 Beispiel f : n 3n 2 und д : n 10 2 n 2. Behauptung: f д c f (n) д(n): für c = 10 3 und n 0 = 0 gilt n n 0 : c f (n) = n n 2 = д(n) д(n) c f (n) gilt z. B. für c = 1 und n 0 = 0: n n 0 : д(n) = 10 2 n 2 3n 2 = c f (n) Rechenregel Für jedes f : N 0 R + 0 gilt: a,b R + : af b f GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 18 / 72

32 Beispiel (2) f : x n 3 + 5n 2 und д : n 3n 3 n Behauptung f д GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 19 / 72

33 Beispiel (2) f : x n 3 + 5n 2 und д : n 3n 3 n Behauptung f д für n 0 ist f (n) = n 3 + 5n 2 n 3 + 5n 3 = 6n 3 = 9n 3 3n 3 9n 3 3n = 3(3n 3 n) = 3д(n) 1 also f (n) д(n) 3 Andererseits ist д(n) = 3n 3 n 3n 3 3(n 3 + 5n 2 ) = 3f (n) GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 19 / 72

34 Nichtbeispiele für (1) betrachte f : n n 2 und д : n n 3 Behauptung: f д Begründung: sonst д(n) c f (n) (für... ) GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 20 / 72

35 Nichtbeispiele für (1) betrachte f : n n 2 und д : n n 3 Behauptung: f д Begründung: sonst д(n) c f (n) (für... ) für f (n) 0 äquivalent zu д(n)/f (n) c R + GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 20 / 72

36 Nichtbeispiele für (1) betrachte f : n n 2 und д : n n 3 Behauptung: f д Begründung: sonst д(n) c f (n) (für... ) für f (n) 0 äquivalent zu д(n)/f (n) c R + ab einem n 0 für jedes n GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 20 / 72

37 Nichtbeispiele für (1) betrachte f : n n 2 und д : n n 3 Behauptung: f д Begründung: sonst д(n) c f (n) (für... ) für f (n) 0 äquivalent zu д(n)/f (n) c R + ab einem n 0 für jedes n aber д(n)/f (n) = n nicht beschränkbar GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 20 / 72

38 Nichtbeispiele für (2) betrachte f : n n 2 und д : n 2 n Behauptung: f д Begründung: für f д müsste insbesondere д(n)/f (n) c gelten (für...) Aber 2 n /n 2 kann durch keine Konstante beschränkt werden: einfache Grenzwertbetrachtung, oder betrachte die n i = 2 i+2 und zeige durch Induktion: i N 0 : 2 n i 4 i n 2 i GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 21 / 72

39 Äquivalenzrelation Zeichen erinnert an das Gleichheitszeichen. Lemma Die Relation ist eine Äquivalenzrelation. Erinnerung: Eine Äquivalenzrelation ist per definitionem reflexiv, symmetrisch, transitiv. GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 22 / 72

40 Relation ist reflexiv und symmetrisch Reflexitvität: f f für c = c = 1 und n 0 = 0 gilt: für jedes n n 0 ist c f (n) f (n) c f (n) Symmetrie: Wenn f д, dann auch д f Wenn für Konstanten c,c R +, n 0 N 0 und jedes n n 0 c f (n) д(n) c f (n), dann gilt für die gleichen n n 0 und die Konstanten d = 1/c und d = 1/c : d д(n) f (n) dд(n). GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 23 / 72

41 Relation ist reflexiv und symmetrisch Reflexitvität: f f für c = c = 1 und n 0 = 0 gilt: für jedes n n 0 ist c f (n) f (n) c f (n) Symmetrie: Wenn f д, dann auch д f Wenn für Konstanten c,c R +, n 0 N 0 und jedes n n 0 c f (n) д(n) c f (n), dann gilt für die gleichen n n 0 und die Konstanten d = 1/c und d = 1/c : d д(n) f (n) dд(n). GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 23 / 72

42 Relation ist reflexiv und symmetrisch Reflexitvität: f f für c = c = 1 und n 0 = 0 gilt: für jedes n n 0 ist c f (n) f (n) c f (n) Symmetrie: Wenn f д, dann auch д f Wenn für Konstanten c,c R +, n 0 N 0 und jedes n n 0 c f (n) д(n) c f (n), dann gilt für die gleichen n n 0 und die Konstanten d = 1/c und d = 1/c : d д(n) f (n) dд(n). GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 23 / 72

43 Relation ist transitiv Transitivität: wenn f д und д h, dann f h. gelte für Konstanten c,c R + und jedes n n 0 c f (n) д(n) c f (n) und für Konstanten d,d R + und jedes n n 1 dд(n) h(n) d д(n). Dann gilt für jedes n max(n 0, n 1 ) dc f (n) dд(n) h(n) d д(n) d c f (n), wobei auch die Konstanten dc und d c wieder positiv sind. GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 24 / 72

44 Groß-Θ Θ (f ): Menge aller Funktionen, die zu gegebenem f im Sinne von äquivalent sind Also: Θ (f ) = { д f д } = { д c,c R + : n 0 N 0 : n n 0 : c f (n) д(n) c f (n) } GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 25 / 72

45 einfache Rechenregel für Θ Rechenregel Für alle f : N 0 R + 0 und jedes Konstanten a,b R + gilt: Θ (af ) = Θ (b f ) GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 26 / 72

46 Wo sind wir? Ressourcenverbrauch bei Berechnungen Groß-O-Notation Ignorieren konstanter Faktoren Notation für obere und untere Schranken des Wachstums Eine grauenhafte Schreibweise Rechnen im O-Kalkül Matrixmultiplikation Asymptotisches Verhalten implizit definierter Funktionen GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 27 / 72

47 Obere und untere Schranken manchmal für Funktion nur obere (oder/und untere) Schranke bekannt Erinnerung: Anzahl Schleifendurchläufe bei Insertionsort Definition: O (f ) = {д c R + : n 0 N 0 : n n 0 : д(n) c f (n)} Ω (f ) = {д c R + : n 0 N 0 : n n 0 : д(n) c f (n)} gelegentlich auch д f falls д O (f ) д f falls д Ω (f ) Redeweise д wächst asymptotisch höchstens so schnell wie f (für д f ) д wächst asymptotisch mindestens so schnell wie f.(für д f ) GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 28 / 72

48 Beispiel (1) Es sei д : n n 7 und f : n n 8 Behauptung: д O (f ) Begründung: wähle c = und n 0 = 0 dann für jedes n 0: n 7 c n 8. in O ( ) usw. können große Konstanten stecken GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 29 / 72

49 Beispiel (2) Was ist O (1)? GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 30 / 72

50 Beispiel (2) Was ist O (1)? 1 steht für die konstante Funktion 1: n 1 Definition: alle Funktionen д, für die es c R + und n 0 N 0 gibt, so dass für jedes n n 0 gilt: д(n) c 1 = c alle Funktionen, die durch Konstante beschränkbar sind alle konstanten Funktionen aber auch Funktionen wie 3 + sin(n) GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 30 / 72

51 Beispiel (3) n 2 /n nicht für große n durch Konstante beschränkbar also gilt nicht n 2 n aber n n 2 Relation ist also nicht symmetrisch für alle positive reelle Konstanten 0 < a < b gilt n a n b aber n b n a also n a O ( n ) b aber n b O (n a ) also n b Ω (n a ) aber n a Ω ( n ) b GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 31 / 72

52 Beispiel (4) 2 n /n 2 nicht für große n durch Konstante beschränkbar also gilt nicht 2 n n 2. aber n 2 2 n. für alle reellen Konstanten a und b, beide echt größer 1, gilt n a b n aber b n n a also n a O (b n ) aber b n O (n a ) also b n Ω (n a ) aber n a Ω (b n ) GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 32 / 72

53 Einfache Beobachtungen in Ungleichung д(n) c f (n) Konstante auf die andere Seite bringen liefert Rechenregel Für alle Funktionen f : N 0 R + 0 und д : N 0 R + 0 gilt: д O (f ) f Ω (д) also д f f д Man kann auch zeigen: Θ (f ) = O (f ) Ω (f ) also д f д f д f GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 33 / 72

54 Wo sind wir? Ressourcenverbrauch bei Berechnungen Groß-O-Notation Ignorieren konstanter Faktoren Notation für obere und untere Schranken des Wachstums Eine grauenhafte Schreibweise Rechnen im O-Kalkül Matrixmultiplikation Asymptotisches Verhalten implizit definierter Funktionen GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 34 / 72

55 Für die Lektüre leider unverzichtbar sehr unschöne Variante der O-Notation, aber weit verbreitet Man schreibt д(n) = O (f (n)) statt д(n) O (f (n)), д(n) = Θ (f (n)) statt д(n) Θ (f (n)), д(n) = Ω (f (n)) statt д(n) Ω (f (n)). Ausdrücke auf der linken Seite sind keine Gleichungen! Lassen Sie daher bitte immer große Vorsicht walten: GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 35 / 72

56 Für die Lektüre leider unverzichtbar sehr unschöne Variante der O-Notation, aber weit verbreitet Man schreibt д(n) = O (f (n)) statt д(n) O (f (n)), д(n) = Θ (f (n)) statt д(n) Θ (f (n)), д(n) = Ω (f (n)) statt д(n) Ω (f (n)). Ausdrücke auf der linken Seite sind keine Gleichungen! Lassen Sie daher bitte immer große Vorsicht walten: Es ist falsch, aus д(n) = O (f 1 (n)) und д(n) = O (f 2 (n)) zu folgern, dass O (f 1 (n)) = O (f 2 (n)) ist. Es ist falsch, aus д 1 (n) = O (f (n)) und д 2 (n) = O (f (n)) zu folgern, dass д 1 (n) = д 2 (n) ist. GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 35 / 72

57 Wo sind wir? Ressourcenverbrauch bei Berechnungen Groß-O-Notation Ignorieren konstanter Faktoren Notation für obere und untere Schranken des Wachstums Eine grauenhafte Schreibweise Rechnen im O-Kalkül Matrixmultiplikation Asymptotisches Verhalten implizit definierter Funktionen GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 36 / 72

58 Eine nützliche Rechenregel Ist д 1 f 1 und д 2 f 2, dann ist auch д 1 + д 2 f 1 + f 2. Ist umgekehrt д f 1 + f 2, dann kann man д in der Form д = д 1 + д 2 schreiben mit д 1 f 1 und д 2 f 2. Das schreiben wir auch so: Lemma Für alle Funktionen f 1, f 2 : N 0 R + 0 gilt: O (f 1 ) + O (f 2 ) = O (f 1 + f 2 ) Pluszeichen auf der linken Seite bedarf der Erläuterung... GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 37 / 72

59 Komplexoperationen Sind M 1 und M 2 Mengen, deren Elemente man addieren bzw. multiplizieren kann, dann sei M 1 + M 2 = {д 1 + д 2 д 1 M 1 д 2 M 2 } M 1 M 2 = {д 1 д 2 д 1 M 1 д 2 M 2 } nichts Neues: analoge Definition des Produkts formaler Sprachen GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 38 / 72

60 Komplexoperationen (2) Wenn eine der Mengen M i einelementig ist, lässt man manchmal die Mengenklammern darum weg. Beispiele mit Zahlenmengen statt {3} N 0 + {1} kürzer 3N mit Funktionenmengen statt { n 3 } + O ( n 2) kürzer n 3 + O ( n 2) GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 39 / 72

61 Beweis von O (f 1 ) + O (f 2 ) = O (f 1 + f 2 ) : wenn für n n 01 gilt: д 1 (n) c 1 f 1 (n) und wenn für n n 02 gilt: д 2 (n) c 2 f 2 (n), dann für n n 0 = max(n 01, n 02 ) und c = max(c 1,c 2 ): д 1 (n) + д 2 (n) c 1 f 1 (n) + c 2 f 2 (n) c f 1 (n) + c f 2 (n) = c(f 1 (n) + f 2 (n)) : zu д O (f 1 + f 2 ) finde д 1 und д 2... : GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 40 / 72

62 Beweis von O (f 1 ) + O (f 2 ) = O (f 1 + f 2 ) : wenn für n n 01 gilt: д 1 (n) c 1 f 1 (n) und wenn für n n 02 gilt: д 2 (n) c 2 f 2 (n), dann für n n 0 = max(n 01, n 02 ) und c = max(c 1,c 2 ): д 1 (n) + д 2 (n) c 1 f 1 (n) + c 2 f 2 (n) c f 1 (n) + c f 2 (n) = c(f 1 (n) + f 2 (n)) : zu д O (f 1 + f 2 ) finde д 1 und д 2... : definiere д 1 (n) = д(n) falls д(n) c f 1 (n) c f 1 (n) falls д(n) > c f 1 (n) und д 2 (n) = д(n) д 1 (n) Der Rest ist einfache Rechnung. GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 40 / 72

63 Weitere Regeln Rechenregel Wenn д 1 f 1 ist, und wenn д 1 д 2 und f 1 f 2, dann gilt auch д 2 f 2. Rechenregel Wenn д f ist, also д O (f ), dann ist auch O (д) O (f ) und O (д + f ) = O (f ). GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 41 / 72

64 Was ist wichtig Das sollten Sie mitnehmen: Definitionen von O (f ), Θ (f ), Ω (f ) Definitionen von,, Das sollten Sie üben: Anschauung für O (f ), Θ (f ), Ω (f ) rechnen mit O (f ), Θ (f ), Ω (f ) GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 42 / 72

65 Wo sind wir? Ressourcenverbrauch bei Berechnungen Groß-O-Notation Matrixmultiplikation Rückblick auf die Schulmethode Algorithmus von Strassen Asymptotisches Verhalten implizit definierter Funktionen GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 43 / 72

66 Wo sind wir? Ressourcenverbrauch bei Berechnungen Groß-O-Notation Matrixmultiplikation Rückblick auf die Schulmethode Algorithmus von Strassen Asymptotisches Verhalten implizit definierter Funktionen GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 44 / 72

67 Multiplikation von 2 2-Matrizen b 11 b 12 b 21 b 22 a 11 a 12 a 11 b 11 + a 12 b 21 a 11 b 12 + a 12 b 22 a 21 a 22 a 21 b 11 + a 22 b 21 a 21 b 12 + a 22 b 22 Anzahl Multiplikationen: N mult (2) = = 8 Anzahl Additionen: N add (2) = 2 2 (2 1) = 4. GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 45 / 72

68 Multiplikation von n n-matrizen mit Blockaufteilung n sei gerade Verwendung von Blockmatrizen der Größe n/2 n/2 B 11 B 12 B 21 B 22 A 11 A 12 A 11 B 11 + A 12 B 21 A 11 B 12 + A 12 B 22 A 21 A 22 A 21 B 11 + A 22 B 21 A 21 B 12 + A 22 B 22 Mitteilung: Das ist auch die Produktmatrix! 8 Multiplikationen von Blockmatrizen und 4 Additionen von Blockmatrizen. Anzahl elementarer Operationen N mult (n) = 8 N mult (n/2) und N add (n) = 8 N add (n/2) + 4 (n/2) 2 = 8 N add (n/2) + n 2. GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 46 / 72

69 Multiplikation von 2 k 2 k -Matrizen (n 2 k «ähnlich») aus N mult (n) = 8 N mult (n/2) folgt (Induktion) N mult (2 k ) = 8 N mult (2 k 1 ) = 8 8 N mult (2 k 2 ) = = 8 k N mult (1) = 8 k = (2 3 ) k = (2 k ) 3 = n 3 Aus N add (n) = 8 N add (n/2) + n 2 folgt N add (2 k ) = 8 N add (2 k 1 ) + 4 k = 8 8 N add (2 k 2 ) k k = = 8 8 N add (2 k 2 ) k + 4 k = = 8 k N add (2 0 ) + (2 k ) 4 k = = 2 k 4 k 4 k = n 3 n 2 GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 47 / 72

70 Multiplikation von 2 k 2 k -Matrizen nichts neues Das wussten wir doch schon: N mult (n) = n 3 N add (n) = n 3 n 2 und? GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 48 / 72

71 Wo sind wir? Ressourcenverbrauch bei Berechnungen Groß-O-Notation Matrixmultiplikation Rückblick auf die Schulmethode Algorithmus von Strassen Asymptotisches Verhalten implizit definierter Funktionen GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 49 / 72

72 Die Idee von Volker Strassen (1969) B 11 B 12 B 21 B 22 A 11 A 12 C 11 C 12 A 21 A 22 C 21 C 22 Einträge C ij des Produktes ergeben sich auch so: C 11 = M 1 + M 4 M 5 + M 7 C 12 = M 3 + M 5 C 21 = M 2 + M 4 C 22 = M 1 M 2 + M 3 + M 6 wobei M 1 = (A 11 + A 22 )(B 11 + B 22 ) M 2 = (A 21 + A 22 )B 11 M 3 = A 11 (B 12 B 22 ) M 4 = A 22 (B 21 B 11 ) M 5 = (A 11 + A 12 )B 22 M 6 = (A 21 A 11 )(B 11 + B 12 ) M 7 = (A 12 A 22 )(B 21 + B 22 ) GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 50 / 72

73 Die Idee von Strassen (2) C 11 = M 1 + M 4 M 5 + M 7 C 12 = M 3 + M 5 C 21 = M 2 + M 4 C 22 = M 1 M 2 + M 3 + M 6 wobei M 1 = (A 11 + A 22 )(B 11 + B 22 ) M 2 = (A 21 + A 22 )B 11 M 3 = A 11 (B 12 B 22 ) M 4 = A 22 (B 21 B 11 ) M 5 = (A 11 + A 12 )B 22 M 6 = (A 21 A 11 )(B 11 + B 12 ) M 7 = (A 12 A 22 )(B 21 + B 22 ) 18 Additionen statt 4 7 Multiplikationen statt 8 GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 51 / 72

74 Die Idee von Strassen (3) 18 Additionen statt 4 7 Multiplikationen statt 8 ja und? GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 52 / 72

75 Die Idee von Strassen (3) 18 Additionen statt 4 7 Multiplikationen statt 8 ja und? ganze Blockmatrizen: Additionen sind viel «billiger» als Multiplikationen GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 52 / 72

76 Aufwandsabschätzung für den Algorithmus von Strassen Anzahl elementarer Operationen: N mult (n) = 7 N mult (n/2) N add (n) = 7 N add (n/2) + 18 (n/2) 2 = 7 N add (n/2) n 2 Für den Fall n = 2 k ergibt sich: N mult (2 k ) = 7 N mult (2 k 1 ) = 7 7 N mult (2 k 2 ) = analog N add (n) Θ(n log 2 7 ) = 7 k = (2 log 2 7 ) k = n log 2 7 n GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 53 / 72

77 Aufwandsabschätzung für den Algorithmus von Strassen Anzahl elementarer Operationen: N mult (n) = 7 N mult (n/2) N add (n) = 7 N add (n/2) + 18 (n/2) 2 = 7 N add (n/2) n 2 Für den Fall n = 2 k ergibt sich: N mult (2 k ) = 7 N mult (2 k 1 ) = 7 7 N mult (2 k 2 ) = analog N add (n) Θ(n log 2 7 ) = 7 k = (2 log 2 7 ) k = n log 2 7 n GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 53 / 72

78 Aufwandsabschätzung für den Algorithmus von Strassen Anzahl elementarer Operationen: N mult (n) = 7 N mult (n/2) N add (n) = 7 N add (n/2) + 18 (n/2) 2 = 7 N add (n/2) n 2 Für den Fall n = 2 k ergibt sich: N mult (2 k ) = 7 N mult (2 k 1 ) = 7 7 N mult (2 k 2 ) = analog N add (n) Θ(n log 2 7 ) = 7 k = (2 log 2 7 ) k = n log 2 7 n Gesamtzahl elementarer Operationen ist also in Θ(n log 2 7 ) + Θ(n log 2 7 ) = Θ(n log 2 7 ) Θ(n ) besser als n 3 für große n! GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 53 / 72

79 Matrizenmultiplikation geht es noch schneller? Coppersmith und Winograd (1990): O ( n ) der konstante Faktor ist groß Vassilevska Williams (2012): noch ein bisschen schneller unklar: Genügen O ( n 2) Operationen? GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 54 / 72

80 Teile und herrsche engl. divide and conquer «zerhacke» Probleminstanz in kleinere Teile mehr oder weniger viele bearbeite Teile rekursiv nach gleichen Verfahren konstruiere aus Teilergebnissen das Resultat für die ursprüngliche Eingabe GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 55 / 72

81 Was ist wichtig Das sollten Sie mitnehmen: bei algorithmischen Problemen kann man überraschende Dinge tun teile und herrsche Rekursionsformel für Abschätzung von (z. B.) Laufzeiten Das sollten Sie üben: in dieser Vorlesung: rechnen mit O ( ), Θ ( ), Ω ( ) spätestens in kommenden Semestern: rekursive Algorithmen GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 56 / 72

82 Wo sind wir? Ressourcenverbrauch bei Berechnungen Groß-O-Notation Matrixmultiplikation Asymptotisches Verhalten implizit definierter Funktionen Laufzeit von Teile-und-Herrsche-Algorithmen Ineinander geschachtelte Schleifen GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 57 / 72

83 Wo sind wir? Ressourcenverbrauch bei Berechnungen Groß-O-Notation Matrixmultiplikation Asymptotisches Verhalten implizit definierter Funktionen Laufzeit von Teile-und-Herrsche-Algorithmen Ineinander geschachtelte Schleifen GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 58 / 72

84 Laufzeit von Teile-und-Herrsche-Algorithmen manchmal Problem der Größe n zerhackt in konstante Anzahl a von Teilproblemen gleicher Größe n/b sinnvollerweise a 1 und b > 1 aus Teilergebnissen Gesamtergebnis zusammengesetzt Zerhacken vorher und Zusammensetzen hinterher kosten f (n) GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 59 / 72

85 Laufzeit von Teile-und-Herrsche-Algorithmen manchmal Problem der Größe n zerhackt in konstante Anzahl a von Teilproblemen gleicher Größe n/b sinnvollerweise a 1 und b > 1 aus Teilergebnissen Gesamtergebnis zusammengesetzt Zerhacken vorher und Zusammensetzen hinterher kosten f (n) Abschätzung (z. B.) der Laufzeit T (n) liefert Rekursionsformel, die «grob gesagt» die Form hat ( n ) T (n) = at + f (n) b GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 59 / 72

86 Laufzeit von Teile-und-Herrsche-Algorithmen manchmal Problem der Größe n zerhackt in konstante Anzahl a von Teilproblemen gleicher Größe n/b sinnvollerweise a 1 und b > 1 aus Teilergebnissen Gesamtergebnis zusammengesetzt Zerhacken vorher und Zusammensetzen hinterher kosten f (n) Abschätzung (z. B.) der Laufzeit T (n) liefert Rekursionsformel, die «grob gesagt» die Form hat ( n ) T (n) = at + f (n) b genau genommen n/b oder n/b + c oder... GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 59 / 72

87 Laufzeit von Teile-und-Herrsche-Algorithmen manchmal Problem der Größe n zerhackt in konstante Anzahl a von Teilproblemen gleicher Größe n/b sinnvollerweise a 1 und b > 1 aus Teilergebnissen Gesamtergebnis zusammengesetzt Zerhacken vorher und Zusammensetzen hinterher kosten f (n) Abschätzung (z. B.) der Laufzeit T (n) liefert Rekursionsformel, die «grob gesagt» die Form hat ( n ) T (n) = at + f (n) b genau genommen n/b oder n/b + c oder... gesucht: explizite Formel für T (n) GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 59 / 72

88 Mastertheorem bescheidener hätte auch gereicht drei Kochrezepte, in denen f (n) und log b a vorkommen: Fall 1: Wenn f (n) O ( n (log b a) ε ) für ein ε > 0 ist, dann ist T (n) Θ ( n log b a). Fall 2: Wenn f (n) Θ ( n log b a) ist, dann ist T (n) Θ ( n log b a log n ). Fall 3: Wenn f (n) Ω ( n (log b a)+ε ) für ein ε > 0, und wenn es eine Konstante d gibt mit 0 < d < 1, so dass für jedes hinreichend große n gilt af (n/b) d f (n), dann ist T (n) Θ (f (n)). Achtung: Diese Fallunterscheidung ist nicht vollständig! GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 60 / 72

89 Mastertheorem bei Multiplikation von Matrizen Schulmethode a = 8 Multiplikationen von n/2 n/2matrizen: also b = 2 log b a = 3 zusätzlicher Aufwand: 4 kleine Matrixadditionen, also f (n) = 4 n 2 /4 = n 2 f (n) O ( n 3 ε ) (z. B. für ε = 1) Mastertheorem, Fall 1: T (n) Θ ( n 3) GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 61 / 72

90 Mastertheorem bei Multiplikation von Matrizen Schulmethode a = 8 Multiplikationen von n/2 n/2matrizen: also b = 2 log b a = 3 zusätzlicher Aufwand: 4 kleine Matrixadditionen, also f (n) = 4 n 2 /4 = n 2 f (n) O ( n 3 ε ) (z. B. für ε = 1) Mastertheorem, Fall 1: T (n) Θ ( n 3) Algorithmus von Strassen a = 7 Multiplikationen von n/2 n/2matrizen: also b = 2 log b a zusätzlicher Aufwand: 18 kleine Matrixadditionen, also f (n) = 18 n 2 /4 Θ ( n 2) f (n) O ( n log b a ε ) = O ( n log 2 7 ε ) (z. B. für ε = 0.1) Mastertheorem, Fall 1: T (n) Θ ( n log 2 7) = Θ ( n ) GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 61 / 72

91 Wo sind wir? Ressourcenverbrauch bei Berechnungen Groß-O-Notation Matrixmultiplikation Asymptotisches Verhalten implizit definierter Funktionen Laufzeit von Teile-und-Herrsche-Algorithmen Ineinander geschachtelte Schleifen GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 62 / 72

92 Weitere Anwendung des Mastertheorems Eingabewert n N 0 x n; i 0; while x 2 do i + +; x x div 2; od Ausgabewert i GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 63 / 72

93 Weitere Anwendung des Mastertheorems Eingabewert n N 0 x n; i 0; while x 2 do i + +; x x div 2; od Ausgabewert i Wert von i am Ende? Anzahl D(n) Schleifendurchläufe GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 63 / 72

94 Weitere Anwendung des Mastertheorems Eingabewert n N 0 x n; i 0; while x 2 do i + +; x x div 2; od Ausgabewert i Wert von i am Ende? Anzahl D(n) Schleifendurchläufe man sieht: D(n) = 0 falls n D(n/2) sonst GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 63 / 72

95 Weitere Anwendung des Mastertheorems Eingabewert n N 0 x n; i 0; while x 2 do i + +; x x div 2; od Ausgabewert i Wert von i am Ende? Anzahl D(n) Schleifendurchläufe man sieht: D(n) = 0 falls n D(n/2) sonst Mastertheorem: a = 1, b = 2, f (n) = 1 log b a = 0, also Fall 2: f (n) Θ ( n 0) also D(n) Θ (log n) GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 63 / 72

96 Hier ist das Mastertheorem nicht anwendbar Eingabewert n N 0 x n; i 0; while x 2 do i + +; x x 2; od Ausgabewert i GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 64 / 72

97 Hier ist das Mastertheorem nicht anwendbar Eingabewert n N 0 x n; i 0; while x 2 do i + +; x x 2; od Ausgabewert i Anzahl Schleifendurchläufe D(n) = 0 falls n D(n 2) sonst Kochrezept nicht anwendbar GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 64 / 72

98 Einfache for-schleifen D 0; for i 0 to n 1 do S[i] V 1 [i] + V 2 [i] D + +; od Anzahl Schleifendurchläufe offensichtlich: D(n) = n GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 65 / 72

99 Geschachtelte for-schleifen D 0; for i 0 to n 1 do E 0; for j 0 to n 1 do C[i, j] A[i, j] + B[i, j] E + +; od D D + E; od GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 66 / 72

100 Geschachtelte for-schleifen D 0; for i 0 to n 1 do E 0; for j 0 to n 1 do C[i, j] A[i, j] + B[i, j] E + +; od D D + E; od Anzahl Durchläufe innerer Schleifenrumpf insgesamt E(i, n) = n n 1 n 1 D(n) = E(i, n) = n = n 2 i=0 i=0 GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 66 / 72

101 Geschachtelte for-schleifen D 0; for i 0 to n 1 do E 0; for j 0 to i do C[i, j] A[i, j] + B[i, j] E + +; od D D + E; od GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 67 / 72

102 Geschachtelte for-schleifen D 0; for i 0 to n 1 do E 0; for j 0 to i do C[i, j] A[i, j] + B[i, j] E + +; od D D + E; od Anzahl Durchläufe innerer Schleifenrumpf insgesamt E(i, n) = i + 1 n 1 n 1 D(n) = E(i, n) = i + 1 = i=0 n(n + 1) 2 i=0 Θ ( n 2) GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 67 / 72

103 Rechenzeiten reale Rechenzeiten für T (n) Schritte, wenn jeder Schritt 1 ns benötigt T (n) n log 2 (n) 3.32 ns 6.64 ns 9.97 ns ns ns ns n 3.16 ns ns ns ns ns 1.00 µs n ns ns 1.00 µs µs µs 1.00 ms n log 2 (n) ns ns 9.97 µs µs 1.66 ms ms n ns µs 1.00 ms ms s 0.27 h n µs 1.00 ms 1.00 s 0.27 h d a 1.01 n 1.10 ns 2.70 ns µs 1.1 n 2.59 ns µs 2 n 1.02 µs n n 10 s GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 68 / 72

104 Rechenzeiten e x 1.11 x x 2 x GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 69 / 72

105 Rechenzeiten (2) x x GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 70 / 72

106 Was ist wichtig Das sollten Sie mitnehmen: Mastertheorem: Kochrezepte zum Nachschlagen des asymptotischen Wachstums nach einem einfachen Rezept rekursiv definierter Funktionen ineinandergeschachtelte Schleifen Das sollten Sie üben: Mastertheorem anwenden Schleifen «auseinander nehmen» GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 71 / 72

107 Zusammenfassung Komplexitätsmaße Laufzeitbedarf Speicherplatzbedarf Abschätzung asymptotischen Wachstums «bis auf konstante Faktoren» nach oben mit O ( ) nach oben und unten mit Θ ( ) nach unten mit Ω ( ) algorithmisches Prinzip Teile und Herrsche (divide and conquer) am Beispiel Matrixmultiplikation Mastertheorem GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 72 / 72

Grundbegriffe der Informatik

Grundbegriffe der Informatik Grundbegriffe der Informatik Kapitel 16: Erste Algorithmen in Graphen Thomas Worsch KIT, Institut für Theoretische Informatik Wintersemester 2015/2016 GBI Grundbegriffe der Informatik KIT, Institut für

Mehr

Am Dienstag, den 16. Dezember, ist Eulenfest. 1/45

Am Dienstag, den 16. Dezember, ist Eulenfest. 1/45 Am Dienstag, den 16. Dezember, ist Eulenfest. 1/45 Grundbegriffe der Informatik Einheit 12: Erste Algorithmen in Graphen Thomas Worsch Universität Karlsruhe, Fakultät für Informatik Wintersemester 2008/2009

Mehr

Am Dienstag, den 16. Dezember, ist Eulenfest. 1/48

Am Dienstag, den 16. Dezember, ist Eulenfest. 1/48 Am Dienstag, den 16. Dezember, ist Eulenfest. 1/48 Grundbegriffe der Informatik Einheit 12: Erste Algorithmen in Graphen Thomas Worsch Universität Karlsruhe, Fakultät für Informatik Wintersemester 2008/2009

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

Abschnitt 7: Komplexität von imperativen Programmen

Abschnitt 7: Komplexität von imperativen Programmen Abschnitt 7: Komplexität von imperativen Programmen 7. Komplexität von imperativen Programmen 7 Komplexität von imperativen Programmen Einf. Progr. (WS 08/09) 399 Ressourcenbedarf von Algorithmen Algorithmen

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

Einführung in die Programmierung

Einführung in die Programmierung Skript zur Vorlesung: Einführung in die Programmierung WiSe 2009 / 2010 Skript 2009 Christian Böhm, Peer Kröger, Arthur Zimek Prof. Dr. Christian Böhm Annahita Oswald Bianca Wackersreuther Ludwig-Maximilians-Universität

Mehr

Algorithmen und Datenstrukturen (für ET/IT)

Algorithmen und Datenstrukturen (für ET/IT) Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2017 Dr. Stefanie Demirci Computer Aided Medical Procedures Technische Universität München Programm heute 1 Einführung 2 Grundlagen von Algorithmen

Mehr

Tutorium 23 Grundbegriffe der Informatik (9. Sitzung)

Tutorium 23 Grundbegriffe der Informatik (9. Sitzung) Tutorium 23 Grundbegriffe der Informatik (9. Sitzung) Tutor: Felix Stahlberg SOFTWARE DESIGN AND QUALITY GROUP Source: pixelio.de KIT The cooperation of Forschungszentrum Karlsruhe GmbH and Universität

Mehr

Grundbegriffe der Informatik

Grundbegriffe der Informatik Grundbegriffe der Informatik Kapitel 21: Relationen Thomas Worsch KIT, Institut für Theoretische Informatik Wintersemester 2015/2016 GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik

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

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

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

Übungen zu Algorithmentechnik WS 09/10

Übungen zu Algorithmentechnik WS 09/10 Übungen zu Algorithmentechnik WS 09/10 1. Kurzsitzung Thomas Pajor 22. Oktober 2009 1/ 25 Eure Übungsleiter Tanja Hartmann t.hartmann@kit.edu Raum 306, Gebäude 50.34 Thomas Pajor pajor@kit.edu Raum 322,

Mehr

Zunächst ein paar einfache "Rechen"-Regeln: Lemma, Teil 1: Für beliebige Funktionen f und g gilt:

Zunächst ein paar einfache Rechen-Regeln: Lemma, Teil 1: Für beliebige Funktionen f und g gilt: Der Groß-O-Kalkül Zunächst ein paar einfache "Rechen"-Regeln: G. Zachmann Informatik 1 - WS 05/06 Komplexität 22 Additionsregel Lemma, Teil 1: Für beliebige Funktionen f und g gilt: Zu beweisen: nur das

Mehr

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

1. Musterlösung. Problem 1: Average-case-Laufzeit vs. Worst-case-Laufzeit ** i=1 Universität Karlsruhe Algorithmentechnik Fakultät für Informatik WS 05/06 ITI Wagner. Musterlösung Problem : Average-case-Laufzeit vs. Worst-case-Laufzeit ** (a) Im schlimmsten Fall werden für jedes Element

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

Übersicht. Datenstrukturen und Algorithmen. Die Teile-und-Beherrsche-Methode. Übersicht. Vorlesung 3: Rekursionsgleichungen (K4)

Übersicht. Datenstrukturen und Algorithmen. Die Teile-und-Beherrsche-Methode. Übersicht. Vorlesung 3: Rekursionsgleichungen (K4) Datenstrukturen und Algorithmen Vorlesung 3: (K4) 1 e für rekursive Algorithmen Prof. Dr. Erika Ábrahám 2 Theorie Hybrider Systeme Informatik 2 http://ths.rwth-aachen.de/teaching/ss-14/ datenstrukturen-und-algorithmen/

Mehr

Rekursionsbäume Aufstellen eines Baumes dessen Knoten die Laufzeit auf jeder Rekursionsstufe darstellen und Aufsummieren

Rekursionsbäume Aufstellen eines Baumes dessen Knoten die Laufzeit auf jeder Rekursionsstufe darstellen und Aufsummieren Algorithmen und Datenstrukturen 74 3 Rekursionen Vor allem bei rekursiven Algorithmen besitzt die Laufzeitfunktion eine naheliegende rekursive Formulierung, d.h. die Laufzeitfunktion ist konstant für den

Mehr

2. Entsprechende Listen P i von Vorgängern von i 3. for i := 1 to n do. (ii) S i = Knoten 2 + 1}

2. Entsprechende Listen P i von Vorgängern von i 3. for i := 1 to n do. (ii) S i = Knoten 2 + 1} 1. Berechne für jeden Knoten i in BFS-Art eine Liste S i von von i aus erreichbaren Knoten, so dass (i) oder (ii) gilt: (i) S i < n 2 + 1 und Si enthält alle von i aus erreichbaren Knoten (ii) S i = n

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

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

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

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

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

Algorithmen und Datenstrukturen 1 Kapitel 5

Algorithmen und Datenstrukturen 1 Kapitel 5 Algorithmen und Datenstrukturen 1 Kapitel 5 Technische Fakultät robert@techfak.uni-bielefeld.de Vorlesung, U. Bielefeld, Winter 2005/2006 Kapitel 5: Effizienz von Algorithmen 5.1 Vorüberlegungen Nicht

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

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

Übung zu Algorithmen und Datenstrukturen (für ET/IT)

Übung zu Algorithmen und Datenstrukturen (für ET/IT) Übung zu Algorithmen und Datenstrukturen (für ET/IT) Wintersemester 2012/13 Jakob Vogel Computer-Aided Medical Procedures Technische Universität München Komplexität von Programmen Laufzeit kann näherungsweise

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

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

Übung Algorithmen und Datenstrukturen

Übung Algorithmen und Datenstrukturen Übung Algorithmen und Datenstrukturen Sommersemester 017 Marc Bux, Humboldt-Universität zu Berlin Agenda 1. Vorrechnen von Aufgabenblatt 1. Wohlgeformte Klammerausdrücke 3. Teile und Herrsche Agenda 1.

Mehr

Datenstrukturen, Algorithmen und Programmierung 2

Datenstrukturen, Algorithmen und Programmierung 2 Datenstrukturen, Algorithmen und Programmierung 2 Professor Dr. Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, TU Dortmund 2. VO SS 2009 16. April 2009 1 Überblick Asymptotische Schranken

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

Kapitel 10. Komplexität von Algorithmen und Sortieralgorithmen

Kapitel 10. Komplexität von Algorithmen und Sortieralgorithmen Kapitel 10 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

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

Informatik II. Algorithmen und Datenstrukturen. Vorläufige Version 1 c 2002 Peter Thiemann Informatik II Algorithmen und Datenstrukturen Vorläufige Version 1 c 2002 Peter Thiemann 1 Einführung 1.1 Inhalt Wichtige Datentypen und ihre Implementierung (Datenstrukturen) Operationen auf Datenstrukturen

Mehr

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

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

Kapitel 3: Sortierverfahren Gliederung

Kapitel 3: Sortierverfahren Gliederung Gliederung 1. Grundlagen 2. Zahlentheoretische Algorithmen 3. Sortierverfahren 4. Ausgewählte Datenstrukturen 5. Dynamisches Programmieren 6. Graphalgorithmen 7. String-Matching 8. Kombinatorische Algorithmen

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 Jeremias Weihmann Sommersemester 2014 Übungsblatt 2 28. April 2014 Grundlagen: Algorithmen und

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Technische Universität München SoSe 2017 Fakultät für Informatik, I-16 Lösungsblatt 4 Dr. Stefanie Demirci 31. Mai 2017 Rüdiger Göbl, Mai Bui Algorithmen und Datenstrukturen Aufgabe 1 Komplexität Berechnung

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

Teil I. Lineare Algebra I Vorlesung Sommersemester Olga Holtz. MA 378 Sprechstunde Fr und n.v.

Teil I. Lineare Algebra I Vorlesung Sommersemester Olga Holtz. MA 378 Sprechstunde Fr und n.v. Teil I Lineare Algebra I Vorlesung Sommersemester 2011 Olga Holtz MA 378 Sprechstunde Fr 14-16 und nv holtz@mathtu-berlinde Sadegh Jokar MA 373 Sprechstunde, Do 12-14 und nv jokar@mathtu-berlinde Kapitel

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 Tutoriumslösung - Übung (Abgabe 9.04.05) Christian Dehnert, Friedrich Gretz, Benjamin Kaminski, Thomas Ströder Tutoraufgabe (Asymptotische Komplexität):

Mehr

6 Quicksort. die mittlere Laufzeit Θ(n log n) beträgt und. die in der asymptotischen Notation verborgenen Konstanten sehr klein sind.

6 Quicksort. die mittlere Laufzeit Θ(n log n) beträgt und. die in der asymptotischen Notation verborgenen Konstanten sehr klein sind. Algorithmen und Datenstrukturen 132 6 Quicksort In diesem Abschnitt wird Quicksort, ein weiterer Sortieralgorithmus, vorgestellt. Trotz einer eher langsamen Worst-Case Laufzeit von Θ(n 2 ) ist Quicksort

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

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

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 32 Einstieg in die Informatik mit Java Effizienz Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 32 1 Überblick: was ist Effizienz? 2 Landau-Symbole 3 Eier im Korb 4

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

Programmierung 1 (Wintersemester 2012/13) Lösungsblatt 10 (Kapitel 11)

Programmierung 1 (Wintersemester 2012/13) Lösungsblatt 10 (Kapitel 11) Fachrichtung 6.2 Informatik Universität des Saarlandes Tutorenteam der Vorlesung Programmierung 1 Programmierung 1 (Wintersemester 2012/13) Lösungsblatt 10 (Kapitel 11) Hinweis: Dieses Übungsblatt enthält

Mehr

Übung Algorithmen und Datenstrukturen

Übung Algorithmen und Datenstrukturen Übung Algorithmen und Datenstrukturen Sommersemester 2017 Marc Bux, Humboldt-Universität zu Berlin Agenda 1. Die Landau-Notation (Wiederholung und Vertiefung) 2. Vorbereitung Aufgabenblatt 1, Aufgabe 1

Mehr

Grundbegriffe der Informatik

Grundbegriffe der Informatik Grundbegriffe der Informatik Kapitel 14: Der Begriff des Algorithmus (einige grundlegende Aspekte) Thomas Worsch KIT, Institut für Theoretische Informatik Wintersemester 2015/2016 GBI Grundbegriffe der

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

Suchen und Sortieren

Suchen und Sortieren Suchen und Sortieren Suchen Sortieren Mischen Zeitmessungen Bewertung von Sortier-Verfahren Seite 1 Suchverfahren Begriffe Suchen = Bestimmen der Position (Adresse) eines Wertes in einer Datenfolge Sequentielles

Mehr

Grundbegriffe der Informatik Kapitel 3: Mengen, Alphabete, Abbildungen

Grundbegriffe der Informatik Kapitel 3: Mengen, Alphabete, Abbildungen Grundbegriffe der Informatik Kapitel 3: Mengen, Alphabete, Abbildungen Thomas Worsch KIT, Institut für Theoretische Informatik Wintersemester 2015/2016 GBI Grundbegriffe der Informatik KIT, Institut für

Mehr

Algorithmen und Datenstrukturen SoSe 2008 in Trier. Henning Fernau Universität Trier

Algorithmen und Datenstrukturen SoSe 2008 in Trier. Henning Fernau Universität Trier Algorithmen und Datenstrukturen SoSe 2008 in Trier Henning Fernau Universität Trier fernau@uni-trier.de 1 Algorithmen und Datenstrukturen Gesamtübersicht Organisatorisches / Einführung Grundlagen: RAM,

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Große Übung #6 Phillip Keldenich, Arne Schmidt 26.02.2017 Heute: Master-Theorem Phillip Keldenich, Arne Schmidt Große Übung 2 Vorbetrachtungen Wir betrachten rekursive Gleichungen

Mehr

Praktische Informatik I - Algorithmen und Datenstrukturen Wintersemester 2006/ Algorithmen und ihre formalen Eigenschaften, Datenstrukturen

Praktische Informatik I - Algorithmen und Datenstrukturen Wintersemester 2006/ Algorithmen und ihre formalen Eigenschaften, Datenstrukturen 1 Grundlagen 1.1 Algorithmen und ihre formalen Eigenschaften, Datenstrukturen Ein Algorithmus ist ein mit formalen Mitteln beschreibbares, mechanisch nachvollziehbares Verfahren zur Lösung einer Klasse

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

1 Divide-and-Conquer-Algorithmen

1 Divide-and-Conquer-Algorithmen 1 Divide-and-Conquer-Algorithmen 1.1 Multiplikation ganzer Zahlen Wir multiplizieren zwei ganze Zahlen x und y, die in Binärdarstellung gegeben sind. Der Einfachheit halber nehmen wir an, die beiden Zahlen

Mehr

Übung zu Algorithmen und Datenstrukturen (für ET/IT)

Übung zu Algorithmen und Datenstrukturen (für ET/IT) Übung zu Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2017 Rüdiger Göbl, Mai Bui Computer Aided Medical Procedures Technische Universität München Fibonacci Zahlen Fibonacci Folge Die Fibonacci

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

Einführung in die Informatik Algorithmen und Datenstrukturen. Thema 17 Sortieren

Einführung in die Informatik Algorithmen und Datenstrukturen. Thema 17 Sortieren Einführung in die Informatik Algorithmen und Datenstrukturen Thema 17 Sortieren Sortierproblem Es gibt eine Menge von Datensätzen, und jeder dieser Sätze besitzt einen (möglichst eindeutigen) Schlüssel.

Mehr

Schnelle Multiplikation

Schnelle Multiplikation Informationsblatt für die Lehrkraft Schnelle Multiplikation $&*&*& 999 3 x 3 =? 10001110 π/3 7 X 6 14 666 x 987 Informationsblatt für die Lehrkraft Thema: Schultyp: Vorkenntnisse: Bearbeitungsdauer: Schnelle

Mehr

Klausur Algorithmen und Datenstrukturen

Klausur Algorithmen und Datenstrukturen Technische Universität Braunschweig Wintersemester 2014/2015 Institut für Betriebssysteme und Rechnerverbund Abteilung Algorithmik Prof. Dr. Sándor P. Fekete Dr. Christian Scheffer Klausur Algorithmen

Mehr

. Die obige Beschreibung der Laufzeit für ein bestimmtes k können wir also erweitern und erhalten die folgende Gleichung für den mittleren Fall:

. Die obige Beschreibung der Laufzeit für ein bestimmtes k können wir also erweitern und erhalten die folgende Gleichung für den mittleren Fall: Laufzeit von Quicksort im Mittel. Wir wollen die erwartete Effizienz von Quicksort ermitteln. Wir nehmen an, die Wahrscheinlichkeit, dass das gewählte Pivot-Element a j das k-t kleinste Element der Folge

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

Effiziente Algorithmen und Datenstrukturen I. Kapitel 10: Lineare Algebra

Effiziente Algorithmen und Datenstrukturen I. Kapitel 10: Lineare Algebra Effiziente Algorithmen und Datenstrukturen I Kapitel 10: Lineare Algebra Christian Scheideler WS 2008 19.02.2009 Kapitel 10 1 Überblick Notation Arithmetik auf großen Zahlen (Addition und Multiplikation)

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

Grundbegriffe der Informatik

Grundbegriffe der Informatik Grundbegriffe der Informatik Einheit 4: Wörter (und vollständige Induktion) Thomas Worsch Universität Karlsruhe, Fakultät für Informatik Oktober 2008 1/29 Überblick Wörter Wörter Das leere Wort Mehr zu

Mehr

Schulmethode zur Multiplikation von n-stelligen Binärzahlen a und b: (evtl. fallen Zeilen weg, wenn das zugehörige Bit des Multiplikators 0 ist).

Schulmethode zur Multiplikation von n-stelligen Binärzahlen a und b: (evtl. fallen Zeilen weg, wenn das zugehörige Bit des Multiplikators 0 ist). 4-1 4. Algorithmen auf Zahlen Themen: Multiplikation von binären Zahlen Matrixmultiplikation 4.1 Multiplikation ganzer Zahlen Schulmethode zur Multiplikation von n-stelligen Binärzahlen a und b: n=8: aaaaaaaa

Mehr

Präsenzübung Datenstrukturen und Algorithmen SS 2014

Präsenzübung Datenstrukturen und Algorithmen SS 2014 Prof. aa Dr. E. Ábrahám F. Corzilius, S. Schupp, T. Ströder Präsenzübung Datenstrukturen und Algorithmen SS 2014 Vorname: Nachname: Studiengang (bitte genau einen markieren): Informatik Bachelor Informatik

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

Einführung in die Informatik 2

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

Mehr

Algorithmen und Datenstrukturen Wintersemester 2004/ November T(n) = T(n a) + T(a) + n

Algorithmen und Datenstrukturen Wintersemester 2004/ November T(n) = T(n a) + T(a) + n Lehrstuhl für Praktische Informatik III Norman May B6, 29, Raum C0.05 68131 Mannheim Telefon: (0621) 181 2517 Email: norman@pi3.informatik.uni-mannheim.de Matthias Brantner B6, 29, Raum C0.05 68131 Mannheim

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

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

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

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 31 Einstieg in die Informatik mit Java Effizienz Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 31 1 Überlegungen zur Effizienz 2 Landau-Symbole 3 Eier im Korb 4 Zyklische

Mehr

Übung: Algorithmen und Datenstrukturen SS 2007

Übung: Algorithmen und Datenstrukturen SS 2007 Übung: Algorithmen und Datenstrukturen SS 2007 Prof. Lengauer Sven Apel, Michael Claÿen, Christoph Zengler, Christof König Blatt 5 Votierung in der Woche vom 04.06.0708.06.07 Aufgabe 12 Manuelle Sortierung

Mehr

Grundbegriffe der Informatik

Grundbegriffe der Informatik Grundbegriffe der Informatik Tutorium 1-10. Sitzung Dennis Felsing dennis.felsing@student.kit.edu http://www.stud.uni-karlsruhe.de/~ubcqr/2010w/tut gbi/ 2011-01-10 Überblick 1 O-Notation Wiederholung Mastertheorem

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

Randomisierte Algorithmen 2. Erste Beispiele

Randomisierte Algorithmen 2. Erste Beispiele Randomisierte Algorithmen Randomisierte Algorithmen 2. Erste Beispiele Thomas Worsch Fakultät für Informatik Karlsruher Institut für Technologie Wintersemester 2016/2017 1 / 35 Randomisierter Identitätstest

Mehr

Grundbegriffe der Informatik

Grundbegriffe der Informatik Grundbegriffe der Informatik Kapitel 22: Mima-X Thomas Worsch KIT, Institut für Theoretische Informatik Wintersemester 2015/2016 GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik

Mehr

Datenstrukturen und Algorithmen. Christian Sohler FG Algorithmen & Komplexität

Datenstrukturen und Algorithmen. Christian Sohler FG Algorithmen & Komplexität Datenstrukturen und Algorithmen Christian Sohler FG Algorithmen & Komplexität 1 Geometrisches Problem: Problem: Nächstes Paar Eingabe: n Punkte in der Ebene Ausgabe: Das Paar q,r mit geringstem Abstand

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 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 / 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

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

Grundbegriffe der Informatik

Grundbegriffe der Informatik Grundbegriffe der Informatik Einheit 17: Relationen Thomas Worsch Karlsruher Institut für Technologie, Fakultät für Informatik Wintersemester 2009/2010 1/77 Überblick Äquivalenzrelationen Definition Äquivalenzrelationen

Mehr

Grundbegriffe der Informatik

Grundbegriffe der Informatik Grundbegriffe der Informatik Kapitel 15: Graphen Thomas Worsch KIT, Institut für Theoretische Informatik Wintersemester 2015/2016 GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik

Mehr

Asymptotik und Laufzeitanalyse

Asymptotik und Laufzeitanalyse und Vorkurs Informatik SoSe13 08. April 2013 und Algorithmen = Rechenvorschriften Wir fragen uns: Ist der Algorithmus effizient? welcher Algorithmus löst das Problem schneller? wie lange braucht der Algorithmus

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

Komplexität von Algorithmen SS 2011

Komplexität von Algorithmen SS 2011 Komplexität von Algorithmen SS 2011 Volker Strehl Informatik 8 4. Mai 2011 Organisatorisches Vorlesungstermine Mittwoch, 08:30 10:00 im H4 Freitag, 10:15 11:45 Uhr im H14 (Werkstoffwissenschaften) Organisatorisches

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

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

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