sr-rs/docs/DESIGN.md

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.