• Nie Znaleziono Wyników

BFS

N/A
N/A
Protected

Academic year: 2021

Share "BFS"

Copied!
16
0
0

Pełen tekst

(1)

Przykªad przebiegu

algorytmu BFS

Autor projektu: dr Andrzej Mróz (UMK)

Projekt pn. Wzmocnienie potencjaªu dydaktycznego UMK w Toruniu w dziedzinach matematyczno-przyrodniczych realizowany w ramach Poddziaªania 4.1.1 Programu Operacyjnego

(2)

Przeszukiwanie grafu wszerz (od u = 1)

BFS-Visit(G, s) 1 begin 2 kolor(s) := szary; 3 Q := {s}; 4 whileQ <> ∅ do begin 5 u := Head(Q); 6 forka»dy v ∈ Adj[u]do

7 ifkolor(v) = biaªythen begin

8 kolor(v) := szary; 9 π[v] := u; 10 Enqueue(Q, v) 11 end; 12 Dequeue(Q); 13 kolor(u) := czarny 14 end 15 end w π[w] 1 ∞ 2 ∞ 3 ∞ 4 ∞ 5 ∞ 6 ∞

@

@

@

@

v

f

1

v

f

2

v

f

3

v

f

4 5

v

f

v

f

6 Q:

(3)

Przeszukiwanie grafu wszerz (od u = 1)

BFS-Visit(G, s) 1 begin 2 kolor(s) := szary; 3 Q := {s}; 4 whileQ <> ∅ do begin 5 u := Head(Q); 6 forka»dy v ∈ Adj[u]do

7 ifkolor(v) = biaªythen begin

8 kolor(v) := szary; 9 π[v] := u; 10 Enqueue(Q, v) 11 end; 12 Dequeue(Q); 13 kolor(u) := czarny 14 end 15 end w π[w] 1 ∞ 2 ∞ 3 ∞ 4 ∞ 5 ∞ 6 ∞

@

@

@

v

f

1

v

f

2

v

f

3

v

f

5

v

f

v

f

Q:

(4)

Przeszukiwanie grafu wszerz (od u = 1)

BFS-Visit(G, s) 1 begin 2 kolor(s) := szary; 3 Q := {s}; 4 whileQ <> ∅ do begin 5 u := Head(Q); 6 forka»dy v ∈ Adj[u]do

7 ifkolor(v) = biaªythen begin

8 kolor(v) := szary; 9 π[v] := u; 10 Enqueue(Q, v) 11 end; 12 Dequeue(Q); 13 kolor(u) := czarny 14 end 15 end w π[w] 1 ∞ 2 ∞ 3 ∞ 4 ∞

@

@

v

f

1

v

f

2

v

f

3

(5)

Przeszukiwanie grafu wszerz (od u = 1)

BFS-Visit(G, s) 1 begin 2 kolor(s) := szary; 3 Q := {s}; 4 whileQ <> ∅ do begin 5 u := Head(Q); 6 forka»dy v ∈ Adj[u]do

7 ifkolor(v) = biaªythen begin

8 kolor(v) := szary; 9 π[v] := u; 10 Enqueue(Q, v) 11 end; 12 Dequeue(Q); 13 kolor(u) := czarny 14 end 15 end w π[w] 1 ∞ 2 1 3 ∞ 4 ∞ 5 ∞ 6 ∞

@

@

@

v

f

1

v

f

2

v

f

3

v

f

5

v

f

v

f

Q: 1 2

(6)

Przeszukiwanie grafu wszerz (od u = 1)

BFS-Visit(G, s) 1 begin 2 kolor(s) := szary; 3 Q := {s}; 4 whileQ <> ∅ do begin 5 u := Head(Q); 6 forka»dy v ∈ Adj[u]do

7 ifkolor(v) = biaªythen begin

8 kolor(v) := szary; 9 π[v] := u; 10 Enqueue(Q, v) 11 end; 12 Dequeue(Q); 13 kolor(u) := czarny 14 end 15 end w π[w] 1 ∞ 2 1 3 ∞ 4 ∞

@

@

v

f

1

v

f

2

v

f

3

(7)

Przeszukiwanie grafu wszerz (od u = 1)

BFS-Visit(G, s) 1 begin 2 kolor(s) := szary; 3 Q := {s}; 4 whileQ <> ∅ do begin 5 u := Head(Q); 6 forka»dy v ∈ Adj[u]do

7 ifkolor(v) = biaªythen begin

8 kolor(v) := szary; 9 π[v] := u; 10 Enqueue(Q, v) 11 end; 12 Dequeue(Q); 13 kolor(u) := czarny 14 end 15 end w π[w] 1 ∞ 2 1 3 ∞ 4 1 5 1 6 ∞

@

@

@

v

f

1

v

f

2

v

f

3

v

f

5

v

f

v

f

Q: 1 2 5 4

(8)

Przeszukiwanie grafu wszerz (od u = 1)

BFS-Visit(G, s) 1 begin 2 kolor(s) := szary; 3 Q := {s}; 4 whileQ <> ∅ do begin 5 u := Head(Q); 6 forka»dy v ∈ Adj[u]do

7 ifkolor(v) = biaªythen begin

8 kolor(v) := szary; 9 π[v] := u; 10 Enqueue(Q, v) 11 end; 12 Dequeue(Q); 13 kolor(u) := czarny 14 end 15 end w π[w] 1 ∞ 2 1 3 ∞ 4 1

@

@

v

f

1

v

f

2

v

f

3

(9)

Przeszukiwanie grafu wszerz (od u = 1)

BFS-Visit(G, s) 1 begin 2 kolor(s) := szary; 3 Q := {s}; 4 whileQ <> ∅ do begin 5 u := Head(Q); 6 forka»dy v ∈ Adj[u]do

7 ifkolor(v) = biaªythen begin

8 kolor(v) := szary; 9 π[v] := u; 10 Enqueue(Q, v) 11 end; 12 Dequeue(Q); 13 kolor(u) := czarny 14 end 15 end w π[w] 1 ∞ 2 1 3 ∞ 4 1 5 1 6 ∞

@

@

@

v

f

1

v

f

2

v

f

3

v

f

5

v

f

v

f

Q: 5 4

(10)

Przeszukiwanie grafu wszerz (od u = 1)

BFS-Visit(G, s) 1 begin 2 kolor(s) := szary; 3 Q := {s}; 4 whileQ <> ∅ do begin 5 u := Head(Q); 6 forka»dy v ∈ Adj[u]do

7 ifkolor(v) = biaªythen begin

8 kolor(v) := szary; 9 π[v] := u; 10 Enqueue(Q, v) 11 end; 12 Dequeue(Q); 13 kolor(u) := czarny 14 end 15 end w π[w] 1 ∞ 2 1 3 5 4 1

@

@

v

f

1

v

f

2

v

f

3

(11)

Przeszukiwanie grafu wszerz (od u = 1)

BFS-Visit(G, s) 1 begin 2 kolor(s) := szary; 3 Q := {s}; 4 whileQ <> ∅ do begin 5 u := Head(Q); 6 forka»dy v ∈ Adj[u]do

7 ifkolor(v) = biaªythen begin

8 kolor(v) := szary; 9 π[v] := u; 10 Enqueue(Q, v) 11 end; 12 Dequeue(Q); 13 kolor(u) := czarny 14 end 15 end w π[w] 1 ∞ 2 1 3 5 4 1 5 1 6 5

@

@

@

v

f

1

v

f

2

v

f

3

v

f

5

v

f

v

f

Q: 5 4 3 6

(12)

Przeszukiwanie grafu wszerz (od u = 1)

BFS-Visit(G, s) 1 begin 2 kolor(s) := szary; 3 Q := {s}; 4 whileQ <> ∅ do begin 5 u := Head(Q); 6 forka»dy v ∈ Adj[u]do

7 ifkolor(v) = biaªythen begin

8 kolor(v) := szary; 9 π[v] := u; 10 Enqueue(Q, v) 11 end; 12 Dequeue(Q); 13 kolor(u) := czarny 14 end 15 end w π[w] 1 ∞ 2 1 3 5 4 1

@

@

v

f

1

v

f

2

v

f

3

(13)

Przeszukiwanie grafu wszerz (od u = 1)

BFS-Visit(G, s) 1 begin 2 kolor(s) := szary; 3 Q := {s}; 4 whileQ <> ∅ do begin 5 u := Head(Q); 6 forka»dy v ∈ Adj[u]do

7 ifkolor(v) = biaªythen begin

8 kolor(v) := szary; 9 π[v] := u; 10 Enqueue(Q, v) 11 end; 12 Dequeue(Q); 13 kolor(u) := czarny 14 end 15 end w π[w] 1 ∞ 2 1 3 5 4 1 5 1 6 5

@

@

@

v

f

1

v

f

2

v

f

3

v

f

5

v

f

v

f

Q: 3 6

(14)

Przeszukiwanie grafu wszerz (od u = 1)

BFS-Visit(G, s) 1 begin 2 kolor(s) := szary; 3 Q := {s}; 4 whileQ <> ∅ do begin 5 u := Head(Q); 6 forka»dy v ∈ Adj[u]do

7 ifkolor(v) = biaªythen begin

8 kolor(v) := szary; 9 π[v] := u; 10 Enqueue(Q, v) 11 end; 12 Dequeue(Q); 13 kolor(u) := czarny 14 end 15 end w π[w] 1 ∞ 2 1 3 5 4 1

@

@

v

f

1

v

f

2

v

f

3

(15)

Przeszukiwanie grafu wszerz (od u = 1)

BFS-Visit(G, s) 1 begin 2 kolor(s) := szary; 3 Q := {s}; 4 whileQ <> ∅ do begin 5 u := Head(Q); 6 forka»dy v ∈ Adj[u]do

7 ifkolor(v) = biaªythen begin

8 kolor(v) := szary; 9 π[v] := u; 10 Enqueue(Q, v) 11 end; 12 Dequeue(Q); 13 kolor(u) := czarny 14 end 15 end w π[w] 1 ∞ 2 1 3 5 4 1 5 1 6 5

@

@

@

v

f

1

v

f

2

v

f

3

v

f

5

v

f

v

f

Q:

(16)

Odczytanie dróg

Po wykonaniu BFS-Visit(G, s) w wektorze π zakodowane s¡

najkrótsze drogi z wierzchoªka ¹ródªowego s do wszystkich

wierzchoªków w osi¡galnych z s. W naszym przykªadzie s = 1:

w π[w] 1 ∞ 2 1 3 5 4 1 5 1 6 5

@

@

@

@

v

f

1

v

f

2

v

f

3

v

f

4 5

v

f

v

f

6

Np. najkrótsza droga z s = 1 do 6 to:

6 ← π[6] ← π[π[6]], czyli

6 ← 5 ← 1.

A najkrótsza droga z s = 1 do 3 to:

3 ← π[3] ← π[π[3]], czyli

Cytaty

Powiązane dokumenty

Instytucja WdraŜająca (Instytucja Pośrednicząca II stopnia) nie ponosi odpowiedzialności wobec osób trzecich za szkody powstałe w związku z realizacją Projektu. W

Realizator Projektu zastrzega sobie prawo do zmiany osób prowadzących zajęcia oraz terminów zajęć w trakcie trwania projektu z przyczyn techniczno-

W I połowie 2017 roku WZDW w Poznaniu złożył wnioski o dofinansowanie ze środków Unii Europejskiej w ramach WRPO 2014+ dla 13 projektów na ogólną kwotę 269 mln.. Po

15 PARP, na adres poczty elektronicznej wnioskodawcy, wysyła informację o wezwaniu w GW do poprawy lub uzupełnienia wniosku o dofinansowanie w terminie 5 dni roboczych od

Opracowanie metodyki oraz propozycji programu rozwoju gospodarczego województwa określającego rolę MSP w jego rozwoju we współdziałaniu i kooperacji z kluczowymi

 Zasady prawidłowego korzystania ze znaku-przykłady zarówno dozwolonego jak i niedozwolonego wykorzystania danego znaku graficznego. W ramach usługi Wykonawca

Jest to metoda terapii, polegająca na podawaniu pacjentowi sygnałów zwrotnych o zmianach stanu fizjologicznego jego organizmu, dzięki czemu może on nauczyć się świadomie

http://ec.europa.eu/budget/contracts_grants/info_contracts/inforeuro/index_en.cfm ) aktualny na dzień ogłoszenia konkursu w przypadku projektów konkursowych lub dzień ogłoszenia