Edsger Wybe Dijkstra (1930-2002)
|
|
ZGODOVINA
Edsger Wybe Dijkstra (1930-2002)
|
|
OBRAZLOŽITEV GLAVNIH POJMOV
Graf () je množica vozlišč (), ki so med seboj povezana s povezavami (). Matematični zapis za graf je . Povezave so lahko usmerjene ali neusmerjene.
|
|
Usmerjen graf je tisti graf, ki ima vse povezave usmerjene. In posledica je, da se lahko iz ene točke premaknemo v drugo le v smeri povezave, nazaj pa po isti poti ne gre, razen če je le ta dvosmerna.
|
|
Utežen graf je tisti graf, ki ima na vseh povezavah neko težo (npr. ceno, razdaljo). Ta nam pove koliko enot porabimo, da pridemo iz ene točke v drugo.
|
|
NAJKRAJŠA POT (ang. Shortest path)
Najkrajša pot na grafu je tista, ki iz ene točke pride v drugo tako, da je vsota vseh uteži na izbranih povezavah najmanjša.
| Primer: Zanima nas katera pot je od A do C najkrajša. Najprej pogledamo vse možnosti. Možne izbire so ABC, AC, ADC in AEDC. Sedaj pogledamo vrednosti uteži.
Med vsemi možnostmi izberemo ABC, saj ima ta najmanjši seštevek uteži (4). |
OPOMBA: Da je pot najkrajša, ne pomeni, da vsebuje najmanj povezav, ampak da je vsota uteži na povezavah najmanjša.
Iskanju najkrajših poti rečemo kar problem najkrajših poti. Tu iščemo najbolj optimalno vrednost.
Poznamo pa seveda več različic tega problema:
Za reševanje najkrajših poti poznamo tri algoritme:
DIJKSTROV ALGORITEM
Dijkstrov algoritem najde najkrajše poti iz izbrane točke do vseh ostalih točk. Med izvajanjem postopka gradimo drevo najkrajših poti.
Drevo najkrajših poti je vpeto drevo, ki vsebuje vse najkrajše poti iz izbranega vozlišča do vseh ostalih.
|
Ugotovitev: Če gledamo drevo najkrajših poti za vozlišče α ne bomo dobili prave najkrajše poti od vozlišča β do γ. V primeru, da bo rešitev prava pa bo to zgolj naključje oz. vsako vozlišče ima svoje drevo najkrajših poti.
Uporaba:
DIJKSTROV ALGORITEM
Legenda oznak na grafih
ALGORITEM
Algoritem zgradi drevo tako, da vsakič doda iz množice vozlišč, ki še niso v drevesu vozlišče, ki ima najkrajšo pot od začetnega vozlišča.
DELOVANJE ALGORITMA:
Podano imamo:
Postopek:
dokler nista množici in prazni izvajaj:
poiščemo nove kandidate za povezave in vozlišča in jih dodamo v množico in izbrišemo iz množice
če najdemo neko kandidatko za izbrano povezavo, ki vodi do vozlišča,ki je že v potem:
če je vrednost najkrajše poti večja kot prejšnja potem
če pa je vrednost najkrajše poti manjša kot prejšnja potem
1. PRIMER
Iskali bomo najkrajše poti iz točke A do preostalih.
|
|
|
|
|
|
|
|
2. PRIMER
Rešili bomo nekoliko težji primer z devetimi vozlišči. Iskali bomo najkrajše poti iz točke A do preostalih.
Prikaz rešitve:
|
Spodaj si lahko v filmčku ogledate potek reševanja po korakih.
2. PRIMER
Katera od spodnjih slik predstavlja drevo najkrajših poti vozlišča za graf ?
|
|
Izbira ni pravilna. Ponovno Namig: Pozoren/na bodi na vrednost povezave od izbrane točke do opazovane. Odgovor najdeš na naslednji prosojnici.
VIRI