Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

A Floyd-Warshall algoritmus

Hasonló előadás


Az előadások a következő témára: "A Floyd-Warshall algoritmus"— Előadás másolata:

1 A Floyd-Warshall algoritmus

2 Célja Egy adott élsúlyozott negatív összköltségű irányított kört nem tartalmazó véges G gráf - amely lehet irányított vagy irányítás nélküli - összes csúcspárjára megtalálni a legrövidebb (legkisebb költségű) utat, azaz a gráf minden u, v V csúcspárjára keressük az u-ból v-be vezető legkisebb súlyú utat, ahol az út súlya az úthoz tartozó élek súlyának összege.

3 Konvenciók Az utak hosszán az út mentén szereplő élek költségeinek összegét értjük. A csúcspárok távolságán a csúcspár közötti utak közül az egyik legrövidebb út hosszát értjük. Vegyünk egy V={1,2,…,n} csúcsokból álló csúcshalmazt valamint a G gráf C szomszédsági mátrixát, ezen felül pedig még egy üres n n-es D mátrixot is használunk. Def.: p = <v1, v2,…., vm> egyszerű út belső csúcsán p út minden v1-től és vm-től különböző csúcsát értjük. ×

4 Az algoritmus alapja A feladat megoldását n iteráció után kapjuk meg, melyben folyamatosan fenntartjuk a következő invariánst: k-adik iteráció után minden (i, j) csúcspárra D(k)[i,j] azon i ~>j utak közül a legrövidebb utat tartalmazza, amelynek belső csúcsai k-nál nem nagyobb sorszámúak. Az utolsó iteráció után (k=n eset) minden (i, j) csúcspárra D(n)[i,j] az i ~> j utak közül a legrövidebbet tartalmazza, azaz a feladat megoldva.

5 Struktogram csúcsmátrixos ábrázolással
Floyd(D,G) D[1..n,1..n]:=C[1..n,1..n] For k:=1 to n For j:=1 to n D[i,j]:= min{D[i,j], D[i,k] +D[k,j]

6 Példa: 1 4 -2 3 2 3 -1 2 k=n=4: 4 2 -1 k=0: 3 4 2 -2 1 3 k=1: 4 -2 2 3


Letölteni ppt "A Floyd-Warshall algoritmus"

Hasonló előadás


Google Hirdetések