Bellman-Fordov algoritem za iskanje najkraj²ih poti Alenka Frim 19. februar 2009 Popravek 25. februar 2009 Imamo usmerjen graf G z uteºmi na povezavah

Podobni dokumenti
Učinkovita izvedba algoritma Goldberg-Tarjan Teja Peklaj 26. februar Definicije Definicija 1 Naj bo (G, u, s, t) omrežje, f : E(G) R, za katero v

Matematika II (UN) 2. kolokvij (7. junij 2013) RE ITVE Naloga 1 (25 to k) ƒasovna funkcija f je denirana za t [0, 2] in podana s spodnjim grafom. f t

Matematika II (UNI) Izpit (23. avgust 2011) RE ITVE Naloga 1 (20 to k) Vektorja a = (0, 1, 1) in b = (1, 0, 1) oklepata trikotnik v prostoru. Izra una

Numeri na analiza - podiplomski ²tudij FGG doma e naloge - 1. skupina V prvem delu morate re²iti toliko nalog, da bo njihova skupna vsota vsaj 10 to k

2.1 Osnovni pojmi 2 Nim Ga²per Ko²mrlj, Denicija 2.1 P-poloºaj je poloºaj, ki je izgubljen za igralca na potezi. N- poloºaj je poloºaj, ki

Matematika II (UN) 1. kolokvij (13. april 2012) RE ITVE Naloga 1 (25 to k) Dana je linearna preslikava s predpisom τ( x) = A x A 1 x, kjer je A

Mere kompleksnih mrež (angl. Network Statistics) - Seminarska naloga pri predmetu Izbrana poglavja iz diskretne matematike

1 Diskretni naklju ni vektorji 1 1 Diskretni naklju ni vektorji 1. Dopolni tabelo tako, da bosta X in Y neodvisni. X Y x x x x x

LaTeX slides

UNIVERZA NA PRIMORSKEM Fakulteta za matematiko, naravoslovje in informacijske tehnologije Matematika 1. stopnja Vida Maksimovi Hamiltonski cikli v kub

Univerza v Mariboru Fakulteta za naravoslovje in matematiko Oddelek za matematiko in ra unalni²tvo Izobraºevalna matematika Pisni izpit pri predmetu K

Iterativne metode v numeri ni linearni algebri 2013/ doma a naloga Re²itve stisnite v ZIP datoteko z imenom ime-priimek-vpisna-1.zip in jih odd

Kazalo 1 DVOMESTNE RELACIJE Operacije z dvomestnimi relacijami Predstavitev relacij

RAM stroj Nataša Naglič 4. junij RAM RAM - random access machine Bralno pisalni, eno akumulatorski računalnik. Sestavljajo ga bralni in pisalni

Namesto (x,y)R uporabljamo xRy

Datum in kraj

3. Metode, ki temeljijo na minimalnem ostanku Denimo, da smo z Arnoldijevim algoritmom zgenerirali ON bazo podprostora Krilova K k (A, r 0 ) in velja

Izpit iz GEOMETRIJE 17. junij 2004 Vpisna ²tevilka: Vrsta: Ime in priimek: Sedeº: 1. Poi² i vse stoºnice v P(R 3 ), ki se dotikajo premice x = 0, prem

EKVITABILNE PARTICIJE IN TOEPLITZOVE MATRIKE Aleksandar Jurišić Politehnika Nova Gorica in IMFM Vipavska 13, p.p. 301, Nova Gorica Slovenija Štefko Mi

UM FKKT, Bolonjski visoko²olski program Kemijska tehnologija Vpisna ²tevilka Priimek, ime 3. test pri predmetu MATEMATIKA II Ra unski del

FGG14

Poglavje 1 Analiza varnosti delovanja sistemov in FRAM metoda V naslovu pri ujo ega poglavja prvi omenimo pojem varnosti delovanja sistema (angl. syst

Ime in priimek: Vpisna št: FAKULTETA ZA MATEMATIKO IN FIZIKO Oddelek za matematiko Verjetnost Pisni izpit 5. februar 2018 Navodila Pazljivo preberite

FAKULTETA ZA STROJNIŠTVO Matematika 2 Pisni izpit 9. junij 2005 Ime in priimek: Vpisna št: Zaporedna številka izpita: Navodila Pazljivo preberite bese

Metode razme²£anja in povezovanja logi£nih primitivov kvantnih celi£nih avtomatov

MAGIČNI KVADRATI DIMENZIJE 4n+2

Microsoft PowerPoint _12_15-11_predavanje(1_00)-IR-pdf

Ime in priimek: Vpisna št: FAKULTETA ZA MATEMATIKO IN FIZIKO Oddelek za matematiko Statistika Pisni izpit 31. avgust 2018 Navodila Pazljivo preberite

UNIVERZA NA PRIMORSKEM FAKULTETA ZA MATEMATIKO, NARAVOSLOVJE IN INFORMACIJSKE TEHNOLOGIJE Zaklju na naloga Urejanje in prikaz podatkov v interaktivni

Urejevalna razdalja Avtorji: Nino Cajnkar, Gregor Kikelj Mentorica: Anja Petković 1 Motivacija Tajnica v posadki MARS - a je pridna delavka, ampak se

C:/Users/Matevž Èrepnjak/Dropbox/FKKT/testi in izpiti/ /IZPITI/FKKT-februar-14.dvi

DS2.dvi

Ravninski grafi Tina Malec 6. februar 2007 Predstavili bomo nekaj osnovnih dejstev o ravninskih grafih, pojem dualnega grafa (k danemu grafu) ter kako

Microsoft Word - UP_Lekcija04_2014.docx

Brownova kovariancna razdalja

CpE & ME 519

Univerza v Ljubljani Fakulteta za računalništvo in informatiko Nejc Ramovš Problem izomorfnega podgrafa DIPLOMSKO DELO NA UNIVERZITETNEM ŠTUDIJU Mento

Sestavljanje in re\unhbox \bgroup \let \unhbox \setbox \hbox {s\global \mathchardef \spacefactor }\ac

ELEKTRIČNI NIHAJNI KROG TEORIJA Električni nihajni krog je električno vezje, ki služi za generacijo visokofrekvenče izmenične napetosti. V osnovi je "

Ime in priimek: Vpisna št: FAKULTETA ZA MATEMATIKO IN FIZIKO Oddelek za matematiko Statistika Pisni izpit 6. julij 2018 Navodila Pazljivo preberite be

6.1 Uvod 6 Igra Chomp Marko Repše, Chomp je nepristranska igra dveh igralcev s popolno informacijo na dvo (ali vec) dimenzionalnem prostoru

UNIVERZA NA PRIMORSKEM Fakulteta za matematiko, naravoslovje in informacijske tehnologije Matematika 1. stopnja Olga Kaliada Trije klasi ni gr²ki prob

Microsoft Word - M docx

Microsoft PowerPoint - OAPS1- Uvod.ppt

Microsoft Word - Document15

Teorija kodiranja in kriptografija 2013/ AES

Segmentacija slik z uporabo najvecjega pretoka

Strojna oprema

Osnove matematicne analize 2018/19

1. izbirni test za MMO 2018 Ljubljana, 16. december Naj bo n naravno število. Na mizi imamo n 2 okraskov n različnih barv in ni nujno, da imam

UNIVERZA NA PRIMORSKEM FAKULTETA ZA MATEMATIKO, NARAVOSLOVJE IN INFORMACIJSKE TEHNOLOGIJE Magistrsko delo Spletna aplikacija za hranjenje, urejanje in

Wienerjevemu indeksu podobni indeksi na grafih

Microsoft Word - M docx

Microsoft Word - Seštevamo stotice.doc

resitve.dvi

Vrste

Microsoft Word - M _mod..docx

Univerza na Primorskem FAMNIT, MFI Vrednotenje zavarovalnih produktov Seminarska naloga Naloge so sestavni del preverjanja znanja pri predmetu Vrednot

Microsoft Word - avd_vaje_ars1_1.doc

C:/Users/Matevž Èrepnjak/Dropbox/FKKT/TESTI-IZPITI-REZULTATI/ /Izpiti/FKKT-junij-17.dvi

5 SIMPLICIALNI KOMPLEKSI Definicija 5.1 Vektorji r 0,..., r k v R n so afino neodvisni, če so vektorji r 1 r 0, r 2 r 0,..., r k r 0 linearno neodvisn

DOLŽNIK: MARJAN KOLAR - osebni steč aj Opr. št. St 3673/ 2014 OSNOVNI SEZNAM PREIZKUŠENIH TERJATEV prij ava terjatve zap. št. št. prij. matič na števi

C:/Users/Matevž Èrepnjak/Dropbox/FKKT/TESTI-IZPITI-REZULTATI/ /Izpiti/FKKT-avgust-17.dvi

FGG02

resitve.dvi

PRILOGA II Obrazec II-A Vloga za pridobitev statusa kvalificiranega proizvajalca elektri ne energije iz obnovljivih virov energije 1.0 Splošni podatki

C:/AndrejT/vestnik/76_1/Rotovnik/main.dvi

Matematika Diferencialne enačbe prvega reda (1) Reši diferencialne enačbe z ločljivimi spremenljivkami: (a) y = 2xy, (b) y tg x = y, (c) y = 2x(1 + y

Univerza v Mariboru Fakulteta za naravoslovje in matematiko Oddelek za matematiko in računalništvo Enopredmetna matematika IZPIT IZ VERJETNOSTI IN STA

UNIVERZA V MARIBORU FAKULTETA ZA NARAVOSLOVJE IN MATEMATIKO Oddelek za matematiko in računalništvo DIPLOMSKO DELO Denis Kolarič Maribor, 2010

FGG13

ANALITIČNA GEOMETRIJA V RAVNINI

Diapozitiv 1

resitve.dvi

Vaje: Matrike 1. Ugani rezultat, nato pa dokaži z indukcijo: (a) (b) [ ] n 1 1 ; n N 0 1 n ; n N Pokaži, da je množica x 0 y 0 x

Diapozitiv 1

Osnove statistike v fizični geografiji 2

Microsoft PowerPoint - IPPU-V2.ppt

Slide 1

RAČUNALNIŠKA ORODJA V MATEMATIKI

C:/Users/Matevz/Dropbox/FKKT/TESTI-IZPITI-REZULTATI/ /Izpiti/FKKT-januar-februar-15.dvi

Osnove verjetnosti in statistika

Space Invaders Opis igre: Originalna igra: Space Invaders je arkadna igra, ki so jo ustvarili leta Bila je ena izmed prvih streljaških iger, v k

VIN Lab 1

UNIVERZA V LJUBLJANI FAKULTETA ZA MATEMATIKO IN FIZIKO Katja Ciglar Analiza občutljivosti v Excel-u Seminarska naloga pri predmetu Optimizacija v fina

Lehmerjev algoritem za racunanje najvecjega skupnega delitelja

Ime in priimek

Excel 2016

Mladi za napredek Maribora srečanje DOLŽINA»SPIRALE«Matematika Raziskovalna naloga Februar 2015

glava.dvi

NAVADNA (BIVARIATNA) LINEARNA REGRESIJA O regresijski analizi govorimo, kadar želimo opisati povezanost dveh numeričnih spremenljivk. Opravka imamo to

ARS1

Microsoft Word - A-3-Dezelak-SLO.doc

Delavnica Načrtovanje digitalnih vezij

STAVKI _5_

(Microsoft PowerPoint - vorsic ET 9.2 OES matri\350ne metode 2011.ppt [Compatibility Mode])

Microsoft PowerPoint - 07-bostjan_tavcar.ppt

6.6 Simetrični problem lastnih vrednosti Če je A = A T, potem so lastne vrednosti realne, matrika pa se da diagonalizirati. Schurova forma za simetrič

Univerza v Ljubljani Fakulteta za računalništvo in informatiko Anže Vrhovnik Aproksimacijski algoritmi za reševanje problema najkrajšega hodnika DIPLO

Transkripcija:

Bellman-Fordov algoritem za iskanje najkraj²ih poti Alenka Frim 19. februar 2009 Popravek 25. februar 2009 Imamo usmerjen graf G z uteºmi na povezavah (uteº si predstavljamo npr. kot dolºino, ceno, teºo ipd.). Dolºina (ali teºa) sprehoda S = v 0 e 1 v 1... v k 1 e k v k v grafu G je c(s) := k c(e i), kjer je c(e i ) uteº povezave e i. Za pot P = v 0, v 1,... v k (pot je sprehod, v katerem se nobeno vozli² e ne ponovi), lahko kraj²e zapi²emo c(p ) = e E(P ) c(e). Iskali bomo najkraj²e poti v grafu G (tj. poti z najmanj²o teºo). Opombe. Da je pot najkraj²a, ne pomeni, da vsebuje najmanj povezav, ampak da je vsota uteºi (teºa poti) na povezavah najmanj²a. Najkraj²e poti od neke to ke do vseh ostalih to k grafa lahko predstavimo kot drevo, pravimo mu drevo najkraj²ih poti. ƒe obstaja pot med dvema to kama, potem vedno obstaja tudi najkraj²a pot med njima, ni pa nujno enoli na. 1 Dijkstrov algoritem Predpostavimo najprej, da imamo samo nenegativne uteºi, c : E(G) R + {0}. V tem primeru lahko uporabimo npr. Dijkstrov algoritem (poºre²na metoda). Ta algoritem je podoben Primovemu postopku za iskanje minimalnega vpetega drevesa v grafu, najde pa lahko najkraj²e poti iz to ke do vseh ostalih to k. Med postopkom gradimo drevo najkraj²ih poti. Za nemo z dano za etno to ko s, za katero i² emo najkraj²e poti do vseh drugih to k; tej to ki pravimo izvor (angl. source). Na vsakem koraku dodamo drevesu tisto to ko zunaj drevesa, ki je "trenutno" najbliºja to ki s (prek trenutnega drevesa in neke povezave, ki zapusti drevo in ima drugo kraji² e zunaj doslej zgrajenega drevesa). Algoritem: Dijkstrov algoritem V danem uteºenem grafu G z nenegativnimi uteºmi c poi² i vse najkraj²e poti z za etkom v s (drevo najkraj²ih poti). dijkstra(g, s) za vse u V (G) d[u] = //d je tabela z razdaljami od to ke s do drugih to k prednik[u] = null //prednik to ke v drevesu najkraj²ih poti d[s] = 0 Q = V (G) //Q je struktura, v kateri hranimo to ke iz grafa G, ki ²e niso v drevesu dokler Q u = min Q //vrne to ko, ki ima pripadajo i d najmanj²i, in jo odstrani iz Q za vse uv δ + (u) //δ + (u) je mnoºica povezav, ki imajo za etek v u e d[v] > d[u] + c(uv) potem d[v] = d[u] + c(uv) prednik[v] = u 1

Opombe. Za Q lahko vzamemo katerokoli strukturo, iz katere lahko razberemo element u z najmanj²im d[u]. Algoritem lahko uporabimo tudi na neusmerjenih uteºenih grah (povezavo zamenjamo z dvema povezavama z razli nima smerema in enakima uteºema; uteºi enaki prvotni). Dijkstrov algoritem ne deluje pravilno na grah z negativnimi uteºmi. ƒasovna zahtevnost: Za splo²ne grafe je primerna implementacija, kjer za strukturo Q uporabimo kar navadno tabelo. V tem primeru je asovna zahtevnost O( V 2 ). ƒe imamo opravka z redkimi gra, pa se nam spla a za strukturo vzeti kopico. Tedaj porabimo O( E log V ) operacij (jemanje elementa iz kopice in vzdrºevanje le-te stane O(log V ), v O( E ) pregledamo vse povezave, ostale operacije opravimo v konstantno korakih). Zgledi: http://lrv.fri.uni-lj.si/~bojank/diplome/jozica_stensak/dijkstra.html 2 Bellman-Fordov algoritem Sedaj bomo grafe posplo²ili, dovolili bomo tudi negativne uteºi. Najve ji problem pri takih grah je v primeru, e graf vsebuje negativne cikle, tj. cikle, ki imajo vsoto uteºi negativno. V tem primeru dobimo poljubno kratke "poti", ki pravzaprav niso ve poti, ampak sprehodi s ponovljenimi povezavami. ƒe negativni cikli niso dosegljivi iz za etne to ke s (ne obstaja pot od s do katerekoli to ke negativnega cikla), teºave ni. Ogledali si bomo Bellman-Fordov algoritem. Primeren je za iskanje najkraj²ih poti v grah brez negativnih ciklov; e pa graf vsebuje negativen cikel, nas na to opozori. Bellman-Fordov algoritem je v osnovi zelo podoben Dijkstrovemu algoritmu, vendar ne izbira primernih vozli² in povezav na vsakem koraku, temve izbira primerne povezave do vseh vozli² ( V (G) 1)-krat. Algoritem: Bellman-Fordov algoritem V danem uteºenem usmerjenem grafu G z uteºmi c najdi vse najkraj²e poti iz to ke s. Kot rezultat v primeru, ko v grafu ni negativnega cikla, dosegljivega iz s, vrni logi no vrednost true (pri tem izra unaj razdalje d in drevo najkraj²ih poti, podano prek tabele prednikov), sicer vrni false. bellman_ford(g, s) za vse u V (G) d[u] = prednik[u] = null d[s] = 0 //Sprostitev (S) za i = 1 do V (G) 1 za vse uv E(G) //uv je povezava iz u v v e d[v] > d[u] + c(uv) potem d[v] = d[u] + c(uv) prednik[v] = u za vse uv E(G) e d[v] > d[u] + c(uv) potem vrni false //obstaja negativen cikel, dosegljiv iz s vrni true //iz s ni dosegljiv noben negativen cikel Sprostitev nad povezavo uv preveri, ali lahko zmanj²amo teºo najkraj²e poti od s do v (d[v]) tako, da najkraj²i poti od s do u (d[u]) dodamo povezavo uv. 2

Opomba (lastnost sprostitve). ƒe je P = v 0, v 1,..., v k, s = v o, najkraj²a pot od s do v k in izvedemo relaksacijo po vrstem redu nad povezavami v 0 v 1, v 1 v 2,..., v k 1 v k, potem je kjer je δ(s, v k ) dolºina najkraj²e poti od s do v k. d[v k ] = δ(s, v k ), Dokaz: (Pravilnost algoritma) 1. del: Naj bo G = (V, E) uteºen, c : E(G) R, usmerjen graf z izvorom s, ter predpostavimo, da G ne vsebuje negativnega cikla, dosegljivega iz s. Trdimo, da po V (G) 1 ponovitvah zanke (R) za vsako to ko v V velja d[v] = δ(s, v) in algoritem vrne true. Naj bo v poljubna to ka, dosegljiva iz s, in naj bo P = v 0, v 1,... v k najkraj²a pot od s do v brez negativnega cikla (v 0 = s, v k = v). Pot P ima kve jem V (G) 1 povezav in je zato k V (G) 1. V vsaki ponovitvi zanke (S) pregledamo vse povezave. Torej smo na i-tem koraku (i = 1,..., k) izvedli sprostitev med drugim tudi nad povezavo (v i 1, v i ) in zato iz lastnosti sprostitve sledi: d[v] = d[v k ] = δ(s, v k ) = δ(s, v). ƒe v ni dosegljiva iz s, najkraj²a pot od s do v ne obstaja. Pokaºimo ²e, da algoritem vrne true. Po koncu zanke (S), za vse to ke v V velja: d[v] = δ(s, v) δ(s, u) + c(u, v) = d[u] + c(u, v), torej algoritem ne vrne false v nobeni ponovitvi zadnje zanke. 2. del: Naj bo G = (V, E) uteºen, c : E(G) R, usmerjen graf z izvorom s. Trdimo, da e graf G vsebuje negativen cikel, dosegljiv iz s, potem algoritem vrne false. Naj bo C = v o, v 1,..., v k, kjer je v 0 = v k, negativen cikel, dosegljiv iz s. Potem velja: c(v i 1, v i ) < 0. Dokaºimo trditev s protislovjem. Naj Bellman-Fordov algoritem vrne true. Torej velja za i = 1,..., k. Neena be se²tejemo in dobimo d[v i ] d[v i ] d[v i 1 ] + c(v i 1, v i ), (d[v i 1 ] + c(v i 1, v i )) = d[v i 1 ] + c(v i 1, v i ). Ker je v 0 = v k, je k d[v i] = k d[v i 1], in ker so vsi d[v i ], i = 1,..., k, kon ni (to ke na ciklu so dosegljive iz s), je tudi njihova vsota kon na. Torej velja: c(v i 1, v i ) 0 in smo pri²li v protislovje s predpostavko, da Bellman-Fordov algoritem vrne true. ƒasovna zahtevnost: Bellman-Fordovega algoritma je O( V E ). Zanka (R) porabi O( V ) operacij in primerjanje (zadnja zanka) porabi O( E ) operacij. Ostale operacije opravimo v konstantnem asu. Opomba. Ta algoritem je najhitrej²i znan algoritem za splo²ne grafe, ki problem re²i v polinomskem asu. Poznan pa ni noben algoritem, ki bi v polinomskem asu na²el najkraj²e poti tako, da bi se izognil negativnim ciklom. Algoritem ne deluje pravilno za neusmerjene grafe z negativnimi uteºmi. 3

2.1 Primer Uporaba Bellman-Fordovega algoritma. V tabeli d in prednik pi²emo samo spremembe (nesmiselno je pisati vsak korak, saj je teh ( V 1) E, v na²em primeru 40). Ob strani je ²e seznam vseh povezav z njihovimi uteºmi. Ko izvajamo algoritem, si izberemo vrstni red, v katerem pregledujemo povezave, in jih primernokrat pregledamo (mi moramo to storiti ²tirikrat). Ob povezavah je ozna eno, ali posamezni korak algoritma povzro i spremembo ( ) ali ne ( ). tabela d 0 6 11 7 2 2 4 2..... 0 2 4 7 2 tabela prednik / / / / / s t s t x y t..... / x y s t seznam povezav st 6 sy 7 tx 5 ty 8 tz 4 yx 3 yz 9. xt 2 zx 7 zs 2 Kot lahko vidimo iz desne tabele, po zadnji spremembi tabel d in prednik (ta se je zgodila, ko smo drugi "pregledali" povezavo tz) ni bilo do ponovnega "pregleda" povezave tz nobene spremembe ve, zato lahko algoritem (pred asno) zaklju imo. ƒe povezav ne bi imeli na nek na in urejenih in bi jih izbirali naklju no (vsako samo enkrat v eni ponovitvi zanke (za i)), bi morali pregledati ²e vse ostale povezave, tukaj vemo, da ne bo ve nobene spremembe. Opomba. Iz tabele prednik je videti, da tudi ko pride do spremembe, prednik to ke lahko ostane isti. To se zgodi, ker smo med dvema "pregledoma" te povezave popravili vrednost v tabeli d, ki ustreza predniku. Algoritem vrne true, saj za vsaki to ki u in v velja d[v] d[u] + c(uv). Uporaba Bellman-Fordovega algoritma na grafu z negativnim ciklom, dosegljivim iz izvorne to ke. Graf je enak kot prej, le uteºem na povezavah tx in xt smo dali nasprotni predznak (tako nastane negativen cikel s teºo 3). 4

tabela d 0 6 1 7 2 3 0 2 1 2 3 5 4 5 6 8 5 7 5 6 8 5 7 tabela prednik / / / / / s t s t x x t t z x t t z x t s t z x t s t seznam povezav st 6 sy 7 tx 5 ty 8 tz 4 yx 3 yz 9 xt +2 zx 7 zs 2 Algoritem tokrat vrne vrednost false, saj je npr. 3 = d[y] > d[t] + c(ty) = 8 + 8 = 0. ƒe si izberemo neko to ko v grafu (npr. s) in potujemo po njenih prednikih, prej ko slej pridemo do negativnega cikla. Tokrat smo algoritem morali dokon ati (opraviti vse ²tiri preglede). Po dolo enem ²tevilu korakov se za nejo vrednosti v d za vse to ke niºati za 3 (kolikor je teºa cikla). ƒe bi postopek nadaljevali (ne bi se ustavili pri ²tirih ponovitvah zanke (za i)), bi dobili poljubno majhne vrednosti v d. 3 Floyd-Warshallov algoritem S Floyd-Warshallovim algoritmom i² emo najkraj²e poti med vsemi pari to k. Deluje za uteºene grafe brez negativnih ciklov. Deniramo: d (k) ij := dolºina najkraj²e poti od i do j, katere notranje to ke so vsebovane v {1, 2,..., k}. ( V ) Pri tem smo to ke grafa ozna ili z 1, 2,..., V (G). I² emo d ij. Velja naslednja rekurzivna zveza: { d (k) cij = c(ij) za k = 0, ij = min{d (k 1) ij, d (k 1) ik + d (k 1) kj } za k 1, kjer je c ii = 0, c ij = za ij / E(G). 5

Algoritem: Floyd-Warshallov algoritem V uteºenem grafu G s poljubnimi uteºmi c najdi najkraj²e poti med vsemi pari to k. Uteºi so podane v matriki C; e med to kama ni povezave, uteº (element matrike) postavimo na. floyd_warshall(g) D (0) = C za k = 1 do V (G) za i = 1 do V (G) //po vrsticah za j = 1 do V (G) //po stolpcih d (k) ij = min{d (k 1) ij, d (k 1) ik + d (k 1) kj } Zahtevnost: asovna: O( V 3 ) prostorska: pri ra unanju k-te matrike je dovolj poznati le (k 1)-vo matriko D. Pravzaprav lahko sproti popravljamo vrednosti v za etni matriki; pri tem potrebujemo ²e nekaj dodatnega prostora. Torej je prostorska zahtevnost O( V 2 ). ƒe je v grafu G kak negativen cikel in je l to ka na tem ciklu, potem se po nekaj ponovitvah zanke (za k) na diagonali matrike (na mestu, ki ustreza to ki l) pojavi negativno ²tevilo ( e ne prej, se to zgodi po zadnji ponovitvi zanke). Negativni pa so lahko tudi nekateri drugi diagonalni elementi (za tiste to ke, iz katerih je dosegljiv negativen cikel). Torej lahko uporabljamo Floyd-Warshallov algoritem za odkrivanje negativnih ciklov. Opomba. Tudi ta algoritem je primeren za neusmerjene grafe, vendar le v primeru, e so vse uteºi nenegativne. Literatura [1] Bojan Moºina, Najkraj²e poti in algoritem Bellman-Ford. [2] B. H. Korte in J. Vygen, Combinatorial optimization: theory and algorithms, 3. izdaja, Berlin, Heidelberg, New York: Springer 2006. [3] T. H. Cormen, C. E. Leiserson, R. L. Rivest in C. Stein, Introduction to algorithms, 2. izdaja, Cambridge, London, Boston: McGraw-Hill, 2001. [4] http://links.math.rpi.edu/applets/appindex/graphtheory.html [5] http://lrv.fri.uni-lj.si/~bojank/diplome/jozica_stensak/dijkstra.html 6