200 likes | 557 Views
Deikstras algoritms. Nākošais. V1. Iepriekšējais. 8. 13. Pauze. 10. V2. V6. Turpināt. 11. 7. 6. Beigt. 16. 17. V3. V5. 14. 5. Šis algoritms paredzēts īsākā ceļa atrašanai no vienas grafa virsotnes uz visām pārējām. V4. Deikstras algoritms. Nākošais. V1. Iepriekšējais. 8.
E N D
Deikstras algoritms Nākošais V1 Iepriekšējais 8 13 Pauze 10 V2 V6 Turpināt 11 7 6 Beigt 16 17 V3 V5 14 5 Šis algoritms paredzēts īsākā ceļa atrašanai no vienas grafa virsotnes uz visām pārējām V4
Deikstras algoritms Nākošais V1 Iepriekšējais 8 13 Pauze 10 V2 V6 Turpināt 11 7 6 Beigt 16 17 V3 V5 14 Algoritms izmanto iezīmju piešķiršanas tehniku- katrā iterācijā virsotnēm tiek piešķirta iezīme, kas norāda īsāko ceļu no sākuma virsotnes līdz apskatāmajai virsotnei, cauri jau apskatītām virsotnēm 5 V4
Deikstras algoritms Nākošais V1 Iepriekšējais 8 13 Pauze 10 V2 V6 Turpināt 11 7 6 Beigt 16 17 V3 V5 14 5 V4 Katrā iterācijā algoritma darbības laikā iezīme, kuras vērtība ir vismazākā, kļūst par konstanti
Deikstras algoritms Nākošais V1 Iepriekšējais 8 13 Pauze 10 V2 V6 Turpināt 11 7 6 Beigt 16 17 V3 V5 14 5 Ja ceļš no sākuma virsotnes līdz apskatāmai virsotnei sastāv no vairākiem viens otram sekojošiem lokiem, tad iezīme ir šo loku svaru summa, ja šādi ceļi ir vairāki, tad par iezīmi kļūst mazākā no summām V4
Deikstras algoritms Nākošais 0 V1 Iepriekšējais 8 13 Pauze ∞ 10 V2 ∞ V6 Turpināt 11 7 6 Beigt 16 17 V3 V5 ∞ ∞ 14 5 Algoritmam sākot darbu, sākuma virsotnei tiek piešķirta iezīme 0, bet visām pārējām ∞ V4 ∞ S: Ø
Deikstras algoritms Nākošais 0 V1 Iepriekšējais 8 13 Pauze ∞ 10 V2 ∞ V6 Turpināt 11 7 6 Beigt 16 17 V3 V5 ∞ ∞ 14 5 V4 ∞ S- konstanto virsotņu kopa sākotnēji ir tukša 1. Iterācija S: Ø
Deikstras algoritms Nākošais 0 V1 Iepriekšējais 8 13 Pauze ∞ 10 V2 ∞ V6 Turpināt 11 7 6 Beigt 16 17 V3 V5 ∞ ∞ 14 5 V4 ∞ Tā kā vismazākā iezīme ir virsotnei V1, tā kļūst konstanta un virsotni iekļauj kopā S 1. Iterācija S: V1,
Deikstras algoritms Nākošais 0 V1 Iepriekšējais 8 13 Pauze ∞ 10 V2 8 V6 Turpināt 11 7 6 Beigt 16 17 V3 V5 16 13 14 5 Notiek virsotņu iezīmju atjaunošana visām virsotnēm, kuras ir virsotnes V1 pēcteči, iezīmes kļūst vienādas ar loka no virsotnes V1 uz katru pēcteci svaru V4 ∞ 2. Iterācija S: V1
Deikstras algoritms Nākošais 0 V1 Iepriekšējais 8 13 Pauze ∞ 10 V2 8 V6 Turpināt 11 7 6 Beigt 16 17 V3 V5 16 13 14 5 V4 ∞ Vismazākā iezīme ir virsotnei V6, šī virsotne kļūst par konstanti un tiek iekļauta kopā S 2. Iterācija S: V1, V6
Deikstras algoritms Nākošais 0 V1 Iepriekšējais 8 13 Pauze 18 10 V2 8 V6 Turpināt 11 7 6 Beigt 16 17 V3 V5 15 13 14 5 Notiek virsotņu iezīmju atjaunošana, visām virsotnēm, kuras nav kopā S V4 25 3. Iterācija S: V1, V6
Deikstras algoritms Nākošais 0 V1 Iepriekšējais 8 13 Pauze 18 10 V2 8 V6 Turpināt 11 7 6 Beigt 16 17 V3 V5 15 13 Tā kā ceļš no sākuma virsotnes uz virsotni V5 caur virsotni V6 ir ar svaru 8+7=15, bet no virsotnes V1 uz virsotni V5 ar svaru 16, tad šai virsotnei tiek mainīta iezīme 14 5 V4 25 3. Iterācija S: V1, V6
Deikstras algoritms Nākošais 0 V1 Iepriekšējais 8 13 Pauze 18 10 V2 8 V6 Turpināt 11 7 6 Beigt 16 17 V3 V5 15 13 14 5 V4 25 Vismazākā iezīme ir virsotnei V3, to iekļauj kopā S 3. Iterācija S: V1, V6, V3
Deikstras algoritms Nākošais 0 V1 Iepriekšējais 8 13 Pauze 18 10 V2 8 V6 Turpināt 11 7 6 Beigt 16 17 V3 V5 15 13 Notiek virsotņu iezīmju atjaunošana visām virsotnēm, kuras nepieder kopai S. Tā kā īsāks ceļš uz nevienu no tām nav atrasts, tad iezīmju vērtības netiek mainītas 14 5 V4 25 4. Iterācija S: V1, V6, V3
Deikstras algoritms Nākošais 0 V1 Iepriekšējais 8 13 Pauze 18 10 V2 8 V6 Turpināt 11 7 6 Beigt 16 17 V3 V5 15 13 14 5 V4 Vismazākā iezīme ir virsotnei V5, tāpēc tā kļūst konstanta un virsotni iekļauj kopā S 25 4. Iterācija S: V1, V6, V3, V5
Deikstras algoritms Nākošais 0 V1 Iepriekšējais 8 13 Pauze 18 10 V2 8 V6 Turpināt 11 7 6 Beigt 16 17 V3 V5 15 Notiek virsotņu iezīmju atjaunošana visām virsotnēm, kuras nav kopā S. Tā kā no virsotne V1 uz virsotni V4 tagad zināms īsāks ceļš, šīs virsotnes iezīme mainās 13 14 5 V4 20 5. Iterācija S: V1, V6, V3, V5
Deikstras algoritms Nākošais 0 V1 Iepriekšējais 8 13 Pauze 18 10 V2 8 V6 Turpināt 11 7 6 Beigt 16 17 V3 V5 15 13 14 5 V4 Vismazākā iezīme ir virsotnei V2, tā kļūst konstanta un to pievieno kopai S 20 5. Iterācija S: V1, V6, V3, V5, V2
Deikstras algoritms Nākošais 0 V1 Iepriekšējais 8 13 Pauze 18 10 V2 8 V6 Turpināt 11 7 6 Beigt 16 17 V3 V5 15 13 Notiek virsotņu iezīmju atjaunošana visām virsotnēm, kuras nav kopā S. Tā kā no virsotne V1 uz virsotni V4 nav atrasts īsāks ceļš, tad šīs virsotnes iezīme nemainās 14 5 V4 20 6. Iterācija S: V1, V6, V3, V5, V2
Deikstras algoritms Nākošais 0 V1 Iepriekšējais 8 13 Pauze 18 10 V2 8 V6 Turpināt 11 7 6 Beigt 16 17 V3 V5 15 13 14 5 V4 Vismazākā iezīme ir virsotnei V4, tā kļūst konstanta un virsotne tiek pievienota kopai S 20 6. Iterācija S: V1, V6, V3, V5, V2, V4
Deikstras algoritms Nākošais 0 V1 Iepriekšējais 8 13 Pauze 18 10 V2 8 V6 Turpināt 11 7 6 Beigt 16 17 V3 V5 15 13 14 5 V4 Algoritms beidz darbu, jo visas virsotnes atrodas kopā S un nav vairs virsotņu ar maināmām iezīmēm 20 6. Iterācija S: V1, V6, V3, V5, V2, V4
Deikstras algoritms Nākošais 0 V1 Iepriekšējais 8 13 Pauze 18 10 V2 8 V6 Turpināt 11 7 6 Beigt 16 17 V3 V5 15 13 14 5 V4 Algoritmam beidzot darbu, katras virsotnes iezīme norāda īsākā ceļa garumu no sākuma virsotnes līdz šai virsotnei 20 S: V1, V6, V3, V5, V2, V4