Softwareengineering Graphen und Bäume Teil II

Slides:



Advertisements
Ähnliche Präsentationen
Berechne den optimalen (kürzesten, schnellsten) Weg
Advertisements

Single-Source Shortest Paths: SSSP
Softwareengineering Wie schnell ist ein Computerprogramm?
Universität Dortmund, Lehrstuhl Informatik 1 EINI II Einführung in die Informatik für Naturwissenschaftler und Ingenieure.
Graphen Ein Graph ist eine Kollektion von Knoten und Kanten. Knoten sind einfache Objekte. Sie haben Namen und können Träger von Werten, Eigenschaften.
Programmieren 2 Future Car Projekt Praktikum 6
Programmieren 2 Future Car Projekt Praktikum 6
Sortieren mit Binären Bäumen
Java: Objektorientierte Programmierung
Sortierverfahren Richard Göbel.
Java: Dynamische Datentypen
Listen Richard Göbel.
Ein Beispiel in Java.
WS Algorithmentheorie 13 - Kürzeste (billigste) Wege Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (20 – Graphen)
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (26 - Graphen) Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (06 - Anwendungen von Stapeln und Schlangen) Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (27 – Kürzeste Wege) Prof. Th. Ottmann.
Anwendungen von Stapeln und Schlangen
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (17 – Bäume: Grundlagen und natürliche Suchbäume) Prof. Th. Ottmann.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (21 – Kürzeste Wege) T. Lauer.
Algorithmentheorie 12 – Spannende Bäume minimalen Gewichts
Union-Find-Strukturen
Algorithmen und Datenstrukturen
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (05 – Elementare Datenstrukturen) Prof. Th. Ottmann.
Informatik II, SS 2008 Algorithmen und Datenstrukturen Vorlesung 6 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät.
Universität Dortmund, Lehrstuhl Informatik 1 EINI II Einführung in die Informatik für Naturwissenschaftler und Ingenieure.
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation II Vorlesung In welcher Masche liegt der Punkt p?
PRJ 2007/1 Stefan Dissmann Motivation Problem: gleiche Datenstrukturen werden für verschiedene Objekte gebraucht: z.B. Listen von Studierenden, Kunden,
PKJ 2005/1 Stefan Dissmann Rückblick auf 2005 Was zuletzt in 2005 vorgestellt wurde: Klassen mit Attributen, Methoden und Konstruktoren Referenzen auf.
Seite 1 Interface - Konzept Ein Interface führt einen neuen Datentyp ein: interface Frau {... } Das Interface enthält Deklarationen ( keine Definitionen.
PRJ 2007/1 Stefan Dissmann Verkettete datenstruktur: Liste Problem: Liste, die eine beliebige Zahl von Elementen verwaltet Operationen: Erzeugen, Anfügen,
Vortrag über Graphen Von Jörg Hendricks.
Effiziente Algorithmen
Mahmoud Zoabi Khaled Isa
Diskrete Mathematik II
Diskrete Mathematik II
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Informatik 1 Letzte Übung.
Einfach und doppelt verkettete Listen in JAVA by Jens Weibler
Zusammenfassung wichtiger Themen
Informatik Datenstruktur Graph 3.3 Durchlaufen von Graphen
Systementwicklung Vorgehensmodelle am Beispiel des RUP
Softwareengineering Endliche Automaten
se_10_regulaere_ausdruecke.ppt1 Softwareengineering Reguläre Ausdrücke (regular expressions) Prof. Dr.-Ing. Axel Benz, Berlin School of Economics.
se_11_interfaces.ppt1 Softwareengineering Interfaces Prof. Dr.-Ing. Axel Benz, Berlin School of Economics and Law.
se_8_statische_klassen.ppt1 Softwareengineering Statische Klassen Prof. Dr.-Ing. Axel Benz, Berlin School of Economics and Law.
Softwareengineering Organisation
se_5_liste_stack_etc.ppt1 Softwareengineering Listenstrukturen und ähnliches Prof. Dr.-Ing. Axel Benz, Berlin School of Economics and Law.
se_4_graphen_und_baeume_I.ppt1 Softwareengineering Graphen und Bäume 1 Prof. Dr.-Ing. Axel Benz, Berlin School of Economics and Law.
se_2_hooks.ppt1 Softwareengineering Einfache Hooks und Abstrakte Methoden (Klassen) Prof. Dr.-Ing. Axel Benz, Berlin School of Economics and.
se_7_parametrierte_klassen.ppt1 Softwareengineering Parametrierte Klassen Prof. Dr.-Ing. Axel Benz, Berlin School of Economics and Law.
Programmiervorkurs WS 2014/15 Methoden
Java-Kurs - 8. Übung Besprechung der Hausaufgabe.
Analyse der Laufzeit von Algorithmen
Die Tiefensuche Vorgedanke: Die Sage von Theseus und dem Minotaurus
10 Graphen gerichtete und ungerichtete, mit Marken an Ecken und/oder Kanten Anwendungsgebiete: Verkehrsnetze, Kommunikationsnetze, Netzpläne, Spiele,...
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Vorlesung der Algorithmus von Floyd Foliendesign:
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Vorlesung Datenstrukturen für den Algorithmus von.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Vorlesung der Algorithmus von Floyd.
Programmiersprachen II Vorbesprechung Klausur Prof. Dr. Reiner Güttler Fachbereich GIS HTW.
Programmiersprachen II Graph_Algorithmen Einführung Prof. Dr. Reiner Güttler Fachbereich GIS HTW.
Einführung in die Informationsverarbeitung Teil Thaller Stunde V: Wege und warum man sie geht Graphen. Köln 14. Januar 2016.
Tutorium Software-Engineering SS14 Florian Manghofer.
Tutorium Software-Engineering SS14 Florian Manghofer.
Anforderungen an die neue Datenstruktur
Objektorientierung Gliederung von Daten und Funktionen zu Objekten
Raphael Fischer Informatik II - Übung 03 Raphael Fischer
3. Die Datenstruktur Graph 3.2 Repräsentation von Graphen
 Präsentation transkript:

Softwareengineering Graphen und Bäume Teil II Prof. Dr.-Ing. Axel Benz, Berlin School of Economics and Law 05.04.2017 se_7_graphen_und_baeume_III.ppt

Typische Operationen auf Graphen Test, ob der Graph ein zusammenhängender Graph ist Zyklensuche im Graphen Kürzester Weg von Knoten a nach Knoten b usw. Wir konzentrieren uns hier beispielhaft auf die Zyklensuche 05.04.2017 se_7_graphen_und_baeume_III.ppt

Standard-Technik für Graphen: "Einfärben" von Knoten Der Graph wird, den Kanten folgend, durchlaufen und die besuchten Knoten werden eingefärbt. Wenn ich von einem Knoten nicht weiter komme, liegt er nicht in einem Zyklus und wird gestrichen. Wenn ich einen neuen Knoten besuche, kann ich nachschauen, ob er bereits eingefärbt wurde. 05.04.2017 se_7_graphen_und_baeume_III.ppt

Properties und Methoden für einen Graphen Konstruktor: new Graph() Aufbau des Graphen: Graph.add_node(Node n) Graph.add_edge(Node source, Node target) Informationen über den Graphen bekommen: Node[] getAllNodes() Boolean isInCycle(Node n) Boolen hasCycle(); Knotenoperationen: Node[] nextNodes(Node n) // Direkt von n erreichbaren Knoten) Konstruktor: new Node(); new Node(String content); Einfärben: setColor(String color); 05.04.2017 se_7_graphen_und_baeume_III.ppt

Jeder Knoten erhält eine Liste seiner Folgeknoten Methoden der Knoten: Verwaltung der Kanten (Adjazenzliste wäre auch möglich, aber hier mal anders) Jeder Knoten erhält eine Liste seiner Folgeknoten Methoden der Knoten: void addFollower(node n) Liste getFollowers() n f1 f2 f3 f4 05.04.2017 se_7_graphen_und_baeume_III.ppt

Implementierung Bei den Vorüberlegungen hat sich gezeigt, dass wir ein Array mit wachsender Größe brauchen. Wir wählen dazu die Datenstruktur java.util.vector. import java.util.Vector; public class Node { private Vector followers; private String content; private String color; public void addFollower(Node n) { followers.add(n); } public Vector getFollowers(){ return followers; 05.04.2017 se_7_graphen_und_baeume_III.ppt

Zyklensuche: Intiale Funktion 05.04.2017 se_7_graphen_und_baeume_III.ppt

Zyklensuche: Kernfunktion 05.04.2017 se_7_graphen_und_baeume_III.ppt

Baumdurchlauf Ein Baum hat keine Zyklen, deswegen kann man beim Durchlauf auf das Färben verzichten. Der Baumdurchlauf ist eine Tiefensuche: Es werde immer zuerst die Kinder bis zum Ende verfolgt, dann wird auf das nächste Geschwisterkind übergegangen. 05.04.2017 se_7_graphen_und_baeume_III.ppt

Baumdurchlauf Präfix Eine Operation, die beim ersten Besuch eines Knotens durchgeführt wird, wird als Präfix bezeichnet. 05.04.2017 se_7_graphen_und_baeume_III.ppt

Baumdurchlauf Postfix Eine Operation, die beim letzten Besuch eines Knotens durchgeführt wird, wird als Postfix bezeichnet. 05.04.2017 se_7_graphen_und_baeume_III.ppt

Baumdurchlauf Infix Eine Operation, die beim Wechsel von einem Kind zum nächsten ausgeführt wird (oder wenn gar keine Kinder da sind), wird als Infix bezeichnet. 05.04.2017 se_7_graphen_und_baeume_III.ppt

Anwendung Infix: Sortieren über Bäume Wir bilden spezielle Bäume: Jeder Knoten hat höchstens 2 Kinder Die Kinder sind "geordnet" (siehe unten): Ausgangssituation: 4,1,23,6,4,67,43,32,5,3 soll sortiert werden. Algorithmus: erste Zahl, wird erster Knoten Ab diesem Moment hängen wir Knoten unten an, die niedrigeren Knoten links, die höheren Knoten rechts. 4 05.04.2017 se_7_graphen_und_baeume_III.ppt

Anwendung Infix: Sortieren über Bäume Ausgangssituation: 4,1,23,6,67,43,32,5,3 Infix-Durchlauf ergibt geordnete Werte: 1,3,4,5,6,23,32, 43,67 4 1 23 3 6 67 5 43 32 05.04.2017 se_7_graphen_und_baeume_III.ppt