Section 0: Introduction
Section 1: General Questions
(G0) Where can I get hold of the ACT-R FAQ?
(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?
(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?
Section 2: Technological and Programming Questions
(T0) How can I make my life easier when programming in ACT-R?
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. If, however, 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 "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, Christian Lebiere has helped. The views expressed here are those of the authors and should not necessarily be attributed to the Pennsylvania State University, nor should have contributed be seen as agreeing with all the comments herein. Support for this work has been provided by the Penn State Women and Science in Engineering program.
Frank E. Ritter (ritter@ist.psu.edu)
Natalie Shiskowski (nus112@psu.edu)
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, and to the following newsgroups:
sci.cognitive and the ACT-R 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.
ACT-R is a proposed unified theory of cognition realised 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]
Here are some introductory materials to get you started. A more complete list is available at the ACT-R homepage, at act.psy.cmu.edu/act/.
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.
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.
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 also much useful information at the Pennsylvania State University, in the Applied Cognitive Science Lab.
There is an ACT-R homepage associated with the University of Groningen.
Research is ongoing at George Mason University in the Applied Research in Cognition and Human Factors (ARCH) Lab.
To subscribe to the ACT-R-group mailing list, you should send an e-mail to ACT-R-users-request@act-r.psy.cmu.edu asking for your name to be added to the list. If you decide that you wish to unsubscribe from the ACT-R-group, you should send an e-mail to ACT-R-users-request@act-r.psy.cmu.edu asking for your name to be removed from the mailing list. There are also archives of the ACT-R mailing list, which may have the answer to your questions.
There is also a low-volume list, act-r-announce@act-r.psy.cmu.edu
General information about this mailing list is at: http://act-r.psy.cmu.edu/mailman/listinfo/act-r-announce .
At present there is no ACT-R newsgroup.
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 the 2002 event can be found here.
Tutorials on ACT-R also sometimes appear at the Cognitive Science Conference (e.g., on the 2002 tutorial program) and the International Cognitive Modelling Conference.
ACT-R's official name is an acronym for 'the adaptive control of thought', is based upon the ACT Theory (Anderson, 1976). We have also seen it as another acronymn based on the 1998 book's title, the Atomic Components of Thought - Rational.
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: on a Macintosh, Mac CL; on a PC, Allegro; and on Linux/Unix, Clisp, ACL, or CMUCL.
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., ACT-R/PM). It, and its related files, are available from http://jactr.sourceforge.net/
ACT-R/PM:
While ACT-R/PM 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. ACT-R Version 4.0 and 5.0 are both available..
Beta version 5.0:
If you are using a Macintosh with MCL, you can use your ACT-R environment by running MCL and loading the file ACT-R loader.lisp.
Windows users with ACL 5.0.1 with the IDE can also use this same ACT-R environent by running ACL (with the IDE) and load the ìloadme.lspî file.
Other Lisp users can run obtain ACT-R 5.0 in either .zip or .sea.hqx form. After unpacking the files, you will need to load the "+ load-rpm.lisp" file.
Also necessary for other Lisp users is a scripting extensions file, also available in .zip and .sea.hqx forms. This file contains mean-deviation and correlation functions that the unit models uses.
Linux users should be aware that speed varies greatly with different Lisps. From fastest to slowest: Clisp, ACL, CMUCL.
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 is used primarily to model experimental psychology data. Researchers at CMU and George Mason work on this topic.
ACT-R has also been used to model behaviour in synthetic environments. Researchers at CMU have worked on this.
You can also browse the 2001 summer school 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.
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. Each year there is also often a summer school at CMU that lasts a week or two (see question G2).
Robert West has some materials for introducing ACT-R to students.
ACT-R is useful for modeling human cognition. It is particularly strong in modeling traditional, so-called, experimental psychology data and 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 as an AI programming language, although its learning algorithms may be interesting to some.
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 Beta Tutorial: act.psy.cmu.edu/ACT-R_5.0
ACT-R 5.0 Lecture Notes at the post-graduate Summer School at Carnegie Mellon University: act.psy.cmu.edu/ftp/workshop/Workshop-2001/schedule.html
Also see the 1998 book, Atomic Components of Thought.
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.
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.
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. (in press). 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. (soon to be online).
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.
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.
The ACT-R community meets annually at the ACT-R Workshop. This year's (2002) summer school will be held at Carnegie Mellon University from July 24 to August 4, with the workshop on the last weekend.
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.
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 with less than 256M of memory 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 tell what's going on. The ACT-R interface 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. We are looking for online lisp tutorials to refer you to here.
Finally, there are some less used functions that are in the manual. You should read 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.
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 does not appear to have been an as active an area of work as for Soar.
* 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.
This approach is often used in mathematical psychology, an area related to cognitive modeling.