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
|
---|
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.
|
---|
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
|
---|
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.
|
---|
16 | Again, read the comments in the source for more information.
|
---|
17 |
|
---|
18 | "FramsticksLib.py" uses "frams.py" and provides a few fundamental, high-level building blocks
|
---|
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".
|
---|