4 Tiefensuche in gerichteten Graphen
|
|
- Christoph Günther Winkler
- vor 6 Jahren
- Abrufe
Transkript
1 43 4 Tiefensche in gerichteten Graphen Wir betrachten znächst das folgende Beispiel. Beispiel 4.1: 1/ / / 1/ 2/ / 1/ 2/ / 1/ 2/ / / / x / / / / y z x y z x y z x y (a) (b) (c) (d) / 3/ / 4/ 3/ / z 1/ 2/ / 1/ 2/ / 1/ 2/7 / 1/8 2/7 / 4/5 x 3/ / 4/5 3/6 / 4/5 3/6 y z x y z x y z x y (e) (f) (g) (h) / 4/5 3/6 / z 1/8 2/7 9/ 1/8 2/7 9/ 1/8 2/7 9/ 1/8 2/7 9/12 4/5 3/6 x / 4/5 3/6 10/ 4/5 3/6 10/11 4/5 3/6 y z x y z x y z x y (i) (j) (k) (l) 10/11 z (a) Wir fangen bei Knoten zm Zeitpnkt 1 an, (b) gehen eine Kante. Dabei entdecken ir den Knoten zm Zeitpnkt 2. Der Knoten ist der erste Knoten af der Adjazenzliste on. (c) Dann ird y entdeckt. Die Knoten,,y sind offen = gra. (d) Danach entdecken ir das x. Kante (x, ) ird zar gegangen, aber nicht darüber entdeckt. (e) -(h)dieknoteny, nderden geschlossen.eserdenkeineneenknoten mehr darüber entdeckt. (i) Dann bei eiter. Adjazenzliste on ist:
2 44 4 TIEFENSUCHE IN GERICHTETEN GRAPHEN y z (j) - (l) Wir finden noch den Knoten z. Der Tiefenschald besteht as den Kanten, über die die Knoten entdeckt rden. z x y V = 6 E = 4 = V 2 Ein Wald ist eine Menge on Bämen. Die Darstellng erfolgt ie bei der Breitensche über ein Vaterarray. π[x] = y,π[y] =,π[] =,π[] = (alternati nil), π[z] =,π[] = (alternati nil).
3 4.1 Algorithms Tiefensche Algorithms Tiefensche Eingabe G = (V, E) in Adjazenzlistendarstellng, gerichteter Graph, V = n. d[1 n] Entdeckzeit (discoery) Nicht Entfernng ie orher. Knoten ird gra. f[1 n] Beendezeit (finishing), Knoten ird scharz. π[1n] Tiefenschald, obei π[] = im Bam. π[] = Knoten, über den entdeckt rde col[1n] aktelle Farbe Algorithms 5: DFS(G) /* 1. Initialisierng */ 1 foreach V do 2 col[] = eiß; 3 π[] = nil; 4 end 5 time = 0; /* 2. Haptschleife. */ 6 foreach V do /* Afrf on DFS-isit nr, enn col[] = eiß */ 7 if col[] == eiß then 8 DFS-isit(); 9 end 10 end Prozedr DFS-isit() 1 col[] = gra; /* Damit ist entdeckt */ 2 d[] = time; 3 time = time+1; 4 foreach Adj[] do /* ird bearbeitet */ 5 if col[] == eiß then /* (,) nterscht */ 6 π[] = ; /* entdeckt */ 7 DFS-isit(); 8 end 9 end /* Die Bearbeitng on ist hier z Ende. Sind alle Knoten as Adj[] gra oder scharz, so ird direkt scharz. */ 10 col[] = scharz; 11 f[] = time; /* Zeitzähler geht hoch bei Entdecken nd Beenden */ 12 time = time+1; Es ist {d[1],,d[m],f[1],,f[m]} = {1,,2n}. Man kann über die Reihenfolge nicht iel sagen. Möglich ist:
4 46 4 TIEFENSUCHE IN GERICHTETEN GRAPHEN Einmal: d[] = 1,d[] = 2,d[] = 3 nd f[] = 4,f[] = 5,f[] = 6. Aber ach: d[] = 1,f[] = 2,d[] = 3,f[] = 4,d[] = 5,f[] = 6. DFS-isit() ird nr dann afgerfen, enn col[] = eiß ist. Die Rekrsion geht nr in eiße Knoten. Nachdem alle on as über eiße(!) Knoten erreichbare Knoten bescht sind, ird col[] = scharz. Im Nachhinein ar ährend eines Lafes col[] = eiß, solange time < d[] col[] = gra, solange d[] < time < f[] col[] = scharz, solange f[] < time Unser Eingangsbeispiel führt z folgendem Prozedrafrfbam: DFS(G) Seqentielle Abarbeitng DFS isit() DFS isit() DFS isit() DFS isit(z) DFS isit(y) Beachte den Tiefenschald DFS isit(x) y z kein DFS isit() x Erzegng: Präorder(Vater or Sohn) Beendigng: Postorder(Sohn or Vater)
5 4.1 Algorithms Tiefensche 47 Wir betrachten ir nn noch einmal folgendes Beispiel: Beispiel 4.2: a 1 20 b g c h i d j e Wird über c entdeckt, nicht über g, obohl on g as erreichbar. f 6 11 Wie erfolgt die Asführng der Prozedrafrfe af nserem Maschinenmodell der RAM? Organisation des Haptspeichers als Keller on Frames: Programm globale Daten eines Programmes, arrays s. (heap, nicht die Datenstrktr gleichen Namens) DFS(G) DFS isit() DFS isit() RA konstante Größe (nr programm abhängig) Rücksprngadresse
6 48 4 TIEFENSUCHE IN GERICHTETEN GRAPHEN Veraltngsafand zm Einrichten nd Löschen eines Frames: O(1), programmabhängig. Hier erden im esentlichen Adressen mgesetzt. Merkregel zr Zeitermittlng: Drchlaf jeder Programmzeile inklsie Prozedrafrf ist O(1). Bei Prozedrafrf zählen ir so: Zeit für den Afrf selbst (Veraltngsafand) O(1) + Zeit bei der eigentlichen Asführng. Satz 4.1: Für G = (V,E) mit n = V nd m = E bracht DFS(G) eine Zeit O(n+m). Beeis. Für die Haptprozedr erhalten ir: DFS(G) 1. O(n), 2. O(n) ohne Zeit in DFS-isit(). DFS-isit() O(n) für Veraktngsafand insgesamt. DFS-isit() ird nr dann afgerfen, enn col[] = eiß ist. Am Ende des Afrfs ird col[] = scharz. Für DFS-isit erhalten ir über alle Afrfe hineg gesehen: Zeilen Lafzeit 1-3 Jeeils O(1), insgesamt O(n). 4-9 Ohne Zeit in DFS-isit() insgesamt O(m). 5 Für jede Kante einmal O(1) also insgesamt O(m). 6, 7 Für jedes Entdecken O(1), also O(n) insgesamt O(n) insgesamt. Also tatsächlich O(n + m) Definition 4.1(Tiefenschald): Sei G = (V, E) nd sei DFS(G) gelafen. Sei G π = (V,E π ) mit (,) E π π[] = der Tiefenschald der Sche. Definition 4.2(Klassifizieren der Kanten on G): Sei (,) E eine Kante im Graphen. Beim Drchlafen des Graphen mittels Tiefensche kann diese Kante eine sogenannte Bamkante, Rückärtskante, Vorärtskante oder Krezkante sein. (a) (,) Bamkante (,) E π (d.h. π[] = ) (b) (,) Rückärtskante (,) E π nd Vorgänger on in G π π[π[π[]]] = ) G π Knoten ist gra, enn (,) gegangen ird. (d.h. (,) d[] < d[] < f[] < f[] տ Hier ird (,) gegangen.
7 4.1 Algorithms Tiefensche 49 (c) (,) Vorärtskante (,) E π nd Nachfolger on in G π Knoten ist scharz, enn (,) gegangen ird. G π (,) d[] < d[] < f[] < f[] տ տ Hier (,). Hier nicht (,). (d) (,) Krezkante (,) E π nd eder Nachfolger noch Vorgänger on in G π G π oder Knoten ist scharz, enn (,) gegangen ird. d[] < f[] < d[] < f[] Noch eine Beobachtng für Knoten,. Für die Interalle, in denen die Knoten akti (offen, gra) sind. gilt: Enteder d[] < d[] < f[] < f[], d.h im Prozedrafrfbam ist DFS-isit() DFS-isit(). Oder es gilt d[] < f[] < d[] < f[] oder mgekehrt. Das folgt as Kellerstrktr des Lafzeitkellers. Satz 4.2(Weißer-Weg-Satz): Der Knoten ird über entdeckt. (d.h. innerhalb on DFS-isit() ird DFS-ist() afgerfen) Zm Zeitpnkt d[] gibt es einen Weg eißer Weg in G. Beeis. Afrfstrktr, enn DFS-isit() afgerfen ird: DFS-isit() DFS-isit( 1 ) DFS-isit( 2 ) DFS-isit()
8 50 4 TIEFENSUCHE IN GERICHTETEN GRAPHEN eißer Weg Liege also z d[] der eiße Weg k or. Das Problem ist, dass dieser Weg keinesegs on der Sche genommen erden mss. Trotzdem, angenommen ird nicht über entdeckt, dann gilt nicht d[] < d[] < f[] < f[], sondern d[] < f[] < d[] < f[]. Dann aber ach nach Programm d[] < f[] < d[ k ] < f[ k ] dann d[] < f[] < d[ 1 ] < f[ 1 ] as dem Programm iderspricht. Noch ein Beispiel: Beispiel 4.3: d[] 1 10 f[] y x 4 7 Zm Zeitpnkt 1 ist (,y) ein eißer Weg. Dieser ird nicht gegangen, sondern ein anderer. Aber y ird in jedem Fall über entdeckt! Mit der Tiefensche kann man feststellen, ob ein (gerichteter) Graph einen Kreis enthält. Satz 4.3: Ist G = (V,E) gerichtet, G hat Kreis DFS(G) ergibt eine Rückärtskante.
9 4.1 Algorithms Tiefensche 51 Beeis. Sei (,) eine Rückärtskante. Dann herrscht in G π, dem Tiefenschald folgende Sitation: oder ach Rückärtskante (, ) Rückärtskante (, ) Also Kreis in G. Hat G einen Kreis, dann also Sei der erste Knoten af dem Kreis, den DFS(G) entdeckt. Dann existiert zm Zeitpnkt d[] der folgende eiße Weg.... Der Kreis herm.
10 52 4 TIEFENSUCHE IN GERICHTETEN GRAPHEN Satz 4.4(Weißer-Weg-Satz): d[] < d[] < f[] < f[] Also enn (, ) gegangen nd ist col[] = gra also Rückärtskante. Alternati, mit Weißer-Weg-Satz: (,) Der Knoten ist irgendann nter nd dann ist (,) Rückärtskante. Man ergleiche hier den Satz nd den Beeis z Kreisen in ngerichteten Graphen in Kapitel 2. Dort betrachte man den zletzt af dem Kreis entdeckten Knoten. Wir können ach topologisch sortieren, enn der Graph kreisfrei ist. a 1 12 b 2 11 c 3 10 d f e 5 6 Nach absteigender Beendezeit sorteieren. größte Beendezeit ր a,b,c,f,d,e տ kleinste Beendezeit
11 4.1 Algorithms Tiefensche 53 Aber ach a b 9 10 c 1 8 d f e 3 4 Absteigende Beendezeit: a, b, c, d, f, e. Satz 4.5: Sei G = (V,E) kreisfrei. Lassen ir nn DFS(G) lafen, dann gilt für alle, V,, dass f[] < f[] (,) E. Keine Kante geht on kleinerer nach größerer Beendezeit. Beeis. Wir zeigen: (,) E f[] > f[]. 1.Fall: d[] < d[] Dann Weißer Weg (,) z d[], also d[] < d[] < f[] < f[] egen Weißer- Weg-Satz. 2.Fall: d[] > d[] Zm Zeitpnkt d[] ist col[] = eiß. Aber da kreisfrei, ird nicht on as entdeckt, da sonst (, ) Rückärtskante ist nd damit ein Kreis orliegt. Also kann nr folgendes sein: d[] < f[] < d[] < f[] nd es ist f[] < f[] Bemerkng zm Beeis: Wir ollen eine Assage der Art A B zeigen. Wir zeigen aber statt dessen B A. Diese Beiden Assagen sind äqialent, denn A B A B B A B A.
12 54 4 TIEFENSUCHE IN GERICHTETEN GRAPHEN Beachte aber Wenn (,) E nd f[] < f[], gilt der Satz nicht. Aber ir haben ja ach einen Kreis! Im kreisfreien Fall eta so: Im kreisfreien(!) Fall immer: dann f[] < f[] Wird or gra, dann ist klar f[] < f[]. Wird aber or gra, dann ird nicht nachfolger on, also ach dann f[] < f[], Weg kreisfrei.
13 55 5 Anendng Tiefensche: Starke Zsammenhangskomponenten Starke Zsammenhangskomponenten beziehen sich immer nr af gerichtete Graphen. Der Begriff der Zsammenhangskomponente im ngerichteten Graph besagt, dass zei Knoten z einer solchen Komponente gena dann gehören, enn man zischen ihnen hin nd her gehen kann. Die analoge Sche führt bei gerichteten Graphen af starke Zsammenhangskomponenten. Einige Beispiele: y z x Starke Zsammenhangskomponente x Der Knoten y kann nicht dabei sein. (y, z) ist keine starke Zsammenhangskomponente, also sind y nd z alleine. Interessante Beobachtng: Scheinbar gehört nicht jede Kante z einer starken Zsammenhangskomponente. x Der ganze Graph ist eine starke Zsammenhangskomponente. Z, haben ir z.b. die Wege (,,) nd (,,). Die Kanten der Wege sind alle erschieden, die Knoten nicht! Damit sind die Vorbereitngen für folgende offizielle Definition getroffen: Definition 5.1(stark zsammenhängend): Ist G = (V, E) gerichtet, so ist G stark zsammenhängend für alle, V gibt es Wege (,) nd (,) Also noch einmal: Ist (, ) stark zsammenhängend?
14 56 5 STARKE ZUSAMMENHANGSKOMPONENTEN Es bietet sich an, einen Graphen, der nicht stark zsammenhängend ist, in seine stark zsammenhängenden Teile afzteilen. Definition 5.2(Starke Zsammenhangskomponente, starke Komponente): Ist G = (V,E) gerichteter Graph. Ein Teilgrpah H = (W,F) on G, d.h. W V nd F E ist eine starke Zsammenhangskomponente H ist ein maximaler indzierter Teilgraph on G, der stark zsammenhängend ist. Man sagt ach: starke Komponente. Was soll das das maximal? Wir haben folgende Anordnng af dem indizierten Teilgraphen on G: Sei H = (W,F), H = (W,F ), dann H H, gena dann, enn H Teilgraph on H ist, d.h. W W. Ein maximaler stark zsammenhängender Teilgraph ist einer, der keinen eiteren stark zsammenhängenden über sich hat. Also x y z a dann sind die starken Komponenten x y z a Nicht y z a, obohl stark zsammenhängend, egen der Maximalität. Man sieht noch einmal: Jeder Knoten gehört z gena einer starken Komponente. Warm kann ein Knoten nicht z zei erschiedenen starken Komponenten gehören? Eta in: x Wir gehen das Problem an z testen, ob ein Graph stark zsammenhängend ist, bz, die starken Komponenten z finden. Ein einfacher Algorithms äre eta: Prüfe für je zei Knoten (,), ob es einen Weg on nach nd on nach gibt. Etas genaer:
15 57 Algorithms 6: Test af starken Zsammenhang (naie Variante) Inpt : G = (V,E), V = {1,,n} 1 foreach (,) V V mit < do 2 BFS(G,); 3 Speichere die Farbe on ; /* Wenn erreichbar, dann scharz. */ 4 BFS(G,); 5 Speichere die Farbe on ; /* Wenn erreichbar, dann scharz. */ 6 if erreichbar nd erreichbar then /* Die Wege (,) nd (,) existieren. Hier ist nichts mehr z tn, eiter mit dem nächsten Paar */ 7 else /* Mindestens einer der Wege (,) nd (,) existert nicht. Der Graph kann nicht mehr stark zsammenhängend sein. Wir können hier direkt abbrechen. */ 8 retrn Nicht stark zsammenhängend. 9 end 10 end /* Wenn der Algorithms bis hierher gekommen ist, existieren alle Wege. */ 11 retrn Stark zsammenhängend. Zeitabschätzng: Zeile Lafzeit (global gezählt) 1 Es gibt O( V 2 ) Paare Eine Breitensche daert O( V + E ). Die Tests sind O(1). Also insgesamt O( V 2 ( V + E ) = O( V 2 E ), sofern E 1 2 V. (O( V 2 E ) kann O( V 4 ) sein.) 11 O(1) Es geht etas besser: Daz zerst die folgende Überlegng. Sei ein beliebiger Knoten des stark zsammenhängenden Graphen nd 1, 2 zei on as erreichbare Knoten. Wenn jetzt aßerdem noch ein Weg on 1 nach nd ach on 2 nach existiert, dann existieren ach die Wege ( 1, 2 ) nd ( 2, 1 ). Nämlich mindestens ( 1,,,, 2 ) nd ( 2,,,, 1 ). dann ach
16 58 5 STARKE ZUSAMMENHANGSKOMPONENTEN Algorithms 7: Test af starken Zsammenhang (mit modifizierter Breitensche) Inpt : G = (V,E), V = {1,,n} /* Die Breitensche ist derart modifiziert, dass sie eine Liste der om Startknoten as erreichbaren Knoten liefert. */ 1 L = MBFS(G,); /* ist ein beliebiger Knoten z.b. Knoten 1. */ /* Im Prinzip müssen jetzt alle Knoten aßer in L sein. Sonst kann der Graph nicht stark zsammenhängend sein. Man kann dann bestenfalls noch die Zsammenhangskomponente, in der enthalten ist, bestimmen. */ 2 foreach L do 3 BFS(G,); /* normale Breitensche */ 4 if on as erreichbar then /* Weg i(,) existiert. Nächten Knoten testen. */ 5 else 6 retrn Nicht stark zsammenhängend. ; /* bz. enn man an der Komponente on interessiert ist, dann */ // L = L\{}; 7 end 8 end Zeitabschätzng: Zeile Lafzeit 1 O( V + E ) 2-8 O( V ( V + E ) also O( V E ) sofern E 1 2 V. V E kann bis V 3 gehen. ( V = 10, dann V 3 = 1000) Satz 5.1(Zsammenhangslemma): Sei G = (V, E) ein gerichteter Graph nd sei V. G ist stark zsammenhängend gena dann, enn für alle V gilt nd. Beeis. Klar nach Definition. Sind x,y V, dann x Vorassetzng. y nd y x nach Die mit Hilfe der Breitensche erreichte Lafzeit on O( V E ) bz. O( V 3 ) ist nter praktischen Gesichtspnkten noch nicht besonders gt. Wenn man zm Finden der starken Zsammenhangskomponenten jedoch die Tiefensche einsetzt, kann man esentlich besser erden.
17 5.1 Finden on starken Zsammenhangskomponenten in O( V + E ) Finden on starken Zsammenhangskomponenten in O( V + E ) Schlüsselbeobachtng ist: Sind H 1 = (W 1,F 1 ),H 2 = (W 2,F 2 ) zei starke Komponenten on G = (V,E), dann H 1 H 2 in G oder in G H 1 H 2 nd allgemeiner: Satz 5.2: Fassen ir die starken Komponenten als einzelnen Knoten af nd erbinden sie gena dann, enn sie in G erbnden sind, so ist der entstehende gerichtete Graph kreisfrei. Beeis. Ist (H 1,H 2,,H k,h 1 ) ein Kreis af der Ebene der Komponenten, so gehören alle H i z einer Komponente. Wir können die Komponenten topologisch sortieren! Immer ist nach Tiefensche: H 1 H 2 H 3 größte Beendezeiten alles asser Rückärtskante kleinste Beendezeiten Ordnen ir die Knoten einmal nach absteigender Beendezeit, dann immer:
18 60 5 STARKE ZUSAMMENHANGSKOMPONENTEN on H 1 H 2 oder H 1 H 3,H 2,H f[ 1 ] am größten, 1 H 1 f[ 2 ] am größten in H 2 f[ 3 ] am größten in H 3 1 = Knoten mit kleinster Anfangszeit in H 1 2 = Knoten mit kleinster Anfangsteit in H 2 3 = Knoten mit kleinster Anfangszeit in H 3 Bemerkng:(Weißer-Weg-Satz) Die maximale Beendezeit in Komponenten lässt die topologische Sortierng erkennen. Wie kann man aber diese 1, 2, 3 erkennen? Fangen ir in H 3 an, dann H 2, dann H 1, dann sind 3, 2, 1 die Wrzeln der Bäme. Aber nicht, enn die Reihenfolge H 1,H 2,H 3 geählt ird. Raslafen tritt af. Deshalb: Eine eitere Tiefensche mit dem Umkehrgraph: H 1 H 2 H 3 Haptschleife on DFS(G) in obiger Reihenfolge: H 1 H 2,H 1 H 3,H 2,H (Komponenten kommen nach topologischer Sortierng.) Dann liefert DFS-isit( 1 ): Gena H 1. 2 steht jetzt orne af der Liste. DFS-isit( 2 ): Gena H 2. 3 orne af der Liste. DFS-isit( 3 ): Gena H 3. Alle Knoten abgearbeitet, enn nr drei Komponenten orhanden sind.
19 5.1 Finden on starken Zsammenhangskomponenten in O( V + E ) 61 Algorithms 8: Starke-Kompnenten(G) Inpt : G = (V,E) gerichteter Graph /* Die Tiefensche liefert eine Liste der Knoten nach absteigender Beendezeit sortiert. */ 1 L = DFS 1 (G); /* L = ( 1, 2,, n ) mit f[ 1 ] > f[ 2 ] > > f[ n ] */ 2 G U = Drehe alle Kanten in G m. /* Die Haptschleife der Tiefensche bearbeitet jetzt die Knoten in Reihenfolge der Liste L. */ /* Jedes DFS-isit() der Haptschleife ergibt eine starke Komponente. */ 3 DFS 2 (G U, L); Die Lafzeit beträgt offensichtlich O( V + E ). Es ird 2 die Tiefensche asgeführt. Das mdrehen der Kanten geht ach in O( V + E ). Beispiel 5.1: V = {a,b,c} 1. Tiefensche a Tiefensche a 1 2 b 2 5 b 3 4 kein Raslafen c 3 4 c 5 6 Eine andere Reihenfolge bei der ersten Tiefensche liefert: 1. Tiefensche 2. Tiefensche ie orher. a 5 6 a 1 2 b 3 4 b 3 4 kein Raslafen c 1 2 c 5 6
20 62 5 STARKE ZUSAMMENHANGSKOMPONENTEN Motiation des Algorithms K 4 starke Komponenten K 3 K 2 K 1 erste Tiefensche fängt hier an Eine Tiefensche entdeckt in jedem Fall die Komponete eines Knotens. Die Tiefensche kann aber as der Komponente raslafen! Die Tiefensche lässt die topologische Sortierng af den Komponenten erkennen. Nach maximaler Beendezeit in Komponente: K 4 < K 1 < K 2 < K 3 maximale Beendezeit K 2 oder K egal, ob zerst nach 3 K 4 < K 1 < K 2 < K 3 Kanten Bei Beginn in K 4 bekommen ir: K 1 < K 4 < K 2 < K 3. Wie kann man das Raslafen jetzt erhindern? K 4 K 3 kein Raslafen, da K 4 scharz or K 2 K 2 K 1
21 5.1 Finden on starken Zsammenhangskomponenten in O( V + E ) 63 Haptschleife gemäß topologischer Sortierng, d.h. abfallende Beendezeit: Beispiel 5.2: K 4,K 1,K 2,K 3 a 1 24 Stammater b d 2 23 f K 1 Umkehrng 7 K 2 20 c e Stammater h 8 19 g Umkehrng l i k K 3 Stammater j 1. Tiefensche on Starke-Komponenten(G) Knotenliste: (a,b,c,e,f,g, K 1 K 2 K 3 i,j,k,l, h K 2, d K 1 ) Stammater ist der Knoten, über den eine starke Komponente das erste Mal betreten ird. D.h. der Knoten mit der kleinsten Anfangszeit in dieser Komponente. Einige Überlegngen zr Korrektheit. Welcher Knoten einer Komponente ird zerst betreten? Definition 5.3(Stammater): Nach dem Laf on DFS(G) sei für V. Φ() ist der Knoten, der nter allen on erreichbaren Knoten die maximale Beendezeit hat. Φ() nennt man Stammater on. Satz 5.3: Es gilt: (a) Es ist col[φ()] = gra bei d[]. (b) In G gibt es die Wege Φ[] nd Φ[]. Beeis. (a) Klar bei = Φ(). Sei also Φ(). Wir schließen die anderen Fälle as.
22 64 5 STARKE ZUSAMMENHANGSKOMPONENTEN 1. Fall: col[φ()] scharz bei d[]. Dann f[φ()] < d[] < f[] im Widersprch zr Definition, da ja. 2. Fall: col[φ()] eiß bei d[]. Gibt es z d[] Weißen Weg on nach Φ(), dann d[] < d[φ()] < f[φ()] < f[] im Widersprch zr Definition on Φ(). Gibt es z d[] keinen Weißen Weg on nach Φ() dann (da ja Φ[] ) sieht es so as: 1 2 l l Φ[] Weißer Weg col[ l ] = gra bei d[] col[ l ] = scharz geht nicht Es ist l der letzte Knoten af dem Weg mit col[ l ] = gra. Dann aber egen Weißem Weg d[ l ] < d[φ()] < f[φ()] < f[ l ] im Widersprch zr Definition on Φ(), da l (b) Mit (a) ist d[φ()] < d[] < f[] < f[φ()] Folgerng 5.1: a), in einer starken Komponente Φ() = Φ() Stammäter starke Komponenten b) Φ() = der Knoten mit der kleinsten Anfangszeit in der Komponente on. Beeis. a) Mit letztem Satz nd Definition Stammater: Φ[] Φ[] Also Φ() = Φ(). Andererseits
23 5.1 Finden on starken Zsammenhangskomponenten in O( V + E ) 65 Also, in einer Komponente. Φ[] = Φ[] b) Sei mit kleinster Anfangszeit in starker Komponente. Dann d[] < d[] < f[] < f[] für alle in der Komponente. Alle on erreichbaren erden or f[] entdeckt, also or f[] beendet. Also = Φ() Beachte noch einmal: Die erste Tiefensche fängt z.b. bei 2 an. L = ( 1,, 2,, 3 ) egen Beendezeiten. Die Korrektheit des Algorithms ergibt sich jetzt as: Satz 5.4: In der Liste L = ( 1,, n ) gibt die Position der Stammäter eine topologische Sortierng der starken Komponenten an. Beeis. Sei also die Liste L = ( 1,, k,, l ). k, denn sonst äre l kein Stamm- Sei k < l, dann gibt es keinen Weg in G. l ater, da f[ l ] > f[ k ]. Im Umkehrgraph: Gleiche Komponenten ie orher. Aber Kanten zischen Komponenten Komponenten gegen topologische Sortierng. Also gibt die 2. Tiefensche die Komponenten as.
5 Anwendung Tiefensuche: Starke Zusammenhangskomponenten
55 5 Anwendng Tiefensche: Starke Zsammenhangskomponenten Starke Zsammenhangskomponenten beziehen sich immer nr af gerichtete Graphen. Der Begriff der Zsammenhangskomponente im ngerichteten Graph besagt,
MehrAlgorithmen und Datenstrukturen
1 Algorithmen und Datenstrukturen Wintersemester 2017/18 20. Vorlesung Tiefensuche und topologische Sortierung Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I Themen für den 3. Kurztest (Do, 25.01.18)
MehrZweizusammenhang und starker Zusammenhang
.. Zeizusammenhang und starker Zusammenhang Carsten Gutenger Vorlesung Algorithmen und Datenstrukturen WS /. Januar Zeizusammenhang Betrachte ein Netzerk (Graph) Z.B. Computernetzerk, Flug- oder Schienennetzerk
MehrDefinition Ein gerichteter Graph G = (V, E) ist ein Graph von geordneten Paaren (u, v) mit u V und v V.
Kapitel 4 Graphenalgorithmen 4.1 Definitionen Definition 4.1.1. Der Graph G = (V, E) ist über die beiden Mengen V und E definiert, wobei V die Menge der Knoten und E die Menge der Kanten in dem Graph ist.
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Wintersemester 2012/13 22. Vorlesung Tiefensuche und Topologische Sortierung Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I Vorlesungsumfrage Nutzen Sie die Vorlesungsbefragung
MehrLösungsvorschlag Hausübung 8
Lösungsvorschlag Hausübung 8 Peter Kling 16. Juli 2007 Aufgabe 27 Betrachten Sie den Algorithmus Heapsort (vgl. Alg. 1) aus der Vorlesung. Illustrieren Sie die Arbeitsweise von Heapsort am Beispiel des
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
MehrDer Approximationsalgorithmus von Christofides
Der Approximationsalgorithms on Christofides Problem: Traeling Salesman Inpt: Ein Graph G = (V, E) mit einer Distanzfnktion d : E Q 0. Afgabe: Finde eine Tor, die alle Knoten des Graphen G gena einmal
MehrGraphentheorie. Planarität und Dualität. Planarität und Dualität. Planarität und Dualität. Rainer Schrader. 28. November 2007.
raphentheorie Rainer Schrader Zentrm für Angewandte Informatik Köln 8. Noember 007 1 / 67 / 67 liederng planare raphen Eler-Formel Charakterisierng planarer raphen Erweiterngen kreisplanare raphen Dalität
MehrTraversierung 1 / 16. P.F. Stadler & S. Will (Bioinf, Uni LE) ADS 2, V3 23. April / 16
P.F. Stadler & S. Will (Bioinf, Uni LE) ADS, V. April 0 / P.F. Stadler & S. Will (Bioinf, Uni LE) ADS, V. April 0 / Traversierung ADS: Algorithmen und Datenstrukturen Teil Prof. Peter F. Stadler & Sebastian
MehrFerienkurs zur algorithmischen diskreten Mathematik Kapitel 1: Grundlagen der algorithmischen Graphentheorie
Ferienkurs zur algorithmischen diskreten Mathematik Kapitel 1: Grundlagen der algorithmischen Graphentheorie Dipl-Math. Wolfgang Kinzner 2.4.2012 Kapitel 1: Grundlagen der algorithmischen Graphgentheorie
Mehr8 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
MehrLösungen zu Kapitel 5
Lösungen zu Kapitel 5 Lösung zu Aufgabe : (a) Es gibt derartige Graphen: (b) Offensichtlich besitzen 0 der Graphen einen solchen Teilgraphen. Lösung zu Aufgabe : Es sei G = (V, E) zusammenhängend und V
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 /
Mehr5. Bäume und Minimalgerüste
5. Bäume und Minimalgerüste Charakterisierung von Minimalgerüsten 5. Bäume und Minimalgerüste Definition 5.1. Es ein G = (V, E) ein zusammenhängender Graph. H = (V,E ) heißt Gerüst von G gdw. wenn H ein
MehrBreitensuche BFS (Breadth First Search)
Breitensuche BFS (Breadth First Search) Algorithmus BREITENSUCHE EINGABE: G = (V, E) als Adjazenzliste, Startknoten s V 1 Für alle v V 1 If (v = s) then d[v] 0 else d[v] ; 2 pred[v] nil; 2 Q new Queue;
MehrGraphdurchmusterung, Breiten- und Tiefensuche
Prof. Thomas Richter 18. Mai 2017 Institut für Analysis und Numerik Otto-von-Guericke-Universität Magdeburg thomas.richter@ovgu.de Material zur Vorlesung Algorithmische Mathematik II am 18.05.2017 Graphdurchmusterung,
MehrDas Heiratsproblem. Definition Matching
Das Heiratsproblem Szenario: Gegeben: n Frauen und m > n Männer. Bekanntschaftsbeziehungen zwischen allen Männern und Frauen. Fragestellung: Wann gibt es für jede der Frauen einen Heiratspartner? Modellierung
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.
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
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
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
MehrAlgorithmische Graphentheorie
Algorithmische Graphentheorie Vorlesung 4: Suchstrategien Babeş-Bolyai Universität, Department für Informatik, Cluj-Napoca csacarea@cs.ubbcluj.ro 14. April 2017 HALBORDNUNG TOPOLOGISCHE ORDNUNG TOPOLOGISCHES
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
Mehr6 Tiefensuche in ungerichteten Graphen: Zweifache Zusammenhangskomponenten
66 6 ZWEIFACHE ZUSAMMENHANGSKOMPONENEN 6 iefenshe in ngerihteten Grphen: Zeifhe Zsmmenhngskomponenten Der Algorithms ist gnz gen ersele ie im gerihteten Fll! Ailng 1 zeigt noh einml en gerihtete Fll n
MehrAlgorithmen und Datenstrukturen Tutorium Übungsaufgaben
Algorithmen und Datenstrukturen Tutorium Übungsaufgaben AlgoDat - Übungsaufgaben 1 1 Landau-Notation Aufgabe Lösung 2 Rekurrenzen Aufgabe 3 Algorithmenentwurf und -analyse Aufgabe AlgoDat - Übungsaufgaben
Mehr8.4 Digraphen mit negativen Kantengewichten Grundsätzliches Betrachte Startknoten s und einen Kreis C mit Gesamtlänge < 0.
8.4 Digraphen mit negativen Kantengewichten 8.4.1 Grundsätzliches Betrachte Startknoten s und einen Kreis C mit Gesamtlänge < 0. k 4 5 1 s 1 3 2 C k 0 k 3 1 1 1 k 1 k 2 v Sollte ein Pfad von s nach C und
Mehr2. November Gradfolgen Zusammenhang Kürzeste Wege. H. Meyerhenke: Algorithmische Methoden zur Netzwerkanalyse 37
2. November 2011 Gradfolgen Zusammenhang Kürzeste Wege H. Meyerhenke: Algorithmische Methoden zur Netzwerkanalyse 37 Satz von Erdős und Gallai Eine Partition einer natürlichen Zahl ist genau dann die Gradfolge
MehrKlausur Theoretische Informatik I WS 2004/2005
Technische Universität Chemnitz Chemnitz, den 22.02.2005 Fakultät für Informatik Prof. Dr. Andreas Goerdt Klausur Theoretische Informatik I WS 2004/2005 Studiengang Mechatronik Aufgabe 1 (2+2+2 Punkte)
Mehr4.2 Minimale Spannbäume: Der Algorithmus von Jarník/Prim Definition 4.2.1
Allgemeines. Minimale Spannbäume: Der Algorithmus von Jarník/Prim Definition.. (a) Ein Graph G =(V, E) heißt kreisfrei, wenn er keinen Kreis besitzt. Beispiel: Ein kreisfreier Graph: FG KTuEA, TU Ilmenau
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
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
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
MehrKapitel 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
MehrRauten-Mitten-Kegelschnitte zu vier Geraden. Eckart Schmidt. 1. Vorbemerkungen
Raten-Mitten-Kegelschnitte z ier Geraden 1 Vorbemerkngen Eckart chmidt Z ier Geraden g 1, g, g 3, g 4 erden Raten R 1 R R 3 R 4 betrachtet, deren Ecken entsprechend der Indizierng af den orgegebenen Geraden
Mehr12.4 Traveling Salesman Problem
96 KOMBINATORISCHE SUCHE.4 Traveling Salesman Problem Definition.3(TSP, Problem des Handlungsreisenden): Wir betrachten einen gerichteten, gewichteten Graphen G = (V,E) mit K : V R. K({u,v}) sind die Kosten
MehrBerechenbarkeitstheorie 24. Vorlesung
1 Berechenbarkeitstheorie Dr. Institut für Mathematische Logik und Grundlagenforschung WWU Münster WS 15/16 Alle Folien unter Creatie Commons Attribution-NonCommercial 3.0 Unported Lizenz. DHC Eingabe:
MehrLokale Eigenschaften des Hilbert-Symbols
Lokale Eigenschaften des Hilbert-Symbols (Nach J.P. Serre: A Corse in Arithmetic) Bettina Böhme, Karin Loch 24.05.2007 Im Folgenden bezeichnet k entweder den Körer R der reellen Zahlen oder den Körer Q
Mehr8. A & D - Heapsort. Werden sehen, wie wir durch geschicktes Organsieren von Daten effiziente Algorithmen entwerfen können.
8. A & D - Heapsort Werden sehen, wie wir durch geschicktes Organsieren von Daten effiziente Algorithmen entwerfen können. Genauer werden wir immer wieder benötigte Operationen durch Datenstrukturen unterstützen.
Mehr2. 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
MehrAlgorithmen 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
Mehr1. 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
MehrEin 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
MehrWiederholung
Wiederholung Knotenfärbung von Graphen Chromatische Zahl χ(g) Beweis: Jeder planare Graph ist 5-färbbar Vierfarbensatz: Jeder planare Graph ist 4-färbbar. Kantenfärbung: χ (G) = (G) oder (G)+1 Matchings
MehrTutoraufgabe 1 (Starke Zusammenhangskomponenten):
für Informatik Prof. aa Dr. Ir. Joost-Pieter Katoen Allgemeine Hinweise: Datenstrukturen und Algorithmen SS1 Übungsblatt (Abgabe 4.0.01) Christian Dehnert, Friedrich Gretz, Benjamin Kaminski, Thomas Ströder
MehrAlgorithmen und Datenstrukturen 14. Vorlesung
Algorithmen und Datenstrukturen. Vorlesung Karl-Heinz Niggl. Juli 006 Graphentheorie: Grundbegriffe Graphen (ungerichtet) 6 Digraph / gerichteter Graph: 6 FG KTuEA, TU Ilmenau AuD 07..006 FG KTuEA, TU
MehrZiel des spieles. Spielmaterial
Die Spieler erschen, drch das Errichten on Gebäden möglichst iele Siegpnkte z sammeln. 37 rechteckige Karten (nd zar 18 Arbeiter, 6 Sklaen, 4 Werkzege, 4 Kredite, 4 Uniersitäten nd 1 Startspieler) Beispiel
MehrDatenstrukturen Teil 2. Bäume. Definition. Definition. Definition. Bäume sind verallgemeinerte Listen. Sie sind weiter spezielle Graphen
Bäume sind verallgemeinerte Listen Datenstrukturen Teil 2 Bäume Jeder Knoten kann mehrere Nachfolger haben Sie sind weiter spezielle Graphen Graphen bestehen aus Knoten und Kanten Kanten können gerichtet
Mehr9 Minimum Spanning Trees
Im Folgenden wollen wir uns genauer mit dem Minimum Spanning Tree -Problem auseinandersetzen. 9.1 MST-Problem Gegeben ein ungerichteter Graph G = (V,E) und eine Gewichtsfunktion w w : E R Man berechne
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,
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
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:
MehrBerechnung von Abständen
3. Kreis- und Wegeprobleme Abstände in Graphen Abstände in Graphen Definition 3.4. Es sei G = (V, E) ein Graph. Der Abstand d(v, w) zweier Knoten v, w V ist die minimale Länge eines Weges von v nach w.
MehrAufgaben zur Klausurvorbereitung
Vorlesung Graphen und Optimierung Sommersemester 2013/14 Prof. S. Lange Aufgaben zur Klausurvorbereitung Hier finden Sie eine Reihe von Übungsaufgaben, die wir an den beiden Vorlesungsterminen am 29.01.2014
MehrVorlesung 3: Graphenalgorithmen. Markus Püschel David Steurer Peter Widmayer. PDF download goo.gl/ym3spq
Vorlesung 3: Graphenalgorithmen Markus Püschel David Steurer Peter Widmayer PDF download goo.gl/ym3spq Algorithmen und Datenstrukturen, Herbstsemester 2017, ETH Zürich Gerichtete Graphen und Abhängigkeiten
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
MehrGraphen und Bäume. A.1 Graphen
Algorithmen und Datenstrukturen 96 A Graphen und Bäume A.1 Graphen Ein gerichteter Graph (auch Digraph) G ist ein Paar (V, E), wobei V eine endliche Menge und E eine Relation auf V ist, d.h. E V V. V heißt
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
Mehr10. Übungsblatt zu Algorithmen I im SS 2010
Karlsruher Institut für Technologie Institut für Theoretische Informatik Prof. Dr. Peter Sanders G.V. Batz, C. Schulz, J. Speck 0. Übungsblatt zu Algorithmen I im SS 00 http//algo.iti.kit.edu/algorithmeni.php
MehrDiskrete Strukturen. Hausaufgabe 1 (5 Punkte) Hausaufgabe 2 (5 Punkte) Wintersemester 2007/08 Lösungsblatt Januar 2008
Technische Universität München Fakultät für Informatik Lehrstuhl für Informatik 15 Computergraphik & Visualisierung Prof. Dr. Rüdiger Westermann Dr. Werner Meixner Wintersemester 2007/08 Lösungsblatt 9
MehrEffiziente Algorithmen
Effiziente Algorithmen Graphdurchläufe Vorlesender: Martin Aumüller (nach Folien von Prof. Martin Dietzfelbinger) April/Mai 0 FG KTuEA, TU Ilmenau Effiziente Algorithmen Sommersemester 0 Einleitung Kapitel
MehrGliederung. Definition Wichtige Aussagen und Sätze Algorithmen zum Finden von Starken Zusammenhangskomponenten
Gliederung Zusammenhang von Graphen Stark Zusammenhängend K-fach Zusammenhängend Brücken Definition Algorithmus zum Finden von Brücken Anwendung Zusammenhangskomponente Definition Wichtige Aussagen und
MehrKapitel 4: Netzplantechnik Gliederung der Vorlesung
Gliederung der Vorlesung 1. Grundbegriffe 2. Elementare Graphalgorithmen und Anwendungen 3. Kürzeste Wege 4. Netzplantechnik 5. Minimal spannende Bäume 6. Traveling Salesman Problem 7. Flüsse in Netzwerken
Mehr4. Kreis- und Wegeprobleme Abstände in Graphen
4. Kreis- und Wegeprobleme Abstände in Graphen Abstände in Graphen Definition 4.4. Es sei G = (V,E) ein Graph. Der Abstand d(v,w) zweier Knoten v,w V ist die minimale Länge eines Weges von v nach w. Falls
MehrFortgeschrittene Netzwerk- und Graph-Algorithmen
Fortgeschrittene Netzwerk- und Graph-Algorithmen Prof. Dr. Hanjo Täubig Lehrstuhl für Effiziente Algorithmen (Prof. Dr. Ernst W. Mayr) Institut für Informatik Technische Universität München Wintersemester
MehrVorlesung Datenstrukturen
Vorlesung Datenstrukturen Minimale Spannbäume Maike Buchin 18.7., 20.7.2017 Einführung Motivation: Verbinde Inseln mit Fähren oder Städte mit Schienen und verbrauche dabei möglichst wenig Länge. Problem:
MehrFreie Bäume und Wälder
(Martin Dietzfelbinger, Stand 4.6.2011) Freie Bäume und Wälder In dieser Notiz geht es um eine besondere Sorte von (ungerichteten) Graphen, nämlich Bäume. Im Gegensatz zu gerichteten Bäumen nennt man diese
Mehr1 DFS-Bäume in ungerichteten Graphen
Praktikum Algorithmen-Entwurf (Teil 3) 06.11.2006 1 1 DFS-Bäume in ungerichteten Graphen Sei ein ungerichteter, zusammenhängender Graph G = (V, E) gegeben. Sei ferner ein Startknoten s V ausgewählt. Startet
Mehr1 DFS-Bäume in ungerichteten Graphen
Praktikum Algorithmen-Entwurf (Teil 3) 31.10.2005 1 1 DFS-Bäume in ungerichteten Graphen Sei ein ungerichteter, zusammenhängender Graph G = (V, E) gegeben. Sei ferner ein Startknoten s V ausgewählt. Startet
MehrAlgorithmen 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(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,
MehrDefinition : Diechromatische Zahl eines Graphen G ist die kleinste Anzahl chromatische Zahl von Farben für eine zulässige Färbung.
4 Definition : Eine zulässige Färbung ist eine Färbung der Knoten des ( un- zulässige Färbung gerichteten ) Graphen, so daß je zwei adjazente Knoten verschiedene Farben haben. Trivial ist, daß n verschiedene
Mehr3. Minimale Spannbäume. Definition 99 T heißt minimaler Spannbaum (MSB, MST) von G, falls T Spannbaum von G ist und gilt:
3. Minimale Spannbäume Sei G = (V, E) ein einfacher ungerichteter Graph, der o.b.d.a. zusammenhängend ist. Sei weiter w : E R eine Gewichtsfunktion auf den Kanten von G. Wir setzen E E: w(e ) = e E w(e),
Mehr11.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
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 und Datenstrukturen
Algorithmen und Datenstrukturen Graphen 9/1 Begriffsdefinitionen Ein Graph besteht aus Knoten und Kanten. Ein Knoten(Ecke) ist ein benanntes Objekt. Eine Kante verbindet zwei Knoten. Kanten haben ein Gewicht
MehrAlgorithmen und Komplexität Lösungsvorschlag zu Übungsblatt 8
ETH Zürich Institut für Theoretische Informatik Prof. Dr. Angelika Steger Florian Meier, Ralph Keusch HS 2017 Algorithmen und Komplexität Lösungsvorschlag zu Übungsblatt 8 Lösungsvorschlag zu Aufgabe 1
MehrRouting A lgorithmen Algorithmen Begriffe, Definitionen Wegewahl Verkehrslenkung
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
MehrAbstrakter Datentyp (ADT): Besteht aus einer Menge von Objekten, sowie Operationen, die auf diesen Objekten wirken.
Abstrakte Datentypen und Datenstrukturen/ Einfache Beispiele Abstrakter Datentyp (ADT): Besteht aus einer Menge von Objekten, sowie Operationen, die auf diesen Objekten wirken. Datenstruktur (DS): Realisierung
MehrDatenstrukturen & 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Übungsblatt 2 - Lösung
Institut für Theoretische Informatik Lehrstuhl Prof. Dr. D. Wagner Übungsblatt 2 - Lösung Vorlesung Algorithmentechnik im WS 08/09 Ausgabe 04. November 2008 Abgabe 8. November, 5:0 Uhr (im Kasten vor Zimmer
Mehr7 Minimaler Spannbaum und Datenstrukturen
79 7 Minimaler Spannbaum und Datenstrukturen Hier betrachten wir als Ausgangspunkt stets zusammenhängende, ungerichtete Graphen. G So sind Spannbäume (aufspannende Bäume) on G. Beachte immer Kanten bei
MehrAufgabe 4.2 Sei G = (V, E, l) ein ungerichteter, gewichteter und zusammenhängender Graph.
Aufgabe 4.2 Sei G = (V, E, l) ein ungerichteter, gewichteter und zusammenhängender Graph. a) Es seien W 1 = (V, E 1 ), W 2 = (V, E 2 ) Untergraphen von G, die beide Wälder sind. Weiter gelte E 1 > E 2.
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
MehrZentralübung zur Vorlesung Diskrete Strukturen (Prof. Esparza)
WS 2013/14 Zentralübung zur Vorlesung Diskrete Strukturen (Prof. Esparza) Dr. Werner Meixner Fakultät für Informatik TU München http://www14.in.tum.de/lehre/2013ws/ds/uebung/ 22. Januar 2014 ZÜ DS ZÜ XIII
MehrAlgorithmentheorie 1. Vorlesung
Algorithmentheorie. Vorlesung Martin Dietzfelbinger 6. April 2006 Methode, Material Vorlesung Vorlesungsskript (Netz, Copyshop) Folien (im Netz) Vorlesung nachbereiten! Übung Übungsblätter (im Netz) Übung
MehrDas Rucksackproblem. Definition Sprache Rucksack. Satz
Das Rucksackproblem Definition Sprache Rucksack Gegeben sind n Gegenstände mit Gewichten W = {w 1,...,w n } N und Profiten P = {p 1,...,p n } N. Seien ferner b, k N. RUCKSACK:= {(W, P, b, k) I [n] : i
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
MehrVorlesung Datenstrukturen
Vorlesung Datenstrukturen Graphen (1) Darstellung Traversierung Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 441 Generalisierung von Bäumen Verallgemeinerung (von Listen zu Graphen)
Mehr3. Musterlösung. Problem 1: Heapsort
Universität Karlsruhe Algorithmentechnik Fakultät für Informatik WS 05/06 ITI Wagner 3. Musterlösung Problem : Heapsort ** 2 3 4 5 Algorithmus : Heapsort (A) Eingabe : Array A der Länge n Ausgabe : Aufsteigend
Mehr1 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
Mehr2. Entsprechende Listen P i von Vorgängern von i 3. for i := 1 to n do. (ii) S i = Knoten 2 + 1}
1. Berechne für jeden Knoten i in BFS-Art eine Liste S i von von i aus erreichbaren Knoten, so dass (i) oder (ii) gilt: (i) S i < n 2 + 1 und Si enthält alle von i aus erreichbaren Knoten (ii) S i = n
Mehr3.6 AVL-Bäume. (AVL = Adel son-velskii und Landis (1962)) . Seite 326/726
3.6 VL-Bäume (VL = del son-velskii und Landis (1962)) 2-3-Bäume... sind Basis der B-Bäume, sind gut auf eitere Operationen ereiterbar (SPLIT, CONCTENTE), haben Worstcase-Zeiten on O(log n), aber sie nuten
MehrVorlesung 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?
Mehr1. Einige Begriffe aus der Graphentheorie
. Einige Begriffe aus der Graphentheorie Notation. Sei M eine Menge, n N 0. Dann bezeichnet P n (M) die Menge aller n- elementigen Teilmengen von M, und P(M) die Menge aller Teilmengen von M, d.h. die
Mehr1. 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Übungsaufgaben Mathematik III MST. Zu b) Klassifizieren Sie folgende Differentialgleichungen nach folgenden Kriterien : - Anfangswertproblem
Übngsafgaben Mathematik III MST Lösngen z Blatt 4 Differentialgleichngen Prof. Dr. B.Grabowski Z Afgabe ) Z a) Klassifizieren Sie folgende Differentialgleichngen nach folgenden Kriterien: -Ordnng der Differentialgleichng
MehrEinführung in die Informatik 2
Einführung in die nformatik 2 raphenexploration Sven Kosub A 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
Mehr