1、ACT-R 6 Official Release,Dan Bothell Carnegie Mellon University,2,3,Brief 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
2、syntax Here it is! Fully functional Used it for the 2005 Summer School,4,What 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
3、-R/PM” Make the whole system modular Easy to add new components Easy to remove/replace existing ones,5,How 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 Wi
4、th basically the same parameters Same defaults and usage Same Perceptual and Motor modules,6,Why 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 mo
5、dify Easier to distribute and combine extensions In many cases it is faster than ACT-R 5,7,Things that were cleaned up,Overall structure Buffers and Chunks Declarative memory Productions Module states Vision module Production compilation Available commands,8,Things that were cleaned up,Overall struc
6、ture Buffers and Chunks Declarative memory Productions Module states Vision module Production compilation Available commands,9,Basic 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 buf
7、fers as an interface Responsible for scheduling its own events,10,Things that were cleaned up,Overall structure Buffers and Chunks Declarative memory Productions Module states Vision module Production compilation Available commands,11,Buffers,They all work the same Can hold one chunk Relay queries a
8、nd 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,12,Chunks,Not just for Declarative memory Any module can create/use chunks The set of all chunks does N
9、OT equal DM!,13,Things that were cleaned up,Overall structure Buffers and Chunks Declarative memory Productions Vision module Module states Production compilation Available commands,14,Declarative Memory,Chunks that are added explicitly Add-dm Chunks merge into DM from buffers All buffers chunks go
10、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,15,Things that were cleaned up,Overall structure Buffers and Chunks Declarative memory Productions
11、 Module states Vision module Production compilation Available commands,16,General 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=goalisa goal- val
12、ue =value=retrievalisa factslot =value= ),17,Productions LHS,Only four possible conditions available =buffer 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 ?buffer Query the buffer or its mo
13、dule Come back to queries later,18,Production 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 tha
14、t differentiation occurs,19,Possible RHS actions,=buffer -buffer +buffer !eval! and !safe-eval! !bind! and !safe-bind! !output! !stop!,20,RHS actions,=buffer !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
15、 mechanism !stop! Not actually new, but does work now Generates a break event in the scheduler Terminates the current “run” command,21,RHS buffer,-bufferClears 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
16、 module to reset/clear,22,RHS +buffer,+buffer isa chunk-typemodifier slot | request parameter value*or +buffer chunk-reference Sends a request to the module Always clears the buffer implicitly Essentially the same as ACT-R 5,23,Things that were cleaned up,Overall structure Buffers and Chunks Declara
17、tive memory Productions Module states Vision module Production compilation Available commands,24,Buffer queries,Replaces the *-state buffers Syntax?buffer - query value+Either true or false No bindings Must all be true for production to matchExamples?retrieval ?visualstate busy - state errorbuffer e
18、mpty buffer =check,25,Queries 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,26,Things that were cleaned up,Overall structure
19、Buffers and Chunks Declarative memory Productions Module states Vision module Production compilation Available commands,27,Vision Module,Removed the attended slot from visual-location chunks Replaced with: a RHS request parameter+visual-locationisa visual-location:attended nil A LHS query?visual-loc
20、ation 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,28,Vision Module cont.,Attention Shifts changed from+visual isa visual-object To+visual isa move-attentionNo longer need the scale slo
21、t in visual-objects Easier to read in productions The analogy to declarative didnt seem all that helpful,29,Things that were cleaned up,Overall structure Buffers and Chunks Declarative memory Productions Module states Vision module Production compilation Available commands,30,Production Compilation,
22、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 Mo
23、re robust than the mechanism in 5 Slightly more restricted than the 5 mechanism,31,Production 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
24、 added Existing styles can be modified for both steps,32,Things that were cleaned up,Overall structure Buffers and Chunks Declarative memory Productions Vision module Module states Production compilation Available commands,33,Commands,Removed some duplicate commands set-general-base-levels, set-all-
25、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
26、all modules,34,New Features,Request parameters Declarative finsts Sources of activation Multiple models Strict Harvesting P* command,35,New Features,Request parameters Declarative finsts Sources of activation Multiple models Strict Harvesting P* command,36,Request parameters,Buffer specific paramete
27、rs Valid no matter what the chunk-type Always a keyword (which distinguishes it from an actual slot) Examples+visual-location +retrievalisa visual-location isa any-chunk-type:attended nil :recently-retrieved nil,37,New Features,Request parameters Declarative finsts Sources of activation Multiple mod
28、els Strict Harvesting P* command,38,Declarative 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
29、the request parameter :recently-retrieved +retrievalisa fact:recently-retrieved nil,39,New Features,Request parameters Declarative finsts Sources of activation Multiple models Strict Harvesting P* command,40,Sources of activation,All buffers are potential sources now Each buffer has a separate param
30、eter 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,41,New Features,Request parameters Declarative finsts Sources of activation Multiple models Strict Harvesting P* command,42,M
31、ultiple 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,43,New Features,Request parameters Declarative finsts
32、Sources of activation Multiple models Strict Harvesting P* command,44,Strict 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 wh
33、ich 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,45,New Features,Request parameters Declarative finsts Sources of activation Multiple models Strict Harvesting P* command,46,E
34、xperimental 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,47,Example P* uses,(p* s
35、earch=goalisa search=retrievalisa strategyconstraint =cvalue =v = +visual-locationisa visual-location=c =v ),(p* check=goalisa checkwhich-slot =swhich-value =v=retrievalisa memory=s =v = ),48,More on P*,Does work with production compilation!,(p* search=goalisa search=retrievalisa strategyconstraint
36、=cvalue =v = +visual-locationisa visual-location=c =v ),(p* production-89“ & search strat”=goalisa search = +visual-locationisa visual-locationkind text ),Stratisa strategyconstraint kindvalue text,+,. +,49,Other issues,Extending the system Current performance,50,Extending via new Modules,All module
37、s 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
38、the current modules serve as examples and there is an API doc that describes the available functions,51,Modifying 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 :PARTIA
39、L-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,52,Performance Evaluation,Has not been highly optimized yet Used the tutorial models as a benchmark because they touch all the main components Used ACL
40、 6.2 on Windows XP and MCL 5.0 on Mac OS X 10.4 Need to increase the MCL heap under OS X (ccl:set-preferred-size-resource heap-size-in-bytes) Basic speed and size comparison Using the time function,53,Comparison,54,More Information,Tutorials show the new system in use Test models in the distribution
41、 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,55,Where 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 fromhttp:/subversion.tigris.org All files are under version control Including the tutorial, docs, and the environment Available from our server atsvn:/alba.psy.cmu.edu/usr/local/svnroot/actr6,56,Questions?,