4 Tiefensuche in gerichteten Graphen

Größe: px
Ab Seite anzeigen:

Download "4 Tiefensuche in gerichteten Graphen"

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

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,

Mehr

Algorithmen und Datenstrukturen

Algorithmen 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)

Mehr

Zweizusammenhang und starker Zusammenhang

Zweizusammenhang 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

Mehr

Definition Ein gerichteter Graph G = (V, E) ist ein Graph von geordneten Paaren (u, v) mit u V und v V.

Definition 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.

Mehr

Algorithmen und Datenstrukturen

Algorithmen 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

Mehr

Lösungsvorschlag Hausübung 8

Lö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

Mehr

15. Elementare Graphalgorithmen

15. 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

Mehr

Der Approximationsalgorithmus von Christofides

Der 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

Mehr

Graphentheorie. Planarität und Dualität. Planarität und Dualität. Planarität und Dualität. Rainer Schrader. 28. November 2007.

Graphentheorie. 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

Mehr

Traversierung 1 / 16. P.F. Stadler & S. Will (Bioinf, Uni LE) ADS 2, V3 23. April / 16

Traversierung 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

Mehr

Ferienkurs zur algorithmischen diskreten Mathematik Kapitel 1: Grundlagen der algorithmischen Graphentheorie

Ferienkurs 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

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

Lösungen zu Kapitel 5

Lö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

Mehr

Algorithmen und Datenstrukturen

Algorithmen 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 /

Mehr

5. Bäume und Minimalgerüste

5. 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

Mehr

Breitensuche BFS (Breadth First Search)

Breitensuche 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;

Mehr

Graphdurchmusterung, Breiten- und Tiefensuche

Graphdurchmusterung, 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,

Mehr

Das Heiratsproblem. Definition Matching

Das 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

Mehr

Vorlesung Datenstrukturen

Vorlesung 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.

Mehr

Graphenalgorithmen I

Graphenalgorithmen 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

Mehr

Definition Gerichteter Pfad. gerichteter Pfad, wenn. Ein gerichteter Pfad heißt einfach, falls alle u i paarweise verschieden sind.

Definition 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

Mehr

Wie wird ein Graph dargestellt?

Wie 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

Mehr

Algorithmische Graphentheorie

Algorithmische 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

Mehr

Algorithmen & Komplexität

Algorithmen & 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

Mehr

6 Tiefensuche in ungerichteten Graphen: Zweifache Zusammenhangskomponenten

6 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

Mehr

Algorithmen und Datenstrukturen Tutorium Übungsaufgaben

Algorithmen 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

Mehr

8.4 Digraphen mit negativen Kantengewichten Grundsätzliches Betrachte Startknoten s und einen Kreis C mit Gesamtlänge < 0.

8.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

Mehr

2. November Gradfolgen Zusammenhang Kürzeste Wege. H. Meyerhenke: Algorithmische Methoden zur Netzwerkanalyse 37

2. 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

Mehr

Klausur Theoretische Informatik I WS 2004/2005

Klausur 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)

Mehr

4.2 Minimale Spannbäume: Der Algorithmus von Jarník/Prim Definition 4.2.1

4.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

Mehr

Lernmodul 7 Algorithmus von Dijkstra

Lernmodul 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

Mehr

Algorithmen und Datenstrukturen 2-1. Seminar -

Algorithmen 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

Mehr

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

Algorithmen 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

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

Rauten-Mitten-Kegelschnitte zu vier Geraden. Eckart Schmidt. 1. Vorbemerkungen

Rauten-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

Mehr

12.4 Traveling Salesman Problem

12.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

Mehr

Berechenbarkeitstheorie 24. Vorlesung

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

Mehr

Lokale Eigenschaften des Hilbert-Symbols

Lokale 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

Mehr

8. 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. 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.

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

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

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

Wiederholung

Wiederholung 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

Mehr

Tutoraufgabe 1 (Starke Zusammenhangskomponenten):

Tutoraufgabe 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

Mehr

Algorithmen und Datenstrukturen 14. Vorlesung

Algorithmen 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

Mehr

Ziel des spieles. Spielmaterial

Ziel 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

Mehr

Datenstrukturen Teil 2. Bäume. Definition. Definition. Definition. Bäume sind verallgemeinerte Listen. Sie sind weiter spezielle Graphen

Datenstrukturen 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

Mehr

9 Minimum Spanning Trees

9 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

Mehr

Datenstrukturen. Mariano Zelke. Sommersemester 2012

Datenstrukturen. 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,

Mehr

Programm 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) Ü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

Mehr

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

Mehr

Berechnung von Abständen

Berechnung 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.

Mehr

Aufgaben zur Klausurvorbereitung

Aufgaben 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

Mehr

Vorlesung 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 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

Mehr

Exkurs: Graphtraversierung

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

Mehr

Graphen und Bäume. A.1 Graphen

Graphen 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

Mehr

Algorithmen & Datenstrukturen 2 Praktikum 3

Algorithmen & 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

Mehr

10. Übungsblatt zu Algorithmen I im SS 2010

10. Ü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

Mehr

Diskrete Strukturen. Hausaufgabe 1 (5 Punkte) Hausaufgabe 2 (5 Punkte) Wintersemester 2007/08 Lösungsblatt Januar 2008

Diskrete 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

Mehr

Effiziente Algorithmen

Effiziente 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

Mehr

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

Gliederung. 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

Mehr

Kapitel 4: Netzplantechnik Gliederung der Vorlesung

Kapitel 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

Mehr

4. Kreis- und Wegeprobleme Abstände in Graphen

4. 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

Mehr

Fortgeschrittene Netzwerk- und Graph-Algorithmen

Fortgeschrittene 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

Mehr

Vorlesung Datenstrukturen

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

Mehr

Freie Bäume und Wälder

Freie 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

Mehr

1 DFS-Bäume in ungerichteten Graphen

1 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

Mehr

1 DFS-Bäume in ungerichteten Graphen

1 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

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

(a, b)-bäume / 1. Datenmenge ist so groß, dass sie auf der Festplatte abgespeichert werden muss.

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

Mehr

Definition : Diechromatische Zahl eines Graphen G ist die kleinste Anzahl chromatische Zahl von Farben für eine zulässige Färbung.

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

Mehr

3. 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. 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),

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

Algorithmen und Datenstrukturen

Algorithmen 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

Mehr

Algorithmen und Datenstrukturen

Algorithmen 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

Mehr

Algorithmen und Komplexität Lösungsvorschlag zu Übungsblatt 8

Algorithmen 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

Mehr

Routing A lgorithmen Algorithmen Begriffe, Definitionen Wegewahl Verkehrslenkung

Routing 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

Mehr

Abstrakter Datentyp (ADT): Besteht aus einer Menge von Objekten, sowie Operationen, die auf diesen Objekten wirken.

Abstrakter 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

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

Übungsblatt 2 - Lösung

Ü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

Mehr

7 Minimaler Spannbaum und Datenstrukturen

7 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

Mehr

Aufgabe 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. 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.

Mehr

Kap. 6.3: Traversieren von Graphen Kap. 6.4: Elementare Graphalgorithmen

Kap. 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

Mehr

Zentralübung zur Vorlesung Diskrete Strukturen (Prof. Esparza)

Zentralü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

Mehr

Algorithmentheorie 1. Vorlesung

Algorithmentheorie 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

Mehr

Das Rucksackproblem. Definition Sprache Rucksack. Satz

Das 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

Mehr

Keller, Schlangen und Listen. Elementare Datenstrukturen Keller, Schlangen und Listen 1 / 14

Keller, 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

Mehr

Vorlesung Datenstrukturen

Vorlesung 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)

Mehr

3. Musterlösung. Problem 1: Heapsort

3. 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

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

2. Entsprechende Listen P i von Vorgängern von i 3. for i := 1 to n do. (ii) S i = Knoten 2 + 1}

2. 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

Mehr

3.6 AVL-Bäume. (AVL = Adel son-velskii und Landis (1962)) . Seite 326/726

3.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

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

1. Einige Begriffe aus der Graphentheorie

1. 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

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

Übungsaufgaben Mathematik III MST. Zu b) Klassifizieren Sie folgende Differentialgleichungen nach folgenden Kriterien : - Anfangswertproblem

Ü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

Mehr

Einführung in die Informatik 2

Einfü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