What Makes an LLM a Good Optimizer? A Trajectory Analysis of LLM-Guided Evolutionary Search

Xinhao Zhang, Xi Chen, François Portet, Maxime Peyrard
4/21/2026
cs.CLcs.NE

No official code found. Best implementation: XINHAO-ZHANG/traj_evo_search (0 stars, last commit 2026-04-22).

Abstract

Recent work has demonstrated the promise of orchestrating large language models (LLMs) within evolutionary and agentic optimization systems. However, the mechanisms driving these optimization gains remain poorly understood. In this work, we present a large-scale study of LLM-guided evolutionary search, collecting optimization trajectories for 15 LLMs across 8 tasks. Although zero-shot problem-solving ability correlates with final optimization outcomes, it explains only part of the variance: models with similar initial capability often induce dramatically different search trajectories and outcomes. By analyzing these trajectories, we find that strong LLM optimizers behave as local refiners, producing frequent incremental improvements while progressively localizing the search in semantic space. Conversely, weaker optimizers exhibit large semantic drift, with sporadic breakthroughs followed by stagnation. Notably, various measures of solution novelty do not predict final performance; novelty is beneficial only when the search remains sufficiently localized around high-performing regions of the solution space. Our results highlight the importance of trajectory analysis for understanding and improving LLM-based optimization systems and provide actionable insights for their design and training.

View on arXivView PDF

Code Implementations(1)

Web Page For Research Project: What makes an LLM a good optimizer? A trajectory analysis of LLM-guided evolutionary search.

00CSS, HTML6 months ago

Cite this paper

@article{zhang2026what,
  title  = {What Makes an LLM a Good Optimizer? A Trajectory Analysis of LLM-Guided Evolutionary Search},
  author = {Xinhao Zhang and Xi Chen and François Portet and Maxime Peyrard},
  year   = {2026},
  eprint = {2604.19440},
  archivePrefix = {arXiv},
  url    = {http://arxiv.org/abs/2604.19440v1}
}

Add a badge to your README

Shows whether official code is linked for this paper.

Code of Paper badge
[![Code of Paper](https://codeofpaper.com/badge/2604.19440.svg)](https://codeofpaper.com/paper/2604.19440)

Discussion