ImprovEvolve: Ask AlphaEvolve to Improve the Input Solution and Then Improvise
Alexey Kravatskiy, Valentin Khrulkov, Ivan Oseledets
TL;DR
ImprovEvolve tackles the challenge of leveraging LLMs for difficult mathematics-driven optimization by decomposing the search into a modular class with generate_config, improve, and perturb, and by embedding this in a basin-hopping framework. Using two-stage validation and a MAP-Elites backbone, it demonstrates strong performance on rugged problems, achieving state-of-the-art hexagon packings for multiple sizes and improving the second-autocorrelation lower bound when resuming from AlphaEvolve solutions with expert edits. The results highlight the value of task decomposition and human–AI collaboration in mathematical discovery, offering a scalable blueprint for applying LLM-guided optimization to other complex domains. While promising, the work acknowledges limitations in generalizability and the need for careful hyperparameter and edit management, pointing toward future agentic and collaborative workflows that blend AI automation with domain expertise.
Abstract
Recent advances in LLM-guided evolutionary computation, particularly AlphaEvolve, have demonstrated remarkable success in discovering novel mathematical constructions and solving challenging optimization problems. In this article, we present ImprovEvolve, a simple yet effective technique for enhancing LLM-based evolutionary approaches such as AlphaEvolve. Given an optimization problem, the standard approach is to evolve program code that, when executed, produces a solution close to the optimum. We propose an alternative program parameterization that maintains the ability to construct optimal solutions while reducing the cognitive load on the LLM. Specifically, we evolve a program (implementing, e.g., a Python class with a prescribed interface) that provides the following functionality: (1) propose a valid initial solution, (2) improve any given solution in terms of fitness, and (3) perturb a solution with a specified intensity. The optimum can then be approached by iteratively applying improve() and perturb() with a scheduled intensity. We evaluate ImprovEvolve on challenging problems from the AlphaEvolve paper: hexagon packing in a hexagon and the second autocorrelation inequality. For hexagon packing, the evolved program achieves new state-of-the-art results for 11, 12, 15, and 16 hexagons; a lightly human-edited variant further improves results for 14, 17, and 23 hexagons. For the second autocorrelation inequality, the human-edited program achieves a new state-of-the-art lower bound of 0.96258, improving upon AlphaEvolve's 0.96102.
