NETSECURITYDEGREE.COM
 

Student Projects

UAT student Andre Zeitler describes several A-Life programming class projects:

Flocking

This Agent-based model illustrates simple movement rules that result in behavior that resembles the flocking of birds, swarms of insects, or herding of sheep. The members of the flock try to head towards their target, keep near to each other, keep a certain amount of space away from each other, and face the direction their flockmates are heading and the direction of their target.

Agent-Based Model

Agent-based models have a wider range of implementation than the other programs discussed in the A-life class because each program can represent a different agent or life form. The idea is to create the agent with some basic properties in order to replicate the real thing. So this type of program could model the flocking of birds, the predator/prey relationship of creatures, or ant colony optimization, as my project demonstrates.
Ants in nature seem to wander around randomly until they find some food. They then bring some back to the nest while laying down pheromones. Other ants from the colony pick up on this trail and follow it back to the food.  As time passes, the pheromone begins to evaporate, thus closer pieces of food are more likely to be harvested as the longer trails disappear. Potentially, more features could be added to this program such as competing ant colonies, birth/death, and terrain, but for now its simplicity serves its purpose.

Download the program.
Download a version just to see how it works.

L-System

This was the first project I had to do for the Artificial Life Programming class.  The Lindenmayer system, or L-system, is a set of simple rules or symbols that is usually used to model the growth of plants. This program could be considered a simple string manipulation program, but it demonstrates the concept of emergent behavior, which is an important concept throughout A-life. Given a starting point and applying some simple rules, you can obtain complex results such as the Fibonacci number sequence.

Download the program.
Download a version just to see how it works.

Cellular Automata

A cellular automaton is a grid of cells, each cell having multiple states of being, with the cells being in a certain state at a certain point in time. The cell state is determined by its neighboring cells, and once the entire grid has checked for change, a new generation is created. This allows for a more complex and visual demonstration of emergent behavior.
The program I created is a simple cellular automaton, a 20 x 20 2-dimensional grid of cells, each cell having an on (1) or off (0) state. The user can then enter the neighbor rules for change and have those rules applied to a random initial grid or one of their making. This allowed us to not only create a cellular automata program, but play around with it to see what we could come up with.

Download the program.
Download a version just to see how it works.

Genetic Algorithm

Genetic algorithms are search techniques inspired by evolutionary biology to find approximate solutions to a problem or to find the best solution.  As an example, let's say we have a population of penguins, some good at swimming and others good at walking. We want to create the ultimate penguin, one that can swim and walk better than any other. So, in each generation of penguins, the most talented penguins and a few not-so-talented penguins get to breed. When they breed, some mutation occurs, thus evolving the next generation of penguins. This mutation gradually moves us closer to the ultimate penguin, though with this mutation we could be getting disfigured penguins instead. This is what my program demonstrates-using coins instead of animals-and can be changed to find optimal solutions to multiple problems. 

Download the program.
Download a version just to see how it works.

 
Footer