A community-driven registry for Claude, Cursor, Windsurf, Cline & more. Not affiliated with Anthropic.
Are you the author? Sign in to claim
[NeurIPS 2024] ReEvo: Large Language Models as Hyper-Heuristics with Reflective Evolution
🥳 Welcome! This is a codebase that accompanies the paper ReEvo: Large Language Models as Hyper-Heuristics with Reflective Evolution.
Give ReEvo 5 minutes, and get a state-of-the-art algorithm in return!

We introduce Language Hyper-Heuristics (LHHs), an emerging variant of Hyper-Heuristics (HHs) that leverages LLMs for heuristic generation, featuring minimal manual intervention and open-ended heuristic spaces.
To empower LHHs, we present Reflective Evolution (ReEvo), a generic searching framework that emulates the reflective design approach of human experts while much surpassing human capabilities with its scalable LLM inference, Internet-scale domain knowledge, and powerful evolutionary search.
We can improve the following types of algorithms:
on the following problems:
with both black-box and white-box settings.
$ python main.py llm_client=openai llm_client.api_key="<Your API key>" # see more options in ./cfg/llm_client
./outputs/main/ by default../problems/*/test.ipynb.[!TIP] We recommend using uv for lightning fast installation and dependency management (see below details), otherwise read on!
We recommend using uv for faster installation and dependency management. To install it, run:
curl -LsSf https://astral.sh/uv/install.sh | sh
Then, clone the repository and cd into it:
git clone git@github.com:ai4co/reevo.git
cd reevo
Create a new virtual environment and activate it:
uv venv --python 3.12
source .venv/bin/activate
Then synchronize the dependencies:
uv sync --all-extras
This will install all the optional required dependencies; you can remove --all-extras to install only the default dependencies and add e.g. --extra aco --extra gls to install only the ACO and GLS problem-specific ones respectively and similarly (see the pyproject.toml for more details).
After cloning the repo, you can install dependencies locally on Python>=3.11 as follows:
pip install -e ".[gls,aco,nco]"
where gls, aco and nco are the optional dependencies for GLS, ACO and NCO problems (remove them if not needed).
# e.g., for tsp_aco
python main.py \
problem=tsp_aco \ # problem name
init_pop_size=4 \ # initial population size
pop_size=4 \ # population size
max_fe=20 \ # maximum number of heuristic evaluations
timeout=20 # allowed evaluation time for one generation
Check out ./cfg/ for more options.
tsp_aco, tsp_aco_black_box, tsp_constructive, tsp_gls, tsp_pomo, tsp_lehdcvrp_aco, cvrp_aco_black_box, cvrp_pomo, cvrp_lehdbpp_offline_aco, bpp_offline_aco_black_box, bpp_onlinemkp_aco, mkp_aco_black_boxop_aco, op_aco_black_boxdpp_ga./cfg/problem/../problems/../prompts/.By default:
f"./problems/YOUR_PROBLEM/gpt.py", and will be imported into ./problems/YOUR_PROBLEM/eval.py (e.g. for TSP_ACO), which is called by reevo._run_code during ReEvo../problems/YOUR_PROBLEM/eval.py (e.g. for TSP_ACO) should print out the meta-objective value as the last line of stdout, which is parsed by reevo.evaluate_population for heuristic evaluation.Use the cli parameter llm_client to designate an LLM API provider, and llm_client.model to determine the model to use. For example,
$ export LLAMA_API_KEY=xxxxxxxxxxxxxxxxxxxx
$ python main.py llm_client=llama_api llm_client.model=gemma2-9b
Supported LLM API providers and models include (note that only chat models are supported):
If you encounter any difficulty using our code, please do not hesitate to submit an issue or directly contact us!
We are also on Slack if you have any questions or would like to discuss ReEvo with us. We are open to collaborations and would love to hear from you 🚀
If you find our work helpful (or if you are so kind as to offer us some encouragement), please consider giving us a star, and citing our paper.
@inproceedings{ye2024reevo,
title={ReEvo: Large Language Models as Hyper-Heuristics with Reflective Evolution},
author={Ye, Haoran and Wang, Jiarui and Cao, Zhiguang and Berto, Federico and Hua, Chuanbo and Kim, Haeyeon and Park, Jinkyoo and Song, Guojie},
booktitle={Advances in Neural Information Processing Systems},
year={2024},
note={\url{https://github.com/ai4co/reevo}}
}
We are very grateful to Yuan Jiang, Yining Ma, Yifan Yang, and AI4CO community for valuable discussions and feedback.
Also, our work is built upon the following projects, among others:
Native macOS app to monitor Claude AI usage limits and watch your coding sessions live
Pocket Flow: Codebase to Tutorial
npx CLI installing 100+ agents, commands, hooks, and integrations in one command
干净、强大、属于你的 AI Agent 平台 --AI agents, without the clutter.