routing
Class Network

java.lang.Object
  |
  +--routing.Network

public class Network
extends java.lang.Object

Class representing a network.


Field Summary
protected  Edges edges
          Container für Kanten
protected  Nodes nodes
          Container für Knoten
 
Constructor Summary
Network()
          Constructor.
 
Method Summary
 PathEdge computeFastestWay(Node start, Node stop)
          Berechnet nach Dijkstra den schnellsten Weg von einem Start- zu einem Endknoten.
 PathEdge computeFastWay(Node start, Node stop)
          Berechnet einen schnellen Weg (oft den schnellsten) zwischen 2 Knoten.
 PathEdge computeFastWay2(Node start, Node stop)
          Berechnet einen schnellen Weg (oft den schnellsten) zwischen 2 Knoten.
 PathEdge computeFastWays(Node start, Node stop, int threshold)
          Berechnet die Wege zwischen 2 Knoten, die nicht um den angegebenen Prozentsatz schlechter sind als der kürzeste Weg.
protected  void computeNewConnection(BorderHeap border, Node start, Edge actEdge, Node stop, int wayMark, int threshold, double shortestDistance, PathEdge resPath)
          Berechnung der Verbindung zwischen zwei BEST-Knoten, die übergebenene Kante umfaßt.
protected  PathEdge computeResultPath(Node firstNode, boolean computeNWAY2)
          Berechnung des Ergebnispfad von einem Knoten ausgehend.
protected  PathEdge computeResultPath(Node actNode, int way, double distOfOtherWay)
          Berechnung des Ergebnispfad von einem Knoten ausgehend entlang eines Weges.
protected  PathEdge computeResultPathBackwards(Node firstNode, int way)
          Berechnung des Ergebnispfad von einem Knoten ausgehend entlang eines Weges.
 void createByNetworkFiles(java.io.DataInputStream nodeIn, java.io.DataInputStream edgeIn, DrawableObjects objects)
          Erzeugt Netzwerk aus Netzwerk-Dateien.
 boolean createByNetworkFiles(java.lang.String filename, DrawableObjects objects)
          Erzeugt Netzwerk aus Netzwerk-Dateien.
 void createByNetworkFiles(java.net.URL nodeURL, java.net.URL edgeURL, DrawableObjects objects)
          Erzeugt Netzwerk aus Netzwerk-Dateien.
protected  void enlargeBorder(BorderHeap border, Node start, Node stop, int way, boolean considerDistToDest)
          (Standard-)Erweiterung des Randes.
protected  void enlargeBorder(BorderHeap border, Node start, Node stop, int wayMark, int threshold, double shortestDistance, PathEdge resPath)
          Erweiterung des Randes.
 Edges getEdges()
          Gibt Kanten-Container zurück.
 Nodes getNodes()
          Gibt Knoten-Container zurück.
 void save(java.lang.String filename)
          Saves the network in network files.
 void saveAsText(java.lang.String filename)
          Saves the network in text files.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

nodes

protected Nodes nodes
Container für Knoten


edges

protected Edges edges
Container für Kanten

Constructor Detail

Network

public Network()
Constructor.

Method Detail

computeFastestWay

public PathEdge computeFastestWay(Node start,
                                  Node stop)
Berechnet nach Dijkstra den schnellsten Weg von einem Start- zu einem Endknoten.

Parameters:
start - Startknoten
stop - Stopknoten
Returns:
berechneter Weg

computeFastWay

public PathEdge computeFastWay(Node start,
                               Node stop)
Berechnet einen schnellen Weg (oft den schnellsten) zwischen 2 Knoten. Die Berechnung wird nur vom Startknoten aus durchgeführt.

Parameters:
start - Startknoten
stop - Stopknoten
Returns:
berechneter Weg

computeFastWay2

public PathEdge computeFastWay2(Node start,
                                Node stop)
Berechnet einen schnellen Weg (oft den schnellsten) zwischen 2 Knoten. Im Gegensatz zu computeFastWay wird die Berechnung von beiden Knoten gleichberechtigt durchgeführt.

Parameters:
start - Startknoten
stop - Stopknoten
Returns:
berechneter Weg

computeFastWays

public PathEdge computeFastWays(Node start,
                                Node stop,
                                int threshold)
Berechnet die Wege zwischen 2 Knoten, die nicht um den angegebenen Prozentsatz schlechter sind als der kürzeste Weg.
Einschränkungen:
- keine Zyklen
- keine Rückwege (kann evtl. auch ungünstige Querverbindungen treffen

Parameters:
start - Startknoten
stop - Stopknoten
threshold - Prozentsatz, um den ein Weg schlechter sein darf
Returns:
berechneter Weg

computeNewConnection

protected void computeNewConnection(BorderHeap border,
                                    Node start,
                                    Edge actEdge,
                                    Node stop,
                                    int wayMark,
                                    int threshold,
                                    double shortestDistance,
                                    PathEdge resPath)
Berechnung der Verbindung zwischen zwei BEST-Knoten, die übergebenene Kante umfaßt. Die Entfernung zum Zielknoten wird in den Rand-Elementen abgelegt.

Parameters:
border - Rand gemäß Dijkstra als Heap
start - Anfangsknoten von actEdge
actEdge - aktuelle Kante
stop - Zielknoten des Routings
wayMark - Index des betrachteten Wegs (WAY1 oder WAY2)
threshold - Prozentsatz, um den Wege länger sein dürfen als der kürzester Weg
shortestDistance - Länge des kürzesten Weges
resPath - Ergebnispfad mit allen bislang berechneter Wege

computeResultPath

protected PathEdge computeResultPath(Node actNode,
                                     int way,
                                     double distOfOtherWay)
Berechnung des Ergebnispfad von einem Knoten ausgehend entlang eines Weges. Dabei wird der Pfad in der Normalrichtung abgelaufen. Die Distanzen des anderen Weges werden an den Pfadknoten gesetzt und diese mit BEST markiert.

Parameters:
actNode - Aufgangsknoten
way - Index des gewünschten Weges
distOfOtherWay - Distanz des anderen Weges bei actNode
Returns:
berechneter Pfad

computeResultPath

protected PathEdge computeResultPath(Node firstNode,
                                     boolean computeNWAY2)
Berechnung des Ergebnispfad von einem Knoten ausgehend. Ggf. wird neben dem NWAY1-Weg auch der NWAY2-Weg hinzugefügt. Dabei wird der Pfad jeweils in der Normalrichtung abgelaufen. Die Distanzen des jeweils anderen Weges werden an den Pfadknoten gesetzt und diese mit BEST markiert.

Parameters:
firstNode - Ausgangsknoten
Returns:
berechneter Pfad

computeResultPathBackwards

protected PathEdge computeResultPathBackwards(Node firstNode,
                                              int way)
Berechnung des Ergebnispfad von einem Knoten ausgehend entlang eines Weges. Dabei wird der Pfad entgegen der Normalrichtung abgelaufen. Die Distanzen beider Wege werden an den Pfadknoten gesetzt und diese mit BEST markiert.

Parameters:
way - Index des gewünschten Weges
Returns:
berechneter Pfad

createByNetworkFiles

public void createByNetworkFiles(java.io.DataInputStream nodeIn,
                                 java.io.DataInputStream edgeIn,
                                 DrawableObjects objects)
Erzeugt Netzwerk aus Netzwerk-Dateien.

Parameters:
nodeIn - DataInputStream für Knoten
edgeIn - DataInputStream für Kanten
objects - Container für drawable objects

createByNetworkFiles

public boolean createByNetworkFiles(java.lang.String filename,
                                    DrawableObjects objects)
Erzeugt Netzwerk aus Netzwerk-Dateien.

Parameters:
filename - Basiname der Dateien
objects - Container für drawable objects
Returns:
erfolgreich?

createByNetworkFiles

public void createByNetworkFiles(java.net.URL nodeURL,
                                 java.net.URL edgeURL,
                                 DrawableObjects objects)
Erzeugt Netzwerk aus Netzwerk-Dateien.

Parameters:
nodeURL - URL der Knoten-Datei
edgeURL - URL der Kanten-Datei
objects - Container für drawable objects

enlargeBorder

protected void enlargeBorder(BorderHeap border,
                             Node start,
                             Node stop,
                             int wayMark,
                             int threshold,
                             double shortestDistance,
                             PathEdge resPath)
Erweiterung des Randes. Diese Version der Methode unterstützt die Berechnung von Verbindungen, für den Fall, daß die Erweiterung auf einen FINAL- oder BEST-Knoten trifft. Die Entfernung zum Zielknoten wird grundsätzlich in den Rand-Elementen abgelegt.

Parameters:
border - Rand gemäß Dijkstra als Heap
start - aktueller Knoten
stop - Zielknoten
wayMark - Index des betrachteten Wegs (WAY1 oder WAY2)
threshold - Prozentsatz, um den Wege länger sein dürfen als der kürzester Weg
shortestDistance - Länge des kürzesten Weges
resPath - Ergebnispfad mit allen bislang berechneter Wege

enlargeBorder

protected void enlargeBorder(BorderHeap border,
                             Node start,
                             Node stop,
                             int way,
                             boolean considerDistToDest)
(Standard-)Erweiterung des Randes.

Parameters:
border - Rand gemäß Dijkstra als Heap
start - Startknoten
stop - Zielknoten
way - betrachteter Weg
considerDistToDest - Soll die Entfernung zum Zielknoten berücksichtigt werden?

getEdges

public Edges getEdges()
Gibt Kanten-Container zurück.

Returns:
Kanten-Container

getNodes

public Nodes getNodes()
Gibt Knoten-Container zurück.

Returns:
Knoten-Container

save

public void save(java.lang.String filename)
Saves the network in network files.

Parameters:
filename - path and basic name of the files

saveAsText

public void saveAsText(java.lang.String filename)
Saves the network in text files.

Parameters:
filename - path and basic name of the files