Übersicht. Datenstrukturen und Algorithmen. Trigramme... Übersicht. Terminologie Repräsentation von Graphen

Größe: px
Ab Seite anzeigen:

Download "Übersicht. Datenstrukturen und Algorithmen. Trigramme... Übersicht. Terminologie Repräsentation von Graphen"

Transkript

1 atenstrukturen und lgorithmen Vorlesung 14+15: lementare algorithmen (K22,K24.2) Joost-Pieter Katoen Lehrstuhl für Informatik 2 Software Modeling and Verification roup Juni Repräsentation von 3 durchlauf reitensuche 4 rreichbarkeitsanalyse s in ungerichteten Ss in gerichteten Topologische Sortierung in gerichteten azyklischen Kritische-Pfad-nalyse in gewichteten gerichteten azyklischen Joost-Pieter Katoen atenstrukturen und lgorithmen 1/81 Joost-Pieter Katoen atenstrukturen und lgorithmen 2/81 Softwarewettbewerb Softwarewettbewerb 2 Repräsentation von 3 durchlauf reitensuche 4 rreichbarkeitsanalyse s in ungerichteten Ss in gerichteten Topologische Sortierung in gerichteten azyklischen Kritische-Pfad-nalyse in gewichteten gerichteten azyklischen Trigramme... sind wichtig für automatische Verarbeitung natürlicher Sprache: Trainingscorpus liefert Trigramme mit nzahl Vorkommen atenstruktur speichert diese Informationen beantwortet nfragen auf neuen ingabedaten 1 Trainingscorpus 2 nfragen Joost-Pieter Katoen atenstrukturen und lgorithmen 3/81 Joost-Pieter Katoen atenstrukturen und lgorithmen 4/81

2 Softwarewettbewerb Softwarewettbewerb T TrigramStorage Ihre ufgabe TrigramStorage in TrigramStorage s speichert eine nsammlung von Trigrammen und den dazugehörigen ounts und bietet folgende Operationen: void insert(s, Trigramndount t) fügt das Trigramm t in s ein. QueryResult query(s, Trigram t1, Trigram t2) gibt das Maximum und die Summe der ounts aller Trigramme t in s, die lexikographisch zwischen t1 und t2 liegen. void build(s) wird nach dem infügen aller lemente aufgerunfen und kann die interne Repräsentation der aten ändern, um schneller auf nfragen antworten zu können. Schreiben Sie eine Implementierung des T TrigramStorage in Java, der nfragen so schnell wie möglich beantwortet. Regeln bis zu (ca.) Trigramme und (ca.) nfragen Zeit für insert und build wird nicht gezählt, nur die nfragezeiten Java 7 keine nicht-elementaren ibliotheksfunktionen benutzen (kein java.util.sort, kein java.util.hash, etc.) kein Source ode aus anderen Quellen etails (ramework, eispiel-implementierung): Joost-Pieter Katoen atenstrukturen und lgorithmen 5/81 Joost-Pieter Katoen atenstrukturen und lgorithmen 6/81 2 Repräsentation von 3 durchlauf reitensuche 4 rreichbarkeitsanalyse s in ungerichteten Ss in gerichteten Topologische Sortierung in gerichteten azyklischen Kritische-Pfad-nalyse in gewichteten gerichteten azyklischen ie edeutung von werden in vielen (Informatik-)nwendungen verwendet: eispiele (omputer-)netzwerke Webseiten und ihre Vernetzung mittels Links arstellung von topologischen Informationen (Karten,... ) arstellung von elektronischen Schaltungen Vorranggraphen (precedence graph), blaufpläne,... Semantische Netze (z.. ntity-relationship-iagramme) Wir werden uns auf fundamentale raphalgorithmen konzentrieren. Joost-Pieter Katoen atenstrukturen und lgorithmen 7/81 Joost-Pieter Katoen atenstrukturen und lgorithmen 8/81

3 erichteter raph erichteter raph erichteter raph in gerichteter raph (auch: digraph) ist ein Paar (V, ) mit einer Menge V von Knoten (vertices) und einer Menge { (u, v) u, v V } von Kanten (edges). eispiel V = {,..., } = { (, ), (, ), (, ), (, ), (, ), (, ), (, ), (, ) } Ungerichteter raph in ungerichteter raph ist ein Paar (V, ) mit Kanten Knoten einer Menge V von Knoten (vertices) und einer Menge {{u, v} u, v V, u v} von Kanten (edges). uch für ungerichtete Kanten verwenden wir die Notation (u, v). djazent Knoten v V ist adjazent zu u V, wenn (u, v). und sind adjazent, wie auch z.. und, und und. Joost-Pieter Katoen atenstrukturen und lgorithmen 9/81 Joost-Pieter Katoen atenstrukturen und lgorithmen 10/81 bei Teilgraph in Teilgraph (subgraph) eines = (V, ) ist ein raph = (V, ) mit: V V und. ußerdem ist V V wegen der rapheigenschaft von. Ist V V und, so heißt echter (proper) Teilgraph. bei Symmetrischer raph er raph heißt symmetrisch, wenn aus (u, v) folgt (v, u). Zu jedem ungerichteten gibt es einen korrespondierenden symmetrischen igraphen. eispiel: Symmetrischer igraph eispiel: Rote Knoten und Kanten bilden einen (echten) Teilgraphen Joost-Pieter Katoen atenstrukturen und lgorithmen 11/81 Vollständiger raph in ungerichteter raph ist vollständig, wenn jedes Paar von Knoten durch eine Kante verbunden ist. Joost-Pieter Katoen atenstrukturen und lgorithmen 12/81

4 bei Transponieren Transponiert man = (V, ) (transpose graph), so erhält man T = (V, ) mit (v, u) gdw. (u, v). In T ist die Richtung der Kanten von umgedreht. Pfade und Zyklen Pfad (Weg) in Pfad der Länge k vom Knoten u V zum Knoten w V in = (V, ) ist eine olge v 0 v 1 v 2... v k 1 v k von Knoten v i V mit (v i, v i+1 ), v 0 = u und v k = w. ie Länge eines Pfades ist die nzahl der durchlaufenen Kanten. inen Pfad der Länge 0 nennen wir leer. in Pfad mit v i v j für alle i j heißt einfach. Knoten w ist erreichbar von u, wenn es einen Pfad von u nach w gibt. eispiel: in raph und sein transponierter raph Joost-Pieter Katoen atenstrukturen und lgorithmen 13/81 Pfade und Zyklen Zyklus Schlinge und sind Pfade, aber keine einfache Pfade. und sind einfache Pfade. Zyklen in gerichtenen in Zyklus in einem gerichteten raph ist ein nicht-leerer Pfad bei dem der Startknoten auch der ndknoten ist. in Zyklus vv der Länge 1 heißt Schlinge (self-loop). in Zyklus v 0... v k ist einfach wenn v 1... v k paarweise verschieden sind. Joost-Pieter Katoen atenstrukturen und lgorithmen 14/81 in gerichteter raph ist azyklisch, wenn er keine Zyklen hat. Zyklen in ungerichteten Zusammenhangskomponenten in ungerichteten in Zyklus in einem ungerichteten raph ist ein Pfad v 0... v k mit k 3, v 0 = v k und v 1,..., v k paarweise verschieden. in ungerichteter raph ist azyklisch, wenn er keine Zyklen hat. Zusammenhangskomponenten in ungerichteten Sei ein ungerichteter raph. heißt zusammenhängend (connected), wenn jeder Knoten von jedem anderen Knoten aus erreichbar ist. ine Zusammenhangskomponente (connected component, ) von ist ein maximaler (d.h. nicht erweiterbarer) zusammenhängender Teilgraph von. Joost-Pieter Katoen atenstrukturen und lgorithmen 15/81 Joost-Pieter Katoen atenstrukturen und lgorithmen 16/81

5 Zusammenhangskomponenten in gerichteten Zusammenhangskomponenten in gerichteten Sei ein gerichteter raph. heißt stark zusammenhängend (strongly connected), wenn jeder Knoten von jedem anderen Knoten aus erreichbar ist. heißt schwach zusammenhängend (weakly connected), wenn der zugehörige ungerichtete raph (wenn man alle Kanten ungerichtet macht) zusammenhängend ist. ine starke Zusammenhangskomponente (strongly connected component, S) von ist ein maximaler stark zusammenhängender Teilgraph von. ie Zerlegung eines in seine Zusammenhangskomponente ist eindeutig. Ungerichtete, zusammenhängende I J H in ungerichteter raph; Was sind die Zusammenhangskomponenten? Joost-Pieter Katoen atenstrukturen und lgorithmen 17/81 Joost-Pieter Katoen atenstrukturen und lgorithmen 18/81 Ungerichtete, zusammenhängende Starke Zusammenhangskomponenten I J H in igraph und seine Ss. ie Zusammenhangskomponenten. Joost-Pieter Katoen atenstrukturen und lgorithmen 19/81 Joost-Pieter Katoen atenstrukturen und lgorithmen 20/81

6 Zusammenhang emerkungen in aum (zusammenhängender azyklischer raph) mit n Knoten hat n 1 Kanten. in ungerichteter raph mit n Knoten und weniger als n 1 Kanten kann nicht zusammenhängend sein. in ungerichteter raph mit n Knoten und mindestens n Kanten muss einen Zyklus enthalten. 2 Repräsentation von 3 durchlauf reitensuche 4 rreichbarkeitsanalyse s in ungerichteten Ss in gerichteten Topologische Sortierung in gerichteten azyklischen Kritische-Pfad-nalyse in gewichteten gerichteten azyklischen Joost-Pieter Katoen atenstrukturen und lgorithmen 21/81 Joost-Pieter Katoen atenstrukturen und lgorithmen 22/81 Repräsentation von : djazenzmatrix Repräsentation von : djazenzliste Sei = (V, ) mit V = n, = m und V = { v 1,..., v n }. djazenzmatrix ie djazenzmatrix-arstellung eines ist durch eine n n boolesche Matrix gegeben, wobei (i, j) = 1, wenn (v i, v j ), sonst 0. Wenn ungerichtet ist, ergibt sich symmetrisches (d. h. = T ). ann muss nur die Hälfte gespeichert werden. Platzbedarf: Θ(n 2 ). djazenzliste ei der arstellung als rray von djazenzlisten gibt es ein durch die Nummer des Knoten indiziertes rray, das jeweils verkettete Listen (djazenzlisten) enthält. er i-te rrayeintrag enthält alle Kanten von, die von v i ausgehen. Ist ungerichtet, dann werden Kanten doppelt gespeichert. Kanten, die in nicht vorkommen, benötigen keinen Speicherplatz. Platzbedarf: Θ(n + m). Joost-Pieter Katoen atenstrukturen und lgorithmen 23/81 Joost-Pieter Katoen atenstrukturen und lgorithmen 24/81

7 arstellung eines ungerichteten djazenzliste arstellung eines gerichteten djazenzliste djazenzmatrix Joost-Pieter Katoen atenstrukturen und lgorithmen 25/ djazenzmatrix Joost-Pieter Katoen atenstrukturen und lgorithmen 26/81 2 Repräsentation von 3 durchlauf reitensuche durchlauf 4 rreichbarkeitsanalyse s in ungerichteten Ss in gerichteten Topologische Sortierung in gerichteten azyklischen Kritische-Pfad-nalyse in gewichteten gerichteten azyklischen durchlauf durchlauf Viele lgorithmen, die wir später kennenlernen werden, untersuchen jeden Knoten (und jede Kante). s gibt verschiedene durchlaufstrategien (traversal strategies), die jeden Knoten (oder jede Kante) besuchen: reitensuche ies sind Verallgemeinerungen von Strategien zur aumtraversierung. a zyklisch sein können, müssen wir uns aber alle bereits gefundenen Knoten merken. Im olgenden nehmen wir die djazenzlisten-arstellung an. ann ist der Zeitaufwand von lgorithmen in O( V + ). Joost-Pieter Katoen atenstrukturen und lgorithmen 27/81 Joost-Pieter Katoen atenstrukturen und lgorithmen 28/81

8 2 Repräsentation von 3 durchlauf reitensuche durchlauf 4 rreichbarkeitsanalyse s in ungerichteten Ss in gerichteten Topologische Sortierung in gerichteten azyklischen Kritische-Pfad-nalyse in gewichteten gerichteten azyklischen reitensuche durchlauf reitensuche (readth-irst Search, S) m nfang seien alle Knoten als nicht-gefunden (WHIT) markiert. ie zugrundeliegende Strategie ist: Markiere den aktuellen Knoten v als gefunden (RY). Suche gleichzeitig aus allen gefundenen Knoten weiter: Markiere alle ihrer noch nicht-gefundenen Nachfolger als gefunden und markiere die Knoten selbst als abgeschlossen (LK). Man erhält die Menge aller Knoten, die vom Startknoten aus erreichbar sind. Joost-Pieter Katoen atenstrukturen und lgorithmen 29/81 Joost-Pieter Katoen atenstrukturen und lgorithmen 30/81 durchlauf durchlauf reitensuche: eispiel eginn der reitensuche rforsche alle folgenden nicht-gefundenen Knoten reitensuche: Implementierung 1 void S(List adj[n], int start, int &color[n]) { 2 Queue wait; // zu verarbeitende Knoten 3 color[start] = RY; // Knoten start ist noch zu verarbeiten 4 wait.enqueue(start); 5 while (!wait.ismpty()) {// es gibt noch unverarbeitete Knoten 6 int v = wait.dequeue(); // nächster unverarbeiteter Knoten 7 foreach (w in adj[v]) { 8 if (color[w] == WHIT) { // neuer ("ungefundener") Knoten 9 color[w] = RY; // w ist noch zu verarbeiten 10 wait.enqueue(w); 11 } 12 } 13 color[v] = LK; // v ist abgeschlossen 14 } 15 } rforsche alle folgenden nicht-gefundenen Knoten ertig! 17 void completes(list adj[n], int n) { 18 int color[n] = WHIT; // noch kein Knoten ist gefunden worden 19 for (int i = 0; i < n; i++) 20 if (color[i] == WHIT) S(adj, n, i, color); 21 } Joost-Pieter Katoen atenstrukturen und lgorithmen 31/81 Joost-Pieter Katoen atenstrukturen und lgorithmen 32/81

9 durchlauf igenschaften der reitensuche Knoten werden in der Reihenfolge mit zunehmendem kürzesten bstand (Kantendistanz) vom Startknoten aus besucht. Nachdem alle Knoten mit bstand d verarbeitet wurden, werden die mit d + 1 angegangen. ie Suche terminiert, wenn in bstand d keine neuen Knoten auftreten. ie Tiefe des Knotens v im reitensuchbaum ist seine kürzeste Kantendistanz zum Startknoten. ie zu verarbeitenden Knoten werden als IO-Queue (first-in first-out) organisiert. Theorem (Komplexität der reitensuche) ie Zeitkomplexität ist O( V + ), der Platzbedarf Θ( V ). 2 Repräsentation von 3 durchlauf reitensuche durchlauf 4 rreichbarkeitsanalyse s in ungerichteten Ss in gerichteten Topologische Sortierung in gerichteten azyklischen Kritische-Pfad-nalyse in gewichteten gerichteten azyklischen Joost-Pieter Katoen atenstrukturen und lgorithmen 33/81 Joost-Pieter Katoen atenstrukturen und lgorithmen 34/81 durchlauf durchlauf : eispiel (epth-irst Search, S) m nfang seien alle Knoten als nicht-gefunden (WHIT) markiert. ie zugrundeliegende Strategie ist: Markiere den aktuellen Knoten v als gefunden (RY). Solange es noch eine Kante (v, u) mit nicht-gefundenem Nachfolger u gibt: Suche rekursiv von u aus, d. h.: rforsche Kante (u, w), besuche w, forsche von dort aus, bis es nicht mehr weiter geht. Markiere u als abgeschlossen (LK). acktracke von u nach v. eginn der rforsche einen Knoten Markiere v als abgeschlossen (LK). Man erhält wieder die Menge aller Knoten, die vom Startknoten aus erreichbar sind. rforsche einen Knoten Sackgasse! acktracke und erforsche den nächsten Knoten Joost-Pieter Katoen atenstrukturen und lgorithmen 35/81 Joost-Pieter Katoen atenstrukturen und lgorithmen 36/81

10 durchlauf durchlauf : eispiel : eispiel Nächster Zustand wurde bereits gefunden acktracke und erforsche den nächsten Knoten Nächster Zustand wurde bereits gefunden acktracke und erforsche den nächsten Knoten wurde bereits gefunden acktracke und erforsche den nächsten Knoten rforsche den nächsten Knoten ist eine Sackgasse acktracke und erforsche den nächsten Knoten ist eine Sackgasse acktracke und erforsche den nächsten Knoten eide nächsten Knoten wurden bereits gefunden ertig! Joost-Pieter Katoen atenstrukturen und lgorithmen 37/81 Joost-Pieter Katoen atenstrukturen und lgorithmen 38/81 : Implementierung durchlauf igenschaften der durchlauf 1 void S(List adj[n], int start, int &color[n]) { 2 color[start] = RY; // start ist noch zu verarbeiten 3 foreach (w in adj[start]) { 4 if (color[w] == WHIT) { // neuer ("ungefundener") Knoten 5 S(adj, w, color); 6 } 7 } 8 color[start] = LK; // start ist abgeschlossen 9 } 11 void completes(list adj[n], int n, int start) { 12 int color[n] = WHIT; // noch kein Knoten ist gefunden worden 13 for (int i = 0; i < n; i++) 14 if (color[i] == WHIT) S(adj, i, color); 15 } rforsche einen Pfad so weit wie möglich bevor backtracking. ie zu verarbeitenden Knoten werden in LIO-Reihenfolge (last-in first-out) geprüft. s gibt zwei Verarbeitungsmöglichkeiten für einen Knoten: 1. Wenn der Knoten entdeckt wird. 2. Wenn der Knoten als abgearbeitet markiert wird (und alle seine Nachfolger entdeckt werden). iese letztgenannte Möglichkeit macht beliebt. Theorem (Komplexität der ) Zeitkomplexität: O( V + ), Platzkomplexität: Θ( V ). Joost-Pieter Katoen atenstrukturen und lgorithmen 39/81 Joost-Pieter Katoen atenstrukturen und lgorithmen 40/81

11 2 Repräsentation von 3 durchlauf reitensuche 4 rreichbarkeitsanalyse s in ungerichteten Ss in gerichteten Topologische Sortierung in gerichteten azyklischen Kritische-Pfad-nalyse in gewichteten gerichteten azyklischen Irrgärten as eben geschieht den Menschen, die in einem Irrgarten hastig werden: ben die ile führt immer tiefer in die Irre. [Lucius nnaeus Seneca (4 n. hr. 65 n. hr.)] Joost-Pieter Katoen atenstrukturen und lgorithmen 41/81 Joost-Pieter Katoen atenstrukturen und lgorithmen 42/81 eschichte wurde bereits vor Jahrhunderten formal beschrieben als ein Verfahren zum urchqueren von Labyrinthen. Labyrinth als raph: Knoten: Stellen, an denen mehr als ein Weg gewählt werden kann Kanten: Wege zwischen Knoten ingang als spezieller Knoten start Ziel als spezieller Knoten target Joost-Pieter Katoen atenstrukturen und lgorithmen 43/81 rreichbarkeitsanalyse: S Implementierung 1 bool S(List adj[n], int start, int &color[n], 2 int target, List path) { 3 if (start == target){ 4 path.addtront(start); return true; 5 } 6 color[start] = RY; 7 foreach (w in adj[start]) { 8 if (color[w] == WHIT) { 9 if (S(adj, w, color, target, path)) { 10 path.addtront(start); return true; 11 } 12 } 13 } 14 color[start] = LK; 15 return false; 16 } 17 bool reach(list adj[n], int n, int start, int target, 18 List &path) { // path ist leer 19 int color[n] = WHIT; 20 return S(adj, start, color, target, path); 21 } Joost-Pieter Katoen atenstrukturen und lgorithmen 44/81

12 s in ungerichteten 2 Repräsentation von 3 durchlauf reitensuche 4 rreichbarkeitsanalyse s in ungerichteten Ss in gerichteten Topologische Sortierung in gerichteten azyklischen Kritische-Pfad-nalyse in gewichteten gerichteten azyklischen Zusammenhangskomponenten in ungerichteten Sei ein ungerichteter raph. heißt zusammenhängend (connected), wenn jeder Knoten von jedem anderen Knoten aus erreichbar ist. ine Zusammenhangskomponente (connected component, ) von ist ein maximaler (d.h. nicht erweiterbarer) zusammenhängender Teilgraph von. Joost-Pieter Katoen atenstrukturen und lgorithmen 45/81 Joost-Pieter Katoen atenstrukturen und lgorithmen 46/81 s in ungerichteten s in ungerichteten Problem inde die Zusammenhangskomponenten (s) eines ungerichteten. Lösung inden des s eines Knotens v: Verwende Tiefen- oder reitensuche, um alle aus v erreichbaren Knoten zu bestimmen. ie Zeitkomplexität ist O( V + ). 1 void S(List adj[n], int start, int &color[n], 2 int leader, int &cc[n]) { 3 color[start] = RY; 4 foreach (next in adj[start]) 5 if (color[next] == WHIT) 6 S(adj, next, color, leader, cc); 7 color[start] = LK; 8 cc[start] = leader; // speichere das von start 9 } 11 void connomponents(list adj[n], int n, int &cc[n]) { 12 int color[n]= WHIT; 13 for (int v = 0; v < n; v++) 14 if (color[v] == WHIT) // weitere Komponente 15 S(adj, v, color, v, cc); 16 } // usgabe in cc: cc[v] = Komponente von Knoten v Joost-Pieter Katoen atenstrukturen und lgorithmen 47/81 Joost-Pieter Katoen atenstrukturen und lgorithmen 48/81

13 Ss in gerichteten 2 Repräsentation von 3 durchlauf reitensuche 4 rreichbarkeitsanalyse s in ungerichteten Ss in gerichteten Topologische Sortierung in gerichteten azyklischen Kritische-Pfad-nalyse in gewichteten gerichteten azyklischen Zusammenhangskomponenten Sei ein gerichteter raph. heißt stark zusammenhängend (strongly connected), wenn jeder Knoten von jedem anderen aus erreichbar ist. ine starke Zusammenhangskomponente (strongly connected component, S) von ist ein maximaler (d.h., nicht erweiterbarer) stark zusammenhängender Teilgraph von. Joost-Pieter Katoen atenstrukturen und lgorithmen 49/81 Joost-Pieter Katoen atenstrukturen und lgorithmen 50/81 Starke Zusammenhangskomponenten (Ss) Kondensationsgraph ie starken Zusammenhangskomponenten von induzieren den Kondensationsgraph. Kondensationsgraph in igraph und seine Ss. Sei = (V, ) ein gerichteter raph mit k Ss S i = (V i, i ) für 0 < i k. er Kondensationsgraph = (V, ) ist definiert als: V = { V 1,..., V k }. (V i, V j ) gdw. i j und es gibt (v, w) mit v V i und w V j. er Kondensationsgraph ist azyklisch. Joost-Pieter Katoen atenstrukturen und lgorithmen 51/81 Joost-Pieter Katoen atenstrukturen und lgorithmen 52/81

14 Kondensationsgraph: eispiel Ss und Transponierung Transponieren er transponierte raph von = (V, ) ist T = (V, ) mit (v, w) gdw. (w, v). In T ist die Richtung der Kanten von gerade umgedreht. Lemma: eziehung zwischen und T in igraph und seine Kondensation. 1. ie Ss von und T sind die selben. 2. ie Kondensation und die Transposition kommutieren, d. h.: ( ) T = ( T ). Joost-Pieter Katoen atenstrukturen und lgorithmen 53/81 Joost-Pieter Katoen atenstrukturen und lgorithmen 54/81 lgorithmus zum inden von Ss Kosaraju-Sharir lgorithmus findet Ss in zwei Phasen: 1. ühre ein S auf durch, wobei alle Knoten beim bschließen (d. h. wenn der Knoten LK gefärbt wird) auf einem Stack S gespeichert werden. 2. ärbe alle Knoten wieder WHIT. 3. Wiederhole solange S noch weiße Knoten enthält: Wähle den obersten noch weißen (Leiter-)Knoten v vom S. ühre S mit Startknoten v auf dem transponierten T aus und speichere für jeden besuchten Knoten den Leiterknoten v als Repräsentanten seines Ss. Leiter einer S in Knoten v heißt Leiter (leader), wenn er als letzter Knoten aus seinem S bei einer S LK gefärbt wird. Joost-Pieter Katoen atenstrukturen und lgorithmen 55/81 Joost-Pieter Katoen atenstrukturen und lgorithmen 56/81

15 Joost-Pieter Katoen atenstrukturen und lgorithmen 57/81 1 void S1(List adj[n], int start, int &color[n], Stack &S) { 2 color[start] = RY; 3 foreach (w in adj[start]) 4 if (color[w] == WHIT) S1(adj, w, color, S); 5 color[start] = LK; S.push(start); 6 } 7 void S2(List adj[n], int start, int &color[n], int leader, 8 int &scc[n]) { 9 color[start] = RY; 10 foreach (w in adj[start]) 11 if (color[w] == WHIT) S2(adj, w, color, leader, scc); 12 color[start] = LK; scc[start] = leader; 13 } 14 void kosaraju-sharir(list adj[n], int n) { 15 int color[n] = WHIT; Stack S; int scc[n]; 16 for (int i = 0; i < n; i++) // Phase 1 17 if (color[i] == WHIT) S1(adj, i, color, S); 18 List adj_t = adj^t; // Transponiere 19 for (int i = 0; i < n; i++) color[i] = WHIT; // Phase 2 20 while (!S.empty()){ // Phase 3 21 int v = S.pop(); 22 if (color[v] == WHIT) S2(adj_T, v, color, v, scc); 23 } 24 } Joost-Pieter Katoen atenstrukturen und lgorithmen 58/81 Kosaraju-Sharir lgorithmus: eispiel Ursprünglicher igraph Stack am nde der Phase 1 Transponierter raph In Phase 2 gefundene starke Komponenten Joost-Pieter Katoen atenstrukturen und lgorithmen 59/81 Joost-Pieter Katoen atenstrukturen und lgorithmen 60/81

16 Korrektheit Komplexität Zeitkomplexität ie Worst-ase Zeitkomplexität vom Kosaraju-Sharir lgorithmus zum inden von Ss in einem gerichteten ist in Θ( V + ). Seine Speicherkomplexität ist in Θ( V ). eweis ie S über und T benötigen jeweils Θ( V + ). er transponierte raph T kann in Θ( V + ) gebildet werden. er Stack benötigt Θ( V ) Speicher. Joost-Pieter Katoen atenstrukturen und lgorithmen 61/81 Joost-Pieter Katoen atenstrukturen und lgorithmen 62/81 2 Repräsentation von 3 durchlauf reitensuche 4 rreichbarkeitsanalyse s in ungerichteten Ss in gerichteten Topologische Sortierung in gerichteten azyklischen Kritische-Pfad-nalyse in gewichteten gerichteten azyklischen Joost-Pieter Katoen atenstrukturen und lgorithmen 63/81 erichtete azyklische erichtete azyklische erichtete azyklische (directed acyclic graph, ) sind eine wichtige Klasse von : Viele Probleme lassen sich naturgemäß mit Hilfe von s formulieren. Scheduling: Vorranggraphen beschreiben, welche ufgaben erledigt sein müssen, bevor ein nachfolgender Schritt beginnen kann. in Zyklus in solch einem Vorranggraphen wäre ein eadlock. Viele Probleme haben auf s eine niedrigere Komplexität als auf igraphen. in entspricht einer partiellen Ordnung < auf den Knoten: ine Kante (v, w) besagt: v > w. a eine partielle Ordnung anti-symmetrisch ist, kann sie keinen Zyklus enthalten. Wir betrachten: Topologische Sortierung und Kritische-Pfad-nalyse. Joost-Pieter Katoen atenstrukturen und lgorithmen 64/81

17 Topologische Ordnung Topologische Ordnung Sei = (V, ) ein gerichteter raph mit n Knoten. ine topologische Ordnung von ist eine Zuordnung topo : V { 1,..., n }, so dass: für jede Kante (v, w) gilt: topo(v) > topo(w). topo(v) heißt der topologische Zahl von v. Lemma 1. ür einen igraph mit einem Zyklus existiert keine topologische Ordnung. 2. Jeder dagegen hat mindestens eine topologische Ordnung. Joost-Pieter Katoen atenstrukturen und lgorithmen 65/81 Joost-Pieter Katoen atenstrukturen und lgorithmen 66/81 Topologische Sortierung: eispiel 1 Topologische Sortierung: eispiel 1 Quelle: Joost-Pieter Katoen atenstrukturen und lgorithmen 67/81 Quelle: Joost-Pieter Katoen atenstrukturen und lgorithmen 68/81

18 Topologische Sortierung: eispiel 2 H bhängigkeitsgraph I Nr ufgabe Hängt ab von choose clothes I dress, H eat breakfast,, leave, make coffee I make toast I pour juice I H shower I I wake up ibt es einen Schedule für dieses Problem?. h. kann man eine Reihenfolge finden, um alle ufgaben ausführen zu können? Topologische Sortierung: Implementierung 1 void S(List adj[n], int start, int &color[n], 2 int &toponum, int &topo[n]) { 3 color[start] = RY; 4 foreach (next in adj[start]) { 5 // if (color[next] == RY) throw "raph ist zyklisch"; 6 if (color[next] == WHIT) { 7 S(adj, next, color, toponum, topo); 8 } 9 } 10 topo[start] = ++toponum; 11 color[start] = LK; 12 } 14 // usgabe der topologischen Zahl von Knoten v in topo[v] 15 void toposort(list adj[n], int n, int &topo[n]) { 16 int color[n] = WHIT, toponum = 0; 17 for (int v = 0; v < n; v++) 18 if (color[v] == WHIT) 19 S(adj, v, color, toponum, topo); 20 } Joost-Pieter Katoen atenstrukturen und lgorithmen 69/81 Joost-Pieter Katoen atenstrukturen und lgorithmen 70/81 Topologische Sortierung: rgebnis eispiel I H I H wake choose shower dress make make pour eat leave up clothes coffee toast juice breakf bhängigkeitsgraph, der topologischen Ordnung entsprechend gezeichnet. Joost-Pieter Katoen atenstrukturen und lgorithmen 71/81 Korrektheit und Komplexität Theorem er lgorithmus terminiert, und wenn er terminiert enthält das rray topo eine topologische Ordnung von igraph. eweis: 1. ie S besucht jeden Knoten, daher sind die Zahlen in dem rray topo alle verschieden im ereich 1 bis V. 2. Sei (v, w). w ist kein Vorgänger von v im S-aum, sonst wäre zyklisch. aher ist w LK, wenn topo[v] ein Wert zugewiesen wird. lso wurde topo[w] schon vorher ein Wert zugewiesen. a toponum immer größer wird, folgt topo[v] > topo[w]. Zeitkomplexität ine topologische Ordnung kann in O( V + ) bestimmt werden. Joost-Pieter Katoen atenstrukturen und lgorithmen 72/81

19 2 Repräsentation von 3 durchlauf reitensuche 4 rreichbarkeitsanalyse s in ungerichteten Ss in gerichteten Topologische Sortierung in gerichteten azyklischen Kritische-Pfad-nalyse in gewichteten gerichteten azyklischen Joost-Pieter Katoen atenstrukturen und lgorithmen 73/81 ewichtete Knotengewichteter raph in knotengewichteter raph ist ein Tripel (V,, W ), wobei: (V, ) ein gerichteter oder ungerichteter raph ist, und W : V IR ewichtsfunktion. W (v) ist das ewicht des Knotens v. Kantengewichteter raph in (kanten-)gewichteter raph ist ein Tripel (V,, W ), wobei: (V, ) ein gerichteter oder ungerichteter raph ist, und W : IR ewichtsfunktion. W (e) ist das ewicht der Kante e. in knotengewichteter raph (V,, W ) lässt sich in einen kantengewichteten (V,, W ) überführen, indem alle von einem Knoten v ausgehenden Kanten e = (v, ) das ewicht W (e) = W (v) erhalten. Joost-Pieter Katoen atenstrukturen und lgorithmen 74/81 ewichtete : arstellung ewichtete werden ebenso als djazenzlisten oder djazenzmatrix dargestellt: ei knotengewichteten wird die Zusatzinformation zu den Knoten üblicherweise in einem weiteren rray gespeichert vgl. int color[n]; bei S oder S. Kantengewichte können bei der djazenzmatrixdarstellung direkt in der Matrix gespeichert werden. in besonderer Wert, etwa besagt, dass keine Kante existiert. Joost-Pieter Katoen atenstrukturen und lgorithmen 75/81 Joost-Pieter Katoen atenstrukturen und lgorithmen 76/81

20 as Kritische-Pfad-Problem: inführung as ewicht eines Pfades ist die Summe der Kantengewichten der besuchten Kanten, oder die Summe der Knotengewichte der besuchten Knoten. Kritischer-Pfad-Problem inde den längsten Pfad (bezogen auf das esamtgewicht) in einem (kanten- oder knoten-)gewichteten. Wir betrachten hier nur knotengewichtete s. eispiel (nwendung) Wie lange benötigt man für die usführung der bereits vorgestellten ufgaben mindestens, wenn für jede ufgabe eine auer gegeben ist und unabhängige ufgaben gleichzeitig erledigt werden können? as Kritische-Pfad-Problem: nwendung rüheste Startzeit- und ndzeitpunkt inde den frühestmöglichen eendigungszeitpunkt (earliest finish time, eft) für eine Menge voneinander abhängiger ufgaben. Jede ufgabe hat eine (nicht-negative) auer. er früheste Startzeitpunkt (earliest start time, est) für ufgabe v (est(v)) ist 0 wenn v keine bhängigkeiten hat; andernfalls: est(v) ist das Maximum der frühesten ndzeitpunkte seiner bhängigkeiten. er früheste ndzeitpunkt (earliest finish time) für ufgabe v (eft(v)) ist gleich est(v) plus der auer von v. Joost-Pieter Katoen atenstrukturen und lgorithmen 77/81 Joost-Pieter Katoen atenstrukturen und lgorithmen 78/81 as Kritische-Pfad-Problem: nwendung Kritische Pfad er kritische Pfad ist eine olge von ufgaben v 0,..., v k, so dass v 0 keine bhängigkeiten hat. v i abhängig von v i 1 ist, wobei est(v i ) = eft(v i 1 ). eft(v k ) das Maximum über alle ufgaben ergibt. ann gibt es eine kritische bhängigkeit zwischen v i 1 und v i, d.h. eine Verzögerung in v i 1 führt zu einer Verzögerung in v i. Joost-Pieter Katoen atenstrukturen und lgorithmen 79/81 Kritische-Pfad-nalyse: Implementierung 1 // Knotengewichte in duration. 2 // usgabe: eft, kritischer Pfad kodiert in critep 3 void S(List adj[n], int start, int &color[n], 4 int duration[n], int &critep[n], int &eft[n]) { 5 color[start] = RY; critep[start] = -1; int est = 0; 6 foreach (next in adj[start]) { 7 if (color[next] == WHIT) 8 S(adj, next, color, duration, critep, eft); 9 if (eft[next] >= est) { 10 est = eft[next]; critep[start] = next; 11 } 12 } 13 eft[start] = est + duration[start]; 14 color[start] = LK; 15 } 16 void critpath(list adj[n], int n, 17 int duration[n], int &critep[n], int &eft[n]){ 18 int color[n] = WHIT; 19 for (int i = 0; i < n; i++) 20 if (color[i] == WHIT) 21 S(adj, i, color, duration, critep, eft); 22 } Joost-Pieter Katoen atenstrukturen und lgorithmen 80/81

21 Kritische-Pfad-nalyse: eispiel Kritische-Pfad-nalyse: eispiel fertig I H I H fertig I H wake choose shower dress make make pour eat leave up clothes coffee toast juice breakf auer I H wake choose shower dress make make pour eat leave up clothes coffee toast juice breakf auer eft = = 16. Joost-Pieter Katoen atenstrukturen und lgorithmen 81/81 Joost-Pieter Katoen atenstrukturen und lgorithmen 81/81

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.

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. Graphen Definition: 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. Begriffe: Gerichteter Graph: Alle Kanten haben eine Richtung vom Anfangsknoten

Mehr

HEUTE. Datenstrukturen im Computer. Datenstrukturen. Rekursion. Feedback Evaluation. abstrakte Datenstrukturen

HEUTE. Datenstrukturen im Computer. Datenstrukturen. Rekursion. Feedback Evaluation. abstrakte Datenstrukturen 9.2.5 HUT 9.2.5 3 atenstrukturen im omputer atenstrukturen ie beiden fundamentalen atenstrukturen in der Praxis sind rray und Liste Rekursion Feedback valuation rray Zugriff: schnell Umordnung: langsam

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Prof. r. V. Linnemann Lübeck, den. Oktober 00 Universität zu Lübeck Institut für Informationssysteme lgorithmen und atenstrukturen Sommersemester 00. Klausur Lösungen Hinweis: chten Sie bei Programmieraufgaben

Mehr

Algorithmen und Datenstrukturen 2

Algorithmen und Datenstrukturen 2 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

Mehr

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

Vorlesung Informatik 2 Algorithmen und Datenstrukturen. (20 Graphen) T. Lauer Vorlesung Informatik 2 Algorithmen und Datenstrukturen (20 Graphen) T. Lauer 1 Motivation Wie komme ich am besten von Freiburg nach Ulm? Was ist die kürzeste Rundreise durch eine gegebene Menge von Städten?

Mehr

Einführung in (Binäre) Bäume

Einführung in (Binäre) Bäume edeutung und Ziele inführung in (inäre) äume Marc Rennhard http://www.tik.ee.ethz.ch/~rennhard rennhard@tik.ee.ethz.ch äume gehören ganz allgemein zu den wichtigsten in der Informatik auftretenden atenstrukturen,

Mehr

3. Musterlösung. Problem 1: Boruvka MST

3. Musterlösung. Problem 1: Boruvka MST Universität Karlsruhe Algorithmentechnik Fakultät für Informatik WS 06/07 ITI Wagner. Musterlösung Problem : Boruvka MST pt (a) Beweis durch Widerspruch. Sei T MST von G, e die lokal minimale Kante eines

Mehr

Graphen: Datenstrukturen und Algorithmen

Graphen: Datenstrukturen und Algorithmen Graphen: Datenstrukturen und Algorithmen Ein Graph G = (V, E) wird durch die Knotenmenge V und die Kantenmenge E repräsentiert. G ist ungerichtet, wenn wir keinen Start- und Zielpunkt der Kanten auszeichnen.

Mehr

Breiten- und Tiefensuche in Graphen

Breiten- und Tiefensuche in Graphen Breiten- und Tiefensuche in Graphen Inhalt Theorie. Graphen. Die Breitensuche in der Theorie am Beispiel eines ungerichteten Graphen. Die Tiefensuche in der Theorie am Beispiel eines gerichteten Graphen

Mehr

Algorithmen und Datenstrukturen 2

Algorithmen und Datenstrukturen 2 Algorithmen und Datenstrukturen 2 Sommersemester 2007 4. Vorlesung Peter F. Stadler Universität Leipzig Institut für Informatik studla@bioinf.uni-leipzig.de Traversierung Durchlaufen eines Graphen, bei

Mehr

Am Dienstag, den 16. Dezember, ist Eulenfest. 1/48

Am Dienstag, den 16. Dezember, ist Eulenfest. 1/48 Am Dienstag, den 16. Dezember, ist Eulenfest. 1/48 Grundbegriffe der Informatik Einheit 12: Erste Algorithmen in Graphen Thomas Worsch Universität Karlsruhe, Fakultät für Informatik Wintersemester 2008/2009

Mehr

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

Kürzeste Wege in Graphen. Maurice Duvigneau Otto-von-Guericke Universität Fakultät für Informatik Kürzeste Wege in Graphen Maurice Duvigneau Otto-von-Guericke Universität Fakultät für Informatik Gliederung Einleitung Definitionen Algorithmus von Dijkstra Bellmann-Ford Algorithmus Floyd-Warshall Algorithmus

Mehr

Algorithmen und Datenstrukturen Graphen - Einführung

Algorithmen und Datenstrukturen Graphen - Einführung Algorithmen und Datenstrukturen Graphen - Einführung Matthias Teschner Graphische Datenverarbeitung Institut für Informatik Universität Freiburg SS 12 Überblick Definition / Eigenschaften Anwendungen Repräsentation

Mehr

Datenstrukturen & Algorithmen

Datenstrukturen & Algorithmen Datenstrukturen & Algorithmen Matthias Zwicker Universität Bern Frühling 2010 Übersicht Binäre Suchbäume Einführung und Begriffe Binäre Suchbäume 2 Binäre Suchbäume Datenstruktur für dynamische Mengen

Mehr

Algorithmen und Datenstrukturen 2

Algorithmen und Datenstrukturen 2 Algorithmen und Datenstrukturen 2 Sommersemester 2006 5. Vorlesung Peter F. Stadler Universität Leipzig Institut für Informatik studla@bioinf.uni-leipzig.de Wdhlg.: Dijkstra-Algorithmus I Bestimmung der

Mehr

Informatik I WS 07/08 Tutorium 24

Informatik I WS 07/08 Tutorium 24 Info I Tutorium 24 Informatik I WS 07/08 Tutorium 24 3.2.07 astian Molkenthin E-Mail: infotut@sunshine2k.de Web: http://infotut.sunshine2k.de Organisatorisches / Review is zum 2.2 müssen alle Praxisaufgaben

Mehr

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

Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen 186.172 Algorithmen und Datenstrukturen 1 VL 4.0 Übungsblatt 4 für die Übung

Mehr

Das Briefträgerproblem

Das Briefträgerproblem Das Briefträgerproblem Paul Tabatabai 30. Dezember 2011 Inhaltsverzeichnis 1 Problemstellung und Modellierung 2 1.1 Problem................................ 2 1.2 Modellierung.............................

Mehr

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

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny Grundlagen der Informatik Prof. Dr. Stefan Enderle NTA Isny 2 Datenstrukturen 2.1 Einführung Syntax: Definition einer formalen Grammatik, um Regeln einer formalen Sprache (Programmiersprache) festzulegen.

Mehr

Schaltungen von Widerständen

Schaltungen von Widerständen Schaltungen von Widerständen von Peter Nemec, Otto-ahn-ymnasium Saarbrücken, 004 ufgabe 1 Wie groß ist der elektrische Widerstand ges zwischen a) den Klemmen und, b) den Klemmen und, wenn alle Teilwiderstände

Mehr

2. Repräsentationen von Graphen in Computern

2. Repräsentationen von Graphen in Computern 2. Repräsentationen von Graphen in Computern Kapitelinhalt 2. Repräsentationen von Graphen in Computern Matrizen- und Listendarstellung von Graphen Berechnung der Anzahl der verschiedenen Kantenzüge zwischen

Mehr

Algorithmen und Datenstrukturen Suchbaum

Algorithmen und Datenstrukturen Suchbaum Algorithmen und Datenstrukturen Suchbaum Matthias Teschner Graphische Datenverarbeitung Institut für Informatik Universität Freiburg SS 12 Motivation Datenstruktur zur Repräsentation dynamischer Mengen

Mehr

Kapitel 4: Minimal spannende Bäume Gliederung der Vorlesung

Kapitel 4: Minimal spannende Bäume Gliederung der Vorlesung Kapitel : Minimal spannende Bäume Gliederung der Vorlesung. Fallstudie Bipartite Graphen 2. Grundbegriffe. Elementare Graphalgorithmen und Anwendungen. Minimal spannende Bäume. Kürzeste Wege. Traveling

Mehr

Informatik 11 Kapitel 2 - Rekursive Datenstrukturen

Informatik 11 Kapitel 2 - Rekursive Datenstrukturen Fachschaft Informatik Informatik 11 Kapitel 2 - Rekursive Datenstrukturen Michael Steinhuber König-Karlmann-Gymnasium Altötting 15. Januar 2016 Folie 1/77 Inhaltsverzeichnis I 1 Datenstruktur Schlange

Mehr

8 Graphrepräsentation

8 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

Mehr

183.579, SS2012 Übungsgruppen: Do., 14.6. Mi., 20.6.2012

183.579, SS2012 Übungsgruppen: Do., 14.6. Mi., 20.6.2012 VU Technische Grundlagen der Informatik Übung 8: Systemsoftware und Netzwerke 183.579, SS2012 Übungsgruppen: o., 14.6. Mi., 20.6.2012 ufgabe 1: Virtual Memory Zeichnen Sie ein System das Paging zur Speicherverwaltung

Mehr

Modul N5 - Routing. Informatik erleben. Anwendung: http, smtp. Transport: TCP, UDP. Segment. Vermittlung: IP. Datagramm. Sicherung: Ethernet, PPP

Modul N5 - Routing. Informatik erleben. Anwendung: http, smtp. Transport: TCP, UDP. Segment. Vermittlung: IP. Datagramm. Sicherung: Ethernet, PPP N-Netze Modul - Routing eitrahmen 0 Minuten ielgruppe Sekundarstufe II Inhaltliche Voraussetzung keine, N4 von Vorteil Lehrziel Kennen lernen eines Routing-lgorithmus, sowie der Netzwerkschichten http://www.sxc.hu

Mehr

Übersicht. Datenstrukturen und Algorithmen. Übersicht. Divide-and-Conquer. Vorlesung 9: Quicksort (K7)

Übersicht. Datenstrukturen und Algorithmen. Übersicht. Divide-and-Conquer. Vorlesung 9: Quicksort (K7) Datenstrukturen und Algorithmen Vorlesung 9: (K7) Joost-Pieter Katoen Lehrstuhl für Informatik 2 Software Modeling and Verification Group http://www-i2.rwth-aachen.de/i2/dsal0/ Algorithmus 8. Mai 200 Joost-Pieter

Mehr

Aus Knoten und Kanten, die Bezeichnungen haben können. Ein Graph, bei dem die Kanten Richtungen haben.

Aus Knoten und Kanten, die Bezeichnungen haben können. Ein Graph, bei dem die Kanten Richtungen haben. ormale Methoden der Informatik WS 2/2 Lehrstuhl für atenbanken und Künstliche Intelligenz ProfrrJRadermacher H Ünver T Rehfeld J ollinger 3 ufgabenblatt esprechung in den Tutorien vom 72 (ab Übungstermin)

Mehr

Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005. Paradigmen im Algorithmenentwurf

Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005. Paradigmen im Algorithmenentwurf Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005 Paradigmen im Algorithmenentwurf Problemlösen Problem definieren Algorithmus entwerfen

Mehr

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

1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie Gliederung 1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. äume / Graphen 5. Hashing 6. Algorithmische Geometrie 4/5, olie 1 2014 Prof. Steffen Lange - HDa/bI

Mehr

1 topologisches Sortieren

1 topologisches Sortieren Wolfgang Hönig / Andreas Ecke WS 09/0 topologisches Sortieren. Überblick. Solange noch Knoten vorhanden: a) Suche Knoten v, zu dem keine Kante führt (Falls nicht vorhanden keine topologische Sortierung

Mehr

WORKFLOW DESIGNDOKUMENT

WORKFLOW DESIGNDOKUMENT Architectural Design WORKFLOW DESIGNDOKUMENT Softwareentwicklung Praktikum, Übungsbeispiel 2 Gruppe 86 Andreas Hechenblaickner [0430217] Daniela Kejzar [0310129] Andreas Maller [0431289] Gruppe 86 Seite

Mehr

ADS: Algorithmen und Datenstrukturen 2

ADS: Algorithmen und Datenstrukturen 2 ADS: Algorithmen und Datenstrukturen Der Tragödie IV. Theyl Peter F. Stadler & Konstantin Klemm Bioinformatics Group, Dept. of Computer Science & Interdisciplinary Center for Bioinformatics, University

Mehr

Informatik II Musterlösung

Informatik II Musterlösung Ludwig-Maximilians-Universität München SS 2006 Institut für Informatik Übungsblatt 4 Prof. Dr. M. Wirsing, M. Hammer, A. Rauschmayer Informatik II Musterlösung Zu jeder Aufgabe ist eine Datei abzugeben,

Mehr

Datenstrukturen und Algorithmen

Datenstrukturen und Algorithmen Joost-Pieter Katoen Datenstrukturen und Algorithmen 1/32 Datenstrukturen und Algorithmen Vorlesung 7: Sortieren (K2) Joost-Pieter Katoen Lehrstuhl für Informatik 2 Software Modeling and Verification Group

Mehr

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

Graphenalgorithmen und lineare Algebra Hand in Hand Vorlesung für den Bereich Diplom/Master Informatik Vorlesung für den Bereich Diplom/Master Informatik Dozent: Juniorprof. Dr. Henning Meyerhenke PARALLELES RECHNEN INSTITUT FÜR THEORETISCHE INFORMATIK, FAKULTÄT FÜR INFORMATIK KIT Universität des Landes

Mehr

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

Graphen: Einführung. Vorlesung Mathematische Strukturen. Sommersemester 2011 Graphen: Einführung Vorlesung Mathematische Strukturen Zum Ende der Vorlesung beschäftigen wir uns mit Graphen. Graphen sind netzartige Strukturen, bestehend aus Knoten und Kanten. Sommersemester 20 Prof.

Mehr

Routing Algorithmen. Begriffe, Definitionen

Routing Algorithmen. Begriffe, Definitionen Begriffe, Definitionen Routing (aus der Informatik) Wegewahl oder Verkehrslenkung bezeichnet in der Telekommunikation das Festlegen von Wegen für Nachrichtenströme bei der Nachrichtenübermittlung über

Mehr

8 Diskrete Optimierung

8 Diskrete Optimierung 8 Diskrete Optimierung Definition 8.1. Ein Graph G ist ein Paar (V (G), E(G)) besteh aus einer lichen Menge V (G) von Knoten (oder Ecken) und einer Menge E(G) ( ) V (G) 2 von Kanten. Die Ordnung n(g) von

Mehr

I.4 Warshall - Algorithmus

I.4 Warshall - Algorithmus I.4 Warshall - lgorithmus er ijkstra - lgorithmus bietet eine relativ schnelle öglichkeit den minimalen Weg zwischen zwei Knoten in einem Graphen zu bestimmen. ei anderer bbruchbedingung erhält man auch

Mehr

Effiziente Algorithmen und Datenstrukturen I. Kapitel 9: Minimale Spannbäume

Effiziente Algorithmen und Datenstrukturen I. Kapitel 9: Minimale Spannbäume Effiziente Algorithmen und Datenstrukturen I Kapitel 9: Minimale Spannbäume Christian Scheideler WS 008 19.0.009 Kapitel 9 1 Minimaler Spannbaum Zentrale Frage: Welche Kanten muss ich nehmen, um mit minimalen

Mehr

8.4 Projektmanagement und Netzplantechnik

8.4 Projektmanagement und Netzplantechnik olie 96 Projektmanagement. rundlagen. Netzplantechnik (PM). PM-eispiel. Projektmanagement und Netzplantechnik. PM-Übungsbeispiel Literaturempfehlungen Schwarze,. (00): Projektmanagement mit Netzplantechnik,

Mehr

Algorithmen und Datenstrukturen 2-2. Seminar -

Algorithmen und Datenstrukturen 2-2. Seminar - Algorithmen und Datenstrukturen 2-2. Seminar - Dominic Rose Bioinformatics Group, University of Leipzig Sommersemster 2010 Outline 2. Übungsserie: 3 Aufgaben, insgesamt 30 Punkte A4 Flußnetzwerk, Restgraphen

Mehr

Customization (Zuschneiden)

Customization (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

Mehr

Binary Decision Diagrams (BDDs) 1

Binary Decision Diagrams (BDDs) 1 Handout 22.11.2011 Binary Decision Diagrams (BDDs) 1 Übersicht Es gibt viele verschiedene Möglichkeiten um Boole sche Funktionen zu repräsentieren (Boole sche Formeln, Minterme, Wahrheitstabellen, ). Manche

Mehr

Randomisierte Algorithmen

Randomisierte Algorithmen Randomisierte Algorithmen Randomisierte Algorithmen 7. Random Walks Thomas Worsch Fakultät für Informatik Karlsruher Institut für Technologie Wintersemester 2016/2017 1 / 43 Überblick Überblick Ein randomisierter

Mehr

Informatik II, SS 2014

Informatik II, SS 2014 Informatik II SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 13 (18.6.2014) Binäre Suchbäume IV (Rot Schwarz Bäume) Algorithmen und Komplexität Rot Schwarz Bäume Ziel: Binäre Suchbäume, welche immer

Mehr

Name: Seite 2. Beantworten Sie die Fragen in den Aufgaben 1 und 2 mit einer kurzen, prägnanten Antwort.

Name: Seite 2. Beantworten Sie die Fragen in den Aufgaben 1 und 2 mit einer kurzen, prägnanten Antwort. Name: Seite 2 Beantworten Sie die Fragen in den Aufgaben 1 und 2 mit einer kurzen, prägnanten Antwort. Aufgabe 1 (8 Punkte) 1. Wie viele negative Zahlen (ohne 0) lassen sich im 4-Bit-Zweierkomplement darstellen?

Mehr

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 13. Bäume. Bäume

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 13. Bäume. Bäume 1 Kapitel 13 Ziele 2 Den Begriff des Baums in der Informatik kennenlernen als verkettete Datenstruktur repräsentieren können Rekursive Funktionen auf n verstehen und schreiben können Verschiedene Möglichkeiten

Mehr

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

Institut für Programmierung und Reaktive Systeme 25. August 2014. Programmier-Labor. 04. + 05. Übungsblatt. int binarysearch(int[] a, int x), Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 25. August 2014 Programmier-Labor 04. + 05. Übungsblatt Aufgabe 21: a) Schreiben Sie eine Methode

Mehr

Kapitel MK:IV. IV. Modellieren mit Constraints

Kapitel MK:IV. IV. Modellieren mit Constraints Kapitel MK:IV IV. Modellieren mit Constraints Einführung und frühe Systeme Konsistenz I Binarization Generate-and-Test Backtracking-basierte Verfahren Konsistenz II Konsistenzanalyse Weitere Analyseverfahren

Mehr

4.2 Die Chomsky Normalform

4.2 Die Chomsky Normalform 4.2 Die Chomsky Normalform Für algorithmische Problemstellungen (z.b. das Wortproblem) aber auch für den Nachweis von Eigenschaften kontextfreier Sprachen ist es angenehm, von CFG in Normalformen auszugehen.

Mehr

5.2 Das All-Pairs-Shortest-Paths-Problem (APSP-Problem) Kürzeste Wege zwischen allen Knoten. Eingabe: Gerichteter Graph G =(V, E, c)

5.2 Das All-Pairs-Shortest-Paths-Problem (APSP-Problem) Kürzeste Wege zwischen allen Knoten. Eingabe: Gerichteter Graph G =(V, E, c) 5.2 Das All-Pairs-Shortest-Paths-Problem (APSP-Problem) Kürzeste Wege zwischen allen Knoten. Eingabe: Gerichteter Graph G =(V, E, c) mit V = {1,...,n} und E {(v, w) 1 apple v, w apple n, v 6= w}. c : E!

Mehr

10 Graphenalgorithmen in Java

10 Graphenalgorithmen in Java 10.1 Implementierung eines gewichteten Graphen 10.2 Implementierung der Breitensuche 10.3 Implementierung der Tiefensuche 10 147 Teil X Graphalgorithmen in Java Überblick Implementierung eines gewichteten

Mehr

Übersicht Datenstrukturen und Algorithmen. Literatur. Algorithmus: Wikipedia Definition. Vorlesung 1: Einführung. Prof. Dr.

Übersicht Datenstrukturen und Algorithmen. Literatur. Algorithmus: Wikipedia Definition. Vorlesung 1: Einführung. Prof. Dr. Übersicht Datenstrukturen und Vorlesung 1: Prof. Dr. Erika Ábrahám Theorie Hybrider Systeme Informatik 2 http://ths.rwth-aachen.de/teaching/ss-14/ datenstrukturen-und-algorithmen/ Diese Präsentation verwendet

Mehr

Dynamische Programmierung. Problemlösungsstrategie der Informatik

Dynamische Programmierung. Problemlösungsstrategie der Informatik als Problemlösungsstrategie der Informatik und ihre Anwedung in der Diskreten Mathematik und Graphentheorie Fabian Cordt Enisa Metovic Wissenschaftliche Arbeiten und Präsentationen, WS 2010/2011 Gliederung

Mehr

Binärbäume. Prof. Dr. E. Ehses, 2014 1

Binärbäume. Prof. Dr. E. Ehses, 2014 1 Binärbäume Grundbegriffe der Graphentheorie Bäume und Ihre Anwendungen Unterschiedliche Darstellungen von Bäumen und Binärbäumen Binärbäume in Java Rekursive Traversierung von Binärbäumen Ebenenweise Traversierung

Mehr

Informatik II, SS 2014

Informatik 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:

Mehr

Übung zur Vorlesung Algorithmische Geometrie

Übung zur Vorlesung Algorithmische Geometrie Übung zur Vorlesung Algorithmische Geometrie Dipl.-Math. Bastian Rieck Arbeitsgruppe Computergraphik und Visualisierung Interdisziplinäres Zentrum für Wissenschaftliches Rechnen 8. Mai 2012 B. Rieck (CoVis)

Mehr

3.2 Binäre Suche. Usr/local/www/ifi/fk/menschen/schmid/folien/infovk.ppt 1

3.2 Binäre Suche. Usr/local/www/ifi/fk/menschen/schmid/folien/infovk.ppt 1 3.2 Binäre Suche Beispiel 6.5.1: Intervallschachtelung (oder binäre Suche) (Hier ist n die Anzahl der Elemente im Feld!) Ein Feld A: array (1..n) of Integer sei gegeben. Das Feld sei sortiert, d.h.: A(i)

Mehr

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

1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie Gliederung 1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. äume / Graphen. Hashing 6. Algorithmische Geometrie 4/6, Folie 1 2014 Prof. Steffen Lange - HDa/FbI

Mehr

Grundlagen der Künstlichen Intelligenz

Grundlagen der Künstlichen Intelligenz Grundlagen der Künstlichen Intelligenz 9. Klassische Suche: Baumsuche und Graphensuche Malte Helmert Universität Basel 13. März 2015 Klassische Suche: Überblick Kapitelüberblick klassische Suche: 5. 7.

Mehr

Übungen zu Programmierung I - Blatt 8

Übungen zu Programmierung I - Blatt 8 Dr. G. Zachmann A. Greß Universität Bonn Institut für Informatik II 1. Dezember 2004 Wintersemester 2004/2005 Übungen zu Programmierung I - Blatt 8 Abgabe am Mittwoch, dem 15.12.2004, 15:00 Uhr per E-Mail

Mehr

Wiederholung zu Flüssen

Wiederholung zu Flüssen Universität Konstanz Methoden der Netzwerkanalyse Fachbereich Informatik & Informationswissenschaft SS 2008 Prof. Dr. Ulrik Brandes / Melanie Badent Wiederholung zu Flüssen Wir untersuchen Flüsse in Netzwerken:

Mehr

Geordnete Binärbäume

Geordnete Binärbäume Geordnete Binärbäume Prof. Dr. Martin Wirsing in Zusammenarbeit mit Gilbert Beyer und Christian Kroiß http://www.pst.ifi.lmu.de/lehre/wise-09-10/infoeinf/ WS 09/10 Einführung in die Informatik: Programmierung

Mehr

Einführung in die Informatik

Einführung in die Informatik Einführung in die Informatik Jochen Hoenicke Software Engineering Albert-Ludwigs-University Freiburg Sommersemester 2014 Jochen Hoenicke (Software Engineering) Einführung in die Informatik Sommersemester

Mehr

16. All Pairs Shortest Path (ASPS)

16. All Pairs Shortest Path (ASPS) . All Pairs Shortest Path (ASPS) All Pairs Shortest Path (APSP): Eingabe: Gewichteter Graph G=(V,E) Ausgabe: Für jedes Paar von Knoten u,v V die Distanz von u nach v sowie einen kürzesten Weg a b c d e

Mehr

Kombinatorische Optimierung

Kombinatorische Optimierung Juniorprof. Dr. Henning Meyerhenke 1 Henning Meyerhenke: KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Vorlesung 1 Programm des

Mehr

Datenstrukturen. Mariano Zelke. Sommersemester 2012

Datenstrukturen. Mariano Zelke. Sommersemester 2012 Datenstrukturen Mariano Zelke Sommersemester 2012 Prioritätswarteschlangen Mariano Zelke Datenstrukturen 2/28 Der abstrakte Datentyp Prioritätswarteschlange : Füge Elemente (mit Prioritäten) ein und entferne

Mehr

4 Greedy-Algorithmen (gierige Algorithmen)

4 Greedy-Algorithmen (gierige Algorithmen) Greedy-Algorithmen (gierige Algorithmen) Greedy-Algorithmen werden oft für die exakte oder approximative Lösung von Optimierungsproblemen verwendet. Typischerweise konstruiert ein Greedy-Algorithmus eine

Mehr

Konzepte der Informatik

Konzepte der Informatik Konzepte der Informatik Vorkurs Informatik zum WS 2011/2012 26.09. - 30.09.2011 17.10. - 21.10.2011 Dr. Werner Struckmann / Christoph Peltz Stark angelehnt an Kapitel 1 aus "Abenteuer Informatik" von Jens

Mehr

10 Dynamische Programmierung

10 Dynamische Programmierung 137 Dynamische Programmierung Das Prinzip der Dynamischen Programmierung wird häufig bei Fragestellungen auf Worten angewendet..1 Längste gemeinsame Teilfolge Wir betrachten Worte der rt w = a 1 a 2 a

Mehr

Struktur am Beispiel einer Liste

Struktur am Beispiel einer Liste Struktur am Beispiel einer 1 Einfügen(neues element ) Aktiv Wartend knoten knoten 2 Einfügen(neues element ) Aktiv Wartend knoten knoten 3 Einfügen(neues element ) Aktiv Wartend knoten knoten 4 Aha, ich

Mehr

Informatik II Bäume. Beispiele. G. Zachmann Clausthal University, Germany zach@in.tu-clausthal.de. Stammbaum. Stammbaum. Stammbaum

Informatik II Bäume. Beispiele. G. Zachmann Clausthal University, Germany zach@in.tu-clausthal.de. Stammbaum. Stammbaum. Stammbaum lausthal Beispiele Stammbaum Informatik II. Zachmann lausthal University, ermany zach@in.tu-clausthal.de. Zachmann Informatik - SS 06 Stammbaum Stammbaum / Parse tree, Rekursionsbaum Parse tree, Rekursionsbaum

Mehr

Programmierung 2. Dynamische Programmierung. Sebastian Hack. Klaas Boesche. Sommersemester 2012. hack@cs.uni-saarland.de. boesche@cs.uni-saarland.

Programmierung 2. Dynamische Programmierung. Sebastian Hack. Klaas Boesche. Sommersemester 2012. hack@cs.uni-saarland.de. boesche@cs.uni-saarland. 1 Programmierung 2 Dynamische Programmierung Sebastian Hack hack@cs.uni-saarland.de Klaas Boesche boesche@cs.uni-saarland.de Sommersemester 2012 2 Übersicht Stammt aus den Zeiten als mit Programmierung

Mehr

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

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

Mehr

10. Kapitel (Teil1) BÄUME GRUNDLAGEN. Algorithmen & Datenstrukturen Prof. Dr. Wolfgang Schramm

10. Kapitel (Teil1) BÄUME GRUNDLAGEN. Algorithmen & Datenstrukturen Prof. Dr. Wolfgang Schramm 10. Kapitel (Teil1) BÄUME GRUNDLAGEN Algrithmen & Datenstrukturen Prf. Dr. Wlfgang Schramm Übersicht 1 1. Einführung 2. Algrithmen 3. EigenschaCen vn Prgrammiersprachen 4. Algrithmenparadigmen 5. Suchen

Mehr

Effiziente Algorithmen I

Effiziente Algorithmen I H 10. Präsenzaufgabenblatt, Wintersemester 2015/16 Übungstunde am 18.01.2015 Aufgabe Q Ein Reiseveranstalter besitzt ein Flugzeug, das maximal p Personen aufnehmen kann. Der Veranstalter bietet einen Flug

Mehr

Algorithmik Funke/Bahrdt/Krumpe/Mendel/Seybold SS Übungsblatt 4

Algorithmik Funke/Bahrdt/Krumpe/Mendel/Seybold SS Übungsblatt 4 Algorithmik Funke/Bahrdt/Krumpe/Mendel/Seybold SS 2015 http://www.fmi.informatik.uni-stuttgart.de/alg Institut für Formale Methoden der Informatik Universität Stuttgart Übungsblatt 4 Punkte: 50 Problem

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Dipl. Inform. Andreas Wilkens aw@awilkens.com Überblick Grundlagen Definitionen Elementare Datenstrukturen Rekursionen Bäume 2 1 Datenstruktur Baum Definition eines Baumes

Mehr

Moderne Betriebssysteme

Moderne Betriebssysteme ndrew S. Tanenbaum Moderne etriebssysteme 2. überarbeitete uflage übersetzt von Prof. Dr. Uwe aumgarten Technische Universität München ein Imprint der Pearson Education Deutschland GmbH KPITEL 3 Deadlocks

Mehr

13. Binäre Suchbäume

13. Binäre Suchbäume 1. Binäre Suchbäume Binäre Suchbäume realiesieren Wörterbücher. Sie unterstützen die Operationen 1. Einfügen (Insert) 2. Entfernen (Delete). Suchen (Search) 4. Maximum/Minimum-Suche 5. Vorgänger (Predecessor),

Mehr

Technische Universität München Zentrum Mathematik Propädeutikum Diskrete Mathematik. Weihnachtsblatt

Technische Universität München Zentrum Mathematik Propädeutikum Diskrete Mathematik. Weihnachtsblatt Technische Universität München Zentrum Mathematik Propädeutikum Diskrete Mathematik Prof. Dr. A. Taraz, Dipl-Math. A. Würfl, Dipl-Math. S. König Weihnachtsblatt Aufgabe W.1 Untersuchen Sie nachstehenden

Mehr

C++, LEDA und STL Visualisierung minimal/maximal aufspannender Bäume

C++, LEDA und STL Visualisierung minimal/maximal aufspannender Bäume Fachbereich IV, Informatik Softwarepraktikum C++, LEDA und STL Visualisierung minimal/maximal aufspannender Bäume Wintersemester 2004/2005 Dokumentation Algorithmen zur Lösung von MST - Problemen Nicolas

Mehr

Vorlesung 3 MINIMALE SPANNBÄUME

Vorlesung 3 MINIMALE SPANNBÄUME Vorlesung 3 MINIMALE SPANNBÄUME 72 Aufgabe! Szenario: Sie arbeiten für eine Firma, die ein Neubaugebiet ans Netz (Wasser, Strom oder Kabel oder...) anschließt! Ziel: Alle Haushalte ans Netz bringen, dabei

Mehr

Klausur Datenstrukturen und Algorithmen SoSe 2012

Klausur Datenstrukturen und Algorithmen SoSe 2012 Prof. aa Dr. Ir. Joost-Pieter Katoen Christian Dehnert, Jonathan Heinen, Thomas Ströder, Sabrina von Styp Klausur Datenstrukturen und Algorithmen SoSe 2012 Vorname: Nachname: Studiengang (bitte genau einen

Mehr

Elementargeometrie. Prof. Dr. Andreas Meister SS digital von: Frank Lieberknecht

Elementargeometrie. Prof. Dr. Andreas Meister SS digital von: Frank Lieberknecht Prof. Dr. Andreas Meister SS 2004 digital von: Frank Lieberknecht Geplanter Vorlesungsverlauf...1 Graphentheorie...1 Beispiel 1.1: (Königsberger Brückenproblem)... 1 Beispiel 1.2: (GEW - Problem)... 2

Mehr

Einführung in die Informatik 1

Einführung in die Informatik 1 Einführung in die Informatik 1 Algorithmen und algorithmische Sprachkonzepte Sven Kosub AG Algorithmik/Theorie komplexer Systeme Universität Konstanz E 202 Sven.Kosub@uni-konstanz.de Sprechstunde: Freitag,

Mehr

Seminar Werkzeuggestütze. tze Softwareprüfung. fung. Slicing. Sebastian Meyer

Seminar Werkzeuggestütze. tze Softwareprüfung. fung. Slicing. Sebastian Meyer Seminar Werkzeuggestütze tze Softwareprüfung fung Slicing Sebastian Meyer Überblick Einführung und Begriffe Static Slicing Dynamic Slicing Erweiterte Slicing-Techniken Fazit 2 Was ist Slicing?? (I) Program

Mehr

Bäume, Suchbäume und Hash-Tabellen

Bäume, Suchbäume und Hash-Tabellen Im folgenden Fokus auf Datenstrukturen, welche den assoziativen Zugriff (über einen bestimmten Wert als Suchkriterium) optimieren Bäume: Abbildung bzw. Vorberechnung von Entscheidungen während der Suche

Mehr

Datenstruktur, die viele Operationen dynamischer Mengen unterstützt

Datenstruktur, die viele Operationen dynamischer Mengen unterstützt Algorithmen und Datenstrukturen 265 10 Binäre Suchbäume Suchbäume Datenstruktur, die viele Operationen dynamischer Mengen unterstützt Kann als Wörterbuch, aber auch zu mehr eingesetzt werden (Prioritätsschlange)

Mehr

Abgabe: (vor der Vorlesung) Aufgabe 2.1 (P) O-Notation Beweisen Sie die folgenden Aussagen für positive Funktionen f und g:

Abgabe: (vor der Vorlesung) Aufgabe 2.1 (P) O-Notation Beweisen Sie die folgenden Aussagen für positive Funktionen f und g: TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Lehrstuhl für Sprachen und Beschreibungsstrukturen SS 2009 Grundlagen: Algorithmen und Datenstrukturen Übungsblatt 2 Prof. Dr. Helmut Seidl, S. Pott,

Mehr

11.1 Grundlagen - Denitionen

11.1 Grundlagen - Denitionen 11 Binärbäume 11.1 Grundlagen - Denitionen Denition: Ein Baum ist eine Menge, die durch eine sog. Nachfolgerrelation strukturiert ist. In einem Baum gilt: (I) (II) 1 Knoten w ohne VATER(w), das ist die

Mehr

Kapitel 6: Graphalgorithmen Gliederung

Kapitel 6: Graphalgorithmen Gliederung Gliederung 1. Grundlagen 2. Zahlentheoretische Algorithmen 3. Sortierverfahren 4. Ausgewählte Datenstrukturen 5. Dynamisches Programmieren 6. Graphalgorithmen 7. String-Matching 8. Kombinatorische Algorithmen

Mehr

Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder

Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder Programmieren in PASCAL Bäume 1 1. Baumstrukturen Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder 1. die leere Struktur oder 2. ein Knoten vom Typ Element

Mehr

Unterscheidung: Workflowsystem vs. Informationssystem

Unterscheidung: Workflowsystem vs. Informationssystem 1. Vorwort 1.1. Gemeinsamkeiten Unterscheidung: Workflowsystem vs. Die Überschneidungsfläche zwischen Workflowsystem und ist die Domäne, also dass es darum geht, Varianten eines Dokuments schrittweise

Mehr

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

Was bisher geschah Wissensrepräsentation und -verarbeitung in Zustandsübergangssystemen Constraint-Systemen Logiken Repräsentation von Mengen Was bisher geschah Wissensrepräsentation und -verarbeitung in Zustandsübergangssystemen Constraint-Systemen Logiken Repräsentation von Mengen aussagenlogischer Regeln: Wissensbasis (Kontextwissen): Formelmenge,

Mehr

Schwierige Probleme in der Informatik Informationen für die Lehrperson

Schwierige Probleme in der Informatik Informationen für die Lehrperson Schwierige Probleme in der Informatik Informationen für die Lehrperson Thema, Adressaten,... Das Thema dieses Moduls sind NP-vollständige Probleme, also schwierige Probleme in der Informatik. GraphBench

Mehr

Wiederholung ADT Menge Ziel: Verwaltung (Finden, Einfügen, Entfernen) einer Menge von Elementen

Wiederholung ADT Menge Ziel: Verwaltung (Finden, Einfügen, Entfernen) einer Menge von Elementen Was bisher geschah abstrakter Datentyp : Signatur Σ und Axiome Φ z.b. ADT Menge zur Verwaltung (Finden, Einfügen, Entfernen) mehrerer Elemente desselben Typs Spezifikation einer Schnittstelle Konkreter

Mehr