Algorithmen I. Prof. Jörn Müller-Quade. Übungen: Björn Kaidel, Sebastian Schlag und Sascha Witt
|
|
- Beate Martina Kästner
- vor 6 Jahren
- Abrufe
Transkript
1 Algorithmen I Prof. Jörn Müller-Quade Übungen: Björn Kaidel, Sebastian Schlag und Sascha Witt Institut für theoretische Informatik Web: (Folien von Peter Sanders) KIT Institut für Theoretische Informatik 1
2 Organisatorisches Vorlesungen: Saalübung: Mo: 15:4517:15 Mi: 14:0014:45 Mi: 14:4515:30 Tutorium: wöchentlich, ab nächster Woche Einteilung mittels Webinscribe Übungsblätter: wöchentlich Ausgabe Montag (spätestens nach der Vorlesung) Abgabe Dienstag 12:45 Uhr (8 Tage nach Ausgabe) KIT Institut für Theoretische Informatik 2
3 Organisatorisches Sprechstunde: Montag, Uhr Prof. Jörn Müller-Quade, Raum 268, Geb Mittsemesterklausur: zur Kontrolle Abschlussklausur: , 100% der Note nächste Versuchsmöglichkeit: nach dem WS 17/18 KIT Institut für Theoretische Informatik 3
4 Materialien Folien, Übungsblätter Diskussionsforum: Link siehe Homepage Buch: K. Mehlhorn, P. Sanders Algorithms and Data Structures The Basic Toolbox Taschenbuch der Algorithmen Springer 2008 (Unterhaltung / Motivation) KIT Institut für Theoretische Informatik 4
5 Weitere Bücher Algorithmen - Eine Einführung von Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, und Cliord Stein von Oldenbourg Algorithmen und Datenstrukturen von Thomas Ottmann und Peter Widmayer von Spektrum Akademischer Verlag Algorithmen kurz gefasst von Uwe Schöning von Spektrum Akad. Vlg., Hdg. KIT Institut für Theoretische Informatik 5
6 Übungen Übungen Siehe Extra-Folien KIT Institut für Theoretische Informatik 6
7 Algorithmus? Kann man das essen? Pseudogriechische Verballhornung eines Namens, der sich aus einer Landschaftsbezeichnung ableitet: Al-Khwarizmi war persischer/usbekischer Wissenschaftler (aus Khorasan) aber lebte in Bagdad Machtzentrum des arabischen Kalifats auf seinem Höhepunkt. Er hat ein Rechenlehrbuch geschrieben. Algorithmus wurde zum Synonym für Rechenvorschrift. Unter einem Algorithmus versteht man eine genau denierte Handlungsvorschrift zur Lösung eines Problems oder einer bestimmten Art von Problemen in endlich vielen Schritten. KIT Institut für Theoretische Informatik 7
8 Algorithmik Kerngebiet der (theoretischen) Informatik mit direktem Anwendungsbezug Informatik theoretische Algorithmik Logik effiziente Soft u. Hardware korrekte praktische KIT Institut für Theoretische Informatik 8
9 Datenstruktur Ein Algorithmus bearbeitet Daten. Wenn ein Teil dieser Daten eine (interessante) Struktur haben, nennen wir das Datenstruktur. Immer wiederkehrende Datenstrukturen und dazugehörige Algorithmenteile wichtige Grundwerkzeuge (Basic Toolbox) KIT Institut für Theoretische Informatik 9
10 Themenauswahl: Werkzeugkasten Immer wieder benötigte Datenstrukturen Algorithmen Entwurfstechniken neue Algorithmen Analysetechniken Leistungsgarantien, objektiver Algorithmenvergleich Jeder Informatiker braucht das Pichtvorlesung KIT Institut für Theoretische Informatik 10
11 Inhaltsübersicht 1. Amuse Geule Appetithäppchen 2. Einführung der Werkzeugkasten für den Werkzeugkasten 3. Folgen, Felder, Listen Mütter und Väter aller Datenstrukturen 4. Hashing Chaos als Ordnungsprinzip 5. Sortieren Ezienz durch Ordnung 6. Prioritätslisten immer die Übersicht behalten 7. Sortierte Liste die eierlegende Wollmilchsau 8. Graphrepräsentation Beziehungen im Gri haben 9. Graphtraversierung globalen Dingen auf der Spur 10. Kürzeste Wege schnellstens zum Ziel 11. Minimale Spannbäume immer gut verbunden 12. Optimierung noch mehr Entwurfsmethoden KIT Institut für Theoretische Informatik 11
12 Amuse Geule Beispiel: Langzahl-Multiplikation Schreibe Zahlen als Ziernfolgen a = (a n 1...a 0 ), a i 0..B 1. Wir zählen Volladditionen: (c,s):= a i +b j +c Beispiel (B = 10): = (1,9) Ziernmultiplikationen: (p,p):= a i b j Beispiel (B = 10): 9 9 = (8,1) KIT Institut für Theoretische Informatik 12
13 Addition c=0 : Digit // carry / Überlauf for i := 0 to n 1 do (c,s i ):= a i + b i + c s n := c a b 0 c n 0 s Satz: Addition von n-ziern-zahlen braucht n Ziern-Additionen. KIT Institut für Theoretische Informatik 13
14 Beispiel c=0 : Digit // carry / Überlauf for i := 0 to n 1 do (c,s i ):= a i + b i + c s n := c a b c s KIT Institut für Theoretische Informatik 14
15 Exkurs: Pseudocode Kein C/C++/Java Eher Pascal + Mathe begin/end Zuweisung: := Kommentar: // Ausdrücke: volle Mathepower Deklarationen: c=0 : Digit Tupel: (c,s i ):= a i + b i + c Schleifen: for, while, repeat...until,... Menschenlesbarkeit vor Maschinenlesbarkeit Einrückung trägt Bedeutung {i 2 : a,b 2 : i = ab} uvam: Buch Abschnitt 2.3, hier: just in time und on demand if, Datentypen, Klassen, Speicherverwaltung KIT Institut für Theoretische Informatik 15
16 Exkurs vom Exkurs: Wieso nicht C++/Java-like? Klare Unterscheidung von Programmcode viele redundante ()[]; C for ist sehr low level == ist unschön während := für Zuweisung klarer ist C Logik/Bitoperatoren sind kryptischer als etc. Wir verwendenen C++/Java-Notation wo dies sinnvoll ist // + +, + = = Mathenotation ist oft mächtiger KIT Institut für Theoretische Informatik 16
17 Ziernmultiplikation Function numbertimesdigit(a : Array [0..n 1] of Digit, b : Digit) low(ab) high(ab) 0 c n 0 result KIT Institut für Theoretische Informatik 17
18 Beispiel numbertimesdigit(256, 4) low(ab) high(ab) c result KIT Institut für Theoretische Informatik 18
19 Ziernmultiplikation Function numbertimesdigit(a : Array [0..n 1] of Digit, b : Digit) result : Array [0..n] of Digit c=0 : Digit // carry / Überlauf (h,l):= a[0] b // Ziffernmultiplikation result[0]:= l for i := 1 to n 1 do // n 1 Iterationen (h, l):= a[i] b // Ziffernmultiplikation (c,result[i]):= c + h + l // Ziffernaddition h := h result[n]:= c + h // Ziffernaddition, kein Überlauf?! return result Analyse: 1 + (n 1) = n Multiplikationen, (n 1) + 1 = n Additionen KIT Institut für Theoretische Informatik 19
20 Schulmultiplikation p=0 : N for j := 0 to n 1 do // Langzahladdition, Langzahl mal Ziffer, Schieben: p:= p + a b[j] B j // Langzahl 2n 1 n 0 a ab ab 2 b 0 ab n 1 n 1 n p KIT Institut für Theoretische Informatik 20
21 Schulmultiplikation Beispiel p=0 : N for j := 0 to n 1 do // Langzahladdition, Langzahl mal Ziffer, Schieben: p:= p + a b[j] B j // Langzahl * a 2 ab b p KIT Institut für Theoretische Informatik 21
22 Schulmultiplikation Analyse p=0 : N for j := 0 to n 1 do p:= p // n + j Ziffern (außer bei j = 0) + // n + 1 Ziffernadditionen (optimiert) a b[j] // je n Additionen/Multiplikationen B j // schieben (keine Ziffernarithmetik) Insgesamt: n 2 Multiplikationen n 2 + (n 1)(n + 1) = 2n 2 1 Additionen 3n 2 1 3n 2 Ziernoperationen KIT Institut für Theoretische Informatik 22
23 Exkurs O-Kalkül, die Erste O(f (n)) = {g(n) : c > 0 : n 0 N + : n n 0 : g(n) c f (n)} Idee: Konstante Faktoren (und Anfangsstück) ausblenden + Operationen zählen Laufzeit welche Ops.? + Rechnungen vereinfachen + Interpretation vereinfachen? Werfen wir zuviel Information weg? Beispiel: Schulmultiplikation braucht Zeit O ( n 2) KIT Institut für Theoretische Informatik 23
24 Ein rekursiver Algorithmus Function recmult(a, b) assert a und b haben n Ziern, sei k = n/2 if n = 1 then return a b Schreibe a als a 1 B k + a 0 Schreibe b als b 1 B k + b 0 return recmult(a 1,b 1 ) B 2k + (recmult(a 0,b 1 )+recmult(a 1,b 0 )) B k + recmult(a 0,b 0 ) KIT Institut für Theoretische Informatik 24
25 Beispiel = ( ) = KIT Institut für Theoretische Informatik 25
26 Analyse Function recmult(a, b) assert a und b haben n Ziern, sei k = n/2 if n = 1 then return a b Schreibe a als a 1 B k + a 0 Schreibe b als b 1 B k + b 0 return // T (n) Ops // 1 Op // 0 Ops // 0 Ops recmult(a 1,b 1 ) B 2k + // T (n/2) + 2n Ops (recmult(a 0,b 1 )+recmult(a 1,b 0 ))B k + // 2T (n/2) + 2n Ops recmult(a 0,b 0 ) // T (n/2) + 2n Ops Also T (n) 4T (n/2) + 6n KIT Institut für Theoretische Informatik 26
27 Analyse T (n) (Master-Theorem, stay tuned) T (n) Θ (n ) log 2 4 O ( n 2) { 1 if n = 1, 4 T ( n/2 ) + 6 n if n 2. Aufgabe: Zeigen Sie durch vollständige Induktion, dass T (n) 7n 2 6n, falls n eine Zweierpotenz ist KIT Institut für Theoretische Informatik 27
28 Exkurs: Algorithmen-Entwurfsmuster Im Buch: siehe auch Index! Schleife: z. B. Addition Unterprogramm: z. B. Ziernmultiplikation, Addition Teile und Herrsche: (lat. divide et impera, engl. divide and conquer) Aufteilen in eins oder mehrere, kleinere Teilprobleme, oft rekursiv Es kommen noch mehr: greedy, dynamische Programmierung, Metaheuristiken, Randomisierung,... KIT Institut für Theoretische Informatik 28
29 Karatsuba-Ofman Multiplikation[1962] Beobachtung: (a 1 + a 0 )(b 1 + b 0 ) = a 1 b 1 + a 0 b 0 + a 1 b 0 + a 0 b 1 Function recmult(a, b) assert a und b haben n Ziern, sei k = n/2 if n = 1 then return a b Schreibe a als a 1 B k + a 0 Schreibe b als b 1 B k + b 0 c 11 := recmult(a 1,b 1 ) c 00 := recmult(a 0,b 0 ) return c 11 B 2k + (recmult((a 1 + a 0 ),(b 1 + b 0 )) c 11 c 00 )B k +c 00 KIT Institut für Theoretische Informatik 29
30 Beispiel = ((10 + 1) ( ) ) = KIT Institut für Theoretische Informatik 30
31 Analyse T (n) (Master-Theorem) { 1 if n = 1, T (n) = Θ (n ) log 2 3 Θ ( n 1.58) 3 T ( n/2 ) + 10 n if n 2. KIT Institut für Theoretische Informatik 31
32 Algorithm Engineering was hat das mit der Praxis zu tun? design analyze Algorithmics implement experiment KIT Institut für Theoretische Informatik 32
33 Algorithmentheorie (Karikatur) models design Theory Practice analysis perf. guarantees deduction implementation applications KIT Institut für Theoretische Informatik 33
34 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 KIT Institut für Theoretische Informatik 34
Algorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Wintersemester 2012/13 Organisatorisches Vorlesung: Übungsbetreuung: Übungen: Programmierübungen: Alexander Wolff (E29) Jan Haunert (E27) Markus Ankenbrand Titus Dose Alexej
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 */)
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
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
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
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
MehrInformatikgrundlagen (WS 2015/2016)
Informatikgrundlagen (WS 2015/2016) Klaus Berberich (klaus.berberich@htwsaar.de) Wolfgang Braun (wolfgang.braun@htwsaar.de) 0. Organisatorisches Dozenten Klaus Berberich (klaus.berberich@htwsaar.de) Sprechstunde
MehrAlgorithmen und Berechnungskomplexität I
Institut für Informatik I Wintersemester 2010/11 Organisatorisches Vorlesung Montags 11:15-12:45 Uhr (AVZ III / HS 1) Mittwochs 11:15-12:45 Uhr (AVZ III / HS 1) Dozent Professor für theoretische Informatik
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
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
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
MehrAlgorithmen mit Python
Algorithmen mit Python Vorbesprechung zum Proseminar im Sommersemester 2009 http://www.python.org 1 Sie lernen in DAP Java und C/C++: 80% Syntax, 20% Algorithmen-Design Idee Schon ein einfaches Hello World
MehrKapitel 0: Organisatorisches
Einführung in die Praktische Informatik Wintersemester 2009 / 2010 Kapitel 0: Organisatorisches Prof. Dr. Manfred Reichert Andreas Lanz, Rüdiger Pryss Universität Ulm Institut für Datenbanken und Informationssysteme
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
MehrÜ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
MehrProgrammieren I + II
Programmieren I + II Werner Struckmann Institut für Programmierung und Reaktive Systeme Wintersemester 2015/2016 Sommersemester 2016 Was ist Informatik? Die Informatik ist die Wissenschaft von Aufbau,
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
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
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!
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
MehrÜbersicht. Schleifen. Schleifeninvarianten. Referenztypen, Wrapperklassen und API. 9. November 2009 CoMa I WS 08/09 1/15
Übersicht Schleifen Schleifeninvarianten Referenztypen, Wrapperklassen und API CoMa I WS 08/09 1/15 CoMa I Programmierziele Linux bedienen Code umschreiben strukturierte Datentypen Anweisungen und Kontrollstrukturen
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
MehrVBA-Programmierung: Zusammenfassung
VBA-Programmierung: Zusammenfassung Programmiersprachen (Definition, Einordnung VBA) Softwareentwicklung-Phasen: 1. Spezifikation 2. Entwurf 3. Implementierung Datentypen (einfach, zusammengesetzt) Programmablaufsteuerung
MehrDatenstrukturen und Algorithmen
Datenstrukturen und Algorithmen Sommersemester 2013 1 1 O. Einführung 0.1 Organisatorisches 0.2 Überblick 2 0.1 Organisatorisches DSAL Team Veranstaltungen & Termine Kommunikation Materialien Übungsbetrieb
MehrOrganisatorisches. Informatik II Informationen und Daten. Organisatorisches. Organisatorisches. Rainer Schrader. 13. Oktober 2008
Dozent: Prof. Dr. Rainer Schrader Informatik II Informationen und Daten Rainer Schrader Zentrum für Angewandte Informatik Köln 13. Oktober 2008 Tel.: 470-6030 email: schrader@zpr.uni-koeln.de Sprechstunde:
MehrEinführung in die Informatik für Hörer aller Fakultäten II. Andreas Podelski Stephan Diehl Uwe Waldmann
Einführung in die Informatik für Hörer aller Fakultäten II Andreas Podelski Stephan Diehl Uwe Waldmann 1 Einführung in die Informatik für Hörer aller Fakultäten II Andreas Podelski Stephan Diehl Uwe Waldmann
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.
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
MehrDas Knapsack-Kryptosystem
Das Knapsack-Kryptosystem Frank Hellweg 21. Februar 2006 1 Einleitung Das Knapsack-Kryptosystem wurde 1978 von den amerikanischen Kryptologen Martin Hellman und Ralph Merkle entwickelt [MH78] und war eines
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
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)
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
MehrProgrammieren I + II
Programmieren I + II Werner Struckmann Institut für Programmierung und Reaktive Systeme Wintersemester 2012/2013 Sommersemester 2013 Was ist Informatik? Die Informatik ist die Wissenschaft von Aufbau,
MehrWirtschaftsinformatik I
Wirtschaftsinformatik I - Tutorium 6/ 7 (April 2010) Zusatzinformationen - Lösungsvorschläge Wirtschaftsinformatik I Tutorium Jochen Daum (4.Semester BWL) Universität Mannheim Rechtshinweis: Diese Präsentation
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,
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
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
MehrAnalysis I. Einige Bemerkungen zum Beginn... R. Haller-Dintelmann Analysis I
Analysis I Einige Bemerkungen zum Beginn... Termine Vorlesung Di., 09:50 11:30 S2 07/109 Do., 09:50 11:30 S2 17/103 Übung Mi., 08:00 09:40 S1 02/36 Mi., 09:50 11:30 S1 03/313 Mi., 09:50 11:30 S1 02/34
MehrTheorie der Informatik
Theorie der Informatik 0. Organisatorisches Malte Helmert Gabriele Röger Universität Basel 16. Februar 2015 Organisatorisches Personen Dozenten Prof. Dr. Malte Helmert E-Mail: malte.helmert@unibas.ch Büro:
MehrVorlesung: Montag 8:15-10:00 Donnerstag 8:15-10:00 Hörsaal: M 1 M 1
Begrüßung Informatik II Vorlesung: Montag 8:15-10:00 Donnerstag 8:15-10:00 Hörsaal: M 1 M 1 Übung: Dozent: Prof. Dr. Klaus Hinrichs Institut für Informatik Einsteinstr. 62 6. Stock, Raum 606 khh@uni-muenster.de
MehrDatenstrukturen. Mariano Zelke. Sommersemester 2012
Datenstrukturen Mariano Zelke Sommersemester 2012 Mathematische Grundlagen: Das Handwerkszeug Mariano Zelke Datenstrukturen 2/26 Formeln: n - i = n (n+1) 2 und - i=1 k i=0 a i = ak+1 1 a 1, falls a 1 Rechnen
MehrNoch für heute: primitive Datentypen in JAVA. Primitive Datentypen. Pseudocode. Dezimal-, Binär- und Hexadezimalsystem. der logische Typ boolean
01.11.05 1 Noch für heute: 01.11.05 3 primitie Datentypen in JAVA Primitie Datentypen Pseudocode Name Speichergröße Wertgrenzen boolean 1 Byte false true char 2 Byte 0 65535 byte 1 Byte 128 127 short 2
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
MehrKapitel 4: Dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2012/13. Prof. Dr. Sándor Fekete
Kapitel 4: Dynamische Datenstrukturen Algorithmen und Datenstrukturen WS 2012/13 Prof. Dr. Sándor Fekete 4.4 Binäre Suche Aufgabenstellung: Rate eine Zahl zwischen 100 und 114! Algorithmus 4.1 INPUT: OUTPUT:
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
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
MehrProgrammierung 2. Organisatorisches. Sebastian Hack. Klaas Boesche. Sommersemester 2012. hack@cs.uni-saarland.de. boesche@cs.uni-saarland.
1 Programmierung 2 Organisatorisches Sebastian Hack hack@cs.uni-saarland.de Klaas Boesche boesche@cs.uni-saarland.de Sommersemester 2012 2 Wer sind wir? Dozent Assistent Sebastian Hack Gebäude E1 3 Raum
MehrIT-Studiengänge an der
IT-Studiengänge an der Universität Hildesheim Informationsmanagement und Informationstechnologie (IMIT) und Wirtschaftsinformatik (Winf) Begrüssung zum Sommersemester 2011 Vorab Folien werden im Web unter
MehrGraphenalgorithmen und lineare Algebra Hand in Hand Vorlesung für den Bereich Diplom/Master Informatik
Vorlesung für den Bereich Diplom/Master Informatik Dozent: Juniorprof. Dr. Henning Meyerhenke PARALLELES RECHNEN INSTITUT FÜR THEORETISCHE INFORMATIK, FAKULTÄT FÜR INFORMATIK KIT Universität des Landes
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
Mehr1. Grundlagen... 2. 2. Sortieren... 6. 1.1. Vertauschen... 13. 1.2. Selektion... 16. 1.3. Einfügen... 19. 1.4. Quicksort... 22. 3. Suchen...
Suchen und Sortieren In diesem Kapitel behandeln wir Algorithmen zum Suchen und Sortieren Inhalt 1. Grundlagen... 2 2. Sortieren... 6 1.1. Vertauschen... 13 1.2. Selektion... 16 1.3. Einfügen... 19 1.4.
MehrAlgorithmen und Datenstrukturen Einführung
Algorithmen und Datenstrukturen Einführung Matthias Teschner Graphische Datenverarbeitung Institut für Informatik Universität Freiburg SS 12 Motivation Einführung in die Begriffe Algorithmus Datenstruktur
MehrII. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java:
Technische Informatik für Ingenieure (TIfI) WS 2005/2006, Vorlesung 9 II. Grundlagen der Programmierung Ekkart Kindler Funktionen und Prozeduren Datenstrukturen 9. Datenstrukturen Daten zusammenfassen
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?
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
MehrEine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder
Programmieren in PASCAL Bäume 1 1. Baumstrukturen Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder 1. die leere Struktur oder 2. ein Knoten vom Typ Element
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:
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
Mehr3.1 Konstruktion von minimalen Spannbäumen Es gibt zwei Prinzipien für die Konstruktion von minimalen Spannbäumen (Tarjan): blaue Regel rote Regel
3.1 Konstruktion von minimalen Spannbäumen Es gibt zwei Prinzipien für die Konstruktion von minimalen Spannbäumen (Tarjan): blaue Regel rote Regel EADS 3.1 Konstruktion von minimalen Spannbäumen 16/36
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,
MehrAlgorithmische Methoden zur Netzwerkanalyse
Algorithmische Methoden zur Netzwerkanalyse Juniorprof. Dr. Henning Meyerhenke Institut für Theoretische Informatik 1 KIT Henning Universität desmeyerhenke, Landes Baden-Württemberg Institutund für Theoretische
MehrLehrstuhl Informatik VI Grundzüge der Informatik * WS 2008/2009 Prof. Dr. Joachim Biskup
Universität Dortmund Lehrstuhl Informatik VI Grundzüge der Informatik * WS 28/29 Prof. Dr. Joachim Biskup Leitung der Übungen: Arno Pasternak Lösungs-Ideen Übungsblatt 6 A: Grammatiken, Syntaxdiagramme
MehrData Warehousing. Sommersemester 2005. Ulf Leser Wissensmanagement in der Bioinformatik
Data Warehousing Sommersemester 2005 Ulf Leser Wissensmanagement in der Bioinformatik ... Der typische Walmart Kaufagent verwendet täglich mächtige Data Mining Werkzeuge, um die Daten der 300 Terabyte
MehrBreiten- und Tiefensuche in Graphen
Breiten- und Tiefensuche in Graphen Inhalt Theorie. Graphen. Die Breitensuche in der Theorie am Beispiel eines ungerichteten Graphen. Die Tiefensuche in der Theorie am Beispiel eines gerichteten Graphen
MehrEinführung in Computer Microsystems
Einführung in Computer Microsystems Kapitel 9 Entwurf eines eingebetteten Systems für Anwendungen in der IT-Sicherheit Prof. Dr.-Ing. Sorin A. Huss Fachbereich Informatik Integrierte Schaltungen und Systeme
MehrAlgorithms & Datastructures Midterm Test 1
Algorithms & Datastructures Midterm Test 1 Wolfgang Pausch Heiko Studt René Thiemann Tomas Vitvar
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
MehrDas Briefträgerproblem
Das Briefträgerproblem Paul Tabatabai 30. Dezember 2011 Inhaltsverzeichnis 1 Problemstellung und Modellierung 2 1.1 Problem................................ 2 1.2 Modellierung.............................
MehrBinäre Suchbäume (binary search trees, kurz: bst)
Binäre Suchbäume (binary search trees, kurz: bst) Datenstruktur zum Speichern einer endlichen Menge M von Zahlen. Genauer: Binärbaum T mit n := M Knoten Jeder Knoten v von T ist mit einer Zahl m v M markiert.
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
MehrEntwurf von Algorithmen - Kontrollstrukturen
Entwurf von Algorithmen - Kontrollstrukturen Eine wichtige Phase in der Entwicklung von Computerprogrammen ist der Entwurf von Algorithmen. Dieser Arbeitsschritt vor dem Schreiben des Programmes in einer
MehrÜbung Info A. http://www.is.informatik.uni-duisburg.de. Übungsleiter. Informationen (Sprechstunden, Kontaktdaten): André Schaefer Gudrun Fischer
Übung Info A Übungsleiter André Schaefer Gudrun Fischer Informationen (Sprechstunden, Kontaktdaten): http://www.is.informatik.uni-duisburg.de Ziele der Übung Vertiefung der Inhalte der Vorlesung Praktische
MehrPunktbeschriftung in Dynamischen Karten
Vorlesung Algorithmische Kartografie INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Benjamin Niedermann Martin Nöllenburg 28.05.2015 1 Übungen Nachtrag 1) Überlegen Sie sich, wie man den
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
MehrÜbung zur Vorlesung Einführung in die Computerlinguistik und Sprachtechnologie
Übung zur Vorlesung Einführung in die Computerlinguistik und Sprachtechnologie Wintersemester 2009/10, Prof. Dr. Udo Hahn, Erik Fäßler Übungsblatt 3 vom 19.11.2009 Abgabe bis 26.11.2009, 14:30 Uhr; per
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
MehrProgrammierung für Mathematik (HS13)
software evolution & architecture lab Programmierung für Mathematik (HS13) Übung 5 1 Aufgabe: Eclipse IDE 1.1 Lernziele 1. Die Entwicklungsumgebung Eclipse einrichten. 2. Eclipse kennen lernen und mit
MehrLogik und diskrete Strukturen
Prof. Dr. Institut für Informatik Abteilung I Wintersemester 2012/13 Organisatorisches Vorlesung Dienstag und Donnerstag 10:15 11:45 Uhr (HS 1) und 12:30 14:00 Uhr (HS 2) Vorlesung am Vormittag = Vorlesung
MehrProjektpraktikum: Verteilte Datenverarbeitung mit MapReduce
Projektpraktikum: Verteilte Datenverarbeitung mit MapReduce Timo Bingmann, Peter Sanders und Sebastian Schlag 21. Oktober 2014 @ PdF Vorstellung INSTITUTE OF THEORETICAL INFORMATICS ALGORITHMICS KIT Universität
MehrKontrollstrukturen, Pseudocode und Modulo-Rechnung
Kontrollstrukturen, Pseudocode und Modulo-Rechnung CoMa-Übung III TU Berlin 29.10.2012 CoMa-Übung III (TU Berlin) Kontrollstrukturen, Pseudocode und Modulo-Rechnung 29.10.2012 1 / 1 Themen der Übung 1
MehrEvolutionäre Algorithmen. SS 2015 Woche 01
Evolutionäre Algorithmen SS 2015 Woche 01 Inhalt Organisation der Übung Wiederholung Die Komponenten eines EA Zwei Minimal-Beispiele Besprechung des Übungsblatts Das Team Vorlesung Prof. Dr.-Ing. habil.
MehrEinführung in die Programmierung
: Inhalt Einführung in die Programmierung Wintersemester 2010/11 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund Wiederholungen - while - do-while - for
MehrTutorium Algorithmen & Datenstrukturen
June 16, 2010 Binärer Baum Binärer Baum enthält keine Knoten (NIL) besteht aus drei disjunkten Knotenmengen: einem Wurzelknoten, einem binären Baum als linken Unterbaum und einem binären Baum als rechten
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
MehrVorlesung 3 MINIMALE SPANNBÄUME
Vorlesung 3 MINIMALE SPANNBÄUME 72 Aufgabe! Szenario: Sie arbeiten für eine Firma, die ein Neubaugebiet ans Netz (Wasser, Strom oder Kabel oder...) anschließt! Ziel: Alle Haushalte ans Netz bringen, dabei
MehrGliederung. Tutorium zur Vorlesung. Gliederung. Gliederung. 1. Gliederung der Informatik. 1. Gliederung der Informatik. 1. Gliederung der Informatik
Informatik I WS 2012/13 Tutorium zur Vorlesung 1. Alexander Zietlow zietlow@informatik.uni-tuebingen.de Wilhelm-Schickard-Institut für Informatik Eberhard Karls Universität Tübingen 11.02.2013 1. 2. 1.
MehrUndirected Single-Source Shortest Paths with Positive Integer Weights in Linear Time
Universität Konstanz Mathematisch-naturwissenschaftliche Sektion Fachbereich Mathematik und Statistik Wintersemester 2001/02 Mikkel Thorup: Undirected Single-Source Shortest Paths with Positive Integer
MehrFrühjahr. Erste Staatsprüfung für ein Lehramt an öffentlichen Schulen. Prüfungsteilnehmer Prüfungstermin Einzelprüfungsnummer. - Prüfungsaufgaben -
Prüfungsteilnehmer Prüfungstermin Einzelprüfungsnummer Kennzahl: Kennwort: Arbeitsplatz-Nr.: Frühjahr 2000 46114 Erste Staatsprüfung für ein Lehramt an öffentlichen Schulen - Prüfungsaufgaben - Fach: Einzelprüfung:
MehrSuchen in Listen und Hashtabellen
Kapitel 12: Suchen in Listen und Hashtabellen Einführung in die Informatik Wintersemester 2007/08 Prof. Bernhard Jung Übersicht Einleitung Lineare Suche Binäre Suche (in sortierten Listen) Hashverfahren
MehrMethodische Grundlagen des Software Engineering - Übung 9
Engineering - Übung 9 9 Prozess und Softwarequalität Abgabe der Hausaufgaben am Anfang der jeweiligen Präsenzübung am 14.06.2011 bzw. 15.06.2011. Hinweise und Kontakt: Veranstaltungsseite 1 9.1 Grundlagen
MehrModul 122 VBA Scribt.docx
Modul 122 VBA-Scribt 1/5 1 Entwicklungsumgebung - ALT + F11 VBA-Entwicklungsumgebung öffnen 2 Prozeduren (Sub-Prozeduren) Eine Prozedur besteht aus folgenden Bestandteilen: [Private Public] Sub subname([byval
MehrMultimedia im Netz Wintersemester 2011/12
Multimedia im Netz Wintersemester 2011/12 Übung 01 Betreuer: Verantwortlicher Professor: Sebastian Löhmann Prof. Dr. Heinrich Hussmann Organisatorisches 26.10.2011 MMN Übung 01 2 Inhalte der Übungen Vertiefung
Mehr8 Diskrete Optimierung
8 Diskrete Optimierung Definition 8.1. Ein Graph G ist ein Paar (V (G), E(G)) besteh aus einer lichen Menge V (G) von Knoten (oder Ecken) und einer Menge E(G) ( ) V (G) 2 von Kanten. Die Ordnung n(g) von
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
MehrLangenscheidt Training plus, Mathe 6. Klasse
Langenscheidt Training plus - Mathe Langenscheidt Training plus, Mathe 6. Klasse Bearbeitet von Uwe Fricke 1. Auflage 13. Taschenbuch. ca. 128 S. Paperback ISBN 978 3 68 60073 9 Format (B x L): 17,1 x
MehrVorlesung C-Kurs 9:15-10:45 Mathe 11:15-12:45 1. Woche Hörsaal 1 2. Woche Hörsaal 7
Vorlesung C-Kurs 9:15-10:45 Mathe 11:15-12:45 1. Woche Hörsaal 1 2. Woche Hörsaal 7 Seminare / Praktikum M1/C1 : Mathe 13:15-14:45, C-Kurs 15:15-16:45h M2/C2 : C-Kurs 13:15-14:45, Mathe 15:15-16:45h M*
MehrVerträge für die funktionale Programmierung Design und Implementierung
1 Verträge für die funktionale Programmierung Design und Implementierung RALF HINZE Institut für Informatik III, Universität Bonn Römerstraße 164, 53117 Bonn, Germany Email: ralf@informatik.uni-bonn.de
MehrAlgorithmentheorie. 13 - Maximale Flüsse
Algorithmentheorie 3 - Maximale Flüsse Prof. Dr. S. Albers Prof. Dr. Th. Ottmann . Maximale Flüsse in Netzwerken 5 3 4 7 s 0 5 9 5 9 4 3 4 5 0 3 5 5 t 8 8 Netzwerke und Flüsse N = (V,E,c) gerichtetes Netzwerk
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
Mehr