Erinnerung VL
|
|
- Meta Fleischer
- vor 7 Jahren
- Abrufe
Transkript
1 Erinnerung VL Sortierte Folgen: eierlegende Wollmilchsau Suchbäume: binäre und (a, b)-bäume (a, b)-bäume: remove, insert etwas kompliziert (balancieren), aber in logarithmischer Zeit möglich Heute: Augmentierte Suchbäume, Repräsentationen von Graphen KIT Institut für Theoretische Informatik
2 Erweiterte (augmentierte) Suchbäume Idee: zusätzliche Infos verwalten mehr (schnelle) Operationen. Nachteil: Zeit- und Platzverschwendung, wenn diese Operationen nicht wichtig sind. gold plating KIT Institut für Theoretische Informatik
3 Elternzeiger Idee: Knoten speichern Zeiger auf Elternknoten Anwendungen: schnelleres remove, insertbefore, insertafter, falls man ein handle des Elements kennt. Man spart die Suche. Frage: was speichert man bei (a, b)-bäumen (zusätzlich)? KIT Institut für Theoretische Informatik 3
4 Teilbaumgröÿen Idee (Binärbaum): speichere, wie viele Blätter von links erreichbar. (Etwas anders als im Buch!) // return k-th Element in subtree rooted at h Function selectrec(h, k) if h leftsize k then return select(l,k) else return select(r,k leftsize) Zeit: O(log n) Übung: Was ist anders bei (a, b)-bäumen? Übung: Rang eines Elements e bestimmen. Übung: Gröÿe eines Bereichs a..b bestimmen. KIT Institut für Theoretische Informatik 4
5 Beispiel select 6th element left subtree size i= > <6 i=4 4+> i=4 4+<6 9 i= KIT Institut für Theoretische Informatik 5
6 Zusammenfassung Suchbäume erlauben viele eziente Operationen auf sortierten Folgen. Oft logarithmische Ausführungszeit Der schwierige Teil: logarithmische Höhe erzwingen. Augmentierungen zusätzliche Operationen KIT Institut für Theoretische Informatik 6
7 Mehr zu sortierten Folgen Karteikasten Array mit Löchern (a, b)-bäume sind wichtig für externe Datenstrukturen Ganzzahlige Schlüssel aus..u Grundoperationen in Zeit O(log logu) Verallgemeinerungen: Zeichenketten, mehrdimensionale Daten KIT Institut für Theoretische Informatik 7
8 Was haben wir noch gelernt? Invarianten, Invarianten, Invarianten Komplexe verzeigerte Datenstrukturen Datenstruktur-Augmentierung Unterschied Interface Repräsentation Tradeo Array, sortierte Liste, Hash-Tabelle KIT Institut für Theoretische Informatik 8
9 Kap. 8: Repräsentation von Graphen Einleitung 736 stellt L. Euler die folgende touristische Frage: Straÿen- oder Computernetzwerke Zugverbindungen (Raum und Zeit) Soziale Netzwerke (Freundschafts-, Zitier-, Empfehlungs-,... ) Aufgabenabhängigkeiten Scheduling-Probleme Werte und arithmetische Operationen Compilerbau... KIT Institut für Theoretische Informatik 9
10 Repräsentation von Graphen self loop s t Was zählt, sind die Operationen! H w z w y x Eine triviale Repräsentation Felder v v G u Verkettete Listen u s x K 5 Matrizen Implizit w v U t Diskussion u u K 3,3 w v undirected w v bidirected KIT Institut für Theoretische Informatik 0
11 Notation und Konventionen Graph G = ( }{{} V, }{{} E ): Knoten Kanten n = V m = E Knoten: s,t,u,v,w,x,y,z Kanten e E. Oder: Knotenpaare (manchmal Knotenmengen der Gröÿe ) KIT Institut für Theoretische Informatik
12 Notation und Konventionen Graph G = ( }{{} V, }{{} E ): Knoten Kanten n = V m = E Knoten: s,t,u,v,w,x,y,z Kanten e E. Oder: Knotenpaare (manchmal Knotenmengen der Gröÿe ) WICHTIG: Buchstabenzuordnungen sind unverbindliche Konvention Manchmal werden ganz andere Buchstaben verwendet. Im Zweifel immer genau sagen, was was ist. Das gilt für die ganze theoretische Informatik! KIT Institut für Theoretische Informatik
13 Ungerichtete gerichtete Graphen Meist repräsentieren wir ungerichtete Graphen durch doppelt gerichtete Graphen wir konzentrieren uns auf gerichtete Graphen KIT Institut für Theoretische Informatik
14 Operationen Ziel: O(Ausgabegröÿe) für alle Operationen Grundoperationen: Statische Graphen: Konstruktion, Konversion und Ausgabe (O(m + n) Zeit) Navigation: Gegeben v, nde ausgehende Kanten. Dynamische Graphen: Knoten/Kanten einfügen/löschen s y z w v x t u KIT Institut für Theoretische Informatik 3
15 Weitere Operationen Zugri auf assoziierte Information s z 4 v t Mehr Navigation: Finde eingehende Kanten Kantenanfragen: (z,x) E? 7 y 6 5? w x 5 3 u KIT Institut für Theoretische Informatik 4
16 Kantenfolgenrepräsentation Folge von Knotenpaaren (oder Tripel mit Kantengewicht) + kompakt + gut für I/O Fast keine nützlichen Operationen auÿer alle Kanten zu durchlaufen Beispiele: Übung: isolierte Knoten suchen, Kruskals MST-Algorithmus (später), Konvertierung. u (u,v),(v,w),(w,u),(u,w) w v KIT Institut für Theoretische Informatik 5
17 Adjazenzfelder V =..n oder 0..n Kantenfeld E speichert Ziele und zwar gruppiert nach Startknoten V speichert Index der ersten ausgehenden Kante Dummy-Eintrag V [n + ] speichert m + 4 V n 5=n E m 7=m+ Beispiel: Ausgangsgrad(v) = V[v + ] V[v] KIT Institut für Theoretische Informatik 6
18 Kantenliste Adjazenzfeld Zur Erinnerung: KSort (BucketSort) Function adjacencyarray(edgelist) V=,0,...,0 : Array [..n + ] of N foreach (u,v) EdgeList do V [u]++ for v := to n + do V [v] += V [v ] foreach (u,v) EdgeList do E[ V [u]] = v return (V,E) // count // prefix sums // place 4 V n 5=n E m 7=m+ KIT Institut für Theoretische Informatik 7
19 Beispiel 3 4 n 5=n+ V count prefix sum distribute V E m 7=m+ KIT Institut für Theoretische Informatik 8
20 Operationen für Adjanzenzfelder Navigation: einfach Kantengewichte: E wird Feld von Records (oder mehrere Felder) Knoteninfos: V wird Feld von Records (oder mehrere Felder) a d c e b f 3 n 5=n+ 4 V E m w a b c d e f 7=m+ KIT Institut für Theoretische Informatik 9
21 Operationen für Adjanzenzfelder Navigation: einfach Kantengewichte: E wird Feld von Records (oder mehrere Felder) Knoteninfos: V wird Feld von Records (oder mehrere Felder) Eingehende Kanten: umgedrehten Graphen speichern Kanten löschen: explizite Endindizes Batched Updates: neu aufbauen a d c e b f 3 n 5=n+ 4 V E m w a b c d e f 7=m+ KIT Institut für Theoretische Informatik 9
22 Kantenanfragen Hashtabelle H E speichert (ggf. zusätzlich) alle Kanten. Unabhängig von der sonstigen Graphrepräsentation KIT Institut für Theoretische Informatik 0
23 Adjazenzlisten speichere (doppelt) verkettete Liste adjazenter Kanten für jeden Knoten. + einfaches Einfügen von Kanten + einfaches Löschen von Kanten (ordnungserhaltend) mehr Platz (bis zu Faktor 3) als Adjazenzfelder mehr Cache-Misses n n m KIT Institut für Theoretische Informatik
24 Adjazenzlisten aufrüsten Knotenlisten für Knotenupdates Eingehende Kanten Kantenobjekte (in globaler Kantenliste) Zeiger auf Umkehrkante 0 3 E list out list in list rev from to (0,) (0,) 0 0 V list first first deg deg out in out in (,) 0 (,3) (,) (,3) KIT Institut für Theoretische Informatik
25 Customization (Zuschneiden) Anpassen der (Graph)Datenstruktur an die Anwendung. Ziel: schnell, kompakt. benutze Entwurfsprinzip: make the common case fast Listen vermeiden Mögliches Problem: Software-Engineering-Alptraum Möglicher Ausweg: Trennung von Algorithmus und Repräsentation KIT Institut für Theoretische Informatik 3
26 Beispiel: DAG-Erkennung Beispiel aus Notations-Kapitel (generisch, leicht variiert): Function isdag(g = (V,E)) while v V : indegree(v) = 0 do invariant G is a DAG i the input graph is a DAG V := V \ {v} E:= E \ ({v} V V {v}) return V =0 KIT Institut für Theoretische Informatik 4
27 Beispiel: DAG-Erkennung Function isdag(g = (V, E)) // Adjazenzarray! dropped:= 0 compute array indegree of indegrees of all nodes// Zeit O(m + n)! droppable={v V : indegree[v] = 0} : Stack while droppable /0 do invariant G is a DAG i the input graph is a DAG v:= droppable.pop dropped++ foreach edge (v,w) E do indegree[w] if indegree[w] = 0 then droppable.push(w) return V = dropped Laufzeit: O(m + n) (auch ohne dynamische Graphdatenstruktur!) KIT Institut für Theoretische Informatik 5
28 Adjazenz-Matrix A {0,} n n with A(i,j) = [(i,j) E] + platzezient für sehr dichte Graphen platzinezient sonst. Übung: was bedeutet sehr dicht hier? + einfache Kantenanfragen langsame Navigation ++ verbindet lineare Algebra und Graphentheorie Beispiel: C = A k. C ij =# k-kanten-pfade von i nach j Wichtige Beschleunigungstechniken: O(log k) Matrixmult. für Potenzberechnung Matrixmultiplikation in subkubischer Zeit, z. B., Strassens Algorithmus KIT Institut für Theoretische Informatik 6
29 Pfade zählen mittels LA Adjanzenzmatrix: A {0,} n n mit A(i,j) = [(i,j) E] Sei C:= A k. Behauptung: C ij =# k-kanten-pfade von i nach j. Beweis: IA (k = ) C = A = A stimmt nach Denition von A. Schluss k k + : C ij = (A k A) ij = A k ila lj l A k il =#k-kanten-pfade von i nach l (nach IV). A k il A lj =#k + -Kanten-Pfade von i nach j mit (l,j) als letzter Kante. Jede mögliche letzte Kante wird genau einmal gezählt. Übung: zähle Pfade der Länge k KIT Institut für Theoretische Informatik 7
30 Beispiel, wo Graphentheorie bei LA hilft Problemstellung: löse Bx = c Sei G = (..n,e = {{i,j} : B ij 0}) Nehmen wir an, G habe zwei Zusammenhangskomponenten tausche Zeilen und Spalten derart, dass ( )( ) ( ) B 0 x c = 0 B x c zu lösen bleibt. Übung: Was passiert, wenn (..n,e = {(i,j) : B ij 0}) ein DAG ist? KIT Institut für Theoretische Informatik 8
31 Implizite Repräsentation Kompakte Repräsentation möglicherweise sehr dichter Graphen Implementiere Algorithmen direkt mittels dieser Repräsentation Beispiel: Intervall-Graphen Knoten: Intervalle [a,b] R Kanten: zwischen überlappenden Intervallen KIT Institut für Theoretische Informatik 9
32 Zusammenhangstest für Intervallgraphen V = {[a,b ],...,[a n,b n ]} E = {{[a i,b i ],[a j,b j ]} : [a i,b i ] [a j,b j ] /0} Idee: durchlaufe Intervalle von links nach rechts. Die Anzahl überlappender Intervalle darf nie auf null sinken. Annahme: Startpunkte in Sortierung vor Endpunkten! Function isconnected(l : SortedListOfIntervalEndPoints) : {0, } remove rst element of L; overlap := foreach p L do if overlap= 0 return false if p is a start point then overlap++ else overlap // end point return true O(n logn) Algorithmus für bis zu O ( n ) Kanten! Übung: Zusammenhangskomponenten nden KIT Institut für Theoretische Informatik 30
33 Beispiel Function isconnected(l : SortedListOfIntervalEndPoints) : {0, } remove rst element of L; overlap := foreach p L do if overlap= 0 return false if p is a start point then overlap++ else overlap // end point return true KIT Institut für Theoretische Informatik 3
34 Graphrepräsentation: Zusammenfassung Welche Operationen werden gebraucht? Wie oft? Adjazenzarrays gut für statische Graphen Pointer exibler, aber auch teurer Matrizen eher konzeptionell interessant KIT Institut für Theoretische Informatik 3
35 Kap. 9: Graphtraversierung Ausgangspunkt oder Baustein fast jedes nichttrivialen Graphenalgorithmus KIT Institut für Theoretische Informatik 33
36 Graphtraversierung als Kantenklassizierung forward s tree backward cross KIT Institut für Theoretische Informatik 34
37 Graphtraversierung als Kantenklassizierung Baumkanten: Elemente des Waldes, der bei der Suche gebaut wird Vorwärtskanten: verlaufen parallel zu Wegen aus Baumkanten Rückwärtskanten: verlaufen antiparallel zu Wegen aus Baumkanten Querkanten: alle übrigen forward s tree backward cross KIT Institut für Theoretische Informatik 35
38 Breitensuche Baue Baum von Startknoten s, der alle von s erreichbaren Knoten mit möglichst kurzen Pfaden erreicht. Berechne Abstände: s b c d e f g tree backward cross forward 0 3 KIT Institut für Theoretische Informatik 36
39 Breitensuche Einfachste Form des Kürzeste-Wege-Problems Umgebung eines Knotens denieren (ggf. begrenzte Suchtiefe) Einfache, eziente Graphtraversierung (auch wenn Reihenfolge egal) s b c d e f g tree backward cross forward 0 3 KIT Institut für Theoretische Informatik 37
40 Breitensuche Algorithmenidee: Baum Schicht für Schicht aufbauen s b c d e f g tree backward cross forward 0 3 KIT Institut für Theoretische Informatik 38
41 Function bfs(s) : Q:= s // aktuelle Schicht while Q do exploriere Knoten in Q merke dir Knoten der nächsten Schicht in Q Q:= Q s b c d e f g tree backward cross forward 0 3 KIT Institut für Theoretische Informatik 39
42 Repräsentation des Baums Feld parent speichert Vorgänger. noch nicht erreicht: parent[v] = Startknoten/Wurzel: parent[s] = s s b c e g tree parent d f KIT Institut für Theoretische Informatik 40
Algorithmen I. Prof. Jörn Müller-Quade Institut für Theoretische Informatik Web: https://crypto.iti.kit.edu/index.php?
Algorithmen I Prof. Jörn Müller-Quade 4.06.07 Institut für Theoretische Informatik Web: https://crypto.iti.kit.edu/index.php?id=799 (Folien von Peter Sanders) KIT Institut für Theoretische Informatik Kap.
MehrCustomization (Zuschneiden)
Customization (Zuschneiden) Anpassen der (Graph)Datenstruktur an die Anwendung. I Ziel: schnell, kompakt. I benutze Entwurfsprinzip: make the common case fast I Listen vermeiden Mögliches Problem: Software-Engineering-Alptraum
Mehr8 Graphrepräsentation
Sanders / van Stee: Algorithmentechnik November, 7 1 8 Graphrepräsentation 1736 fragt L. Euler die folgende touristische Frage: Straßen- oder Computernetzwerke Zugverbindungen (Raum und Zeit) Soziale Netzwerke
MehrAlgorithmen I. Sebastian Schlag Institut für Theoretische Informatik Web:
Algorithmen I Sebastian Schlag 12.06.2017 Institut für Theoretische Informatik Web: https://crypto.iti.kit.edu/index.php?id=799 (Folien von Peter Sanders) KIT Institut für Theoretische Informatik 1 Sortierte
MehrSuchbäume balancieren
Suchbäume balancieren Perfekte Balance: schwer aufrechtzuerhalten Flexible Höhe O(log n): balancierte binäre Suchbäume. Nicht hier (Variantenzoo). Flexibler Knotengrad: (a,b)-bäume. Grad zwischen a und
MehrAlgorithmen I - Tutorium 28 Nr. 9
Algorithmen I - Tutorium 28 Nr. 9 29.06.2017: Spaß mit Graphen und Graphtraversierung Marc Leinweber marc.leinweber@student.kit.edu INSTITUT FÜR THEORETISCHE INFORMATIK (ITI), PROF. DR. JÖRN MÜLLER-QUADE
MehrExkurs: Graphtraversierung
Sanders: Informatik III November 28, 2006 1 Exkurs: Graphtraversierung Begriffe Graphrepräsentation Erreichbarkeit mittels Tiefensuche Kreise Suchen Sanders: Informatik III November 28, 2006 2 Gerichtete
MehrProgramm heute. Algorithmen und Datenstrukturen (für ET/IT) Übersicht: Graphen. Definition: Ungerichteter Graph. Definition: Ungerichteter Graph
Programm heute Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 07 Dr. Stefanie Demirci Computer Aided Medical Procedures Technische Universität München 7 Fortgeschrittene Datenstrukturen Graphen
MehrErinnerung VL
Erinnerung VL.6.16 Graphtraversierung (DFS, topologische Sortierung und mehr) Kürzeste Wege: Problemstellung, Algorithmen Analoger Algorithmus Dijkstras Algorithmus: Idee, Korrektheit Heute: mehr zu Dijkstra,
MehrAlgorithmen I. Prof. Jörn Müller-Quade Institut für Theoretische Informatik Web: https://crypto.iti.kit.edu/index.php?
Algorithmen I Prof. Jörn Müller-Quade 19.6.1 Institut für Theoretische Informatik Web: https://crypto.iti.kit.edu/index.php?id=99 (Folien von Peter Sanders) KIT Institut für Theoretische Informatik 1 Organisatorisches
MehrAlgorithmen I. Prof. Jörn Müller-Quade Institut für Theoretische Informatik Web: https://crypto.iti.kit.edu/index.php?
Algorithmen I Prof. Jörn Müller-Quade 19.06.2017 Institut für Theoretische Informatik Web: https://crypto.iti.kit.edu/index.php?id=799 (Folien von Peter Sanders) KIT Institut für Theoretische Informatik
MehrDenition: Rang eines Elements e einer Folge s = Position von e in sort(s) (angefangen bei 1). Frage: warum ist r nicht notwendig eindeutig?
207 Auswahl (Selection) Denition: Rang eines Elements e einer Folge s = Position von e in sort(s) (angefangen bei 1). Frage: warum ist r nicht notwendig eindeutig? // return an element of s with rank k
MehrGraphenalgorithmen I. Geschickt Programmieren für den ICPC- Wettbewerb. Felix Weissenberger
Graphenalgorithmen I Geschickt Programmieren für den ICPC- Wettbewerb Felix Weissenberger Inhalt Grundlagen zu Graphen Begriffe Darstellung von Graphen Graphenalgorithmen Breitensuche Tiefensuche Topologisches
MehrAlgorithmen I. Prof. Jörn Müller-Quade Institut für Theoretische Informatik Web: https://crypto.iti.kit.edu/index.php?
Algorithmen I Prof. Jörn Müller-Quade 07.06.2017 Institut für Theoretische Informatik Web: https://crypto.iti.kit.edu/index.php?id=799 (Folien von Peter Sanders) KIT Institut für Theoretische Informatik
MehrInformatik II, SS 2016
Informatik II - SS 2016 (Algorithmen & Datenstrukturen) Vorlesung 13 (8.6.2016) Graphenalgorithmen I Algorithmen und Komplexität Graphen Knotenmenge V, typischerweise n V Kantenmenge E, typischerweise
MehrGrundlagen Algorithmen und Datenstrukturen TUM Sommersemester 2011 (2) Dozent: Hanjo Täubig
Grundlagen Algorithmen und Datenstrukturen TUM Sommersemester 2011 (2) Dozent: Hanjo Täubig Janosch Maier 3. August 2011 Inhaltsverzeichnis 1 Sortieren 3 1.1 Externes Sortieren..........................
MehrAlgorithmen I - Tutorium 28 Nr. 11
Algorithmen I - Tutorium 28 Nr. 11 13.07.2017: Spaß mit Schnitten, Kreisen und minimalen Spannbäumen Marc Leinweber marc.leinweber@student.kit.edu INSTITUT FÜR THEORETISCHE INFORMATIK (ITI), PROF. DR.
MehrInformatik II, SS 2016
Informatik II - SS 2018 (Algorithmen & Datenstrukturen) Vorlesung 12 (4.6.2018) Graphenalgorithmen I Yannic Maus Algorithmen und Komplexität Graphen Knotenmenge V, typischerweise n V Kantenmenge E, typischerweise
MehrErinnerung VL
Erinnerung VL 7.06.016 Bellman-Ford-Algorithmus (Brute-Force-Suche) Varianten des Kürzeste-Wege-Problems (azyklische Graphen) Ausblick: Routenplanung in Straÿennetzwerken Motivation Minimale Spannbäume
MehrVorlesung Datenstrukturen
Vorlesung Datenstrukturen Graphdarstellungen Maike Buchin 0.6.017 Graphen Motivation: Graphen treten häufig als Abstraktion von Objekten (Knoten) und ihren Beziehungen (Kanten) auf. Beispiele: soziale
MehrDefinition Gerichteter Pfad. gerichteter Pfad, wenn. Ein gerichteter Pfad heißt einfach, falls alle u i paarweise verschieden sind.
3.5 Gerichteter Pfad Definition 291 Eine Folge (u 0, u 1,..., u n ) mit u i V für i = 0,..., n heißt gerichteter Pfad, wenn ( i {0,..., n 1} ) [ (u i, u i+1 ) A]. Ein gerichteter Pfad heißt einfach, falls
MehrAlgorithmen und Datenstrukturen
Universität Innsbruck Institut für Informatik Zweite Prüfung 16. Oktober 2008 Algorithmen und Datenstrukturen Name: Matrikelnr: Die Prüfung besteht aus 8 Aufgaben. Die verfügbaren Punkte für jede Aufgabe
MehrAlgorithmen I. Prof. Jörn Müller-Quade Institut für Theoretische Informatik Web: https://crypto.iti.kit.edu/index.php?
Algorithmen I Prof. Jörn Müller-Quade 29.05.2017 Institut für Theoretische Informatik Web: https://crypto.iti.kit.edu/index.php?id=799 (Folien von Peter Sanders) KIT Institut für Theoretische Informatik
MehrÜbung Algorithmen und Datenstrukturen
Übung Algorithmen und Datenstrukturen Sommersemester 217 Patrick Schäfer, Humboldt-Universität zu Berlin Agenda: Graphen, Suchbäume, AVL Bäume Heute: Graphen und Bäume Binäre Suchbäume AVL-Bäume Nächste
Mehr15. Elementare Graphalgorithmen
Graphen sind eine der wichtigste Modellierungskonzepte der Informatik Graphalgorithmen bilden die Grundlage vieler Algorithmen in der Praxis Zunächst kurze Wiederholung von Graphen. Dann Darstellungen
MehrInformatik II, SS 2018
Informatik II - SS 2018 (Algorithmen & Datenstrukturen) Vorlesung 13 (6.6.2018) Graphenalgorithmen II Yannic Maus Algorithmen und Komplexität Repräsentation von Graphen Zwei klassische Arten, einen Graphen
MehrAlgorithmen und Datenstrukturen SS09. Foliensatz 16. Michael Brinkmeier. Technische Universität Ilmenau Institut für Theoretische Informatik
Foliensatz 16 Michael Brinkmeier Technische Universität Ilmenau Institut für Theoretische Informatik Sommersemester 2009 TU Ilmenau Seite 1 / 45 Graphen TU Ilmenau Seite 2 / 45 Graphen 1 2 3 4 5 6 7 8
MehrKeller, Schlangen und Listen. Elementare Datenstrukturen Keller, Schlangen und Listen 1 / 14
Keller, Schlangen und Listen Elementare Datenstrukturen Keller, Schlangen und Listen 1 / 14 Listen Listen unterstützen die Operationen Lookup, Insert, Remove. + Listen passen sich der Größe der zu speichernden
MehrEinführung in die Informatik 2
Einführung in die Informatik 2 Bäume & Graphen Sven Kosub AG Algorithmik/Theorie komplexer Systeme Universität Konstanz http://www.inf.uni-konstanz.de/algo/lehre/ss08/info2 Sommersemester 2008 Sven Kosub
MehrGrundlagen der Algorithmen und Datenstrukturen Kapitel 8
Grundlagen der Algorithmen und Datenstrukturen Kapitel 8 Christian Scheideler + Helmut Seidl SS 2009 12.06.09 Kapitel 8 1 Graphen Graph G=(V,E) besteht aus Knotenmenge V Kantenmenge E ungerichteter Graph
MehrAlgorithmen & Komplexität
Algorithmen & Komplexität Angelika Steger Institut für Theoretische Informatik steger@inf.ethz.ch Kürzeste Pfade Problem Gegeben Netzwerk: Graph G = (V, E), Gewichtsfunktion w: E N Zwei Knoten: s, t Kantenzug/Weg
MehrDiskrete Strukturen WS 2005/06. Ernst W. Mayr. 27. Januar Fakultät für Informatik TU München
WS 2005/06 Ernst W. Mayr Fakultät für Informatik TU München http://www14.in.tum.de/lehre/2005ws/ds/ 27. Januar 2006 Ernst W. Mayr 2.16 Inzidenzmatrix 3. Definitionen für gerichtete Graphen 3.1 Digraph
Mehr10. Übung Algorithmen I
INSTITUT FÜR THEORETISCHE INFORMATIK 1 KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft Institut für Theoretische www.kit.edu Informatik Bäume
MehrKarlsruher Institut für Technologie Institut für Theoretische Informatik. Klausur Algorithmen I
Name: Vorname: Matrikelnummer: Klausur-ID: svorschlag Karlsruher Institut für Technologie Institut für Theoretische Informatik Jun.-Prof. D. Hofheinz, Jun.-Prof. H. Meyerhenke 8.09.05 Klausur Algorithmen
MehrKapitel 4: Dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2017/18. Pro f. Dr. Sán do r Fe k e te
Kapitel 4: Dynamische Datenstrukturen Algorithmen und Datenstrukturen WS 2017/18 Pro f. Dr. Sán do r Fe k e te 1 4.1 Grundoperationen Aufgabenstellung: 3 4.1 Grundoperationen Aufgabenstellung: Verwalten
MehrKap. 5: Graphen. Carsten Gutwenger Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, TU Dortmund. 17. VO DAP2 SS
Kap. 5: Graphen Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, TU Dortmund 17. VO DAP2 SS 2009 23. Juni 2008 1 Motivation Warum soll ich heute hier bleiben? Graphen sind wichtig und
MehrInformatik II Prüfungsvorbereitungskurs
Informatik II Prüfungsvorbereitungskurs Tag 4, 23.6.2016 Giuseppe Accaputo g@accaputo.ch 1 Programm für heute Repetition Datenstrukturen Unter anderem Fragen von gestern Point-in-Polygon Algorithmus Shortest
MehrKarlsruher Institut für Technologie. Klausur Algorithmen I
Klausur-ID: Vorname: Matrikelnummer: Karlsruher Institut für Technologie Institut für Theoretische Informatik Prof. Jörn Müller-Quade 11. April 2018 Klausur Algorithmen I Aufgabe 1. Kleinaufgaben 15 Punkte
MehrVorlesung Algorithmische Geometrie. Streckenschnitte. Martin Nöllenburg INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK
Vorlesung Algorithmische Geometrie INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Martin Nöllenburg 22.04.2014 Überlagern von Kartenebenen Beispiel: Gegeben zwei verschiedene Kartenebenen,
MehrErinnerung VL vom
Erinnerung VL vom 09.05.2016 Analyse von Hashtabellen mit verketteten Listen Erwartete Laufzeit O(1) bei zuf. Hashfkt. und falls M O(m) Guter Ersatz (hier) für zuf. Hashfkt.: universelle Hashfunktionen
MehrDatenstrukturen. Mariano Zelke. Sommersemester 2012
Datenstrukturen Mariano Zelke Sommersemester 2012 Tiefensuche: Die globale Struktur Der gerichtete oder ungerichtete Graph G werde durch seine Adjazenzliste A repräsentiert. Im Array besucht wird vermerkt,
Mehr8. Übung zu Algorithmen I 15. Juni 2016
8. Übung zu Algorithmen I 15. Juni 2016 Lisa Kohl Lisa.Kohl@kit.edu (mit Folien von Julian Arz, Timo Bingmann, Sebastian Schlag, Christian Staudt und Christoph Striecks) Nachtrag: Quicksort, alternative
MehrLernmodul 7 Algorithmus von Dijkstra
Folie 1 von 30 Lernmodul 7 Algorithmus von Dijkstra Quelle: http://www.map24.de Folie 2 von 30 Algorithmus von Dijkstra Übersicht Kürzester Weg von A nach B in einem Graphen Problemstellung: Suche einer
MehrErinnerung VL
Erinnerung VL 30.05.2016 Radix-Sort, Abschluss Sortieren Prioritätslisten: Warteschlange mit Prioritäten deletemin: kleinstes Element rausnehmen insert: Element einfügen Binäre Heaps als Implementierung
MehrGrundlagen: Algorithmen und Datenstrukturen
Grundlagen: Algorithmen und Datenstrukturen Prof. Dr. Hanjo Täubig Lehrstuhl für Effiziente Algorithmen (Prof. Dr. Ernst W. Mayr) Institut für Informatik Technische Universität München Sommersemester 2010
MehrInformatik B Sommersemester Musterlösung zur Klausur am
Informatik B Sommersemester 01 Musterlösung zur Klausur am 1.0.01 Leider wurde der Hinweis, dass alle Lösungen kurz (stichpunktartig), aber inhaltlich ausreichend zu kommentieren sind, nicht immer beachtet.
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Prof. Martin Lercher Institut für Informatik Heinrich-Heine-Universität Düsseldorf Teil 10 Suche in Graphen Version vom 13. Dezember 2016 1 / 2 Vorlesung 2016 / 2017 2 /
MehrKarlsruher Institut für Technologie Institut für Theoretische Informatik. Klausur Algorithmen I
Vorname: Matrikelnummer: Karlsruher Institut für Technologie Institut für Theoretische Informatik Prof. Jörn Müller-Quade 4. September 2017 Klausur Algorithmen I Aufgabe 1. Kleinaufgaben 15 Punkte Aufgabe
MehrSortierte Folgen 250
Sortierte Folgen 250 Sortierte Folgen: he 1,...,e n i mit e 1 apple applee n kennzeichnende Funktion: M.locate(k):= addressof min{e 2 M : e k} Navigations Datenstruktur 2 3 5 7 11 13 17 19 00 Annahme:
MehrInformatik II, SS 2014
Informatik II SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 10 (3.6.2014) Binäre Suchbäume I Algorithmen und Komplexität Zusätzliche Dictionary Operationen Dictionary: Zusätzliche mögliche Operationen:
Mehr12. Graphen. Notation, Repräsentation, Traversieren (DFS, BFS), Topologisches Sortieren, Ottman/Widmayer, Kap ,Cormen et al, Kap.
254 12. Graphen Notation, Repräsentation, Traversieren (DFS, BFS), Topologisches Sortieren, Ottman/Widmayer, Kap. 9.1-9.4,Cormen et al, Kap. 22 Königsberg 1736 255 Königsberg 1736 255 Königsberg 1736 255
MehrEffiziente Algorithmen und Datenstrukturen I Kapitel 7: Graphen
Effiziente Algorithmen und Datenstrukturen I Kapitel 7: Graphen Christian Scheideler WS 2008 15.12.2008 Kapitel 7 1 Graphen Graph G=(V,E) besteht aus Knotenmenge V Kantenmenge E ungerichteter Graph gerichteter
MehrVorlesung Datenstrukturen
Vorlesung Datenstrukturen Sortierte Folgen Maike Buchin 30.5., 1.6., 13.6.2017 Sortierte Folgen Häufiges Szenario: in einer Menge von Objekten mit Schlüsseln (aus geordnetem Universum) sollen Elemente
MehrSortieren & Co. KIT Institut für Theoretische Informatik
Sortieren & Co KIT Institut für Theoretische Informatik 1 Formaler Gegeben: Elementfolge s = e 1,...,e n Gesucht: s = e 1,...,e n mit s ist Permutation von s e e 1 n für eine Totalordnung ` ' KIT Institut
MehrInformatik II, SS 2016
Informatik II - SS 2016 (Algorithmen & Datenstrukturen) Vorlesung 10 (27.5.2016) Binäre Suchbäume II Algorithmen und Komplexität Zusätzliche Dictionary Operationen Dictionary: Zusätzliche mögliche Operationen:
MehrMotivation Kap. 6: Graphen
Motivation Kap. 6: Graphen Warum soll ich heute hier bleiben? Graphen sind wichtig und machen Spaß! Professor Dr. Lehrstuhl für Algorithm Engineering, LS Fakultät für Informatik, TU Dortmund Was gibt es
MehrVorlesung Algorithmische Geometrie. Streckenschnitte. Martin Nöllenburg INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK
Vorlesung Algorithmische Geometrie INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Martin Nöllenburg 24.04.2011 Überlagern von Kartenebenen Beispiel: Gegeben zwei verschiedene Kartenebenen,
Mehr12. Graphen. Königsberg Zyklen. [Multi]Graph
Königsberg 76. Graphen, Repräsentation, Traversieren (DFS, BFS), Topologisches Sortieren, Ottman/Widmayer, Kap. 9. - 9.,Cormen et al, Kap. [Multi]Graph Zyklen C Kante Gibt es einen Rundweg durch die Stadt
MehrAlgorithmen und Datenstrukturen. Bäume. M. Herpers, Y. Jung, P. Klingebiel
Algorithmen und Datenstrukturen Bäume M. Herpers, Y. Jung, P. Klingebiel 1 Lernziele Baumstrukturen und Ihre Verwendung kennen Grundbegriffe zu Bäumen anwenden können Baumstruktur in C anlegen können Suchbäume
MehrADS 2: Algorithmen und Datenstrukturen
ADS 2: Algorithmen und Datenstrukturen Teil 2 Prof. Peter F. Stadler & Sebastian Will Bioinformatik/IZBI Institut für Informatik & Interdisziplinäres Zentrum für Bioinformatik Universität Leipzig 16. April
MehrWie wird ein Graph dargestellt?
Wie wird ein Graph dargestellt? Für einen Graphen G = (V, E), ob gerichtet oder ungerichtet, verwende eine Adjazenzliste A G : A G [i] zeigt auf eine Liste aller Nachbarn von Knoten i, wenn G ungerichtet
MehrDatenstrukturen. einfach verkettete Liste
einfach verkettete Liste speichert Daten in einer linearen Liste, in der jedes Element auf das nächste Element zeigt Jeder Knoten der Liste enthält beliebige Daten und einen Zeiger auf den nächsten Knoten
MehrGraphenalgorithmen und lineare Algebra Hand in Hand Prof. Dr. Henning Meyerhenke
Graphenalgorithmen und lineare Algebra Hand in Hand Prof. Dr. Henning Meyerhenke Institut für Theoretische Informatik 1 KIT Henning Universität desmeyerhenke, Landes Baden-Württemberg Institutund für Theoretische
MehrKapitel 4: Dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2012/13. Prof. Dr. Sándor Fekete
Kapitel 4: Dynamische Datenstrukturen Algorithmen und Datenstrukturen WS 2012/13 Prof. Dr. Sándor Fekete 4.4 Binäre Suche Aufgabenstellung: Rate eine Zahl zwischen 100 und 114! Algorithmus 4.1 INPUT: OUTPUT:
MehrVorlesung Algorithmische Geometrie. Streckenschnitte. Martin Nöllenburg INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK
Vorlesung Algorithmische Geometrie INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Martin Nöllenburg 24.04.2011 Überlagern von Kartenebenen Beispiel: Gegeben zwei verschiedene Kartenebenen,
MehrEinführung in die Informatik 2
Einführung in die Informatik 2 Bäume & Graphen Sven Kosub AG Algorithmik/Theorie komplexer Systeme Universität Konstanz E 202 Sven.Kosub@uni-konstanz.de Sprechstunde: Freitag, 12:30-14:00 Uhr, o.n.v. Sommersemester
MehrAlgorithmen & Datenstrukturen 2 Praktikum 3
Algorithmen & Datenstrukturen 2 Praktikum 3 Thema: Graphalgorithmen Sommersemester 2016 Prof. Dr. Christoph Karg Hochschule Aalen Dieses Praktikum widmet sich dem Thema Graphalgorithmen. Ziel ist die Implementierung
Mehr14. Elementare Graphalgorithmen
Graphen sind eine der wichtigsten Modellierungskonzepte der Informatik Graphalgorithmen bilden die Grundlage vieler Algorithmen in der Praxis Übersicht: Zunächst eine kurze Einführung in Graphen. Dann
MehrÜbung Algorithmen und Datenstrukturen
Übung Algorithmen und Datenstrukturen Sommersemester 217 Marc Bux, Humboldt-Universität zu Berlin Agenda 1. Graphen und Bäume 2. Binäre Suchbäume 3. AVL-Bäume 4. Algorithmen und Datenstrukturen 2 Agenda
MehrAlgorithmen II. Peter Sanders, Thomas Worsch, Simon Gog. Übungen: Demian Hespe, Yaroslav Akhremtsev
Sanders, Worsch, Gog: Algorithmen II - 18. Dezember 2017 Algorithmen II Peter Sanders, Thomas Worsch, Simon Gog Übungen: Demian Hespe, Yaroslav Akhremtsev Institut für Theoretische Informatik, Algorithmik
MehrAlgorithmen und Datenstrukturen 2-1. Seminar -
Algorithmen und Datenstrukturen 2-1. Seminar - Dominic Rose Bioinformatics Group, University of Leipzig Sommersemster 2010 Outline 1. Übungsserie: 3 Aufgaben, insgesamt 30 28 Punkte A1 Spannbäume (10 8
Mehr9. Übung Algorithmen I
INSTITUT FÜR THEORETISCHE INFORMATIK 1 KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft Institut für Theoretische www.kit.edu Informatik Musterlösung
Mehrelementare Datenstrukturen
elementare Datenstrukturen Wie die Daten das Laufen lernten Andreas Ferber af@myipv6.de elementare Datenstrukturen p./40 KISS elementare Datenstrukturen p./40 KISS (Keep It Simple, Stupid) Immer die einfachste
MehrADS: Algorithmen und Datenstrukturen 2
ADS: Algorithmen und Datenstrukturen 2 Teil II Peter F. Stadler & Konstantin Klemm Bioinformatics Group, Dept. of Computer Science & Interdisciplinary Center for Bioinformatics, University of Leipzig 07.
MehrVorlesung Informatik 2 Algorithmen und Datenstrukturen
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (18 Bäume: Grundlagen und natürliche Suchbäume) Prof. Dr. Susanne Albers Bäume (1) Bäume sind verallgemeinerte Listen (jedes Knoten-Element kann mehr
MehrAlgorithmen I. Sascha Witt Institut für Theoretische Informatik Web: https://crypto.iti.kit.edu/index.php?id=799
Algorithmen I Sascha Witt 10.05.2017 Institut für Theoretische Informatik Web: https://crypto.iti.kit.edu/index.php?id=799 (Folien von Peter Sanders) KIT Institut für Theoretische Informatik 1 Erinnerung
MehrTechnische Universität München. Vorlesungsgrobstruktur: wo stehen wir, wie geht s weiter
Vorlesungsgrobstruktur: wo stehen wir, wie geht s weiter Kapitel 7 Fortgeschrittene Datenstrukturen Motivation: Lineare Liste: Suchen eines Elements ist schnell O(log n) Einfügen eines Elements ist langsam
MehrAlgorithmen I - Tutorium 28 Nr. 3
Algorithmen I - Tutorium 28 Nr. 3 18.05.2016: Spaß mit Listen, Arrays und amortisierter Analyse Marc Leinweber marc.leinweber@student.kit.edu INSTITUT FÜR THEORETISCHE INFORMATIK (ITI), PROF. DR. JÖRN
MehrGraphenalgorithmen I
Graphenalgorithmen I Vortrag im Seminar Hallo Welt! für Fortgeschrittene 7. Juni 211 Graphenalgorithmen I 1/33 Motivation Problem Wie komme ich am schnellsten ins Kanapee? Problem Wie kommt ein Datenpaket
MehrAlgorithmus zur topologischen Nummerierung: while V = 0 do nummeriere eine Quelle mit der nächsten Nummer streiche diese Quelle aus V od
Algorithmus zur topologischen Nummerierung: while V = 0 do nummeriere eine Quelle mit der nächsten Nummer streiche diese Quelle aus V od Diskrete Strukturen 3.7 dag 473/556 3.8 Zusammenhang Definition
MehrKonvexe Hülle. Abbildung: [Wikipedia]: Nicht-konvexe Menge (links), konvexe Menge (rechts) KIT Institut für Theoretische Informatik 510
Konvexe Hülle Definition konvexe Menge: Für je zwei beliebige Punkte, die zur Menge gehören, liegt auch stets deren Verbindungsstrecke ganz in der Menge. Abbildung: [Wikipedia]: Nicht-konvexe Menge (links),
Mehr(a, b)-bäume / 1. Datenmenge ist so groß, dass sie auf der Festplatte abgespeichert werden muss.
(a, b)-bäume / 1. Szenario: Datenmenge ist so groß, dass sie auf der Festplatte abgespeichert werden muss. Konsequenz: Kommunikation zwischen Hauptspeicher und Festplatte - geschieht nicht Byte für Byte,
Mehr9 Graphtraversierung. Sanders / van Stee: Algorithmentechnik November 27,
Sanders / van Stee: Algorithmentechnik November 27, 2007 1 9 Graphtraversierung Ausgangspunkt oder Baustein fast jedes nichtrivialen Graphenalgorithmus Sanders / van Stee: Algorithmentechnik November 27,
MehrVerkettete Listen. KIT Institut für Theoretische Informatik 1
Verkettete Listen KIT Institut für Theoretische Informatik 1 Listenglieder (Items) Class Handle = Pointer to Item Class Item of Element // one link in a doubly linked list e : Element e next : Handle //
MehrInformatik II, SS 2014
Informatik II SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 16 (2.7.2014) Graphtraversierung II, Minimale Spannbäume I Algorithmen und Komplexität Tiefensuche: Pseusocode DFS Traversal: for all u in
MehrKap. 6.3: Traversieren von Graphen Kap. 6.4: Elementare Graphalgorithmen
Kap. 6.3: Traversieren von Graphen Kap. 6.4: Elementare Graphalgorithmen Professor Dr. Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, TU Dortmund 19. VO DAP2 SS 2008 19. Juni 2008 1
MehrVorlesung Datenstrukturen
Vorlesung Datenstrukturen Graphdurchläufe Maike Buchin 22. und 27.6.2017 Graphexploration Motivation: Für viele Zwecke will man den gesamten Graphen durchlaufen, zb. um festzustellen ob er (stark) zusammenhängt.
MehrAlgorithmen & Komplexität
Algorithmen & Komplexität Angelika Steger Institut für Theoretische Informatik steger@inf.ethz.ch Breitensuche, Tiefensuche Wir besprechen nun zwei grundlegende Verfahren, alle Knoten eines Graphen zu
MehrInformatik II, SS 2016
Informatik II - SS 208 (Algorithmen & Datenstrukturen) Vorlesung 4 (..208) Graphenalgorithmen III Algorithmen und Komplexität Bäume Gegeben: Zusammenhängender, ungerichteter Graph G = V, E Baum: Zusammenhängender,
MehrProgrammierkurs Python
Programmierkurs Python Stefan Thater Michaela Regneri 2010-0-29 Heute Ein wenig Graph-Theorie (in aller Kürze) Datenstrukturen für Graphen Tiefen- und Breitensuche Nächste Woche: mehr Algorithmen 2 Was
MehrInformatik II: Algorithmen & Datenstrukturen. Blättern Sie nicht um bevor Sie dazu aufgefordert werden!
Albert-Ludwigs-Universität Institut für Informatik Prof. Dr. F. Kuhn Informatik II: Algorithmen & Datenstrukturen Montag, 29. August, 2014, 14:00 17:00 Name:...........................................................
MehrProgrammierkurs Python II
Programmierkurs Python II Stefan Thater & Michaela Regneri FR.7 Allgemeine Linguistik (Computerlinguistik) Universität des Saarlandes Sommersemester 011 Heute Ein wenig Graph-Theorie (in aller Kürze) Datenstrukturen
MehrWintersemester 2004/ Januar Aus der Vorlesung sind Datenstrukturen zur Repräsentation von Wäldern disjunkter Mengen bekannt.
Lehrstuhl für Praktische Informatik III Norman May B6, 29, Raum C0.05 68131 Mannheim Telefon: (0621) 181 2517 Email: norman@pi3.informatik.uni-mannheim.de Matthias Brantner B6, 29, Raum C0.05 68131 Mannheim
MehrADS: Algorithmen und Datenstrukturen 2
ADS: Algorithmen und Datenstrukturen 2 Teil 4 Prof. Dr. Gerhard Heyer Institut für Informatik Abteilung Automatische Sprachverarbeitung Universität Leipzig 02. Mai 2017 [Letzte Aktualisierung: 10/07/2018,
MehrAlgorithmen I - Tutorium 28 Nr. 6
Algorithmen I - Tutorium 28 Nr. 6 08.06.2017: Spaß mit Sortieren, Aufgaben und Wiederholung Marc Leinweber marc.leinweber@student.kit.edu INSTITUT FÜR THEORETISCHE INFORMATIK (ITI), PROF. DR. JÖRN MÜLLER-QUADE
MehrAlgorithmen I. Tutorium 1-8. Sitzung. Dennis Felsing
Algorithmen I Tutorium 1-8. Sitzung Dennis Felsing dennis.felsing@student.kit.edu www.stud.uni-karlsruhe.de/~ubcqr/algo 2011-06-06 Überblick 1 Allgemeines Adjazenzliste Adjazenzmatrix Adjazenzfeld Aufgaben
MehrFormaler. Gegeben: Elementfolge s = e 1,...,e n. s ist Permutation von s e 1 e n für eine lineare Ordnung ` '
Sortieren & Co 164 165 Formaler Gegeben: Elementfolge s = e 1,...,e n Gesucht: s = e 1,...,e n mit s ist Permutation von s e 1 e n für eine lineare Ordnung ` ' 166 Anwendungsbeispiele Allgemein: Vorverarbeitung
MehrProgrammiertechnik II
Graph-Algorithmen Anwendungsgebiete "Verbundene Dinge" oft Teilproblem/Abstraktion einer Aufgabenstellung Karten: Wie ist der kürzeste Weg von Sanssouci nach Kunnersdorf? Hypertext: Welche Seiten sind
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Prof. Martin Lercher Institut für Informatik Heinrich-Heine-Universität Düsseldorf Teil 9 Graphen Version vom 13. Dezember 2016 1 / 1 Vorlesung Fortsetzung 13. Dezember
Mehr