Floyd-Warshallov algoritam u tropskoj geometriji
zlatko.erjavec@foi.hr, drago.kovacec@foi.hr
Tropska geometrija je relativno novo područje u matematici, a naziv "tropska geometrija" osmislili su francuski matematičari u čast brazilskom matematičaru Imre Simonu, pioniru u tom području. Stoga pridjev "tropska" nema neko posebno značenje osim asocijacije na Brazil kao tropsko područje.
Jednostavnost aritmetike tropske geometrije omogućila joj je brojne primjene od ekonomije preko biologije do računarstva. Više o primjenama može se naći u
U ovom članku pokazat ćemo na koji se način aritmetika tropske geometrije može primijeniti u rješavanju problema pronalaska najkraćeg puta. Bilo da govorimo o putu kamiona od skladišta do odredišta ili o najkraćem putu među serverima u računalnoj mreži, problem se svodi na nalaženje najkraćeg puta u težinskom grafu. Navedeni problem rješava Floyd-Warshallov algoritam.
Osnovna struktura tropske geometrije je tropski poluprsten, uređena trojka \left(\mathbb{R }\cup \, \lbrace \infty \rbrace , \ \oplus ,\ \odot \right) sastavljena od skupa realnih brojeva proširenog beskonačnošću te dvije međusobno usklađene operacije, tropskog zbrajanja i tropskog množenja (vidi
Suma dvaju brojeva u tropskoj aritmetici definira se kao minimum tih dvaju brojeva
Produkt dvaju brojeva u tropskoj aritmetici definira se kao uobičajen zbroj tih dvaju brojeva
Obje definirane računske operacije imaju neutralne elemente. Za tropsko zbrajanje neutralni element je beskonačno, dok je za tropsko množenje neutralni element nula
Također vrijedi,
Nadalje, obje operacije su komutativne i asocijativne te vrijedi distributivnost množenja u odnosu na zbrajanje.
\bullet |
Komutativnost
a \oplus b = b \oplus a \qquad \text{ i} \qquad a \odot b = b \odot a.
|
\bullet |
Asocijativnost
(a \oplus b) \oplus c = a \oplus (b \oplus c) \quad \text{ i} \quad (a \odot b) \odot c = a \odot (b \odot c).
|
\bullet |
Distributivnost
a \odot (b \oplus c) = a \odot b \oplus a \odot c.
|
Neka su x_{1}, x_{2}, \ldots x_{n} varijable koje predstavljaju elemente tropskog poluprstena. Monom se definira kao bilo koji produkt tih varijabli, pri čemu je mogućnost njihova ponavljanja dozvoljena.
Koristeći komutativnost i asocijativnost, možemo presložiti produkt i zapisati ga u uobičajenom obliku koristeći potencije, imajući na umu da x^{2} znači x \odot x, a ne x \cdot x. Npr.
Svakom monomu možemo pridružiti funkciju sa \mathbb{R}^{n} u \mathbb{R}. Kada bismo takvu funkciju evaluirali u klasičnoj aritmetici, dobili bismo linearnu funkciju:
Iako smo u primjeru koristili pozitivne eksponente, monomi su definirani i za cjelobrojne eksponente. Stoga, možemo zaključiti da su tropski monomi linearne funkcije s cjelobrojnim koeficijentima.
Tropski polinom je konačna linearna kombinacija tropskih monoma: p(x_{1}, x_{2}, \ldots x_{n})=a \odot x_{1}^{i_{1}} x_{2}^{i_{2}} \cdots x_{n}^{i_{n}} \oplus b \odot x_{1}^{j_{1}} x_{2}^{j_{2}} \cdots x_{n}^{j_{n}} \oplus \cdots
Primijetite da u tropskoj geometriji polinomi
imaju istu vrijednost. Dakle, prikaz neke funkcije u obliku tropskog polinoma nije jednoznačan.
Uslijed specifičnosti definicije množenja i nule kao neutralnog elementa, svi binomni koeficijenti tropskog polinoma jednaki su nuli (u Pascalovom trokutu su samo nule!). Posljedica navedenog je činjenica da u tropskoj geometriji za sve potencije binoma vrijedi tzv. "brucoški san".
Tropski skalarni produkt definira se analogno klasičnom matričnom produktu jednoretčane i jednostupčane matrice
Tropsko zbrajanje matrica definira se analogno klasičnom zbrajanju matrica, po elementima, korištenjem tropskog zbrajanja.
Tropsko množenje matrica definira se analogno klasičnom množenju matrica. Element produkta dviju matrica dobije se kao tropski skalarni produkt odgovarajućeg retka prve i odgovarajućeg stupca druge matrice.
Graf G se definira kao uređen par skupova G=(V, E) pri čemu je skup V skup vrhova, a skup E je skup bridova. Skupovi V i E su disjunktni, a svaki brid e \in E spaja dva vrha u, v \in V. Vrhovi u, v grafa G se još nazivaju krajevima brida e (vidi
Šetnja u grafu G je konačan niz incidentnih vrhova i bridova. Vrhovi i bridovi u šetnji ne moraju nužno biti i različiti.
Šetnja u kojoj su svi vrhovi i bridovi različiti zove se put. Primjer jednog puta u grafu sa Slike
Graf prikazan na Slici
Usmjereni brid zovemo lukom, a ukoliko se svi bridovi grafa orijentiraju (usmjere), tada graf zovemo usmjerenim grafom. Lukovima usmjerenog grafa moguće je prolaziti samo u smjeru orijentacije.
Pridružimo li svakom bridu nenegativan realan broj w(e), dobiveni graf naziva se težinski graf, a broj pridružen bridu e težina brida w(e).
Težinski graf kojem su svi bridovi usmjereni zovemo težinski usmjerenim grafom.
Težinu puta P u grafu G možemo definirati formulom
Drugim riječima, težina puta P u grafu G je zbroj težina svih bridova kojima se prolazi od početnog do završnog vrha puta P. Tako bi težina puta P = v_{1} \, e_{1}\, v_{2}\, e_{3} \, v_{4}\, e_{6}\, v_{5}\, e_{7}\, v_{6} u grafu sa Slike
Ukoliko nam je cilj što razumnije koristiti resurse, bilo da se radi o udaljenosti koju trebaju proći automobilom ili vremenu potrebnom za prijenos informacija, htjeli bismo da težina puta između dva vrha bude najmanja moguća. Problem pronalaska takvog puta zovemo problemom najkraćeg puta, a rješenje problema dano je algoritmom koji nazivamo Floyd-Warshallov algoritam.
Floyd-Warshallov algoritam je algoritam za pronalaženje najkraćeg puta između bilo koja dva povezana vrha u težinskom grafu.
Obzirom da se računanje svodi na uzastopne transformacije matrica, prednost ovog algoritma je što kod izvršavanja na računalu ne troši velike memorijske resurse.
U nastavku ćemo pojasniti korake algoritma. Odabere se prvi vrh te se redom izračunavaju udaljenosti od tog vrha do svih preostalih vrhova s kojima je on povezan. Ukoliko je promatrani vrh s nekim drugim vrhom povezan s više puteva, tada se za udaljenost između ta dva vrha uzima najmanja udaljenost između ta dva vrha. Ponavljanjem istog postupka za svaki od preostalih vrhova dobiju se najkraće udaljenosti između vrhova u grafu.
Pseudokod Floyd-Warshallovog algoritma
ulaz: Težinski graf G = (V, E), V = v_{1}, v_{2},\ldots, v_{n}
izlaz: Najkraće udaljenosti između svaka dva vrha u grafu G
(1) | Za i = 1, \ldots, n stavi d(i, i) = 0. Za i \ne j, ako je v_{i}v_{j} brid, stavi d(i, j) =w(v_{i}v_{j}), inače stavi d(i, j) = \infty. | ||||
(2) |
Za k = 1, \ldots, n
|
Kada bismo usporedili prikazani pseudokod s klasičnim, zaključili bismo da su samo uobičajene operacije minimuma i zbrajanja zamijenjene tropskim zbrajanjem i množenjem.
No snaga primjene tropske geometrije u ovom slučaju je puno veća. U nastavku ćemo pokazati da se traženje najkraćeg puta u težinskom grafu uz pomoć tropske geometrije svodi na tropsko množenje matrica.
Svakom težinskom grafu možemo pridružiti matricu susjedstva na sljedeći način
Također, za proizvoljnu kvadratnu matricu, u tropskoj se geometriji definira k-ta tropska potencija matrice kao tropski umnožak k matrica
Teorem 1. Neka je G težinski usmjeren graf s n vrhova i n \times n matricom susjedstva D. Tada je element matrice D^{\odot n-1} na poziciji (i,j) jednak duljini najkraćeg puta od vrha v_{i} do vrha v_{j}.
Neka je d_{ij}^{(1)} = d_{ij} za bilo koja dva vrha v_{i} i v_{j}. Pretpostavivši da su težine bridova nenegativne vrijednosti, najkraći put od v_{i} do v_{j} prolazi najviše jednom kroz svaki vrh u grafu G. Općenito, bilo koji najkraći put u težinski usmjerenom grafu G prelazi kroz najviše n-1 usmjerenih bridova. Otuda slijedi da je duljina najkraćeg puta od vrha v_{i} do vrha v_{j} jednaka d_{ij}^{(n-1)}.
Za r\geq 2 imamo sljedeću rekurzivnu formulu za duljinu najkraćeg puta
Korištenjem tropske aritmetike prethodna formula može se zapisati na sljedeći način
Iz navedenog proizlazi da se d_{ij}^{(r)} podudara sa elementom u i-tom retku i j-tom stupcu matrice D^{\odot r}. Očito je desna strana rekurzivne formula tropski produkt i-tog retka matrice D^{\odot r-1} i j-tog stupca matrice D. Indukcijom po r zaključujemo da se d_{ij}^{(n-1)} podudara s elementom u i-tom retku i j-tom stupcu matrice D^{\odot n-1}
Navedena matrica predstavlja rješenje problema i iz nje se mogu iščitati najkraće udaljenosti između bilo koja dva povezan vrha.
Slijedi da je d(v_{1},v_{2})=2, d(v_{1},v_{3})=3, d(v_{1},v_{4})=7, d(v_{1},v_{5})=8, d(v_{1},v_{6})=9, d(v_{2},v_{4})=5, d(v_{2},v_{5})=6, d(v_{2},v_{6})=7, d(v_{3},v_{6})=8, d(v_{4},v_{5})=2, d(v_{4},v_{6})=3 i d(v_{5},v_{6})=1.
Zamislimo li da je graf sa Slike
Izračunavanjem pete potencije matrice susjedstva \bar{D} možemo odrediti simetričnu matricu najkraćih putova težinski neusmjerenog analogona grafa sa Slike