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. 34
      prism/src/explicit/CTMC.java

34
prism/src/explicit/CTMC.java

@ -26,6 +26,8 @@
package explicit;
import java.util.Map;
import prism.ModelType;
/**
@ -35,10 +37,34 @@ public class CTMC extends DTMC
{
// Model type
public static ModelType modelType = ModelType.CTMC;
// Uniformisation rate used to build CTMC/CTMDP
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.
* @param unif: Unifomisation rate
@ -53,7 +79,7 @@ public class CTMC extends DTMC
}
this.unif = unif;
}
/**
* Uniformise with an appropriate rate.
*/
@ -61,7 +87,7 @@ public class CTMC extends DTMC
{
uniformise(1.02 * maxExitRate());
}
/**
* Compute the maximum exit rate.
*/

Loading…
Cancel
Save