Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        private int CountTargetStatesOfState(NestedMarkovDecisionProcess nmdp, int state)
        {
            var cidRoot = nmdp.GetRootContinuationGraphLocationOfState(state);

            return(CountTargetStatesOfCid(nmdp, cidRoot));
        }
Ejemplo n.º 4
0
        private double SumProbabilitiesOfState(NestedMarkovDecisionProcess nmdp, int state)
        {
            var cidRoot = nmdp.GetRootContinuationGraphLocationOfState(state);

            return(SumProbabilitiesOfCid(nmdp, cidRoot));
        }