Title: ACT-R 6 Official Release
1ACT-R 6Official Release
- Dan Bothell
- Carnegie Mellon University
2(No Transcript)
3Brief History
- Proposed at the 2002 Workshop
- Concurrently with ACT-R 5s release
- Initial description at the 2003 Workshop
- Early prototype
- Claimed a 2005 Workshop release
- Discussion session after ICCM 2004
- Fleshed out some issues with syntax
- Here it is!
- Fully functional
- Used it for the 2005 Summer School
4What is ACT-R 6?
- The same theory as ACT-R 5
- Rewritten implementation
- Eliminate unnecessary legacy code
- Unify/standardize the buffer mechanism
- Better integration of the Cognitive and
Perceptual/Motor components - No longer an ACT-R/PM
- Make the whole system modular
- Easy to add new components
- Easy to remove/replace existing ones
5How similar is it to ACT-R 5?
- Very similar
- Most of the commands are still there
- reset, clear-all, sgp, p, add-dm, run,
- Models look basically the same
- Same equations
- Procedural
- Declarative memory
- With basically the same parameters
- Same defaults and usage
- Same Perceptual and Motor modules
6Why should I use it?
- It cleans up some issues that can make ACT-R 5
tricky to work with - It has new features
- To make things easier for modeling
- To add some requested capabilities
- It is easier to extend and modify
- Easier to distribute and combine extensions
- In many cases it is faster than ACT-R 5
7Things that were cleaned up
- Overall structure
- Buffers and Chunks
- Declarative memory
- Productions
- Module states
- Vision module
- Production compilation
- Available commands
8Things that were cleaned up
- Overall structure
- Buffers and Chunks
- Declarative memory
- Productions
- Module states
- Vision module
- Production compilation
- Available commands
9Basic structure
- A central event scheduling system
- Independent of the theory itself
- A set of modules
- All treated equally
- Should each be independent
- May have one or more buffers as an interface
- Responsible for scheduling its own events
10Things that were cleaned up
- Overall structure
- Buffers and Chunks
- Declarative memory
- Productions
- Module states
- Vision module
- Production compilation
- Available commands
11Buffers
- They all work the same
- Can hold one chunk
- Relay queries and requests to/from a module
- The chunk is a copy
- Doesnt exist outside of the buffer until it is
cleared - Changes are not reflected back to the original
chunk - Essentially chunk creation scratch pads
12Chunks
- Not just for Declarative memory
- Any module can create/use chunks
- The set of all chunks does NOT equal DM!
13Things that were cleaned up
- Overall structure
- Buffers and Chunks
- Declarative memory
- Productions
- Vision module
- Module states
- Production compilation
- Available commands
14Declarative Memory
- Chunks that are added explicitly
- Add-dm
- Chunks merge into DM from buffers
- All buffers chunks go to DM when cleared
- Mergings are the references for BLL
- Not the LHS usage as in ACT-R 5
- Because buffers hold copies, DM chunks cant be
changed from within a production - Previously it was a recommendation
15Things that were cleaned up
- Overall structure
- Buffers and Chunks
- Declarative memory
- Productions
- Module states
- Vision module
- Production compilation
- Available commands
16General Production Changes
- No LHS Retrievals
- Cant use !eval! in the slot value position
- More rigorous syntax checking
- Doesnt assume what you want when theres an
inconsistency - LHS ordering not important
- (p test
- goalgt
- isa goal
- - value value
- retrievalgt
- isa fact
- slot value
- gt )
17Productions LHS
- Only four possible conditions available
- buffergt
- Test the chunk in the buffer just like in 5
- !eval! or !safe-eval!
- !bind! or !safe-bind!
- Same as in ACT-R 5
- Safe- versions accepted by production compilation
- ?buffergt
- Query the buffer or its module
- Come back to queries later
18Production RHS
- Essentially the same operators as in 5
- Removed the obsolete ones
- !pop!, !push!, !retrieve!, etc.
- Standardized the mechanism for all buffers
- All buffers treated equally
- Obviously different buffers do different things,
but a buffers module is where that
differentiation occurs
19Possible RHS actions
- buffergt
- -buffergt
- buffergt
- !eval! and !safe-eval!
- !bind! and !safe-bind!
- !output!
- !stop!
20RHS actions
- buffergt
- !eval! and !safe-eval!
- !bind! and !safe-bind!
- !output!
- All the same as in ACT-R 5
- The safe- versions do not inhibit the production
compilation mechanism - !stop!
- Not actually new, but does work now
- Generates a break event in the scheduler
- Terminates the current run command
21RHS buffergt
- -buffergt
- Clears the chunk from the buffer
- Thats it!
- Does not result in any action by the module
- Unlike ACT-R 5 where that could also cause the
corresponding module to reset/clear
22RHS buffergt
- buffergt isa chunk-type
- modifier slot request parameter value
- or
- buffergt chunk-reference
- Sends a request to the module
- Always clears the buffer implicitly
- Essentially the same as ACT-R 5
23Things that were cleaned up
- Overall structure
- Buffers and Chunks
- Declarative memory
- Productions
- Module states
- Vision module
- Production compilation
- Available commands
24Buffer queries
- Replaces the -state buffers
- Syntax
- ?buffergt
- - query value
- Either true or false
- No bindings
- Must all be true for production to match
- Examples
- ?retrievalgt ?visualgt
- state busy - state error
- buffer empty buffer check
25Queries continued
- Every buffer/module must respond to
- State
- Values busy, free, or error
- Buffer
- Values full, empty, requested or unrequested
- Others can be added by a module writer
- Modality for the current PM modules for example
26Things that were cleaned up
- Overall structure
- Buffers and Chunks
- Declarative memory
- Productions
- Module states
- Vision module
- Production compilation
- Available commands
27Vision Module
- Removed the attended slot from visual-location
chunks - Replaced with
- a RHS request parameter
- visual-locationgt
- isa visual-location
- attended nil
- A LHS query
- ?visual-locationgt
- attended nil
- Good because now visual-locations can merge
properly without the changing attended slot - The query can match nil to new but a LHS slot
test couldnt
28Vision Module cont.
- Attention Shifts changed from
- visualgt
- isa visual-object
- To
- visualgt
- isa move-attention
- No longer need the scale slot in visual-objects
- Easier to read in productions
- The analogy to declarative didnt seem all that
helpful
29Things that were cleaned up
- Overall structure
- Buffers and Chunks
- Declarative memory
- Productions
- Module states
- Vision module
- Production compilation
- Available commands
30Production Compilation
- The same general theory as 5
- Combine consecutive productions into one
- Incorporate requested chunks and remove the
request - Only do safe compilations
- Mechanism is now split into two distinct steps
and applied on a buffer-by-buffer basis - Check for possibility of composition
- Perform the composition
- More robust than the mechanism in 5
- Slightly more restricted than the 5 mechanism
31Production Compilation cont.
- Applies to all buffers (even user created)
- Basic mechanism is that there are 4 styles of
buffers - Goal, retrieval, perceptual, and motor
- Any buffer can be set to any style
- New styles can be added
- Existing styles can be modified for both steps
32Things that were cleaned up
- Overall structure
- Buffers and Chunks
- Declarative memory
- Productions
- Vision module
- Module states
- Production compilation
- Available commands
33Commands
- Removed some duplicate commands
- set-general-base-levels, set-all-base-levels,
set-base-levels, setgeneralbaselevels,
setallbaselevels, setbaselevels ?
set-base-levels - The PM commands have had the pm- removed
- For example pm-proc-display is now proc-display
- Commands referencing obsolete items removed
- In particular anything that included wme
- Sgp sets parameters for all modules
34New Features
- Request parameters
- Declarative finsts
- Sources of activation
- Multiple models
- Strict Harvesting
- P command
35New Features
- Request parameters
- Declarative finsts
- Sources of activation
- Multiple models
- Strict Harvesting
- P command
36Request parameters
- Buffer specific parameters
- Valid no matter what the chunk-type
- Always a keyword (which distinguishes it from an
actual slot) - Examples
- visual-locationgt
retrievalgt - isa visual-location isa
any-chunk-type - attended nil
recently-retrieved nil
37New Features
- Request parameters
- Declarative finsts
- Sources of activation
- Multiple models
- Strict Harvesting
- P command
38Declarative Finsts
- Cannot modify chunks in DM in a production
- Major reason for changing chunks in DM was to
mark them to prevent retrieval - Now there are automatic markers just like vision
- They are limited in time and number
- settable with parameters
- Indicated with the request parameter
recently-retrieved - retrievalgt
- isa fact
- recently-retrieved nil
39New Features
- Request parameters
- Declarative finsts
- Sources of activation
- Multiple models
- Strict Harvesting
- P command
40Sources of activation
- All buffers are potential sources now
- Each buffer has a separate parameter like ga for
the goal buffer - ga defaults to 1
- All others default to 0
- mas now also used to enable/disable spreading
activation since setting ga to 0 is not
sufficient
41New Features
- Request parameters
- Declarative finsts
- Sources of activation
- Multiple models
- Strict Harvesting
- P command
42Multiple Models
- Out of the box ACT-R 6 supports multiple models
- Any number of models can be loaded
- Each has its own set of modules, chunks, and
parameters - Can be run synchronously or asynchronously
- Determined when loaded
- Not adjustable afterwards
43New Features
- Request parameters
- Declarative finsts
- Sources of activation
- Multiple models
- Strict Harvesting
- P command
44Strict harvesting
- New mechanism of productions
- When a buffer is matched on the LHS of a
production it is automatically cleared on the RHS
unless there is an buffer action to keep it
around - Parameterized so that one can specify which
buffers get strict harvested - Out of the box all but the goal buffer do
- Cleans up issues with
- References for BLL
- Production compilation
- Micro-managing perceptual buffers
45New Features
- Request parameters
- Declarative finsts
- Sources of activation
- Multiple models
- Strict Harvesting
- P command
46Experimental addition P
- Exactly like p except slot-names can be
variablized - On both the LHS and the RHS
- Only slot-names not the chunk-type
- Limited variability (for now at least)
- Will not do any binding the variable must be
bound elsewhere - Only one level deep per buffer test
47Example P uses
- (p search
- goalgt
- isa search
- retrievalgt
- isa strategy
- constraint c
- value v
- gt
- visual-locationgt
- isa visual-location
- c v
- )
- (p check
- goalgt
- isa check
- which-slot s
- which-value v
- retrievalgt
- isa memory
- s v
- gt
- )
48More on P
- Does work with production compilation!
(p production-89 search strat
goalgt isa search gt
visual-locationgt isa visual-location
kind text )
(p search goalgt isa search
retrievalgt isa strategy constraint c
value v gt visual-locationgt isa
visual-location c v )
Strat isa strategy constraint kind value
text
...
?
49Other issues
- Extending the system
- Current performance
50Extending via new Modules
- All modules are built the same way
- Including the defaults
- Can remove or replace any module
- Placing a file in the modules or tools directory
with a .lisp name will cause it to be loaded - Eventually would like to have a database of
available modules and tools that people can use - No how to docs right now, but the current
modules serve as examples and there is an API doc
that describes the available functions
51Modifying the base modules
- Declarative and Procedural modules are now more
user configurable - All the equations have override hooks like
similarity did previously - BL-HOOK
- SPREADING-HOOK
- PARTIAL-MATCHING-HOOK
- NOISE-HOOK
- SIM-HOOK
- SJI-HOOK
- UTILITY-HOOK
- UTILITY-C-HOOK
- UTILITY-P-HOOK
- Should relieve people of needing to hack the main
code
52Performance Evaluation
- Has not been highly optimized yet
- Used the tutorial models as a benchmark because
they touch all the main components - Used ACL 6.2 on Windows XP and MCL 5.0 on Mac OS
X 10.4 - Need to increase the MCL heap under OS X
- (cclset-preferred-size-resource
heap-size-in-bytes) - Basic speed and size comparison
- Using the time function
53Comparison
54More Information
- Tutorials show the new system in use
- Test models in the distribution are the commented
conversion of the ACT-R 5 tutorial models - User manual
- not yet sorry
- Can always look at the source code
- A little more structured/spread out
- Slightly more commented
55Where can I get it?
- The ACT-R website
- http//act-r.psy.cmu.edu
- Updated when there are significant changes
- Via Subversion
- Always the most up to date code
- Version control software available from
- http//subversion.tigris.org
- All files are under version control
- Including the tutorial, docs, and the environment
- Available from our server at
- svn//alba.psy.cmu.edu/usr/local/svnroot/actr6
56Questions?