WORK IN PROGRESS!
The don platform is a REST API that allows extending existing evolutionary algorithms to a decentralized architecture to provide collaboration, scalability, event log and fault-tolerance in an optimization process.
It also allows external clients to make remote evaluations of data using the most optimized model parameters found by the optimizers.
This process is described for Ubuntu but it can be used also on Windows and other OS.
sudo apt-get install node.js npm
git clone https://github.com/harveybc/don
cd don
npm install
nano .env
Configure your IP address or hostname in the field HOST and an available port for listening connections in the field PORT. You can also configure an external database if not using the default sqlite 3.
nano res
For creating the test database and executing the program, make sure the file contains:
#!/bin/bash
git pull
rm database/development.sqlite
./ace migration:run
./ace db:seed
npm run serve:dev
After editing, change the permission of the file to be executable:
chmod 777 res
./res
Access the web interface from a browser in the address and port you configured. Some default test processes and users are created and you can use them to configure your evolutionary algorithm as shown in the following section.
More detailed documentation coming soon.
After installing singularity, access the web interface from the IP address or host name and port with the default credentials, you configured in step 3 for example:
You can change the initial credentials in the file database/seeds/Authentication.js, also you can configure the ip addresses for the devices in your network in the file /database/seeds/Neighbors.js and executing the following commands to reset and populate the database:
rm database/development.sqlite
./ace migration:run
./ace db:seed
Your evolutionary algoritm must perform the migration operator that you decide between iterations, for this you must make an HTTP GET request from your program with your process hash, username and pass_hass to check if a new optimum has been found since the last one and if your algorithm has found some parameters with better fitness than the remote ones, you must migrate the fittest specimens in a population or the representatives of groups or species depending on your needs using an HTTP POST to report your new optimum.
An example of usage and the parameters that the requests must have can be found on:
The gym-forex environment
Access the web interface and click on your process to access its detailed view with a graphic of the evolution of the performance in time.
Work In Progress. Proper documentation coming soon. There is a poster and the contents of my MSE thesis (this project) in PDF format in the root folder.