Genetic Programming
Evolutionary.TreeGP
— TypeImplementation of Koza-type (tree-based) Genetic Programming
The constructor takes following keyword arguments:
populationSize
: The size of the populationterminals
: A dictionary of terminals with their their corresponding dimensionality- This dictionary contains (
Terminal
,Int
) pairs - The terminals can be any symbols (variables), constat values, or 0-arity functions.
- This dictionary contains (
functions
: A collection of functions with their corresponding arity.- This dictionary contains (
Function
,Int
) pairs
- This dictionary contains (
initialization
: A strategy for population initialization (default::grow
)- Possible values:
:grow
and:full
- Possible values:
mindepth
: Minimal depth of the expression (default:0
)maxdepth
: Maximal depth of the expression (default:3
)mutation
: A mutation function (default:crosstree
)crossover
: A crossover function (default:subtree
)simplify
: An expression simplification function (default::nothing
)optimizer
: An evolutionary optimizer used for evolving the expressions (default:GA
)- Use
mutation
andcrossover
parameters to specify GP-related mutation operation. - Use
selection
parameter to specify the offspring selection procedure
- Use
Description
The Genetic Programming is a technique of evolving programs, starting from a population of unfit (usually random) programs, fit for a particular task by applying operations analogous to natural genetic processes to the population of programs. It is essentially a heuristic search technique, i.e. searching for an optimal or at least suitable program among the space of all programs[1].
Auxiliary Functions
Evolutionary.Expression
— TypeJulia expression wrapper
Evolutionary.randterm
— Functionrandterm(t::TreeGP)
Returns a random terminal given the specification from the TreeGP
object t
.
Evolutionary.simplify!
— Functionsimplify!(expr)
Simplify an algebraic expression
References
- 1John R. Koza, "Genetic Programming: On the Programming of Computers by Means of Natural Selection", MIT Press, 1992.