In his book “Unified Theories of Cognition,”Newell (1990) called upon researchers to formulate general theories of cognition in the form of cognitive architectures. A cognitive architecture is a computational modeling platform for cognitive tasks. An architecture should offer representational formats together with reasoning and learning mechanisms to facilitate modeling. For Newell, this was not the most important aspect of an architecture. In addition to facilitating modeling, an architecture should also constrain modeling. Ideally, an architecture should only allow cognitive models that are cognitively plausible, and it should disallow or reject cognitive models that do not correspond to possible human behavior. Newell proposed Soar (see Chapter 3) as his candidate theory, but also mentioned ACT* (Anderson, 1983) as a possible contender. The ACT-R architecture (Anderson et al., 2004) is the successor of ACT*, and is, contrary to its predecessor, a fully implemented system that is continuously updated and expanded. The current version, ACT-R 6.0, is capable of interacting with the outside world, has been mapped onto brain structures, and is able to learn to interact with complex dynamic tasks. Consistent with Newell's goals, ACT-R is a simulation environment that supports the creation of cognitive models that are capable of predicting and explaining human behavior. As such, it can be instrumental in multi agent simulations, where an ACT-R-based agent can play the role of a human. ACT-R's main source of constraint is the theory of rational analysis. According to rational analysis, each component of the cognitive system is optimized with respect to demands from the environment, given its computational limitations.