Skip to main content

limen.experiment.param_search

Search strategies that yield parameter combinations from a mutable ParamDomain.

Canonical docs

What this package owns

Owns the pluggable search strategies the advanced experiment path uses to enumerate parameter permutations, plus the registry that names them. Does not own the parameter domain (limen.experiment.param_domain), the search queue (limen.experiment.msq), or the loop that drives them.

Key entry points

Entry pointUse caseNotes
SearchStrategyAbstract base for strategiesIterators that yield dict[str, Any] combinations and observe domain mutations
GridStrategyExhaustive grid over the domainDeterministic full sweep
RandomStrategySampled combinationsAccepts a seed for reproducibility
STRATEGY_REGISTRYName-to-class lookupResolves the strategy named in a manifest

Adjacent modules

  • limen.experiment.param_domain.ParamDomain supplies the domain strategies iterate; strategies register as observers so they react to domain mutations.
  • limen.experiment (UEL, MSQ, reducers) drives the strategy and feeds feedback back into the domain.

Quick orientation

param_search/
├── search_strategy.py # SearchStrategy abstract base
├── grid_strategy.py # Exhaustive grid
├── random_strategy.py # Random sampling
└── registry.py # STRATEGY_REGISTRY

Things to know

  • A strategy is an iterator: it yields one parameter dict per permutation and stops when the domain is exhausted.
  • Strategies hold a reference to their ParamDomain and register as observers, so reducers that mutate the domain mid-run change what the strategy yields next.
  • RandomStrategy is only reproducible when constructed with an explicit seed.