Browse Source

Remove un-needed code.

git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@5387 bbc10eb1-c90d-0410-af57-cb519fbb1720
master
Dave Parker 14 years ago
parent
commit
1bd8b1c658
  1. 108
      prism/src/simulator/PathFull.java

108
prism/src/simulator/PathFull.java

@ -28,14 +28,11 @@ package simulator;
import java.util.ArrayList;
import org.jfree.data.xy.XYDataItem;
import parser.State;
import parser.ast.ModulesFile;
import prism.PrismException;
import prism.PrismLog;
import userinterface.graph.Graph;
import userinterface.graph.Graph.SeriesKey;
/**
* Stores and manipulates a path though a model.
@ -50,12 +47,12 @@ public class PathFull extends Path implements PathFullInfo
private boolean continuousTime;
// Model info/stats
private int numRewardStructs;
// The path, i.e. list of states, etc.
private ArrayList<Step> steps;
// The path length (just for convenience; equal to steps.size() - 1)
private int size;
// Loop detector for path
protected LoopDetector loopDet;
@ -113,7 +110,8 @@ public class PathFull extends Path implements PathFullInfo
}
@Override
public void addStep(double time, int choice, int moduleOrActionIndex, double[] transitionRewards, State newState, double[] newStateRewards, TransitionList transitionList)
public void addStep(double time, int choice, int moduleOrActionIndex, double[] transitionRewards, State newState, double[] newStateRewards,
TransitionList transitionList)
{
Step stepOld, stepNew;
// Add info to last existing step
@ -145,7 +143,7 @@ public class PathFull extends Path implements PathFullInfo
}
// MUTATORS (additional)
/**
* Backtrack to a particular step within the current path.
* @param step The step of the path to backtrack to (step >= 0)
@ -169,7 +167,7 @@ public class PathFull extends Path implements PathFullInfo
// Update loop detector
loopDet.backtrack(this);
}
/**
* Remove the prefix of the current path up to the given path step.
* Index step should be >=0 and <= the total path size.
@ -179,7 +177,7 @@ public class PathFull extends Path implements PathFullInfo
{
int i, j, numKeep, sizeOld;
double timeCumul, rewardsCumul[];
// Ignore trivial case
if (step == 0)
return;
@ -207,7 +205,7 @@ public class PathFull extends Path implements PathFullInfo
// Update loop detector
loopDet.removePrecedingStates(this, step);
}
// ACCESSORS (for Path (and some of PathFullInfo))
@Override
@ -215,7 +213,7 @@ public class PathFull extends Path implements PathFullInfo
{
return continuousTime;
}
@Override
public int size()
{
@ -269,61 +267,61 @@ public class PathFull extends Path implements PathFullInfo
{
return steps.get(steps.size() - 1).rewardsCumul[rsi];
}
@Override
public double getPreviousStateReward(int rsi)
{
return steps.get(steps.size() - 2).stateRewards[rsi];
}
@Override
public double[] getPreviousStateRewards()
{
return steps.get(steps.size() - 2).stateRewards;
}
@Override
public double getPreviousTransitionReward(int rsi)
{
return steps.get(steps.size() - 2).transitionRewards[rsi];
}
@Override
public double[] getPreviousTransitionRewards()
{
return steps.get(steps.size() - 2).transitionRewards;
}
@Override
public double getCurrentStateReward(int rsi)
{
return steps.get(steps.size() - 1).stateRewards[rsi];
}
@Override
public double[] getCurrentStateRewards()
{
return steps.get(steps.size() - 1).stateRewards;
}
@Override
public boolean isLooping()
{
return loopDet.isLooping();
}
@Override
public int loopStart()
{
return loopDet.loopStart();
}
@Override
public int loopEnd()
{
return loopDet.loopEnd();
}
// ACCESSORS (for PathFullInfo)
/**
@ -441,33 +439,33 @@ public class PathFull extends Path implements PathFullInfo
{
return true;
}
@Override
public boolean hasChoiceInfo()
{
return true;
}
@Override
public boolean hasActionInfo()
{
return true;
}
@Override
public boolean hasTimeInfo()
{
return true;
}
@Override
public boolean hasLoopInfo()
{
return true;
}
// Other methods
/**
* Pass the path to a PathDisplayer object.
* @param displayer The PathDisplayer
@ -516,7 +514,7 @@ public class PathFull extends Path implements PathFullInfo
displayer.setVarsToShow(vars);
display(displayer);
}
/**
* Plot path on a graph.
* @param graphModel Graph on which to plot path
@ -555,6 +553,7 @@ public class PathFull extends Path implements PathFullInfo
moduleOrActionIndex = 0;
transitionRewards = new double[numRewardStructs];
}
// Current state (before transition)
public State state;
// State rewards for current state
@ -573,63 +572,16 @@ public class PathFull extends Path implements PathFullInfo
// Transition rewards associated with step
public double transitionRewards[];
}
class PlotOnGraphThread extends Thread
{
private Graph graphModel = null;
public PlotOnGraphThread(Graph graphModel)
{
this.graphModel = graphModel;
}
public void run()
{
int i, j, n, nv;
double d, t;
boolean contTime = modulesFile.getModelType().continuousTime();
SeriesKey seriesKeys[] = null;
// Configure axes
graphModel.getXAxisSettings().setHeading("Time");
graphModel.getYAxisSettings().setHeading("Value");
// Get sizes
n = size();
nv = modulesFile.getNumVars();
// Create series
seriesKeys = new SeriesKey[nv];
for (j = 0; j < nv; j++) {
seriesKeys[j] = graphModel.addSeries(modulesFile.getVarName(j));
}
// Plot path
t = 0.0;
for (i = 0; i <= n; i++) {
if (contTime) {
d = (i < n) ? getTime(i) : 0.0;
t += d;
}
for (j = 0; j < nv; j++) {
// Always plot first/last points to ensure complete line.
// Otherwise only add a point if the variable value changed.
if (i == 0 || i == n-1 || !PathFull.this.getState(i).varValues[j].equals(PathFull.this.getState(i - 1).varValues[j]))
graphModel.addPointToSeries(seriesKeys[j], new XYDataItem(contTime ? t : i, ((Integer) PathFull.this.getState(i).varValues[j]).intValue()));
}
}
}
}
class DisplayThread extends Thread
{
private PathDisplayer displayer = null;
public DisplayThread(PathDisplayer displayer)
{
this.displayer = displayer;
}
public void run()
{
try {

Loading…
Cancel
Save