Algorithm Engineering was hat das mit der Praxis zu tun?
|
|
|
- Cornelius Zimmermann
- vor 9 Jahren
- Abrufe
Transkript
1 Algorithm Engineering was hat das mit der Praxis zu tun? design analyze Algorithmics implement experiment 33
2 Algorithmentheorie (Karikatur) models design Theory Practice analysis perf. guarantees deduction implementation applications 34
3 Algorithmik als Algorithm Engineering Algorithm Engineering Analyse Deduktion Leistungs garantien realistische Modelle 1 Entwurf 2 falsifizierbare 3 Hypothesen 5 Induktion 4 Implementierung Algorithmen bibliotheken 6 reale Eingaben Experimente 7 Anwendungen 35
4 Zurück zur Langzahlmultiplikation Zierngröÿe Hardware-Fähigkeiten z. B. 32 Bit Schulmultiplikation für kleine Eingaben Assembler, SIMD, Karatsuba, n = 2048 Karatsuba, n = recursion threshold 36
5 Skalierung 10 school method Karatsuba4 Karatsuba32 Asymptotik setzt sich durch Konstante Faktoren oft Implementierungsdetail time [sec] e n
6 Blick über den Tellerrand Bessere Potenzen durch Aufspalten in mehr Teile Schnelle Fourier Transformation O(n) Multiplikationen von O(log n)-bit Zahlen [Schönhage-Strassen 1971]: Bitkomplexität O(n log n log log n) [Fürer 2007]: Bitkomplexität 2 O(log n) n log n Praxis: Karatsuba-Multiplikation ist nützlich für Zahlenlängen aus der Kryptographie GnuPG, OpenSSL verwenden Karatsuba (ab best. Bitlänge) { Iterierter Logarithmus: log 0 falls n 1 n = 1 + log log n sonst 38
7 Einführendes 39
8 Überblick Algorithmenanalyse Maschinenmodell Pseudocode Codeannotationen Mehr Algorithmenanalyse Graphen 40
9 (Asymptotische) Algorithmenanalyse Gegeben: Ein Programm Gesucht: Laufzeit T (I ) (# Takte), eigentlich für alle Eingaben I (!) (oder auch Speicherverbrauch, Energieverbrauch,... ) Erste Vereinfachung: Worst case: T (n) = max I =n T (I ) (Später mehr: average case, best case, die Rolle des Zufalls, mehr Parameter) T(n) Instanzen mit I =n 41
10 Zweite Vereinfachung: Asymptotik O(f (n)) = {g(n) : c > 0 : n 0 N + : n n 0 : g(n) c f (n)} höchstens Ω(f (n)) = {g(n) : c > 0 : n 0 N + : n n 0 : g(n) c f (n)} mindestens Θ(f (n)) = O(f (n)) Ω(f (n)) genau o(f (n)) = {g(n) : c > 0 : n 0 N + : n n 0 : g(n) c f (n)} weniger ω(f (n)) = {g(n) : c > 0 : n 0 N + : n n 0 : g(n) c f (n)} mehr 42
11 O-Kalkül Rechenregeln Schludrigkeit: implizite Mengenklammern. Lese `f (n) = E' als `{f (n)} E' u. s. w. k i=0 cf (n) Θ(f (n)) für jede positive Konstante c a i n i O(n k ) f (n) + g(n) Ω(f (n)), f (n) + g(n) O(f (n)) falls g(n) = O(f (n)), O(f (n)) O(g(n)) = O(f (n) g(n)). 43
12 Maschinenmodell: RAM (Random Access Machine) S 1 2 Program Control... R 1 load 2... store k Θ(log Space) <>= + */&v~ Moderne (RISC) Adaption des von Neumann-Modells [von Neumann 1945] 44
13 Register S 1 2 Program Control... R 1 load 2... store k Θ(log Space) <>= + */&v~ k (irgendeine Konstante) Speicher R 1,...,R k für (kleine) ganze Zahlen 45
14 Hauptspeicher S 1 2 Program Control... R 1 load 2... store k Θ(log Space) <>= + */&v~ Unbegrenzter Vorrat an Speicherzellen S[1], S[2]... für (kleine) ganze Zahlen 46
15 Speicherzugri S 1 2 Program Control... R 1 load 2... <>= + */&v~ store k Θ(log Speicher) R i := S[R j ] lädt Inhalt von Speicherzelle S[R j ] in Register R i. S[R j ]:= R i speichert Register R i in Speicherzelle S[R j ]. 47
16 Rechnen S 1 2 Program Control... R 1 load 2... store k Θ(log Space) <>= + */&v~ R i := R j R l Registerarithmetik. ` ' ist Platzhalter für eine Vielzahl von Operationen Arithmetik, Vergleich, Logik 48
17 Bedingte Sprünge S 1 2 Program Control... R 1 load 2... store k Θ(log Space) <>= + */&v~ JZ j, R i Setze Programmausführung an Stelle j fort falls R i = 0 49
18 Kleine ganze Zahlen? Alternativen: Konstant viele Bits (64?): theoretisch unbefriedigend, weil nur endlich viel Speicher adressierbar endlicher Automat Beliebige Genauigkeit: viel zu optimistisch für vernünftige Komplexitätstheorie. Beispiel: n-maliges Quadrieren führt zu einer Zahl mit 2 n Bits. OK für Berechenbarkeit Genug um alle benutzten Speicherstellen zu adressieren: bester Kompromiss. 50
19 Algorithmenanalyse im RAM-Modell Zeit: Ausgeführte Befehle zählen, d. h. Annahme 1 Takt pro Befehl. Nur durch späteres O( ) gerechtfertigt! Ignoriert Cache, Pipeline, Parallelismus... Platz: Etwas unklar: letzte belegte Speicherzelle? Anzahl benutzter Speicherzellen? Abhängigkeit von Speicherverwaltungsalgorithmen? Hier: Es kommt eigentlich nie drauf an. 51
20 Mehr Maschinenmodell Cache: schneller Zwischenspeicher begrenzte Gröÿe kürzlich/häug zugegriene Daten sind eher im Cache blockweiser Zugri Zugri auf konsekutive Speicherbereiche sind schnell Parallelverarbeitung: Mehrere Prozessoren unabhängige Aufgaben identizieren mehr in TI, Algorithmen II, Programmierparadigmen,... 52
21 Mehr Maschinenmodell S 1 2 Caches Program Control... R k Netzwerk 53
22 Pseudocode just in time Beispiel: Class Complex(x, y : Number) of Number Number r:= x Number i:= y Function abs : Number return r 2 + i 2 Function add(c : Complex) : Complex return Complex(r + c.r,i + c.i) 54
23 Design by Contract / Schleifeninvarianten assert: Aussage über Zustand der Programmausführung Vorbedingung: Bedingung für korrektes Funktionieren einer Prozedur Nachbedingung: Leistungsgarantie einer Prozedur, falls Vorbedingung erfüllt Invariante: Aussage, die an vielen Stellen im Programm gilt Schleifeninvariante: gilt vor / nach jeder Ausführung des Schleifenkörpers Datenstrukturinvariante: gilt vor / nach jedem Aufruf einer Operation auf abstraktem Datentyp Hier: Invarianten als zentrales Werkzeug für Algorithmenentwurf und Korrektheitsbeweis. 55
24 Beispiel (Ein anderes als im Buch) Function power(a : R; n 0 : N) : R p=a : R; r=1 : R; n=n 0 : N while n > 0 do if n is odd then n ; r:= r p else (n, p):= (n/2, p p) return r 56
25 Beispiel (Ein anderes als im Buch) Function power(a : R; n 0 : N) : R assert n 0 0 and (a = 0 n 0 = 0) // Vorbedingung p=a : R; r=1 : R; n=n 0 : N // p n r = a n 0 while n > 0 do invariant p n r = a n 0 // Schleifeninvariante (*) if n is odd then n ; r:= r p else (n, p):= (n/2, p p) assert r = a n 0 // (*) n = 0 Nachbedingung return r 57
26 Rechenbeispiel: 2 5 p=a = 2 : R; r=1 : R; n=n 0 = 5 : N // = 2 5 while n > 0 do if n is odd then n ; r:= r p else (n, p):= (n/2, p p) Iteration p r n p n r
27 Beispiel Function power(a : R; n 0 : N) : R assert n 0 0 and (a = 0 n 0 = 0) // Vorbedingung p=a : R; r=1 : R; n=n 0 : N // p n r = a n 0 while n > 0 do invariant p n r = a n 0 // Schleifeninvariante (*) if n is odd then n ; r:= r p else (n, p):= (n/2, p p) assert r = a n 0 // (*) n = 0 Nachbedingung return r neues n {}}{ Fall n ungerade: Invariante erhalten wegen p n r = p n 1 pr }{{} neues r 59
28 Beispiel Function power(a : R; n 0 : N) : R assert n 0 0 and (a = 0 n 0 = 0) // Vorbedingung p=a : R; r=1 : R; n=n 0 : N // p n r = a n 0 while n > 0 do invariant p n r = a n 0 // Schleifeninvariante (*) if n is odd then n ; r:= r p else (n, p):= (n/2, p p) assert r = a n 0 // (*) n = 0 Nachbedingung return r Fall n gerade: Invariante erhalten wegen p n = (p p) }{{} neues p neues n {}}{ n/2 60
29 Programmanalyse Die fundamentalistische Sicht: Ausgeführte RAM-Befehle zählen einfache Übersetzungsregeln {}}{ Pseudo-Code Maschinenbefehle Idee: O( )-Notation vereinfacht die direkte Analyse des Pseudocodes. T (I ; I ) = T (I ) + T (I ). T (if C then I else I ) O(T (C) + max(t (I ), T (I ))). T (repeat I until C) O( i T (i-te Iteration)) Rekursion Rekurrenzrelationen 61
30 Schleifenanalyse Summen ausrechnen Das lernen Sie in Mathe Beispiel: Schulmultiplikation 62
31 Eine Rekurrenz für Teile und Herrsche Für positive Konstanten a, b, c, d, sei n = b k für ein k N. { a falls n = 1 Basisfall r(n) = cn + dr(n/b) falls n > 1 teile und herrsche. n cn 1 2 d n/b n/b... n/b a a a a... a a k 63
32 Master Theorem (Einfache Form) Für positive Konstanten a, b, c, d, sei n = b k für ein k N. { a falls n = 1 Basisfall r(n) = cn + dr(n/b) falls n > 1 teile und herrsche. Es gilt Θ(n) falls d < b r(n) = Θ(n log n) falls d = b Θ ( n log d) b falls d > b. 64
33 Beweisskizze Auf Ebene i haben wir d i n/b i = b k i ( d i c n d = b i cn b ) i ad k 65
34 Beweisskizze Fall d < b geometrisch schrumpfende Reihe erste Rekursionsebene kostet konstanten Teil der Arbeit ( ) r(n) = a }{{ d k k 1 i d } + cn Θ(n) b i=0 o(n) }{{} O(1) d=2, b=4 66
35 Beweisskizze Fall d = b gleich viel Arbeit auf allen k = log b (n) Ebenen. r(n) = an + cn log b n Θ(n log n) d=b=2 67
36 Beweisskizze Fall d > b geometrisch wachsende Reihe letzte Rekursionsebene kostet konstanten Teil der Arbeit ( ) i d ) r(n) = ad k + cn Θ(n log d b b k 1 i=0 beachte: d k = 2 k log d = 2 k log b log d log b = b k log d log b = b k log b d = n log b d d=3, b=2 68
Grundlagen: Algorithmen und Datenstrukturen
Grundlagen: Algorithmen und Datenstrukturen Prof. Dr. Hanjo Täubig Lehrstuhl für Effiziente Algorithmen (Prof. Dr. Ernst W. Mayr) Institut für Informatik Technische Universität München Sommersemester 2010
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
Vorlesung Datenstrukturen
Vorlesung Datenstrukturen Einleitung und Grundlagen Maike Buchin 18.4.2017 Verantwortliche Dozentin Organisation der Übungen Übungsleiter Korrekteure Maike Buchin [email protected] Raum NA 1/70 Sprechzeiten:
1. Übung Algorithmen I
Timo Bingmann, Christian Schulz INSTITUT FÜR THEORETISCHE INFORMATIK, PROF. SANDERS 1 KIT Timo Universität Bingmann, des LandesChristian Baden-Württemberg Schulz und nationales Forschungszentrum in der
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
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]
Das Suchproblem. Gegeben Menge von Datensätzen. Beispiele Telefonverzeichnis, Wörterbuch, Symboltabelle
122 4. Suchen Lineare Suche, Binäre Suche, Interpolationssuche, Untere Schranken [Ottman/Widmayer, Kap. 3.2, Cormen et al, Kap. 2: Problems 2.1-3,2.2-3,2.3-5] 123 Das Suchproblem Gegeben Menge von Datensätzen.
3.3 Laufzeit von Programmen
3.3 Laufzeit von Programmen Die Laufzeit eines Programmes T(n) messen wir als die Zahl der Befehle, die für die Eingabe n abgearbeitet werden Betrachten wir unser Programm zur Berechnung von Zweierpotenzen,
Algorithmen und Datenstrukturen
Universität Innsbruck Institut für Informatik Zweite Prüfung 16. Oktober 2008 Algorithmen und Datenstrukturen Name: Matrikelnr: Die Prüfung besteht aus 8 Aufgaben. Die verfügbaren Punkte für jede Aufgabe
Das Suchproblem 4. Suchen Das Auswahlproblem Suche in Array
Das Suchproblem Gegeben. Suchen Lineare Suche, Binäre Suche, Interpolationssuche, Untere Schranken [Ottman/Widmayer, Kap. 3.2, Cormen et al, Kap. 2: Problems 2.-3,2.2-3,2.3-] Menge von Datensätzen. Beispiele
Konvexe Hülle. Abbildung: [Wikipedia]: Nicht-konvexe Menge (links), konvexe Menge (rechts) KIT Institut für Theoretische Informatik 510
Konvexe Hülle Definition konvexe Menge: Für je zwei beliebige Punkte, die zur Menge gehören, liegt auch stets deren Verbindungsstrecke ganz in der Menge. Abbildung: [Wikipedia]: Nicht-konvexe Menge (links),
Informatik II. Vorlesung am D-BAUG der ETH Zürich. Felix Friedrich & Hermann Lehner FS 2018
1 Informatik II Vorlesung am D-BAUG der ETH Zürich Felix Friedrich & Hermann Lehner FS 2018 23 1. Einführung Algorithmen und Datenstrukturen, erstes Beispiel 24 Ziele der Vorlesung Verständnis des Entwurfs
Das Suchproblem. Gegeben Menge von Datensätzen. Beispiele Telefonverzeichnis, Wörterbuch, Symboltabelle
119 4. Suchen Lineare Suche, Binäre Suche, Interpolationssuche, Exponentielle Suche, Untere Schranken [Ottman/Widmayer, Kap. 3.2, Cormen et al, Kap. 2: Problems 2.1-3,2.2-3,2.3-5] 120 Das Suchproblem Gegeben
Algorithmen und Datenstrukturen 1 Kapitel 5
Algorithmen und Datenstrukturen 1 Kapitel 5 Technische Fakultät [email protected] Vorlesung, U. Bielefeld, Winter 2005/2006 Kapitel 5: Effizienz von Algorithmen 5.1 Vorüberlegungen Nicht
3. Suchen. Das Suchproblem. Suche in Array. Lineare Suche. 1 n. i = n Gegeben Menge von Datensätzen.
Das Suchproblem Gegeben Menge von Datensätzen. 3. Suchen Beispiele Telefonverzeichnis, Wörterbuch, Symboltabelle Jeder Datensatz hat einen Schlüssel k. Schlüssel sind vergleichbar: eindeutige Antwort auf
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
Algorithmen I. Prof. Jörn Müller-Quade. Übungen: Björn Kaidel, Sebastian Schlag und Sascha Witt
Algorithmen I Prof. Jörn Müller-Quade Übungen: Björn Kaidel, Sebastian Schlag und Sascha Witt Institut für theoretische Informatik Web: https://crypto.iti.kit.edu/index.php?id=799 (Folien von Peter Sanders)
Übungsklausur Algorithmen I
Jun.-Prof. Hofheinz, Jun.-Prof. Meyerhenke (ITI, KIT) 08.06.2015 Übungsklausur Algorithmen I Aufgabe 1. (Algorithm Engineering) Nennen Sie zwei Konzepte, die Algorithm Engineering im Gegensatz zu theoretischer
1 Minimumssuche k = n Maximumssuche n. Median
Kapitel 1 Einführung Anhand des folgenden Problems soll deutlich gemacht werden, welche Schwierigkeiten beim Vergleich verschiedener Lösungsansätze auftreten können, um dann einige sinnvolle Kriterien
Kapitel 2. Weitere Beispiele Effizienter Algorithmen
Kapitel 2 Weitere Beispiele Effizienter Algorithmen Sequentielle Suche Gegeben: Array a[1..n] Suche in a nach Element x Ohne weitere Zusatzinformationen: Sequentielle Suche a[1] a[2] a[3] Laufzeit: n Schritte
Prof. Dr. Margarita Esponda
Analyse von Algorithmen Die O-Notation WS 2012/2013 Prof. Dr. Margarita Esponda Freie Universität Berlin 1 Korrekte und effiziente Lösung von Problemen Problem Wesentlicher Teil der Lösung eines Problems.
Übungsklausur Algorithmen I
Universität Karlsruhe, Institut für Theoretische Informatik Prof. Dr. P. Sanders 26.5.2010 svorschlag Übungsklausur Algorithmen I Hiermit bestätige ich, dass ich die Klausur selbständig bearbeitet habe:
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
Ü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
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
2. Computer (Hardware) K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16
2. Computer (Hardware) K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16 Version: 14. Okt. 2015 Computeraufbau: nur ein Überblick Genauer: Modul Digitale Systeme (2. Semester) Jetzt: Grundverständnis
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,
Komplexität. G. Zachmann Clausthal University, Germany Leistungsverhalten von Algorithmen
lausthal Informatik II Komplexität von Algorithmen. Zachmann lausthal University, ermany [email protected] Leistungsverhalten von Algorithmen Speicherplatzkomplexität: Wird primärer & sekundärer
Algorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Große Übung #1 Christian Rieck, Arne Schmidt 26.10.2017 Organisatorisches Christian Rieck, Arne Schmidt Große Übung 2 Homepage Aktuelle Informationen, Hausaufgaben, Slides
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
Algorithmen und Datenstrukturen Tutorium Übungsaufgaben
Algorithmen und Datenstrukturen Tutorium Übungsaufgaben AlgoDat - Übungsaufgaben 1 1 Landau-Notation Aufgabe Lösung 2 Rekurrenzen Aufgabe 3 Algorithmenentwurf und -analyse Aufgabe AlgoDat - Übungsaufgaben
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
1 Random Access Maschine
1 RANDOM ACCESS MASCHINE 1 1 Random Access Maschine Neue Hardware: Random Access Maschine = RAM. Der Name hat nichts mit Zufall zu tun, sondern mit wahlfreiem Zugriff. Die RAM besteht aus einem Eingabeband,
Datenstrukturen, Algorithmen und Programmierung 2
Datenstrukturen, Algorithmen und Programmierung 2 Professor Dr. Petra Mutzel Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, TU Dortmund 1. VO SS 2008 8. April 2008 Petra Mutzel Kurzvorstellung
Dank. Theoretische Informatik II. Teil II. Registermaschinen. Vorlesung
Dank Vorlesung Theoretische Informatik II Bernhard Beckert Institut für Informatik Diese Vorlesungsmaterialien basieren zum Teil auf den Folien zu den Vorlesungen von Katrin Erk (gehalten an der Universität
Algorithmen und Datenstrukturen 1-1. Seminar -
Algorithmen und Datenstrukturen 1-1. Seminar - Dominic Rose Bioinformatics Group, University of Leipzig Wintersemester 2009/10 Inhalt der ersten beiden Vorlesungen Algorithmenbegriff Komplexität, Asymptotik
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
Isomorphismus. Definition Gruppen-Isomorphismus. Seien (G, +) und (G, ) Gruppen. Die Abbildung f : G G heißt Gruppen-Isomorphismus, falls gilt
Isomorphismus Definition Gruppen-Isomorphismus Seien (G, +) und (G, ) Gruppen. Die Abbildung f : G G heißt Gruppen-Isomorphismus, falls gilt 1 f ist bijektiv f (u + v) = f (u) f (v) für alle u, v G, die
Übung Algorithmen und Datenstrukturen
Übung Algorithmen und Datenstrukturen Sommersemester 2016 Marc Bux, Humboldt-Universität zu Berlin Organisation Vorlesung: Montag 11 13 Uhr Marius Kloft RUD 26, 0 115 Mittwoch 11 13 Uhr Marius Kloft RUD
Notation für das asymptotische Verhalten von Funktionen
Vorbemerkungen: Notation für das asymptotische Verhalten von Funktionen 1. Aussagen über die Komplexität von Algorithmen und von Problemen sollen (in der Regel) unabhängig von speziellen Maschinenmodellen
Programmiertechnik II
Analyse von Algorithmen Algorithmenentwurf Algorithmen sind oft Teil einer größeren Anwendung operieren auf Daten der Anwendung, sollen aber unabhängig von konkreten Typen sein Darstellung der Algorithmen
Exponentiation: das Problem Gegeben: (multiplikative) Halbgruppe (H, ), Element a H, n N Aufgabe: berechne das Element
Problemstellung Banale smethode : das Problem Gegeben: (multiplikative) Halbgruppe (H, ), Element a H, n N Aufgabe: berechne das Element a n = } a a a {{ a } H n (schreiben ab jetzt a n statt a n ) Hinweis:
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
Kapitel 8. Rekursionsgleichungen. Landau-Symbole. Lösen von Rekursionsgleichungen Allgemeines Iterationsmethode Spezialfälle Erzeugende Funktionen
Rekursionsgleichungen Landau-Symbole Kapitel 8 Lösen von Rekursionsgleichungen Allgemeines Iterationsmethode Spezialfälle Erzeugende Funktionen Kapitel 8 Rekursionsgleichungen p./42 Landau-Symbole () Modellierung
Abschnitt: Algorithmendesign und Laufzeitanalyse
Abschnitt: Algorithmendesign und Laufzeitanalyse Definition Divide-and-Conquer Paradigma Divide-and-Conquer Algorithmen verwenden die Strategien 1 Divide: Teile das Problem rekursiv in Subproblem gleicher
Übung Algorithmen I
Übung Algorithmen I 20.5.15 Christoph Striecks [email protected] (Mit Folien von Julian Arz, Timo Bingmann und Sebastian Schlag.) Roadmap Organisation Mergesort, Quicksort Dual Pivot Quicksort
Ü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
Stand der Vorlesung Komplexität von Algorithmen (Kapitel 3)
Stand der Vorlesung Komplexität von Algorithmen (Kapitel 3) Technische Universität München Motivation: IT gestützte Steuerung, Überwachung, Fertigung, Produktion,. : erfordert effiziente Berechnungsvorschriften
UE Algorithmen und Datenstrukturen 1 UE Praktische Informatik 1. Übung 5. Asymptotische Laufzeitkomplexität Definition Regeln Beispiele
UE Algorithmen und Datenstrukturen 1 UE Praktische Informatik 1 Übung 5 Asymptotische Laufzeitkomplexität Definition Regeln Beispiele Institut für Pervasive Computing Johannes Kepler Universität Linz Altenberger
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):
( )= 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
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.
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
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
Vorlesung 3: Graphenalgorithmen. Markus Püschel David Steurer Peter Widmayer. PDF download goo.gl/ym3spq
Vorlesung 3: Graphenalgorithmen Markus Püschel David Steurer Peter Widmayer PDF download goo.gl/ym3spq Algorithmen und Datenstrukturen, Herbstsemester 2017, ETH Zürich Gerichtete Graphen und Abhängigkeiten
Algorithmen und Datenstrukturen
1 Algorithmen und Datenstrukturen Wintersemester 01/13 6. Vorlesung Prioritäten setzen Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I Guten Morgen! Tipps für unseren ersten Test am 0. November: Lesen
2. Algorithmische Methoden 2.1 Rekursion. 18. April 2017
2. Algorithmische Methoden 2.1 Rekursion 18. April 2017 Rekursiver Algorithmus Ein rekursiver Algorithmus löst ein Problem, indem er eine oder mehrere kleinere Instanzen des gleichen Problems löst. Beispiel
1. Asymptotische Notationen 2. Zahlentheoretische Algorithmen 3. Sortierverfahren 4. String Matching 5. Ausgewählte Datenstrukturen
Gliederung 1. Asymptotische Notationen 2. Zahlentheoretische Algorithmen 3. Sortierverfahren 4. String Matching 5. Ausgewählte Datenstrukturen 1/1, Folie 1 2009 Prof. Steffen Lange - HDa/FbI - Effiziente
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
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
Informatik I Komplexität von Algorithmen
Informatik I Komplexität von Algorithmen G. Zachmann Clausthal University, Germany [email protected] Leistungsverhalten von Algorithmen Speicherplatzkomplexität: Wird primärer & sekundärer Speicherplatz
Informatik I Komplexität von Algorithmen
Leistungsverhalten von Algorithmen Informatik I Komplexität von Algorithmen G. Zachmann Clausthal University, Germany [email protected] Speicherplatzkomplexität: Wird primärer & sekundärer Speicherplatz
Hier ist ein einfaches Turingprogramm. Außer dem Leerzeichen ist das Band nur mit. 1 belegt.
Die Turingmaschine besteht aus der Steuereinheit, die verschiedene Zustände annimmt dem Band, welches unendlich ausgedehnt ist, aber nur auf einem endlichem Bereich mit Zeichen aus einem Alphabet beschrieben
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
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)
lim log 2n n = > 0 Da es einen Limes gibt, gibt es auch einen Limes inferior, der gleich diesem Limes ist.
Prof. aa Dr. Ir. Joost-Pieter Katoen Christian Dehnert, Jonathan Heinen, Thomas Ströder, Sabrina von Styp Aufgabe 1 (O-Notation): Beweisen oder widerlegen Sie die folgenden Aussagen: (3 + 3 + 4 = 10 Punkte)
8. Sortieren II. 8.1 Heapsort. Heapsort. [Max-]Heap 6. Heapsort, Quicksort, Mergesort. Binärer Baum mit folgenden Eigenschaften
Heapsort, Quicksort, Mergesort 8. Sortieren II 8.1 Heapsort [Ottman/Widmayer, Kap. 2.3, Cormen et al, Kap. 6] 9 210 Heapsort [Max-]Heap 6 Inspiration von Selectsort: Schnelles Einfügen Binärer Baum mit
Heapsort, Quicksort, Mergesort. 8. Sortieren II
209 Heapsort, Quicksort, Mergesort 8. Sortieren II 210 8.1 Heapsort [Ottman/Widmayer, Kap. 2.3, Cormen et al, Kap. 6] 211 Heapsort Inspiration von Selectsort: Schnelles Einfügen Inspiration von Insertionsort:
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,
V. Claus, Juli 2005 Einführung in die Informatik II 45
Um die Größenordnung einer reellwertigen oder ganzzahligen Funktion zu beschreiben, verwenden wir die so genannten Landau-Symbole (nach dem deutschen Mathematiker Edmund Landau, 1877-1938). Hierbei werden
Abschnitt 11: Korrektheit von imperativen Programmen
Abschnitt 11: Korrektheit von imperativen Programmen 11. Korrektheit von imperativen Programmen 11.1 11.2Testen der Korrektheit in Java Peer Kröger (LMU München) in die Programmierung WS 16/17 931 / 961
Denition: Rang eines Elements e einer Folge s = Position von e in sort(s) (angefangen bei 1). Frage: warum ist r nicht notwendig eindeutig?
207 Auswahl (Selection) Denition: Rang eines Elements e einer Folge s = Position von e in sort(s) (angefangen bei 1). Frage: warum ist r nicht notwendig eindeutig? // return an element of s with rank k
Control Beispiel. Control wird als kombinatorische Schaltung realisiert. Hierzu die Wahrheitstabelle: Control
Control Beispiel Store R1 4 Bit Register R1 SUB 4 Bit Register R2 Store R2 R2 Bit 0 Control wird als kombinatorische Schaltung realisiert. Hierzu die Wahrheitstabelle: Eingabe R2 Bit 0 Zero 0 0 Ausgabe
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
Random Access Machine (RAM) Berechenbarkeit und Komplexität Random Access Machines
Random Access Machine (RAM) Berechenbarkeit und Komplexität Random Access Machines Wolfgang Schreiner [email protected] Research Institute for Symbolic Computation (RISC) Johannes Kepler University,
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
Algorithmen und Datenstrukturen
1 Algorithmen und Datenstrukturen Wintersemester 2016/17 13. Vorlesung Binäre Suchbäume Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I 2 Dynamische Menge verwaltet Elemente einer sich ändernden Menge
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
Effizienz von Algorithmen
Effizienz von Algorithmen Eine Einführung Michael Klauser LMU 30. Oktober 2012 Michael Klauser (LMU) Effizienz von Algorithmen 30. Oktober 2012 1 / 39 Ein einführendes Beispiel Wie würdet ihr einen Stapel
{P} S {Q} {P} S {Q} {P} S {Q} Inhalt. Hoare-Kalkül. Hoare-Kalkül. Hoare-Tripel. Hoare-Tripel. Hoare-Tripel
Inhalt Hoare-Kalkül Formale Verifizierung Hoare-Kalkül while-sprache Terminierung Partielle / totale Korrektheit 4.0 Hoare-Kalkül entwickelt von C.A.R. (Tony) Hoare (britischer Informatiker), 1969 formales
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
Algorithmen und Datenstrukturen 1. EINLEITUNG. Algorithmen und Datenstrukturen - Ma5hias Thimm 1
Algorithmen und Datenstrukturen 1. EINLEITUNG Algorithmen und Datenstrukturen - Ma5hias Thimm ([email protected]) 1 Allgemeines Einleitung Zu den Begriffen: Algorithmen und Datenstrukturen systematische
Kapitel 2: Analyse der Laufzeit von Algorithmen Gliederung
Gliederung 1. Motivation / Einordnung / Grundlagen 2. Analyse der Laufzeit von Algorithmen 3. Untere Schranken für algorithmische Probleme 4. Sortier- und Selektionsverfahren 5. Paradigmen des Algorithmenentwurfs
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
Algorithmische Methoden zur Netzwerkanalyse
Algorithmische Methoden zur Netzwerkanalyse Prof. Dr. Henning Meyerhenke Institut für Theoretische Informatik 1 KIT Henning Die Forschungsuniversität Meyerhenke, in der Institut für Theoretische Informatik
