Research Graphic

Concordia DEC Lab

about us . courses . students . research. publications . events . people . contact us
 

 

Formal Artificial Life

Laws and Life (cont'd)

 

5 Past and Future

5.1 Problems

I have added possible answers to some of the questions because on our discussions.

1. How do agents measure time?

A quantity can be increased at each time interval. When it reaches a preset value, it is reset to zero. The interval between reset operations provides a measure of time.

2. How do we express conditional operations in the programming language?

One possibility is to use a rule-based system in which every operation is a condition-action pair.

3. Modes or modeless?

If the programming language has modes, there are instructions to change the mode and the effect of subsequent instructions depend on the mode (like a badly designed text editor). With modes, the same gene can be used for different organ types because, for example, the same instruction might mean "eat" in the mouth and "look" in the eye.

Without modes, the meaning of instructions does not depend on context. An "eat" instruction in the eye would make eyes try to eat.

4. How do agents interact?

In the first place, by exchanging atoms. When closeness is established, there are more drastic ways of interacting, varying from reproducing to eating one another.

5. How and why do agents die?

Lifespan should be allowed to evolve; consequently, the simulation should not impose death in accordance with a probability distribution (older agents are more likely to die) because this removes control from the agents. The criterion for death should be based on health: agents that are inactive for some period of time should be considered dead. There may be other criteria.

6. What operands control hormones, pheromones, etc?

The more important question is: how do we represent hormones and pheromones? Are they numbers that an agent can access, or are they represented indirectly, for example by the number of atoms of a particular kind that an agent possesses? I am in favour of the "atoms" approach but it may be expensive computationally.

7. What do we fix?

As little as possible.

8. What do we allow to vary?

As much as possible.

9. How do we describe the 'world' that agents inhabit?

The world should evolve with the simulation code. I have designed a simple world that I believe has enough "hooks" to build in the complexity that we want. Existing in the world should be challenging enough to make interesting agents evolve.

10. What do agents do?

Survive in a complex world by acquiring energy, moving, defending themselves, attacking others, cooperating with others, reproducing, etc.

11. Genetic algorithms are used extensively to solve optimization problems. The issues are wellunderstood. What do agents optimize?

Their ability to survive in a hostile world. The idea is that they should do this by evolving software to solve problems. We could design agents with a bunch of parameters and give the prize to the agent that picks the best values of the parameters, but this is not a problem I am interested in solving.

12. Is the human eye optimized?

Cats and owls see better in the dark; hawks have greater acuity; insects are sensitive to ultra-violet light; horses have a wider range of vision. Perhaps the human eye is just a good balance between function and resource-usage.

In general, evolved organisms are not optimal in any obvious sense. They are cobbled together. Old parts are used in new ways (the bones in our ears were correspond to bones in the jaws of reptiles). Organisms contain many 'spandrels', to use Gould's term.

13. How do we interpret the results of a simulation?

It may be as hard to understand a simulation as it is to understand real life! The simulation will have to be designed from the beginning with hooks for analyzing the results.

14. What is our criterion for a successful experiment?

A possible plan: in an experiment, we make two lists. Lists A consists of the properties that we build into the simulation; list B consists of the properties that emerge during the simulation. The goal is to minimize A and maximize B. (So it really is an optimization problem!)

Distinguish things that:

. exist in the world and are simulated in the model;

. exist in the world but are not simulated in the model;

. are simulated in the model but have no correlative in the world;

. exist neither in the world nor the model.

The last category is probably not very interesting.

15. What are the components of an agent? How are they laid out in space? What is the 3D (or nD) structure of an agent?

These decisions are being made in the first version of the simulation.

16. Can an agent inject DNA into another agent?

This has interesting possibilities and we should probably allow it, although not necessarily in the first versions of the simulation.

5.2 Previous Work

The proposed experiments are based on three previous projects.

1. The Truckin' Project modelled a fleet of trucks. A truck could choose either to move commodities in bulk from a manufacturer to a retailed or to move single items from a retailed to a consumer. Trucks had costs (fuel to travel) and were 'paid' according to the loads they carried and their 'goal' (fitness function) was to maximize their profit. The problem we had with this project was that it was hard to invent sufficiently different strategies for trucks: recent analysis has shown that the difference in performance between successful genes is statistically insignificant.

2. The Cell Simulation modelled a single biological cell. The genome of the cell encoded 'amino acids' that the cell used to synthesize 'proteins'. The behaviour of a single cell was sufficiently complex that, although a cell could reproduce, we never got around to investigating the behaviour of populations of cells.

3. The Eco Simulation, based on work done at the Santa Fe Institute, modelled agents that consisted of strings of characters ('a', 'b', etc.). The genome and the resources of an agent were character strings. Agents interacted by trading, fighting, or reproducing. This simulation demonstrated the importance of analysis tools: it exhibited interesting behaviour, but it was hard to discover why. For example, we predicted that, in a large population (50,000 agents), genomes would converge to a single optimum or perhaps a small number of 'species'. In fact, we found that every agent had a unique genome, even after thousands of generations.

A general problem that we have encountered is that, as the complexity of the experiment grows, an ever increasing number of parameters are need to keep things under control. The number of possible settings of the parameters increases exponentially, making it hard to choose the right experiments. An explicit goal of the new work will be to minimize the number of parameters.

Another way of expressing this is to say that we want our experiments to be robust in the sense that they are insensitive to variation of parameters. It is possible to achieve almost any kind of behaviour by 'fine tuning' a large enough number of parameters but behaviour obtained in this way is usually not very interesting. In summary, the goal is to minimize both the number of parameters and the sensitivity of the system to the values of the parameters.

5.3 Future Work

TBC

 

Acknowledgments

I am indebted to Taras Kowaliw and Nawwaf Kharma for helpful comments on earlier drafts of this paper.

 

Page 1, Page 2, Page 3, Page 4, Page 5