Codebase for benchmarking Cellular Direct Search (CDS) against standard optimizers on BBOB, DIRECTGOLib, and additional test functions.
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txtpython3 main.py quick
python3 main.py benchmark --budget 5000 --seeds 20 --dims 10 20 30 --out results/benchmark_results.csv
python3 main.py directgolib --budget 5000 --seeds 20 --dims 10 --instances 0 --out results/directgolib_abs_layeb_original.csv
python3 main.py directgolib --budget 5000 --seeds 20 --dims 10 --instances 1 2 3 4 5 --out results/directgolib_abs_layeb_shifted.csv
python3 main.py directgolib --budget 5000 --seeds 20 --dims 10 --families Layeb --start-source Layeb02 --out results/directgolib_layeb02_onward.csv
python3 main.py hpo-quickAll analysis scripts are exposed through one module entrypoint:
python3 -m analyses bbob-ranking
python3 -m analyses directgolib-ranking
python3 -m analyses direct-bias
python3 -m analyses grid-ablation
python3 -m analyses grid-ablation --detail
python3 -m analyses pareto
python3 -m analyses plots --budget 5000 --seed 42
python3 -m analyses sensitivityThe default analysis inputs are expected under results/:
cds_benchmarking_complete_results.csvdirectgolib_abs_layeb_original.csvdirectgolib_abs_layeb_shifted.csv
- Benchmark rows are streamed to CSV during execution.
- A summary table is printed at the end (
Best Config per Method). directgolibruns the append-only Python port of all DIRECTGOLib ABS and Layeb functions; instance0is original,1-2are shifted, and3-5are shifted+rotated.- Raw result files and figure outputs are ignored by Git.
main.py: CLI entrypointbenchmarking_module.py: benchmark pipeline and optimizer wrappersdirectgolib_abs_layeb.py: isolated ABS/Layeb DIRECTGOLib port and box-constrained benchmarkcore.py: CDS implementationshpo_module.py: HPO benchmark on Fashion-MNISTanalyses/: ranking, ablation, bias, Pareto, convergence, and sensitivity analyses