ImprovEvolve: Ask AlphaEvolve to Improve the Input Solution and Then Improvise
About
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.
Related benchmarks
| Task | Dataset | Result | Rank | |
|---|---|---|---|---|
| Second Autocorrelation Inequality | ACI 2 (test) | Value96.258 | 7 | |
| Hexagon Packing | HEX n=11 (test) | Side Length (L)3.9245 | 6 | |
| Hexagon Packing | HEX n=12 (test) | Side Length (L)3.9416 | 5 | |
| Hexagon Packing | HEX 16 | Side Length (L)4.5275 | 3 | |
| Hexagon Packing | HEX 22 | Side Length (L)5.2857 | 3 | |
| Hexagon Packing | HEX 23 | Side Length (L)5.4848 | 3 | |
| Hexagon Packing | HEX 13 | Side length (L)4 | 3 | |
| Hexagon Packing | HEX 14 | Side Length (L)4.2724 | 3 | |
| Hexagon Packing | HEX 15 | Side length (L)4.4473 | 3 | |
| Hexagon Packing | HEX 17 | Side Length (L)4.6188 | 3 |