public LabeledTransitionMarkovChain GenerateLabeledMarkovChain() { FormulaManager.Calculate(Configuration); var stateFormulasToCheckInBaseModel = FormulaManager.StateFormulasToCheckInBaseModel.ToArray(); var createModel = new AnalysisModelCreator(() => new LtmcRetraverseModel(_sourceLtmc, stateFormulasToCheckInBaseModel, Configuration)); Configuration.DefaultTraceOutput.WriteLine("Retraverse Model"); var labeledTransitionMarkovChain = GenerateLtmc(createModel); return(labeledTransitionMarkovChain); }
/// <summary> /// Generates a <see cref="MarkovDecisionProcess" /> for the model created by <paramref name="createModel" />. /// </summary> public LabeledTransitionMarkovDecisionProcess GenerateLabeledTransitionMarkovDecisionProcess() { Requires.That(IntPtr.Size == 8, "Model checking is only supported in 64bit processes."); ProbabilityMatrixCreationStarted = true; FormulaManager.Calculate(Configuration); var stateFormulasToCheckInBaseModel = FormulaManager.StateFormulasToCheckInBaseModel.ToArray(); ExecutedModel <TExecutableModel> model = null; var modelCreator = _runtimeModelCreator.CreateCoupledModelCreator(stateFormulasToCheckInBaseModel); Func <AnalysisModel> createAnalysisModelFunc = () => model = new LtmdpExecutedModel <TExecutableModel>(modelCreator, Configuration); var createAnalysisModel = new AnalysisModelCreator(createAnalysisModelFunc); var ltmdp = GenerateLtmdp(createAnalysisModel); return(ltmdp); }