Browse Source

Add support for -exporttarget to explicit engine.

git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@10111 bbc10eb1-c90d-0410-af57-cb519fbb1720
master
Dave Parker 11 years ago
parent
commit
fae4eb38d7
  1. 13
      prism/src/explicit/DTMCModelChecker.java
  2. 14
      prism/src/explicit/MDPModelChecker.java

13
prism/src/explicit/DTMCModelChecker.java

@ -27,6 +27,7 @@
package explicit;
import java.io.File;
import java.util.Arrays;
import java.util.BitSet;
import java.util.List;
import java.util.Map;
@ -438,6 +439,18 @@ public class DTMCModelChecker extends ProbModelChecker
target = targetNew;
}
// If required, export info about target states
if (getExportTarget()) {
BitSet bsInit = new BitSet(n);
for (i = 0; i < n; i++) {
bsInit.set(i, dtmc.isInitialState(i));
}
List<BitSet> labels = Arrays.asList(bsInit, target);
List<String> labelNames = Arrays.asList("init", "target");
mainLog.println("\nExporting target states info to file \"" + getExportTargetFilename() + "\"...");
exportLabels(dtmc, labels, labelNames, Prism.EXPORT_PLAIN, new PrismFileLog(getExportTargetFilename()));
}
// Precomputation
timerProb0 = System.currentTimeMillis();
if (precomp && prob0) {

14
prism/src/explicit/MDPModelChecker.java

@ -26,6 +26,7 @@
package explicit;
import java.util.Arrays;
import java.util.BitSet;
import java.util.Iterator;
import java.util.List;
@ -33,7 +34,6 @@ import java.util.Map;
import parser.VarList;
import parser.ast.Declaration;
import parser.ast.DeclarationInt;
import parser.ast.DeclarationIntUnbounded;
import parser.ast.Expression;
import prism.Prism;
@ -288,6 +288,18 @@ public class MDPModelChecker extends ProbModelChecker
}
}
// If required, export info about target states
if (getExportTarget()) {
BitSet bsInit = new BitSet(n);
for (i = 0; i < n; i++) {
bsInit.set(i, mdp.isInitialState(i));
}
List<BitSet> labels = Arrays.asList(bsInit, target);
List<String> labelNames = Arrays.asList("init", "target");
mainLog.println("\nExporting target states info to file \"" + getExportTargetFilename() + "\"...");
exportLabels(mdp, labels, labelNames, Prism.EXPORT_PLAIN, new PrismFileLog(getExportTargetFilename()));
}
// If required, create/initialise strategy storage
// Set choices to -1, denoting unknown
// (except for target states, which are -2, denoting arbitrary)

Loading…
Cancel
Save