Algorithmen und Datenstrukturen

Ähnliche Dokumente
Datenstrukturen und Algorithmen (SS 2013)

Graphenalgorithmen I

7. Dynamische Datenstrukturen Bäume. Informatik II für Verkehrsingenieure

Algorithmen und Datenstrukturen

Tutoraufgabe 1 (Suchen in Graphen):

1 topologisches Sortieren

Graphen. Definitionen

Pro Informatik 2009: Objektorientierte Programmierung Tag 18. Marco Block-Berlitz, Miao Wang Freie Universität Berlin, Institut für Informatik

Wie wird ein Graph dargestellt?

Programm heute. Algorithmen und Datenstrukturen (für ET/IT) Übersicht: Graphen. Definition: Ungerichteter Graph. Definition: Ungerichteter Graph

Stud.-Nummer: Datenstrukturen & Algorithmen Seite 1

Helmut Schauer Educational Engineering Lab Department for Information Technology University of Zurich. Graphen (2)

12. Graphen. Notation, Repräsentation, Traversieren (DFS, BFS), Topologisches Sortieren, Ottman/Widmayer, Kap ,Cormen et al, Kap.

Algorithmen und Datenstrukturen

Natürliche Bäume. (Algorithmen und Datenstrukturen I) Prof. Dr. Oliver Braun. Letzte Änderung: :16. Natürliche Bäume 1/16

Ein Graph ist ein Paar (V,E), wobei V eine Menge von Knoten und E eine Menge von Kanten (v,w) mit v,w in V ist.

Datenstrukturen Teil 2. Bäume. Definition. Definition. Definition. Bäume sind verallgemeinerte Listen. Sie sind weiter spezielle Graphen

Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen

Definition Ein gerichteter Graph G = (V, E) ist ein Graph von geordneten Paaren (u, v) mit u V und v V.

Bäume 1. Thomas Röfer

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

Algorithmen & Datenstrukturen 2 Praktikum 3

Verkettete Datenstrukturen: Bäume

Keller, Schlangen und Listen. Elementare Datenstrukturen Keller, Schlangen und Listen 1 / 14

Vorlesung Informatik 2 Algorithmen und Datenstrukturen

12. Graphen. Königsberg Zyklen. [Multi]Graph

Algorithmen und Datenstrukturen 2-1. Seminar -

Graphalgorithmen 2. Dominik Paulus Dominik Paulus Graphalgorithmen / 47

Algorithmische Graphentheorie

Grundbegriffe der Informatik Tutorium 8

Algorithmen und Datenstrukturen 1 VU 6.0 Nachtragstest SS Oktober 2014

Graphdurchmusterung, Breiten- und Tiefensuche

Algorithmen und Datenstrukturen

Proseminar Kodierverfahren bei Dr. Ulrich Tamm Sommersemester 2003 Thema: Codierung von Bäumen (Prüfer Codes...)

12. Graphen Programmieren / Algorithmen und Datenstrukturen 2 Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt Wintersemester 2012 / 2013

Grundbegriffe der Informatik

Kontextsensitive Sprachen

(a, b)-bäume / 1. Datenmenge ist so groß, dass sie auf der Festplatte abgespeichert werden muss.

Graphen und Bäume. A.1 Graphen

Einführung in die Informatik 2

Grundbegriffe der Informatik

Algorithmen und Datenstrukturen 2. Dynamische Datenstrukturen

elementare Datenstrukturen

Datenstrukturen und Algorithmen 2. Klausur SS 2001

Teil 2: Graphenalgorithmen

NAME, VORNAME: Studiennummer: Matrikel:

ADS: Algorithmen und Datenstrukturen 2

Zustandsraumsuche: Blinde und Heuristische Suche. Blinde und Heuristische Suche

Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung)

Vorkurs Informatik WiSe 15/16

ADS: Algorithmen und Datenstrukturen 2

Datenstrukturen & Algorithmen

Tutoraufgabe 1 (Starke Zusammenhangskomponenten):

Vorlesung Datenstrukturen

Algorithmen und Datenstrukturen

1 DFS-Bäume in ungerichteten Graphen

Vorlesung Datenstrukturen

Karlsruher Institut für Technologie. Klausur Algorithmen I

Vorlesung Datenstrukturen

Studientag zur Algorithmischen Mathematik

Minimal spannende Bäume

Listen. Für die Verarbeitung von Listen durch den Rechner ist relevant:

Programmierkurs Python

Programmierkurs Python II

Programmierkurs Python II

Kapitel IV Minimale Spannbäume

Vorkurs Informatik WiSe 16/17

Datenstrukturen (SoSe 12) Klausur (Modulabschlussprüfung)

Algorithmen und Datenstrukturen

2. November Gradfolgen Zusammenhang Kürzeste Wege. H. Meyerhenke: Algorithmische Methoden zur Netzwerkanalyse 37

Datenstrukturen und Algorithmen D-INFK

Diskrete Mathematik Graphentheorie (Übersicht)

Informatik 11 Kapitel 2 - Rekursive Datenstrukturen

Anordnungstechniken für konvektionsdominante Probleme im Ê 3. Dimensionsunabhängige Verfahren. Algorithmen für planare Graphen. Numerische Beispiele

Zweizusammenhang und starker Zusammenhang

Algorithmen und Datenstrukturen

MafI I: Logik & Diskrete Mathematik (F. Hoffmann)

Transkript:

Algorithmen und Datenstrukturen Datenstrukturen: Anordnung von Daten, z.b. als Liste (d.h. in bestimmter Reihenfolge) Beispiel: alphabetisch sortiertes Wörterbuch... Ei - Eibe - Eidotter... als Baum (d.h. aufgrund von Abhängigkeitsstrukturen) Beispiele: morphologisch sortiertes Wörterbuch Ei - Eibe Eidotter Eibenholz syntaktische Strukturbeschreibung - Eibe semantische Hierarchie Pflanze - Baum - Nadelbaum - Laubbaum Birke als Netz (d.h. aufgrund von Zusammenhängen) Algorithmen: Beispiel: nach Bedeutungen sortiertes Wörterbuch ("onomasiologische Sortierung") Huhn Ei - Frühstück Ostern 43

exakt beschriebene Verfahren zur Verarbeitung von Daten mit einer bestimmten Datenstruktur Suchen eines bestimmten Elements (z.b. in einer alphabetisch sortierten Liste) Sortieren der Daten zur Beschleunigung des Suchens Löschen alter und Einfügen neuer Daten 44

Allgemeine Terminologie: Bäume und Netze als Graphen Graphen bestehen aus einer nichtleeren Menge von Knoten V (engl. Vertex) und einer Menge von Kanten E (engl. Edge), wobei die Schnittmenge von V und E leer ist, sowie einer Abbildung ϕ : E V x V eine Kante wird durch die beiden Knoten festgelegt, die sie verbindet. ein Knoten wird durch die Kanten festgelegt, die von ihm ausgehen (und damit auch durch die anderen Knoten, mit denen er direkt verbunden ist) im allgemeinen können beliebig viele Kanten von einem Knoten ausgehen, aber jede Kante verbindet nur zwei Knoten Kanten können gerichtet oder ungerichtet sein; bei gerichteten Kanten spricht man auch von gerichteten Graphen und von Eingangs- bzw. Ausgangskanten eines Knotens Kanten und Knoten können Attribute besitzen. Man spricht dann von bewerteten bzw. gewichteten Kanten und Knoten. Spezialfall: Bäume: gerichtete Graphen, bei denen jeder Knoten bis auf einen (die Wurzel) genau eine Eingangskante hat Zusammenhängende Graphen, die keine Bäume sind, werden oft als Netze bezeichnet. Sie enthalten in der Regel Zyklen. Graphen sind abstrakte Objekte, bei denen die räumliche Anordnung der Knoten und die Länge der Kanten keine Rolle spielt (anders als z.b. bei topographischen Landkarten) 45

Ein Beispiel für einen gerichteten Graphen: c 1 e b d a 2 f 3 g 4 h i Formale Definition dieses Graphen: V = { 1, 2, 3, 4 } E = { a, b, c, d, e, f, g, h, i, } a b c d e f g h i ϕ (2,2) (2,1) (1,1) (3,1) (1,3) (2,3) (4,2) (3,4) (3,4) Dieser Graph kann auch anders visualisiert werden als oben: c a g h b f 1 2 3 4 e i d 46

47

Tiefensuche und Breitensuche in Bäumen Problem: Gesucht wird ein bestimmtes Knotenetikett. Begonnen wird bei der Wurzel, aber jeder Knoten eines Baumes hat in der Regel mehrere Nachfolger. Wie soll die Suche weitergehen? Beispiel: Suche nach bestimmter syntaktischer Struktur in einer Sammlung syntaktisch analysierter Sätze (Treebank) Möglichkeiten: Vorläufige Beschränkung auf einen Nachfolgerknoten (Tiefensuche) Gleichzeitige Verfolgung aller Nachfolgerknoten (Breitensuche) Tiefensuche: einer der Nachfolger eines Knotens wird ausgewählt (z.b. der erste), danach einer von dessen Nachfolgern etc. Steht kein Nachfolger mehr zur Verfügung, geht der Algorithmus zurück zum letzten Knoten, dessen Nachfolger noch nicht alle untersucht wurden (Backtracking). Breitensuche: alle Nachfolger eines Knotens werden untersucht; anschließend wird einer (z.b. der erste) ausgewählt und dessen Nachfolger untersucht. Danach kommen erst die Nachfolger des zweiten usw. dran. Mit der Verarbeitung der nächsten Ebene wird erst begonnen, wenn alle Knoten auf einer Ebene besucht worden sind. Sowohl Tiefensuche als auch Breitensuche durchlaufen den vollständigen Baum (wenn nicht die Suche vorher erfolgreich abgebrochen wird). Allerdings werden die Knoten in anderer 48

Reihenfolge besucht: Breitensuche erreicht die Blätter eines Baums erst sehr spät. 49

Tiefensuche und Breitensuche beim Parsing Bei der Syntaxanalyse entsteht immer wieder die Frage, welche von mehreren anwendbaren Regeln ausgewählt werden soll. Beispiel: Top-down-Analyse: S XP V XP vs. S XP V XP XP Bottom-up-Analyse: NP Art N vs. NP Art N XP Dieser Entscheidungsprozess lässt sich in Form eines Baums darstellen: Jede Entscheidungssituation bildet einen Knoten, jede mögliche Regelanwendung einen Nachfolger. Beispiel: Diese Bäume illustrieren die Suchprozesse. S XP XP NP V NP Art N Art N Die Top-down-Analyse in der oben dargestellten Form entspricht also einer Tiefensuche in diesem Analysebaum. Möglich wäre auch eine Top-down-Breitensuche oder eine Mischform, bei der sämtliche Nichtterminalsymbole gleichzeitig expandiert werden: S XP V XP usw. NP V NP NP V PP PP V NP PP V PP Allerdings wären solche Verfahren wesentlich schwieriger zu programmieren. 50