Prima algoritms
description
Transcript of Prima algoritms
Prima algoritms
V1
V2
V3
V4
V5 V6
V7
6
15
818
8
5
9
7
15
10
Nākošais
Iepriekšējais
Beigt
Pauze
Turpināt 11
Prima algoritms
V1
V2
V3
V4
V5 V6
V7
6
15
818
8
5
9
7
15
10
Nākošais
Iepriekšējais
Beigt
Pauze
Turpināt Algoritma
pielietošanas mērķis:atrast karkasu, kura
summārais loku garums ir minimāls
11
Prima algoritms
V1
V2
V3
V4
V5 V6
V7
6
15
818
8
5
9
7
15
10
Nākošais
Iepriekšējais
Beigt
Pauze
Turpināt
Katram lokam piešķirts svars-
skaitlis, kas apzīmē attālumu starp abām
virsotnēm, kuras saista loks
11
Prima algoritms
V1
V2
V3
V4
V5 V6
V7
6
15
818
8
5
9
7
15
10
Nākošais
Iepriekšējais
Beigt
Pauze
Turpināt
Algoritma pielietošanas gaitā tiek izmantotas 2 kopas: T- tā satur virsotnes, kuras pieder minimālajam karkasam, un Q-
tā satur minimālā karkasa lokus.
11
T
Q
Prima algoritms
V1
V2
V3
V4
V5 V6
V7
6
15
818
8
5
9
7
15
10
Nākošais
Iepriekšējais
Beigt
Pauze
Turpināt
Algoritmam beidzot darbību kopā Q ir n-1 loki, kur n- virsotņu
skaits grafā
11
T
Q
Prima algoritms
V1
V2
V3
V4
V5 V6
V7
6
15
818
8
5
9
7
15
10
Nākošais
Iepriekšējais
Beigt
Pauze
Turpināt
Algoritma darbības rezultāts nav atkarīgs no sākuma virsotnes
izvēles
11
T
Q
Prima algoritms
V1
V2
V3
V4
V5 V6
V7
6
15
818
8
5
9
7
15
10
Nākošais
Iepriekšējais
Beigt
Pauze
Turpināt
Algoritma darbības laikā katrai virsotnei xi tiek piešķirtas divdaļīgas iezīmes [ai, bi], kur ai-
virsotne no kopas T, kura atrodas vistuvāk virsotnei xi, bet bi- attālums (ai, xi)
11
T
Q
Prima algoritms
V1
V2
V3
V4
V5 V6
V7
6
15
818
8
5
9
7
15
10
Nākošais
Iepriekšējais
Beigt
Pauze
Turpināt
Par sākuma virsotni
uzskatīsim virsotni V1
11
T
Q
Iterācija: 1 Solis: 1
Iterācija: 1 Solis: 1
Prima algoritms
V1
V2
V3
V4
V5 V6
V7
6
15
818
8
5
9
7
15
10
Nākošais
Iepriekšējais
Beigt
Pauze
Turpināt 11
T V1
QVirsotni V1
ievieto kopā T
Iterācija: 1 Solis: 1
Prima algoritms
V1
V2
V3
V4
V5 V6
V7
6
15
818
8
5
9
7
15
10
Nākošais
Iepriekšējais
Beigt
Pauze
Turpināt 11
T V1
Q ØKopa Q
pagaidām ir tukša
[V1, 11]
V7[0, ∞]
10
Iterācija: 1 Solis: 2
Prima algoritms
V1
V2
V3
V4
V5 V6
6
15
818
8
5
9
7
15
Nākošais
Iepriekšējais
Beigt
Pauze
Turpināt 11
T V1
Q Ø
Grafa virsotnēm
tiek piešķirtas iezīmes
[V1, 6]
[V1, 5] [0, ∞]
[0, ∞]
Iterācija: 1 Solis: 2
Prima algoritms
V1
V2
V3
V4
V5 V6
V7
6
15
818
8
5
9
7
15
10
Nākošais
Iepriekšējais
Beigt
Pauze
Turpināt 11
T V1
Q Ø
Virsotnēm, kurām nav loku, kas tās savienotu ar kādu
no kopā T ietilpstošām
virsotnēm, piešķir iezīmi [0, ∞]
[V1, 6]
[V1, 11]
[V1, 5]
[0, ∞]
[0, ∞]
[0, ∞]
[0, ∞]
[0, ∞]
Iterācija: 1 Solis: 3
Prima algoritms
V1
V2
V3
V4
V5 V6
V7
6
15
818
8
5
9
7
15
10
Nākošais
Iepriekšējais
Beigt
Pauze
Turpināt 11
T V1
Q Ø
No visām grafa virsotnēm tiek
izvēlēta virsotne, kurai bi ir
vismazākais
[V1, 6]
[V1, 11]
[V1, 5]
[0, ∞]
[0, ∞]
[0, ∞]
Iterācija: 1 Solis: 3
Prima algoritms
V1
V2
V3
V4
V5 V6
V7
6
15
818
8
5
9
7
15
10
Nākošais
Iepriekšējais
Beigt
Pauze
Turpināt 11
T V1, V5
Q Ø
Šo virsotni pievieno kopai T
[V1, 6]
[V1, 11]
[V1, 5]
[0, ∞]
[0, ∞]
[0, ∞]
Iterācija: 1 Solis: 3
Prima algoritms
V1
V2
V3
V4
V5 V6
V7
6
15
818
8
5
9
7
15
10
Nākošais
Iepriekšējais
Beigt
Pauze
Turpināt 11
T V1, V5
Q (V1, V5) Kopai Q pievieno loku
(V1, V5)
[V1, 6]
[V1, 11]
[V1, 5]
[0, ∞]
[V5, 15]
[V5, 9]
Iterācija: 1 Solis: 4
Prima algoritms
V1
V2
V3
V4
V5 V6
V7
6
15
818
8
5
9
7
15
10
Nākošais
Iepriekšējais
Beigt
Pauze
Turpināt 11
T V1, V5
Q (V1, V5)
Tiek atjaunotas virsotņu iezīmes
[V1, 6]
[V1, 11]
[0, ∞]
[V5, 15]
[V5, 9]
Iterācija: 2 Solis: 3
Prima algoritms
V1
V2
V3
V4
V5 V6
V7
6
15
818
8
5
9
7
15
10
Nākošais
Iepriekšējais
Beigt
Pauze
Turpināt 11
T V1, V5
Q (V1, V5)
[V1, 6]
[V1, 11]
[0, ∞]
No visām grafa virsotnēm tiek
izvēlēta virsotne, kurai bi ir
vismazākais
[V5, 15]
[V5, 9]
Iterācija: 2 Solis: 3
Prima algoritms
V1
V2
V3
V4
V5 V6
V7
6
15
818
8
5
9
7
15
10
Nākošais
Iepriekšējais
Beigt
Pauze
Turpināt 11
T V1, V5, V2
Q (V1, V5)
[V1, 6]
[V1, 11]
[0, ∞]
Šo virsotni pievieno kopai T
[V5, 15]
[V5, 9]
Iterācija: 2 Solis: 3
Prima algoritms
V1
V2
V3
V4
V5 V6
V7
6
15
818
8
5
9
7
15
10
Nākošais
Iepriekšējais
Beigt
Pauze
Turpināt 11
T V1, V5, V2
Q (V1, V5), (V1, V2)
[V1, 6]
[V1, 11]
[0, ∞]
Kopai Q pievieno loku (V1, V2)
[V5, 15]
[V5, 9]
Iterācija: 2 Solis: 4
Prima algoritms
V1
V2
V3
V4
V5 V6
V7
6
15
818
8
5
9
7
15
10
Nākošais
Iepriekšējais
Beigt
Pauze
Turpināt 11
T V1, V5, V2
Q (V1, V5), (V1, V2)
[V1, 11]
[V2, 15]
Tiek atjaunotas virsotņu iezīmes
[V5, 15]
[V5, 9]
Iterācija: 3 Solis: 3
Prima algoritms
V1
V2
V3
V4
V5 V6
V7
6
15
818
8
5
9
7
15
10
Nākošais
Iepriekšējais
Beigt
Pauze
Turpināt 11
T V1, V5, V2
Q (V1, V5), (V1, V2)
[V1, 11]
[V2, 15]
No visām grafa virsotnēm tiek
izvēlēta virsotne, kurai
bi ir vismazākais
[V5, 15]
[V5, 9]
Iterācija: 3 Solis: 3
Prima algoritms
V1
V2
V3
V4
V5 V6
V7
6
15
818
8
5
9
7
15
10
Nākošais
Iepriekšējais
Beigt
Pauze
Turpināt 11
T V1, V5, V2, V7
Q (V1, V5), (V1, V2)
[V1, 11]
[V2, 15]
Šo virsotni pievieno kopai T
[V5, 15]
[V5, 9]
Iterācija: 3 Solis: 3
Prima algoritms
V1
V2
V3
V4
V5 V6
V7
6
15
818
8
5
9
7
15
10
Nākošais
Iepriekšējais
Beigt
Pauze
Turpināt 11
T V1, V5, V2, V7
Q (V1, V5), (V1, V2), (V5, V7)
[V1, 11]
[V2, 15]
Kopai Q pievieno loku (V5, V7)
[V5, 15]
Iterācija: 3 Solis: 4
Prima algoritms
V1
V2
V3
V4
V5 V6
V7
6
15
818
8
5
9
7
15
10
Nākošais
Iepriekšējais
Beigt
Pauze
Turpināt 11
T V1, V5, V2, V7
Q (V1, V5), (V1, V2), (V5, V7)
[V7, 7]
[V2, 15]
Tiek atjaunotas virsotņu iezīmes
[V5, 15]
Iterācija: 4 Solis: 3
Prima algoritms
V1
V2
V3
V4
V5 V6
V7
6
15
818
8
5
9
7
15
10
Nākošais
Iepriekšējais
Beigt
Pauze
Turpināt 11
T V1, V5, V2, V7
Q (V1, V5), (V1, V2), (V5, V7)
[V7, 7]
[V2, 15]
No visām grafa virsotnēm tiek
izvēlēta virsotne, kurai
bi ir vismazākais
[V5, 15]
Iterācija: 4 Solis: 3
Prima algoritms
V1
V2
V3
V4
V5 V6
V7
6
15
818
8
5
9
7
15
10
Nākošais
Iepriekšējais
Beigt
Pauze
Turpināt 11
T V1, V5, V2, V7, V4
Q (V1, V5), (V1, V2), (V5, V7)
[V7, 7]
[V2, 15]
Šo virsotni pievieno kopai T
[V5, 15]
Iterācija: 4 Solis: 3
Prima algoritms
V1
V2
V3
V4
V5 V6
V7
6
15
818
8
5
9
7
15
10
Nākošais
Iepriekšējais
Beigt
Pauze
Turpināt 11
T V1, V5, V2, V7, V4
Q (V1, V5), (V1, V2), (V5, V7), (V7, V4)
[V7, 7]
[V2, 15]
Kopai Q pievieno loku (V7, V4)
[V4, 10]
Iterācija: 4 Solis: 4
Prima algoritms
V1
V2
V3
V4
V5 V6
V7
6
15
818
8
5
9
7
15
10
Nākošais
Iepriekšējais
Beigt
Pauze
Turpināt 11
T V1, V5, V2, V7, V4
Q (V1, V5), (V1, V2), (V5, V7), (V7, V4)
[V4, 8]
Tiek atjaunotas virsotņu iezīmes
[V4, 10]
Iterācija: 5 Solis: 3
Prima algoritms
V1
V2
V3
V4
V5 V6
V7
6
15
818
8
5
9
7
15
10
Nākošais
Iepriekšējais
Beigt
Pauze
Turpināt 11
T V1, V5, V2, V7, V4
Q (V1, V5), (V1, V2), (V5, V7), (V7, V4)
[V4, 8]
No visām grafa virsotnēm tiek
izvēlēta virsotne, kurai
bi ir vismazākais
[V4, 10]
Iterācija: 5 Solis: 3
Prima algoritms
V1
V2
V3
V4
V5 V6
V7
6
15
818
8
5
9
7
15
10
Nākošais
Iepriekšējais
Beigt
Pauze
Turpināt 11
T V1, V5, V2, V7, V4, V3
Q (V1, V5), (V1, V2), (V5, V7), (V7, V4)
[V4, 8]
Šo virsotni pievieno kopai T
[V4, 10]
Iterācija: 5 Solis: 3
Prima algoritms
V1
V2
V3
V4
V5 V6
V7
6
15
818
8
5
9
7
15
10
Nākošais
Iepriekšējais
Beigt
Pauze
Turpināt 11
T V1, V5, V2, V7, V4, V3
Q (V1, V5), (V1, V2), (V5, V7), (V7, V4), (V4, V3)
[V4, 8]
Kopai Q pievieno loku (V4, V3)
[V4, 10]
Iterācija: 5 Solis: 4
Prima algoritms
V1
V2
V3
V4
V5 V6
V7
6
15
818
8
5
9
7
15
10
Nākošais
Iepriekšējais
Beigt
Pauze
Turpināt 11
T V1, V5, V2, V7, V4, V3
Q (V1, V5), (V1, V2), (V5, V7), (V7, V4), (V4, V3)
Tiek atjaunotas virsotņu iezīmes
[V4, 10]
Iterācija: 6 Solis: 3
Prima algoritms
V1
V2
V3
V4
V5 V6
V7
6
15
818
8
5
9
7
15
10
Nākošais
Iepriekšējais
Beigt
Pauze
Turpināt 11
T V1, V5, V2, V7, V4, V3
Q (V1, V5), (V1, V2), (V5, V7), (V7, V4), (V4, V3)
No visām grafa virsotnēm tiek
izvēlēta virsotne, kurai
bi ir vismazākais
[V4, 10]
Iterācija: 6 Solis: 3
Prima algoritms
V1
V2
V3
V4
V5 V6
V7
6
15
818
8
5
9
7
15
10
Nākošais
Iepriekšējais
Beigt
Pauze
Turpināt 11
T V1, V5, V2, V7, V4, V3, V6
Q (V1, V5), (V1, V2), (V5, V7), (V7, V4), (V4, V3)
Šo virsotni pievieno kopai T
[V4, 10]
Iterācija: 6 Solis: 3
Prima algoritms
V1
V2
V3
V4
V5 V6
V7
6
15
818
8
5
9
7
15
10
Nākošais
Iepriekšējais
Beigt
Pauze
Turpināt 11
T V1, V5, V2, V7, V4, V3, V6
Q (V1, V5), (V1, V2), (V5, V7), (V7, V4), (V4, V3), (V4, V6)
Kopai Q pievieno loku (V4, V3)
Iterācija: 6 Solis: 3
Prima algoritms
V1
V2
V3
V4
V5 V6
V7
6
15
818
8
5
9
7
15
10
Nākošais
Iepriekšējais
Beigt
Pauze
Turpināt 11
T V1, V5, V2, V7, V4, V3, V6
Q (V1, V5), (V1, V2), (V5, V7), (V7, V4), (V4, V3), (V4, V6)
Algoritms darbu beidz, jo kopa T satur visas
grafa virsotnes un loku skaits kopā Q ir n-1, kur n- virsotņu
skaits grafā
Iterācija: 6 Solis: 3
Prima algoritms
V1
V2
V3
V4
V5 V6
V7
6
15
818
8
5
9
7
15
10
Nākošais
Iepriekšējais
Beigt
Pauze
Turpināt 11
T V1, V5, V2, V7, V4, V3, V6
Q (V1, V5), (V1, V2), (V5, V7), (V7, V4), (V4, V3), (V4, V6)
Atrastais minimālais
karkass
Iterācija: 6 Solis: 3
Prima algoritms
V1
V2
V3
V4
V5 V6
V7
6
15
818
8
5
9
7
15
10
Nākošais
Iepriekšējais
Beigt
Pauze
Turpināt 11
T V1, V5, V2, V7, V4, V3, V6
Q (V1, V5), (V1, V2), (V5, V7), (V7, V4), (V4, V3), (V4, V6)
Minimālā karkasa kopējais garums: 5+6+9+7+8+10=45