sr-rs/docs/DESIGN.md

26 lines
650 B
Markdown

# 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.