University of Virginia, Department of Computer Science
CS655: Programming Languages
Spring 2001

Project Proposal
Weilin Zhong
26 March 2001

Ant Routing Simulations with StarLogo, Swarm and GPL

 

1. Problem 

Swarm

Swarm is a decentralized and autonomous multi-agent system, which consists of myriad simple and cooperative individuals. As individuals, swarm agents behave with simple rules and based on local information; as a collection, they are running in a common environment and collaborate to achieve remarkable global goals. Their intelligence lies on the interactions among individuals and between individuals and the environment.[1] With the envision of the ubiquitous computing, large scale cooperative networks composed of myriad small sensors and actuators will be a major swarm application. The inherently autonomous, decentralized and emergent features of swarm computing present new challenges to traditional programming model. We need new programming languages and models to program for swarm applications. [2]

 

Ant Routing

Ant routing algorithms apply the swarm intelligence into the network routing problems. Derived by the forage model of real ant colonies, ant packets are used to explore the best route between specified source and destination nodes. Many works have been done on ant routing.[3][4][5][6] Based on some experiments, those work even argue that the ant routing algorithms are more efficient, robust and scalable than many traditional routing algorithms. [3][4]

 

The basic ideas of ant routing are described as follows. Instead of having fixed next-hop value, the routing table will have multiple next-hop choices for a destination, with each candidate associated with a possibility, which indicates the goodness of choosing this hop as the next hop in favor to form the shortest path. These possibility values are initially equal and will be updated according to the ant packets pass by. Given a specified source node and destination node, the source node will send out some kind of ant packets based on the possibility entries on its own routing table. Those ants will explore the routes in the network. They can memory the hops they have passed. When an ant packet reaches the destination node, the ant packet will return to the source node along the same route. Along the way back to the destination node, the ant packet will change the routing table for every node it passes by. The rules of updating the routing tables are: increase the possibility of the hop it comes from while decrease the possibilities of other candidates. Compared with the real ant foragers, changing routing table is just like laying down some virtual pheromene on the way thus affects the route of the subsequent ant packets. Since the route with higher possibility is always favored, so more ants will pick up that route, and further increase its possibilities and in turn attracts more ants. With this positive feed-back loop, we can expect a best path will be quickly emerged. What's more, with the changing of network load, when a new best solution come up, we also expect that it could be identified and enforced by ant packets too. So ant routing is much more dynamic, robust and scalable.

 

To effectively and efficiently describe the ant routing algorithms, we need either new programming languages and models or extend the currently available general-purpose languages. My work will be evaluating different methods. .

2. Related Work

StarLogo[7]

StarLogo is a programmable modeling environment for exploring the workings of decentralized systems -- systems that are organized without an organizer, coordinated without a coordinator. StarLogo provides the ability to program a system that is composed of thousands of graphic pathes and turtles. Turtles are the agents that run in the environment composed by pathes. Both turtles and pathes can execuate commands and procedures. Turtles and pathes can interact with each other, for example a turtle can move and execute some commands or procedures to change the states of the pathes it pass by. StarLogo provides a very simple language to describe the behaviors of turtle and pathes. It also provides a run-time enviroment to run thousands of turtles and pathes in parallel. In additionally, StarLogo also provide a observer command center to setup and influence the system. All these functionalities are provide with a user-friendly graphic interface. So StarLogo is well-suited for the simulation of artifical life.

 

SantaFe-Swarm[8]

The Swarm simulation development kit distributed by Santa Fe Institute is a toolkit for Java. It provides a library to support swarm primitives and lots of useful analysis tools to facilitate the analyse of the simulated systems. The popular Java program and well-support of analyse interfaces will be its major advantages.

 

GPL[9]

Growing Point Language(GPL) is developed under the MIT's "amorphous computing" project. It is a programming language designed for programming with amorphous computing medium, which is a collection of computational particles. These particles are programmed identically and each one has means for storing local states. Each particles can diffuse and sense a kind of pheromone to interact with each other. A growing point is an activity of a group of neighboring particles which can be propogated. When a growing point passes through a neighborhood, it may modify the state of the particles it visits. Eventually, a collaborative pattern will form within a global area of particles. Based on the consideration that, ant routing is just to form a special pattern--a network topology on the router collections, GPL might work well for ant routing algorithms. Maybe it will be somewhat difficul, but I will try to match the ant routing senario to the GPL models

3. Research Plan

Try to use different programming languages and models to make ant routing simulations. Then based on the direct programming experience, compare the advantages and disadvantages of these languages and models, on the specific aspect of ant routing problems. If necessary, propose improvements. If possible, try to discuss them in the more general context of programming requirements for general swarm applications. Specially, identify the best one that is suitable for the specific requirements for my future research-security issues on ant routing algorithms.

 

Concrete Schedule:

First Week(Mar.27-Apr.3): implement the ant routing simulator with StarLogo

Second Week (Apr.2-10): Implement ant routing simulator with SF-Swarm

Third Week ( Apr.11-21): Try to map ant routing to GPL

Forth Week ( Apr.22-28): Compare and Evaluate those implementations, make conclusion.

Note: This is draft timetable, which will be adjusted according to actual working progress to meet the DEADLINE: MAY 1.

4. Evaluation

The criteria of success for this project are:

1.      Successfully implement ant routing simulation in two of the languages;

2.      Make a reasonable comparision for these languages. The comparision criteria are :

a.       The amount of time to learn this languages;

b.      The effort it takes to implement the ant routing in this languages, for example, the time and brain efforts that have been put into;

c.       The length of code and the readability of the code;

d.      How effective/non-effective it is to describe the ant routing problem(Whether need to make any significant adjustment to both the language and the ant routing problem);

e.       How effective/non-effective to analyze the simulation implemented in this language;

f.        How is the extendability and reusability of the programs implemented in this language, for example for various versions of ant routing algorithms;

g.       How is the performance of the simulation implemented in this language, for example, the execution time;

h.       For specific requirement of security issues, is this language desirable?

3.      The most important, to get an ant-routing simulation that is suitable for my later research on the security issues.

4.      Get a deeper sense on all of these issues: ant routing algorithms, special requirements for swarm applications, swarm intelligence and its applications, and distributed control or program methods.

References

[1] Eric Bonabeau, Marco Dorigo, Guy Theraulaz, "Swarm Intelligence: from Natural to Artificial Systems", Santa Fe Institute, Oxford University Press, 1999

[2] David Evans, "Programming the Swarm".

[3] Gianni Di Caro, "AntNet: Distributed Stigmergetic Control for Communications Networks", Journal of Artificial Intelligence Research 9 (1998): 317-365

[4] Gianni Di Caro, "Two Ant Colony Algorithms for Best-effort Routing in Datagram Networks"

[5] R.Schoonderwoerd, O.Holland, J.Bruten and L.Rothkrantz, "Ant-based load balancing in telecommunications networks"

[6] Tony White, "Routing With Swarm Intelligence", SCE Technical Report, SCE-97-15

[7] StarLogo website, http://www.media.mit.edu/starlogo

[8] Swarm website of Santa Fe Institute, http://www.swarm.org/

[9] Coore, D. "Botanical Computing: A Developmental Approach to Generating Interconnect Topologies on an Amorphous Computer", Ph.D. thesis, MIT department of Electrical Engineering and Computer Science, Dec.1998

[10] Hal Abelson, et.al., "Amorphous Computing", Communication of the ACM, May 2000

Collaborators

None.