Happy-Algorithms-League / hal-cgp

Cartesian genetic programming (CGP) in pure Python.
GNU General Public License v3.0
28 stars 10 forks source link

Allow parallel instances of the evolutionary algorithm to exchange solutions via "migration" #257

Open jakobj opened 3 years ago

jakobj commented 3 years ago

Instead of using a multi-start scheme in which multiple instance of the evolutionary algorithm run in parallel without communicating, one may consider collections of populations, e.g., "island models/archipelagos" (https://link.springer.com/chapter/10.1007%2F978-3-642-28789-3_7), which may exchange solutions via "migration operators".

Given the results from Izzo et al., (2012) "[...]Based on an set of 12 benchmark problems we show that in the majority of cases introduction of the migration operator leads to obtaining better results than using an equivalent multi-start scheme.[...]", we should consider introducing these concepts here. Note that this will involve two nested levels of parallelism: i) across populations ii) within each population across individuals.

As a first step we should consider multiple populations using the same solver, while the implementation may later be extended to multiple populations each using a different solver, e.g., migrating between mu+lambda and novelty search.

HenrikMettler commented 3 years ago

Looks very interesting, I need to have a closer look at the linked paper!