Class HillClimbAgent

All Implemented Interfaces:
Serializable, Cloneable

public class HillClimbAgent extends HeuristicAgent
Agente que implementa el comportamiento del algoritmo de escalada. Siempre intenta moverse al lugar que no ha visitado y que le acerque más al objetivo. En el peor de los casos hace un recorrido por todo el laberinto.
See Also:
Serialized Form
  • Constructor Details

    • HillClimbAgent

      public HillClimbAgent(Environment env)
      Crea el agente en el entorno indicado y con la distancia de Manhattan por defecto.
      Parameters:
      env - Entorno en el que se quiere colocar.
  • Method Details

    • setEnvironment

      public void setEnvironment(Environment env)
      Description copied from class: Agent
      Cambia el entorno en el que se sitúa el agente.

      Este método debería sobrecargarse en las clases derivadas que contengan información acerca del camino a seguir por el agente (un plan) de forma que éste siga siendo coherente tras el cambio de laberinto.
      Overrides:
      setEnvironment in class Agent
      Parameters:
      env - Entorno donde colocar el agente.
    • getAlgorithmName

      public String getAlgorithmName()
      Description copied from class: Agent
      Pregunta al agente el nombre del algoritmo que implementa.
      Specified by:
      getAlgorithmName in class Agent
      Returns:
      Nombre del algoritmo que implementa.
    • getAlgorithmColor

      public Color getAlgorithmColor()
      Description copied from class: Agent
      Pregunta al agente el color por defecto de los agentes de su tipo.
      Specified by:
      getAlgorithmColor in class Agent
      Returns:
      Color por defecto de los agentes que implementan ese algoritmo.
    • getNextMovement

      public Direction getNextMovement()
      Description copied from class: Agent
      Obtiene el siguiente movimiento dado el estado actual del agente.
      Specified by:
      getNextMovement in class Agent
      Returns:
      La dirección en la que el agente quiere realizar el siguiente movimiento.
    • doMovement

      public void doMovement(Direction dir)
      Description copied from class: Agent
      Hace que el agente realice el movimiento especificado, sin comprobar que se trata de un movimiento válido.

      La clase base sólo cambia la posición del agente, si se desea más funcionalidad, se debe sobrecargar en las clases derivadas.
      Overrides:
      doMovement in class Agent
      Parameters:
      dir - Dirección hacia la que mover el agente.
    • setPosition

      public void setPosition(Point pos)
      Description copied from class: Agent
      Establece la posición del agente.

      Este método se puede sobrecargar en las clases derivadas para mantener coherente la memoria de la que disponga el mismo.
      Overrides:
      setPosition in class Agent
      Parameters:
      pos - Nueva posición del agente.
    • resetMemory

      public void resetMemory()
      Description copied from class: Agent
      Elimina la memoria que el agente tenga sobre el entorno. No elimina su configuración, sino que lo deja en el estado inicial.
      Specified by:
      resetMemory in class Agent
    • getConfigurationPanel

      public AgentConfigurationPanel getConfigurationPanel()
      Description copied from class: Agent
      Obtiene el panel de configuración asociado al agente.
      Specified by:
      getConfigurationPanel in class Agent
      Returns:
      Un panel de configuración para el agente.
    • clone

      public Object clone()
      Specified by:
      clone in class Agent