TRINITY UNIVERSITY
Laboratory for Distributed Intelligent Agent Systems
Copyright 2007-2008 Trinity University | Department of Computer Science

Project 1. Cognitive Agents for Social Environments

Agent-based modeling of human social behavior is an increasingly important research area. Many fully functional multi-agent systems have been developed and have been put to use over the years. But efficient scalable and robust social systems are difficult to engineer, both from the modeling perspective and the implementation perspective. There exist three important difficulties. First, the system needs to have an adaptable agent framework that can successfully make intuitive and deliberative decisions much like a real social participant would. Secondly, the system must have a robust architecture that not only ensures its functioning no matter the simulation, but also provides an easily understood interface that researchers can interact with while running their simulations. Finally, the system must be effectively distributed to handle the necessary number of agents that social researchers require to obtain meaningful results.


PROJECTS
Project 2. CASESim

The Service-Oriented Architecture (SOA) is a design pattern commonly used in many large corporations, such as NASA. It provides a flexible and stable architecture for large scale software systems. For this reason we felt it would be a good fit for the distributed multi agent system we were developing.

SOA requires that services should be "loosely coupled" in other words encapsulated and have as few dependencies on other services as possible. This allows for services to be easily swapped and their implementation to be easily upgraded. One service could easily be swapped out for another service that accomplishes the same result.


Project 3. Advanced Data Structures and Algorithms for High Performance Massive Multi-Agent Systems

For a mult-agent system to be effective at dealing with the large number of agents required for social research, it has to be highly distributed both in processing as well as memory. To achieve this we developed a Master/Slave system.

The system has a single master server in charge of initializing and synchronizing the other servers (slaves). The master’s responsibilities include initializing each step, facilitating agent communication and agent movement from one server to another, and most importantly load balancing all of the servers to ensure optimal performance. The slave is originally initialized with a given bounds and a set of agents. The slave’s responsibility is to update all of its agents each step, this is a two step process:
First it updates all of the agents' knowledge for what they perceived that step
Secondly it has each of its agents implement its decided action for that step.

The agents are run in the maximum number of threads the server can handle; this ensures optimal performance through parallelization. To ensure effective load balancing the master keeps track of the rest of the server by using a KD tree (kdimensional tree). The KD tree works by splitting the bounded region of the simulation on a different axis each time, until there is a single leaf per slave server. Splitting the region up in this manner allows the master server to go in and shift these splits one way or the other to balance the load between slaves. By shifting a KD split, the master server reduces the amount region and the amount of agents that a slave server is responsible for, and by doing so alleviates that server’s load.
To ensure effective load balancing the master keeps track of the rest of the server by using a KD tree. The KD tree works by splitting the bounded region of the simulation on a different axis each time, until there is a single leaf per slave server. Splitting the region up in this manner allows the master server to go in and shift these splits one way or the other to balance the load between slaves. By shifting a KD split, the master server reduces the amount region and the amount of agents that a slave server is responsible for, and by doing so alleviates that server’s load.

Project 4. Simulating Urban Dynamics with Multi-Agent Systems

Multiagent systems are increasingly used to identify and analyze the social and economic problems of urban areas and provide solutions to these problems. Only after the advent of sophisticated computer games such as "SimCity" and "The Sims" along with the discipline of multiagent systems would social scientists be convinced that computer code could be used as a method of formalizing once only textual social theories.

Multiagent simulations of urban dynamics offer new approaches to solving:

Housing problems
Financing of housing and urban infrastructure
Municipal managements
Urban land use
Other problems related to the social and economic life of cities

In addition, multiagent systems could be used to predict and understand various changes in social and economic "climate" of a city such as rapid population growth or migration, geographic expansion or economic collapse.

Home    

Program    

Projects    

People    

Apply    

Contact   

FAQ   

_______________________