# parallel termite solution in C and open MP

it should be done till 23th Aug

Termite Simulation

1 Introduction

Our company, Termite Simulation, Inc., have developed software that can simulate thousands

of termites wandering about a rectangular grid whilst picking up and dropping wood

chips. Our initial simulations gave interesting results: Despite the fact that all termites followed

the same basic set of rules, their collective behavior appeared coordinated. The termites

started aggregating the wood chips into piles. In a sense, the aggregation of many simple and

independent agents can give rise to a seemingly complex global behavior.

configuration after 1000 time steps. Initially, the wood chips (marked by the symbol O) are

distributed uniformly at random. After a while, the termites (marked by the symbol +) begin

to assemble the wood chips into larger piles. Note that the grid is periodic in the sense that

it wraps around in both the north–south and the east–west directions.

To give you a better understanding of what we mean, study Figure 1. On the left side

you see a small grid with many scattered wood chips marked by the symbol O. You also see a

small number of termites marked by the symbol +. This is the initial state of our simulation.

After we let the simulation run for 1000 time steps, we get the configuration shown on the

right. Notice that the wood chips have become more ordered and have begun to form large

piles. If we were to let the simulation continue even further, then the number of piles tends

to decrease and the size of each pile tends to increase.

As we briefly mentioned above, the termites follow a small set of basic rules. The rules are

local in the sense that they describe how one termite acts based purely on local information.

The termites act independently and do not take orders or directions from other termites or

any other entity. The simulation proceeds in discrete time steps. The basic rules are as follows

and are also applied in the following order:

1. The termite randomly chooses to either stay on the same course as before, turn left, or

turn right.

2. If the termite is carrying a wood chip and there is a wood chip directly in front of the

termite, then the termite drops the wood chip and turns 180 degrees.

3. If the termite is not carrying a wood chip and there is a wood chip where the termite

is currently located, then the termite picks up the wood chip and turns 180 degrees.

4. The termite moves one step forward (if possible).

Note that a termite never performs both actions 2 and 3 in the same time step since that

would imply that it picked up the wood chip it just dropped. The movement action 4 cannot

be applied in the following situations:

1. The cell ahead is occupied by another termite; only one termite is allowed to occupy a

cell at any point in time.

2. The termite is carrying a wood chip but the cell ahead already contains a wood chip;

only one wood chip is allowed to occupy a cell at any point in time.

In these situations, the termite simply stays in its current cell.

Note that two termites are not allowed in the same cell at the same time. Therefore, there

is a risk that two (or more) termites simultaneously try to move to the same cell. One of

them will succeed and the others will fail and stay in their original cells. We currently believe

that the precise details of how these conflicts are resolved will not significantly influence the

quality of the simulations. In the current version of our software, the termites are processed

sequentially in an arbitrary order and the conflicts are resolved using a “first-come, firstserved”

policy.

Skills: C Programming

Project ID: #4836043

## 3 freelancers are bidding on average \$205 for this job

nusret1990

Expert engineering and software development services.

(1 Review)
4.8
grigiq

Hi. I am interested in this challenging project. Please see private message for details.

(5 Reviews)
3.3
serialkey

can i get ur attention please