This is a configuration file editor designed to choose parameter values before launching Evolife simulations.
Its use is rather intuitive. You may click directly on values you want to change, or navigate with arrows and use the [F2] key to edit values.
Pay attention to explanations displayed in this panel.
Available scenarios:
==============
Test # a scenario that does nothing, but that you may customize
Genetic algorithm
-----------------
SumBits # maximizes the number of 1 in the DNA
Labyrinth # tries to escape from a labyrinth
WernerDyer # emergence of a communication code
Zip # tries to make the DNA (un)compressible
Behavioural Ecology
-------------------
> Solitary games
Favourable # favourable mutation: basic Darwinian principle
GroupAltruist # group selection
Parthenogenesis # females beget clones of themselves
SexRatio # parents control the sex ratio among their children
> Dyadic games
Altruist # provides help at own's expense
KinAltruist # provides help towards kin
Cooperation # evolution of reciprocal cooperation
GreenBeard # provides help to other cariers of the same mutation
Signalling # individuals form coalitions
StagHunt # individuals play a 'stag hunt' game
Ethnocentrism
Bargaining
Coordination
A void scenario that may be customized.
You may try the (F2)(Esc)(F2) sequence to edit the scenario name. Otherwise, you have to exit this programme and edit the XML configuration file with your favourite editor.
First parameter
Second parameter
Third parameter
Fourth parameter
This example is meant as a didactic approach to genetic algorithms (and certainly not as a realistic application, as the problem is much too simple for a GA). The problem is to maximize the number of bits set to 1 in a binary vector. Starting from a random population, in which individuals have only roughly half of the bits equals to 1 in their genome, evolution through natural selection should rapidly produce 'perfect' individuals whose genome is uniformly made of 1s.
Scenario Labyrinth:
The individuals' DNA guides a 'robot' through a labyrinth,
with the hope of getting out of it
" Evaluation reads: "
Evaluation = PenaltyWall * (MaxSteps - walls) \
+ PenaltyU_turn * (MaxSteps - u_turns)\
+ PenaltyPoison * (MaxPheromon * MaxSteps +1 - poison) \
+ RewardExit * (MaxSteps - step -1)
Maximum number of steps
Penalty for encountering poisonous pheromon
Maximal quantity of poison that an individual absorbs
Penalty for making a u-turn
Penalty for bumping into a wall
Reward for saving steps when exiting
EVOLIFE: Scenario WernerDyer :
see: http://www.telecom-paristech.fr/~icc/IC/projects/P06121815.html (in English)
see: http://www.dessalles.fr/outgoing/P05013107.html (in French, more detailed)
Relevant parameters are:
- Compass (if set to 1, individuals orient themselves along absolute directions, N,E,W,S)
- WDGridSize: size of the toric world in which individuals move
- PopulationSize: how crowdy the world is
- Selectivity: how many children are given to a successful couple
- Noise: defines in % how often a random direction is taken
Indicates whether the female part of the DNA codes for absolute directions (East, North, West, South) (Compass==1)
or codes for direction change (straight on, left, right, u-turn) (Compass==0).
This scenario uses a genetic algorithm to simplify a string, or conversely make it more complex.
Here, complexity is assessed by the size of its compressed length (using compressor gzip or bzip2).
The point is to show that simplification produces quasi-periodic strings and that it is difficult
for standard genetic algorithms to escape from local optima.
When the 'Simplify' parameter is set to 0, the programme ideally attempts to
generate a random (i.e. incompressible) sequence.
In the not-BitString mode, the evolution gets more obviously trapped in many local optima.
If BitString is set to 0, the DNA is translated into a string of charaters '0' and '1'
Otherwise it is translated into a binary string
If set to 0, uses gzip as compressor.
Otherwise, uses bzip2.
If set to 0, tries to make genomes more complex.
Otherwise, tries to make genomes simpler.
Simple Darwinian scenario: carriers of gene named 'Favourable' get life points.
The gene is expected to invade the population.
Alternatively, individuals get some collective benefit from the fact that
there are carriers of the 'Favourable' gene in the group. In that case,
the fate of the gene is no longer obvious, even if the collective benefit is high!
Indicates whether scores are accumulated or are reset every year
If the sex ratio in the progeny is genetically controlled, a 50-50 ratio
emerges, despite the fact that males consume resources without investing
in offspring.
However, in hymenoptera (wasps, bees, ants), in which males are haploid
(one exemplar for each chomosome) whereas females are diploid (two exemplars
of each chromosome), sex ratio is expected to converge toward 25-75 whenever
it is controlled by genes expressed in sisters (workers).
Proportion (in percentage) of males killed at birth
To mimic hymenoptera reproduction, the child is further hybrided with one of its parents (same sex or opposite sex, systematically), so as to increase the relatedness with the parent.
The mechanism of 'Runaway selection' has been imagined by Ron Fischer to explain extravagant features such as the peacock tail as results of sexual selection.
Max share (in %) of life points that can be devoted to signalling.
Cost (e.g. in time lost) for being choosy about male partners.
Cost of a mating with a low quality male, either for the female (if she gets parasites from the male) or for the child - see implementation.
Maximum number of males that a female may examine before deciding.
Number of children a female may have each year.
Number of children a male may have each year.
Controls the probability of males being infected (in %).
After
Sigmund, K. (1998). The population dynamics of conflict and cooperation .
We suppose that we observe three species, such as bacteria in the gut. Suppose that in the absence of the third species, species 2 dominates 1, 3 dominates 2 and 1, in turn, dominates 3. For example, species 2 develops both a substance that is poisonous for 1 and a substance that makes itself immune to the poison. Species 3 develops the antidote but avoids the burden of synthesizing the poison. Species 1 devotes no energy to synthesizing either the poison or the antidote.
The purpose of the study is to observe the dynamics of the three species. Some reasonable diffusion delays, possibly implemented through spatial diffusion, might be necessary for the phenomenon to occur.
Individual contribution to environmental pollution by polluting individuals
Cost for generating poison
Cost for generating antidote
Fraction per thousand of the total poison quantity that an individual absorbs
Cooperation Scenario:
Individual A cooperates with individual B with the hope that
B will reciprocate. A remembers B if it is the case.
Indicates the maximal number of score points
that can be granted by the first player to its partner.
This amount is modulated by the value of the first player's
corresponding gene.
Proportional price, IN PERCENTAGE, payed by the first player.
Amount IN PERCENTAGE of max reciprocity in the 'reciprocity' scenario.
Proportional price, IN PERCENTAGE, payed by the second player in the 'reciprocity' scenario.
Can be used in the 'reciprocity' scenario: (fixed) probability of interacting with someone new.
Rate, in percentage, at which friendship is wearing down with time.
Social classes Scenario:
Consider agents with two possible tags, Red and Blue. They play an ultimatum game, in which if the share of the pie claimed by the two players exceeds 100%, they get nothing. Each agent holds in two separate memory arrays its previous encounters with red agents and with blue agents. For certain values of the parameters, the system may remain some time in a situation in which one class of agents 'dominates' the other, as a result of the amplification of random initial departure from uniformity.
How many previous interactions are remembered, for both individuals of same colour (or badge) and individuals with opposite badge.
If partner is expected to demand x, then demand 100 -x -SecurityMargin.
Hawk-Dove scenario - Two players confront each other over a resource whose full value is V to either of them. Each player may play one of two strategies: H (Hawk) or D (Dove). Doves signal that they wish to share the resource equally. Hawks signal they are willing to fight to get the resource. When two Doves meet, each gives the characteristic sharing signal and the resource is divided equally, or, perhaps, a fair coin is tossed and the winner gets all. In any case, the expected return to each of the two Doves is V/2. When a Hawk meets a Dove, the Hawk (as it always does) signals fight, the Dove (as it always does) signals share, then the Dove retreats and the Hawk takes the entire resource. Finally, when two Hawks meet, each signal fight, neither retreats, both fight at a cost of C. In the end, the resource is shared equally, minus the cost, or, perhaps, half the time one Hawk gets the entire resource and half the time the other Hawk gets it. In any case, the expected return to each of the Hawks is (V - C)/2.
Value of V.
Value of C. May be larger or smaller than 'PieToShare' (V).
Imagine two species, call them gazelles and lions. Gazelles have the genetically 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, and poorly jumping ones among those who are jumping, show that investment in jumping evolves, at least for healthy individuals.
Percentage of gazelles (G/(G+L))
Handicap of jumping in the presence of lions (betwenn 0 and 100). This strength cannot be used to run away.
Slope of exposure decrease with strength. With strength 0, a gazelle has probability 1 of being caught. 'Vulnerability' controls the decrease of this probability when strength (or what remains of strength after jump) increases.
Proportion of chasing attempts per hunting opportunities (in %). A low value allows lions to be choosy.
EVOLIFE: Costly Signal Scenario:
Individuals may emit a signal in relation with their quality.
Emitting this signal involves a cost.
Receivers read the signal and decide to associate or not with the emitter.
Association provides benefit to emitters.
Association provides benefit to receivers only if emitter is of high quality.
Evolution leads to a situation in which communication is honest,
i.e. individuals signal their true quality.
This is due to the fact that liars (l-q signalling individuals) cannot
afford the cost of high signals.
Minimal quality that adds to the signalled quality
Signalling Scenario:
Individual A signals its competence
Other individuals may choose to join A based on that competence.
A benefits from their joining (e.g. protection)
correlated with their competence
(think of it as an ability to anticipate danger)
Signalling is thus a way of attracting competent individuals
Minimal competence that adds to the signalled competence
Typical value: 50
Maximal reduction of risk that an individual A gives to another B (in %).
B's risk probability is multiplied by (1 - CompetenceImpact * RankEffect ** R * A's_competence / G)
where R is B's rank in A's address book, and G is a function of the number of A's friends.
Typical value: 100
Significance of recruting competent individuals as friends,
as compared to other qualities like physical strength, in %
(0% means that competence is not taken into account when making friends,
100% means that only competence is taken into account).
Typical value: 100
Multiplicative decrease (in %) of friendly support.
If the signaller has rank R in its friend's list of contacts, the signaller gets
Friend's Competence * (RankEffect/100) ** R
Typical value: 60
Cost of producing signals.
Signals may indirectly reveal the signaller's competence.
This is only true if individuals invest in signalling.
Signalling investments are genetically controlled.
Typical value: 20
Controls the facts that available social time may be spent with several friends simultaneously.
(between 0: no overlap, and 100: maximal natural overlap).
When no overlap, introducing a new friend diminish old friends' share significantly.
Typical value: 30
Stag Hunt Scenario (after Brian Skyrms, "The stag hunt",
Cambridge University Press 2004, pp. 67-70)
In the stag hunt scenario, two players have the choice:
- either to cooperate to hunt a stag (S)
- or to defect and hunt a hare (H) for themselves.
The payoff matrix is as follows:
opponent
S H
S 9 1
player
H 8 7
This is a particular case of stag hunt in which it is better to
hunt hare against a stag hunter rather than against a hare hunter.
Such game is also called "assurance game".
In the absence of any signalling, there are two equilibria:
everyone hunts stag or everyone hunts hare.
If individuals are given the possibility of sending a binary signal before
acting, then the new situation creates one equilibrium in which
half of the population sends signal 0 and hunts stag with those having sent
1 and hunts hare otherwise, and conversely for the other half.
The size of the population is maintained constant
Each year, a fraction (in %) of individuals migrate between groups.
Proportion of the population that is replaced with newborns each year (in %)
Defines how individual survival depends on score:
0 --> no bias
12 --> Highest scores may have 12 times less chance to be eliminated
than individuals with lowest scores
(Note that selection may also be achieved through differential reproduction
(see parameter Selectivity))
Important: For selection pressure to operate properly, scores should always be positive
Warning: This selection method tends to "saturate": when most scores reach high values,
the method is blind to slight differences among individuals. However, it might be less
violent than the selectivity method, which has converse qualities.
At the beginning of the 'Selection pressure' process, scores are linearly converted into life points (from 0 to SelectionPressure). Then individuals are repeatedly exposed to random accidents that cost them a life point. The process is repeated until the size of the population is brought back to its maximal value.
Defines how parenthood is biased toward individuals with high scores
S == 0 --> no bias
S == 1 --> elitism is roughly linear
S == 20 --> strong elitism
S == 40 --> very strong elitism
(Note that selection may also be achieved through differential mortality
(see parameter SelectionPressure))
Warning: This selection method is elitist. It amplifies small differences among top inidividuals,
but fails to discriminate among the crowd. It favours extreme (or lucky) behaviour. The SelectionPressure method has converse
qualities.
At the beginning of the 'selectivity' process, individuals are ranked, based on their score. They are given a number of children that depends on their rank (which depends non-linearly on their score). Parents are repeatedly drawn from the set of individuals that still have children to beget.
The population is split in groups.
Groups are an ecological entity: reproductions and interactions take place within the group.
"NumberOfGroups" indicates the desired number of groups. Groups that are too big are split in two.
Expect actual groups to be only approximatively in that number.
Group minimal size
Groups that are too small are dissolved: their members must emigrate to other existing groups
Numbers of times each individual interacts with others each year
Above that age, individuals die. Set to 0 if no maximum age.
Amplitude of a multiplicative noise
in % between 0 and 100
that may affect interactions in some
scenarios.
This flag indicates whether the amount of time devoted to a social relation is
equal between the two parties. If set to 0, fans may loose time in the anteroom
of their idol.
Maximum number of output links from a node in the affiliation graph.
Typically between 1 and a few.
Maximum number of input links to a node in the affiliation graph.
Typically between 1 and many.
This may be a crucial parameter: if it is significantly larger
than 'MaxGurus', then a star system may evolve in which only
best individuals signal.
Mutation rate in xxx/1000
Indicates the number of cut points when performing crossover
Indicates the way portions of DNA should ne interpreted
- Weighted: standard integer binary coding
- Unweighted: all bits play symmertrical roles
- Gray: Gray code
- Nocoding: genome is not decoded
Note: the WEIGHTED method may provoke sudden changes in gene expression. This may be good to escape from local
optima, since in the UNWEIGHTED condition, several mutations must be accumulated in the same individuals for significant change to occur.
Genes interpreted as standard integer coding.
Advantage: many available values;
variable selection pressure on loci:
important loci evolve first.
Mutations on low bits have local effects
Caveat: getting from 011111 to 100000 requires
six mutations, though the values are adjacent.
Genes interpreted as the sum of their bits
Advantage: all puncutal mutation have local effects
Caveat: only few values allowed if gene length is small,
and very slow evolution and high sensitivity to noise
if gene length is large
Genes are interpreted using a Gray code.
In a Gray code, neighbouring integers differ by only one bit.
Advantage: neighbouring values are reachable by punctual mutations
Caveat: most punctual mutations have non-local effects
Some scenarios don't specify gene length (by setting it to zero).
The value indicated here is taken as default value in this case.
DNA created from scratch may be random (DNAFill = -1)
or filled withl 0s (DNAFill = 0) or with 1s (DNAFill =1)
Binary flag indicating if the population should be generated from
the genomes stored in the text file 'EvoStart.gen'
1 = reads 'EvoStart.gen'
0 = creates a new population from scratch (see parameter DNAFill)
Functions of one parameter are difficult to code genetically.
The easiest way is to code for a step function.
Example: code for a "signal" that depends on a parameter called "competence".
When emitting the signal, an individual "reads" her competence and
depending on its range, mutliplies it by the relative value of
her corresponding control gene.
0 competence Max
[--------------------------------------------------]
<-----------><-----------><-----------><----------->
CG1 CG2 CG3 CG4
Typical value: 6
Period between successive plots
0: no plot
1: plot every year
10: typical
Maximum number of steps before simulation stops. Set to 0 if no limit.
If DisplayPeriod == 0, Evolife will automatically exit after TimeLimit.
Otherwise, it will switch to stepwise mode. It is thus ready to
run until another TimeLimit is reached again.
Points located below this x-value are discarded from the computation of average values.
Average values thus reflect the stable regime.
Teacher's mode.
If set to 1, no display occurs. Useful to launch experiments in batch mode, e.g. on several machines.
Results are still stored in .csv files. In batch mode, these files are given unique names, so that different experiments can be run simultaneously.
Path to Evolife
Path to location where results are stored
File that should be executed when the [Run] button is clicked
Parameter file that will be read by the programme
Name of the present Configuration Editor
local path to window icon