Exemplo n.º 1
0
        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("}");
        }
Exemplo n.º 2
0
        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();
        }