public static void ExportToGv(this NestedMarkovDecisionProcess nmdp, TextWriter sb) { sb.WriteLine("digraph S {"); //sb.WriteLine("size = \"8,5\""); sb.WriteLine("node [shape=box];"); var initialStateName = "initialState"; sb.WriteLine($" {initialStateName} [shape=point,width=0.0,height=0.0,label=\"\"];"); var initialCid = nmdp.GetRootContinuationGraphLocationOfInitialState(); ExportCid(nmdp, sb, initialStateName, false, initialCid); for (var state = 0; state < nmdp.States; state++) { sb.Write($" {state} [label=\"{state}\\n("); for (int i = 0; i < nmdp.StateFormulaLabels.Length; i++) { if (i > 0) { sb.Write(","); } sb.Write(nmdp.StateLabeling[state][i]); } sb.WriteLine(")\"];"); var cid = nmdp.GetRootContinuationGraphLocationOfState(state); var fromNode = state.ToString(); ExportCid(nmdp, sb, fromNode, false, cid); } sb.WriteLine("}"); }
public void ConvertInitialTransitions() { var cidOfStateRoot = _nmdp.GetRootContinuationGraphLocationOfInitialState(); Clear(cidOfStateRoot); _ltmdpContinuationDistributionMapper.AddInitialDistributionAndContinuation(cidOfStateRoot); UpdateContinuationDistributionMapperAndCollectLeafs(cidOfStateRoot); MarkovDecisionProcess.StartWithInitialDistributions(); var numberOfDistributions = _ltmdpContinuationDistributionMapper.GetNumbersOfDistributions(); for (var distribution = 0; distribution < numberOfDistributions; distribution++) { AddInitialDistribution(distribution); } MarkovDecisionProcess.FinishInitialDistributions(); }