Representing the Population
Representing the Population
- Data is pushed onto stack before operations pop them (i.e. reverse polish. x+y
→
x y +
)
- The tree is stored as linear expression in reverse polish.
- Same structure on CPU as GPU.
- Avoid explicit format conversion when population is loaded onto GPU.
- Genetic operations act on reverse polish:
- random tree generation (eg ramped-half-and-half)
- subtree crossover
- 4 types of mutation
- Requires only one byte per leaf or function.
- So large populations (millions of individuals) are possible.