MOSES is an evolutionary program generation engine, designed to breed compact, interpretable computer programs that solve complex problems. Unlike deep neural networks that function as black boxes of opaque weights, MOSES evolves transparent symbolic code (e.g., Lisp-like trees) capable of logical generalization. It treats the search for solutions as a meta-optimization problem, maintaining diverse subpopulations of programs (demes) to avoid local optima while iteratively refining candidates. This allows it to function as an automated data scientist, discovering the explicit causal formulas underlying a dataset rather than merely approximating statistical correlations.
Functionally, MOSES combines probabilistic model-building with evolutionary search to drive programmatic novelty. It operates via two nested loops: an outer loop that explores structural variations (recombining program trees to generate new logic) and an inner loop that tunes numeric parameters (optimizing specific “knobs” within those trees).
A defining characteristic of MOSES is its rigorous use of Elegant Normal Form (ENF) to constrain the search space. Rather than generating random code variations, the system converts every candidate program into a canonical, normalized representation (e.g., ensuring that a + b and b + a are treated as identical structures). By reducing all functionally equivalent programs to a single syntactic form, MOSES eliminates redundancy and drastically shrinks the combinatorial search space. This ensures that the evolutionary process expends its resources solely on meaningful logic changes rather than syntactic variations, resulting in solutions that are computationally efficient by design.
Repositories
Papers & Publications
Continue Reading