This is an app to demonstrate how a genetic algorithm works.
It basically consists of a bunch of rockets that have to reach a goal, avoiding obstacles drawn by the user.
They have to learn the path to follow to win, by trying random directions at the beginning, and then selecting the ones that best fit the solution. They also have to adapt to the changing environment, just like living beings do during the centuries.
Modifying the parameters (the population size, mutation ratio, velocity and lifetime) you can see how they affects the evolution.
How does it work:
Each rocket has a DNA that sets its trajectory (affecting his velocity at every single frame). At the begin this is randomly generated.
At each following generation, the DNA of the rockets is built from two 'parents' from the previous generation; the chances of a rocket being parent for the next generation is proportional to various factors: victory, chance of overtaking an obstacle, death, distance to target, etc...
Controls:
- Modes switch: the bottom left button let you switch between the obstacles drawing modes. Pencil mode: draw the obstacles on the screen to see the rockets adapting to the various environmental situations; you can draw multiple obstacles; pencil size can be modified in the settings by clicking the button on top of the screen. Eraser mode: Touch one of the obstacles to delete that one, press and hold on a blank spot to erase them all.
- Pause: the bottom right button, you can pause the simulation to draw obstacles more easily or to visualize history/charts without real time updates.
- Fast forward: this button speeds up the simulation speed; note that it is possible that the rockets trajectory can be slightly different between the two modes, especially with many rockets
- History: the button on top of the screen, it opens the history where you can see the data of all the generations since the beginning of the simulation. You can reach the charts from here
- Touch and drag the target to move it round the screen.
- Back menu: press the back button on your device to open the back menu, where you can change the parameters of the simulation (clicking on apply) or load/save states
Saving files:
The latest version uses binary files instead of plain text, that allows to reduce up to ten times the memory used and the read/write time; you will still be able to load files (not export) from old versions.
Exported files are saved in default directory SmartRockets in the root of the internal storage. We tried several file managers and you should be able to load a .srk file just clicking on it (even from Google Drive, WhatsApp or Telegram, etc...) or selecting our app in the list displayed. The only one that gave us some problems is "My Files" from Samsung, which some times didn't open the files without even showing the option "open with"; in that case you can upload to Google Drive or open it through another file manager.
Si tratta di un app per dimostrare come funziona un algoritmo genetico.
Esso è costituito essenzialmente da una serie di razzi che devono raggiungere un obiettivo, evitando gli ostacoli disegnati dall'utente.
Devono imparare la via da seguire per vincere, cercando direzioni casuali, all'inizio, e quindi selezionando quelle che meglio si adattano la soluzione. Essi hanno anche di adattarsi ai mutamenti dell'ambiente, proprio come gli esseri viventi fanno nel corso dei secoli.
Modifica dei parametri (la dimensione della popolazione, rapporto mutazione, velocità e durata) si può vedere come influisce l'evoluzione.
Come funziona:
Ogni razzo ha un DNA che imposta la sua traiettoria (che interessano la velocità in ogni singolo fotogramma). Alla iniziare questa viene generata casualmente.
Ad ogni successiva generazione, il DNA dei razzi è costruito da due 'genitori' della generazione precedente; le probabilità di un razzo di essere genitore per la prossima generazione è proporzionale a vari fattori: la vittoria, possibilità di sorpasso un ostacolo, la morte, la distanza del bersaglio, ecc ...
controlli:
- Modalità di interruttore: il pulsante in basso a sinistra consentono di passare gli ostacoli modalità di disegno. Modalità matita: disegnare gli ostacoli sullo schermo per vedere i razzi adattandosi alle diverse situazioni ambientali; è possibile disegnare più ostacoli; dimensioni matita può essere modificata nelle impostazioni facendo clic sul pulsante sulla parte superiore dello schermo. Modalità Eraser: toccare uno degli ostacoli da eliminare quella, premere e tenere premuto su un punto vuoto per cancellarli tutti.
- Pausa: il pulsante in basso a destra, è possibile mettere in pausa la simulazione di disegnare gli ostacoli più facilmente o visualizzare storia / grafici senza aggiornamenti in tempo reale.
- Avanti veloce: questo pulsante accelera la velocità di simulazione; notare che è possibile che il razzi traiettoria può essere leggermente differente tra le due modalità, soprattutto con molti razzi
- Storia: il pulsante sulla parte superiore dello schermo, si apre la storia dove si possono vedere i dati di tutte le generazioni dall'inizio della simulazione. È possibile raggiungere le classifiche da qui
- Toccare e trascinare il bersaglio per spostarlo intorno allo schermo.
- Menu Indietro: premere il pulsante Indietro sul dispositivo per aprire il menu di nuovo, in cui è possibile modificare i parametri della simulazione (cliccando su Applica) o del carico / salva stati
Salvataggio dei file:
L'ultima versione utilizza file binari invece di testo semplice, che permette di ridurre fino a dieci volte la memoria utilizzata e il tempo di lettura / scrittura; si sarà ancora in grado di caricare i file (non esportare) da vecchie versioni.
file esportati vengono salvati in SmartRockets directory predefinita nella radice della memoria interna. Abbiamo provato diversi gestori di file e si dovrebbe essere in grado di caricare un file .srk semplicemente cliccando su di esso (anche da Google Drive, WhatsApp o telegramma, ecc ...) oppure selezionando la nostra applicazione nell'elenco visualizzato. L'unico che ci ha dato qualche problema è "My Files" da Samsung, che a volte non hanno aperto i file senza mostrando anche l'opzione "Apri con"; in questo caso si può caricare su Google Drive o aprirlo tramite un altro file manager.