Skip to content

Experiment · Space mechanics

European Space Agency, SpOC 4: a tour of 1,051 targets in lunar orbit

This experiment addresses a mission-planning problem: visit, once each, 1,051 targets in orbit around the Moon, choosing the order of the visits, the departure dates and the flight durations so that the mission ends as early as possible, with a limited velocity cost for each transfer. The referee is the Optimize platform of the European Space Agency (ESA), which evaluates every solution with its official simulator. Outcome: a tour of 272.712 days, the best score among 51 entries as read on 4 Oct 2026. The solution was submitted on 2 Oct 2026, after the close of the competition (30 June 2026): the ranking is a post-competition ranking.

272.712 dduration of the submitted tour, best score among 51 entriesread on 4 Oct 2026
1,051 / 1,051targets visited exactly oncecheck of 11 Oct 2026
100 m/scost limit of each transfer, with 5 exceptions allowed up to 600 m/s: constraint metindependent check of 11 Oct 2026, outside the official simulator
sha256 15d834e744f4…fingerprint of the submitted filefull value in section 5

1. The problem

Around the Moon, 1,051 targets, which ESA calls “tomatoes”, each follow a Keplerian orbit: an ellipse travelled under the Moon’s gravity alone. A spacecraft starts at one of them, reaches another, then another, until all have been visited once. Between two targets it makes a two-impulse transfer: one manoeuvre leaves the departure orbit, a second one joins the orbit of the arrival target on the planned date. The cost of a transfer, the sum of the two velocity changes, must not exceed 100 m/s; at most 5 transfers, the “exceptions”, may go up to 600 m/s. The variables are the order of the visits, the departure dates and the flight durations: 3 × 1,051 − 2 = 3,151 values. The score is the arrival date at the last target, in days, to be minimised. The challenge offers three instances (49, 181 and 1,051 targets); this page covers the largest, “large”.

2. Verification protocol

The result is a vector of 3,151 numbers, submitted to the Optimize platform. The platform evaluates it with the official simulator of the problem, published by ESA (Python code in the pygmo format, transfers computed with the pykep library), and derives the score from it. The figures on this page are those of the ranking as read on the date given.

ProblemKeplerian Tomato Traveling Salesperson Problem (SpOC 4, challenge 2), “large” instance: 1,051 targets in lunar orbit, transfers limited to 100 m/s (5 exceptions up to 600 m/s), minimum total duration
RefereeESA, Advanced Concepts Team: Optimize platform, which runs the official simulator
Result272.712 days, best score among 51 entries. The detail of the solution is not published.
SourceOptimize platform API, read on 4 Oct 2026; close: README of the esa/SpOC4 repository (“until 30 June 2026, End of Day, Anywhere on Earth”), read on 11 Oct 2026; submission of 2 Oct 2026, 18:07 UTC
As read on 4 Oct 2026, the 2nd entry shows 316.42 days and the 3rd 323.67 days (gap with the submitted tour: 43.71 days for the 2nd).

The referee and the problem

The Optimize platform is developed by ESA’s Advanced Concepts Team, which organises SpOC 4 with the GECCO conference (fourth edition of the competition). The problem was formalised by Bannach, Acciarini and Izzo, “The Keplerian Traveling Salesperson Problem” (arXiv:2605.00010). The esa/SpOC4 repository provides the instance and the validation code. Competition submissions closed on 30 June 2026; the portal stayed open afterwards.

3. The problem statement in pictures

The figures in this section illustrate the problem as posed: they are drawn from the instance published by ESA, not from the solution. The main figure shows the orbits of the targets in perspective, with their actual orbital parameters; the colour is the inclination. All orbits share the same line of nodes (gold dashes) and differ only in inclination. The targets of the outer ring (semi-major axis of about 15,000 km, period of about 1.906 d) form three clusters with inclinations close to 0°, 90° and 180° and two ladders, with one target every 1.196° of inclination (from 3.0° to 86.7°, then from 92.7° to 177.6°). Those of the inner ring (about 3,750 km, period of about 0.238 d) form three clusters. One orbit in eight is drawn for the clusters; all those of the ladders are.

0°180°inclination

The rotation changes the viewpoint on the instance orbits; it does not simulate a transfer or recompute trajectories. The curves and their parameters remain those of the ESA problem statement.

1,051 targets · problem statement, ESA instance · colour: inclination · gold dashes: line of nodes · grey disc: the Moon

The targets of the instance, by family

Each cell is a target of the instance, grouped by orbital family. The inner ring holds 450 targets (semi-major axis from 3,737 to 3,757 km); the outer ring holds 601 (from 14,950 to 15,030 km). Families: clusters whose inclination is within 2.2° of 0°, 90° or 180°, and, for the outer ring, the remaining targets, which form the ladders. This map describes the problem statement; the “Problem” row of section 2 gives its limits. The parameters of the instance are in esa_spoc4_instance.json.

inner ring 0° · 150inner ring 90° · 150inner ring 180° · 150outer ring 0° · 152outer ring 90° · 154outer ring 180° · 152ladder 0–90° · 71ladder 90–180° · 72

The physics at stake: a Lambert transfer between two orbits. The two examples below take two arbitrary targets of the instance, with a departure date and a flight duration chosen for the illustration (departure on day 10). The violet and cyan dots are the two targets during the flight; the gold arc is the spacecraft’s trajectory, obtained by solving the Lambert problem and then propagating the result under the Moon’s gravity; the gold dot reaches the arrival target on the planned date.

Between two rings · targets no. 0 and 13 of the instance · flight of 0.35 d · cost of this example: 864 m/s · view from above
Between two inclined orbits · targets no. 12 and 34 of the instance · flight of 1.2 d · cost of this example: 600 m/s · view along the line of nodes

4. Result

The submitted tour visits the 1,051 targets once each and ends on day 272.712. As read on 4 Oct 2026, the platform’s ranking has 51 entries. The best score of the competition period was about 337.65 days. No lower bound is known for this instance.

260280300320340272.712 (submitted tour)316.42 (2nd)323.67 (3rd)≈ 337.65 (competition)score in days (to be minimised) · read on 4 Oct 2026
Known scores of the ranking, in days (smaller = better). Read on 4 Oct 2026.

5. What is checked, and by whom

  • The referee (ESA). The official simulator of the Optimize platform evaluates the submitted vector and publishes the score, 272.712 days as read on the date given. This evaluation establishes the ranking.
  • Check with the official code (2 Oct 2026). The code of the problem, downloaded from the platform and run offline with pykep 2.6.2, returns [272.712; 0; 0; 0; 0] for this vector: the duration, then constraint violations that are all zero.
  • Independent check (11 Oct 2026). A second check, written without the official package (Keplerian orbits, the Lambert problem), confirms the validity of the submitted solution: each target is visited once, the flights follow one another in date order, and every transfer respects the 100 m/s limit, within the 5 exceptions allowed under 600 m/s. This is an internal check; ESA’s simulator remains the referee.
  • Fingerprint of the submitted file. The sha256 below is that of the file sent to the platform. It fixes the result: any file presented later as the submission can be compared with this fingerprint.

Fingerprint of the submitted file
sha256: 15d834e744f407ad4a6234023d04ffa97529c014dbc333c500c88b8f4f02eef0
Computed on the file as sent on 2 Oct 2026; later check: sha256sum of the file presented.

Reference instance for the checks: “large” instance file of the esa/SpOC4 repository, sha256 aa0954f33a1adf6cf0c3a3e5e27d96ef92ff0e6d8b027efd2dadcde0c4437d54.

6. What this question models

The authors of the challenge cite, among the missions concerned by this problem, active debris removal, in-orbit servicing and asteroid-belt exploration: missions that must rendezvous with several moving bodies (arXiv:2605.00010).

My AI project in the service of my research

This challenge is not an end in itself: it is a test bench for my research on a certifiable embedded AI. My AI project, whose inner workings remain confidential, lets me reach a tour of all 1,051 targets in 272.712 days, evaluated by ESA’s official simulator, with the best score in the ranking as read. The certificate and the referee vouch for it: it is not my explanation you need to believe, it is the result, which can be checked again. This is the best known result at the date given, not a proven optimum.

All the results, with their sources and dates

→ See the Optimize platform