Bellman-Ford - PREDAVANJA

Bellman-Ford - PREDAVANJA

Avtor: Boštjan Kač

Učni cilji: Iskanje najkrajših poti v uteženo usmerjenem grafu preko Bellman-Ford algoritma

CILJ

Poiskati dolžine najkrajših poti od izhodiščnega vozlišča do vseh ostalih vozlišč () in njihove optimalne predhodnike v omrežju (grafu ) utežno usmerjenih povezav.

Eden izmed načinov, da rešimo naš problem je Bellman-Ford-ov algoritem.

DEFINICIJA_utezeno_usmerjenega_grafa

Uteženo usmerjeni graf je urejen par , kjer so:

- uteži ... števila, ki pomenijo vrednost (stroške, cene) povezav v grafu ;

- ... neprazna končna množica vozlišč v grafu ... ,
pri čemer je -to vozlišče v grafu ,
j = 1,2, ...,n;

- ... množica uteženih povezav v grafu ... ,
pri čemer je (začetek povezave, konec povezave, utež povezave),
i = 1,2, ...,m.

Predpostavka:
- ne dovoljujemo negativnih ciklov.

DEFINICIJA_OPTIMALNEGA_PREDHODNIKA_NA_KONKRETNEM_PRIMERU

Dano imamo optimalno pot iz v : -> -> -> -> .
Velja:
je optimalni predhodnik vozlišča ,
je optimalni predhodnik vozlišča ,
je optimalni predhodnik vozlišča in
je optimalni predhodnik vozlišča .

Bellman_Ford_algoritem

VHODNI PODATKI:
- … množica uteženih povezav,
- … neprazna končna množica vozlišč,
- … izhodiščno vozlišče.

IZHODNI PODATKI:
- … dolžine najkrajših poti od izhodiščnega vozlišča do vozlišč ,
- … optimalni predhodniki (očetje) vozlišč .
j = 1,2, ...,n;

PROGRAM V JAVI:
prenesi


TRDITEV


Da pridemo do optimalne rešitve preko BF algoritma moramo največ -krat skozi vse povezave, če vemo, da je število vozlišč v grafu enako .

Če v omrežju ni negativnih ciklov, najkrajša pot lahko obišče vsako vozlišče največ enkrat. Če ima graf manj povezav, je treba pregledati manj možnosti. Najslabše je v polnem grafu (vsebuje vse možne povezave), kjer ima vsako vozlišče sosedov.

PRIMERI_UPORABE_BF_V_PRAKSI_IN_NJEGOVA_GLAVNA_PREDNOST

Glavna prednost BF v primerjavi z večino ostalimi algoritmi je ravno v tem, da nam poišče dolžine najkrajših poti od izhodiščnega vozlišča do VSEH ostalih vozlišč in njihove optimalne predhodnike. V večini nam algoritmi za iskanje najkrajših poti poiščejo SAMO ENO najkrajšo pot (recimo od do ).

- OMREŽJE CESTNIH POVEZAV:
Iščemo najkrajšo pot iz Ljubljane v Maribor.
Ljubljana - Kranj - Velenje - Maribor,
Ljubljana - Trbovlje - Celje - Maribor,
Ljubljana - Celje - Maribor,
Ljubljana - Trbovlje - Celje - Ptuj - Maribor,
... Hkrati bi lahko tudi poiskali najkrajšo pot iz Ljubljane v Kranj, itd.

- OMREŽJE ELEKTRIČNE NAPELJAVE:
Polagamo električno napeljavo v Kočevju iz Tomšičeve ulice v Streliško ulico s čim manjšimi stroški.
Tomšičeva ulica - Tesarska ulica - Podgorska ulica - Streliška ulica,
Tomšičeva ulica - Ljubljanska ulica - Podgorska ulica - Streliška ulica,
Tomšičeva ulica - Turjaška ulica - Streliška ulica,
... Hkrati bi lahko tudi poiskali opt. iz Tomšičeve v Podgorsko, itd.

- OMREŽJE HIDROVODNE NAPELJAVE:
.
.
.

Primer_1

Dano je omrežje:





(http://www.nauk.si/materials/4535/src/omrezje1.jpg)
omrežje1

Poiščimo dolžine vseh najkrajših poti (optimalne vrednosti) iz vozlišča do vozlišč (in vmesna vozlišča) preko Bellman-Ford algoritma.

REŠITEV V OBLIKI FILMČKA

Primer_2

Dano je (malo večje) omrežje:







Poiščimo dolžine vseh najkrajših poti iz vozlišča do vseh ostalih vozlišč in njihove optimalne predhodnike (očete) preko BF.

RAČUNAMO PO KORAKIH :

korak


.
.
.
(REŠITEV:)
korak



Primer_3

Dano je omrežje:





Poiščimo dolžine vseh najkrajših poti iz vozlišča do vozlišč preko BF.

Primer_4

Dano je omrežje:





Poiščimo dolžine vseh najkrajših poti iz vozlišča do vozlišč preko BF.

Primer_5

Dano je omrežje:





Poiščimo dolžine vseh najkrajših poti iz vozlišča do vozlišč preko BF.

(Graf vsebuje negativni cikel!)

Računamo po korakih:

ko gremo PRVIČ skozi vse povezave:



ko gremo DRUGIČ skozi vse povezave:



ko gremo TRETJIČ skozi vse povezave:



Opazimo: in da je iz koraka v korak boljši.

Torej iz koraka v korak dobivamo boljšo rešitev in predhodniki se ne spreminjajo (večkrat ko prehodimo eno in isto pot (cikel) boljši je optimum).
Ugotovimo, da je problem iskanja najkrajših poti nesmiseln, če imamo opravka z negativnimi cikli.

LITERATURA

0%
0%