/** * Compute the min/max probability, from the initial state, of reaching a set of target locations. */ private double computeProbabilisticReachability(BitSet targetLocs, boolean min) throws PrismException { // Determine which method to use for computation String ptaMethod = prism.getSettings().getString(PrismSettings.PRISM_PTA_METHOD); // Do probability computation through abstraction/refinement/stochastic games if (ptaMethod.equals("Stochastic games")) { PTAAbstractRefine ptaAR; ptaAR = new PTAAbstractRefine(); String arOptions = prism.getSettings().getString(PrismSettings.PRISM_AR_OPTIONS); ptaAR.setLog(mainLog); ptaAR.parseOptions(arOptions.split(",")); return ptaAR.forwardsReachAbstractRefine(pta, targetLocs, null, min); } // Do probability computation by first constructing a bisimulation else if (ptaMethod.equals("Bisimulation minimisation")) { // Not supported yet throw new PrismException("Not yet supported"); } else throw new PrismException("Unknown PTA solution method"); }