ACT-R: Frequently Asked Questions List

 

Frank E. Ritter: ritter@ist.psu.edu
Natalie Shiskowski: nus112@psu.edu
Last updated  3 August 2003

 

 


Table of Contents

Section 0: Introduction

Section 1: General Questions

(G0) Where can I get hold of the ACT-R FAQ?

(G1) What is ACT-R?

(G2) Where can I get more information about ACT-R?

(G3) What does ACT-R stand for?

(G4) What do I need to be able to run ACT-R?

(G5) Where can I get hold of ACT-R?

(G6) Who uses ACT-R for what?

(G7) How can I learn ACT-R?

(G8) Is ACT-R the right tool for me?

(G9) Is there any support documentation available for ACT-R?

(G10) How can I find out what bugs are outstanding in ACT-R?

(G11) How does ACT-R currently stand as a Psychology theory?

(G12) What meetings are there of the ACT-R community?

(G13) What are the implications of ACT-R in education?

Section 2: Technological and Programming Questions

(T1) How can I make my life easier when programming in ACT-R?

(T2) How can I write fast code?

(T3) Are there other tools?

(T4) What are some subtlties with production compilation?


Section 0: Introduction

This is the introduction to a list of frequently asked questions (FAQ) about ACT-R with answers.

The FAQ is posted as a guide for finding out more about ACT-R. It is intended for use by all levels of people interested in ACT-R, from novices through to experts. With this in mind, the questions are divided into two parts: the first part deals with general details about ACT-R; the second part examines technological and programming issues in ACT-R.  Questions in the first section have their numbers prefixed by the letter G (for General); those in the second section are prefixed by the letter T (for Technological).  As the FAQ expands, the technological section may be further subdivided.

The FAQ also serves as a storehouse of the "best" answers to these questions. Thus, if you know of a better answer or can suggest improvements, please feel free to make suggestions.

This FAQ is updated and posted on a variable schedule. Full instructions for getting the current version of the FAQ are given in question G0.

Suggestions for new questions, answers, re-phrasing, deletions etc., are all welcomed. Please include the word "ACT-R FAQ" in the subject of your e-mail correspondence. Please use the mailing list noted below for general questions, but if it fails to appropriately address your question, contact one of us.

This FAQ is not just our work, but includes answers from members of the ACT-R community, past and present. In particular, Dan Bothel, Isaac Councill, and Christian Lebiere have helped. The views expressed here are those of the authors and should not necessarily be attributed to the Pennsylvania State University, nor should having contributed be seen as agreeing with all the comments herein. Support for this work has been provided by the Penn State Women in Science in Engineering Research Program and by ONR award number N00014-03-1-0248.

Frank E. Ritter (ritter@ist.psu.edu)

Natalie Shiskowski (nus112@psu.edu)

Back to Table of Contents


Section 1: General Questions


(G0) Where can I get hold of the ACT-R FAQ?

The ACT-R FAQ's home is here at: acs.ist.psu.edu/act-r-faq/.

The latest version of the list of Frequently Asked Questions (FAQ) for the ACT-R cognitive architecture is posted approximately every three to six months to the ACT-R-group mailing list.

If you find that any material here is out of date or does not include a relevant paper or author, please let us know.

Back to Table of Contents


(G1) What is ACT-R?

ACT-R is a proposed unified theory of cognition realized as a production system. It is a unified theory of cognition, in the spirit proposed by Newell (1990, Unified theories of cognition, Harvard, Cambridge, MA), in that it is designed to predict human behavior by processing information and generating intelligent behavior itself.

The ACT-R architecture integrates theories of cognition, visual attention, and motor movement. It has been applied successfully to model higher-level cognition phenomena, such as working memory, scientific reasoning and skill acquisition to name but a few. Recently it has been applied successfully to a number of HCI issues.

ACT-R makes a distinction between two types of long-term knowledge, declarative and procedural knowledge. Declarative knowledge is factual and holds information like '2 + 2 = 3'. The basic units of declarative knowledge are chunks, which are schema-like structures, effectively forming a prepositional network. Procedural knowledge consists out of production rules that encode skills and take the form of condition-action pairs. Production rules correspond to specific goals or sub-goals, and mainly retrieve and change declarative knowledge.

Besides the symbolic procedural and declarative part, the system also has a sub-symbolic part that determines the use of the symbolic knowledge. Each symbolic construct, be it a production or chunk, has sub-symbolic parameters associated with it that reflect their past use. In this way, the system keeps track of the general usefulness of the symbolic information. Which information is currently available in the declarative memory module is determined by the odds that a particular piece of information will be used in a particular context.

An important aspect of the ACT-R system is that it operates in real-time: Each covert step of cognition (production firing, retrieval from declarative memory) or overt action (mouse-click, moving attention) has latencies associated with it that are based on psychological theories and data. For example, firing a production rule typically takes 50 ms, and the time needed to scan a part of a computer screen is calculated using Fitts' law. In this way, the system allows the application of psychological knowledge in real-time.

[this was prepared with Dirk Van Rooy]

Back to Table of Contents


(G2) Where can I get more information about ACT-R?

Here are some introductory materials to get you started.  A more complete list is available at the ACT-R homepage, at act-r.psy.cmu.edu, which has become increasingly useful over time.

Books

Byrne, M. D., Anderson, J. R., Douglass, S., & Matessa, M. (1999).  Eye tracking the visual search of click-down menus.  Human Factors in Computing Systems: Proceedings of CHI 99, 402-409.  Reading, MA: Addison Wesley.

Anderson, J. R. & Lebiere, C. (1998). The atomic components of thought.  Mahwah, NJ:  Erlbaum.

Anderson, J. R. & Matessa, M. (1998).  The rational analysis of categorization and the ACT-R architecture.  In M. Oaksford & N. Chater (Eds.)  Rational models of cognition, pp. 197-217.  Oxford: Oxford University Press.

Lebiere, C., Anderson, J. R., & Reder, L.M. (1994). Error modeling in the ACT-R production system.  In Proceedings of the Sixteenth Annual Conference of the Cognitive Science Society, 555-559.  Hillsdale, NJ: Erlbaum.

Anderson, J. R. (1993).  Rules of the Mind.  Hillsdale, NJ: Erlbaum.

Journal Articles and Book Chapters

Anderson, J. R. & Douglass, S. (2001). Tower of Hanoi:  Evidence for the cost of goal retrieval.  Journal of Experimental Psychology: Learning, Memory, & Cognition, 27, 1331-1346.

Anderson, J. R. (1996). ACT: A simple theory of complex cognition. American Psychologist, 51, 355-365.

Anderson, J. R., Corbett, A. T., Koedinger, K. R., & Pelletier, R. (1995).  Cognitive tutors: Lessons learned.  The Journal of the Learning Sciences, 4 (2), 167-207.

Web Sites

The origin of the ACT theory and ACT-R language is found at Anderson's Lab at Carnegie-Mellon University.

Information concerning ACT-R/PM can be found at Rice University.

There is an ACT-R homepage associated with the University of Groningen.

There is also much useful information at the Pennsylvania State University, in the Applied Cognitive Science Lab.

Research is ongoing at George Mason University in the Applied Research in Cognition and Human Factors (ARCH) Lab (now perhaps also found at RPI).

Mailing List

You can get information about or subscribe to the primary ACT-R-group mailing list here.  There are also archives of the ACT-R mailing list, which may have the answer to your questions.

You can find information about a low-volume announcement list here.  This list is also archived.

Workshops

Each year, a three-day workshop is held to enable new and current users to exchange research results and ideas. A summer school and the workshop typically take place at Carnegie Mellon University.  Information on past workshops can be found here

Tutorials on ACT-R also sometimes appear at the Cognitive Science Conference (e.g., on the 2002 tutorial program) and at the International Cognitive Modelling Conference.

Newsgroups

At present there is no ACT-R newsgroup.

There is a moderated forum (http://act-r.psy.cmu.edu/forum/). You can request additional forum categories be added, (for instance if you want to use it for a class you are teaching.)

What is its intended relation to this act-r-users email list? what sort of things would I post to the forum rather than to the email list?

It is intended for questions and items of less importance then would go on the mailing list. Many beginning users are afraid to ask these questions to the entire ACT-R community because they don't want to send an e-mail to this list. Also, the forum can be used as a resource for teaching. It is also good for advanced users that want to conduct long windy discussions or make comments or such that they don't want to send to everyone. The advantage of this format over e-mail is that it can be looked at and responded to with more leisure and without clogging everyone's e-mail. It also provides a more casual format for networking.

(The short answer is that you can post whatever you want, but unlike the e-mail list, you cannot count on everyone seeing it.)

For what purposes would I want/need to "log in" to the forum, and what username & password would I use?

The way it is set up, logging in allows you to post. (But you can view messages without registering.) Once you register (which takes 3 minutes and is a link in the corner of the page) you can check a box and it will retain your information so it will auto-login form your machine.

Having login rather than just free open use promotes a little order since all posts will be tagged with your user name so we can see who wrote them. When registering, you can use your real name (which I have done), or you could uses a pseudonym of your choosing. You can change this later if you want. Pick whatever you like for a password.

Important posts should still be sent to all the users (act-r-users@act-r.psy.cmu.edu) Don't ever post to the forum (http://act-r.psy.cmu.edu/forum/) if you need to communicate with everyone. The moderator will repost some of the important e-mails on the forum so that they are handy however. My concern is that the reason the traffic has been low on the list is because people don't like to send to a list that goes to so many people. If this is why traffic is low, then we probably need this forum to communicate better. If no one uses it then I was wrong. (Questions by Richard Young, answers from the moderator Phil Pavlik" <ppavlik@andrew.cmu.edu>)

Back to Table of Contents


(G3) What does ACT-R stand for?

ACT-R's official name is an acronym for 'the adaptive control of thought', as based upon the ACT Theory (Anderson, 1976). We have also seen it as another acronym based on the 1998 book's title, the Atomic Components of Thought - Rational.

Back to Table of Contents


(G4) What do I need to be able to run ACT-R?

All that is required is a version of ACT-R and a Common Lisp.

The ACT-R versions are described and linked to in (G5).  The Common Lisps that we know that work are listed below, roughly in order of ease of use, not price.  Approximate price is in parentheses for single user license.

There is also a version of ACT-R 5.0 in Java created by Tony Harrison. It is currently a beta version, and does not include the complete theory (i.e., it does not include ACT-R/PM). It, and its related files, are available from jactr.sourceforge.net/

Back to Table of Contents


(G5) Where can I get hold of ACT-R?

Most new users are starting in the latest version, ACT-R 5. Some users still use ACT-R 4. Only one user we know of, working with legacy code, is still using ACT-R 3 (he is lonely). Older versions may be available from the Dan Bothel or Frank Ritter.

Version 5.0

There is a much newer version of the environment that works in a wide variety of Lisps. Please see http://act-r.psy.cmu.edu/software for details.

Linux users should be aware that speed varies greatly with different Lisps.  From fastest to slowest: Clisp, ACL, CMUCL. Also note that compilation of programs is very important.

Version 4.0

ACT-R 4.0 is written in Common Lisp, and should compile and run properly on any Common Lisp system. 

Scripting extensions are also available.

ACT-R/PM

While ACT-R/PM for Version 4.0 was written in and works best under MCL, all of the "core functionality" of ACT-R/PM is written in standard Common Lisp and will run under any ANSI- or CLtL2- compliant Common Lisp.  Versions for ACT-R Version 4.0 and 5.0 are both available. ACT-R/PM is now included in the basic ACT-R distribution (5.0), so unless you want the absolutely latest version of /PM, you are likely to be quite happy with the main release now.

Back to Table of Contents


(G6) Who uses ACT-R for what?

ACT-R is used primarily to model experimental psychology data. Researchers at CMU, George Mason, and RPI work on this topic.

ACT-R has also been used to model behavior in synthetic environments. Researchers at CMU have worked on this.

You can also browse the 2002 workshop talks to get an idea of who was working on what, as well as the published and contributed models on the main web site and the online proceedings of the previous workshops.

More projects are going on, but we are waiting for further comments in this section.

Back to Table of Contents


(G7) How can I learn ACT-R?

Probably the best way to learn ACT-R is to actually visit a site where people are actively using ACT-R, and stay for as long as you can manage (months rather than days). In order to help people, however, there are two tutorials available for ACT-R. There is also often a summer school at CMU that lasts a week or two (see question G2).

ACT-R 4.0 tutorial is no longer available. (I would include a pointer or host it if offered.)

ACT-R 5.0 tutorial

Robert West has some materials for introducing ACT-R to students.

Back to Table of Contents


(G8) Is ACT-R the right tool for me?

ACT-R is useful for modeling human cognition. It is particularly strong in modeling traditional, so-called, experimental psychology data, modeling cognitive psychology data, and as serving as a way to cumulate the results in these areas. If you are interested in understanding and predicting data in these areas, it should be considered a possible tool for you.

Some people are starting to use ACT-R to model interaction between users and computer interfaces using ACT-R/PM, and in this area ACT-R might be the right tool for many people.

ACT-R is probably not as useful when employed as an AI programming language, although its learning algorithms may be interesting to some.

Back to Table of Contents


(G9) Is there any support documentation available for ACT-R?

ACT-R/PM Documentation: chil.rice.edu/byrne/RPM/docs/index.html

ACT-R 4.0 Documentation: act.psy.cmu.edu/ftp/release/ACT-R_4.0

Beta version 5.0 documentation is not yet complete, but the tutorial and lecture notes are very useful resources.

ACT-R 5.0 Tutorial: act-r.psy.cmu.edu/tutorials

ACT-R 5.0 Lecture Notes at the post-graduate Summer School at Carnegie Mellon University: act-r.psy.cmu.edu/ftp/workshop/Workshop-2001/schedule.html

Also see the 1998 book, Atomic Components of Thought.

Back to Table of Contents


(G10) How can I find out what bugs are outstanding in ACT-R?

Bugs can be reported at act-r-users-request+@andrew.cmu.edu

Helpful, general, information on composing a bug report can be found here. Basically, as you may already know, the clearer and more concise and more repeatable your bug is, the more help can be given.

So, the answer is to read the FAQ, listen to the mail server for now.

Back to Table of Contents


(G11) How does ACT-R currently stand as a psychology theory?

ACT-R is designed to be exclusively a cognitive architecture.  It has not attempted to make claims within the area of expert systems or artificial intelligence as Soar has.  So its success and failures can be examined solely with respect to how well it fits known psychology data, unifies various areas of psychology, and makes novel predictions.

ACT-R currently attempts to cover data in memory, attention, visual processing, problem solving, development, and learning.  In these areas, these models are reported in the core literature, and have to be taken seriously indeed.  A list of current models is available here

Preliminary work is also going on to model language processing, emotions, and conversation.   So, not all areas of Newell's vision for unified theories of cognition are covered yet, but an increasing range of models are being built, and they are starting to be used be a wide range of psychologists.

There are several papers comparing ACT-R and Soar, see, for example,

Johnson, T. R. (1997). Control in Act-R and Soar. In M. Shafto & P. Langley (Eds.), Proceedings of the Nineteenth Annual Conference of the Cognitive Science Society.  343-348. Hillsdale, NJ: Lawrence-Erlbaum.

Jones, G. (1996). The architectures of Soar and ACT-R, and how they model human behaviour. Artificial Intelligence and Simulation of Behaviour Quarterly, 96 (Winter 1996), 41-44.

Ritter, F. E., Shadbolt, N. R., Elliman, D., Young, R., Gobet, F., & Baxter, G. D. (2003). Techniques for modeling human performance in synthetic environments: A supplementary review. Wright-Patterson Air Force Base, OH: Human Systems Information Analysis Center. Appendix C. Description of ACT-R and Soar. [Abstract].

Pew, R. W., & Mavor, A. S. (Eds.). (1998). Modeling human and organizational behavior: Application to military simulations. Washington, DC: National Academy Press. books.nap.edu/catalog/6173.html. This also reviews several other architectures.

Back to Table of Contents


(G12) What meetings are there of the ACT-R community?

The ACT-R community meets annually at the ACT-R Workshop.  This year's (2002) workshop was held at Carnegie Mellon University from August 2 to August 4.

Various other meetings occur throughout the year.  One example is the Winter Workshop on ACT-R models of Human-System Interaction.  The community is also often seen at the Cognitive Science Conference and at the International Conference on Cognitive Modeling.

Back to Table of Contents


(G13) What are the implications of ACT-R in education?

Anderson, J. R., & Schunn, C. D. (2000). Implications of the ACT-R learning theory: No magic bullets. In R. Glaser (Ed.), Advances in instructional psychology: Educational design and cognitive science, 5 (1-33). Mahwah, NJ: Erlbaum.

Anderson, J. R., Corbett, A. T., Koedinger, K. R., & Pelletier, R. (1995). Cognitive tutors: Lessons learned. The Journal of the Learning Sciences, 4 (2), 167-207.

Koedinger, K. R., Anderson, J. R., Hadley, W. H., & Mark, M. A. (1997). Intelligent tutoring goes to school in the big city. International Journal of Artificial Intelligence in Education, 8, 30-43.

And a couple more that address the issue of the "perceptual chunking" phenomenon that deGroot chess results famously illustrate:

Servan-Schreiber, E. & Anderson, J. R. (1990). Learning artificial grammars with competitive chunking. Journal of Experimental Psychology: Learning, Memory, and Cognition, 16, 592-608.

Koedinger, K. R. & Anderson, J. R. (1990). Abstract planning and perceptual chunks: Elements of expertise in geometry. Cognitive Science, 14, 511-550.

Back to Table of Contents


Section 2: Technological and Programming Questions


(T1) How can I make my life easier when programming in ACT-R?

Creating ACT-R models can be difficult for several reasons.  You may have syntactic problems.  In this case, a good text editor like Emacs under Unix, PCs, or Macs can help.  BBedit on the Mac may also help.  In any case, if you are going to program ACT-R a lot, or already know one of these editors, you may find them useful.

Once you have the model built, and the rules load, the next problem is to tell what's going on.  The ACT-R interface or the ACT-R Environment provides several displays to tell you what rules are loaded, what the buffers contain, and the contents of working memory.  You should learn to use these tools.

Knowing Lisp also becomes important. You don't have to know Lisp to program ACT-R, but those who don't in the end have to learn it as their model gets more complex and they want to write code to run the model 3 times, load some task, and then save the data because doing it by hand is getting tedious.

Some online lisp tutorials exist to help you along:

www.apl.jhu.edu/~hall/lisp.html, an extremely thorough list of lisp links, publications, and tutorial materials for all skill levels, from beginning lisp programmers to more advanced users.

Some also like http://www.psychologie.uni-trier.de:8000/projects/ELM/elmart.html

There is a set of commands and tools for Emacs (a mode) for editing ACT-R by Hedderik van Rijn. If you use Emacs, this will help you.

Finally, there are some less used functions and functionality that are in the ACT-R manual and a similar but deeper story for lisp and the lisp manual.  You should read/skim the manual before you get in trouble rather than after.  Not so that you can retrieve the functions on the first attempt, but so that you know that these functions exist.

Back to Table of Contents


(T2) How can I write fast code?

Why would you want to write fast code?  You should want to write cognitively plausible code!

That said, you may wish your simulation to run faster, that is, to simulate faster than real time.  There are a few hints we can already note, although it does not appear to have been as active an area of work as for Soar.

* Make sure ACT-R is compiled and that your task simulation is compiled.

* turn off the real-time setting, which delays ACT-R so that it appears to run in real time.  (pm-set-params :real-time nil).

* turn off as many tracing variables as you can find.  It is the printing of the trace that slows you down the most.

* reduce function calls to your own trace functions or to special computations, where possible.

* if you are interacting with an external simulation, you can speed up your model by creating an abstract version of the simulation.

* in extreme cases, rarely done, you might simply create a function that describes what the model will do, and evaluate that function in lisp or your favorite language. 

An example of this done with Soar is available at: acs.ist.psu.edu/papers/ritterW98.pdf

Ritter, F. E., & Wallach, D. P. (1998). Models of two-person games in ACT-R and Soar.  In Proceedings of the Second European Conference on Cognitive Modelling.  202-203. Thrumpton: Nottingham University Press.

Also see T. A. Polk and A. Newell, "Deduction as verbal reasoning," Psychological Review, vol. 102, pp. 533-566, 1995, for another example.

Andrew Howes has done this as well. I would put in a citation if I had one to hand.

This approach is often used in mathematical psychology, an area related to cognitive modeling.

Back to Table of Contents

(T3) Are there other tools?

The ACT-R site at CMU maintins a list models that are available online. It also has a list of models referenced in published papers. Some of these models are availble upon request.

Chris Schunn [insert link] has created a spreadsheet to compute and display model/data fits.

Old versions of ACT-R are available on the main site at http://act.psy.cmu.edu/ftp/release/

Back to Table of Contents

(T4) What are some subtlties with rule compilation?

[For a general overview of the possible problems in this area, see the Soar FAQ. In the Soar community rule compilation (chunking in the old Soar terminology) has probably been the largest source of subtle bugs over Soar's entire history. -FER]

So, at 12:28 PM +0200 7/23/03, Wolfgang Schoppek wrote (and John Anderson answered).

I've some questions concerning production compilation.

 

1. Is it true that "implicit retrievals" (i.e. retrievals stated in the condition part of a production) prohibit production compilation?

An example:

(p stop-waiting-retrieval-minus
  =goal>
    isa aa-prob
    lt =lt
    op =op
    ...
  =op>
    isa operator
    sg minus
    nm =nm
   !eval! (null *retrieval*)
 ==>
   ...
  =goal>
    op minus
    nm =nm
   ...)

... will not be merged with the following production because of the implicit retrieval of =op (?).

yes

2. How can I unpack the content of chunks that are in the goal without such implicit retrievals? In the above example, I can't simply write:

(p stop-waiting-retrieval-minus
  =goal>
    isa aa-prob
    lt =lt
    op =op
  ...
 ==>
  +retrieval>
    isa operator
    sg minus
    nm =nm
  ...)

... because I dont't want to retrieve some operator, but exactly the one that is bound in the goal (=op).

Consider the following and run it:
 
(clearall)
 
(sgp :esc t :epl t)
 
(chunk-type thing slot step)
 
(add-dm (chunk1 isa thing slot chunk2 step start)
        (chunk2 isa thing))
 
(goal-focus chunk1)
 
(p request
   =goal>
     isa thing
     slot =chunk
     step start
==>
  =goal>
     step retrieving
  +retrieval> =chunk)
 
(p harvest
    =goal>
      isa thing
      step retrieving
    =retrieval>
      isa thing
==>
   =goal>
      step done)
 

(Dan Bothell also noted that this is a special syntax in ACT-R 5, called a direct retrieval.)

Back to Table of Contents


End of ACT-R FAQ