Пример #1
0
        public void SolveErratic2X2VacuumWorldWithDfs()
        {
            var initialState = new VacuumWorldState(2);

            initialState.MakeSquareDirty(1, 1);

            var problem  = new ErraticVacuumWorldSearchProblem();
            var solver   = new NonDeterministicDfsSearch <VacuumWorldState, VacuumWorldAction>(problem, initialState);
            var solution = solver.GetSolution();

            var       actionCounter = 0;
            const int actionLimit   = 1000;
            var       erraticWorld  = VacuumWorld.CreateErraticVacuumWorld(initialState);

            while (!problem.IsGoal(erraticWorld.State))
            {
                var action = solution.NextAction(erraticWorld.State);

                erraticWorld.DoAction(action);

                if (++actionCounter > actionLimit)
                {
                    Assert.Fail($"failed to reach goal after {actionCounter} actions");
                }
            }
        }
Пример #2
0
 public void Setup()
 {
     _initialState  = new VacuumWorldState(3);
     _searchProblem = new ErraticVacuumWorldSearchProblem();
 }