rails.algorithms
Class RevenueCalculator

java.lang.Object
  extended by rails.algorithms.RevenueCalculator
Direct Known Subclasses:
RevenueCalculatorMulti, RevenueCalculatorSimple

abstract class RevenueCalculator
extends java.lang.Object


Nested Class Summary
protected static class RevenueCalculator.Terminated
           
 
Field Summary
protected  boolean[][] bonusActiveForTrain
           
protected  int[] bonusRequiresVertices
           
protected  int[][] bonusTrainVertices
           
protected  int[] bonusValue
           
protected  boolean callDynamicModifiers
           
protected  int countEdges
           
protected  int countVisits
           
protected  int[][] currentBestRun
           
protected  int currentBestValue
           
protected  int[] edgeDistance
           
protected  boolean[] edgeGreedy
           
protected  int finalTrain
           
protected  int finalTrainSet
           
protected static org.apache.log4j.Logger log
           
protected  int[][] maxBonusRevenues
           
protected  int[] maxCumulatedTrainRevenues
           
protected  int[][] maxMajorRevenues
           
protected  int[][] maxMinorRevenues
           
protected  int nbBonuses
           
protected  int nbEdges
           
protected  int nbEdgesTravelled
           
protected  int nbEvaluations
           
protected  int nbPredictions
           
protected  int nbTrains
           
protected  int nbVertexes
           
protected  RevenueAdapter revenueAdapter
           
protected  int startTrain
           
protected  int startTrainSet
           
protected  int[] startVertexes
           
protected  int[] trainBonuses
           
protected  boolean[] trainBottomActive
           
protected  int[] trainCurrentValue
           
protected  boolean[] trainIgnoreMinors
           
protected  int[] trainMajors
           
protected  int[] trainMaxBonuses
           
protected  int[] trainMaxMajors
           
protected  int[] trainMaxMinors
           
protected  int[] trainMinors
           
protected  int[][] trainStack
           
protected  int[] trainStackPos
           
protected  int[] trainStartEdge
           
protected  boolean[][] trainVisited
           
protected  boolean useRevenuePrediction
           
protected  int[][] vertexBonusSets
           
protected  int[][] vertexEdges
           
protected  boolean[] vertexMajor
           
protected  boolean[] vertexMinor
           
protected  int[] vertexNbBonusSets
           
protected  int[] vertexNbNeighbors
           
protected  int[] vertexNbVisitSets
           
protected  int[][] vertexNeighbors
           
protected  boolean[] vertexSink
           
protected  int[][] vertexValueByTrain
           
protected  int[][] vertexVisitSets
           
 
Constructor Summary
RevenueCalculator(RevenueAdapter revenueAdapter, int nbVertexes, int nbEdges, int maxNeighbors, int maxVertexSets, int maxEdgeSets, int nbTrains, int nbBonuses)
           
 
Method Summary
(package private)  int calculateRevenue(int startTrain, int finalTrain)
           
protected  boolean encounterVertex(int trainId, int vertexId, boolean arrive)
           
protected  void evaluateResults()
           
protected  void finalizeVertex(int trainId, int vertexId)
           
(package private)  int[][] getCurrentRun()
           
(package private)  int getNumberOfEvaluations()
           
(package private)  int[][] getOptimalRun()
           
(package private)  java.lang.String getStatistics()
           
(package private)  void initialPredictionRuns(int startTrain, int finalTrain)
           
protected  boolean predictRevenues(int trainId)
           
protected abstract  void returnEdge(int edgeId)
           
protected abstract  void runBottom(int trainId)
           
protected abstract  void runTrain(int trainId)
           
(package private)  void setBonus(int id, int value, int[] vertices, boolean[] bonusForTrain)
           
(package private)  void setDynamicModifiers(boolean activate)
           
(package private)  void setEdge(int edgeId, boolean greedy, int distance)
           
(package private)  void setStartVertexes(int[] startVertexes)
           
(package private)  void setTrain(int id, int majors, int minors, boolean ignoreMinors)
           
(package private)  void setVertex(int id, boolean major, boolean minor, boolean sink)
           
(package private)  void setVertexNeighbors(int id, int[] neighbors, int[] edges)
           
(package private)  void setVertexValue(int vertexId, int trainId, int value)
           
(package private)  void setVisitSet(int[] vertices)
           
 java.lang.String toString()
           
protected  RevenueCalculator.Terminated trainTerminated(int trainId)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

nbVertexes

protected final int nbVertexes

nbTrains

protected final int nbTrains

nbEdges

protected final int nbEdges

nbBonuses

protected final int nbBonuses

vertexValueByTrain

protected final int[][] vertexValueByTrain

vertexMajor

protected final boolean[] vertexMajor

vertexMinor

protected final boolean[] vertexMinor

vertexSink

protected final boolean[] vertexSink

vertexNbNeighbors

protected final int[] vertexNbNeighbors

vertexNbVisitSets

protected final int[] vertexNbVisitSets

vertexNbBonusSets

protected final int[] vertexNbBonusSets

vertexNeighbors

protected final int[][] vertexNeighbors

vertexEdges

protected final int[][] vertexEdges

vertexVisitSets

protected final int[][] vertexVisitSets

vertexBonusSets

protected final int[][] vertexBonusSets

startVertexes

protected int[] startVertexes

edgeGreedy

protected final boolean[] edgeGreedy

edgeDistance

protected final int[] edgeDistance

trainMaxMajors

protected final int[] trainMaxMajors

trainMaxMinors

protected final int[] trainMaxMinors

trainMaxBonuses

protected final int[] trainMaxBonuses

trainIgnoreMinors

protected final boolean[] trainIgnoreMinors

trainCurrentValue

protected final int[] trainCurrentValue

trainMajors

protected final int[] trainMajors

trainMinors

protected final int[] trainMinors

trainBonuses

protected final int[] trainBonuses

trainVisited

protected final boolean[][] trainVisited

trainStack

protected final int[][] trainStack

trainStackPos

protected final int[] trainStackPos

trainBottomActive

protected final boolean[] trainBottomActive

trainStartEdge

protected final int[] trainStartEdge

bonusValue

protected final int[] bonusValue

bonusActiveForTrain

protected final boolean[][] bonusActiveForTrain

bonusRequiresVertices

protected final int[] bonusRequiresVertices

bonusTrainVertices

protected final int[][] bonusTrainVertices

startTrainSet

protected int startTrainSet

finalTrainSet

protected int finalTrainSet

startTrain

protected int startTrain

finalTrain

protected int finalTrain

useRevenuePrediction

protected boolean useRevenuePrediction

currentBestValue

protected int currentBestValue

currentBestRun

protected final int[][] currentBestRun

maxCumulatedTrainRevenues

protected int[] maxCumulatedTrainRevenues

maxMajorRevenues

protected int[][] maxMajorRevenues

maxMinorRevenues

protected int[][] maxMinorRevenues

maxBonusRevenues

protected int[][] maxBonusRevenues

countVisits

protected int countVisits

countEdges

protected int countEdges

nbEdgesTravelled

protected int nbEdgesTravelled

nbEvaluations

protected int nbEvaluations

nbPredictions

protected int nbPredictions

revenueAdapter

protected RevenueAdapter revenueAdapter

callDynamicModifiers

protected boolean callDynamicModifiers

log

protected static org.apache.log4j.Logger log
Constructor Detail

RevenueCalculator

public RevenueCalculator(RevenueAdapter revenueAdapter,
                         int nbVertexes,
                         int nbEdges,
                         int maxNeighbors,
                         int maxVertexSets,
                         int maxEdgeSets,
                         int nbTrains,
                         int nbBonuses)
Method Detail

setVertex

final void setVertex(int id,
                     boolean major,
                     boolean minor,
                     boolean sink)

setVertexValue

final void setVertexValue(int vertexId,
                          int trainId,
                          int value)

setVertexNeighbors

final void setVertexNeighbors(int id,
                              int[] neighbors,
                              int[] edges)

setStartVertexes

final void setStartVertexes(int[] startVertexes)

setEdge

void setEdge(int edgeId,
             boolean greedy,
             int distance)

setTrain

final void setTrain(int id,
                    int majors,
                    int minors,
                    boolean ignoreMinors)

setVisitSet

final void setVisitSet(int[] vertices)

setBonus

final void setBonus(int id,
                    int value,
                    int[] vertices,
                    boolean[] bonusForTrain)

setDynamicModifiers

final void setDynamicModifiers(boolean activate)

getOptimalRun

final int[][] getOptimalRun()

getCurrentRun

final int[][] getCurrentRun()

getNumberOfEvaluations

final int getNumberOfEvaluations()

getStatistics

final java.lang.String getStatistics()

initialPredictionRuns

final void initialPredictionRuns(int startTrain,
                                 int finalTrain)

calculateRevenue

final int calculateRevenue(int startTrain,
                           int finalTrain)

runTrain

protected abstract void runTrain(int trainId)

runBottom

protected abstract void runBottom(int trainId)

encounterVertex

protected final boolean encounterVertex(int trainId,
                                        int vertexId,
                                        boolean arrive)

returnEdge

protected abstract void returnEdge(int edgeId)

trainTerminated

protected final RevenueCalculator.Terminated trainTerminated(int trainId)

finalizeVertex

protected final void finalizeVertex(int trainId,
                                    int vertexId)

evaluateResults

protected final void evaluateResults()

predictRevenues

protected final boolean predictRevenues(int trainId)

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object