Putting in practice with Evolutionary Computation <ul><li>What do we need to build Evolutionary Distributed Algorithms? </li><ul><li>Exchange individuals among populations: Phenotype and Genotype </li></ul><li>We can exchange this information using files. So the name of the file represents the phenotype and genotype and all connected PCs share it with Dropbox </li></ul>
Let's go <ul><li>File distribution via Dropbox
It synchronizes the file-individuals with other computers
Dropbox folder contains a pool of individuals and each computer adds and gets file-individuals from it </li></ul>
Let's go (II) <ul><li>Each computer connected or synchronized by Dropbox is part of a multi-computer
Each Island-computer evolves a population of individuals and exchanges with the pool file-individuals when the migration process must be done </li></ul>
File-individuals <ul><li>How to include phenotype and genotype into a file </li><ul><li>As the contents of the file? It is not a good idea because we have to open and close files and Dropbox has to synchonize them.
Into the filesystem attributes ? Dropbox is working on that and we will be testing in the future
Into the filename ? It is our approach </li></ul></ul>
File-individuals (II) <ul><li>The filename problem </li><ul><li>How many gens can we include into the name?
After a fixed number of generations, Immigrate (gets one file-individual from the pool and incorporates it to the population)
After a fixed number of generations, Migrate (adds the best or a random file-individual to the pool) </li></ul></ul><ul><li>Adds the best individual to the pool </li></ul>
Control of the number of evaluations <ul><li>Each computer creates a file whose name is the number of evaluations performed and its identification (random initial seed)
Each computer looks for this kind of file within the Dropbox folder and adds the total of evaluations.
When the sum of this evaluations is greater than the fixed minimum, the evolution of this island ends. </li></ul>
Goals <ul><li>What do we want to test? </li><ul><li>We want test if we save time when use the multi-computer for computing a fixed number of evaluations. </li></ul><li>How can we test it? </li><ul><li>Making a distributed evolutionary algorithm based on pool and testing that the time for reaching the fixed evaluations decreases when you add new nodes to our multi-computer linked by Dropbox . </li></ul></ul>
Problems: MMDP <ul><li>Multimodal Deceptive Problem
It is composed of k (k=80) subproblems of 6 bits each one called s i for i=0 to 79 .
Depending of the number of ones s i takes the values detailed into the table </li></ul>ones fitness 0 or 6 1 5 or 1 0 2 or 4 0,360384 3 0,640576
Problems: TRAP <ul><li>It is defined for the unitation function (number of ones in a binary string) using the following function.
For our problem, the trap is defined for l=4, a=3, b=4 and z = 3
Conclusions <ul><li>The Dropbox File-storage and sharing system, can be used as a migration device for distributed evolutionary computation experiments without needing to acquire or set up complicated cloud or grid infrastructure.
With this approach everyone can use a multicomputer running an evolutionary algorithm with a good scaling behavior. </li></ul>