Skip to main content
The Frontier-CS benchmark contains 172 competitive programming problems that test algorithm design and optimization. SkyDiscover evolves C++ solutions that are evaluated using a Docker-based judge.

Overview

Frontier-CS is a benchmark from Meta Research testing algorithmic problem-solving capabilities. Problems cover:
  • Graph algorithms (shortest paths, flows, matchings)
  • Dynamic programming
  • Greedy algorithms
  • Data structures (trees, heaps, segment trees)
  • Computational geometry
  • Number theory
  • Combinatorics
Note: Unlike Python-based benchmarks, Frontier-CS evolves C++ code. The evaluator compiles and tests solutions against hidden test cases.

Setup

Frontier-CS requires Docker for the judge server:
1

Clone Frontier-CS

2

Start Judge Server

The judge will run on http://localhost:8081
3

Install Dependencies

4

Set API Key

Initial Program

The seed program is a minimal C++ skeleton:
Evolution will replace this with a complete solution for the specified problem.

Evaluator

The evaluator submits C++ code to the Frontier-CS judge:

Running Single Problem

Specify which problem to solve with the FRONTIER_CS_PROBLEM environment variable:
Problem IDs range from 0 to 171. Start with simpler problems (lower IDs) to test your setup.

Running All Problems in Parallel

The benchmark includes a script to evolve solutions for all 172 problems:

Evaluating Best Programs

After evolution, re-evaluate the best solutions on test sets:
This reads the best program from each problem’s evolution directory and runs it through the judge again.

Analyzing Results

Combine training and testing scores into CSV:
Generate plots and statistics:

Environment Variables

Load Balancing: If running many problems in parallel, you can start multiple judge servers and specify all URLs:

Configuration

The config.yaml specifies C++ as the language:

Tips for Algorithm Benchmarks

Start Small

Test on a few problems first. Some are significantly harder than others.

Use Load Balancing

Run multiple judge servers if evolving many problems in parallel.

Check Logs

Judge logs show compilation errors and runtime failures.

Unbounded Scores

Solutions can score >100 if they beat the reference implementation.

Common Issues

Verify Docker is running:
Restart if needed:
Check the judge logs for detailed error messages:
The evaluator returns logs in the result dictionary.
Solutions must complete within the judge’s time limit. Optimize algorithmic complexity.
Ensure you cloned the repository:

Supported Search Algorithms

  • adaevolve (recommended)
  • evox
  • openevolve
  • gepa
  • shinkaevolve
All require the --extra external installation:

Next Steps

Math Examples

Explore math benchmarks

Systems Examples

See systems optimization

Create Custom

Build your own benchmark