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
Prim algoritmusPrim algoritmus
Algoritmusok és adatszerkezetek 2.Algoritmusok és adatszerkezetek 2.Újvári ZsuzsannaÚ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
– 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
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.
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)
PéldaPélda
A
H
E
F
C
D
GB
1
5
6
2
3
107
8
12
2
6
3
9
5
41
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
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
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
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
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
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
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
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
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
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
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
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
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
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
VégeredményVégeredmény
A
H
E
F
C
D
GB
1
2
3
23
43
Köszönöm a figyelmet! Köszönöm a figyelmet!
2011.03.01.2011.03.01.