public class MlgRevRouter extends java.lang.Object implements GradualRouter
Constructor and Description |
---|
MlgRevRouter() |
Modifier and Type | Method and Description |
---|---|
int |
expandNext()
Expandiert den naechsten Vertex in der PQ.
|
int[] |
findPath(Graph graph,
int sourceId,
int targetId,
float maxCost,
java.util.Properties params)
Traversiert den Graphen, bricht ab, sobald
der Ziel-Vertex besucht wurde und liefert den Path.
|
int[] |
findPath(OverlayGraph overlayGraph,
int sourceId,
int targetId,
float maxCost,
java.util.Properties params)
Traversiert den Graphen, bricht ab, sobald
der Ziel-Vertex besucht wurde und liefert den Path.
|
double |
getExpansion()
Liefert eine Kennzahl fuer die ungefaehre Ausdehnung
nach
GradualRouter.expandNext() . |
int[] |
getVisited()
Liefert eine Menge aller besuchten VertexIDs.
|
int[] |
getWgb() |
void |
init(Graph graph,
int sourceId,
int targetId,
float maxCost,
java.util.Properties params)
Initialisiert den Graphen, traversiert aber nicht!
|
boolean |
isVisited(int vertexId)
Liefert true, wenn sich ein Vertex nach der Traversierung
in der BlackList (ClosedList) befindet, also besucht
bzw. erreicht wurde.
|
int[] |
makePath(int toTargetId)
Erstellt den Pfad nach erfolgreichem
MultiPathRouter.traverse(Graph, int, int, float, Properties)
Dabei werden vom Ziel die Kanten rueckwaerts durchfahren,
die Reihenfolge umgedreht und vorwaers sortiert zurueckgeliefert. |
void |
reset()
Gibt Speicherresourcen frei.
|
void |
setLog(Log log)
Setzt einen optionalen Logger.
|
MlgRevRouter |
setReverse(boolean reverse) |
void |
traverse(Graph graph,
int sourceId,
int targetId,
float maxCost,
java.util.Properties params)
Traversiert den Graphen und bricht ab, sobald
der Ziel-Vertex besucht wurde oder die
maxCost ueberschritten wurde.
|
void |
traverse(OverlayGraph overlayGraph,
int sourceId,
int targetId,
float maxCost,
java.util.Properties params)
Traversiert den Graphen und bricht ab, sobald
der Ziel-Vertex besucht wurde oder die
maxCost ueberschritten wurde.
|
public void reset()
SingleTargetRouter
SingleTargetRouter.getVisited()
sind danach nicht mehr
moeglich und verursachen Fehler. Es muss dann erst wieder
SingleTargetRouter.findPath(Graph, int, int, float, Properties)
aufgerufen werden, um auf derartige Informationen
abzugreifen.reset
in interface SingleTargetRouter
public void setLog(Log log)
SingleTargetRouter
setLog
in interface SingleTargetRouter
log
- Log
public MlgRevRouter setReverse(boolean reverse)
public int[] findPath(Graph graph, int sourceId, int targetId, float maxCost, java.util.Properties params)
SingleTargetRouter
findPath
in interface SingleTargetRouter
graph
- Graph
sourceId
- Vertex Start IdtargetId
- Vertex Ziel IdmaxCost
- Maximal zulaessige Wegkosten. Abbruchkriterium.params
- Properties
weitere Einstellungen (NULLABLE).Edge
-Objekte
vom Start zum Ziel oder null, wenn nicht gefunden.public int[] findPath(OverlayGraph overlayGraph, int sourceId, int targetId, float maxCost, java.util.Properties params)
SingleTargetRouter
findPath
in interface SingleTargetRouter
overlayGraph
- OverlayGraph
sourceId
- Vertex Start IdtargetId
- Vertex Ziel IdmaxCost
- Maximal zulaessige Wegkosten. Abbruchkriterium.params
- Properties
weitere Einstellungen (NULLABLE).Edge
-Objekte
vom Start zum Ziel oder null, wenn nicht gefunden.public void traverse(Graph graph, int sourceId, int targetId, float maxCost, java.util.Properties params)
MultiPathRouter
traverse
in interface MultiPathRouter
graph
- Graph
sourceId
- Vertex Start IdtargetId
- Vertex Ziel IdmaxCost
- Maximal zulaessige Wegkosten. Abbruchkriterium.params
- Properties
weitere Einstellungen (NULLABLE).MultiPathRouter.makePath(int)
,
SingleTargetRouter.getVisited()
public void traverse(OverlayGraph overlayGraph, int sourceId, int targetId, float maxCost, java.util.Properties params)
MultiPathRouter
traverse
in interface MultiPathRouter
overlayGraph
- OverlayGraph
sourceId
- Vertex Start IdtargetId
- Vertex Ziel IdmaxCost
- Maximal zulaessige Wegkosten. Abbruchkriterium.params
- Properties
weitere Einstellungen (NULLABLE).MultiPathRouter.makePath(int)
,
SingleTargetRouter.getVisited()
public void init(Graph graph, int sourceId, int targetId, float maxCost, java.util.Properties params)
GradualRouter
init
in interface GradualRouter
graph
- Graph
der Graph.sourceId
- int StarttargetId
- int ZielmaxCost
- float Maximale Kosten. Abbruchkriterium.params
- Properties
weitere Parameter.public double getExpansion()
GradualRouter
GradualRouter.expandNext()
.getExpansion
in interface GradualRouter
public int[] getWgb()
getWgb
in interface GradualRouter
public int expandNext()
GradualRouter
expandNext
in interface GradualRouter
public final int[] makePath(int toTargetId)
MultiPathRouter
MultiPathRouter.traverse(Graph, int, int, float, Properties)
Dabei werden vom Ziel die Kanten rueckwaerts durchfahren,
die Reihenfolge umgedreht und vorwaers sortiert zurueckgeliefert.makePath
in interface MultiPathRouter
toTargetId
- Id des ZielVertex. Dies muss nicht zwangslaeufig
der Ziel-Knoten, sein. Es kann auch ein beliebiger Vertex aus
SingleTargetRouter.getVisited()
uebergeben werden, um so weitere Pfade zu finden.Edge
-Objekte
vom Start zum Ziel oder null, wenn kein Pfad vorhanden.public final int[] getVisited()
SingleTargetRouter
getVisited
in interface SingleTargetRouter
public final boolean isVisited(int vertexId)
MultiPathRouter
isVisited
in interface MultiPathRouter
vertexId
- int Id des Vertex > 0.