Dijkstra algoritmus (abban az esetben, a nem-negatív súlyozó mátrix)

A leghatékonyabb algoritmus a probléma megoldásának a legrövidebb (s-t) -path eredetileg adta Dijkstra. Ez a módszer azon alapul hozzárendelése Tempmarks csúcsok és a csúcsok a védjegy ad a felső határ az út hossza s erre csúcs. Értékek jelek fokozatosan csökkentjük egy iteratív eljárások, valamint az egyes iterációs lépésben egy Tempmarks állandóvá válik. Az utóbbi azt jelenti, hogy a címke nem egy felső korlát, és adja meg a pontos hossza a legrövidebb út s a vertex kérdéses.

Leírás Dijkstra-algoritmus:

1. lépés, és hogy ezt a maradandó nyomot. Tedd az összes ezeket a megjegyzéseket, és megvizsgálja az ideiglenes. Tedd.

2. lépés: Az összes. címkézés, amely az idő változása átfedések összhangban a következő kifejezést:

3. lépéssel összes csúcs időben jelek találni egyet, ami.

4. lépés: Olvasd el a felső jel, és tegye állandó.

1. Ha. ez a hossza a legrövidebb utat. Ha. A 2. lépés (abban az esetben, a keresési út s-t.)

2. Ha az összes csúcsot van jelölve állandó, ezek a megjegyzések a legrövidebb útvonal hosszát. Ha néhány jelek átmeneti ugorjon a 2. lépésre (abban az esetben a keresési útvonalakat s az összes többi csúcs).

, Az utak maguk alkalmazásával lehet előállítani egy rekurzív eljárás alkalmazásával az arány (1,2), amint a hossza a legrövidebb utak s-ből találhatók. Mivel a vertex közvetlenül megelőző tetején a legrövidebb út s-ből. Ezután minden egyes vertex megfelelő vertex megtalálhatók, mint az egyik a megmaradt csúcsok, amelyre

Ha a legrövidebb út s-ből bármely csúcspont az egyetlen, az ív a legrövidebb út, hogy egy irányított fa gyökere s. Ha több „legrövidebb” útvonalakat s bármely más vertex, majd egy bizonyos rögzített aránya a felső (2) teljesül, több mint egy csúcsot. Ebben az esetben, a választás lehet random (ha szükség van néhány egy legrövidebb út van s), vagy úgy, hogy foglalkozik az összes ív. szerepel semmilyen legrövidebb utak, és ahol a készlet minden ívek nem képeznek orientált fa, és a teljes száma, az úgynevezett bázis képest s.

Tekintsük a gráf G, ábrán látható. 1.1, ahol minden irányítatlan éle tekintik egy pár egymással szemben orientált azonos tömegű ívek. Súlyozó tényező mátrix C az alábbiakban.

Azt akarom, hogy megtalálja a legrövidebb útvonalakat vertex az összes többi csúcsot. Állandó jelöléssel kell ellátni a + jel, a fennmaradó jegyzetek tekinthető átmenetinek.

5. lépés: A 2. lépés.

2. lépés - Nem minden jegyeit, így akkor következik (1.1) megkapjuk

5. lépés: Az összes csúcs állandó jeleket. Vége az algoritmus. Marks kapott algoritmus ábrán látható. 1.2 (c).

Találunk a legrövidebb utat a csúcspont és a kezdő csúcs. szekvenciálisan (1.2). Így feltételezve. Mi található a tetején. közvetlenül megelőző legrövidebb utat a. vertex kell felelniük a kapcsolat

Csak egy csúcs. Majd alkalmazzuk a második idő arány (1.2), figyelembe; Kapunk tetején. közvetlenül megelőző legrövidebb utat a. Vertex kielégíti

Csak egy csúcs, ezért a legrövidebb utat enni.

- adatbázis, amely minden legrövidebb útvonalakat. Ez egy fa látható vastag vonal látható. 1.2 (c).

Ábra. 1.2. (A) A jelek végén az 1. iteráció. (B) végét jelöli a 2. lépést a 2. iteráció. (C) a végső csúcsok és - bázis.