When Agent-Oriented Programming Works

posted: December 4, 2012 | author: Woolpert Labs

Provided by guest blogger, Matt Hutchinson, Woolpert, Dayton

There are several paradigms available within computing to write software, and although the final outcome (what the software actually accomplishes) may be the same, the paradigm used can make a difference for the programmer—especially with regards to flexibility in conceptual representation, design and maintenance. Two well-known programming paradigms are procedural programming and object-oriented programming. Following on from these is the agent-oriented programming paradigm. Much like the change that object orientation brought by abstracting upwards from procedural programming, agent-oriented programming brings an abstraction up from objects.

An agent is described by Wooldridge and Jennings (1995) as “a computer system that is situated in some environment, and that is capable of autonomous action in this environment in order to meet its design objectives.” Related to this, Wooldridge (2002) defines an intelligent agent as also being reactive, proactive or social. Some applications use only one agent, but often more than one agent is required due to complexity or conceptual modeling; these are called multi-agent systems (MAS) (Ferber, 1999). Looking at some of the agent properties from Jennings, et al. (1998), interaction and autonomous behavior in particular are standouts with regard to multi-agent systems. Agents are capable of sending messages to each other, which can be as simple as a single message (to which a response may not even be sent) or as complex as a whole session of messaging, using established protocols, between one or more agents. Depending on how the system is designed, the MAS may have competitive or cooperative agents.

Researchers at Woolpert have used agent-oriented software in several geospatial applications, including:

  • Geocoding
  • Simulation and modeling
  • In-flight decision making for unmanned aerial vehicles (UAVs)

In each of these cases, the agent-oriented approach was used for different reasons. For the geocoding application, the benefit was representing the geographic entities in geocoding (state, suburb, zip code, street, house number, etc.) as agents, which is a benefit of representation. The spatial relationships between these entities and processing were then represented as messages between agents. For simulation and modeling, the serious gaming platform VBS2 was used to model crowd behavior and introduce coordinated, goal-oriented behavior among the “people” in VBS2. Each person in the simulation was represented by an agent, and agent messaging was used for coordination between people. This application utilized the reactive, proactive, social and autonomous aspects of agent software to provide people in VBS2 capable of interesting behaviors. Recently the agent software approach has also been used in UAV research for its decision-making and goal based processing, with Woolpert staff experimenting with using geographic information to optimize UAV behavior given other incoming data.