algorytmy w05 DFS sort topologi Nieznany (2)

background image

Algorytmy i struktury danych

Przeszukiwanie DFS, sortowanie

topologiczne

Mariusz Gł ˛

abowski

Instytut Elektroniki i Telekomunikacji

Politechnika Pozna ´nska

17 pa´zdziernika 2003

dr in˙z. Mariusz Gł ˛

abowski

background image

Przeszukiwanie w gł ˛

ab

Algorytm przeszukiwania wszerz grafu jest znany tak˙ze jako DFS –
Depth-First Search

W czasie przeszukiwania w gł ˛

ab zagł ˛ebiamy si ˛e tak daleko, jak tylko

jest to mo˙zliwe, zanim zajrzymy do innych wierzchołków s ˛

asiednich

W algorytmie DFS wierzchołkom przypisuje si ˛e etykiety czasowe

?

d

[

v

]

: numer kroku oblicze ´n, w którym wierzchołek

v

jest odwie-

dzony po raz pierwszy

?

f

[

v

]

: numer kroku w przeszukiwaniu, w którym ko ´nczy si ˛e badanie

listy s ˛

asiedztwa wierzchołka

v

DFS tworzy las przeszukiwania w gł ˛

ab zło˙zony z jednego lub wi ˛e-

cej drzew przeszukiwania w gł ˛

ab

dr in˙z. Mariusz Gł ˛

abowski

Wykład 5 – Przeszukiwanie DFS, sortowanie topologiczne

1

background image

Przeszukiwanie w gł ˛

ab

Kolorowanie wierzchołków:

?

biały : wierzchołek nie odwiedzony

?

szary : wierzchołek, który został odwiedzony, ale nie wszystkie
jego kraw ˛edzie zostały zbadane

?

czarny : wierzchołek , który jest przetworzony, tzn. gdy jego lista
s ˛

asiedztwa zostaje całkowicie zbadana

Kolorowanie zapewnia, ˙ze ka˙zdy wierzchołek b ˛edzie nale˙zał do do-
kładnie jednego drzewa przeszukiwania w gł ˛

ab



  

 

  

     

  

dr in˙z. Mariusz Gł ˛

abowski

Wykład 5 – Przeszukiwanie DFS, sortowanie topologiczne

2

background image

Przeszukiwanie w gł ˛

ab

DFS

(

G

)

1:

for ka˙zdy wierzchołek

u

V

[

G

]

do

2:

color

[

u

] ←

biay

3:

π

[

u

] ←

NIL

4:

end for

5:

time

0

6:

for ka˙zdy wierzchołek

u

V

[

G

]

do

7:

if

color

[

u

] =

biay

then

8:

DFS

V ISIT

(

u

)

9:

end if

10:

end for

dr in˙z. Mariusz Gł ˛

abowski

Wykład 5 – Przeszukiwanie DFS, sortowanie topologiczne

3

background image

Przeszukiwanie w gł ˛

ab

DFS

V ISIT

(

u

)

1:

color

[

u

] ←

szary

2:

/

biały wierzchołek

u

został wła´snie odwiedzony

/

3:

d

[

u

] ←

time

time

+

1

4:

for ka˙zdy

v

Adj

[

u

]

do

5:

/

zbadaj kraw ˛ed´z

(

u, v

) ∗

/

6:

if

color

[

v

] =

biay

then

7:

π

[

v

] ←

u

8:

DFS

V ISIT

(

v

)

9:

end if

10:

end for

11:

color

[

u

] ←

czarny

/

u

na czarno - został przetworzony

/

12:

f

[

u

] ←

time

time

+

1

dr in˙z. Mariusz Gł ˛

abowski

Wykład 5 – Przeszukiwanie DFS, sortowanie topologiczne

4

background image

Przeszukiwanie DFS - przykład działania

1/

v

u

w

z

y

x

1/

2/

v

u

w

z

y

x

1/

2/

3/

v

u

w

z

y

x

1/

2/

4/

3/

v

u

w

z

y

x

1/

2/

4/

3/

v

u

w

z

y

x



1/

2/

4/5

3/

v

u

w

z

y

x



1/

2/

4/5

3/6

v

u

w

z

y

x



1/

2/7

4/5

3/6

v

u

w

z

y

x



1/

2/7

4/5

3/6

v

u

w

z

y

x





dr in˙z. Mariusz Gł ˛

abowski

Wykład 5 – Przeszukiwanie DFS, sortowanie topologiczne

5

background image

Przeszukiwanie DFS - przykład działania

1/8

2/7

4/5

3/6

v

u

w

z

y

x





1/8

2/7

4/5

3/6

9/

v

u

w

z

y

x





1/8

2/7

4/5

3/6

9/

v

u

w

z

y

x







1/8

2/7

4/5

3/6

9/

10/

v

u

w

z

y

x







1/8

2/7

4/5

3/6

9/

10/

v

u

w

z

y

x









1/8

2/7

4/5

3/6

9/

10/11

v

u

w

z

y

x









1/8

2/7

4/5

3/6

9/12

10/11

v

u

w

z

y

x









Zło˙zono´s´c czasowa

O

(

V

+

E

)

dr in˙z. Mariusz Gł ˛

abowski

Wykład 5 – Przeszukiwanie DFS, sortowanie topologiczne

6

background image

Algorytm DFS - klasyfikacja kraw ˛edzi

Kraw ˛edzie drzewowe: kraw ˛edzie w lesie przeszukiwania w gł ˛

ab

G

π

; kraw ˛ed´z

(

u, v

)

jest kraw ˛edzi ˛

a drzewow ˛

a, je´sli wierzchołek

v

zo-

stał odwiedzony w wyniku zbadania kraw ˛edziami

(

u, v

)

.

Kraw ˛edzie powrotne: kraw ˛edzie

(

u, v

)

, ł ˛

acz ˛

ace wierzchołek

u

z

jego przodkiem

v

w drzewie przeszukiwania w gł ˛

ab. P˛etle s ˛

a trakto-

wane jako kraw ˛edzie powrotne.

Kraw ˛edzie w przód: kraw ˛edzie niedrzewowe

(

u, v

)

, które ł ˛

acz ˛

a

wierzchołek

u

z jego potomkiem

v

w drzewie przeszukiwania w gł ˛

ab.

Kraw ˛edzie poprzeczne: wszystkie inne kraw ˛edzie. Ł ˛

acz ˛

a one

wierzchołki z tego samego drzewa przeszukiwania w gł ˛

ab, je˙zeli

tylko jeden z wierzchołków nie jest przodkiem drugiego, lub ł ˛

acz ˛

a

wierzchołki z ró˙znych drzew przeszukiwania w gł ˛

ab.

dr in˙z. Mariusz Gł ˛

abowski

Wykład 5 – Przeszukiwanie DFS, sortowanie topologiczne

7

background image

Własno ´sci algorytmu DFS

3/6

2/9

4/5

7/8

1/10

12/13

z

y

s

v

w

x

11/16

14/15

u

t

T

B

C

F

y

z

x

w

s

v

t

u

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

x

w

y

z

s

t

u

v

dr in˙z. Mariusz Gł ˛

abowski

Wykład 5 – Przeszukiwanie DFS, sortowanie topologiczne

8

background image

Algorytm DFS - sposób klasyfikacji kraw ˛edzi

Ka˙zda kraw ˛ed´z

(

u, v

)

, gdy jest badana po raz pierwszy, mo˙ze zo-

sta´c sklsyfikowana za pomoc ˛

a koloru wierzchołka

v

, do którego pro-

wadzi

(

u, v

)

jest

kraw ˛edzi ˛

a drzewow ˛

a

je˙zeli

v

jest białe

kraw ˛edzi ˛

a powrotn ˛

a

je˙zeli

v

jest szare

kraw ˛edzi ˛

a w przód

je˙zeli

v

jest czarne i

d

[

u

] <

d

[

v

]

kraw ˛edzi ˛

a poprzeczn ˛

a

je˙zeli

v

jest czarne i

d

[

u

] >

d

[

v

]

Twierdzenie 1. W przeszukiwaniu w gł ˛

ab grafu nieskierowanego

G

ka˙zda kraw ˛ed´z jest albo kraw ˛edzi ˛

a drzewow ˛

a, albo kraw ˛edzi ˛

a po-

wrotn ˛

a

dr in˙z. Mariusz Gł ˛

abowski

Wykład 5 – Przeszukiwanie DFS, sortowanie topologiczne

9

background image

Sortowanie topologiczne

Sortowanie topologiczne dagu

G

= (

V, E

)

jest liniowym uporz ˛

ad-

kowaniem wszystkich jego wierzchołków w taki sposób, ˙ze je˙zeli
graf

G

zawiera kraw ˛ed´z

(

u, v

)

, to w tym porz ˛

adku wierzchołek

u

wyst ˛epuje przed wierzchołkiem

v

.

Je˙zeli graf nie jest acykliczny, to takie uporz ˛

adkowanie nie jest mo˙z-

liwe.

Zastosowania: okre´slenie kolejno´sci wykonywanych czynno´sci.

Do sortowania topologiczneg dagów mo˙ze by´c u˙zyte sortowanie w
gł ˛

ab.

dr in˙z. Mariusz Gł ˛

abowski

Wykład 5 – Przeszukiwanie DFS, sortowanie topologiczne

10

background image

Sortowanie topologiczne



   



   

  

     

    

   

   

11/16

12/15

6/7

1/8

2/5

3/4

13/14

17/18

9/10



   



   

  

     

    

   

   

11/16

12/15

6/7

1/8

2/5

3/4

13/14

17/18

9/10

dr in˙z. Mariusz Gł ˛

abowski

Wykład 5 – Przeszukiwanie DFS, sortowanie topologiczne

11

background image

Algorytm sortowania topologicznego

Topological

Sort

(

G

)

1. Wykonaj

DFS

(

G

)

w celu obliczenia czasów przetworzenia

f

[

v

]

dla wszystkich wierzchołków

v

2. Wstaw ka˙zdy wierzchołek

v

na pocz ˛

atek listy, kiedy tylko zostanie

przetworzony

3. return lista wierzchołków

Analiza czasowa

Θ

(

V

+

E

)

dr in˙z. Mariusz Gł ˛

abowski

Wykład 5 – Przeszukiwanie DFS, sortowanie topologiczne

12


Wyszukiwarka

Podobne podstrony:
algorytmy PKI Instrukcja id 577 Nieznany (2)
pdt w05 info id 353036 Nieznany
Algorytmy Genetyczne AG 3 id 61 Nieznany (2)
787 W05 Modbus id 46027 Nieznany (2)
Algorytmy ściąga, Insertion sort:
11 Przestrzen topologicznaid 1 Nieznany (2)
al1 w05 zima2011 id 54567 Nieznany (2)
algorytmy filtracji ver5 id 576 Nieznany
Algorytmy Lab3 Tablice id 57743 Nieznany (2)
Algorytmy wyklad 9 10 id 57807 Nieznany (2)
M W05 58 id 274845 Nieznany
AM23 w05 Funkcje dwoch i trzech Nieznany
anl1 w05 zima2012 id 65276 Nieznany (2)
Algorytmy Lab2 PETLE id 57742 Nieznany (2)
472 W05 SKiTI modelTCPIP warstw Nieznany
algorytmy PKI Instrukcja id 577 Nieznany (2)
ALGORYTM id 57461 Nieznany
2013 w05 DMA HWI 2013zid 28362 Nieznany

więcej podobnych podstron