Development Portfolio Case Study: Multi-Agent Simulator (1999) Emergence Examples of technology created by Paul Tinsley
At Essex University, I developed an award winning Multiple Agent Simulation System that provided tools to conduct experiments with simple autonomous software agents. The objective was to observe how emergent functions and structure manifest within the collective behavior of artificial life-forms and then see how that may be applied to solving real-world problems. I developed a Microsoft Visual C++ graphical user interface that provided a wealth of tools to not only conduct experiments and gather data, but also to animate the actions of the agents in real time. The code was constructed using professional Object-Oriented programming techniques making extensive use of base classes, multiple inheritance, Microsoft Foundation Classes and the Standard Template Library. I was awarded the prestigious Addison Wesley Longman Prize for the best final year undergraduate project in all of the computing sciences for that graduation year.
First, we look at some agents that harvest ore. Then we look at a predator and prey scenario. Finally, see how such a system could be applied to modeling human behavior during escape from a building, to improve safety.
We create an environment with obstacles (pyramids), ore (red boulders) and a collection point.
I invented a non-heuristic shortest path algorithm that enumerated all minimum-cost paths from one single origin to all accessible points in the known environment. I added a color temperature gradient to the paths in the map editor, so that maps could be assessed in terms of the difficulty of reaching certain destinations. The search algorithm was used by the agents to navigate their world based upon information that they gathered through their percepts. Because the algorithm was non-heuristic, agents always knew if a location was accessible.
We configure and then execute a mining scenario and observe the agents harvesting ore in real time. We may accelerate, decelerate or pause time as desired. Scenarios may also be recorded and replayed. An agent depositing ore at the collection point.
At the end of the experiment, we can observe the emergent paths made by the agents. Notice the congregation points around ore deposits. The agents benefit by emergently grouping and harvesting ore without conflict, as ore is then harvested faster and gathered back at the collection point more efficiently. It pays to be social, so many aspects of social behavior are by evolutionary design, not by deliberate intent. Remember, these agents do not communicate at all, nor have any concept of other agents. Their collaborative efforts are purely emergent because they all focus on a common goal without the requirement for conflict.
That’s given us a taste of how agents may emergently collaborate and increase their efficiency by non-selfish behavior. Now let’s look at how agents emergently “flock” and thus improve their chances of catching prey …
We create a map with lots of space for the hunt to engage over and then execute a scenario. The predator agents increase pressure on the prey by limiting its options to evade the predators. Even though the predator agents do not communicate, they flock emergently and thus obtain real benefits by acting non-selfishly with common goals. The prey agent is eventually captured in this scenario as the flock eventually corners the prey.
Now let’s take a look at how we could use agents like this to simulate people evacuating a building during an emergency situation. Perhaps we could analyze congestion and use the feedback from the simulator to improve exit layout …
We create a map with rooms and occupants. The exit is represented by three crosses at the top. This agent is currently under observation, so we can examine the decisions made dynamically during the experiment. Currently the agent is idle because the experiment has not been run.
The scenario is executed and the agents race to the exit. We can observe this agent’s decisions whilst it struggles to optimize its escape, using its knowledge of the environment and perception of events unfolding in real time.
At the end of the experiment, we can observe the paths taken by all agents at any point in time. As there is only one exit, the paths look like the channels made by water running down a slope.
We can also observe the density or congestion points and this enables us to evaluate whether larger or additional exits are required to enable the expected volume of people to exit faster and more safely. This shows that Artificial Intelligence has real-world applications in terms of improving the design of systems to match emergent patterns of behavior.
We have seen a few examples of how simple autonomous agents without communication skills and without concepts of organizational behavior, may coalesce into functional groups and perform actions more efficiently through emergent processes, or expose flaws in an environment via emergent processes.