[1190] | 1 | ______________________________ "framspy" directory _______________________________
|
---|
| 2 |
|
---|
| 3 | This directory contains sources that allow one to interact with the native
|
---|
| 4 | Framsticks library from Python, and to perform evolutionary optimization.
|
---|
| 5 |
|
---|
| 6 | "frams.py" is the most fundamental file. It allows to access Framsticks script
|
---|
[1195] | 7 | objects in Python. You will find detailed descriptions in the source of this file,
|
---|
| 8 | but since this file is only responsible for buidling the low-level bridge between
|
---|
| 9 | Framsticks and Python, understanding and modifying it should not be necessary.
|
---|
[1190] | 10 |
|
---|
| 11 | "frams-test.py" uses "frams.py" and tests the connection between Python
|
---|
| 12 | and the native Framsticks library by performing a number of simple yet diversified
|
---|
[1195] | 13 | operations, so you should run it first to ensure everything works correctly.
|
---|
| 14 | This file can also be treated as a set of examples and demonstrations on how to access
|
---|
| 15 | Framsticks genotypes, the simulation, body parts, neurons, etc.
|
---|
[1190] | 16 | Again, read the comments in the source for more information.
|
---|
| 17 |
|
---|
[1195] | 18 | "FramsticksLib.py" uses "frams.py" and provides a few fundamental, high-level building blocks
|
---|
[1190] | 19 | for optimization: functions to mutate, crossover, evaluate a solution, etc.
|
---|
| 20 |
|
---|
| 21 |
|
---|
| 22 | There are three independent implementations of evolutionary algorithms in this directory
|
---|
| 23 | and they all rely on "FramsticksLib.py":
|
---|
| 24 |
|
---|
| 25 | 1)
|
---|
| 26 | "FramsticksEvolution.py" - the simplest one, everything is in one file. Uses the DEAP
|
---|
| 27 | framework ( https://deap.readthedocs.io/en/master/ ) to perform the optimization.
|
---|
| 28 | Supports multiple criteria, the generational architecture, and numerous parameters
|
---|
| 29 | to customize the evolutionary search. Invalid genotypes are assigned the fitness of "-1"
|
---|
| 30 | and the selection process is responsible for their extinction.
|
---|
| 31 | See "run-deap-examples.cmd".
|
---|
| 32 |
|
---|
| 33 | 2)
|
---|
| 34 | The "evolalg_steps" module - the most complicated one, every piece of an algorithm
|
---|
| 35 | is considered a "step" and can be customized. This results in a large number of small
|
---|
| 36 | files (classes), but allows for the highest flexibility in building new algorithms.
|
---|
| 37 | This module is no longer supported, but basic usage scenarios should work correctly.
|
---|
| 38 | See "run-evolalg_steps-examples.cmd".
|
---|
| 39 |
|
---|
| 40 | 3)
|
---|
| 41 | The "evolalg" module - the middle ground. Minimalistic yet it allows for easy
|
---|
| 42 | customizations, supports the generational architecture, the island model, quality-diversity
|
---|
| 43 | techniques and numerical optimization (completely independent from Framsticks).
|
---|
| 44 | Invalid genotypes are not accepted, so new ones are generated until they are valid.
|
---|
| 45 | See "run-evolalg-examples.cmd".
|
---|