diff --git a/README.md b/README.md index 4fe3e5086..11879bd00 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,8 @@ An open-source implementation of the AlphaEvolve system described in the Google DeepMind paper "AlphaEvolve: A coding agent for scientific and algorithmic discovery" (2025). +![OpenEvolve Logo](openevolve-logo.png) + ## Overview OpenEvolve is an evolutionary coding agent that uses Large Language Models to optimize code through an iterative process. It orchestrates a pipeline of LLM-based code generation, evaluation, and selection to continuously improve programs for a variety of tasks. @@ -18,11 +20,15 @@ Key features: OpenEvolve follows an evolutionary approach with the following components: +![OpenEvolve Architecture](openevolve-architecture.png) + 1. **Prompt Sampler**: Creates context-rich prompts containing past programs, their scores, and problem descriptions 2. **LLM Ensemble**: Generates code modifications via an ensemble of language models 3. **Evaluator Pool**: Tests generated programs and assigns scores 4. **Program Database**: Stores programs and their evaluation metrics, guiding future evolution +The controller orchestrates interactions between these components in an asynchronous pipeline, maximizing throughput to evaluate as many candidate solutions as possible. + ## Getting Started ### Installation @@ -151,6 +157,18 @@ See the [Configuration Guide](configs/default_config.yaml) for a full list of op See the `examples/` directory for complete examples of using OpenEvolve on various problems: +### Circle Packing + +Our implementation of the circle packing problem from the AlphaEvolve paper, where we successfully match their reported results within 0.04%. + +[Explore the Circle Packing Example](examples/circle_packing/) + +### Function Minimization + +An example showing how OpenEvolve can transform a simple random search algorithm into a sophisticated simulated annealing approach. + +[Explore the Function Minimization Example](examples/function_minimization/) + ## Preparing Your Own Problems To use OpenEvolve for your own problems: diff --git a/examples/circle_packing/circle_packing_460.png b/examples/circle_packing/circle_packing_460.png index cfbfc6b24..a4db56501 100644 Binary files a/examples/circle_packing/circle_packing_460.png and b/examples/circle_packing/circle_packing_460.png differ diff --git a/openevolve-architecture.png b/openevolve-architecture.png new file mode 100644 index 000000000..39ff49d82 Binary files /dev/null and b/openevolve-architecture.png differ diff --git a/openevolve-logo.png b/openevolve-logo.png new file mode 100644 index 000000000..b3dbf06cd Binary files /dev/null and b/openevolve-logo.png differ