What it does:
FortySix is a platform that allows users to customize and run genetic algorithms. The computational load of each genetic algorithm running on the platform is distributed across many different web-browser clients, meaning any user can sign up and contribute their computing power.
For a video demonstration on this platform, visit: https://www.youtube.com/watch?v=SiYpjTP8c7s&index=22&list=PLx0iOsdUOUmndNwdSO_UI3KGiNlIMsPkQ
How to use it:
Parameter | Type | Description |
---|---|---|
population size | integer | the number of chromosomes that makes up a "full" generation (and the amount of chromosomes given to each client to run the fitness function on) |
chromosome length | integer | the length of each chromosome in a the population, made up of the genes in the gene pool |
gene pool | comma delimited values | the building blocks of each chromosome |
fitness goal | integer | a chromosome with this level of fitness will terminate the algorithm and immediately be returned as the result |
elitism | integer | if a population contains a chromosome with a fitness level greater than or equal to the elitism score, then we automatically include the strongest chromosome of that population in the next generation, before proceeding to the selection method |
reproductive coefficient | integer | the number of children each selected chromosome creates for the next generation |
number of generations | integer | an algorithm termination condition |
selection method | dropdown menu | determines how the chromosomes from the current population are selected for inclusion in the next generation |
mutation methods | table | methods of adaptation |
URL Conversion:
Admin URL path | Contributor URL path |
---|---|
'/admin/roomHash' | '/contributor/roomHash' |
Once your contributors are connected, you should see a few green nodes in the run tab and the ability to "run the job"
When you're ready, click "run job"
In the data view, you'll see a graph which tells you how your algorithm is performing in real time. The graph shows the ten most recent generations which have been adequately processed by the nodes in their network (contributors) against a proportionally sized and curated selection of random chromosomes. The view updates every 5 seconds.
The x axis is divided into 5 categories - each category represents a z-score bucket that tells the practitioner if their algorithm is performing better than random. For example, a genetic algorithm with no parameters should report a graph with a very high density in the "random" category because it should theoretically not be performing better than random. The z-scores reported are calculated through a log-transformation of fitness data and measured against random guess-and-check.
How it works:
Genetic algorithms simulate evolution as a method of seaking global optimization points in very large solution spaces. They hinge on a specific fitness function, which is run on hundreds of thousands of different chromosomes to evaluate their suitability as potential solutions in the entire space. However, genetic algorithms are computationally expensive, which creates a barrier to entry for people with limited computing power. Our platform enables a wider audience to experiment with genetic algorithms by offloading the computation of their fitness function to multiple computers via their web browsers. On top of that, each client uses web-workers to enable multithreading, which segments task processing down even further and gives a performance boost.
Contributors can donate their computing power and track their contributions to various experiments simply by navigating to our website and choosing which experiments they wish to contribute to. This distribution method of the computation is not only efficient but easy for both practitioners and contributors to use.
Glossary: