diff --git a/README.md b/README.md index 483b603c..83b32acb 100644 --- a/README.md +++ b/README.md @@ -189,7 +189,7 @@ A detailed example is available as a [IPython Notebook](examples/example-2-evolu `neurolib` also implements evolutionary parameter optimization, which works particularly well with brain networks. In an evolutionary algorithm, each simulation is represented as an individual and the parameters of the simulation, for example coupling strengths or noise level values, are represented as the genes of each individual. An individual is a part of a population. In each generation, individuals are evaluated and ranked according to a fitness criterion. For whole-brain network simulations, this could be the fit of the simulated activity to empirical data. Then, individuals with a high fitness value are `selected` as parents and `mate` to create offspring. These offspring undergo random `mutations` of their genes. After all offspring are evaluated, the best individuals of the population are selected to transition into the next generation. This process goes on for a given amount generations until a stopping criterion is reached. This could be a predefined maximum number of generations or when a large enough population with high fitness values is found.

- +

`neurolib` makes it very easy to set up your own evolutionary optimization and everything else is handled under the hood. Of course, if you like, you can dig deeper, define your own selection, mutation and mating operators. In the following demonstration, we will simply evaluate the fitness of each individual as the distance to the unit circle. After a couple of generations of mating, mutating and selecting, only individuals who are close to the circle should survive: diff --git a/resources/evolutionary-algorithm.png b/resources/evolutionary-algorithm.png new file mode 100644 index 00000000..fd4ac4a1 Binary files /dev/null and b/resources/evolutionary-algorithm.png differ diff --git a/resources/evolutionary-algorithm.svg b/resources/evolutionary-algorithm.svg deleted file mode 100644 index 032820ab..00000000 --- a/resources/evolutionary-algorithm.svg +++ /dev/null @@ -1,3 +0,0 @@ - - -
Generate initial population Ninit
Generate initial pop...
Define fitness function
Define fitness funct...
Evaluate initial population
Evaluate initial pop...
Select best Npop
Select best Npop
Initialization
Initialization
Generate Npop offspring
Generate Npop offspr...
Mutate offspring
Mutate offspring
Replace invalid individuals
Replace invalid indi...
Evaluate new individuals
Evaluate new individ...
Rank select parents
Rank select parents
Evolution
Evolution
Stop?
Stop?
Increment
generation counter
Increment...
Valid?
Valid?
Yes
Yes
No
No
Old
Old
New
New
Merge
old and new
individuals
Merge...
No
No
End of evolution
End of evolution
Yes
Yes
Viewer does not support full SVG 1.1
\ No newline at end of file