clarion.tools
Interface BaseSimulationTemplate
- All Known Implementing Classes:
- HelloWorld
public interface BaseSimulationTemplate
This interface provides a base template to help with the construction of
simulations using the CLARION library.
Usage:
The order for constructing a simulation is:
- Construct the input space. This includes:
- The space of all sensory information
- Construct the space of all possible internal information that can be used by your agents.
This includes:
- The actions that can be performed
- The goals (if being used)
- Specialized working memory chunks (if being used)
- Input specific to the drives (if being used):
- Adjusting the global parameters you want adjusted by accessing them statically within their
appropriate class (optional).
- Initialize your CLARION agents.
- Initialize an instance of the MS (if being used).
- The instance of the MS you just initialized will be automatically attached to the Agent
with whom it is initialized
- Initialize the drives either by:
- Specifying a personality.
- Initializing drives and adding them to the appropriate behavior systems in the MS.
If initializing drives to use an implicit module, then:
- Initialize the implicit module.
- Train the implicit module (if needed).
- Attach implicit module to the drive.
- Initialize an instance of the MCS (if being used).
- The instance of the MCS you just initialized will be automatically attached to the Agent
with whom it is initialized
- Initialize an instance of the goal selection module (if being used).
If using an implicit module for goal selection, then:
- Initialize the implicit module.
- Train the implicit module (if needed).
- Attach the implicit module to the goal selection module.
- Initialize an instance of the ACS level probability setting module (if being used).
If using an implicit module for probability setting, then:
- Initialize the implicit module.
- Train implicit module (if needed).
- Attach the implicit module to the ACS level probability setting module.
- Initialize an instance of the goal structure (if being used).
- The instance of the goal structure you just initialized will be automatically attached
to the Agent with whom it is initialized
- Specify the relevance each drive has to each goal.
- Add the goals to the list of possible goals in the goal structure.
- Initialize an instance of the ACS.
- The instance of the ACS you just initialized will be automatically attached to the Agent
with whom it is initialized
- Initialize and train (if needed) one or more implicit modules (REQUIRED).
- Initialize any IRL or fixed rules (if being used).
- Add the implicit modules, rules, and actions to the ACS.
- Initialize an instance of the working memory (if being used).
- The instance of the working memory you just initialized will be automatically attached to
the Agent with whom it is initialized
- Add any specialized working memory memory chunks to the list of specialized working memory
chunks.
To run the simulation:
- At each time increment:
- Have the CLARION agent perceive the current sensory information including drive
specific input (if being used) and any feedback from the last time increment (if available).
- Ask the CLARION agent to act given what it perceived.
- Adjust the current sensory information (including drive specific input), and repeat.
Reporting the internal results:
- Essentially all components of CLARION can be viewed at any point during the simulation
if you want to report the internal state of a CLARION agent.
The following internal operations are acceptable to perform during the simulation:
- Presenting CLARION with new sensory information (through perception) not originally
specified within the sensory information space during initialization.
- Adding new actions, implicit modules, or rules to the ACS.
- Adding new goals to the list of possible goals in the goal structure.
- Adding new drives to the MS (not recommended).
- Adding new specialized working memory chunks to the specialized working memory chunk list
in the working memory.
- Changing the LOCAL parameters for various components inside an agent.
- Version:
- 6.0.4
- Author:
- Nick Wilson
Method Summary |
void |
initializeAgentInternalSpace()
This method is where you construct the space of all possible internal information that can be
used by your agents. |
void |
initializeCLARIONAgent(CLARION Agent)
This method is where all of the agent specific initialization takes place for each agent
in your environment. |
void |
initializeSensoryInformationSpace()
This method is where you construct the world in which your CLARION agents will live. |
void |
reportResults()
Use this method to report the results of your simulation. |
void |
run(CLARION Agent)
This method is used to run the task. |
initializeSensoryInformationSpace
void initializeSensoryInformationSpace()
- This method is where you construct the world in which your CLARION agents will live.
To accomplish this you must do the following:
- Construct the input space. This includes:
- The space of all sensory information
- Input specific to the drives (if being used):
initializeAgentInternalSpace
void initializeAgentInternalSpace()
- This method is where you construct the space of all possible internal information that can be
used by your agents. Remember that each agent needs its own instance of the items you specify
here. Make sure you "clone" everything you specify in this method before attaching it to
an Agent.
This includes:
- The actions that can be performed
- The goals (if being used)
- Specialized working memory chunks (if being used)
- Adjusting the global parameters you want adjusted by accessing them statically within their
appropriate class (optional).
- Initializing you CLARION agents.
initializeCLARIONAgent
void initializeCLARIONAgent(CLARION Agent)
- This method is where all of the agent specific initialization takes place for each agent
in your environment.
The order for constructing a particular CLARION agent is:
- Initialize an instance of the MS (if being used).
- The instance of the MS you just initialized will be automatically attached to the Agent
with whom it is initialized
- Initialize the drives either by:
- Specifying a personality.
- Initializing drives and adding them to the appropriate behavior systems in the MS.
If initializing drives to use an implicit module, then:
- Initialize the implicit module.
- Train the implicit module (if needed).
- Attach implicit module to the drive.
- Initialize an instance of the MCS (if being used).
- The instance of the MCS you just initialized will be automatically attached to the Agent
with whom it is initialized
- Initialize an instance of the goal selection module (if being used).
If using an implicit module for goal selection, then:
- Initialize the implicit module.
- Train the implicit module (if needed).
- Attach the implicit module to the goal selection module.
- Initialize an instance of the ACS level probability setting module (if being used).
If using an implicit module for probability setting, then:
- Initialize the implicit module.
- Train implicit module (if needed).
- Attach the implicit module to the ACS level probability setting module.
- Initialize an instance of the goal structure (if being used).
- The instance of the goal structure you just initialized will be automatically attached
to the Agent with whom it is initialized
- Specify the relevance each drive has to each goal.
- Add the goals to the list of possible goals in the goal structure.
- Initialize an instance of the ACS.
- The instance of the ACS you just initialized will be automatically attached to the Agent
with whom it is initialized
- Initialize and train (if needed) one or more implicit modules (REQUIRED).
- Initialize any IRL or fixed rules (if being used).
- Add the implicit modules, rules, and actions to the ACS.
- Initialize an instance of the working memory (if being used).
- The instance of the working memory you just initialized will be automatically attached to
the Agent with whom it is initialized
- Add any specialized working memory memory chunks to the list of specialized working memory
chunks.
- Parameters:
Agent
- The agent to initialize.
run
void run(CLARION Agent)
- This method is used to run the task. It is up to you to decide how many steps of the simulation
the run method should run. You can setup run to run each agent through the entire task, or you
can just have the agent run 1 step of the task.
To run the simulation:
- At each time increment:
- Have the CLARION agent perceive the current sensory information including drive
specific input (if being used) and any feedback from the last time increment (if available).
- Ask the CLARION agent to act given what it perceived.
- Adjust the current sensory information (including drive specific input), and repeat.
The following internal operations are acceptable to perform during the simulation:
- Presenting CLARION with new sensory information (through perception) not originally
specified within the sensory information space during initialization.
- Adding new actions, implicit modules, or rules to the ACS.
- Adding new goals to the list of possible goals in the goal structure.
- Adding new drives to the MS (not recommended).
- Adding new specialized working memory chunks to the specialized working memory chunk list
in the working memory.
- Changing the LOCAL parameters for various components inside an agent.
- Parameters:
Agent
- The agent to run.
reportResults
void reportResults()
- Use this method to report the results of your simulation. It is up to you how you would like
to output the results. You can save the results to a file, or print the results to the screen.
The options for outputting results are virtually limit less.
Reporting the internal results:
- Essentially all components of CLARION can be viewed at any point during the simulation
if you want to report the internal state of a CLARION agent.