- Multiple Search Methods: FunSearch, OpenEvolve, EoH, (1+1)-EPS, RandSample
- Multiple LLM Providers: OpenAI, Claude, vLLM, SGLang
- Sandboxed Execution: Safe evaluation of generated algorithms
- Flexible Configuration: YAML-based configuration system
- Python >= 3.11 (recommended: 3.12)
# Install the package in editable mode
pip install -e .If you want to use the default OpenAI path, export your API key first:
export OPENAI_API_KEY="your-api-key"We provide two practical starting points:
-
Python API example:
python examples/online_bin_packing/run_funsearch.py
-
YAML example (recommended for learning the config system):
bash examples/run_online_bin_packing.sh funsearch
For more details, see Quick Start.
- FunSearch
- OpenEvolve
- EoH
- (1+1)-EPS
- RandSample
Want to run a search? Here's how:
We provide a ready-to-use example in examples/online_bin_packing/.
python examples/online_bin_packing/run_funsearch.pySet your API key first:
export OPENAI_API_KEY="your-api-key"Configs for each method are in examples/online_bin_packing/configs/:
| Method | Config File |
|---|---|
| FunSearch | configs/funsearch.yaml |
| OpenEvolve | configs/openevolve.yaml |
| EoH | configs/eoh.yaml |
| (1+1)-EPS | configs/one_plus_one_eps.yaml |
| RandSample | configs/randsample.yaml |
-
Copy and edit the config:
cp examples/online_bin_packing/configs/funsearch.yaml examples/online_bin_packing/configs/my_config.yaml
-
Open
my_config.yamland replace:api_key: null→api_key: "your-openai-key"(or setOPENAI_API_KEYenv var)
-
Run with any method (just change the argument):
# Run with FunSearch bash examples/run_online_bin_packing.sh funsearch # Run with OpenEvolve bash examples/run_online_bin_packing.sh openevolve # Run with EoH bash examples/run_online_bin_packing.sh eoh # Run with (1+1)-EPS bash examples/run_online_bin_packing.sh one_plus_one_eps # Run with RandSample bash examples/run_online_bin_packing.sh randsample
Available methods: funsearch, openevolve, eoh, one_plus_one_eps, randsample
For SwanLab integration, use funsearch_swanlab:
bash examples/run_online_bin_packing.sh funsearch_swanlab-
Choose a method (e.g., FunSearch) and copy one of the example configs:
cp examples/online_bin_packing/configs/funsearch.yaml my_experiment.yaml
-
Edit
my_experiment.yamlto set your:template_program_path: Your algorithm templatetask_description_path: Problem descriptionevaluator.class_path: Your evaluator class- LLM provider settings (API key, model, etc.)
-
Run:
python -m algodisco.methods.funsearch.main_funsearch --config my_experiment.yaml
If you use AlgoDisco in your research, please cite:
@misc{algodisco,
title = {AlgoDisco: Method Implementations and Tools for LLM-driven Automated Algorithm Design},
author = {Rui Zhang},
year = {2026},
url = {https://github.com/RayZhhh/algodisco},
}MIT License - see LICENSE for details.
