Informatik II. Algorithmen und Datenstrukturen. Vorläufige Version 1 c 2002 Peter Thiemann
|
|
- Agnes Kerner
- vor 6 Jahren
- Abrufe
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
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
MehrInformatik 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
MehrNotation 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
Mehr2. 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]
MehrInformatik 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 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
MehrAchtung: 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
MehrWS 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
Mehr2. 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
MehrVorlesung 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:
Mehr2 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
MehrKomplexitä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
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
MehrAbgabe: (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,
MehrGrundlagen: 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
MehrAlgorithmen 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,
MehrGrundlagen: 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
Mehr3.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,
Mehres 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
MehrKapitel 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:
MehrGrundlagen 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)
Stand der Vorlesung Komplexität von Algorithmen (Kapitel 3) Motivation: IT gestützte Steuerung, Überwachung, Fertigung, Produktion,. : erfordert effiziente Berechnungsvorschriften Ziel: Methoden kennen
MehrV. 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
MehrBabeș-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
MehrAlgorithmen 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
MehrKostenmodell. 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
MehrAlgorithmen 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
MehrKapitel 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
MehrKapitel 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:
MehrKomplexitä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
MehrStand 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
MehrAlgorithmen 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
Mehrf 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
Mehr3.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
MehrDie 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
MehrKomplexitä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
MehrAbschnitt: 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
Mehr1 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
MehrOrdnen 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
MehrKapitel 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
MehrAlgorithmik 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
MehrAlgorithmen 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...
MehrKapitel 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
MehrAlgorithmen 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 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
Mehr8. 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
MehrAlgorithmen 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
Mehr1. 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
MehrKapitel 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
MehrAlgorithmen 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
MehrAlgebraische 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
MehrEinfü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.
MehrPolynomielle 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
Mehr1 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
MehrUE 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
MehrObjektorientierte 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
MehrHeapsort / 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
MehrGrundlagen: 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
MehrLaufzeit 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
Mehr12. 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
Mehr4 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
Mehr5. Ü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
MehrKapitel 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
MehrBerechenbarkeitstheorie 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:
MehrVorlesung 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
MehrModul 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
MehrDas 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
MehrAufgabe 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
MehrString - 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
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
MehrLaufzeit 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
MehrAlgorithmenbegriff: 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
Mehr16. 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
MehrZeitkomplexitä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
MehrDatenstrukturen & 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
MehrNumerische 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)
MehrAlgorithmen & 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
MehrDer 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
MehrHier 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
Mehr4 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
MehrAlgorithmen 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
MehrProgrammiertechnik 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
MehrAlgorithmen 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.
Mehr7. 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
MehrDatenstrukturen 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 Sommersemester 2016 Patrick Schäfer, Humboldt-Universität zu Berlin Agenda 1. Vorstellen des vierten Übungsblatts 2. Vorbereitende Aufgaben für das vierte Übungsblatt
MehrDivide & 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
MehrLö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
MehrEntscheidungsbä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
MehrBucketsort. 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:
MehrAlgorithmen 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,
MehrAlle 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
MehrProf. 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
Mehr2. 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
MehrEinfü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
Mehr8 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
MehrAlgorithmen 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
MehrInformatik 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
Mehr1. 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
Mehr1 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