The characteristics of amorphous computing have been explained in section 4.1.1. I claimed that OOOP is a suitable system for developing programs for amorphous computers because it realizes exactly the features that are necessary for this task. As a first validation, I have performed some simple experiments which on the one hand support the claim that OOOP is capable of evolving programs for amorphous systems and which on the other hand serve as a proof of principle for OOOP and OOOPS.
One easily understandable concept for the application of amorphous computers has been developed by Bill Butera at the MIT amorphous computing project. It is called Paintable Computing. The idea is to mix amorphous computing particles into a sort of paint that could be applied as a coating to bridges, buildings or planes for sensing and reporting on problems like defects or tensions in the material. The hardware (i.e. the microfabricated particles) has not yet reached a state which would allow to realize this idea now, but as technology is evolving quite quickly, one should already think about how to program these systems.
We will discuss three experiments approaching a paintable computing scenario on different levels of abstraction. The simulated amorphous computing particles communicate with each other via short-distance radio signals of different frequencies (which define the OOOP message types) and different intensity. Apart from that, the particles can only behave in two distinct ways: They can set a signal (which in reality would mean to change the colour of the surrounding paint) or they can unset it (making the paint return to the original colour). As given by the paintable computing approach, the computing particles are located in a paint coating a wall and shall report on defects in this wall. If a piece of material breaks out of the wall leaving a hole in the coating, the remaining computing particles shall take notice of the loss and quickly change the paint colour in a big area around the hole so that the defect can instantly be seen and easily be located by just determining the centre of the discoloured area.
The OOOPS parameters common to all three experiments are listed in table 5.1. In all three experiments, there is a (2-dimensional) cluster of cells in the grid on initialization. The growth genes (death and division) are inactivated. After some time during which the communication can settle, the Ooopsi determines the number of cells which have set the signal. Then, a block of several cells in the centre is removed and the remaining cells again get a short time for noticing the loss and spreading this news. At last, the number of set signals is determined again and the run is stopped. The greater the difference between the first and the second count, the more cells change their surrounding paint colour and thus the better one can see the defect. Consequently, the fitness of the individual (which is the whole amorphous computer) is set to this difference between the number of signals before and after the damage in the wall (modelled by the removal of the block of cells). The differences between the three experiments are the following:
In the first experiment, the cell cluster was initialized by inserting a cell at every second grid point in an area of points and then letting it grow for a short time. The growth genes were preset so that there would occur cell death if every grid point around was taken, and cell division otherwise. After the growth time, the genes for death and division were inactivated. This was thought to provide an irregular cell cluster because cell division chooses a random place next to the original cell for the new cell and the death gene would prevent a regular cluster with a cell at every grid point. But this initialization process was not a very clever idea, because for saving time (which is important as we have seen in section 2.1.4), the growth time was reduced to one update per cell which resulted in a nearly fully occupied regular cell cluster. The reason for this was the following: In this first update, every cell (which still had an adjacent free gridpoint) was dividing. As the message intensity was not high enough in the initial cell cluster for activating any death gene and there was only one update, the death gene could not do what it was supposed to do. But even if the growth time would have been prolonged, the results would probably not have been satisfying: During the next update, the message intensity would perhaps have activated all death genes which would have had the effect of deleting every single cell. This shows how difficult it is to hand-code the behaviour of an amorphous computer. Even trying to produce such a simple behaviour like this random initialization on the basis of growth processes can easily have totally unwanted effects. But the results of the first experiment still have value, because this initialization process resulted in an approximately regular cell cluster with a cell at nearly all the grid points. So the optimum fitness for this experiment lies at about . A really irregular random positioning was then realized in the next experiment. As already mentioned, the update sequence was ordered as described as the standard case in section 2.2. In both the first and the second experiment, the cell cluster was given the time of one update per cell for settling before the block of cells was removed and the time of two updates per cell for spreading the news after the removal of cells.
For the second experiment, the same update order was used, but the initialization process was altered so that the cell locations better simulated a random placement of the amorphous computing particles on the wall. In this case, a single program loop simply inserted a cell at every grid point in an area of points with a probability of . This results in an average optimum fitness of . Of course, in this experiment, the best reachable fitness is more variable because the total number of cells depends on chance (more than apparently in the first experiment).
The third experiment was performed using the same initialization procedure as in the second experiment, but the update order was changed. The ordered update used in the first two experiments does not correspond well to the attribute of amorphous computers that the particles work asynchronously. So in this run, the cells were updated randomly. This means, that for every update, a random cell was chosen. The result is, that one cannot guarantee every cell being updated in a specific period, but this method simulates true asynchrony, even with the additional problem of possibly very different working speeds for the particles. Because the initialization is equivalent to that of the second experiment and produces the same number of cells, the optimum fitness for this experiment also varies around 331. The time for settling was in this case set to 1000 cell updates1 and the time for spreading the news about the defect was set to 3000 updates.