Skip to content

Genetic programming, negative selection, genetic drift.

License

Notifications You must be signed in to change notification settings

cwreynolds/LazyPredator

Repository files navigation

LazyPredator

Genetic programming, negative selection, genetic drift.

LazyPredator is a framework for genetic programming — a type of genetic algorithm — with an emphasis on negative selection, genetic drift, and relative tournament-based fitness. It is intended for population-based evolutionary optimization. Unlike gradient descent methods, evolutionary computation does not use gradient so does not require differentiablity.

It is written in C++ and structured as a “header only” library. Simply copy (or git clone) its source files and include LazyPredator.h in your code.

LazyPredator supports genetic programming (GP: [Koza 1992], [Cramer 1985]) more specifically, the varient called strongly typed genetic programming (STGP: [Montana 1995]).

LazyPredator was initially used to optimize programs to perform procedural texture synthesis based on the TexSyn library. That combination of LazyPredator and TexSyn was a large component of the research project described in the paper Coevolution of Camouflage published at the Artificial Life Conference 2023, in Sapporo, Japan, then in a poster at SIGGRAPH 2023 in Los Angeles, USA.

There is a bit of a LazyPredator development notebook. Much deeper discussion of its initial use for the camouflage project is in TexSyn's devo blog.

Please contact the author if you have questions about using LazyPredator.

About

Genetic programming, negative selection, genetic drift.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published