Kapitel 5: Paradigmen des Algorithmenentwurfs. Gliederung
|
|
- Joseph Fromm
- vor 6 Jahren
- Abrufe
Transkript
1 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 Datenstrukturen 7. Algorithmische Geometrie 8. Umgang mit algorithmisch schwierigen Problemen Divide and Conquer Dynamisches Programmieren Greedy-Algorithmen 5/1, Folie Prof. Steffen Lange - HDa/FbI - Algorithmik
2 Gliederung u Fahrplan (/* Divide and Conquer */) allgemeines Schema Laufzeitanalyse (/* Mastertheorem */) Beispiele MergeSort schnelle Multiplikation Ergänzungen 5/1, Folie Prof. Steffen Lange - HDa/FbI - Algorithmik
3 Allgemeines Schema u Divide and Conquer Algorithmen u Anmerkungen Schritt 1 (/* Divide */) Vorschrift anwenden, mit der das Gesamtproblem in Teilprobleme zerlegt werden kann Schritt 2 (/* Conquer */) Anwendung desselben Algorithmus zur Lösung der Teilprobleme Ergebnis: Lösung für jedes Teilproblem Schritt 3 (/* Merge */) Vorschrift anwenden, mit der aus den Lösungen der Teilprobleme eine Lösung des Gesamtproblems konstruiert werden kann wenn rekursiv definiert ist, was eine Lösung des Gesamtproblems charakterisiert, ist fast nichts zu tun anderenfalls ist Kreativität gefragt 5/1, Folie Prof. Steffen Lange - HDa/FbI - Algorithmik
4 Laufzeitanalyse u Laufzeitanalyse (/* Anwendung des Mastertheorems */) Es seien a 1, b > 1 und f eine Funktion von N à R mit f(n) Θ(n k ) für ein k 0. Ferner habe die verwendete Rekursionsgleichung die Form F(n) = a*f(n/b) + f(n). Dann gilt: F(n) Θ(n k ), falls a < b k F(n) Θ(n k * log(n)), falls a = b k F(n) Θ(n c ) mit c = log b (a), falls a > b k... a = Anzahl der Teilprobleme in Schritt 2 (/* Conquer */)... n/b = Größe der Teilprobleme in Schritt 2 (/* Conquer */)... f(n) = Laufzeit für Schritt 1 (/* Divide */) und Schritt 3 (/* Merge */) 5/1, Folie Prof. Steffen Lange - HDa/FbI - Algorithmik
5 Beispiel MergeSort u Problemstellung (/* Sortieren */) zulässige Eingaben: Schlüsselfolge a[1],...,a[n] zulässige Ausgaben: aufsteigend sortierte Variante b[1],...,b[n] der Schlüsselfolge a[1],...,a[n] u Ansatzpunkt es sei c[1],...,c[n/2] die aufsteigend sortierte Variante der Teilfolge a[1],...,a[n/2] und c[n/2+1],...,c[n] die aufsteigend sortierte Variante der Teilfolge a[n/2+1],...,a[n] dann ergibt sich die gesuchte Folge b[1],...,b[n] durch Verschmelzen der bereits aufsteigend sortierten Teilfolgen c[1],...,c[n/2] und c[n/2+1],...,c[n] 5/1, Folie Prof. Steffen Lange - HDa/FbI - Algorithmik
6 Beispiel MergeSort u Problemstellung (/* Verschmelzen */) zulässige Eingaben: zulässige Ausgaben: aufsteigend sortierte Schlüsselfolgen a[1],...,a[i] und b[1],...,b[j] aufsteigend sortierte Variante c[1],...,c[i+j] der Schlüsselfolge a[1],...,a[i],b[1],...,b[j]... offenbar genügen i + j - 1 viele Vergleiche, um dieses Problem zu lösen (/* es ist sinnvoll, zusätzlichen Speicherplatz zum Speichern der Folge c[1],...,c[i+j] zu verwenden */) 5/1, Folie Prof. Steffen Lange - HDa/FbI - Algorithmik
7 Beispiel MergeSort u algorithmische Idee (/* MergeSort */) Divide Schritt: Conquer Schritt: Merge Schritt: bestimme die Folgen a[1],...,a[n/2] und a[n/2+1],...,a[n] sortiere die beiden Folgen a[1],...,a[n/2] und a[n/2+1],...,a[n] mittels MergeSort (/* Ergebnis: c[1],...,c[n/2] und c[n/2+1],...,c[n] */) verschmelze die beiden Folgen c[1],...,c[n/2] und c[n/2+1],...,c[n] zur sortierten Folge b[1],...,b[n]... falls n = 1 ist, ist nichts zu tun 5/1, Folie Prof. Steffen Lange - HDa/FbI - Algorithmik
8 Beispiel MergeSort u Illustration /1, Folie Prof. Steffen Lange - HDa/FbI - Algorithmik
9 Beispiel MergeSort u Illustration /1, Folie Prof. Steffen Lange - HDa/FbI - Algorithmik
10 Beispiel MergeSort u Analyse (/* MergeSort */) es bezeichne V(A,n) die Anzahl der Vergleiche, die MergeSort bei Eingabe einer Schlüsselfolge der Länge n benötigt Divide Schritt: 0 Vergleiche Conquer Schritt: 2*V(A,n/2) viele Vergleiche Merge Schritt: n - 1 viele Vergleiche Es gilt: V(A,n) = 2*V(A,n/2) + n - 1. Damit gilt: V(A,n) Θ(n*log(n)). 5/1, Folie Prof. Steffen Lange - HDa/FbI - Algorithmik
11 u Problemstellung zulässige Eingaben: Dezimaldarstellung einer Zahl a, d.h. a = a[n]...a[1] Dezimaldarstellung einer Zahl b, d.h. b = b[n]...b[1] zulässige Ausgaben: Dezimaldarstellung der Zahl c = a*b, d.h. c = c[m]...c[1] mit m 2n u... für die Laufzeitanalyse relevant Größe der Eingabe = Länge der Dezimalzahlen (/* also n */) relevante Operationen Elementar-Operationen auf Ziffern-Ebene (/* 3*9, 7+5, 3-2*/) Shift-Operationen auf Ziffern-Ebene 5/1, Folie Prof. Steffen Lange - HDa/FbI - Algorithmik
12 u Schulmethode 7641 * EO + 3 SO 4 EO + 2 SO 4 EO + 1 SO 4 EO + 0 SO 5 EO 6 EO 7 EO 5/1, Folie Prof. Steffen Lange - HDa/FbI - Algorithmik
13 u Schulmethode (/* Analyse für den worst case */) Phase 1: Multiplikation n mal insgesamt Ω(n 2 ) viele Elementar-Operationen insgesamt Ω(n 2 ) viele Shift-Operationen Phase 2: Addition n-1 mal insgesamt Ω(n 2 ) viele Elementar-Operationen... im worst case benötigt die Schulmethode Ω(n 2 ) viele Elementar- Operationen und Ω(n 2 ) viele Shift-Operationen 5/1, Folie Prof. Steffen Lange - HDa/FbI - Algorithmik
14 u Bauernmethode h a l b i e r e n 7641 * v e r d o p p e l n /1, Folie Prof. Steffen Lange - HDa/FbI - Algorithmik
15 u Bauernmethode (/* Korrektheit */) 7641 * * 8512 = ( ) * 8512 = ( )*8512 = = /1, Folie Prof. Steffen Lange - HDa/FbI - Algorithmik
16 u Bauernmethode (/* Analyse für den worst case */) Phase 1: halbieren / verdoppeln 4n mal insgesamt Ω(n 2 ) viele Elementar-Operationen Phase 2: addieren 4n mal jeweils Ω(n) viele Elementar-Operationen... im worst case benötigt die Bauernmethode Ω(n 2 ) viele Elementar- Operationen... Vorteil: Halbieren/Verdoppeln kann man schneller realisieren als die üblichen Elementar-Operationen 5/1, Folie Prof. Steffen Lange - HDa/FbI - Algorithmik
17 u Divide and Conquer (/* Version 1, Vorüberlegung */) es seien a = a v *x + a h und b = b v *x + b h a*b = (a v *b v )*x 2 + (a v *b h + a h *b v )*x + a h *b h... wähle x derart, daß die Multiplikationen mit x bzw. x 2 einfach sind a v und a h bzw. b v und b h kürzer als a bzw. b sind 5/1, Folie Prof. Steffen Lange - HDa/FbI - Algorithmik
18 u Divide and Conquer (/* Version 1, Beispiel */) 7641 * 8512 = (76*85)* (76* *85)* (41*12) = 6460* ( )* = = * 85 = (7*8)* (7*5 + 6*8)*10 + (6*5) = 56* (35+48)* = = * 12 = *8, 7*5,... werden direkt berechnet 5/1, Folie Prof. Steffen Lange - HDa/FbI - Algorithmik
19 u Divide and Conquer (/* Version 1 */) a[n]... a[1] = a[n]... a[n/2]*10 n/2 + a[n/2-1]... a[1] a a v a h b[n]... b[1] = b[n]... b[n/2]*10 n/2 + b[n/2-1]... b[1] b b v b h Divide Schritt: Conquer Schritt: Merge Schritt: bestimme a v, a h, b v und b h bestimme c 1 = a v *b v, c 2 = a v *b h, c 3 = a h *b v und c 4 = a v *b h bestimme d 1 = c 1 *10 n, d 2 = c 2 + c 3 und d 3 = d 2 *10 n/2 bestimme d 1 + d 3 + c 4 5/1, Folie Prof. Steffen Lange - HDa/FbI - Algorithmik
20 u Divide and Conquer (/* Version 1; Analyse */) es bezeichne # op (A,n) die Anzahl der Elementar-Operationen und Shift- Operationen, die diese Version bei Eingabe von Dezimalzahlen der Länge n benötigt Divide Schritt: Θ(n) viele Shift-Operationen Conquer Schritt: 4*# op (A,n/2) viele Elementar- und Shift- Operationen Merge Schritt: Θ(n) viele Shift-Operationen und Θ(n) viele Elementar-Operationen Es gilt: # op (A,n) = 4*# op (A,n/2) + Θ(n). Damit gilt: # op (A,n) Θ(n 2 ). 5/1, Folie Prof. Steffen Lange - HDa/FbI - Algorithmik
21 u Divide and Conquer (/* Version 2, Vorüberlegung */) es seien a = a v x + a h und b = b v x + b h ab = (a v *b v )*x 2 + (a v *b h + a h *b v )*x + a h *b h a v *b h + a h *b v = a v *b h + a h *b v + a v *b v + a h *b h - a v *b v - a h *b h = a v *b v + a h *b h - a h *b h + a h *b v + a v *b h - a v *b v = a v *b v + a h *b h - (a h - a v )*(b h - b v ) a*b = (a v *b v )*x 2 + (a v *b v + a h *b h - (a h - a v )*(b h - b v ))*x + a h *b h 5/1, Folie Prof. Steffen Lange - HDa/FbI - Algorithmik
22 u Divide and Conquer (/* Version 2, Beispiel */) 7641 * 8512 = (76*85)* (76* *12 - (41-76)*(12-85))* (41*12) = 6460* ( ((-35)*(-73)))* = ( )* = = * 85 = (7*8)* (7*8 + 6*5 - (6-7)*(5-8))*10 + (6*5) = 56* (56+30-((-1)*(-3)))* = ( )* = = * 12 =... 5/1, Folie Prof. Steffen Lange - HDa/FbI - Algorithmik... 7*8, 7*5,... werden direkt berechnet
23 u Divide and Conquer (/* Version 2 */) a[n]... a[1] = a[n]... a[n/2]*10 n/2 + a[n/2-1]... a[1] a a v a h b[n]... b[1] = b[n]... b[n/2]*10 n/2 + b[n/2-1]... b[1] b b v b h Divide Schritt: Conquer Schritt: Merge Schritt: bestimme a v, a h, b v und b h sowie e 1 = a v - a h, e 2 = b v - b h bestimme c 1 = a v *b v, c 2 = a h *b h, und c 3 = e 1 *e 2 bestimme d 1 = c 1 *10 n, d 2 = c 1 + c 2 - c 3 und d 3 = d 2 *10 n/2 bestimme d 1 + d 3 + c 2 5/1, Folie Prof. Steffen Lange - HDa/FbI - Algorithmik
24 u Divide and Conquer (/* Version 2; Analyse */) es bezeichne # op (A,n) die Anzahl der Elementar-Operationen und Shift- Operationen, die diese Version bei Eingabe von Dezimalzahlen der Länge n benötigt Divide Schritt: Conquer Schritt: Merge Schritt: Θ(n) viele Elementar-Operationen 3*# op (A,n/2) viele Elementar-und Shift- Operationen Θ(n) viele Shift-Operationen und Θ(n) viele Elementar-Operationen Es gilt: # op (A,n) = 3* # op (A,n/2) + Θ(n). Damit gilt: # op (A,n) Θ(n log 2 (3) ).... log 2 (3) = /1, Folie Prof. Steffen Lange - HDa/FbI - Algorithmik
25 Ergänzungen u... manchmal gibt es Probleme mit der Effizienz... selbst wenn rekursiv definiert ist, was eine Lösung des Gesamtproblems charakterisiert, sollte man nicht immer das Problem rekursiv lösen u... Beispiel Fibonacci Zahlen fib(n) = 0, falls n = 0 fib(n) = 1, falls n = 1 fib(n) = fib(n-1) + fib(n-2), sonst 5/1, Folie Prof. Steffen Lange - HDa/FbI - Algorithmik
26 Ergänzungen u... Bedeutung der Fibonacci-Zahlen Die Fibonacci-Zahlen können beispielsweise verwendet werden, um das Wachstum von Populationen zu beschreiben. Zum Zeitpunkt n = 1 gibt es ein weibliches Kaninchen, das noch nicht fortpflanzungsfähig ist. Jedes weibliches Kaninchen benötigt eine Zeiteinheit, um fortpflanzungsfähig zu werden. Jedes fortpflanzungsfähige Kaninchen bringt pro Zeiteinheit ein weibliches, noch nicht fortpflanzungsfähiges Kaninchen zur Welt. Weibliche Kaninchen sterben nicht. 5/1, Folie Prof. Steffen Lange - HDa/FbI - Algorithmik
27 Ergänzungen u... rekursive Implementierung (/* Divide and Conquer */) int fib ( int n ) { int result = 0; if ( n == 1 ) result = 1; if ( n > 1) result = fib(n-2) + fib(n-1); return (result); } u Anzahl der auszuführenden Additionen (/* T(A,n) */) T(A,n) = 0, falls n = 0 oder n = 1 T(A,n) = T(A,n-1) + T(A,n-2) + 1 T(A,n) Ω(c n ) für c = sqrt(5)/2 + 1/2 5/1, Folie Prof. Steffen Lange - HDa/FbI - Algorithmik
Übersicht. Datenstrukturen und Algorithmen. Übersicht. Divide-and-Conquer. Vorlesung 9: Quicksort (K7)
Datenstrukturen und Algorithmen Vorlesung 9: (K7) Joost-Pieter Katoen Lehrstuhl für Informatik 2 Software Modeling and Verification Group http://www-i2.rwth-aachen.de/i2/dsal0/ Algorithmus 8. Mai 200 Joost-Pieter
MehrAlgorithmik - Kompaktkurs
Algorithmik - Kompaktkurs Sommersemester 2012 Steffen Lange 0/1, Folie 1 2012 Prof. Steffen Lange - HDa/FbI - Algorithmik Organisatorisches Vorlesung Folien im Netz (/* bitte zur Vorlesung mitbringen */)
MehrS=[n] Menge von Veranstaltungen J S kompatibel mit maximaler Größe J
Greedy-Strategie Definition Paradigma Greedy Der Greedy-Ansatz verwendet die Strategie 1 Top-down Auswahl: Bestimme in jedem Schritt eine lokal optimale Lösung, so dass man eine global optimale Lösung
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
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
MehrBabeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005. Paradigmen im Algorithmenentwurf
Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005 Paradigmen im Algorithmenentwurf Problemlösen Problem definieren Algorithmus entwerfen
MehrKapitel 5: Dynamisches Programmieren Gliederung
Gliederung 1. Grundlagen 2. Zahlentheoretische Algorithmen 3. Sortierverfahren 4. Ausgewählte Datenstrukturen 5. Dynamisches Programmieren 6. Graphalgorithmen 7. String-Matching 8. Kombinatorische Algorithmen
MehrTeile und Herrsche Teil 2
Teile und Herrsche Teil 2 binär Suchen und schnell Multiplizieren Markus Fleck Manuel Mauky Hochschule Zittau/Görlitz 19. April 2009 Suchen in langen Listen (0, 1, 2, 7, 8, 9, 9, 13, 13, 14, 14, 14, 16,
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
MehrUebersicht. Webpage & Ilias. Administratives. Lehrbuch. Vorkenntnisse. Datenstrukturen & Algorithmen
Datenstrukturen & Algorithmen Uebersicht Administratives Einleitung Ein einführendes Beispiel Matthias Zwicker Universität Bern Frühling 2010 2 Administratives Dozent Prof. Zwicker, zwicker@iam.unibe.ch
MehrAlgorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2014 / 2015. Vorlesung 8, Donnerstag 11.
Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2014 / 2015 Vorlesung 8, Donnerstag 11. Dezember 2014 (Cache-Effizienz, Teile und Herrsche) Junior-Prof. Dr.
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
MehrProgrammieren I. Kapitel 7. Sortieren und Suchen
Programmieren I Kapitel 7. Sortieren und Suchen Kapitel 7: Sortieren und Suchen Ziel: Varianten der häufigsten Anwendung kennenlernen Ordnung Suchen lineares Suchen Binärsuche oder Bisektionssuche Sortieren
MehrKostenmaße. F3 03/04 p.188/395
Kostenmaße Bei der TM nur ein Kostenmaß: Ein Schritt (Konfigurationsübergang) kostet eine Zeiteinheit; eine Bandzelle kostet eine Platzeinheit. Bei der RAM zwei Kostenmaße: uniformes Kostenmaß: (wie oben);
MehrVorkurs Informatik WiSe 15/16
Konzepte der Informatik Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 16.10.2015 Technische Universität Braunschweig, IPS Inhaltsverzeichnis Suchen Binärsuche Binäre Suchbäume 16.10.2015 Dr. Werner
MehrAlgorithmen und Programmierung
Algorithmen und Programmierung Kapitel 7 Ausgewählte Algorithmen A&P (WS 4/): 07 Ausgewählte Algorithmen Überblick Suchen in sortierten Folgen Sortieren Anhang: Entwurf von Algorithmen per Induktion A&P
MehrEinführung in die Informatik
Einführung in die Informatik Jochen Hoenicke Software Engineering Albert-Ludwigs-University Freiburg Sommersemester 2014 Jochen Hoenicke (Software Engineering) Einführung in die Informatik Sommersemester
MehrMATHEMATISCHE ANALYSE VON ALGORITHMEN
MATHEMATISCHE ANALYSE VON ALGORITHMEN Michael Drmota Institut für Diskrete Mathematik und Geometrie, TU Wien michael.drmota@tuwien.ac.at www.dmg.tuwien.ac.at/drmota/ Ringvorlesung SS 2008, TU Wien Algorithmus
MehrSortierverfahren für Felder (Listen)
Sortierverfahren für Felder (Listen) Generell geht es um die Sortierung von Daten nach einem bestimmten Sortierschlüssel. Es ist auch möglich, daß verschiedene Daten denselben Sortierschlüssel haben. Es
Mehr3. Ü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
MehrEffiziente Algorithmen und Datenstrukturen I. Kapitel 9: Minimale Spannbäume
Effiziente Algorithmen und Datenstrukturen I Kapitel 9: Minimale Spannbäume Christian Scheideler WS 008 19.0.009 Kapitel 9 1 Minimaler Spannbaum Zentrale Frage: Welche Kanten muss ich nehmen, um mit minimalen
MehrVorlesung Algorithmische Geometrie. Streckenschnitte. Martin Nöllenburg 19.04.2011
Vorlesung Algorithmische Geometrie LEHRSTUHL FÜR ALGORITHMIK I INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Martin Nöllenburg 19.04.2011 Überlagern von Kartenebenen Beispiel: Gegeben zwei
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
Algorithmen und Datenstrukturen Werner Struckmann Wintersemester 2005/06 9. Entwurf von Algorithmen 9.1 Einführung 9.2 Teile-und-Beherrsche-Algorithmen 9.3 Gierige Algorithmen 9.4 Backtracking-Algorithmen
MehrTeil 2 - Softwaretechnik. Modul: Programmierung B-PRG Grundlagen der Programmierung 1 Teil 2. Übersicht. Softwaretechnik
Grundlagen der Programmierung 1 Modul: Programmierung B-PRG Grundlagen der Programmierung 1 Teil 2 Softwaretechnik Prof. Dr. O. Drobnik Professur Architektur und Betrieb verteilter Systeme Institut für
MehrMichael Philippsen 1. Algorithmen und Datenstrukturen. 9. Algorithmenherleitung durch Induktion. 9. Algorithmenherleitung durch Induktion
9. Algorithmenherleitung durch Induktion Algorithmen und Datenstrukturen 9. Algorithmenherleitung durch Induktion Prof. Dr. Christoph Pflaum Department Informatik Martensstraße 3 958 Erlangen 9. Induktionsformen
Mehr7. Übung zu Algorithmen und Datenstrukturen
7. Übung zu Algorithmen und Datenstrukturen Dynamisches Programmieren Greedy Algorithms Exceptions 1 Dynamische Programmierung nutzt gezielt aus, dass man bei manchen Problemen den Rechenaufwand extrem
MehrTechnische Informatik 1 Übung 2 Assembler (Rechenübung) Georgia Giannopoulou (ggeorgia@tik.ee.ethz.ch) 22./23. Oktober 2015
Technische Informatik 1 Übung 2 Assembler (Rechenübung) Georgia Giannopoulou (ggeorgia@tik.ee.ethz.ch) 22./23. Oktober 2015 Ziele der Übung Aufgabe 1 Aufbau und Aufruf von Funktionen in Assembler Codeanalyse
MehrIdeen der Informatik Suchen und Sortieren [Ordnung muss sein ] Kurt Mehlhorn Adrian Neumann viele Folien von Kostas Panagiotou
Ideen der Informatik Suchen und Sortieren [Ordnung muss sein ] Kurt Mehlhorn Adrian Neumann viele Folien von Kostas Panagiotou Suchen Welche Telefonnummer hat Kurt Mehlhorn? Wie schreibt man das Wort Equivalenz?
MehrDatenstrukturen & Algorithmen
Datenstrukturen & Algorithmen Matthias Zwicker Universität Bern Frühling 2010 Übersicht Binäre Suchbäume Einführung und Begriffe Binäre Suchbäume 2 Binäre Suchbäume Datenstruktur für dynamische Mengen
MehrProgrammierung 2. Dynamische Programmierung. Sebastian Hack. Klaas Boesche. Sommersemester 2012. hack@cs.uni-saarland.de. boesche@cs.uni-saarland.
1 Programmierung 2 Dynamische Programmierung Sebastian Hack hack@cs.uni-saarland.de Klaas Boesche boesche@cs.uni-saarland.de Sommersemester 2012 2 Übersicht Stammt aus den Zeiten als mit Programmierung
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
MehrSOI 2013. Die Schweizer Informatikolympiade
SOI Die Schweizer Informatikolympiade Lösung SOI Wie schreibe ich eine gute Lösung? Bevor wir die Aufgaben präsentieren, möchten wir dir einige Tipps geben, wie eine gute Lösung für die theoretischen
MehrAlgorithmen & Datenstrukturen 1. Klausur
Algorithmen & Datenstrukturen 1. Klausur 7. Juli 2010 Name Matrikelnummer Aufgabe mögliche Punkte erreichte Punkte 1 35 2 30 3 30 4 15 5 40 6 30 Gesamt 180 1 Seite 2 von 14 Aufgabe 1) Programm Analyse
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 / 16 4. Groß-O R. Steuding (HS-RM)
MehrEinführung in die Informatik 1
Einführung in die Informatik 1 Datenorganisation und Datenstrukturen Sven Kosub AG Algorithmik/Theorie komplexer Systeme Universität Konstanz E 202 Sven.Kosub@uni-konstanz.de Sprechstunde: Freitag, 12:30-14:00
Mehr4 Greedy-Algorithmen (gierige Algorithmen)
Greedy-Algorithmen (gierige Algorithmen) Greedy-Algorithmen werden oft für die exakte oder approximative Lösung von Optimierungsproblemen verwendet. Typischerweise konstruiert ein Greedy-Algorithmus eine
MehrÜberblick. Lineares Suchen
Komplexität Was ist das? Die Komplexität eines Algorithmus sei hierbei die Abschätzung des Aufwandes seiner Realisierung bzw. Berechnung auf einem Computer. Sie wird daher auch rechnerische Komplexität
Mehr3.2 Binäre Suche. Usr/local/www/ifi/fk/menschen/schmid/folien/infovk.ppt 1
3.2 Binäre Suche Beispiel 6.5.1: Intervallschachtelung (oder binäre Suche) (Hier ist n die Anzahl der Elemente im Feld!) Ein Feld A: array (1..n) of Integer sei gegeben. Das Feld sei sortiert, d.h.: A(i)
MehrApproximationsalgorithmen
Makespan-Scheduling Kapitel 4: Approximationsalgorithmen (dritter Teil) (weitere Beispiele und Illustrationen an der Tafel) Hilfreiche Literatur: Vazarani: Approximation Algorithms, Springer Verlag, 2001.
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
MehrEinführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung)
Wintersemester 2007/08 Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fakultät für Informatik Lehrstuhl
MehrMethoden zum Lösen von Rekursionsgleichungen
Rekursionsgleichungen... Slide 1 Methoden zum Lösen von Rekursionsgleichungen Bisher wurde Expandieren der Rekursion + Raten der Gesetzmäßigkeit benutzt, um einfache Rekursionsgleichungen zu lösen. Zum
MehrEinführung in die Informatik I
Einführung in die Informatik I Algorithmen und deren Programmierung Prof. Dr. Nikolaus Wulff Definition Algorithmus Ein Algorithmus ist eine präzise formulierte Handlungsanweisung zur Lösung einer gleichartigen
MehrAlgorithms & Datastructures Midterm Test 1
Algorithms & Datastructures Midterm Test 1 Wolfgang Pausch Heiko Studt René Thiemann Tomas Vitvar
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 3. Dezember 2009 Berthold Vöcking, Informatik 1 () Vorlesung Berechenbarkeit und
MehrName: Seite 2. Beantworten Sie die Fragen in den Aufgaben 1 und 2 mit einer kurzen, prägnanten Antwort.
Name: Seite 2 Beantworten Sie die Fragen in den Aufgaben 1 und 2 mit einer kurzen, prägnanten Antwort. Aufgabe 1 (8 Punkte) 1. Wie viele negative Zahlen (ohne 0) lassen sich im 4-Bit-Zweierkomplement darstellen?
MehrGrundlagen der Programmierung
Grundlagen der Programmierung Algorithmen und Datenstrukturen Die Inhalte der Vorlesung wurden primär auf Basis der angegebenen Literatur erstellt. Darüber hinaus sind viele Teile direkt aus der Vorlesung
MehrSuchen und Sortieren (Die klassischen Algorithmen)
Suchen und Sortieren (Die klassischen Algorithmen) Lineare Suche und Binäre Suche (Vorbedingung und Komplexität) Sortieralgorithmen (allgemein) Direkte Sortierverfahren (einfach aber langsam) Schnelle
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Dipl. Inform. Andreas Wilkens 1 Organisatorisches Freitag, 05. Mai 2006: keine Vorlesung! aber Praktikum von 08.00 11.30 Uhr (Gruppen E, F, G, H; Vortestat für Prototyp)
MehrSortieralgorithmen. Inhalt: InsertionSort BubbleSort QuickSort. Marco Block
Inhalt: InsertionSort BubbleSort QuickSort Block M.: "Java-Intensivkurs - In 14 Tagen lernen Projekte erfolgreich zu realisieren", Springer-Verlag 2007 InsertionSort I Das Problem unsortierte Daten in
MehrKapitel 9 Suchalgorithmen
Kapitel 9 Suchalgorithmen Technische Universität München Suchverfahren: Verfahren, das in einem Suchraum nach Mustern oder Objekten mit bestimmten Eigenschaften sucht. Vielfältige Anwendungsbereiche für
MehrProgrammierung in Python
Programmierung in Python imperativ, objekt-orientiert dynamische Typisierung rapid prototyping Script-Sprache Funktionales und rekursives Programmieren P raktische Informatik 1, W S 2004/05, F olien P
MehrHöhere Algorithmik. Eine Vorlesung von Prof. Dr. Helmut Alt Mitschrift von Pascal-Nicolas Becker
Höhere Algorithmik Eine Vorlesung von Prof. Dr. Helmut Alt Mitschrift von Pascal-Nicolas Becker Wintersemsester 2010/2011 Stand: 02.08.2011 flattr.com/t/78695 Dieses Skript ist eine Mitschrift der Vorlesung
MehrKap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxis
Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxis Professor Dr. Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, TU Dortmund 13./14. VO DAP2 SS 2009 2./4. Juni 2009 1 2. Übungstest
MehrGrundlagen der Rechnerarchitektur
Grundlagen der Rechnerarchitektur [CS3100.010] Wintersemester 2014/15 Heiko Falk Institut für Eingebettete Systeme/Echtzeitsysteme Ingenieurwissenschaften und Informatik Universität Ulm Kapitel 5 Rechnerarithmetik
MehrHEUTE. Datenstrukturen im Computer. Datenstrukturen. Rekursion. Feedback Evaluation. abstrakte Datenstrukturen
9.2.5 HUT 9.2.5 3 atenstrukturen im omputer atenstrukturen ie beiden fundamentalen atenstrukturen in der Praxis sind rray und Liste Rekursion Feedback valuation rray Zugriff: schnell Umordnung: langsam
MehrMaximale Teilsummen Algorithmendesign
Maximale Teilsummen Algorithmendesign Die Geschichte beginnt, als Ulf Grenander 1977 an der Brown Universität Mustererkennungstechniken an digitalisierten Bildern studiert. Er möchte, um Wahrscheinlichkeitsabschätzungen
MehrProgrammieren in C. Rekursive Funktionen. Prof. Dr. Nikolaus Wulff
Programmieren in C Rekursive Funktionen Prof. Dr. Nikolaus Wulff Rekursive Funktionen Jede C Funktion besitzt ihren eigenen lokalen Satz an Variablen. Dies bietet ganze neue Möglichkeiten Funktionen zu
MehrRepräsentation von Daten: Binär-, Oktal- u. Hexadezimalcodierung von ganzen und rationalen Zahlen
Großübung 1: Zahlensysteme Repräsentation von Daten: Binär-, Oktal- u. Hexadezimalcodierung von ganzen und rationalen Zahlen Lehrender: Dr. Klaus Richter, Institut für Informatik; E-Mail: richter@informatik.tu-freiberg.de
MehrMATHEMATIK PROGRAMMIEREN MIT PYTHON
MATHEMATIK PROGRAMMIEREN MIT PYTHON Univ. Prof. Dr. Stefan Müller-Stach AG Zahlentheorie 27. September 2006 PYTHON: Möglichkeiten einer Programmiersprache PYTHON: Objektorientierte Sprache von Guido van
Mehr6. Algorithmen der Computer-Geometrie
6. Algorithmen der Computer-Geometrie 1. Einführung 2. Schnitt von zwei Strecken 3. Punkt-in-Polygon-Test 4. Schnitt orthogonaler Strecken 5. Punkteinschlussproblem Geo-Informationssysteme 146 6.1 Computer-Geometrie
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Prof Dr Hans-Dietrich Hecker Wintersemester 2003/04 Inhaltsverzeichnis 1 Einführung 9 11 Über schnelle und langsame Algorithmen 13 12 Die Klassen P und NP 14 13 Effiziente
MehrGrundlagen der Programmierung 2. Bäume
Grundlagen der Programmierung 2 Bäume Prof. Dr. Manfred Schmidt-Schauÿ Künstliche Intelligenz und Softwaretechnologie 24. Mai 2006 Graphen Graph: Menge von Knoten undzugehörige (gerichtete oder ungerichtete)
MehrProgrammiertechnik II
Bäume Symboltabellen Suche nach Werten (items), die unter einem Schlüssel (key) gefunden werden können Bankkonten: Schlüssel ist Kontonummer Flugreservierung: Schlüssel ist Flugnummer, Reservierungsnummer,...
MehrSortierte Folgen 250
Sortierte Folgen 250 Sortierte Folgen: he 1,...,e n i mit e 1 apple applee n kennzeichnende Funktion: M.locate(k):= addressof min{e 2 M : e k} Navigations Datenstruktur 2 3 5 7 11 13 17 19 00 Annahme:
MehrProgrammierkurs Java
Programmierkurs Java Dr. Dietrich Boles Aufgaben zu UE16-Rekursion (Stand 09.12.2011) Aufgabe 1: Implementieren Sie in Java ein Programm, das solange einzelne Zeichen vom Terminal einliest, bis ein #-Zeichen
MehrSortieren durch Einfügen. Prof. Dr. W. Kowalk Sortieren durch Einfügen 1
Sortieren durch Einfügen Prof. Dr. W. Kowalk Sortieren durch Einfügen 1 Schon wieder aufräumen Schon wieder Aufräumen, dabei habe ich doch erst neulich man findet alles schneller wieder Bücher auf Regal
MehrPraktikum Diskrete Optimierung (Teil 11) 17.07.2006 1
Praktikum Diskrete Optimierung (Teil 11) 17.07.2006 1 1 Primzahltest 1.1 Motivation Primzahlen spielen bei zahlreichen Algorithmen, die Methoden aus der Zahlen-Theorie verwenden, eine zentrale Rolle. Hierzu
Mehr3. Ziel der Vorlesung
3. Ziel der Vorlesung Der Zweck der Vorlesung ist das Studium fundamentaler Konzepte in der Algorithmentheorie. Es werden relevante Maschinenmodelle, grundlegende und höhere Datenstrukturen sowie der Entwurf
MehrDr. Monika Meiler. Inhalt
Inhalt 4 Anweisungen... 4-2 4.1 Strukturierte Programmierung... 4-2 4.1.1 Geschichte... 4-2 4.1.2 Strukturierung im Kleinen... 4-2 4.2 Einige Beispielanwendungen... 4-4 4.2.1 Addierer (do-schleife)...
MehrCS2101 Nebenläufige und Verteilte Programme Bachelor of Science (Informatik)
Prof. Dr. Th. Letschert CS2101 Nebenläufige und Verteilte Programme Bachelor of Science (Informatik) Vorlesung 4 Th Letschert FH Gießen-Friedberg Nebenläufige und verteilte Programme 2 : Thread-Pools Motivation:
Mehr5.2 Das All-Pairs-Shortest-Paths-Problem (APSP-Problem) Kürzeste Wege zwischen allen Knoten. Eingabe: Gerichteter Graph G =(V, E, c)
5.2 Das All-Pairs-Shortest-Paths-Problem (APSP-Problem) Kürzeste Wege zwischen allen Knoten. Eingabe: Gerichteter Graph G =(V, E, c) mit V = {1,...,n} und E {(v, w) 1 apple v, w apple n, v 6= w}. c : E!
MehrKomplexe Zahlen und Wechselstromwiderstände
Komplexe Zahlen und Wechselstromwiderstände Axel Tobias 22.2.2000 Ein besonderer Dank geht an Ingo Treunowski, der die Übertragung meines Manuskriptes in L A TEX durchgeführt hat tob skript komplex.tex.
Mehr1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie
Gliederung 1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. äume / Graphen 5. Hashing 6. Algorithmische Geometrie 4/5, olie 1 2014 Prof. Steffen Lange - HDa/bI
MehrGrenzen der Berechenbarkeit
M. Jakob Gymnasium Pegnitz 3. Mai 2015 Inhaltsverzeichnis Experimentelle Laufzeitabschätzung ausgewählter Algorithmen Historische Kryptographie Moderne Kryptographie Das Halteproblem In diesem Abschnitt
Mehr2: Zahlentheorie / Restklassen 2.1: Modulare Arithmetik
Stefan Lucks Diskrete Strukturen (WS 2009/10) 57 2: Zahlentheorie / Restklassen 2.1: Modulare Arithmetik Uhr: Stunden mod 24, Minuten mod 60, Sekunden mod 60,... Rechnerarithmetik: mod 2 w, w {8, 16, 32,
MehrPublic-Key-Algorithmen WS2015/2016
Public-Key-Algorithmen WS2015/2016 Lernkontrollfragen Michael Braun Was bedeuten die kryptographischen Schutzziele Vertraulichkeit, Integrität, Nachrichtenauthentizität, Teilnehmerauthentizität, Verbindlichkeit?
MehrModul Einführung in die Informatik : Aufgaben zur Großübung 4 Thema: Python I
Modul Einführung in die Informatik : Aufgaben zur Großübung 4 Thema: Python I 1) Berechnung der Fakultät (von einer ganzen Zahl >= 0) a) Nichtrekursive Berechnung der Fakultät (vgl. Aufg.-komplex Struktogramme,
MehrAlgorithmen II Vorlesung am 15.11.2012
Algorithmen II Vorlesung am 15.11.2012 Kreisbasen, Matroide & Algorithmen INSTITUT FÜR THEORETISCHE INFORMATIK PROF. DR. DOROTHEA WAGNER KIT Universität des Landes Baden-Württemberg und Algorithmen nationales
MehrProinformatik: Objektorientierte Programmierung - Tag 7 -
Proinformatik: Objektorientierte Programmierung - Tag 7 - G R U N D L A G E N D E R B E R E C H E N B A R K E I T F O R M A L E V E R F A H R E N Z U R S P E Z I F I K A T I O N U N D V E R I F I K A T
MehrTutorium 5 - Programmieren
Tutorium 5 - Programmieren Grischa Liebel Uni Karlsruhe (TH) Tutorium 11 1 Einleitung 2 Abschlussaufgaben 3 Vorlesungsstoff 4 Ergänzungen zum Vorlesungsstoff Grischa Liebel (Uni Karlsruhe (TH)) c 2008
MehrComputerarithmetik ( )
Anhang A Computerarithmetik ( ) A.1 Zahlendarstellung im Rechner und Computerarithmetik Prinzipiell ist die Menge der im Computer darstellbaren Zahlen endlich. Wie groß diese Menge ist, hängt von der Rechnerarchitektur
MehrInformatik II Greedy-Algorithmen
7/7/06 lausthal Erinnerung: Dynamische Programmierung Informatik II reedy-algorithmen. Zachmann lausthal University, ermany zach@in.tu-clausthal.de Zusammenfassung der grundlegenden Idee: Optimale Sub-Struktur:
MehrKapitel 4. Grundlagen der Analyse von Algorithmen. Xiaoyi Jiang Informatik II Datenstrukturen und Algorithmen
Kapitel 4 Grundlagen der Analyse von Algorithmen 1 4.1 Kostenfunktion zu Beurteilung von Algorithmen Die Angabe der Laufzeit (und etwas weniger wichtig des Speicherplatzes) liefert das wichtigste Maß für
MehrBinäre Gleitkommazahlen
Binäre Gleitkommazahlen Was ist die wissenschaftliche, normalisierte Darstellung der binären Gleitkommazahl zur dezimalen Gleitkommazahl 0,625? Grundlagen der Rechnerarchitektur Logik und Arithmetik 72
Mehrallgemeine Eigenschaften von Algorithmen (zur Erinnerung): Terminierung: Ergebnis liegt nach endlich vielen Schritten vor
Kapitel A := α ω λ Programmierung A.1 Programm und Algorithmus A.2 Algorithmusdarstellungen A.3 Eigenschaften von Algorithmen O 2007 Andreas Behrend Informatik I 1 Eigenschaften von Algorithmen (1) allgemeine
Mehr4. Übungsblatt zu Mathematik für Informatiker I, WS 2003/04
4. Übungsblatt zu Mathematik für Informatiker I, WS 2003/04 JOACHIM VON ZUR GATHEN, OLAF MÜLLER, MICHAEL NÜSKEN Abgabe bis Freitag, 14. November 2003, 11 11 in den jeweils richtigen grünen oder roten Kasten
MehrDatenstrukturen und Algorithmen
Datenstrukturen und Algorithmen VO 708.031 Bäume robert.legenstein@igi.tugraz.at 1 Inhalt der Vorlesung 1. Motivation, Einführung, Grundlagen 2. Algorithmische Grundprinzipien 3. Sortierverfahren 4. Halden
MehrWiederholung ADT Menge Ziel: Verwaltung (Finden, Einfügen, Entfernen) einer Menge von Elementen
Was bisher geschah abstrakter Datentyp : Signatur Σ und Axiome Φ z.b. ADT Menge zur Verwaltung (Finden, Einfügen, Entfernen) mehrerer Elemente desselben Typs Spezifikation einer Schnittstelle Konkreter
MehrGrundlagen der Informatik 2 (GdI2) - Algorithmen und Datenstrukturen -
Grundlagen der Informatik 2 (GdI2) - Algorithmen und Datenstrukturen - 2) Algorithmenanalyse Prof. Dr. Anja Schanzenberger FH Augsburg, Fakultät für Informatik Kontakt: anja.schanzenberger@hs-augsburg.de
MehrSkript zur Vorlesung Algorithmentheorie
Skript zur Vorlesung Algorithmentheorie Prof. Dr. Georg Schnitger WS 2010/11 Hinweise auf Fehler und Anregungen zum Skript bitte an matthias@thi.informatik.uni-frankfurt.de Mit einem Stern gekennzeichnete
MehrDr. Monika Meiler. Inhalt
Inhalt 4 Einführung in die Programmiersprache Java (Teil II)... 4-2 4.4 Strukturierte Programmierung... 4-2 4.4.1 Strukturierung im Kleinen... 4-2 4.4.2 Addierer (do-schleife)... 4-3 4.4.3 Ein- Mal- Eins
Mehr13. Binäre Suchbäume
1. Binäre Suchbäume Binäre Suchbäume realiesieren Wörterbücher. Sie unterstützen die Operationen 1. Einfügen (Insert) 2. Entfernen (Delete). Suchen (Search) 4. Maximum/Minimum-Suche 5. Vorgänger (Predecessor),
MehrProgrammieren ++ Begleitende Übungen zu Veranstaltungen + Umsetzen des Algorithmus in ein lauffähiges Programm
Studienanforderungen Studiengang Maschinenbau Programmieren Begleitende Übungen zu Veranstaltungen Umsetzen des Algorithmus in ein lauffähiges Programm Studiengang Bauingenieurwesen Programmieren Begleitende
MehrDatenstruktur, die viele Operationen dynamischer Mengen unterstützt
Algorithmen und Datenstrukturen 265 10 Binäre Suchbäume Suchbäume Datenstruktur, die viele Operationen dynamischer Mengen unterstützt Kann als Wörterbuch, aber auch zu mehr eingesetzt werden (Prioritätsschlange)
MehrMathematische Grundlagen der Kryptographie. 1. Ganze Zahlen 2. Kongruenzen und Restklassenringe. Stefan Brandstädter Jennifer Karstens
Mathematische Grundlagen der Kryptographie 1. Ganze Zahlen 2. Kongruenzen und Restklassenringe Stefan Brandstädter Jennifer Karstens 18. Januar 2005 Inhaltsverzeichnis 1 Ganze Zahlen 1 1.1 Grundlagen............................
MehrKap. 4.2: Binäre Suchbäume
Kap. 4.2: Binäre Suchbäume Professor Dr. Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, TU Dortmund 11. VO DAP2 SS 2009 26. Mai 2009 1 Zusätzliche Lernraumbetreuung Morteza Monemizadeh:
Mehr1. Probeklausur zu Programmierung 1 (WS 07/08)
Fachschaft Informatikstudiengänge Fachrichtung 6.2 Informatik Das Team der Bremser 1. Probeklausur zu Programmierung 1 (WS 07/08) http://fsinfo.cs.uni-sb.de Name Matrikelnummer Bitte öffnen Sie das Klausurheft
MehrHallo Welt für Fortgeschrittene
Hallo Welt für Fortgeschrittene Gierige Algorithmen Sarah Nuißl Informatik 2 Programmiersysteme Martensstraße 3 91058 Erlangen Gliederung Einführung Gierige Algorithmen vs. Dynamisches Programmieren Beispiele
Mehr