A colony of exploding ants (Iridomyrmex explodiferus) lives in a cell
of a two-dimensional world. Unfortunately, the nest has collapsed,
and the colony has to find a new breeding site. Each colony has one
queen ant, and some number of worker ants.
will be reasonably
large, at least 100, and maybe as many as 1000. The objective is to
have the queen ant and at least
worker ants reach
a common new candidate breeding site. (There may be more than one
candidate site, and somehow the ants have to coordinate.)
The queen ant gives off a special pheremone that ants on adjacent cells can perceive. Other ants are odorless. However, a worker ant may choose (instead of moving) to sacrifice himself and explode on his current cell. (That's why they're called exploding ants, of course!) When an ant explodes, he marks the cell he is occupying with a new pheremone, chosen from a palette of 15 pheremones. Worker pheremone markings are permanent and cumulative. So if another ant explodes on the same cell but leaves a different pheremone, both pheremones are perceptible to surviving ants. (But if the same pheremone is left twice on the same cell, the scent is not any stronger than if it is left once.) Note that the queen's pheremone is not permanent: it moves when the queen moves.
Ants can move one cell at a time, orthogonally or diagonally, or they can just stay put. All ants move in a synchronized fashion. Many ants can be on a single cell, so moves do not conflict with one another. Explosions are resolved after moves, so that a newly applied pheremone is only perceptible on the following turn.
Cells may be either open, blocked, or nestable. An open cell may be
traversed by ants. A blocked
cell is impassable. Different maps will have different patterns of
impassable cells that will influence how easily the map can be
searched. A nestable cell is like an open cell, except that it
represents a candidate nesting site. The simulation terminates when
the queen and at least
ants occupy a single
nestable cell. The colony's score is the time taken to achieve this
state. If, after a large number
of moves, this state has not been
attained, the simulator will stop and the score will be
.
Ants can sense their environment, but only weakly. Ants can determine whether there are any ants on adjacent cells (orthogonal or diagonal) but not how many. Ants can also determine which of the 16 pheremones (including the queen ant's special pheremone) is present on the ant's current cell. Finally, an ant can tell whether its current cell is nestable. The queen ant has exactly the same powers as a worker ant, although she knows she is the queen ant, and (for obvious reasons) she should not explode.
Ants have limited brain capacity, and can only remember one byte of information from one turn to the next. The simulator will hand this byte (0 on the first step) to the ant ``player'' on each invocation: the player should not keep any other persistent state. Exactly how the simulator expects this byte to be returned at the end of a move will be specified later. The simulator will also hand each ant a (different) random byte, in case you want to program a player with some random behavior. Each ant works alone, and does not have access to the state of the other living ants.
The ant world is described by a map, which has one start cell (where all ants are initially located) and one or more nestable cells. Ants don't know their coordinates, or the size of the map. You may assume that the perimeter of the map is surrounded by blocked cells, so that ants don't disappear over the edge of the world. We'll try a variety of maps:
For the tournaments, we'll use a variety of maps, including some that are previously unseen. Some things to think about:
Note: A similar project was given in the Stanford version of the class in 1989. See the background reading for more details.