interface version 1
A Wedge ROP variant that implements a genetic (evolutionary) algorithm.
Genetic Algorithm (GA)
"Mutation! Kill the muto!" (Waterworld)
How the genetic/evolutionary algorithm works
It is based on natural selection. After an initial population is randomly generated, the genetic algorithm (GA) mimics the evolutionary process through three operators:
Selection – the “fittest” entities will have their genes mixed
Crossover – represents mating between individuals
Mutation – adds small, unique random modifications to each child
Steps explained
Selection
The key idea: give preference to “better” individuals, allowing them to pass on their genes to the next generation. “Better” may be determined by some objective function or by a subjective judgement.
Crossover
Two parents are chosen, whose genes will be recombined into children, using one of several methods (see parameters below). Note that the two parents always have two children.
Mutation
Its purpose is to maintain diversity within the population and inhibit premature convergence. (For each new child, a few parameters will be slightly modified in a random fashion.)
Tip
Don’t let the original terminology scare you. Just give it a try and follow instructions carefully. The concepts are very simple, and you’ll understand it very quickly.
How it works in Houdini
The following sections explain how the theory is turned into practice in Houdini.
(TODO: what we want (lookdev), how (find the proper parameter values), GA will adjust the parameter values for us)
Terminology
An entity or individual is simply a list of node parameters (along with their values)
A gene is a single parameter from the list (along with its value)
A population is a bunch of entities (parameter lists)
Steps explained
This is an iterative process, where each iteration creates a new population from the previous one.
Initial population
Selection
...
Effects of the various operations
Selection alone will tend to fill the population with copies of the best individual from the population.
Selection and crossover operators will tend to cause the algorithms to converge on a good but sub-optimal solution.
Mutation alone induces a random walk through the search space.
Selection and mutation creates a parrallel, noise-tolerant, hill climbing algorithm.
Usage Notes
population count can be changed between generations
keep in mind that each parent pair will add 2 kids to the next population
Parameters
...
To Do
aborting should restore original (pre-wedge) param values
use ROP network connections to represent generations (branches, etc.)
tools for quickly previewing of all entities in a generation
support for changing parameter ranges between generations
the one node per generation provides that
should save parm list for each generation (?)
...
on delete, it should ask if it should delete files of related generation (just like waypoint)
...
Release Notes
interface version 1 —
2014-09-18 |
|
2014-09-17 |
|
2014-09-15 |
|
2014-09-14 |
|