edu.memphis.ccrg.lida.actionselection
Class BasicActionSelection

java.lang.Object
  extended by edu.memphis.ccrg.lida.framework.FrameworkModuleImpl
      extended by edu.memphis.ccrg.lida.actionselection.BasicActionSelection
All Implemented Interfaces:
ActionSelection, FrameworkModule, FullyInitializable, Initializable, ModuleListener, BroadcastListener, ProceduralMemoryListener

public class BasicActionSelection
extends FrameworkModuleImpl
implements ActionSelection, ProceduralMemoryListener

Rudimentary action selection that selects the behavior with the highest activation.

Author:
Ryan J McCall

Field Summary
 
Fields inherited from class edu.memphis.ccrg.lida.framework.FrameworkModuleImpl
taskSpawner
 
Constructor Summary
BasicActionSelection()
          Default constructor
 
Method Summary
 void addActionSelectionListener(ActionSelectionListener listener)
          Those classes that should be receiving selected actions from Action Selection
 void addListener(ModuleListener listener)
          Override this method to add a listener to the module
 void addPreafferenceListener(PreafferenceListener listener)
           
 void decayModule(long ticks)
          Decay only this Module.
 java.lang.Object getModuleContent(java.lang.Object... params)
          Intended to be called from the GUI.
 void init()
          Will set parameters with the following names:

actionSelection.refractoryperiodTicks
actionSelection.candidateThreshold
actionSelection.removalThreshold
actionSelection.backgroundTaskTicksPerRun
actionSelection.behaviorDecayStrategy
actionSelection.thresholdDecayRate
 void learn(BroadcastContent content)
          This is a placeholder method to remind implementing classes that they should implement learning.
 void receiveBehavior(Behavior b)
          Receive a Behavior
 void receiveBroadcast(BroadcastContent bc)
          This method should return as possible in order to not delay the rest of the broadcasting.
 Action selectAction()
          Choose a single action among those activated and whose context are satisfied to execute
 
Methods inherited from class edu.memphis.ccrg.lida.framework.FrameworkModuleImpl
addSubModule, containsSubmodule, containsSubmodule, getAssistingTaskSpawner, getModuleName, getParam, getSubmodule, getSubmodule, getSubmodules, init, setAssistingTaskSpawner, setAssociatedModule, setModuleName, taskManagerDecayModule, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface edu.memphis.ccrg.lida.framework.FrameworkModule
addSubModule, containsSubmodule, containsSubmodule, getAssistingTaskSpawner, getModuleName, getSubmodule, getSubmodule, getSubmodules, setAssistingTaskSpawner, setModuleName, taskManagerDecayModule
 
Methods inherited from interface edu.memphis.ccrg.lida.framework.initialization.FullyInitializable
setAssociatedModule
 
Methods inherited from interface edu.memphis.ccrg.lida.framework.initialization.Initializable
getParam, init
 

Constructor Detail

BasicActionSelection

public BasicActionSelection()
Default constructor

Method Detail

init

public void init()
Will set parameters with the following names:

actionSelection.refractoryperiodTicks
actionSelection.candidateThreshold
actionSelection.removalThreshold
actionSelection.backgroundTaskTicksPerRun
actionSelection.behaviorDecayStrategy
actionSelection.thresholdDecayRate

Specified by:
init in interface Initializable
Overrides:
init in class FrameworkModuleImpl
See Also:
FrameworkModuleImpl.init()

addListener

public void addListener(ModuleListener listener)
Description copied from class: FrameworkModuleImpl
Override this method to add a listener to the module

Specified by:
addListener in interface FrameworkModule
Overrides:
addListener in class FrameworkModuleImpl
Parameters:
listener - - listener of this FrameworkModule

addActionSelectionListener

public void addActionSelectionListener(ActionSelectionListener listener)
Description copied from interface: ActionSelection
Those classes that should be receiving selected actions from Action Selection

Specified by:
addActionSelectionListener in interface ActionSelection
Parameters:
listener - listener of this action selection

receiveBehavior

public void receiveBehavior(Behavior b)
Description copied from interface: ProceduralMemoryListener
Receive a Behavior

Specified by:
receiveBehavior in interface ProceduralMemoryListener
Parameters:
b - - a stream, a partial order, of behaviors

selectAction

public Action selectAction()
Description copied from interface: ActionSelection
Choose a single action among those activated and whose context are satisfied to execute

Specified by:
selectAction in interface ActionSelection
Returns:
The selected Action or null if no action was selected.

getModuleContent

public java.lang.Object getModuleContent(java.lang.Object... params)
Description copied from class: FrameworkModuleImpl
Intended to be called from the GUI. Override this method to return particular module content based on params.

Specified by:
getModuleContent in interface FrameworkModule
Overrides:
getModuleContent in class FrameworkModuleImpl
Parameters:
params - - specifies what content will be returned.
Returns:
various kinds of content of this module.

addPreafferenceListener

public void addPreafferenceListener(PreafferenceListener listener)
Specified by:
addPreafferenceListener in interface ActionSelection
Parameters:
listener - preafference listeners of this action selection

learn

public void learn(BroadcastContent content)
Description copied from interface: BroadcastListener
This is a placeholder method to remind implementing classes that they should implement learning. LIDA theory says receivers of the broadcast should learn from it. This method will not be called directly by GlobalWorkspace but should be managed by the receiving module.

Specified by:
learn in interface BroadcastListener
Parameters:
content - content

receiveBroadcast

public void receiveBroadcast(BroadcastContent bc)
Description copied from interface: BroadcastListener
This method should return as possible in order to not delay the rest of the broadcasting. A good implementation should copy the broadcast content and create a task to process it.

Specified by:
receiveBroadcast in interface BroadcastListener
Parameters:
bc - the Content of the Broadcast

decayModule

public void decayModule(long ticks)
Description copied from interface: FrameworkModule
Decay only this Module.

Specified by:
decayModule in interface FrameworkModule
Parameters:
ticks - number of ticks to decay.