Browse Source

Bug fixes in explicit expected reward on embedded DTMCs from CTMCs.

git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@3134 bbc10eb1-c90d-0410-af57-cb519fbb1720
master
Dave Parker 15 years ago
parent
commit
6166413a20
  1. 2
      prism/src/explicit/CTMCModelChecker.java
  2. 2
      prism/src/explicit/ConstructModel.java
  3. 3
      prism/src/explicit/DTMCEmbeddedSimple.java

2
prism/src/explicit/CTMCModelChecker.java

@ -373,7 +373,7 @@ public class CTMCModelChecker extends DTMCModelChecker
n = dtmc.getNumStates(); n = dtmc.getNumStates();
MCRewardsStateArray rewEmb = new MCRewardsStateArray(n); MCRewardsStateArray rewEmb = new MCRewardsStateArray(n);
for (i = 0; i < n; i++) { for (i = 0; i < n; i++) {
rewEmb.setStateReward(i, mcRewards.getStateReward(i) * ((CTMC) dtmc).getExitRate(i));
rewEmb.setStateReward(i, mcRewards.getStateReward(i) / ((CTMC) dtmc).getExitRate(i));
} }
// Do computation on DTMC // Do computation on DTMC
return super.computeReachRewards(dtmcEmb, rewEmb, target); return super.computeReachRewards(dtmcEmb, rewEmb, target);

2
prism/src/explicit/ConstructModel.java

@ -106,7 +106,7 @@ public class ConstructModel
boolean fixdl = false; boolean fixdl = false;
// For now, don't use sparse (so can use actions) (TODO: fix) // For now, don't use sparse (so can use actions) (TODO: fix)
buildSparse = false;
//buildSparse = false;
// Don't support multiple initial states // Don't support multiple initial states
if (modulesFile.getInitialStates() != null) { if (modulesFile.getInitialStates() != null) {

3
prism/src/explicit/DTMCEmbeddedSimple.java

@ -368,8 +368,8 @@ public class DTMCEmbeddedSimple implements DTMC
Distribution distr; Distribution distr;
distr = ctmc.getTransitions(s); distr = ctmc.getTransitions(s);
d = mcRewards.getStateReward(s);
er = exitRates[s]; er = exitRates[s];
d = 0;
// Exit rate 0: prob 1 self-loop // Exit rate 0: prob 1 self-loop
if (er == 0) { if (er == 0) {
d += vect[s]; d += vect[s];
@ -383,6 +383,7 @@ public class DTMCEmbeddedSimple implements DTMC
} }
d /= er; d /= er;
} }
d += mcRewards.getStateReward(s);
return d; return d;
} }

Loading…
Cancel
Save