26 lines
650 B
Markdown
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.
|