Space-filling sweeps (Sobol, Latin Hypercube)
Space-filling sweeps (Sobol, Latin Hypercube)
Space-filling sweeps (Sobol, Latin Hypercube)
When grid is too dense and adaptive search is too goal-directed, quasi-Monte-Carlo (QMC) sweeps draw a fixed budget of variations that cover the parameter space evenly. Use them for characterization — getting a representative scatter you can plot — rather than optimization.
Default to Sobol unless you have all-discrete dims or want exact per-bin balance.
64 samples × 3 trials = 192 cells. A 5⁴ grid would be 625 cells — you save ~70% with comparable scatter coverage.
Run identical YAML on build A, then build B. The same seed makes Sobol pick identical 32 points both runs, giving you paired comparisons — much better variance than independent sweeps.
LHS guarantees each model appears samples / len(choices) times — its niche over Sobol when all dims are discrete.
Every QMC run writes <artifacts>/sweep_aggregate/sampling_design.json containing the mapped sample values (samples_mapped), the dimension specs, the sampler type/seed, and sampler options (scramble for Sobol, optimization for LHS). Re-runs with the same seed and scipy version produce byte-identical points. Pin scipy in pyproject.toml if you need cross-machine reproducibility over time.
max-concurrency-under-sla / max-goodput-under-slo)