Proseminar Algorithms and Data Structures€¦ · 19 of 32 Proseminar Algorithms and Data...

34
Proseminar Algorithms and Data Structures Einf ¨ uhrungsveranstaltung Wintersemester 2018/19; 10. Oktober 2018 Thomas Noll et al. Software Modeling and Verification Group RWTH Aachen University http://moves.rwth-aachen.de/teaching/ws-1819/algds/

Transcript of Proseminar Algorithms and Data Structures€¦ · 19 of 32 Proseminar Algorithms and Data...

Page 1: Proseminar Algorithms and Data Structures€¦ · 19 of 32 Proseminar Algorithms and Data Structures Thomas Noll Wintersemester 2018/19. Algorithmen 9. String Matching Ziel: Suche

Proseminar Algorithms and Data StructuresEinfuhrungsveranstaltungWintersemester 2018/19; 10. Oktober 2018

Thomas Noll et al.Software Modeling and Verification GroupRWTH Aachen University

http://moves.rwth-aachen.de/teaching/ws-1819/algds/

Page 2: Proseminar Algorithms and Data Structures€¦ · 19 of 32 Proseminar Algorithms and Data Structures Thomas Noll Wintersemester 2018/19. Algorithmen 9. String Matching Ziel: Suche

Einfuhrung

Ubersicht

Einfuhrung

Termine

Algorithmen

Datenstrukturen

2 of 32 Proseminar Algorithms and Data StructuresThomas Noll

Wintersemester 2018/19

Page 3: Proseminar Algorithms and Data Structures€¦ · 19 of 32 Proseminar Algorithms and Data Structures Thomas Noll Wintersemester 2018/19. Algorithmen 9. String Matching Ziel: Suche

Einfuhrung

Seminarthema

Thema des Proseminars

Weiterfuhrung und Vertiefung diverser Themen derVorlesung Datenstrukturen und Algorithmen

• Algorithmen:– neue Algorithmen– andere Komplexitatsmaße, ...

• Datenstrukturen:– Baume– Hashing, ...

• Inhalt:– Problemstellung– Arbeitsweise des Algorithmus bzw. der Datenstruktur– Effizienzeigenschaften– Anwendungen

3 of 32 Proseminar Algorithms and Data StructuresThomas Noll

Wintersemester 2018/19

Page 4: Proseminar Algorithms and Data Structures€¦ · 19 of 32 Proseminar Algorithms and Data Structures Thomas Noll Wintersemester 2018/19. Algorithmen 9. String Matching Ziel: Suche

Einfuhrung

Zielsetzung

Ziele des Proseminars

• Selbststandiges Einarbeiten in ein neues Thema• Literaturrecherche• Darstellen des Inhalts in einer wissenschaftlichen Ausarbeitung• Verstandliches Prasentieren

Bearbeitung in Zweiergruppen

• Gemeinsame Anfertigung der Ausarbeitung• Zwei separate Vortrage

4 of 32 Proseminar Algorithms and Data StructuresThomas Noll

Wintersemester 2018/19

Page 5: Proseminar Algorithms and Data Structures€¦ · 19 of 32 Proseminar Algorithms and Data Structures Thomas Noll Wintersemester 2018/19. Algorithmen 9. String Matching Ziel: Suche

Einfuhrung

Zielsetzung

Ziele des Proseminars

• Selbststandiges Einarbeiten in ein neues Thema• Literaturrecherche• Darstellen des Inhalts in einer wissenschaftlichen Ausarbeitung• Verstandliches Prasentieren

Bearbeitung in Zweiergruppen

• Gemeinsame Anfertigung der Ausarbeitung• Zwei separate Vortrage

4 of 32 Proseminar Algorithms and Data StructuresThomas Noll

Wintersemester 2018/19

Page 6: Proseminar Algorithms and Data Structures€¦ · 19 of 32 Proseminar Algorithms and Data Structures Thomas Noll Wintersemester 2018/19. Algorithmen 9. String Matching Ziel: Suche

Einfuhrung

Anforderungen Ausarbeitung

Ausarbeitung

• Selbststandiges Verfassen einer Ausarbeitung von ≥ 10 Seiten• Vollstandiges Literaturverzeichnis• Korrektes Zitieren• Plagiarismus:

Die nicht gekennzeichnete ubernahme fremder Inhalte fuhrt zum sofortigen Ausschluss.• Schriftgroße 12pt, ubliche Seitenrander• Titelseite mit Thema, Titel Proseminar, Semester, Name, Datum• LATEX-Vorlage wird zur Verfugung gestellt• Sprache Deutsch oder Englisch• Korrekte Sprache wird vorausgesetzt:≥ 10 Fehler pro Seite =⇒ Abbruch der Korrektur

5 of 32 Proseminar Algorithms and Data StructuresThomas Noll

Wintersemester 2018/19

Page 7: Proseminar Algorithms and Data Structures€¦ · 19 of 32 Proseminar Algorithms and Data Structures Thomas Noll Wintersemester 2018/19. Algorithmen 9. String Matching Ziel: Suche

Einfuhrung

Anforderungen Vortrag

Vortrag

• 20-minutiger Vortrag• Verfugbar: Beamer, Presenter, [Laptop]• Zielgruppengerechte Prasentation der Inhalte• ubersichtliche Folien:

– ≤ 15 Textzeilen– sinnvoller Einsatz von Farben– nummerierte Folien

• LATEX/beamer-Vorlage wird zur Verfugung gestellt• Vortrag in Deutsch oder Englisch

6 of 32 Proseminar Algorithms and Data StructuresThomas Noll

Wintersemester 2018/19

Page 8: Proseminar Algorithms and Data Structures€¦ · 19 of 32 Proseminar Algorithms and Data Structures Thomas Noll Wintersemester 2018/19. Algorithmen 9. String Matching Ziel: Suche

Termine

Ubersicht

Einfuhrung

Termine

Algorithmen

Datenstrukturen

7 of 32 Proseminar Algorithms and Data StructuresThomas Noll

Wintersemester 2018/19

Page 9: Proseminar Algorithms and Data Structures€¦ · 19 of 32 Proseminar Algorithms and Data Structures Thomas Noll Wintersemester 2018/19. Algorithmen 9. String Matching Ziel: Suche

Termine

Themenauswahl

Verfahren

• Themenliste wurde/wird ausgehandigt• Priorisierte Auswahl• ggf. Angabe Wunschpartner(in)• Abgabe hier oder bis 14. Oktober im Sekretariat Informatik 2/per Mail• Wir bemuhen uns (ohne Garantie) um ein ”optimales“ Matching• Zuordnung der Themen und Betreuer bis Mitte nachster Woche online

Rucktritt vom Proseminar

• Bis zu drei Wochen nach Einfuhrung: ohne Folgen• Danach: Fehlversuch

8 of 32 Proseminar Algorithms and Data StructuresThomas Noll

Wintersemester 2018/19

Page 10: Proseminar Algorithms and Data Structures€¦ · 19 of 32 Proseminar Algorithms and Data Structures Thomas Noll Wintersemester 2018/19. Algorithmen 9. String Matching Ziel: Suche

Termine

Themenauswahl

Verfahren

• Themenliste wurde/wird ausgehandigt• Priorisierte Auswahl• ggf. Angabe Wunschpartner(in)• Abgabe hier oder bis 14. Oktober im Sekretariat Informatik 2/per Mail• Wir bemuhen uns (ohne Garantie) um ein ”optimales“ Matching• Zuordnung der Themen und Betreuer bis Mitte nachster Woche online

Rucktritt vom Proseminar

• Bis zu drei Wochen nach Einfuhrung: ohne Folgen• Danach: Fehlversuch

8 of 32 Proseminar Algorithms and Data StructuresThomas Noll

Wintersemester 2018/19

Page 11: Proseminar Algorithms and Data Structures€¦ · 19 of 32 Proseminar Algorithms and Data Structures Thomas Noll Wintersemester 2018/19. Algorithmen 9. String Matching Ziel: Suche

Termine

Bibliothekseinfuhrung

Einfuhrung in die Literaturrecherche

• Einweisung in themenspezifische Literaturrecherche• Dauer: ca. zwei Stunden• Teilnahme fur BSc-Studierende verpflichtend• Bedarf bitte auf Themenblatt vermerken• Termine zur Auswahl:

– Dienstag, 06.11., 12 Uhr– Mittwoch, 07.11., 13 Uhr– Donnerstag, 08.11., 11 Uhr– Freitag, 09.11., 12 Uhr

• Mogliche Termine auf Themenliste vermerken, Bestatigung per Mail

9 of 32 Proseminar Algorithms and Data StructuresThomas Noll

Wintersemester 2018/19

Page 12: Proseminar Algorithms and Data Structures€¦ · 19 of 32 Proseminar Algorithms and Data Structures Thomas Noll Wintersemester 2018/19. Algorithmen 9. String Matching Ziel: Suche

Termine

Deadlines

Deadlines

Folgende Termine sind einzuhalten:• 02.11.2018: letzte Rucktrittsmoglichkeit• 12.11.2018: Vorlage der detaillierten Inhaltsubersicht

– nicht: ”1. Einleitung/2. Hauptteil/3. Schluss“– sondern: Strukturubersicht (Abschnittsuberschriften, wesentliche Beweise/Theoreme, ...) und

Anfang des Hauptteils (eine Seite)

• 10.12.2018: vollstandige Fassung der Ausarbeitung• 14.01.2018: vollstandige Fassung der Folien• 31.01./01.02.2019: Blockseminar

10 of 32 Proseminar Algorithms and Data StructuresThomas Noll

Wintersemester 2018/19

Page 13: Proseminar Algorithms and Data Structures€¦ · 19 of 32 Proseminar Algorithms and Data Structures Thomas Noll Wintersemester 2018/19. Algorithmen 9. String Matching Ziel: Suche

Algorithmen

Ubersicht

Einfuhrung

Termine

Algorithmen

Datenstrukturen

11 of 32 Proseminar Algorithms and Data StructuresThomas Noll

Wintersemester 2018/19

Page 14: Proseminar Algorithms and Data Structures€¦ · 19 of 32 Proseminar Algorithms and Data Structures Thomas Noll Wintersemester 2018/19. Algorithmen 9. String Matching Ziel: Suche

Algorithmen

1. Pagerank-Algorithmus

• Algorithmus zur Analyse verlinkter Webseiten• Allgemeiner: beliebige Graphen• Basis: Bestimmung der Wahrscheinlichkeit, dass

zufalliges Benutzerverhalten auf die Seite fuhrt• Benutzung in Google-Suchmaschine

12 of 32 Proseminar Algorithms and Data StructuresThomas Noll

Wintersemester 2018/19

Page 15: Proseminar Algorithms and Data Structures€¦ · 19 of 32 Proseminar Algorithms and Data Structures Thomas Noll Wintersemester 2018/19. Algorithmen 9. String Matching Ziel: Suche

Algorithmen

2. Huffman-Kodierung

• Ziel: Erstellung einer Binarkodierung mit minimalermittlerer Wortlange benotigt• Basis: Wahrscheinlichkeitsverteilung der einzelnen

Zeichen• Ansatz: Verwendung eines voll verzweigten

Binarbaums zur Darstellung des Codes

13 of 32 Proseminar Algorithms and Data StructuresThomas Noll

Wintersemester 2018/19

Page 16: Proseminar Algorithms and Data Structures€¦ · 19 of 32 Proseminar Algorithms and Data Structures Thomas Noll Wintersemester 2018/19. Algorithmen 9. String Matching Ziel: Suche

Algorithmen

3. LZW-Datenkompression

• Lempel-Ziv-Welch-Algorithmus• Haufig bei Grafikformaten eingesetzt• Verlustfrei• Kompression mittels Worterbuchern mit am

haufigsten vorkommenden Zeichenketten• Worterbuch nicht zusatzlich gespeichert, sondern

aus Datenstrom rekonstruiert

14 of 32 Proseminar Algorithms and Data StructuresThomas Noll

Wintersemester 2018/19

Page 17: Proseminar Algorithms and Data Structures€¦ · 19 of 32 Proseminar Algorithms and Data Structures Thomas Noll Wintersemester 2018/19. Algorithmen 9. String Matching Ziel: Suche

Algorithmen

4. RSA-Kryptosystem

• Verfahren von Rivest, Shamir und Adleman(public-key encryption)• Verwendung zur Verschlusselung und digitalen

Signatur• Asymmetrisch: Schlusselpaar privat/offentlich

– privat: zum Entschlusseln oder Signieren– offentlich: zur Verschlusselung/ Signaturprufung

• Privater Schlussel wird geheim gehalten und kannnur mit extrem hohem Aufwand aus dem offentlichenSchlussel berechnet werden

15 of 32 Proseminar Algorithms and Data StructuresThomas Noll

Wintersemester 2018/19

Page 18: Proseminar Algorithms and Data Structures€¦ · 19 of 32 Proseminar Algorithms and Data Structures Thomas Noll Wintersemester 2018/19. Algorithmen 9. String Matching Ziel: Suche

Algorithmen

5. Langste gemeinsame Teilsequenz

• Definition: langste gemeinsame (nichtnotwendigerweise zusammenhangende) Teilsequenzmehrerer Zeichenketten• Anwendungen: diff, Bioinformatik (Genanalyse)• NP-hart fur beliebige Anzahl von Zeichenketten• Quadratische Komplexitat fur zwei Zeichenketten

(dynamische Programmierung)

16 of 32 Proseminar Algorithms and Data StructuresThomas Noll

Wintersemester 2018/19

Page 19: Proseminar Algorithms and Data Structures€¦ · 19 of 32 Proseminar Algorithms and Data Structures Thomas Noll Wintersemester 2018/19. Algorithmen 9. String Matching Ziel: Suche

Algorithmen

6. Deutsch-Schorr-Waite Baumtraversierung

• Klassische Losung: Rekursion/Stack• Ziel: Vermeidung des zusatzlichen Speicheraufwands• Ansatz: Pointerrotation in der Heapdarstellung

17 of 32 Proseminar Algorithms and Data StructuresThomas Noll

Wintersemester 2018/19

Page 20: Proseminar Algorithms and Data Structures€¦ · 19 of 32 Proseminar Algorithms and Data Structures Thomas Noll Wintersemester 2018/19. Algorithmen 9. String Matching Ziel: Suche

Algorithmen

7. Problem der K kurzesten Pfade

• Problem: Finden der K kurzesten Pfadezwischen Knotenpaar in einem gerichtetenGraphen• Ansatz: Verallgemeinerung der

Bellman-Gleichung

18 of 32 Proseminar Algorithms and Data StructuresThomas Noll

Wintersemester 2018/19

Page 21: Proseminar Algorithms and Data Structures€¦ · 19 of 32 Proseminar Algorithms and Data Structures Thomas Noll Wintersemester 2018/19. Algorithmen 9. String Matching Ziel: Suche

Algorithmen

8. Amortisierte Laufzeitanalyse

• Allgemeine Laufzeitanalyse: maximale Kosten dereinzelnen Schritte• Amortisierte Laufzeitanalyse: Worst Case aller

Operationen im gesamten Durchlauf des Algorithmus• Verbesserung der oberen Schranke bei seltenem

Auftreten teurer Operationen• Idee: der Worst Case andert den Zustand der

Datenstruktur so ab, dass er nicht wiederholtauftreten kann (z.B. dynamische Arrays)• Drei unterschiedliche Berechnungsmethoden

(Aggregat-, Account-, Potentialfunktion-Methode)

19 of 32 Proseminar Algorithms and Data StructuresThomas Noll

Wintersemester 2018/19

Page 22: Proseminar Algorithms and Data Structures€¦ · 19 of 32 Proseminar Algorithms and Data Structures Thomas Noll Wintersemester 2018/19. Algorithmen 9. String Matching Ziel: Suche

Algorithmen

9. String Matching

• Ziel: Suche von Vorkommen eines Strings in einem(großen) Text• Komplexitat des naiven Algorithmus: |Text| · |String|• Verbesserung durch Vorverarbeitung des Suchstrings

20 of 32 Proseminar Algorithms and Data StructuresThomas Noll

Wintersemester 2018/19

Page 23: Proseminar Algorithms and Data Structures€¦ · 19 of 32 Proseminar Algorithms and Data Structures Thomas Noll Wintersemester 2018/19. Algorithmen 9. String Matching Ziel: Suche

Algorithmen

10. Lineare Optimierung (aka Lineare Programmierung)

• Ziel: Optimierung linearer Zielfunktionen uber einerMenge, die durch lineare (Un-)Gleichungeneingeschrankt ist• Simplexverfahren• Ellipsoid-Methode

21 of 32 Proseminar Algorithms and Data StructuresThomas Noll

Wintersemester 2018/19

Page 24: Proseminar Algorithms and Data Structures€¦ · 19 of 32 Proseminar Algorithms and Data Structures Thomas Noll Wintersemester 2018/19. Algorithmen 9. String Matching Ziel: Suche

Algorithmen

11. A*-Suchalgorithmus

• Berechnung eines kurzesten Pfadeszwischen zwei Knoten in einemGraphen mit positivenKantengewichten• Verallgemeinerung und Erweiterung

des Dijkstra-Algorithmus• Schatzfunktion (Heuristik) zur

zielgerichteten Suche

22 of 32 Proseminar Algorithms and Data StructuresThomas Noll

Wintersemester 2018/19

Page 25: Proseminar Algorithms and Data Structures€¦ · 19 of 32 Proseminar Algorithms and Data Structures Thomas Noll Wintersemester 2018/19. Algorithmen 9. String Matching Ziel: Suche

Datenstrukturen

Ubersicht

Einfuhrung

Termine

Algorithmen

Datenstrukturen

23 of 32 Proseminar Algorithms and Data StructuresThomas Noll

Wintersemester 2018/19

Page 26: Proseminar Algorithms and Data Structures€¦ · 19 of 32 Proseminar Algorithms and Data Structures Thomas Noll Wintersemester 2018/19. Algorithmen 9. String Matching Ziel: Suche

Datenstrukturen

12. Splay Trees

• Baumorganisierte Datenstruktur• Effizientes Einfugen, Suchen und Loschen

von Elementen• Ansatz: haufig benutzte Eintrage nah an

Wurzel platzieren• Grundlegende Operation: splay (Rotieren

eines Elements bis zur Wurzel)

24 of 32 Proseminar Algorithms and Data StructuresThomas Noll

Wintersemester 2018/19

Page 27: Proseminar Algorithms and Data Structures€¦ · 19 of 32 Proseminar Algorithms and Data Structures Thomas Noll Wintersemester 2018/19. Algorithmen 9. String Matching Ziel: Suche

Datenstrukturen

13. Fibonacci Heaps

• Datenstruktur zur Implementierung einerVorrangwarteschlange (priority queue)• Liste von geordneten Baumen• Heap-Bedingung: Prioritat jedes Knotens

mindestens so groß wie Prioritat seinerKinder• (Fast) alle Operationen haben amortisiert

konstante Laufzeit

25 of 32 Proseminar Algorithms and Data StructuresThomas Noll

Wintersemester 2018/19

Page 28: Proseminar Algorithms and Data Structures€¦ · 19 of 32 Proseminar Algorithms and Data Structures Thomas Noll Wintersemester 2018/19. Algorithmen 9. String Matching Ziel: Suche

Datenstrukturen

14. AVL-Baume

• Balancierter binarer Suchbaum• Invariante: maximaler

Hohenunterschied der Teilbaume jedesKnotens ist 1• Worst-Case-Komplexitat der ublichen

Operationen: O(log n)

26 of 32 Proseminar Algorithms and Data StructuresThomas Noll

Wintersemester 2018/19

Page 29: Proseminar Algorithms and Data Structures€¦ · 19 of 32 Proseminar Algorithms and Data Structures Thomas Noll Wintersemester 2018/19. Algorithmen 9. String Matching Ziel: Suche

Datenstrukturen

15. B-Baume

• Immer vollstandig balanciert• Besonderheit: Anzahl der

Knotennachfolger variabel (mitObergrenze)• Einsatz vor allem in Datenbanken und

Dateisystemen

27 of 32 Proseminar Algorithms and Data StructuresThomas Noll

Wintersemester 2018/19

Page 30: Proseminar Algorithms and Data Structures€¦ · 19 of 32 Proseminar Algorithms and Data Structures Thomas Noll Wintersemester 2018/19. Algorithmen 9. String Matching Ziel: Suche

Datenstrukturen

16. Bitstate Hashing

• Effiziente Darstellung von Zustandsraumen• Problem: Erkennung von Zykeln• Idee: Benutzung einer Hashfunktion, Speicherung

von 0/1 im Hasharray• Bis zu 98% Speicherersparnis im SPIN-Tool

28 of 32 Proseminar Algorithms and Data StructuresThomas Noll

Wintersemester 2018/19

Page 31: Proseminar Algorithms and Data Structures€¦ · 19 of 32 Proseminar Algorithms and Data Structures Thomas Noll Wintersemester 2018/19. Algorithmen 9. String Matching Ziel: Suche

Datenstrukturen

17. Binare Entscheidungsdiagramme

• Datenstruktur zurDarstellung BoolescherFunktionen• Einsatz: Verifikation von

(Hardware-)Systemen• Effizient durch Sharing

gemeinsamer Teilbaume• Problem: Finden

geeigneterVariablenordnungen

29 of 32 Proseminar Algorithms and Data StructuresThomas Noll

Wintersemester 2018/19

Page 32: Proseminar Algorithms and Data Structures€¦ · 19 of 32 Proseminar Algorithms and Data Structures Thomas Noll Wintersemester 2018/19. Algorithmen 9. String Matching Ziel: Suche

Datenstrukturen

18. Spielbaume

• Darstellung von 2-Personen-Spielen mitabwechselnden Zugen (z.B. Schach, Go,Reversi, Dame, Muhle oder Vier gewinnt)• Ziel: Bestimmung optimaler Strategien• Minimax-Verfahren• α-β-Pruning

30 of 32 Proseminar Algorithms and Data StructuresThomas Noll

Wintersemester 2018/19

Page 33: Proseminar Algorithms and Data Structures€¦ · 19 of 32 Proseminar Algorithms and Data Structures Thomas Noll Wintersemester 2018/19. Algorithmen 9. String Matching Ziel: Suche

Datenstrukturen

19. Rot-Schwarz-Baume

• Von binaren Suchbaumen abgeleitet• Funf charakterisierende Eigenschaften:

1. jeder Knoten ist rot oder schwarz2. Wurzel ist schwarz.3. alle Blatter sind schwarz.4. beide Kinder eines roten Knotens sind schwarz5. jeder Pfad von einem Knoten zu seinen Blattknoten

enthalt die gleiche Anzahl schwarzer Knoten

=⇒ annahernde Balancierung, effizienteLaufzeitschranken fur Suchen/Einfugen/Loschen

31 of 32 Proseminar Algorithms and Data StructuresThomas Noll

Wintersemester 2018/19

Page 34: Proseminar Algorithms and Data Structures€¦ · 19 of 32 Proseminar Algorithms and Data Structures Thomas Noll Wintersemester 2018/19. Algorithmen 9. String Matching Ziel: Suche

Datenstrukturen

20. Bayessche Netze

• Gerichteter azyklischerGraph (DAG)– Knoten = Zufallsvariablen– Kanten = bedingte

Abhangigkeiten

• Kompakte Darstellungder gemeinsamen Wahr-scheinlichkeitsverteilungaller Variablen• Algorithmen:

– Schließen (Inferenz)– Lernen

32 of 32 Proseminar Algorithms and Data StructuresThomas Noll

Wintersemester 2018/19