Browse Source

Method to build embedded DTMC.

git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@1543 bbc10eb1-c90d-0410-af57-cb519fbb1720
master
Dave Parker 17 years ago
parent
commit
24f7d04d70
  1. 26
      prism/src/explicit/CTMC.java

26
prism/src/explicit/CTMC.java

@ -26,6 +26,8 @@
package explicit; package explicit;
import java.util.Map;
import prism.ModelType; import prism.ModelType;
/** /**
@ -39,6 +41,30 @@ public class CTMC extends DTMC
// Uniformisation rate used to build CTMC/CTMDP // Uniformisation rate used to build CTMC/CTMDP
public double unif; public double unif;
/**
* Build the embedded DTMC for this CTMC
*/
public DTMC buildEmbeddedDTMC()
{
DTMC dtmc;
Distribution distr;
int i;
double d;
dtmc = new DTMC(numStates);
for (i = 0; i < numStates; i++) {
distr = trans.get(i);
d = distr.sum();
if (d == 0) {
dtmc.setProbability(i, i, 1.0);
} else {
for (Map.Entry<Integer, Double> e : distr) {
dtmc.setProbability(i, e.getKey(), e.getValue() / d);
}
}
}
return dtmc;
}
/** /**
* Uniformise. * Uniformise.
* @param unif: Unifomisation rate * @param unif: Unifomisation rate

Loading…
Cancel
Save