|
Telecom Paris
Dep. Informatique & Réseaux
October 2025 |

Module Athens TP-09
| Ada Diaconescu - Associate professor at Telecom-Paris |
| Jean-Louis Dessalles - Associate professor at Telecom-Paris |
| Samuel Reyd - PhD student at Telecom-Paris |
This Lab work is based on the use of Evolife. If necessary, install it.
In a famous experiment[1], Gregory Werner and Michael Dyer could show how a complex communication code could emerge in an artificial species. Their idea was that females and males should communicate in order to meet and reproduce, so that natural selection would let an efficient code emerge.They created a population of agents with static singing females and mobile blind mute males. Females have a 5x5 vision field, in which they can perceive males (the closest if several are present) together with their orientation (there are thus 24 x 4 possibilities). From this, they emit a song chosen among 4 possible calls. The female part of the genome thus requires 96*2 = 192 bits to code for this behaviour.
Males hear the call of the closest female if any (within a 5x5 range). They decide to move or turn accordingly. The male part of the genome thus requires only 8 bits for this mapping, as there are 4 possible calls and each requires two bits to decide next action.
Experiments show that in most of the cases one can observe the emergence of a communication code that enables females to cleverly steer males towards themselves.
Load the configuration WernerDyer.evo in the Configuration Editor. You will notice two specific parameters that are available for this experiment:
| Run Evolife (button [Run]) and observe the evolution of reproduction efficiency and of majority strategies. Make several trials by changing the density of population. Observe (possibly by running the experiment several times) that the population may go extinct. Why ? |
| Run the experiment (button [Run]) with a high density population. Wait until a communication code is eventually found (it may be long, restart the simulation if you are losing patience). Do males turn in both directions? Can you explain why? |
The evolution of a communication code is a coordination problem. Even if two individuals happen to agree on a bit of code, they are unlikely to meet again soon and their agreement is likely to be lost. Moreover, their children will not inherit this agreement between the male part and the female part of the genome, as crossover will probably destroy it.
To evaluate this effect, why not merely clone the parents? Modify the Move function in Scenarii/S_WernerDyer.py to get clones of the Male and the female when they are reproducing. Reproduction occurs when a male and a female meet. The couple is added to the list Parents. So replace:
self.Parents.append((Male, Partner))
by
self.Parents.append((Male, Male))
self.Parents.append((Partner, Partner))
| Run Evolife again (button [Run]) with this cloning strategy (set the compass parameter to 1). What can you say about the convergence of the genome ? Is that a good or a bad thing ? |
Honest communication may emerge between prey and predator! Preys signal their ability to escape pursuit. For instance, Thomson gazelles or springboks (photo) may jump vertically (stotting) when predators approach. The aim of this study is to explore conditions in which such honest signalling may evolve and remain stable between partners following conflicting agendas.
[Click on image]-original on youtube
Imagine two species, call them gazelles and lions. Gazelles have the genetically coded choice to invest energy in jumping vertically when lions approach. Of course, this somewhat reduces their ability to run away in case of pursuit. If lions prefer to chase non jumping gazelles, show that invesment in jumping evolves, at least for healthy individuals.
The phenomenon can be studied using Evolife. To circumvent the fact that Evolife is able to process only one species, gazelles and lions are evaluated and procreate separately. The ‘species’ is decided at birth using a phene (see S_Gazelle.py). Note, that both species share the same genes (!). This is another illustration of the fact that evolution concerns genes and not individuals. There are two genes:
Load the Gazelle scenario in the Configuration Editor (Starter). Locate the four relevant parameters (found in section Scenarios/Dyadic games/Gazelle):
| Set JumpEnergy to 0 and HuntingRatio to 100. This means that jumping is costless and that lions don’t miss any opportunity to chase gazelles. Run the simulation. What do you observe? Why? |
| Now set JumpEnergy to an intermediary value such as 20. What do you observe? Why? |
| Set JumpEnergy again to 0, and HuntingRatio to 10. What happens? Compare with the 0/100 case and with the initial 20/10 case. |
In this study, individuals send signal to attract friends. It may represent the situation observed in social networks such as Twitter, but also in real life. Signals are supposed to be costly: it takes time and energy to make up a signal that will attract attention. The question is: will individuals invest in communication, and how much? The answer depends on whether social bonds are asymmetrical or symmetrical.
Let’s suppose that the qualities present in the population are evenly distributed over the segment [0,1]. The signal s(q) sent by an agent is a continuous function of its quality q. Let’s consider the simplest case in which both signal s and cost c are proportional to the individual’s investment in communication g(q).
s(q) = g(q) q
c(q) = C g(q)
By sending s(q), signalers benefit from attracting allies: they get P0 per follower. We suppose that followers pick the strongest signal when choosing whom they will follow. The problem is to show that g(q) evolves to a definite value for each quality q. If there is no restriction on the number of followers per signaler, the whole group follows a handful of top quality individuals. As these individuals are in competition to win the prize of becoming the unique celebrity in the group, they send the maximum signal, provided that (N-1)P0 > C, where N is the size of the group.
One (somewhat artificial) way to avoid this winner-take-all outcome is to impose the condition that an individual can have no more than k followers. The consequence is not really different: a fraction 1/k of the population gets k followers, whereas individuals of lesser quality get none.
The program SocialNetwork.py (in the directory Apps/SocialNetwork) simulate this simple social network. You can run it by executing the local command Starter. The Configuration Editor allows you to change parameter values. Load the Affiliation_Typical.evo configuration. Run the program. Individuals are displayed on the horizontal axis, depending on their quality. Lines represent social links. Red dots represent young individuals.
| What happens and why? |
| What happens if one changes the signalling cost? |
| Load the SocialNetwork_typical.evo configuration. Run the program. After some while, you will observe that friends have most often comparable qualities. This situation contrasts with the previous study (asymmetrical relations). Explain why quality matching in friends does emerge. |
| Explain why it leads to general signalling: all individuals do invest in communication. |
| What is the effect of communication cost? |
