Algorithms
KD puts seven equation-discovery algorithms behind one intermediate
representation and one API: switching algorithms means changing
kd.Model(algorithm=...), with the same dataset and the same way of reading the
result. The derivatives are computed by the platform to each algorithm's declared
requirement, so their source can differ (see
derivative sources). Each algorithm constructs
its own final score, so
those numbers do not line up across algorithms; refit the same terms in one
context with evaluate_terms first, as described in
score conventions and comparability.
Algorithm list
All seven are stated in the same terms, column by column, under the name each
one is published as; the last column links its paper. The identifier
kd.Model(algorithm=...) takes is in the spec strip at the top of every
algorithm page, and the authors' code repository is in the references on the
same page.
| Algorithm | Score | Cost | Derivatives | Equation form | Data layout | Source |
|---|---|---|---|---|---|---|
| SGA-PDE | AIC min | medium | finite_diff autograd | EVOLUTION | grid | Chen et al. (2022) |
| DLGA-PDE | DLGA fitness min | heavy | autograd | EVOLUTION | grid | Xu et al. (2020) |
| DISCOVER | reward max | heavy | finite_diff | EVOLUTION REGRESSION | grid tabular | Du et al. (2024) |
| EqGPT | EqGPT reward max | heavy | finite_diff | EVOLUTION HOMOGENEOUS | grid scattered | Xu et al. (2025) |
| LLM4ED | LLM4ED sparse reward max | medium | finite_diff | EVOLUTION | grid | Du et al. (2024) |
| PySR | NMSE min | medium | finite_diff | EVOLUTION REGRESSION | grid tabular | Cranmer (2023) |
| PySINDy | NMSE min | light | finite_diff | EVOLUTION | grid | de Silva et al. (2020) |