This course requires doing a project in the area of intelligent agents. The project may involve doing a literature survey, an implementation of an agent application, or even a research paper on a problem and a proposed solution. Some topics suggestions appear below, classified according to the type of project. Projects should be done individually, unless an advance authorization for a group project has been obtained from the instructor (this will only be allowed if project components can be assigned to individual group members).
On December 2 or 3 students will give a short class presentation on their project and answer questions (you will be given a time slot in advance). This is worth 15% of the course's grade.
Your final report on the project is due by December 20. For literature survey projects, include an overview of the topic area, a discussion of the papers read, and a complete list of references; critical analysis is expected. For implementation projects, state the project's motivation and objectives, provide a readable description the system that was implemented (e.g. for Golog/ConGolog/IndiGolog programs, include a list of actions, fluents, procedures, agents, etc. each with an English explanation, and perhaps some diagrams to explain how the system behaves - e.g., state transition, dataflow, interaction diagrams), explain how the system is used, and describe the testing that was performed; include the documented code and sample tests in appendix. Also provide a discussion of how well the tools used in the project performed.
Recommended agent programming tools are:
Using IndiGolog in combination with JADE would be more challenging than using the other tools above because you would need to develop your own interface for this; you can look at the IndiGolog-Java socket interface in the elevatorWithGUI example and the IndiGolog-OAA interface library IgOAAlib for inspiration.
Possible applications include:
To get insights into how IndiGolog is used, try to do the following robot control assignment from a previous year. The assignment asks for ConGolog programs, but write IndiGolog programs instead; for this, you have to modify the specification to use only functional fluents and translate the given axioms and interpreter calls into IndiGolog notation. This application can also be a starting point for a course project.
Such a survey could also focus on a particular class of agent programming languages such as rule-based ones, e.g., AgentSpeak(L) and 3APL; see the references below and Wooldridge's Intro. to Multiagent Systems book for some discussion. Many features of these languages can actually be simulated in ConGolog/IndiGolog. You could write a compiler that takes a set of 3APL-style rules and compiles it into an equivalent ConGolog program. Then you could develop a set of examples to test your compiler. See the paper A. Gabaldon. Programming Hierarchical Task Networks in the Situation Calculus. In Proc. of AIPS'02 Workshop on On-line Planning and Scheduling, Toulouse, France, April 24, 2002.
Survey probabilistic or decision-theoretic extensions of Golog; see Chapter 12 Reiter's book for an introduction and some references; you could also experiment with the available implementations.
Survey work on implementions of Golog that support reasoning under incomplete knowledge; see Chapter 11 and Section 10.6 Reiter's book for an introduction and some references; see also recent papers by Ron Petrick, where efficient reasoning mechanisms that could be incorporated into IndiGolog are described. You could to try to extend the IndiGolog interpreter to incorporate some of this and test the result on some examples.
Another interesting area for agent application is contingency planning, i.e, generating plans that achieve goals in dynamic or nondeterministic environments. There is a fair amount of work on this that could be surveyed; see the references below. Also, a simple approach to contingency planning involves writing a program that simulates the environment and using it during planning, as proposed in [Lespérance & Ng 00]. You could try to extend the approach proposed there and implemented in interpreterN.pl to allow for nondeterministic environment simulators and generate conditional plans. One could also compare the qualitative approaches to contingency planning with the decision-theoretic approaches mentioned earlier.
There has been some work done on agent programming languages for agents that operate in environments with continuous processes, especially for robotics applications, for instance, cc-Golog; see the references below. You could survey this work. You could also experiment with cc-Golog.
Survey the area of agent architectures, looking at the tradeoffs between making plans and reacting quickly to dangers or opportunities, as well committing to plans versus making the best possible choice at any moment. See the general course references for starting points, especially the Wooldridge's Intro to Multiagent Systems book and Wooldridge and Jennings survey paper.
Survey work on high-level/knowledge-based control of vision systems for robotics applications; see below for references. We also have a testbed system for this and you could work with it.
Survey work on the use of agent technology in semantic web applications; see below for references.
Survey a particular type of application of agents, such as Internet information retrieval, cooperative work, etc. See the general course references for starting points, especially the books by Wookdridge, Jennings and Wooldridge, and Huhns and Singh.
You can experiment with one framework or compare several frameworks. You can also do a literature survey of the area, looking at many frameworks. See the references below.
In some cases, it may be possible to use a tool associated with the framework to perform simulation or verification, e.g. the ConGolog simulation tool or CASL's PVS theorem prover-based tool. You could also look at the use of model checkers to verify multiagent system specifications.
S.R. Thomas, A Survey of Agent-Oriented Programming. In Wooldridge, M. and Rao, A. (Eds.), Foundations of Rational Agency, Applied Logic Series, Vol. 14, pp. 263-274, Kluwer, Dordrecht, 1999.
Koen V. Hindriks, Frank S. de Boer, W. van der Hoek and J.-J.Ch. Meyer. Agent Programming in 3APL, Autonomous Agents and Multi-Agent Systems, 2(4):357-401, 1999.
A. S. Rao and M. P. Georgeff. An abstract architecture for rational agents. In C. Rich, W. Swartout, and B. Nebel, editors, Proceedings of the Third International Conference on Principles of Knowledge Representation and Reasoning, pp. 439-449, Morgan Kaufmann Publishers, San Mateo, CA, 1992.
Univ. of Michican's implementation of PRS.
Jim Firby's home page; has information on an implementation of RAP..
D. L. Martin, A. J. Cheyer, and D. B. Moran, The open agent architecture: A framework for building distributed software systems, Applied Artificial Intelligence, 13, 91-128, January-March 1999. Gnu-compressed PostScript version, HTML version.
The ConGolog simulation tool page.
E. Guere and R. Alami. A Possibilistic Planner that Deals with Non-Determinism and Contingency. Proc. of the 16th International Joint Conference on Artificial Intelligence (IJCAI'99), 996-1001, Stockholm, August, 1999.
M. Beetz. Structured Reactive Controllers - Robots that Perform Everyday Activity. In Proc. of the 3rd Int. Conference on Autonomous Agents, Seattle, WA, 1999.
E Gat. Integrating Planning and Reacting in a Heterogenous Asynchronous Architecture for Controlling Real-World Mobile Robots. In Proc. of the Tenth National Conference on Artificial Intelligence, 809-815, San Jose, CA, July 1992.
You can also look at the references for RPL and RAP.
P. Robertson and J.M. Brady. Adaptive Image Analysis for Aerial Surveillance. IEEE Intelligent Systems, 30-45, May/June, 1999.
P. Jasiobedzki, M. Abraham, P. Newhook, and J. Talbot. Model Based Pose Estimation for Autonomous Operations in Space. Proc. of IEEE Int. Conference on Intelligence, Information, and Systems. Washington, Nov., 1999.
These references, as well as documents from the CITO project High-Level Control of Vision Sensing Systems, are available from the instructor.