Class YenKShortestPaths
java.lang.Object
org.unibl.etf.pj2.app.pathfinding.yen.YenKShortestPaths
Klasa rukovatelj Jenovim algoritmom za K najkracih putanja izmedju dva zadata cvora usmjerenog grafa.
Jenov algoritam koristi Dajkstrin algoritam za najkracu putanju izmedju dva cvora kao podalgoritam
kojim otkriva K najkracih putanja.
- Author:
- Nikola Markovic
-
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionYenKShortestPaths(org.graphstream.graph.Graph graph, String source, String target) -
Method Summary
Modifier and TypeMethodDescriptionbuildAdjacencyMap(org.graphstream.graph.Graph graph) Metoda koja kreira listu susjednosti (u obliku mape) cvorova polaznog GraphStream grafa.private PathObjectImplementacija Dajkstrinog podalgoritma kao driver algoritma za Jenov.private doublefindEdgeCost(String from, String to) Metoda za brzi pronalazak tezine izmedju dva cvora.yen(int K) Glavna metoda Jenovog algoritma ciji rezultat se dalje primjenjuje.
-
Field Details
-
adjacency
-
source
-
target
-
-
Constructor Details
-
YenKShortestPaths
-
-
Method Details
-
buildAdjacencyMap
Metoda koja kreira listu susjednosti (u obliku mape) cvorova polaznog GraphStream grafa.- Parameters:
graph- Graf objekat- Returns:
HashMapobjekat sa Stringovima kao kljucevima i listomGraphEdgeobjekata kao vrijednostima
-
dijkstra
Implementacija Dajkstrinog podalgoritma kao driver algoritma za Jenov. Implementacija koristi prioritetni red umjesto nizova kako bi se postigla veca efikasnost za ogromne grafove.- Parameters:
start- Pocetni cvorbannedNodes- Skup ID-jeva zabranjenih (ranije navedenih kao nevalidnih) cvorovabannedEdges- Skup ID-jeva zabranjenih (ranije navedenih kao nevalidnih) grana- Returns:
PathObjectobjekat koji reprezentuje datu optimalnu putanju
-
yen
Glavna metoda Jenovog algoritma ciji rezultat se dalje primjenjuje.- Parameters:
K- Broj najoptimalnijih putanji koje zelimo kao rezultat izvrsavanja algoritma- Returns:
- Lista od tacno
KPathObjectobjekata koji reprezentujuKnajoptimalnijih putanji izmedju dva zadana cvora.
-
findEdgeCost
Metoda za brzi pronalazak tezine izmedju dva cvora.- Parameters:
from- ID cvora polaskato- ID cvora dolaska- Returns:
- U zavisnosti od uspjesnosti:
[tezina]- veza izmedjufromitopostojiDouble.POSITIVE_INFINITY- veza izmedjufromitone postoji (sa odgovarajucim usmjerenjem)
-