Пример #1
0
            public AStarNode(AStarNode previousNode, VacuumAgent.VacuumAction action)
            {
                _action = action;
                _state  = new CustomEnvState(previousNode._state, action);
                /// Calcul du cout associe a ce noeud
                /// Le cout pour atteindre ce noeud est donnee par le coup des actions precedente
                _costToRechNode = previousNode._costToRechNode;
                if (previousNode._action == VacuumAgent.VacuumAction.GrabClean)
                {
                    /// On ajoute 1 si l'action precedente est grab clean car cela represente deux actions
                    _costToRechNode += 2;
                }
                else
                {
                    _costToRechNode += 1;
                }

                _costToReachSolution = _costToRechNode + (action == VacuumAgent.VacuumAction.Clean ?  0 : (action == VacuumAgent.VacuumAction.GrabClean ? 1 : _state.EuclidianActionHeuristic()));
            }
Пример #2
0
 public BFSNode(CustomEnvState previousState, VacuumAgent.VacuumAction action)
 {
     _action = action;
     _state  = new CustomEnvState(previousState, action);
 }