stasichase.ki
Class Markov

java.lang.Object
  |
  +--java.lang.Thread
        |
        +--stasichase.ki.Markov

public class Markov
extends Thread

Alle Matrizen werden in dieser Klasse gespeichert. Die Initialisierung erfolgt in KITools sobald dieser die (kodierte) Adjazenzmatrix vom Matrix bekommen hat. Ein Marov-Objekt wird dann erzeugt damit der Initialisierungsthread gestartet werden kann.

Author:
KI-gruppe

Field Summary
static int anzStationen
          Dimension der Matrizen.
static int[][] kodierteMatrix
          Kodierte Adjazenzmatrix die vom Spielplan gegeben wird.
static int[][] matrixTBU
          Adjazenzmatrix des TBU-Graphs (Taxi-Bus-UBahn).
static float[][][] TBU
          Markovsmatrizen des TBU-Graphs.
 
Fields inherited from class java.lang.Thread
contextClassLoader, daemon, eetop, group, inheritedAccessControlContext, MAX_PRIORITY, MIN_PRIORITY, name, NORM_PRIORITY, priority, single_step, stillborn, stopThreadPermission, target, threadInitNumber, threadQ, values
 
Constructor Summary
Markov(int[][] kodierteMatrix)
          Bei der Erzeugung des (einzigen) Markovobjekt in KITools wird die kodierte Adjazenzmatrix übergeben.
 
Method Summary
private static float[][] adjToMarkov(int[][] matrix)
          Berechnet aus der Adjazenzmatrix die Übergangsmatrix des Graphs (bei gleichmäßige Kantengewichtung).
private  void decodeMatrix()
          Hier soll die kodierte Matrix entschlüsselt werden.
static float[][] matrixMult(float[][] matrix1, float[][] matrix2)
          Matrizenmultiplikation.
static float[] matrixVektorMult(float[][] matrix, float[] vektor)
          Multiplikation Matrix mal Vektor.
 void run()
          Initialisierung und Berechnung der Matrizen sollen nebenläufig erfolgen.
 
Methods inherited from class java.lang.Thread
, activeCount, checkAccess, countStackFrames, currentThread, destroy, dumpStack, enumerate, exit, getContextClassLoader, getName, getPriority, getThreadGroup, init, interrupt, interrupt0, interrupted, isAlive, isDaemon, isInterrupted, isInterrupted, join, join, join, nextThreadNum, registerNatives, resume, resume0, setContextClassLoader, setDaemon, setName, setPriority, setPriority0, sleep, sleep, start, stop, stop, stop0, suspend, suspend0, toString, yield
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

kodierteMatrix

public static int[][] kodierteMatrix
Kodierte Adjazenzmatrix die vom Spielplan gegeben wird.

anzStationen

public static int anzStationen
Dimension der Matrizen.

matrixTBU

public static int[][] matrixTBU
Adjazenzmatrix des TBU-Graphs (Taxi-Bus-UBahn).

TBU

public static float[][][] TBU
Markovsmatrizen des TBU-Graphs. Der Eintrag TBU[z][i][j] gibt die Wahrscheinlichkeit an, daß man vom Knoten j zum Knoten i in z Zügen übergeht. Die Matrix TBU[1] ist die Übergangsmatrix des Graphen. Die Matrix TBU[k] ist die k-te Potenz der Matrix TBU[1]. (Der Eintrag TBU[0] wird nicht berücksichtigt.)
Constructor Detail

Markov

public Markov(int[][] kodierteMatrix)
Bei der Erzeugung des (einzigen) Markovobjekt in KITools wird die kodierte Adjazenzmatrix übergeben. Anschließend wird mit markov.start() die Initialisierung gestartet und diese erfolgt nebenläufig.
Parameters:
kodierteMatrix - Adjazenzmatrix mit der Kodierung des Spielplans
Method Detail

run

public void run()
Initialisierung und Berechnung der Matrizen sollen nebenläufig erfolgen.
Overrides:
run in class Thread

decodeMatrix

private void decodeMatrix()
Hier soll die kodierte Matrix entschlüsselt werden. Bisher nur die TBU-Matrix.

adjToMarkov

private static float[][] adjToMarkov(int[][] matrix)
Berechnet aus der Adjazenzmatrix die Übergangsmatrix des Graphs (bei gleichmäßige Kantengewichtung).
Parameters:
matrix - Adjazenzmatrix des Graphs.
Returns:
Übergangsmatrix des Graphs.

matrixMult

public static float[][] matrixMult(float[][] matrix1,
                                   float[][] matrix2)
Matrizenmultiplikation. (Dimensionen müssen passen!)
Parameters:
matrix1 - Matrix der Dimension nxm
matrix2 - Matrix der Dimension mxp
Returns:
Produkt matrix1 * matrix2 (Dimension: nxp)

matrixVektorMult

public static float[] matrixVektorMult(float[][] matrix,
                                       float[] vektor)
Multiplikation Matrix mal Vektor. (Dimensionen müssen passen!)
Parameters:
matrix - Matrix als nxm-Array
vektor - Vektor als Array der Länge m
Returns:
Vektor als Array der Länge n