Browse Source

fixed computation of lost probability to take into account probability mass intentionally destroyed

git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@9138 bbc10eb1-c90d-0410-af57-cb519fbb1720
master
Ernst Moritz Hahn 11 years ago
parent
commit
33a7f2c9e8
  1. 7
      prism/src/explicit/FastAdaptiveUniformisation.java

7
prism/src/explicit/FastAdaptiveUniformisation.java

@ -77,7 +77,7 @@ import prism.Model;
/** /**
* Implementation of fast adaptive uniformisation (FAU). * Implementation of fast adaptive uniformisation (FAU).
*/ */
public class FastAdaptiveUniformisation extends PrismComponent
public final class FastAdaptiveUniformisation extends PrismComponent
{ {
/** /**
* Stores properties of states needed for fast adaptive method. * Stores properties of states needed for fast adaptive method.
@ -457,6 +457,8 @@ public class FastAdaptiveUniformisation extends PrismComponent
private AnalysisType analysisType; private AnalysisType analysisType;
/** total loss of probability in discrete-time process */ /** total loss of probability in discrete-time process */
private double totalProbLoss; private double totalProbLoss;
/** probability mass intentionally set to zero */
private double totalProbSetZero;
/** /**
* Constructor. * Constructor.
@ -1096,6 +1098,8 @@ public class FastAdaptiveUniformisation extends PrismComponent
for (StateProp prop : states.values()) { for (StateProp prop : states.values()) {
totalProb += prop.getSum(); totalProb += prop.getSum();
} }
totalProb += totalProbSetZero;
totalProbLoss = 1.0 - totalProb; totalProbLoss = 1.0 - totalProb;
} }
@ -1123,6 +1127,7 @@ public class FastAdaptiveUniformisation extends PrismComponent
Expression evSink = sink.deepCopy(); Expression evSink = sink.deepCopy();
evSink = (Expression) evSink.expandLabels(specialLabels); evSink = (Expression) evSink.expandLabels(specialLabels);
if (evSink.evaluateBoolean(constantValues, state)) { if (evSink.evaluateBoolean(constantValues, state)) {
totalProbSetZero += prop.getProb();
prop.setProb(0.0); prop.setProb(0.0);
} }
} }

Loading…
Cancel
Save