SlideShare una empresa de Scribd logo
1 de 13
Descargar para leer sin conexión
http://lynt.cz
Dijskrův algoritmus
názorná ukázka
Vláďa Smitka
vladimir.smitka@lynt.cz
@smitka (ale skoro nic nepíšu)
Lynt services s.r.o.
http://lynt.cz
Dijskrův algoritmus
23. 1. 2015 2
• Dijskrův algoritmus počítá nejkratší cestu mezi
2 místy v grafu
• Budeme potřebovat 2 tabulky a samotný graf
• V první tabulce budeme evidovat celkové
nejkratší vzdálenosti mezi místy
• V druhé místa, odkud jsme se sem nalezenou
nejkratší cestou dostali
http://lynt.cz
Hledáme nejlepší cestu
z města A do města F
23. 1. 2015 3
A
B
C
D
E F
1 km 4 km
2 km
4 km 1 km
2 km
1 km 2 km
A B C D E F A B C D E F
Nejkratší cesta do okolních měst Jak jsem se do města dostal
4 km
http://lynt.cz
Hledáme nejlepší cestu
z města A do města F
23. 1. 2015 4
A
B
C
D
E F
1 km 4 km
2 km
4 km 1 km
2 km
1 km 2 km
A B C D E F
0 ∞ ∞ ∞ ∞ ∞
A B C D E F
- - - - - -
Nejkratší cesta do okolních měst Jak jsem se do města dostal
4 km
Jsme ve městě A, vzdálenost z A do A je 0, ostatní vzdálenosti jsou pro nás zatím
neznámé = nekonečno
Odkud jsme se do A dostali nevíme = -
Do bodu A lepší cesta nevede, označíme jako finální
vybereme nejkratší
http://lynt.cz
Hledáme nejlepší cestu
z města A do města F
23. 1. 2015 5
A
B
C
D
E F
1 km 4 km
2 km
4 km 1 km
2 km
1 km 2 km
A B C D E F
0 ∞ ∞ ∞ ∞ ∞
0 1 ∞ 4 4 ∞
0
0
0
0
A B C D E F
- - - - - -
- A - A A -
-
-
-
-
Nejkratší cesta do okolních měst Jak jsem se do města dostal
4 km
Pokračujeme od nejmenší vzdálenosti (A = 0), město A označíme jako navštívené.
Zjistíme do jakých měst s z A dostaneme (B,D,E) a jak je to daleko od A (1,4,4).
Pokud je vzdálenost menší než aktuální (∞), zapíšeme novou vzdálenost a místo odkud
jsme přišli. Pokud je vzdálenost větší, necháváme původní místo a vzdálenost.
Nejmenší vzdálenost (B=1) označíme jako finální a z tohoto města budeme pokračovat.
vybereme nejkratší
již nalezeno,
označeno jako finální
http://lynt.cz
Hledáme nejlepší cestu
z města A do města F
23. 1. 2015 6
A
B
C
D
E F
1 km 4 km
2 km
4 km 1 km
2 km
1 km 2 km
A B C D E F
0 ∞ ∞ ∞ ∞ ∞
0 1 ∞ 4 4 ∞
0 1 5 3 4 ∞
0 1
0 1
0 1
A B C D E F
- - - - - -
- A - A A -
- A B B A -
- A
- A
- A
Nejkratší cesta do okolních měst Jak jsem se do města dostal
4 km
Z města B se dostaneme do D a C, obě vzdálenosti od A jsou nyní menší než předtím,
napíšeme tedy, že jsme se do těchto bodů dostali z B a doplníme vzdálenosti od A.
Nejkratší vzdálenost je nyní do bodu D, nastavíme ho tedy jako finální a budeme do
něj pokračovat.
1+4
(1+2)<4 byla nalezena
výhodnější
cesta přes B
http://lynt.cz
Hledáme nejlepší cestu
z města A do města F
23. 1. 2015 7
A
B
C
D
E F
1 km 4 km
2 km
4 km 1 km
2 km
1 km 2 km
A B C D E F
0 ∞ ∞ ∞ ∞ ∞
0 1 ∞ 4 4 ∞
0 1 5 3 4 ∞
0 1 5 3 4 5
0 1 3
0 1 3
A B C D E F
- - - - - -
- A - A A -
- A B B A -
- A B B A D
- A B
- A B
Nejkratší cesta do okolních měst Jak jsem se do města dostal
4 km
Z města D se nyní dostaneme do měst E a F. Do města E je vzdálenost stejná jako byla z
A, necháváme tedy původní hodnoty. Do města F jsme našli novou nejkratší cestu.
Nejkratší cesta celkem je nyní do E – označíme jej jako finální a budeme pokračovat.
(3+2)<∞
http://lynt.cz
Hledáme nejlepší cestu
z města A do města F
23. 1. 2015 8
A
B
C
D
E F
1 km 4 km
2 km
4 km 1 km
2 km
1 km 2 km
A B C D E F
0 ∞ ∞ ∞ ∞ ∞
0 1 ∞ 4 4 ∞
0 1 5 3 4 ∞
0 1 5 3 4 5
0 1 5 3 4 5
0 1 3 4
A B C D E F
- - - - - -
- A - A A -
- A B B A -
- A B B A D
- A B B A D
- A B A
Nejkratší cesta do okolních měst Jak jsem se do města dostal
4 km
Z E se lze dostat pouze do F, ale vzdálenost není kratší než předešlá - necháváme původní.
Celkově jsou nyní nejkratší vzdálenosti do měst C a F (5km) vybereme si tedy jedno z nich
(např. C), doplníme jako finální a pokračujeme.
(4+2)>5
http://lynt.cz
Hledáme nejlepší cestu
z města A do města F
23. 1. 2015 9
A
B
C
D
E F
1 km 4 km
2 km
4 km 1 km
2 km
1 km 2 km
A B C D E F
0 ∞ ∞ ∞ ∞ ∞
0 1 ∞ 4 4 ∞
0 1 5 3 4 ∞
0 1 5 3 4 5
0 1 5 3 4 5
0 1 5 3 4 5
A B C D E F
- - - - - -
- A - A A -
- A B B A -
- A B B A D
- A B B A D
- A B B A D
Nejkratší cesta do okolních měst Jak jsem se do města dostal
4 km
Rozhodli jsme se, že budeme pokračovat z C, zde je cesta pouze do F a je delší než
cesta přes D, necháme tedy původní hodnoty.
Nejkratší cesta ze všech je nyní už pouze do cílového města F.
(5+1)>5
http://lynt.cz
Hledáme nejlepší cestu
z města A do města F
23. 1. 2015 10
A
B
C
D
E F
1 km 4 km
2 km
4 km 1 km
2 km
1 km 2 km
Nejkratší cesta do okolních měst Jak jsem se do města dostal
4 km
Prošli jsme celý graf a máme k dispozici seznam nejkratších cest do všech měst.
A B C D E F
0 ∞ ∞ ∞ ∞ ∞
0 1 ∞ 4 4 ∞
0 1 5 3 4 ∞
0 1 5 3 4 5
0 1 5 3 4 5
0 1 5 3 4 5
A B C D E F
- - - - - -
- A - A A -
- A B B A -
- A B B A D
- A B B A D
- A B B A D
http://lynt.cz
Hledáme nejlepší cestu
z města A do města F
23. 1. 2015 11
A
B
C
D
E F
1 km 4 km
2 km
4 km 1 km
2 km
1 km 2 km
A B C D E F
0 1 5 3 4 5
A B C D E F
- A B B A D
Nejkratší cesta do okolních měst Jak jsem se do města dostal
4 km
Z vytvořených tabulek jednoduše nalezneme
nejkratší cesty do všech měst.
• Vidíme, že vzdálenost do F je 5km.
• Do F jsme se dostali z D.
• Do D byla nejkratší vzdálenost z B.
• Do B jsme se dostali z A.
• Výsledná cesta je tedy A – B – D – F
Z tabulek vyčteme i všechny ostatní nejkratší cesty z bodu
A.
Například do C je to také 5km a dostali jsme se tam z B, do
kterého jsme šli z A.
http://lynt.cz
Kde se to používá
23. 1. 2015 12
A B C D E F
0 1 5 3 4 5
A B C D E F
- A B B A D
Nejkratší cesta do okolních měst Jak jsem se do města dostal
Dijskrův algoritmus používají například některé routovací protokoly jako
je OSPF.
Každý router má svou takto spočítanou tabulku, podle které okamžitě ví,
kam má posílat požadavky na konkrétního adresáta, aby došly
nejvýhodnější cestou.
Vzdálenost je v tomto případě rychlost jednotlivých linek (správce má
však stále možnost tyto hodnoty uměle ovlivňovat).
http://lynt.cz
Děkuji za pozornost!
• Článek s využitím Dijskrova algoritmu při
analýze struktury webu
23. 1. 2015 13

Más contenido relacionado

Más de Vladimír Smitka

Hesla a vícefaktorová autentizace ve WP
Hesla a vícefaktorová autentizace ve WPHesla a vícefaktorová autentizace ve WP
Hesla a vícefaktorová autentizace ve WPVladimír Smitka
 
Drobné chyby, které vám mohou zlomit vaz
Drobné chyby, které vám mohou zlomit vazDrobné chyby, které vám mohou zlomit vaz
Drobné chyby, které vám mohou zlomit vazVladimír Smitka
 
Sysops tipy pro lepší WP
Sysops tipy pro lepší WPSysops tipy pro lepší WP
Sysops tipy pro lepší WPVladimír Smitka
 
Najčastejšie problémy WordPress webov
Najčastejšie problémy WordPress webovNajčastejšie problémy WordPress webov
Najčastejšie problémy WordPress webovVladimír Smitka
 
WordCamp Brno 2017 - rychlý a bezpečný web
WordCamp Brno 2017  - rychlý a bezpečný webWordCamp Brno 2017  - rychlý a bezpečný web
WordCamp Brno 2017 - rychlý a bezpečný webVladimír Smitka
 
WordPress - základy bezpečnosti
WordPress - základy bezpečnostiWordPress - základy bezpečnosti
WordPress - základy bezpečnostiVladimír Smitka
 
Nejčastejší problémy WordPress webů
Nejčastejší problémy WordPress webůNejčastejší problémy WordPress webů
Nejčastejší problémy WordPress webůVladimír Smitka
 
WordPress Security: Defend yourself against digital invaders
WordPress Security:Defend yourself against digital invadersWordPress Security:Defend yourself against digital invaders
WordPress Security: Defend yourself against digital invadersVladimír Smitka
 
WordPress: Základy - bezpečnost 3x3
WordPress: Základy - bezpečnost 3x3WordPress: Základy - bezpečnost 3x3
WordPress: Základy - bezpečnost 3x3Vladimír Smitka
 
WP výkon a jeho profilování
WP výkon a jeho profilováníWP výkon a jeho profilování
WP výkon a jeho profilováníVladimír Smitka
 
WordCamp Praha 2016 - Bezpečnost WordPress
WordCamp Praha 2016 - Bezpečnost WordPressWordCamp Praha 2016 - Bezpečnost WordPress
WordCamp Praha 2016 - Bezpečnost WordPressVladimír Smitka
 
WordPress performance tuning
WordPress performance tuningWordPress performance tuning
WordPress performance tuningVladimír Smitka
 
Bezpečnost WordPress pro začátečníky
Bezpečnost WordPress pro začátečníkyBezpečnost WordPress pro začátečníky
Bezpečnost WordPress pro začátečníkyVladimír Smitka
 
WordPress security for everyone
WordPress security for everyoneWordPress security for everyone
WordPress security for everyoneVladimír Smitka
 

Más de Vladimír Smitka (20)

Hesla a vícefaktorová autentizace ve WP
Hesla a vícefaktorová autentizace ve WPHesla a vícefaktorová autentizace ve WP
Hesla a vícefaktorová autentizace ve WP
 
WP Weekend 2018
WP Weekend 2018WP Weekend 2018
WP Weekend 2018
 
Drobné chyby, které vám mohou zlomit vaz
Drobné chyby, které vám mohou zlomit vazDrobné chyby, které vám mohou zlomit vaz
Drobné chyby, které vám mohou zlomit vaz
 
Sysops tipy pro lepší WP
Sysops tipy pro lepší WPSysops tipy pro lepší WP
Sysops tipy pro lepší WP
 
Najčastejšie problémy WordPress webov
Najčastejšie problémy WordPress webovNajčastejšie problémy WordPress webov
Najčastejšie problémy WordPress webov
 
Http/2 vs Image Sprites
Http/2 vs Image SpritesHttp/2 vs Image Sprites
Http/2 vs Image Sprites
 
Ansible
AnsibleAnsible
Ansible
 
WordCamp Brno 2017 - rychlý a bezpečný web
WordCamp Brno 2017  - rychlý a bezpečný webWordCamp Brno 2017  - rychlý a bezpečný web
WordCamp Brno 2017 - rychlý a bezpečný web
 
WordPress - základy bezpečnosti
WordPress - základy bezpečnostiWordPress - základy bezpečnosti
WordPress - základy bezpečnosti
 
Nejčastejší problémy WordPress webů
Nejčastejší problémy WordPress webůNejčastejší problémy WordPress webů
Nejčastejší problémy WordPress webů
 
Wordfence 2016
Wordfence 2016Wordfence 2016
Wordfence 2016
 
WordPress Security: Defend yourself against digital invaders
WordPress Security:Defend yourself against digital invadersWordPress Security:Defend yourself against digital invaders
WordPress Security: Defend yourself against digital invaders
 
WordPress: Základy - bezpečnost 3x3
WordPress: Základy - bezpečnost 3x3WordPress: Základy - bezpečnost 3x3
WordPress: Základy - bezpečnost 3x3
 
Instalace WordPress
Instalace WordPressInstalace WordPress
Instalace WordPress
 
WP výkon a jeho profilování
WP výkon a jeho profilováníWP výkon a jeho profilování
WP výkon a jeho profilování
 
WordCamp Praha 2016 - Bezpečnost WordPress
WordCamp Praha 2016 - Bezpečnost WordPressWordCamp Praha 2016 - Bezpečnost WordPress
WordCamp Praha 2016 - Bezpečnost WordPress
 
WordPress performance tuning
WordPress performance tuningWordPress performance tuning
WordPress performance tuning
 
Výkon WordPress
Výkon WordPressVýkon WordPress
Výkon WordPress
 
Bezpečnost WordPress pro začátečníky
Bezpečnost WordPress pro začátečníkyBezpečnost WordPress pro začátečníky
Bezpečnost WordPress pro začátečníky
 
WordPress security for everyone
WordPress security for everyoneWordPress security for everyone
WordPress security for everyone
 

Dijskrův algoritmus

  • 1. http://lynt.cz Dijskrův algoritmus názorná ukázka Vláďa Smitka vladimir.smitka@lynt.cz @smitka (ale skoro nic nepíšu) Lynt services s.r.o.
  • 2. http://lynt.cz Dijskrův algoritmus 23. 1. 2015 2 • Dijskrův algoritmus počítá nejkratší cestu mezi 2 místy v grafu • Budeme potřebovat 2 tabulky a samotný graf • V první tabulce budeme evidovat celkové nejkratší vzdálenosti mezi místy • V druhé místa, odkud jsme se sem nalezenou nejkratší cestou dostali
  • 3. http://lynt.cz Hledáme nejlepší cestu z města A do města F 23. 1. 2015 3 A B C D E F 1 km 4 km 2 km 4 km 1 km 2 km 1 km 2 km A B C D E F A B C D E F Nejkratší cesta do okolních měst Jak jsem se do města dostal 4 km
  • 4. http://lynt.cz Hledáme nejlepší cestu z města A do města F 23. 1. 2015 4 A B C D E F 1 km 4 km 2 km 4 km 1 km 2 km 1 km 2 km A B C D E F 0 ∞ ∞ ∞ ∞ ∞ A B C D E F - - - - - - Nejkratší cesta do okolních měst Jak jsem se do města dostal 4 km Jsme ve městě A, vzdálenost z A do A je 0, ostatní vzdálenosti jsou pro nás zatím neznámé = nekonečno Odkud jsme se do A dostali nevíme = - Do bodu A lepší cesta nevede, označíme jako finální vybereme nejkratší
  • 5. http://lynt.cz Hledáme nejlepší cestu z města A do města F 23. 1. 2015 5 A B C D E F 1 km 4 km 2 km 4 km 1 km 2 km 1 km 2 km A B C D E F 0 ∞ ∞ ∞ ∞ ∞ 0 1 ∞ 4 4 ∞ 0 0 0 0 A B C D E F - - - - - - - A - A A - - - - - Nejkratší cesta do okolních měst Jak jsem se do města dostal 4 km Pokračujeme od nejmenší vzdálenosti (A = 0), město A označíme jako navštívené. Zjistíme do jakých měst s z A dostaneme (B,D,E) a jak je to daleko od A (1,4,4). Pokud je vzdálenost menší než aktuální (∞), zapíšeme novou vzdálenost a místo odkud jsme přišli. Pokud je vzdálenost větší, necháváme původní místo a vzdálenost. Nejmenší vzdálenost (B=1) označíme jako finální a z tohoto města budeme pokračovat. vybereme nejkratší již nalezeno, označeno jako finální
  • 6. http://lynt.cz Hledáme nejlepší cestu z města A do města F 23. 1. 2015 6 A B C D E F 1 km 4 km 2 km 4 km 1 km 2 km 1 km 2 km A B C D E F 0 ∞ ∞ ∞ ∞ ∞ 0 1 ∞ 4 4 ∞ 0 1 5 3 4 ∞ 0 1 0 1 0 1 A B C D E F - - - - - - - A - A A - - A B B A - - A - A - A Nejkratší cesta do okolních měst Jak jsem se do města dostal 4 km Z města B se dostaneme do D a C, obě vzdálenosti od A jsou nyní menší než předtím, napíšeme tedy, že jsme se do těchto bodů dostali z B a doplníme vzdálenosti od A. Nejkratší vzdálenost je nyní do bodu D, nastavíme ho tedy jako finální a budeme do něj pokračovat. 1+4 (1+2)<4 byla nalezena výhodnější cesta přes B
  • 7. http://lynt.cz Hledáme nejlepší cestu z města A do města F 23. 1. 2015 7 A B C D E F 1 km 4 km 2 km 4 km 1 km 2 km 1 km 2 km A B C D E F 0 ∞ ∞ ∞ ∞ ∞ 0 1 ∞ 4 4 ∞ 0 1 5 3 4 ∞ 0 1 5 3 4 5 0 1 3 0 1 3 A B C D E F - - - - - - - A - A A - - A B B A - - A B B A D - A B - A B Nejkratší cesta do okolních měst Jak jsem se do města dostal 4 km Z města D se nyní dostaneme do měst E a F. Do města E je vzdálenost stejná jako byla z A, necháváme tedy původní hodnoty. Do města F jsme našli novou nejkratší cestu. Nejkratší cesta celkem je nyní do E – označíme jej jako finální a budeme pokračovat. (3+2)<∞
  • 8. http://lynt.cz Hledáme nejlepší cestu z města A do města F 23. 1. 2015 8 A B C D E F 1 km 4 km 2 km 4 km 1 km 2 km 1 km 2 km A B C D E F 0 ∞ ∞ ∞ ∞ ∞ 0 1 ∞ 4 4 ∞ 0 1 5 3 4 ∞ 0 1 5 3 4 5 0 1 5 3 4 5 0 1 3 4 A B C D E F - - - - - - - A - A A - - A B B A - - A B B A D - A B B A D - A B A Nejkratší cesta do okolních měst Jak jsem se do města dostal 4 km Z E se lze dostat pouze do F, ale vzdálenost není kratší než předešlá - necháváme původní. Celkově jsou nyní nejkratší vzdálenosti do měst C a F (5km) vybereme si tedy jedno z nich (např. C), doplníme jako finální a pokračujeme. (4+2)>5
  • 9. http://lynt.cz Hledáme nejlepší cestu z města A do města F 23. 1. 2015 9 A B C D E F 1 km 4 km 2 km 4 km 1 km 2 km 1 km 2 km A B C D E F 0 ∞ ∞ ∞ ∞ ∞ 0 1 ∞ 4 4 ∞ 0 1 5 3 4 ∞ 0 1 5 3 4 5 0 1 5 3 4 5 0 1 5 3 4 5 A B C D E F - - - - - - - A - A A - - A B B A - - A B B A D - A B B A D - A B B A D Nejkratší cesta do okolních měst Jak jsem se do města dostal 4 km Rozhodli jsme se, že budeme pokračovat z C, zde je cesta pouze do F a je delší než cesta přes D, necháme tedy původní hodnoty. Nejkratší cesta ze všech je nyní už pouze do cílového města F. (5+1)>5
  • 10. http://lynt.cz Hledáme nejlepší cestu z města A do města F 23. 1. 2015 10 A B C D E F 1 km 4 km 2 km 4 km 1 km 2 km 1 km 2 km Nejkratší cesta do okolních měst Jak jsem se do města dostal 4 km Prošli jsme celý graf a máme k dispozici seznam nejkratších cest do všech měst. A B C D E F 0 ∞ ∞ ∞ ∞ ∞ 0 1 ∞ 4 4 ∞ 0 1 5 3 4 ∞ 0 1 5 3 4 5 0 1 5 3 4 5 0 1 5 3 4 5 A B C D E F - - - - - - - A - A A - - A B B A - - A B B A D - A B B A D - A B B A D
  • 11. http://lynt.cz Hledáme nejlepší cestu z města A do města F 23. 1. 2015 11 A B C D E F 1 km 4 km 2 km 4 km 1 km 2 km 1 km 2 km A B C D E F 0 1 5 3 4 5 A B C D E F - A B B A D Nejkratší cesta do okolních měst Jak jsem se do města dostal 4 km Z vytvořených tabulek jednoduše nalezneme nejkratší cesty do všech měst. • Vidíme, že vzdálenost do F je 5km. • Do F jsme se dostali z D. • Do D byla nejkratší vzdálenost z B. • Do B jsme se dostali z A. • Výsledná cesta je tedy A – B – D – F Z tabulek vyčteme i všechny ostatní nejkratší cesty z bodu A. Například do C je to také 5km a dostali jsme se tam z B, do kterého jsme šli z A.
  • 12. http://lynt.cz Kde se to používá 23. 1. 2015 12 A B C D E F 0 1 5 3 4 5 A B C D E F - A B B A D Nejkratší cesta do okolních měst Jak jsem se do města dostal Dijskrův algoritmus používají například některé routovací protokoly jako je OSPF. Každý router má svou takto spočítanou tabulku, podle které okamžitě ví, kam má posílat požadavky na konkrétního adresáta, aby došly nejvýhodnější cestou. Vzdálenost je v tomto případě rychlost jednotlivých linek (správce má však stále možnost tyto hodnoty uměle ovlivňovat).
  • 13. http://lynt.cz Děkuji za pozornost! • Článek s využitím Dijskrova algoritmu při analýze struktury webu 23. 1. 2015 13