12. Übung Algorithmen I

Ähnliche Dokumente
INSTITUT FÜR THEORETISCHE INFORMATIK, PROF. SANDERS

11. Übung Algorithmen I

1. Übung Algorithmen I

INSTITUT FÜR THEORETISCHE INFORMATIK, PROF. SANDERS

9. Übung Algorithmen I

4. Übung zu Algorithmen I 17. Mai 2017

INSTITUT FÜR THEORETISCHE INFORMATIK, PROF. SANDERS

Konvexe Hülle. Abbildung: [Wikipedia]: Nicht-konvexe Menge (links), konvexe Menge (rechts) KIT Institut für Theoretische Informatik 510

Übungsklausur Algorithmen I

3. Übung Algorithmen I

Karlsruher Institut für Technologie. Klausur Algorithmen I

Algorithmen 1 Tutorium

7. Übung Algorithmen I

NAME, VORNAME: Studiennummer: Matrikel:

Karlsruher Institut für Technologie Institut für Theoretische Informatik. Übungsklausur Algorithmen I

Algorithmen und Datenstrukturen

Carlos Camino Grundlagen: Algorithmen und Datenstrukturen SS 2015

Informatik II, SS 2014

DAP2-Klausur

Karlsruher Institut für Technologie Institut für Theoretische Informatik. Klausur Algorithmen I

Datenstrukturen und Algorithmen 2. Klausur SS 2001

Matrikelnummer: Klausur Algorithmen I, Blatt 1 von 16

4. Übung Algorithmen I

Inhaltsübersicht. Vorwort 15. Vorwort zur deutschen Ausgabe 22. Kapitel 1 Elemente der Programmierung 25. Kapitel 2 Funktionen und Module 203


Inhaltsverzeichnis. Teil 1 Grundlagen 21. Teil 2 Datenstrukturen 85

Übung Algorithmen I

10. Übung Algorithmen I

Übungsklausur Algorithmen I

Algorithmen I - Tutorium 28 Nr. 2

Übungsklausur Algorithmen I

Datenstrukturen und Algorithmen (SS 2013) Prof. Dr. Leif Kobbelt Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer

3. Übung Algorithmen I

Willkommen zur Vorlesung. Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Tafelübung 14. Jens Wetzl 8. Februar 2012

Algorithmen und Datenstrukturen

Informatik II Prüfungsvorbereitungskurs

Klausur Algorithmen und Datenstrukturen

Datenstrukturen (SoSe 12) Klausur (Modulabschlussprüfung)

Übung Algorithmen I

Inhaltsverzeichnis. Einführende Bemerkungen 11. Das Fach Informatik 11 Zielsetzung der Vorlesung Grundbegriffe

Algorithmen und Datenstrukturen 12

Algorithmen und Datenstrukturen 1 VU 6.0 Nachtragstest SS Oktober 2014

Robert Sedgewick. Algorithmen in Java. »il 1-4 Grundlagen Datenstrykturen Sortleren Suchen. java-beratung durch Michael Schidlowsky

8. Übung Algorithmen I

Algorithmen I. Prof. Jörn Müller-Quade Institut für Theoretische Informatik Web:

Diskrete Strukturen Kapitel 4: Graphentheorie (Bäume)

Inhaltsverzeichnis. 7.9 Aufgaben...207

9 Minimum Spanning Trees

Klausur Algorithmen und Datenstrukturen SS August Arbeitszeit 90 min

Übung Algorithmen I

Heapsort / 1 A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8]

Algorithmen und Datenstrukturen (für ET/IT)

Alle bislang betrachteten Sortieralgorithmen hatten (worst-case) Laufzeit Ω(nlog(n)).

Informatik II: Algorithmen & Datenstrukturen. Blättern Sie nicht um bevor Sie dazu aufgefordert werden!

Robert Sedgewick. Algorithmen in Java. Teil 1-4 Grundlagen Datenstrukturen Sortieren Suchen. Java-Beratung durch Michael Schidlowsky

Humboldt-Universität zu Berlin Berlin, den Institut für Informatik

Algorithmen I - Tutorium 28 Nr. 12

Datenstrukturen und Algorithmen (SS 2013)

Übung: Algorithmen und Datenstrukturen SS 2007

2. Klausur Datenstrukturen und Algorithmen SS 2014

Inhaltsverzeichnis. Teil 1 Grundlagen 23

Name:... Vorname:... Matr.-Nr.:... Studiengang:...

Themenübersicht Verwendung im Studium Voraussetzungen Ziele Website zum Buch Danksagungen... 21

8. A & D - Heapsort. Werden sehen, wie wir durch geschicktes Organsieren von Daten effiziente Algorithmen entwerfen können.

8. Übung zu Algorithmen I 15. Juni 2016

Informatik II Prüfungsvorbereitungskurs

Informatik II Vorlesung am D-BAUG der ETH Zürich

Graphen. Definitionen

Datenstrukturen und Algorithmen

Klausur Algorithmen und Datenstrukturen

Klausur Informatik B April Teil I: Informatik 3

Algorithmen und Datenstrukturen

Datenstrukturen & Algorithmen

Transkript:

12. Ü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 12. Übung Algorithmen I nationales Forschungszentrum in der Helmholtz-Gemeinschaft Fakultät für Informatik Institut für Theoretische www.kit.edu Informatik

Inhalt Organisatorisches Klausur Programmierwettbewerb Übersicht der Übungen 2 Timo Bingmann, Christian Schulz 12. Übung Algorithmen I Fakultät für Informatik Institut für Theoretische Informatik

Organisatorisches Klausuranmeldung Klausuranmeldung bis einschließlich 22.7.2013 Bei Problemen mit der Anmeldung: zwei Emails: E-Mail an beratung-informatik@informatik.kit.edu (mit uns im CC). E-Mail an Studienbüro (mit uns im CC). 3 Timo Bingmann, Christian Schulz 12. Übung Algorithmen I Fakultät für Informatik Institut für Theoretische Informatik

Organisatorisches Handbeschriebenes Merkblatt Ein A4 doppelseitig handbeschriebenes Blatt. Maschinenerzeugte Blätter werden eingesammelt! Bonuspunkte für die Klausur Insgesamt: 305 normale Übungspunkte erreichbar (Zusatzpunkte sind nicht in 100% enthalten) x Übungspunkten werden linear skaliert auf [0, 3] Bonuspunkte (bis zu 5%) in der Klausur: x 76 Punkte 0 Bonuspunkte, 76 < x 152 Punkte 1 Bonuspunkt, 152 < x 228 Punkte 2 Bonuspunkte, x > 228 Punkte 3 Bonuspunkte. 4 Timo Bingmann, Christian Schulz 12. Übung Algorithmen I Fakultät für Informatik Institut für Theoretische Informatik

Programmierwettbewerb 5 Timo Bingmann, Christian Schulz 12. Übung Algorithmen I Fakultät für Informatik Institut für Theoretische Informatik

Programmierwettbewerb Statistik: Sieben Einsendungen. Programmiersprachen: C, C++, Java, C# und BASIC Zwischen 1096 und 181 Zeilen Quellcode (sloccount) 6 Timo Bingmann, Christian Schulz 12. Übung Algorithmen I Fakultät für Informatik Institut für Theoretische Informatik

Programmierwettbewerb Statistik: Sieben Einsendungen. Programmiersprachen: C, C++, Java, C# und BASIC Zwischen 1096 und 181 Zeilen Quellcode (sloccount) Abweichung von korrekter DNA in zehn Testfällen: test1 test2 test3 test4 test5 test6 test7 test8 test9 test10 Summe BASIC Physicist 4560 4605 4517 4381 4419 4357 4531 4527 4627 4383 44907 Batzill 133 139 162 147 145 131 136 141 169 135 1438 Henningsen 131 165 172 168 170 159 148 159 178 133 1583 Labeit 147 150 174 163 168 146 136 156 178 144 1562 Miltenberger 137 141 169 144 171 144 129 133 162 143 1473 Vier Nibble terminiert nicht in 3h Weber 288 307 332 308 317 298 301 335 326 322 3134 6 Timo Bingmann, Christian Schulz 12. Übung Algorithmen I Fakultät für Informatik Institut für Theoretische Informatik

Preisverleihung Platz 1: Johannes Batzill 7 Timo Bingmann, Christian Schulz 12. Übung Algorithmen I Fakultät für Informatik Institut für Theoretische Informatik

Preisverleihung Platz 1: Platz 2: Johannes Batzill Fabian Miltenberger 7 Timo Bingmann, Christian Schulz 12. Übung Algorithmen I Fakultät für Informatik Institut für Theoretische Informatik

Preisverleihung Platz 1: Platz 2: Platz 3: Johannes Batzill Fabian Miltenberger Julian Labeit Hauke Henningsen 7 Timo Bingmann, Christian Schulz 12. Übung Algorithmen I Fakultät für Informatik Institut für Theoretische Informatik

Worum geht es? Referenz und Fragmente ( Reads ) von Patient gegeben Gesucht: Patienten DNA Schwierigkeit: Reads ungeordnet und sehr fehlerbehaftet (2%) 16.07.2013 1

Gegeben: Referenz 16.07.2013 2

Gegeben: Reads Gegeben: Referenz 16.07.2013 3

Gesucht: Patient Gegeben: Reads Gegeben: Referenz 16.07.2013 4

Abweichung 2% Patient Reads sind ungeordnet Reads 0,1% Referenz 16.07.2013 5

Patient Reads AGGCTAGGCCTGAGTCAACGGTCCCGTGAGCTGT Referenz 16.07.2013 6

Referenz indizieren Lösung Anhand Indizierung für jedes einzelne Read beste Position ermitteln Angeordnete Reads überlagern und so auf Patienten DNA schließen 16.07.2013 7

Referenz indizieren Patient Hashtabelle Reads Referenz 16.07.2013 8

Referenz indizieren Patient Hashtabelle Reads insert(key, value) key Referenz 16.07.2013 9

Referenz indizieren Patient Hashtabelle Reads GCCGTAGAA value key Referenz 16.07.2013 10

Referenz indizieren Patient Hashtabelle Reads key GCCGTAGAA insert(key, value) key Referenz 16.07.2013 11

Referenz indizieren Patient Hashtabelle AACGTTTAG GCCGTAGAA Reads Referenz 16.07.2013 12

Anhand Indizierung für jedes einzelne Read beste Position ermitteln Hashtabelle AACGTTTAG GCCGTAGAA Reads Referenz 16.07.2013 13

Anhand Indizierung für jedes einzelne Read beste Position ermitteln Hashtabelle AACGTTTAG GCCGTAGAA key Reads Referenz 16.07.2013 14

Anhand Indizierung für jedes einzelne Read beste Position ermitteln Hashtabelle AACGTTTAG GCCGTAGAA key Reads Referenz 16.07.2013 15

Anhand Indizierung für jedes einzelne Read beste Position ermitteln Hashtabelle AACGTTTAG GCCGTAGAA key Reads Referenz 16.07.2013 16

Anhand Indizierung für jedes einzelne Read beste Position ermitteln Hashtabelle AACGTTTAG GCCGTAGAA key Reads Referenz 16.07.2013 17

Anhand Indizierung für jedes einzelne Read beste Position ermitteln Hashtabelle AACGTTTAG GCCGTAGAA Reads Referenz 16.07.2013 18

Anhand Indizierung für jedes einzelne Read beste Position ermitteln Reads Referenz 16.07.2013 19

Überlagerung Angeordnete Reads überlagern und so auf Patienten DNA schließen Patient Reads 16.07.2013 20

Ein paar technische Daten Bei den Testdaten existieren 1.641.188 Reads, jedes ist ~300 Zeichen lang (500mib insgesamt) Referenz der Testdaten ist 50mib lang, enthält also 50 2 20 = 52.428.800 Säure-Base-Paare Die Hashtabelle hat 2 24 = 16.777.216 Einträge Die Keys sind 12 Zeichen lang und werden direkt auf Hashtabelleneinträge abgebildet Es werden für die Testdaten gesamt knapp weniger als 2gib Hauptspeicher vom Programm verwendet Parallelisierung: Je 8 Reads werden gleichzeitig verarbeitet Braucht etwa 520 Sekunden zum Finden der Lösung Verwendete Sprache: C (MinGW als Compiler, pthreads API für die Parallelisierung) 16.07.2013 21

Quellcode 16.07.2013 22

Siegerprogramm Nicht Referenz, sondern Reads werden indiziert Anschließend wird Referenz durchlaufen, und nur eindeutig positionierbaren Reads fest eine Position zugeordnet, für lediglich sehr wahrscheinlich zuordnenbare Reads wird Stelle mit höchster Ähnlichkeit gemerkt Bereits fest positionierte Reads werden dabei berücksichtigt Reads mit lediglich hoher Ähnlichkeit werden erst anschließend zur Bildung der Patienten-DNA, zusammen mit der Referenz und den fest positionierten Reads, verwendet 16.07.2013 23

Übersicht der Übungensinhalte 8 Timo Bingmann, Christian Schulz 12. Übung Algorithmen I Fakultät für Informatik Institut für Theoretische Informatik

Übersicht der Übungen I Die folgende Übersicht der Inhalte der Übungen umfasst nicht alles Wichtige für die Klausur! Aber: ausgeschlossene Inhalten werden nicht in der Klausur verlangt. 9 Timo Bingmann, Christian Schulz 12. Übung Algorithmen I Fakultät für Informatik Institut für Theoretische Informatik

Übersicht der Übungen II 1. Übung O-Kalkül: Definitionen, Intuition, Äquivalenzen, Logarithmen. Invarianten: in Schleifen, zur Korrektheit, Nachbedingungen, Induktion. Modellierung mit Graphen: DAG Prüfung, Landkarten, Partitionierung (Definition). nicht: Karatsuba-Ofman Rechnung. 2. Übung Rekurrenzen: Raten, Abschätzen, Substitution, Induktion, Master-Theorem. nicht: generierende Funktionen. 10 Timo Bingmann, Christian Schulz 12. Übung Algorithmen I Fakultät für Informatik Institut für Theoretische Informatik

Übersicht der Übungen III 3. Übung Amortisierte Analyse: Binärzähler, Aggregatmethode, Kontomethode. Anwendung amortisierte Analyse: Hotlist-Datenstruktur, Unbounded Array. Hashtabellen: Duplikaterkennung, LRU-Pager (Kombination verkettete Liste und Hashtabellen). 11 Timo Bingmann, Christian Schulz 12. Übung Algorithmen I Fakultät für Informatik Institut für Theoretische Informatik

Übersicht der Übungen IV 4. Übung Hashing: Unbounded Hashtables, universelle Hashfunktionen, Bit-Matrix-Multiplikation als Hashfunktion. nicht: Bloom Filter. Deamortisierung: unbounded Arrays. Sortieren: Übersicht, Selection Sort, Insertion Sort, Merge Sort, Quick Sort, Ternary Quick Sort, Quick-Select. nicht: average case Insertion Sort. 5. Übung 12 Timo Bingmann, Christian Schulz 12. Übung Algorithmen I Fakultät für Informatik Institut für Theoretische Informatik

Übersicht der Übungen V 6. Übung Vollständige Binärbäume: Definitionen, implizite Darstellung. Heapsort mit Max-Heap: Algorithmen und Anwendung. Adressierbare binäre Heaps: Operationen, Invariante und Pseudocode. 7. Übung nicht: Rot-Schwarz Bäume. Binäre Suchbäume: Catalan-Zahlen. Hashing: von Zeichenketten (nicht: Code). 13 Timo Bingmann, Christian Schulz 12. Übung Algorithmen I Fakultät für Informatik Institut für Theoretische Informatik

Übersicht der Übungen VI 8. Übung Graphen Grundlagen: Adjazenzfeld, Symmetrie, DAGs, Potenzierung. Analyse: Teilgraphen, knoteninduzierte Teilgraphen, K -core. Algorithmen: Durchmesser, Breitensuche. nicht: Details der Graphpartitionierung (Multilevel Framework, Initial Partitioning, Bubbling, Anwendungen). 9. Übung Graphen (2) Definitionen: Relationen, Hyperwürfel, vollständige Graphen, etc (alles sehr wichtig). Sätze: Handshake-Lemma und Korollar, Charakterisierung von Bäumen. nicht: Satz von Cayley, Eulersche und Hamiltonsche Kreise. kürzeste Wege: Bellman-Ford und Finden negativer Kreise. 14 Timo Bingmann, Christian Schulz 12. Übung Algorithmen I Fakultät für Informatik Institut für Theoretische Informatik

Übersicht der Übungen VII 10. Übung Exkurse nicht: Contraction Hierarchies. nicht: Filter-Kruskal MST. Lineare Programmierung: Modellbildung, Anwendung, 2D-Lösen. nicht: Dualitätssatz der LP oder das MST LP, (aber: kürzeste Wege LP). 11. Übung Dynamische Programmierung: Anwendung, Fibonacci-Zahlen, Largest One Submatrix, Maximale Teilfolge, Maximum Submatrix. nicht: Faltungscodes, Schieberegister, Trellis, Viterbi-Algorithmus. 12. Übung nicht: evolutionäre Graphpartitionierung 15 Timo Bingmann, Christian Schulz 12. Übung Algorithmen I Fakultät für Informatik Institut für Theoretische Informatik