650 B
650 B
DESIGN
Goals
- Fast core with predictable performance (no runtime JIT)
- Clean APIs for Python and Web
- Extensibility: pluggable operators, fitness terms, search strategies
Key components
- AST (
ast.rs), evaluator (eval.rs), operators (ops.rs) - Fitness metrics (
fitness.rs), GP algorithm (gp.rs) - Simplification (
simplify/), utilities (utils.rs)
Error/Complexity tradeoff
- Use bi-objective selection or scalarized cost; Pareto archive maintained per generation.
Safety
- Protected operators for division/log; numeric guards where needed.
Determinism
- Seeded RNG exposed in configs for reproducible runs.