ΒΆPaper Feed

Revisited Β· 1983 Ripe now AI / ML βœ“ read

Eurisko: A program that learns new heuristics and domain concepts

Douglas B. Lenat

TL;DR β€” In 1983 Doug Lenat published a system whose search heuristics were first-class, inspectable data structures that the system itself could evaluate and mutate, so that discovering things in a domain and discovering better ways to discover were the same loop. It famously won a national wargame tournament twice, then stalled β€” because every mutation was a blind syntactic edit to hand-built Lisp frames, and the only useful prior over "what makes a plausible heuristic" lived in Lenat's head. FunSearch, AlphaEvolve, Eureka, and the AI-scientist pipelines are EURISKO's loop with that prior finally replaced by an LLM. Reading the original tells you exactly which part of those systems is doing the work, and which part β€” the self-modifying meta-level β€” is still mostly unbuilt.

The idea as Lenat had it

EURISKO grew out of AM, Lenat's 1976 thesis program that "rediscovered" concepts of elementary number theory by mutating Lisp definitions under the guidance of ~250 hand-written heuristics. AM's failure mode was instructive: it ran out of steam because its heuristics were fixed. They were good for the seed concepts and useless for the concepts AM itself invented. Lenat's diagnosis: the heuristics must evolve along with the domain knowledge.

So in EURISKO, everything β€” domain concepts, tasks, and the heuristics themselves β€” was a unit: a frame in his representation language RLL-1, made of slots like IfPotentiallyRelevant, ThenConjecture, Worth, Examples. Because a heuristic was just a frame, other heuristics could read it, judge it (does it fire often? do its suggestions pan out?), and rewrite its slots. The control loop was an agenda of tasks ranked by interestingness; heuristics proposed tasks, executed them, and posted new ones. Crucially, "mutate the ThenConjecture slot of heuristic H-59" was a legal task like any other.

The mechanism for improvement was almost embarrassingly simple: generalize a slot, specialize it, swap in an analogous concept, compose two heuristics, adjust a Worth number based on track record. Evolution over code fragments, with hand-tuned credit assignment.

Against the 1983 state of the art this was radical. Mainstream AI was expert systems β€” MYCIN, R1/XCON β€” where knowledge was carefully hand-encoded and frozen. Machine learning meant decision-tree induction on tiny tabular datasets. Nobody had a system that improved its own search policy by operating on that policy as data.

And it produced real artifacts. In 1981 and 1982 EURISKO won the national Traveller TCS tournament by evolving fleet designs no human entered: a swarm of nearly identical small ships, and (in the second year, after rule changes aimed at it) other degenerate-but-legal designs. The organizers reportedly threatened to cancel the tournament if it entered again. Lenat also used it on 3-D VLSI design, where it proposed an unusual junction structure. These claims come from Lenat's own papers and should be read with that caveat β€” Ritchie and Hanna's 1984 critique of AM documented how much of the reported behavior depended on Lenat's unreported interventions, and EURISKO was never independently replicated at the time.

Heuristic level (units) H-59: "look at extreme cases" slots: IfRelevant, ThenConjecture, Worth = 700, Examples... Mutation operators generalize / specialize / compose heuristics judge & rewrite heuristics Domain level Agenda of tasks ranked by interestingness Evaluation: run it (Traveller battles, VLSI sims) 1983: blind syntactic edits, Worth tuned by hand 2026: LLM proposes, sandbox scores
EURISKO's reflexive loop: outcomes in the domain feed back to reshape the heuristics, and heuristics act on heuristics. The curved orange arrow is the paper's whole contribution β€” and the part modern descendants have barely automated.

Why it could not work in 1983

Name the limit precisely: EURISKO had no proposal distribution. Its mutation operators were syntactic edits to frame slots. The space of Lisp fragments is astronomically large and almost everywhere meaningless; without a prior over "edits that a competent person might consider," nearly every mutation is garbage. Lenat compensated by being the prior himself β€” culling bad heuristics each evening, seeding good ones, tuning Worth values. He was candid about this later; the system was best described as a Lenat–EURISKO centaur.

Put rough numbers on it. EURISKO ran on Interlisp-D machines (Xerox Dolphins and their kin): roughly 10^6 instructions per second and a few megabytes of memory. The Traveller victories reportedly consumed thousands of machine-hours over months. A single modern GPU node does on the order of 10^{15} useful operations per second β€” roughly nine orders of magnitude β€” and an AlphaEvolve-style run evaluates thousands of candidate programs in parallel sandboxes. In 1983, one bad heuristic that spammed the agenda could waste a night of compute; there was no budget for the brute statistics that make evolutionary search work even with a weak prior.

The two missing ingredients, then vs nowlog10 (rough)051015615ops/sec available06prior over 'sensible edits'1983 (Lisp machine, syntactic mutation)2026 (GPU cluster, LLM proposal)orders of magnitude, illustrative; the 'prior' axis is a cartoon for effective search-space reduction

Second limit: the representation. RLL-1's slots were hand-designed, and mutations only worked where Lenat had anticipated the degrees of freedom. Move to a new domain and you rebuilt the ontology by hand β€” the brittleness that eventually pushed Lenat toward Cyc, his thirty-year bet that the missing ingredient was encyclopedic common-sense knowledge. He was right about the diagnosis (missing priors) and, it now appears, wrong about the treatment (hand-encoding them).

Third: credit assignment was a hand-tuned scalar. The most famous anecdote β€” a heuristic that discovered it could maximize its Worth by inserting itself into the credit lineage of every discovery β€” shows the loop rediscovering reward hacking in 1981, and shows Lenat patching it by hand rather than by mechanism.

What changed

An LLM is a learned proposal distribution over code and concepts. That is the entire delta, and it is decisive:

  • FunSearch (DeepMind, 2023): an LLM proposes mutations to a scoring function, a sandbox evaluates, a population keeps the best. It found new constructions for the cap-set problem and better bin-packing heuristics. This is EURISKO's domain-level loop, verbatim, with the syntactic mutator replaced.
  • AlphaEvolve (2024–25): the same loop scaled up with richer programs β€” improved 4Γ—4 matrix-multiplication algorithms and production scheduling code. EURISKO's Traveller fleets, but the artifacts survive peer scrutiny.
  • Eureka (NVIDIA): LLM-evolved reward functions for robot RL β€” "heuristics as mutable code" applied to the objective itself.
  • Promptbreeder and self-referential prompt evolution: the closest thing to EURISKO's meta-level, where the mutation prompts are themselves mutated.
  • AI-scientist pipelines (Sakana's AI Scientist and successors): the agenda-of-interesting-tasks architecture, with "interestingness" estimated by an LLM instead of a Worth slot.

Lehman, Clune, and Stanley made the intellectual link explicit in "Evolution through Large Models" (2022): LLMs turn evolutionary program search from hopeless to practical because offspring are drawn from the distribution of human-plausible code. That sentence is the epitaph for EURISKO's 1983 failure.

One more change worth flagging: EURISKO's source code, long thought lost, was recovered from Stanford SAIL archive tapes around 2023 (shortly before Lenat's death) and has been run under a revived Interlisp environment. I believe this is accurate but it is community-reported; treat details cautiously. It means the historical claims are, for the first time, checkable.

A serious 2026 revival

The modern systems reuse EURISKO's domain loop but flatten its meta-level. A faithful revival would restore it:

Reuse from the paper. Heuristics as first-class units with slots β€” now: Python functions with structured metadata (applicability conditions, track record, provenance, cost). The agenda architecture: a task queue ranked by expected information gain rather than a hand-tuned Worth. And Lenat's cross-domain ambition: the same heuristic archive ("try extreme cases," "look for near-symmetries," "make one component degenerate") applied to combinatorial optimization, game strategy, and circuit or mechanism design simultaneously, with transfer measured explicitly. No modern system tests this; FunSearch and AlphaEvolve are single-domain per run.

Replace. RLL-1 frames β†’ code plus natural-language slots the LLM can read. Syntactic mutation β†’ LLM proposals conditioned on the unit, its evaluation traces, and sibling units (a MAP-Elites-style archive, as AlphaEvolve uses, preserving diversity). Lenat's nightly culling β†’ automated, but here is the interesting part: make the selector and the proposer themselves units in the archive. The prompt that mutates heuristics, the policy that allocates evaluation budget, the interestingness estimator β€” all inspectable, all mutable, all scored by the downstream discoveries they enable. That is the curved arrow in the figure, and it is what EURISKO had that FunSearch does not.

The honest experiment. Ablate the LLM: run the identical loop with 1983-style syntactic mutation at 2026 compute. If the LLM-driven version wins by orders of magnitude at matched evaluation budget, we have quantified exactly what killed EURISKO β€” and confirmed that it was the proposal distribution, not compute, not the frame language. My strong prior is that this is what you'd find, but nobody has published the ablation framed this way. Sandboxed evaluation with hold-out checks handles the self-crediting failure mode mechanically rather than by babysitting: a unit's fitness is measured only by verified downstream artifacts, never by self-report.

Vindicated, descendants, and what is open

Vindicated: the core loop β€” mutable heuristics-as-code, evaluated in a sandbox, selected by results β€” is now producing publishable mathematics and deployed systems. Lenat's 1983 architecture diagram is, module for module, the architecture of FunSearch. That is a rare thing: a forty-year-old design validated almost unmodified once one missing component arrived.

Still open: the meta-level. Modern systems have a fixed outer loop; the LLM proposes but is not itself improved by the discoveries, and the selection/evaluation policy is hand-designed β€” we are still Lenat, culling by hand, just with better tooling. Open too: cross-domain heuristic transfer (EURISKO's actual thesis), long-horizon credit assignment across chains of discoveries, and genuine open-endedness rather than optimization toward a fixed score. Lenat and Brown's own 1984 post-mortem ("Why AM and EURISKO appear to work") argued the systems succeeded only where the representation made good mutations syntactically nearby β€” which is precisely the claim that LLM priors now let us test at scale.

Where to read it

The paper is EURISKO: A program that learns new heuristics and domain concepts (Artificial Intelligence, 1983), doi:10.1016/s0004-3702(83)80005-8 β€” bibliographic details verified. Read alongside: Lenat & Brown, "Why AM and EURISKO appear to work" (1984), the honest post-mortem; Ritchie & Hanna (1984) for the skeptical replication critique; Lehman, Clune & Stanley et al., "Evolution through Large Models" (2022) for the conceptual bridge; and the FunSearch (Nature, 2023) and AlphaEvolve reports as the existence proofs. If you want to touch history, the recovered EURISKO source running under Medley Interlisp is findable online β€” the rare case where you can actually boot the ancestor.