Algorithmen und Datenstrukturen 2



Ähnliche Dokumente
ADS: Algorithmen und Datenstrukturen 2

WS 2009/10. Diskrete Strukturen

ADS: Algorithmen und Datenstrukturen 2

8 Diskrete Optimierung

ADS: Algorithmen und Datenstrukturen 2

1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie

Algorithmen und Datenstrukturen 2

Kapitel 6: Graphalgorithmen Gliederung

Vorlesung Informatik 2 Algorithmen und Datenstrukturen. (20 Graphen) T. Lauer

Konzepte der Informatik

Anmerkungen zur Übergangsprüfung

Informatik I WS 07/08 Tutorium 24

Algorithmische Mathematik

Das Briefträgerproblem

1 topologisches Sortieren

Algorithmen und Datenstrukturen SS09. Foliensatz 16. Michael Brinkmeier. Technische Universität Ilmenau Institut für Theoretische Informatik

Datenstrukturen & Algorithmen

Kombinatorische Optimierung

Graphen: Datenstrukturen und Algorithmen

Vorlesung Diskrete Strukturen Graphen: Wieviele Bäume?

Graphen: Einführung. Vorlesung Mathematische Strukturen. Sommersemester 2011

Algorithmentheorie Maximale Flüsse

Algorithmen II Vorlesung am

Graphen und Bäume. A.1 Graphen

Formale Systeme. Binary Decision Diagrams. Prof. Dr. Bernhard Beckert WS 2010/2011 KIT INSTITUT FÜR THEORETISCHE INFORMATIK

3.1 Konstruktion von minimalen Spannbäumen Es gibt zwei Prinzipien für die Konstruktion von minimalen Spannbäumen (Tarjan): blaue Regel rote Regel

Statistische Untersuchungen zu endlichen Funktionsgraphen

Programmiersprachen und Übersetzer

Binäre Bäume Darstellung und Traversierung

Einführung in die Algebra

Algorithmen und Datenstrukturen 2-1. Seminar -

Kürzeste Wege in Graphen. Maurice Duvigneau Otto-von-Guericke Universität Fakultät für Informatik

Einführung in Petri-Netze. Modellierung von Abläufen und Prozessen (1) Abhängigkeitsgraphen: Motivation. Petri-Netze

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.

Algorithmen und Datenstrukturen (WS 2007/08) 63

Algorithmen und Datenstrukturen

w a is die Anzahl der Vorkommen von a in w Beispiel: abba a = 2

Informatik 11 Kapitel 2 - Rekursive Datenstrukturen

ADS: Algorithmen und Datenstrukturen 2

WS 2013/14. Diskrete Strukturen

Software-Engineering SS03. Zustandsautomat

Gliederung. Definition Wichtige Aussagen und Sätze Algorithmen zum Finden von Starken Zusammenhangskomponenten

Algorithmen und Datenstrukturen

Kapitel 4: Dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2012/13. Prof. Dr. Sándor Fekete

Kürzeste Wege in Graphen. Orte mit Straßenverbindungen. Coma I Rolf Möhring

Algorithmen und Datenstrukturen Suchbaum

Eine molekulare Lösung des Hamiltonkreisproblems mit DNA

Die Komplexitätsklassen P und NP

Vorlesung Datenstrukturen

5 Graphen. Repräsentationen endlicher Graphen. 5.1 Gerichtete Graphen. 5.2 Ungerichtete Graphen. Ordnung von Graphen

Idee: Wenn wir beim Kopfknoten zwei Referenzen verfolgen können, sind die Teillisten kürzer. kopf Eine Datenstruktur mit Schlüsselwerten 1 bis 10

Literatur. Dominating Set (DS) Dominating Sets in Sensornetzen. Problem Minimum Dominating Set (MDS)

WS 2008/09. Diskrete Strukturen

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

Graphentheorie Mathe-Club Klasse 5/6

Primzahlen und RSA-Verschlüsselung

Teil III: Routing - Inhalt I. Literatur. Geometric Routing. Voraussetzungen. Unit Disk Graph (UDG) Geometric Routing 29

Bäume und Wälder. Bäume und Wälder 1 / 37

Übungskomplex Felder (1) Eindimensionale Felder Mehrdimensionale Felder

Einführung in Scheduling

Einführung in die Informatik 2

Definition und Begriffe

50. Mathematik-Olympiade 2. Stufe (Regionalrunde) Klasse Lösung 10 Punkte

= n (n 1) 2 dies beruht auf der Auswahl einer zweielementigen Teilmenge aus V = n. Als Folge ergibt sich, dass ein einfacher Graph maximal ( n E = 2

Expander Graphen und Ihre Anwendungen

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny

Das Dilemma des Einbrechers Wer die Wahl hat, hat die Qual!

Sortierverfahren für Felder (Listen)

Grundlagen der Theoretischen Informatik, SoSe 2008

Unterscheidung: Workflowsystem vs. Informationssystem

Grundlagen der Künstlichen Intelligenz

Graphenalgorithmen und lineare Algebra Hand in Hand Vorlesung für den Bereich Diplom/Master Informatik

Rente = laufende Zahlungen, die in regelmäßigen Zeitabschnitten (periodisch) wiederkehren Rentenperiode = Zeitabstand zwischen zwei Rentenzahlungen

Institut für Programmierung und Reaktive Systeme 25. August Programmier-Labor Übungsblatt. int binarysearch(int[] a, int x),

Tutorium Algorithmen & Datenstrukturen

Guten Morgen und Willkommen zur Saalübung!

AutoCAD Dienstprogramm zur Lizenzübertragung

Beispiele für Relationen

Algorithmen und Datenstrukturen. Große Übung vom Nils Schweer

Grundlagen Theoretischer Informatik I SoSe 2011 in Trier. Henning Fernau Universität Trier fernau@uni-trier.de

Programmieren für Ingenieure Sommer Ein Rechner. Rechner sind überall. Gerät, das mittels programmierbarer Rechenvorschriften Daten verarbeitet.

Einheit 11 - Graphen

Quadratische Gleichungen

4. Relationen. Beschreibung einer binären Relation

Erzeugung zufälliger Graphen und Bayes-Netze

Grundbegriffe der Informatik Tutorium 8

15 Optimales Kodieren

Die Verbindung von Linearer Programmierung und Graphentheorie

Browsereinstellungen für moneycheck24 in Explorer unter Windows

Statuten in leichter Sprache

2.5. VERBINDUNGSNETZWERKE GESTALTUNGSKRITERIEN DER NETZWERKE TOPOLOGIE ALS GRAPH. Vorlesung 5 TOPOLOGIE: DEFINITIONEN : Sei G = (V, E) ein Graph mit:

Was bisher geschah Wissensrepräsentation und -verarbeitung in Zustandsübergangssystemen Constraint-Systemen Logiken Repräsentation von Mengen

Theoretische Grundlagen der Informatik

15. Elementare Graphalgorithmen

Internet online Update (Mozilla Firefox)

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Wärmebildkamera. Arbeitszeit: 15 Minuten

Transkript:

Algorithmen und Datenstrukturen 2 Sommersemester 2006 3. Vorlesung Peter F. Stadler Universität Leipzig Institut für Informatik studla@bioinf.uni-leipzig.de

Algorithmen für Graphen Fragestellungen: Suche von Objekten in Graphen Suche von kurzen Wegen in Graphen Vollständiges Durchlaufen von Graphen Besuch aller Knoten Besuch aller Kanten Färbungsprobleme P. Stadler Algorithmen und Datenstrukturen 2 2

Whdlg: Graphen Graphen sind zur Repräsentation von Problemen vielseitig verwendbar, z.b. - Städte: Verbindungswege - Personen: Relationen zwischen ihnen - Rechner: Verbindungen - Aktionen: zeitliche Abhängigkeiten Graph: Menge von Knoten (Vertices) und Kanten (Edges) - ungerichtete Graphen - gerichtete Graphen (Digraph, Directed graph) - gerichtete, azyklische Graphen (DAG, Directed Acyclic Graph) P. Stadler Algorithmen und Datenstrukturen 2 3

Definitionen G = (V, E) heißt ungerichteter Graph gdw.: - V ist eine endliche, nichtleere Menge. V heißt Knotenmenge, Elemente von V heißen Knoten - E ist eine Menge von ein- oder zweielementigen Teilmengen von V. E heißt Kantenmenge, ein Paar {u,v} E heißt Kante - Eine Kante {u} heißt Schlinge - Zwei Knoten u und v heißen benachbart (adjazent) gdw.: {u,v} E oder (u=v) {u} E. Sei G = (V,E) ein ungerichteter Graph. Wenn E keine Schlinge enthält, so heißt G schlingenlos. Bemerkung: Im weiteren werden wir Kanten {u,v} als Paare (u,v) oder (v,u) und Schlingen {u} als Paar (u,u) schreiben, um spätere gemeinsame Definitionen für ungerichtete und gerichtete Graphen nicht differenzieren und notationell unterscheiden zu müssen. Seien G = (V G, E G ) und H = (V H, E H ) ungerichtete Graphen. - H heißt Teilgraph von G (H G) gdw.: V G V H und E G E H - H heißt vollständiger Teilgraph von G : H G und [(u,v) E G mit u,v V H => (u,v) E H ]. P. Stadler Algorithmen und Datenstrukturen 2 4

Beispiele ungerichteter Graphen Beispiel 1 -G = (V G, E G ) mit -V G = {1, 2, 3, 4}, -E G = {(1, 2), (1, 3), (1, 4), (2, 3), (2, 4), (3, 4)} Beispiel 2 P. Stadler Algorithmen und Datenstrukturen 2 5

Definitionen (2) G = (V,E) heißt gerichteter Graph (Directed Graph, Digraph) gdw.: - V ist endliche Menge. V heißt Knotenmenge, Elemente von V heißen Knoten. -E VxV heißt Kantenmenge, Elemente von E heißen Kanten. Schreibweise: (u, v) oder u v. Dabei ist u die Quelle, v das Ziel der Kante u v. - Eine Kante (u, u) heißt Schlinge. Beispiel 1 -G = (V G, E G ) mit V G = {1, 2, 3, 4} und E G = {1 2, 1 3, 1 4, 2 3, 2 4, 3 4} Beispiel 2 P. Stadler Algorithmen und Datenstrukturen 2 6

Definitionen (3) Sei G = (V,E) ein (un-)gerichteter Graph und k = (v o,..., v n ) V n+1 - k heißt Kantenfolge der Länge n von v o nach v n, wenn für alle i {0,..., n-1} gilt: (v i, v i+1 ) E. Im gerichteten Fall ist v o der Startknoten und v n der Endknoten, im ungerichteten Fall sind v o und v n die Endknoten von k. -v 1,..., v n-1 sind die inneren Knoten von k. Ist v o = v n, so ist die Kantenfolge geschlossen. - k heißt Kantenzug der Länge n von v o nach v n, wenn k Kantenfolge der Länge n von v o nach v n ist und wenn für alle i, j {0,..., n-1} mit i j gilt: (v i, v i+1 ) (v j, v j+1 ). - k heißt Weg (Pfad) der Länge n von v o nach v n, wenn k Kantenfolge der Länge n von v o nach v n ist und wenn für alle i, j {0,..., n} mit i j gilt: v i v j - k heißt Zyklus oder Kreis der Länge n, wenn k geschlossene Kantenfolge der Länge n von v o nach v n und wenn k' = (v o,..., v n-1 ) ein Weg ist. Ein Graph ohne Zyklus heißt kreisfrei oder azyklisch. Ein gerichteter azyklischer Graph heißt auch DAG (Directed Acyclic Graph) - Graph ist zusammenhängend, wenn zwischen je 2 Knoten ein Kantenzug existiert P. Stadler Algorithmen und Datenstrukturen 2 7

Definitionen (4) Sei G = (V, E) (un)gerichteter Graph, k Kantenfolge von v nach w. Dann gibt es einen Weg von v nach w. Sei G = (V, E) ein gerichteter Graph - Eingangsgrad: eg(v) = {v' (v', v) E} - Ausgangsgrad: ag(v) = {v' (v, v') E} - G heißt gerichteter Wald, wenn G zyklenfrei ist und für alle Knoten v gilt eg(v) 1. Jeder Knoten v mit eg(v)=0 ist eine Wurzel des Waldes. - Aufspannender Wald (Spannwald) von G: gerichteter Wald W=(V,F) mit F E Gerichteter Baum (Wurzelbaum): gerichteter Wald mit genau 1 Wurzel - für jeden Knoten v eines gerichteten Baums gibt es genau einen Weg von der Wurzel zu v - Erzeugender / aufspannender Baum (Spannbaum) eines Digraphen G: Spannwald von G mit nur 1 Wurzel P. Stadler Algorithmen und Datenstrukturen 2 8

Definitionen (5) Beobachtung: Zu jedem zusammenhängenden Graphen gibt es (mind.) einen Spannbaum: Markierte Graphen Sei G = (V, E) ein (un-)gerichteter Graph, M V und M E Mengen und µ: V M V und g : E M E Abbildungen. - G' = (V, E, µ) heißt knotenmarkierter Graph - G'' = (V, E, g) heißt kantenmarkierter Graph - G''' = (V, E, µ, g) heißt knoten- und kantenmarkierter Graph M V und M E sind die Markierungsmengen (z.b. Alphabete oder Zahlen) P. Stadler Algorithmen und Datenstrukturen 2 9

Algorithmische Probleme für Graphen I Gegeben sei ein (un)gerichteter Graph G = (V, E) Man entscheide, ob G zusammenhängend ist Man entscheide, ob G azyklisch ist Man finde zu zwei Knoten, v, w V einen kürzesten Weg von v nach w (bzw. "günstigster" Weg bzgl. Kantenmarkierung) Man entscheide, ob G einen Hamiltonschen Zyklus besitzt, d.h. einen Zyklus der Länge V Man entscheide, ob G einen Eulerschen Weg besitzt, d.h. einen Weg, in dem jede Kante genau einmal verwendet wird, und dessen Anfangs- und Endpunkte gleich sind (Königsberger Brückenproblem) P. Stadler Algorithmen und Datenstrukturen 2 10

Algorithmische Probleme für Graphen II Färbungsproblem: Man entscheide zu einer vorgegebenen natürlichen Zahl k ("Anzahl der Farben"), ob es eine Knotenmarkierung µ: V {1, 2,..., k} so gibt, dass für alle (v, w) E gilt: µ(v) µ(w) Cliquenproblem: Man entscheide für ungerichteten Graphen G zu vorgegebener natürlichen Zahl k, ob es einen Teilgraphen G' ("k-clique") von G gibt, dessen Knoten alle paarweise durch Kanten verbunden sind Matching-Problem: Sei G = (V, E) ein Graph. Eine Teilmenge M E der Kanten heißt Matching, wenn jeder Knoten von V zu höchstens einer Kante aus M gehört. Problem: finde ein maximales Matching Traveling Salesman Problem: Bestimme optimale Rundreise durch n Städte, bei der jede Stadt nur einmal besucht wird und minimale Kosten entstehen Hierunter sind bekannte NP-vollständige Probleme, z.b. das Cliquenproblem, das Färbungsproblem, die Hamilton-Eigenschaftsprüfung und das Traveling Salesman Problem P. Stadler Algorithmen und Datenstrukturen 2 11

Speicherung von Graphen I Knoten- und Kantenlisten - Speicherung von Graphen als Liste von Zahlen (z.b. in Array oder verketteter Liste) - Knoten werden von 1 bis n durchnummeriert; Kanten als Paare von Knoten Kantenliste - Liste: Knotenzahl, Kantenzahl, Liste von Kanten (je als 2 Zahlen) - Speicherbedarf: 2 + 2m (m = Anzahl Kanten) Knotenliste - Liste: Knotenzahl, Kantenzahl, Liste von Knoteninformationen - Knoteninformation: Ausgangsgrad und Zielknoten ag(i), v 1.. v ag(i) - Speicherbedarf: 2 + n+m (n= Anzahl Knoten, m = Anzahl Kanten) Beispiel P. Stadler Algorithmen und Datenstrukturen 2 12

Speicherung von Graphen II Adjazenzmatrix Ein Graph G = (V,E) mit V = n wird in einer Boole'schen n x n -Matrix AG =(a ij ), mit 1 i,j n { 1 falls (i,j) E gespeichert, wobei a ij = 0 falls (i,j) E Beispiel Speicherplatzbedarf O(n 2 ) - jedoch nur 1 Bit pro Position (statt Knoten/Kantennummern) - unabhängig von Kantenmenge - für ungerichtete Graphen ergibt sich symmetrische Belegung (Halbierung des Speicherbedarfs möglich) P. Stadler Algorithmen und Datenstrukturen 2 13

Speicherung von Graphen III Adjazenzlisten - verkettete Liste der n Knoten (oder Array-Realisierung) - pro Knoten: verkettete Liste der Nachfolger (repräsentiert die von dem Knoten ausgehenden Kanten) - Speicherbedarf: n+m Listenelemente P. Stadler Algorithmen und Datenstrukturen 2 14

Speicherung von Graphen: Vergleich Komplexitätsvergleich - Löschen eines Knotens löscht auch zugehörige Kanten - Änderungsaufwand abhängig von Realisierung der Adjazenzmatrix und Adjazenzliste Welche Repräsentation geeigneter ist, hängt auch vom Problem ab: - Frage: Gibt es Kante von a nach b: Matrix - Durchsuchen von Knoten in durch Nachbarschaft gegebener Reihenfolge: Listen Transformation zwischen Implementierungsalternativen möglich P. Stadler Algorithmen und Datenstrukturen 2 15