FunSearch

An LLM writes small programs that build a solution, an evaluator scores them, and the best programs go back into the prompt.

Read the paper

The loop

  1. Proposes

    Python functions (inside a fixed skeleton) that construct cap sets or pack bins

  2. Judged by

    An automated evaluator that runs each program and scores its output

  3. Steers

    Best programs are shown in later prompts; islands of programs are periodically reseeded

Headline result

On the cap set problem, FunSearch found a cap set of size 512 in 8 dimensions (the previous best known was 496) and raised the lower bound on the asymptotic cap set capacity to 2.2202 (previous best 2.2180). On online bin packing it evolved heuristics that beat first fit and best fit on the OR-Library sets OR1-OR4 and on Weibull instances.

What this does not prove

Results are for two problem families with a cheap, graded score. The paper notes that the method needs such a score and that sampling is costly. The public repo is a reference implementation only: it has no LLM, no sandbox and no distributed system.

How it generalizes the harness

The evolutionary search and evaluator do the solving, over a population of programs, and the winning program is a standalone artifact that runs without the model.

Classification

Classification of FunSearch
What it proposesProgram
Generative modelPretrained LLM, frozen (Codey, a PaLM 2 based code model, used without fine-tuning)
Algorithmic authorityProgram evaluator in a sandbox
FeedbackScore
What gets updatedPrompt context and population of candidates
When it runsAt inference time
ValidityEmpirical (measured)
EvidenceExperiments reported
LineageOriginal system