Browse Source

Slight refactoring of strategy storage in explicit engine (to match PRISM-games).

git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@10910 bbc10eb1-c90d-0410-af57-cb519fbb1720
master
Dave Parker 10 years ago
parent
commit
fb37c9a22d
  1. 13
      prism/src/explicit/ProbModelChecker.java

13
prism/src/explicit/ProbModelChecker.java

@ -681,6 +681,7 @@ public class ProbModelChecker extends NonProbModelChecker
default: default:
throw new PrismNotSupportedException("Cannot model check " + expr + " for " + model.getModelType() + "s"); throw new PrismNotSupportedException("Cannot model check " + expr + " for " + model.getModelType() + "s");
} }
result.setStrategy(res.strat);
return StateValues.createFromDoubleArray(res.soln, model); return StateValues.createFromDoubleArray(res.soln, model);
} }
@ -722,7 +723,6 @@ public class ProbModelChecker extends NonProbModelChecker
if (windowSize == null) { if (windowSize == null) {
// unbounded // unbounded
ModelCheckerResult res = null; ModelCheckerResult res = null;
switch (model.getModelType()) { switch (model.getModelType()) {
case DTMC: case DTMC:
res = ((DTMCModelChecker) this).computeUntilProbs((DTMC) model, remain, target); res = ((DTMCModelChecker) this).computeUntilProbs((DTMC) model, remain, target);
@ -736,7 +736,7 @@ public class ProbModelChecker extends NonProbModelChecker
default: default:
throw new PrismException("Cannot model check " + expr + " for " + model.getModelType() + "s"); throw new PrismException("Cannot model check " + expr + " for " + model.getModelType() + "s");
} }
result.setStrategy(res.strat);
sv = StateValues.createFromDoubleArray(res.soln, model); sv = StateValues.createFromDoubleArray(res.soln, model);
} else if (windowSize == 0) { } else if (windowSize == 0) {
// A trivial case: windowSize=0 (prob is 1 in target states, 0 otherwise) // A trivial case: windowSize=0 (prob is 1 in target states, 0 otherwise)
@ -758,6 +758,7 @@ public class ProbModelChecker extends NonProbModelChecker
default: default:
throw new PrismNotSupportedException("Cannot model check " + expr + " for " + model.getModelType() + "s"); throw new PrismNotSupportedException("Cannot model check " + expr + " for " + model.getModelType() + "s");
} }
result.setStrategy(res.strat);
sv = StateValues.createFromDoubleArray(res.soln, model); sv = StateValues.createFromDoubleArray(res.soln, model);
} }
@ -808,7 +809,6 @@ public class ProbModelChecker extends NonProbModelChecker
break; break;
case MDP: case MDP:
res = ((MDPModelChecker) this).computeUntilProbs((MDP) model, remain, target, minMax.isMin()); res = ((MDPModelChecker) this).computeUntilProbs((MDP) model, remain, target, minMax.isMin());
result.setStrategy(res.strat);
break; break;
case STPG: case STPG:
res = ((STPGModelChecker) this).computeUntilProbs((STPG) model, remain, target, minMax.isMin1(), minMax.isMin2()); res = ((STPGModelChecker) this).computeUntilProbs((STPG) model, remain, target, minMax.isMin1(), minMax.isMin2());
@ -816,6 +816,7 @@ public class ProbModelChecker extends NonProbModelChecker
default: default:
throw new PrismNotSupportedException("Cannot model check " + expr + " for " + model.getModelType() + "s"); throw new PrismNotSupportedException("Cannot model check " + expr + " for " + model.getModelType() + "s");
} }
result.setStrategy(res.strat);
return StateValues.createFromDoubleArray(res.soln, model); return StateValues.createFromDoubleArray(res.soln, model);
} }
@ -948,6 +949,7 @@ public class ProbModelChecker extends NonProbModelChecker
throw new PrismNotSupportedException("Explicit engine does not yet handle the " + expr.getOperatorSymbol() + " reward operator for " + model.getModelType() throw new PrismNotSupportedException("Explicit engine does not yet handle the " + expr.getOperatorSymbol() + " reward operator for " + model.getModelType()
+ "s"); + "s");
} }
result.setStrategy(res.strat);
return StateValues.createFromDoubleArray(res.soln, model); return StateValues.createFromDoubleArray(res.soln, model);
} }
@ -993,12 +995,12 @@ public class ProbModelChecker extends NonProbModelChecker
break; break;
case MDP: case MDP:
res = ((MDPModelChecker) this).computeCumulativeRewards((MDP) model, (MDPRewards) modelRewards, timeInt, minMax.isMin()); res = ((MDPModelChecker) this).computeCumulativeRewards((MDP) model, (MDPRewards) modelRewards, timeInt, minMax.isMin());
result.setStrategy(res.strat);
break; break;
default: default:
throw new PrismNotSupportedException("Explicit engine does not yet handle the " + expr.getOperatorSymbol() + " reward operator for " + model.getModelType() throw new PrismNotSupportedException("Explicit engine does not yet handle the " + expr.getOperatorSymbol() + " reward operator for " + model.getModelType()
+ "s"); + "s");
} }
result.setStrategy(res.strat);
return StateValues.createFromDoubleArray(res.soln, model); return StateValues.createFromDoubleArray(res.soln, model);
} }
@ -1026,6 +1028,7 @@ public class ProbModelChecker extends NonProbModelChecker
throw new PrismNotSupportedException("Explicit engine does not yet handle the " + expr.getOperatorSymbol() + " reward operator for " + model.getModelType() throw new PrismNotSupportedException("Explicit engine does not yet handle the " + expr.getOperatorSymbol() + " reward operator for " + model.getModelType()
+ "s"); + "s");
} }
result.setStrategy(res.strat);
return StateValues.createFromDoubleArray(res.soln, model); return StateValues.createFromDoubleArray(res.soln, model);
} }
@ -1067,7 +1070,6 @@ public class ProbModelChecker extends NonProbModelChecker
break; break;
case MDP: case MDP:
res = ((MDPModelChecker) this).computeReachRewards((MDP) model, (MDPRewards) modelRewards, target, minMax.isMin()); res = ((MDPModelChecker) this).computeReachRewards((MDP) model, (MDPRewards) modelRewards, target, minMax.isMin());
result.setStrategy(res.strat);
break; break;
case STPG: case STPG:
res = ((STPGModelChecker) this).computeReachRewards((STPG) model, (STPGRewards) modelRewards, target, minMax.isMin1(), minMax.isMin2()); res = ((STPGModelChecker) this).computeReachRewards((STPG) model, (STPGRewards) modelRewards, target, minMax.isMin1(), minMax.isMin2());
@ -1076,6 +1078,7 @@ public class ProbModelChecker extends NonProbModelChecker
throw new PrismNotSupportedException("Explicit engine does not yet handle the " + expr.getOperatorSymbol() + " reward operator for " + model.getModelType() throw new PrismNotSupportedException("Explicit engine does not yet handle the " + expr.getOperatorSymbol() + " reward operator for " + model.getModelType()
+ "s"); + "s");
} }
result.setStrategy(res.strat);
return StateValues.createFromDoubleArray(res.soln, model); return StateValues.createFromDoubleArray(res.soln, model);
} }

Loading…
Cancel
Save