Class FloydWarshall

java.lang.Object
  extended byMatrix
      extended byAdjazenzmatrix
          extended byFloydWarshall

public class FloydWarshall
extends Adjazenzmatrix

Diese Klasse dient zur Ermittlung der kürzesten Wege zwischen allen Knoten. Als Datenbasis wird die Adjazenzmatrix (Elternklasse) genutzt. Den Algorithmus kann man im Step Modus ablaufen lassen, oder man hat die Möglichkeit diesen einmal durchlaufen zu lasse. Grundvorraussetzung für die Matrizendarstellung ist, dass die Knoten fortlaufend nummeriert sind.


Constructor Summary
FloydWarshall()
          Konstruktor, der die Werte initialisiert.
FloydWarshall(Adjazenzliste al)
          Konstruktor, der den Inhalt der Adjazenzliste in die Adjazenzmatrix übernimmt.
 
Method Summary
 int getCompareCounter()
          Gibt die Anzahl der Vergleiche zurück, die bislang im Algorithmus benötigt wurden.
 Node getLastInspectedNode()
          Gibt den zuletzt untersuchten Knoten zurück.
 Matrix getPredecessorMatrix()
          Zurückgabe der Vorgängermatrix.
 long getUsedTime()
          Gibt die Zeit in Millisekunden zurück, die der Algorithmus in dem letzen Lauf gebraucht hat.
 boolean reachedEnd()
          Prüfung, ob das Ende des Algorithmus erreicht ist.
 void setAdjazenzmatrix(Adjazenzliste al)
          Setzen der Adjazenzmatrix anhand der Adjazenzliste.
 java.util.Vector shortestPath(GraphNode start, GraphNode end, Adjazenzliste al)
          Startet den Algorithmus, für die Berechnung eines kürzesten Weges von dem Knoten start nach end (beides Objekte der Klasse GraphNode).
 java.util.Vector shortestPath(Node start, Node end, Adjazenzliste al)
          Startet den Algorithmus, für die Berechnung eines kürzesten Weges von dem Knoten start nach end (beides Objekte der Klasse Node).
 java.util.Vector startShortestPathStepModus(GraphNode start, GraphNode end, Adjazenzliste al)
          Startet den Algorithmus, für die Berechnung eines kürzesten Weges von dem Knoten start nach end (beides Objekte der Klasse GraphNode) im Step Modus.
 java.util.Vector startShortestPathStepModus(Node start, Node end, Adjazenzliste al)
          Startet den Algorithmus, für die Berechnung eines kürzesten Weges von dem Knoten start nach end (beides Objekte der Klasse Node) im Step Modus.
 java.util.Vector stepShortestPath()
          Einen Algorithmusschritt ausführen.
 
Methods inherited from class Adjazenzmatrix
init, main
 
Methods inherited from class Matrix
getColumns, getMatrix, getRows, getValue, init, setDimension, setValue, toString, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

FloydWarshall

public FloydWarshall()
Konstruktor, der die Werte initialisiert.


FloydWarshall

public FloydWarshall(Adjazenzliste al)
Konstruktor, der den Inhalt der Adjazenzliste in die Adjazenzmatrix übernimmt.

Method Detail

setAdjazenzmatrix

public void setAdjazenzmatrix(Adjazenzliste al)
Setzen der Adjazenzmatrix anhand der Adjazenzliste.

Overrides:
setAdjazenzmatrix in class Adjazenzmatrix

shortestPath

public java.util.Vector shortestPath(GraphNode start,
                                     GraphNode end,
                                     Adjazenzliste al)
Startet den Algorithmus, für die Berechnung eines kürzesten Weges von dem Knoten start nach end (beides Objekte der Klasse GraphNode). Dabei dürfen die Knoten start und end auch null sein, da der Algorithmus die kürzesten Wege zwischen allen Knoten ermittelt.


shortestPath

public java.util.Vector shortestPath(Node start,
                                     Node end,
                                     Adjazenzliste al)
Startet den Algorithmus, für die Berechnung eines kürzesten Weges von dem Knoten start nach end (beides Objekte der Klasse Node). Dabei dürfen die Knoten start und end auch null sein, da der Algorithmus die kürzesten Wege zwischen allen Knoten ermittelt.


startShortestPathStepModus

public java.util.Vector startShortestPathStepModus(GraphNode start,
                                                   GraphNode end,
                                                   Adjazenzliste al)
Startet den Algorithmus, für die Berechnung eines kürzesten Weges von dem Knoten start nach end (beides Objekte der Klasse GraphNode) im Step Modus. Dabei dürfen die Knoten start und end auch null sein, da der Algorithmus die kürzesten Wege zwischen allen Knoten ermittelt.


startShortestPathStepModus

public java.util.Vector startShortestPathStepModus(Node start,
                                                   Node end,
                                                   Adjazenzliste al)
Startet den Algorithmus, für die Berechnung eines kürzesten Weges von dem Knoten start nach end (beides Objekte der Klasse Node) im Step Modus. Dabei dürfen die Knoten start und end auch null sein, da der Algorithmus die kürzesten Wege zwischen allen Knoten ermittelt.


getLastInspectedNode

public Node getLastInspectedNode()
Gibt den zuletzt untersuchten Knoten zurück.


getUsedTime

public long getUsedTime()
Gibt die Zeit in Millisekunden zurück, die der Algorithmus in dem letzen Lauf gebraucht hat.


getCompareCounter

public int getCompareCounter()
Gibt die Anzahl der Vergleiche zurück, die bislang im Algorithmus benötigt wurden. Nach einem einzelnen Algorithmusschritt werden diese aufsummiert. Bei einem Neustart des Algorithmus wird der Zähler wieder auf 0 gestetzt.


getPredecessorMatrix

public Matrix getPredecessorMatrix()
Zurückgabe der Vorgängermatrix.


reachedEnd

public boolean reachedEnd()
Prüfung, ob das Ende des Algorithmus erreicht ist.


stepShortestPath

public java.util.Vector stepShortestPath()
Einen Algorithmusschritt ausführen. Zuvor muss jedoch der Algorithmus gestartet worden sein.