09-07-2012, 12:15 PM
Using Java for Artificial Intelligence and Intelligent Agent Systems
Using Java for Artificial Intelligence.pdf (Size: 64.25 KB / Downloads: 82)
Introduction and Overview
Artificial Intelligence is at the forefront of innovation in computing. Recent
examples of common technologies derived from, or heavily influenced by, AI
research include object oriented programming (Smalltalk being a major case
in point), graphical user interfaces, and neural networks.
A relatively recent area of research centred on intelligent agents and
multi-agent systems is exploring the modelling of simple rational behaviours
in distributed applications. This research is expanding the boundaries and the
technologies of what is currently considered distributed programming by
mainstream engineering practice, and shows the potential for practical
application in the near future.
Agent Oriented Software Pty. Ltd. (AOS), based in Melbourne, Australia
has built JACK Intelligent Agentsä (“JACK”), a framework in Java for
multi-agent system development. The company's aim is to provide a platform
for both industrial and research applications; consequently, JACK has been
built having in mind efficiency, extensibility and ease of access to the Java
community.
Agent Oriented Programming vs. Object Oriented Programming
Intelligent Agents are currently the subject of research by a wide and varied
community worldwide. Intelligent agents have received various, if not
contradictory, definitions; this is not surprising, given the wide variety of
goals set by different researchers. Good starting points for a review of the
literature, even though not particularly recent, are papers by Wooldridge &
Jennings (1995) and Franklin & Graesser (1996). In general, researchers
agree that an agent is a complex object that shows some degree of autonomy
and social ability, and combines pro-active and reactive behaviours. We
discuss, in Section 6, a specific and successful model, the Belief-Desire-
Intention architecture, and how it incorporates the features mentioned above.
To help put agents and JACK into a correct engineering perspective, we have
included some general considerations regarding what has been called ’agent
oriented programming’ (Shoham 1993).
The approach of AOS
When Agent Oriented Software set out to design JACK Intelligent Agents it
had a few major goals deriving from the previous experience of its partners
and engineers with both distributed object oriented systems and intelligent
agents. These goals were: to provide developers with a robust, stable, lightweight
product; to satisfy a variety of practical application needs; to ease
technology transfer from research to industry; and to facilitate further applied
research.
Application development with JACK
In an ideal setting a developer building an application with JACK should start
by identifying the distributed functional components of the system. The
design of a multi-agent application requires a sound understanding of
distributed system development and distributed AI principles that we do not
discuss here. However, observe that in practical situations the decision as to
how to distribute functionality may be dictated by a number of external
constraints, such as the existence of legacy systems or a specific
communications infrastructure.
Let us assume, for the sake of this discussion, that the functionality to be
provided by an agent has been identified and that the BDI architecture
(Section 6) has been chosen as appropriate to the task. At this stage, two main
activities have to be performed (not necessarily in the order given below):