private int CountTargetStatesOfCid(NestedMarkovDecisionProcess nmdp, long cid) { var targetStatesCount = 0; Action <NestedMarkovDecisionProcess.ContinuationGraphElement> counter = cge => { if (cge.IsChoiceTypeUnsplitOrFinal) { targetStatesCount++; } }; var traverser = nmdp.GetTreeTraverser(cid); traverser.ApplyActionWithStackBasedAlgorithm(counter); return(targetStatesCount); }
private double SumProbabilitiesOfCid(NestedMarkovDecisionProcess nmdp, long cid) { var probabilties = 0.0; Action <NestedMarkovDecisionProcess.ContinuationGraphElement> counter = cge => { if (cge.IsChoiceTypeUnsplitOrFinal) { var cgl = cge.AsLeaf; var probability = cgl.Probability; probabilties += probability; } }; var traverser = nmdp.GetTreeTraverser(cid); traverser.ApplyActionWithStackBasedAlgorithm(counter); return(probabilties); }
private int CountTargetStatesOfState(NestedMarkovDecisionProcess nmdp, int state) { var cidRoot = nmdp.GetRootContinuationGraphLocationOfState(state); return(CountTargetStatesOfCid(nmdp, cidRoot)); }
private double SumProbabilitiesOfState(NestedMarkovDecisionProcess nmdp, int state) { var cidRoot = nmdp.GetRootContinuationGraphLocationOfState(state); return(SumProbabilitiesOfCid(nmdp, cidRoot)); }