Class TimeSteppedEnvironment

java.lang.Object
jason.environment.Environment
jason.environment.TimeSteppedEnvironment
Direct Known Subclasses:
SteppedEnvironment

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.
Author:
Jomi
  • Field Details

  • Constructor Details

    • TimeSteppedEnvironment

      public TimeSteppedEnvironment()
  • Method Details

    • init

      public void init​(java.lang.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​(java.lang.String agName, Structure action, java.lang.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​(java.lang.String agName)
    • testEndCycle

      protected boolean testEndCycle​(java.util.Set<java.lang.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
    • startNewStep

      private void startNewStep()
    • 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​(java.lang.String agName, Structure action)
    • getPercepts

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