1 / 8

Przeszukiwanie wszerz

Przeszukiwanie wszerz. BFS(G, s) 1 for każdy wierzchołek u  V [ G ]-{ s } 10 do u := head [ Q ] 2 do color [ u ] := BIAŁY 11 for każdy v  Adj [ u ] 3 d [ u ] :=  12 do if color [ v ] = BIAŁY

lewis
Télécharger la présentation

Przeszukiwanie wszerz

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Przeszukiwanie wszerz BFS(G, s) 1 for każdy wierzchołek uV[G]-{s} 10 dou := head[Q] 2 docolor[u] := BIAŁY 11 for każdy vAdj[u] 3 d[u] :=  12 do ifcolor[v] = BIAŁY 4 [u] := NIL 13 then color[v] := SZARY 5 color[s] := SZARY 14 d[v] := d[u] + 1 6 d[s] := 0 15 [v] := u 7 [s] := NIL 16 ENQUEUE(Q, v) 8 Q := {s} 17 DEQUEUE(Q) 9 while Q   18 color[u] := CZARNY

  2. 1 2 3 1 2 3 1 2 3 2  2  0 1 0 0 1 5 5 6 6 4 6 4 4 5 2 2  2 1    1 1 2 3 1 2 3 1 2 3  2 1 2 0 0 0 1 1 5 5 5 6 6 6 4 4 4  2 2  1 2 1 1 2 Przykład przeszukiwania wszerz Q Q Q 5 3 4 1 4 6 1 2 2 0 2 2 Q Q Q 2 5 3 4 6 6 1 1 2 2 2 2

  3. Przeszukiwanie w głąb DFS(G) DFS-Visit(u) 1 for każdy wierzchołek uV[G] 1 color[u] := SZARY 2 docolor[u] := BIAŁY 2 d[u] := time := time + 1 3 [u] := NIL 3 for każdy vAdj[u] 4 time := 0 4 do ifcolor[v] = BIAŁY 5 for każdy wierzchołek uV[G] 5 then [v] := u 6 do ifcolor[u] = BIAŁY 6 DFS-Visit(v) 7 then DFS-Visit(u) 7 color[u] := CZARNY 8 f[u] := time := time + 1

  4. 1 2 3 1 2 3 1 2 3 1/ 1/ 2/ 2/ 3/6 1/10 3/6 2/7 4 6 4 6 6 5 5 5 8/9 4/5 4/5 1 2 3 1 2 3 1 2 3 1/ 2/ 3/ 1/ 3/6 1/10 3/6 2/7 2/7 4 4 6 4 6 6 5 5 5 4/ 8/ 11/12 8/9 4/5 4/5 Przykład przeszukiwania w głąb 4

  5. Sortowanie topologiczne Sortowanie topologiczne acyklicznego grafu skierowanego G = (V, E) polega na uporządkowaniu wszystkich jego wierzchołków w taki sposób, że jeśli graf G zawiera krawędź (u, v), to w tym porządku wierzchołek u występuje przed wierzchołkiem v. Topological-Sort (G) 1 wykonaj DFS(G) w celu obliczenia czasów przetworzenia f[v] dla wszystkich wierzchołków v. 2 wstaw każdy wierzchołek v na początek listy, kiedy tylko zostanie przetworzony. 3 return lista wierzchołków

  6. 1 2 3 1/10 3/6 2/7 4 6 5 11/12 8/9 4/5 2 4 1 5 3 6 8/9 11/12 1/10 2/7 3/6 4/5 Przykład sortowania topologicznego

  7. Silnie spójne składowe Silnie spójną składową skierowanego grafu G = (V, E) jest maksymalny zbiór wierzchołków U  V taki, że dla każdej pary wierzchołków u i v z U wierzchołki u i v są osiągalne jeden z drugiego. Strongly-Connected-Components (G) 1 wykonaj DFS(G) w celu obliczenia czasów przetworzenia f[u] dla wszystkich wierzchołków u. 2 oblicz GT 3 wykonaj DFS(GT), ale w głównej pętli procedury DFS rozważaj wierzchołki w kolejności malejących wartości f[u] (obliczonych w wierszu 1) 4 wypisz wierzchołki z każdego drzewa w lesie przeszukiwania w głąb z kroku 3 jako oddzielną silnie spójną składową

  8. d c a b 8/9 13/14 11/16 1/10 3/4 2/7 5/6 12/15 h e f g d c a b cd abe h fg h e f g Silnie spójne składowe, przykład

More Related