How to Develop Intelligent Agents in an Easy Way with FAIA

How to Develop Intelligent Agents in an Easy Way with FAIA

Jorge Roa (CIDISI-UTN-FRSF-CONICET, Lavaise 610, 3000 Santa Fe, Argentina), Milton Pividori (CIDISI-UTN-FRSF-CONICET, Lavaise 610, 3000 Santa Fe, Argentina), Ma. De los Milagros Gutiérrez (CIDISI-UTN-FRSF-CONICET, Lavaise 610, 3000 Santa Fe, Argentina) and Georgina Stegmayer (CIDISI-UTN-FRSF-CONICET, Lavaise 610, 3000 Santa Fe, Argentina)
DOI: 10.4018/978-1-61350-456-7.ch209


In Artificial Intelligence courses, the development of intelligent agents is a common practical work. However, it is a programming extensive and consumed time practice that much of the time the student cannot solve in full and in time. In this work the authors present FAIA, a framework to develop intelligent agents giving a partially design solution. With FAIA the teacher and student will have benefits. On the one hand, it helps to guide in the correct design and learning process. On the other hand, it helps in the teaching and evaluation process.
Chapter Preview


After several years of teaching an Artificial Intelligence (AI) course, we have detected some problems in the teaching/learning methodology used. First of all, students know how to do programming in different languages and have different programming skills. Second, there is a short period of time to solve the practical work to pass the course and pitfalls in it can result in a low score, sometimes even in the student re-doing it. Third, the practical work needed for course approval, in order to be useful, must involve the development of an agent, its strategy to solve problems and the environment where the agent acts. Finally, evaluation of this practical work takes a lot of time, and at the same time it is difficult to qualify the student because of the variety of presented designs, the need to inspect the code and the different programming levels.

The most common mistakes committed by students are: (i) not separated responsibilities between agents and the environment, (ii) incorrect object-oriented design, (iii) lack of graphical representation for the results (i.e the solution of a search tree when the agent uses a search algorithm as a decision mechanism) and (iv) delay in the due date. Some of those mistakes are hard to eliminate, such as (i) and (ii), while (iii) takes lot of time, resulting in more delay in the work delivery.

In order to solve the mentioned problem we have designed a framework for AI agents (FAIA) that can be used by students for the practical work development, which pursues the following objectives:

  • to provide a framework that can be instantiated in order to develop, in a easy and quickly way, an agent and its environment;

  • to provide well defined agent and environment (or simulator) interfaces, where each interface properly describes the respective responsibilities;

  • to provide well-defined interactions between an agent and its environment;

  • to provide a well-designed and easy-to-understand architecture for intelligent agents development, such as a problem solving agent or a knowledge based agent;

  • to allow modular agent development;

  • to provide a guide in the agent knowledge base development;

  • to provide the basic strategies for search, such as depth search, breadth search, best-first search, among others;

  • to provide a simple graphical representation of a search tree;

  • to provide teachers with a useful tool for fair evaluation of several possible solutions to a given practical problem.



During the last two years we have been working on the development of FAIA, with the objective in mind to offer a tool that could help students in the development of agents as well as professors in the evaluation of these agents.

FAIA was developed as a practical framework (Fayad & Johnson, 1999)(Johnson & Foote, 1988) that encloses the most important concepts of intelligent agents according to the traditional AI book of Russell & Norvig (2003). On the one hand, the provided partial design of an agent avoids pitfalls in the development of the practical work, and at the same time it is a kind of guide to students that directs the agent development in the correct way. On the other hand, the framework helps professors in the evaluation process, due to the fact that the object-oriented design is identical in all the solutions and they have to inspect if the interfaces are well implemented.

FAIA has been used during the first semester of 2008 in the AI course developed at Universidad Tecnológica Nacional - Regional Santa Fe - Argentina (UTN-FRSF)1, with successful results. While learning the framework requires extra time in the development of the practical work, its use reduces mistakes and necessary revisions, at the same time helping students: (i) to design the software solution, (ii) to select the strategy to be used, (iii) to understand the modular composition of an agent, (iv) to understand the interaction between agents and environment, (v) to finish the practical work on due time and in full, and finally (vi) to show the results in a suitable graphical way.

Complete Chapter List

Search this Book: