Class TimeSteppedEnvironment

java.lang.Object
jason.environment.Environment
jason.environment.TimeSteppedEnvironment

public class TimeSteppedEnvironment extends Environment
General environment class that "synchronise" all agents actions. It waits one action for each agent and, when all actions is received, executes them.
  • Constructor Details

    • TimeSteppedEnvironment

      public TimeSteppedEnvironment()
  • Method Details

    • init

      public void init(String[] args)
      Resets step counter and scheduled action requests to neutral state, optionally sets a timeout for waiting on agent actions in a step.
      Overrides:
      init in class Environment
      Parameters:
      args - either empty, or contains timeout in milliseconds at pos 0
    • setSleep

      public void setSleep(int s)
      defines the time for a pause between cycles
    • setTimeout

      public void setTimeout(int to)
    • stop

      public void stop()
      Description copied from class: Environment
      Called just before the end of MAS execution, the user environment could override it.
      Overrides:
      stop in class Environment
    • updateNumberOfAgents

      protected void updateNumberOfAgents()
      Updates the number of agents using the environment, this default implementation, considers all agents in the MAS as actors in the environment.
    • getNbAgs

      public int getNbAgs()
      Returns the number of agents in the MAS (used to test the end of a cycle)
    • setNbAgs

      public void setNbAgs(int n)
      Set the number of agents
    • getStep

      public int getStep()
      returns the current step counter
    • setOverActionsPolicy

      public void setOverActionsPolicy(TimeSteppedEnvironment.OverActionsPolicy p)
      Sets the policy used for the second ask for an action while another action is not finished yet. If set as queue, the second action is added in a queue for future execution If set as failSecond, the second action fails.
    • scheduleAction

      public void scheduleAction(String agName, Structure action, Object infraData)
      Description copied from class: Environment
      Called by the agent infrastructure to schedule an action to be executed on the environment
      Overrides:
      scheduleAction in class Environment
    • getActionInSchedule

      public Structure getActionInSchedule(String agName)
    • testEndCycle

      protected boolean testEndCycle(Set<String> finishedAgs)
      Returns true when a new cycle can start, it normally holds when all agents are in the finishedAgs set.
      Parameters:
      finishedAgs - the set of agents' name that already finished the current cycle
    • updateAgsPercept

      protected void updateAgsPercept()
      This method is called after the execution of the action and before to send 'continue' to the agents
    • stepStarted

      protected void stepStarted(int step)
      to be overridden by the user class
    • stepFinished

      protected void stepFinished(int step, long elapsedTime, boolean byTimeout)
      to be overridden by the user class
    • requiredStepsForAction

      protected int requiredStepsForAction(String agName, Structure action)
    • getPercepts

      public Collection<Literal> getPercepts(String agName)
      stops perception while executing the step's actions
      Overrides:
      getPercepts in class Environment