CIS 410/510 Modeling Cognitive Agents
Spring, 2004

Course Overview

This describes the various topics covered in the course, and what students should expect to learn.

Simulating human agents

The course explores issues and techniques involved in building computer simulations of human-like agents. Students will create virtual entities with percepts, goals, and actions, and deposit them into a simulated three-dimensional environment where they will appear as human-like characters.

Students will prescribe agent behavior in state transition diagrams that will be automatically transformed into executable code and linked to the agents in the environment. Students will analyze the interactive behavior of multiple agents in the system, observe the emergent properties of the system, and directly interact with the agents by entering the virtual environment as characters of their own (avatars) that they control in real time. Students will explore the issues involved in distilling agent behavior down to its essential components, such as the fundamental properties required for monitoring progress towards a navigational or task goal, navigating around obstacles and other players, and simultaneously pursuing multiple goals that compete for limited resources (multitasking). The course explores the issues involved in imbuing non-player characters with human-like behaviors and strategies, and the appropriate level of detail and abstraction that is required given the goals of the software designer.

Rapid-prototyping of complex agent behavior using minimalist abstract representations

The course explores an approach for rapid-prototyping of agent behavior that enables software designers to quickly sketch out behaviors, create executable code, deposit a few agents into a virtual world, and observe their behavior. The programmer can design agents in a complex gaming environment while working at a high level of abstraction.

Students will learn UML (Unified Modeling Language), a graphical language that is widely used to define, describe, and design software systems. The course will utilize UML as an abstraction language for defining agent behavior. Students will build their UML models using a commercial-grade UML modeling environment--IBM's Rational Rose--for which students will be granted software licenses for the duration of the course. Though Rational Rose will look good on a resume, its application in this context will more importantly serve to stretch the imagination with respect to how a modeling tool can benefit a wide range of problem domains. In this case, the tool will produce machine-readable code that is transformed into agent behavior.

Gaming

Students will learn issues associated with building real-time, character-based computer games. This course (as originally taught by Scott Douglass at Carnegie Mellon) was initially inspired and motivated largely to improve the behavior and programmability of NPCs (nonplayer characters, those that are not directly controlled by a human). This is a component of the course, but the gaming environment is a somewhat arbitrarily-chosen domain in which to explore the agent-based and other topics of the course. It is a useful domain for a number of reasons; for example, highly-sophisticated gaming environments are readily available as open source software.

Artificial Intelligence

The course is some extent an advanced-topics class in AI (artificial intelligence). Many AI systems are designed in an agent-based framework, with entities acting on their environment based on percepts, knowledge, and goals. In multi-agent systems, multiple entities interact with each other in the shared environment. The purpose of the system can be for individual agents to cooperate to solve their individual goals (such as multiple agents working together to search the web for information), to provide an overall simulation of behavior that emerges (such as wildlife simulations), or for other purposes. This class will engage students in the construction of multi-agent systems. Some of the projects will require the Lisp programming language. Students will learn how to program in Lisp, a powerful language that is well-suited for investigating AI problems using symbol systems.

Acknowledgments

This course is derived from a course of the same name taught by Scott Douglass at Carnegie Mellon University in Spring, 2003. This course utilizes the PLASTIC software system built by Scott Douglass. We thank Scott Douglass for sharing his software and course materials.

A.Hornof 4/1/04