You are on page 1of 2

1 skyrius

Bellman Ford algoritmas


1.1

Bellman Ford algoritmo principai

1.1.1 Lema. Jei digrafas G = (V, E) su svorio funkcija w : E R+ neturi neigiamo ilgio cikl, pasiekiam i altinio virns s, tai pasibaigus Bellmano F ordo
algoritmo vykdymui, kiekvienai i s pasiekiamai virnei v gauname d[v] = (s, v).
rodymas. Tarkime v yra pasiekiama ir p = (v0 v1 ...vk ) yra trumpiausias takas
i s = v0 iki v = vk . Aiku, kad (s, v) = k 6 |V | 1. Naudodami indukcij
parodysime, kad po i algoritmo iteracij mes gausime d[vi ] = (s, vi ).
Be to, 4.1.5 lema sako, kad vlesns relaksacijos pasiektos lygybs (s, vj ) =
d[vj ] nebekeiia. Tegu indukcin prielaida, kad d[vi1 ] = (s, vi1 ) buvo pasiekta
po (i 1)-os iteracijos, yra teisinga. Briauna vi1 vi yra relaksuojama i ingsnyje.
Pasinaudoj 4.1.7 lema, gauname, kad jame pasiekiamas apatinis d[vi ] ris [s, vi ].
Jis pagal 4.1.5 lem vliau nebekinta.
1.1.2 teorema. (B-F algoritmo korektikumas). Jei digrafas G = (V, E) su svorio
funkcija w : E R+ neturi neigiamo ilgio cikl, pasiekiam i altinio virns
s, tai pasibaigus Bellmano-Fordo algoritmo vykdymui, kiekvienai i s pasiekiamai
virnei v gauname d[v] = (s, v), proseneli pografis yra trumpiausi tak medis.[4]
rodymas. Pirmuoju atveju, jei digrafas G = (V, E) su svorio funkcija w : E
R+ neturi neigiamo ilgio cikl, pasiekiam i altinio virns s, tai 4.1.7. lema
rodo lygyb d[v] = (s, v). Pasiekiamoms virnms is dydis yra baigtinis, o
nepasiekiamoms begalinis. Pagal 4.1.8. lem suformuotas proseneli pografis yra
trumpiausi tak pirmojo tipo virnes medis.
1

vykdius algoritm , jei uv E,


d[v] = (s, v) 6 (s, u) + w(uv) = d[u] + w(uv).
Tegul turime neigiamo ilgio cikl C = (v0 v1 ...vk , v0 = vk ) su w(C) < 0, kuris yra
pasiekiamas i s. Jei vis tik pasirodo reikm True, turjo bti
d[vi ] = d[(vi 1] + w(vi1 vi )
kiekvienam i = (1, ..., k). Susumav ias nelygybes, gautume prietar: w(C) >
0.
Teorema rodyta.
1.1.3 teorema. Realizavus algoritm d[u] = (s, u) kiekvienai u V . Sudarytas
proseneli pografis yra trumpiausi tak medis.
rodymas. Pastebkime, kad nepasiekiam i s virni gali bti kairje nuo s.
Bet joms po inicializacijos suteiktas d[u] = nepakis, kaip ir kitoms nepasiekiamoms virnms. Pasiekiamoms virnms, surad atstum iki pirmosios virns
trumpiausiame take p = (v0 v1 ...vk , v0 = s), einame toliau dein. Paprastas indukcijos panaudojimas,paremtas lygybe
(s, vi ) = (s, vi1 ) + w(vi1 vi ),
rodo teoremos teigin. Trivials samprotavimai pagrindia ir trumpiausi tak
medio konstrukcij.
1.1.4 teorema. Jei digrafas GA neturi neigiamo ilgio ciklo, tai skirtumini apribojim sistema turi sprendin X0 = ((s, v1 ), ..., (s, vn ))t ,
ia t reikia vektoriaus transponavim. Jei digrafas GA turi neigiamo ilgio cikl,
tai skirtumini apribojim sistema neturi sprendinio.
rodymas. Pagal 2 lem pirmuoju teoremos atveju (s, vj ) 6 (s, vi ) + w(vi vj )
Todl pam x0j = (s, vj ) matome, jog x0j x0i 6 w(vi vj ).
Tai ir buvo atitinkamas skirtuminis apribojimas. Tegu egzistuoja neigiamo ilgio
ciklas C = (v1 ...vk ) su v1 = vk ir k > 2. Numeracija neturs takos samprotavimams,
bet cikle nebus altinio virns, nes j jokia briauna negrta. Ciklo briaunos
atitiko skirtuminius apribojimus, todl
x2 x1 6 w(v1 v2 ) , ..., xk xk1 6 w(vk1 vk ), x1 xk 6 w(vk v1 ).
Sudj visas nelygybes gauname w(v1 v2 ) + ... + w(vk1 vk ) + w(vk v1 ) > 0.
Prietara rodo antrj teoremos teigin.