Beispiel #1
0
        private static IAgent Agent(IReadOnlyDictionary <string, string> parameters, Options options)
        {
            IHeuristic heuristic = new WorstCaseNumberOfPlaysToGo();

            if (parameters.ContainsKey("heuristic"))
            {
                heuristic = options.Heuristics[parameters["heuristic"]].CreateHeuristic(parameters);
            }
            return(options.Agents[parameters["agent"]].CreateAgent(heuristic, parameters));
        }
        public void ShouldReturnCheapestPlayWithDepthZero()
        {
            var heuristic            = new WorstCaseNumberOfPlaysToGo();
            var agent                = new ExpectMaxAgent(0, heuristic);
            var state                = TestUtilities.GenerateTestState();
            var root                 = new RootNode(state);
            var expectedCheapestCost = root.Expand().Select(child => heuristic.Evaluate(child.State)).Min();
            var play                 = agent.FormulatePlay(state);
            var cheapestState        = state.Successor(play);
            var observedCheapestCost = heuristic.Evaluate(cheapestState);

            Assert.AreEqual(expectedCheapestCost, observedCheapestCost);
        }