Dijkstra algoritmusa egy hatékony módszert ad irányított élsúlyozott gráfban legkisebb súlyú út keresésére egy adott pontból az összes többibe.
Az Dijkstra.py fájlban megadtunk egy programot, ami tartalmaz egy példa gráfot.
A gráf tárolásáról a az Graph osztály gondoskodik. Ez a graph objektum-változóban, egy NumPy tömbben tárolja el a gráf adjacencia mátrixát. Ennek az \([i,j]\)-edik eleme az \(i\)-ből \(j\)-be futó él súlya, illetve 0 ha nincs él \(i\)-ből \(j\)-be.
A feladat Dijkstra algoritmusának leprogramozása a Graph osztály dijkstra függvényébe. Ez paraméterként kapja forrás csúcs sorszámát. Visszatérési értéke egy tömb legyen, aminek \(j\)-edik eleme a forrásból \(j\)-be futó legkisebb súlyú út súlya. Ha szükséges, további segédfüggvényeket is hozzáadhatunk az osztályhoz.
A forrás csúcsot a programnak parancssorban adjuk meg, pl. így:
python3 Dijkstra.py 4ha a 4-es csúcsból induló utakra vagyunk kíváncsiak. A futás után a program kilistázza a legrövidebb út súlyát minden csúcsra.