21
Prim Prim algoritmus algoritmus Algoritmusok és adatszerkezetek Algoritmusok és adatszerkezetek 2. 2. Újvári Zsuzsanna Újvári Zsuzsanna

Prim algoritmus

  • Upload
    kort

  • View
    75

  • Download
    0

Embed Size (px)

DESCRIPTION

Prim algoritmus. Algoritmusok és adatszerkezetek 2. Újvári Zsuzsanna. Az algoritmus elve • Minimális feszítőfát keres • Egy csúcsból indulva növekszik, amíg az összes csúcsot el nem éri • Inicializálás: – Vegyünk egy kezdőcsúcsot • Amíg nincs meg az összes csúcs - PowerPoint PPT Presentation

Citation preview

Page 1: Prim algoritmus

Prim algoritmusPrim algoritmus

Algoritmusok és adatszerkezetek 2.Algoritmusok és adatszerkezetek 2.Újvári ZsuzsannaÚjvári Zsuzsanna

Page 2: Prim algoritmus

Az algoritmus elve

• Minimális feszítőfát keres

• Egy csúcsból indulva növekszik, amíg az összes csúcsot el nem éri• Inicializálás:

– Vegyünk egy kezdőcsúcsot

• Amíg nincs meg az összes csúcs

– Válasszunk ki egy minimális súlyú „u-v” élt, ahol „u” már szerepel az új gráfban, „v” viszont nem– „v”-t és „u-v”-t hozzáadjuk az új gráfhoz

Page 3: Prim algoritmus

A csúcsok lehetséges státuszai:A csúcsok lehetséges státuszai:

- Fehér- Fehér: a csúcs eleme a minQ-nak és nincs X-beli szomszédja, azaz még nem került "látótávolságba", tehát az X-től való távolsága végtelen. - Szürke- Szürke: a csúcs eleme a minQ-nak, de létezik X-beli szomszédja, tehát a távolsága már kisebb, mint végtelen. - Fekete- Fekete: a csúcs kikerült a minQ-ból, azaz bekerült X-beP[1..n] tömb: egy csúcs feszítőfabeli szülőcsúcsának a tárolásáraminQ: (d[v],v) párokból álló minimumválasztó elsőbbségi sor, ahol d[v] értéke a kulcs.

Page 4: Prim algoritmus

d[s]:=0; P[s]:=NIL

all u eleme V \ {s}

d[s]:= ; P[u]:=NIL

Üres(minQ); Feltölt(minQ)

not Üres?(minQ)

u:=KiveszMin(minQ)

all v eleme Szomszéd(u)

v eleme (minQ) and c(u,v)<d[v]

d[v]:=c(u,v)Helyreállít(minQ)

P[v]:=uSKIP

Prim(G,s)

Page 5: Prim algoritmus

PéldaPélda

A

H

E

F

C

D

GB

1

5

6

2

3

107

8

12

2

6

3

9

5

41

Page 6: Prim algoritmus

1. lépés1. lépés

A

H

E

F

C

D

GB

1

5

6

2

3

107

8

12

2

6

3

9

5

43

Page 7: Prim algoritmus

2. lépés2. lépés

A

H

E

F

C

D

GB

1

5

6

2

3

107

8

12

2

6

3

9

5

43

Page 8: Prim algoritmus

3. lépés3. lépés

A

H

E

F

C

D

GB

1

5

6

2

3

107

8

12

2

6

3

9

5

43

Page 9: Prim algoritmus

4. lépés4. lépés

A

H

E

F

C

D

GB

1

5

6

2

3

107

8

12

2

6

3

9

5

43

Page 10: Prim algoritmus

5. lépés5. lépés

A

H

E

F

C

D

GB

1

5

6

2

3

107

8

12

2

6

3

9

5

43

Page 11: Prim algoritmus

6. lépés6. lépés

A

H

E

F

C

D

GB

1

5

6

2

3

107

8

12

2

6

3

9

5

43

Page 12: Prim algoritmus

7. lépés7. lépés

A

H

E

F

C

D

GB

1

5

6

2

3

107

8

12

2

6

3

9

5

43

Page 13: Prim algoritmus

8. lépés8. lépés

A

H

E

F

C

D

GB

1

5

6

2

3

107

8

12

2

6

3

9

5

43

Page 14: Prim algoritmus

9. lépés9. lépés

A

H

E

F

C

D

GB

1

5

6

2

3

107

8

12

2

6

3

9

5

43

Page 15: Prim algoritmus

10. lépés10. lépés

A

H

E

F

C

D

GB

1

5

6

2

3

107

8

12

2

6

3

9

5

43

Page 16: Prim algoritmus

11. lépés11. lépés

A

H

E

F

C

D

GB

1

5

6

2

3

107

8

12

2

6

3

9

5

43

Page 17: Prim algoritmus

12. lépés12. lépés

A

H

E

F

C

D

GB

1

5

6

2

3

107

8

12

2

6

3

9

5

43

Page 18: Prim algoritmus

13. lépés13. lépés

A

H

E

F

C

D

GB

1

5

6

2

3

107

8

12

2

6

3

9

5

43

Page 19: Prim algoritmus

14. lépés14. lépés

A

H

E

F

C

D

GB

1

5

6

2

3

107

8

12

2

6

3

9

5

43

Page 20: Prim algoritmus

VégeredményVégeredmény

A

H

E

F

C

D

GB

1

2

3

23

43

Page 21: Prim algoritmus

Köszönöm a figyelmet! Köszönöm a figyelmet!

2011.03.01.2011.03.01.