Skip to content
Agentmart
Submit a tool

eoh

Evolution of Heuristics (EoH) — arxiv 2401.02051.

Skill by lseman

IndexedMIT★ 1
Write a review

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/lseman-eoh

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Evolution of Heuristics (EoH) — arxiv 2401.02051. Autonomous heuristic evolution via LLM-driven operators. Use when asked to evolve a heuristic, run EoH, or optimize an algorithmic function through generations.

Use cases: ml, research

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found
Runs as
Node.js package

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/eoh

What's inside

Skill name
eoh
Description
Evolution of Heuristics (EoH) — arxiv 2401.02051. Autonomous heuristic evolution via LLM-driven operators. Use when asked to evolve a heuristic, run EoH, or optimize an algorithmic function through generations.
License
MIT
Instructions
110 lines in SKILL.md · view on GitHub

Before installing

  • Ships executable scripts

Files (5)

  • SKILL.md
  • SKILL.md · eoh-dashboard/
  • SKILL.md · eoh-evolve/
  • SKILL.md · eoh-problem/
  • index.ts

SKILL.md (first lines)

# Evolution of Heuristics (EoH)

Evolve algorithmic heuristics autonomously using the EoH framework (arxiv 2401.02051). An LLM acts as the evolutionary operator, generating candidate heuristics that are evaluated for fitness and selected across generations.

## Core Concepts

- **Heuristic**: A function (thought + code) that solves a problem instance. Each heuristic has a fitness score.
- **Population**: A set of N heuristics. After each generation, the best N survive.
- **Operators**: Five evolutionary operators from the EoH paper:
  - **E1 Diversity**: Generate diverse heuristics from multiple parents
  - **E2 Convergence**: Refine toward the best solutions
  - **M1 Improve**: Improve the single best heuristic
  - **M2 Tune**: Fine-tune parameters of the best heuristic
  - **M3 Simplify**: Simplify the best heuristic (reduce complexity)
- **Generation**: One full cycle of applying all 5 operators to produce candidates, then selecting the next population.
- **Problem**: Defines the task, function signature, instances, and evaluation function.

## Session Structure

EoH sessions live in `.eoh/` directory:

| File | Purpose |
|------|---------|
| `.eoh/log.jsonl` | Append-only log of all generations and heuristics |
| `.eoh/prompt.md` | Optional: custom rules and constraints for the LLM |
| `.eoh/config.json` | Optional: max generations override |

## Workflow

### 1. Define the Problem

The problem must specify:
- **name**: Short identifier
- **description**: Full problem description for the LLM
- **functionSignature**: Required function signature the LLM must produce
- **instances**: Problem instances for evaluation
- **evaluateInstance**: Function that scores a heuristic on an instance

For Python files with EoH regions (`# EOH-BEGIN` / `# EOH-END`), the file itself defines the problem — the heuristic function is in the marked region and `evaluate(heuristic)` computes fitness.

### 2. Initialize Evolution

Set up the evolution session with:
- Problem definition (name, description, function signature)
- Population size (default: 10)
- Max generations (0 = unlimited)
- Direction: "lower" or "higher" fitness

### 3. Run Generations

Each generation:
1. Applies all 5 operators × population size = 5N candidate heuristics
2. Evaluates each candidate on all problem instances
3. Selects the top N heuristics for the next generation

The LLM generates both a natural language **thought** (explaining the idea) and **code** (the actual function).

### 4. Monitor Progress

Track:
- Best fitness per generation
- Population statistics (best/worst/mean)
- LLM call count
- Convergence (no improvement for 3+ generations)

### 5. Extract Results

Get the best heuristic found, including its thought (explanation) and code.

## File-Based EoH (Python)

For Python files, EoH uses a special region format:

```python
"""Maximize the score over a fixed integer dataset."""

# EOH-BEGIN
def heuristic(value: int) -> int:
    return value
# EOH-END

def evaluate(heuristic) -> float:
    return sum(heuristic(value) for value in [1, 2, 3])
```

The file between `# EOH-BEGIN` and `# EOH-END` is the evolvable region. The `evaluate(heuristic)` function after it computes fitness.

## Operators in Detail

| Operator | Parents | Purpose |
|----------|---------|---------|
| E1 Diversity | N parents | Generate diverse solutions exploring the search space |
| E2 Convergence | N parents | Refine toward promising regions |
| M1 Improve | 1 parent | Directly improve the best heuristic |
| M2 Tune | 1 parent | Fine-tune parameters/strategy |
| M3 Simplify | 1 parent | Reduce code complexity while maintaining fitness |

## Tips

- **Start with a good problem description**. The LLM's output quality depends heavily on how well the problem is specified.
- **Use more generations** for complex problems. The EoH paper shows improvement continues beyond 10 generations.
- **Larger populations** explore more of the search space but cost more LLM calls.
- **Watch for convergence**: when 3+ generations show no improvement, the population may have plateaued.
- **M3 Simplify** is valuable for producing clean, maintainable code — not just high fitness.

## Related Skills

- `/autoresearch` — General-purpose autonomous optimization loop (broader scope, not heuristic-specific)

From lseman/logician, MIT.

Signals

Stars
1
Forks
0
Open issues
0
Last commit (this folder)
Aug 14, 2026 (2 months ago)
Last release
Aug 9, 2026 (2 months ago)

From GitHub (fetched Oct 24, 2026).

Details

License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from lseman

Cite this page

eoh skill. Agent Mart. https://agentmart.dev/skills/lseman-eoh (last updated 2026-10-24)