Package aima.core.environment.vacuum

Source Code of aima.core.environment.vacuum.SimpleReflexVacuumAgent

package aima.core.environment.vacuum;

import java.util.LinkedHashSet;
import java.util.Set;

import aima.core.agent.impl.AbstractAgent;
import aima.core.agent.impl.aprog.SimpleReflexAgentProgram;
import aima.core.agent.impl.aprog.simplerule.EQUALCondition;
import aima.core.agent.impl.aprog.simplerule.Rule;

/**
* @author Ciaran O'Reilly
*
*/
public class SimpleReflexVacuumAgent extends AbstractAgent {

  public SimpleReflexVacuumAgent() {
    super(new SimpleReflexAgentProgram(getRuleSet()));
  }

  //
  // PRIVATE METHODS
  //
  private static Set<Rule> getRuleSet() {
    // Note: Using a LinkedHashSet so that the iteration order (i.e. implied
    // precedence) of rules can be guaranteed.
    Set<Rule> rules = new LinkedHashSet<Rule>();

    // Rules based on REFLEX-VACUUM-AGENT:
    // Artificial Intelligence A Modern Approach (3rd Edition): Figure 2.8,
    // page 48.

    rules.add(new Rule(new EQUALCondition(LocalVacuumEnvironmentPercept.ATTRIBUTE_STATE,
        VacuumEnvironment.LocationState.Dirty),
        VacuumEnvironment.ACTION_SUCK));
    rules.add(new Rule(new EQUALCondition(
        LocalVacuumEnvironmentPercept.ATTRIBUTE_AGENT_LOCATION,
        VacuumEnvironment.LOCATION_A),
        VacuumEnvironment.ACTION_MOVE_RIGHT));
    rules.add(new Rule(new EQUALCondition(
        LocalVacuumEnvironmentPercept.ATTRIBUTE_AGENT_LOCATION,
        VacuumEnvironment.LOCATION_B),
        VacuumEnvironment.ACTION_MOVE_LEFT));

    return rules;
  }
}
TOP

Related Classes of aima.core.environment.vacuum.SimpleReflexVacuumAgent

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.