Visiting planets that never stand still.
Cover picture: the TRAPPIST-1 system with its red star and seven planets on their orbits, a space probe flying through it. Bachelor thesis, Bielefeld University, 2022.
TRAPPIST-1 is a small, cool red star about 40 light-years away, barely bigger than Jupiter. Seven roughly Earth-sized planets, b to h, circle it. All seven are closer to their star than Mercury is to the Sun.
ESA's task: a space probe starts 10 astronomical units from the TRAPPIST-1 system and has to visit each of the seven planets exactly once, in any order, as fast as possible and with as little fuel (ΔV) as possible. It must never come closer than 834,840 km to the star. The route shown is schematic.
The catch: the planets move. The probe has to fly to where a planet will be when it arrives. Planet b goes round its star in 1.5 days, planet h in 18.8 days. A route between the planets keeps changing shape, like a delivery route where the houses keep moving.
There are seven choices for the first planet, then six, then five and so on. That makes 7 times 6 times 5 times 4 times 3 times 2 times 1, so 5,040 possible orders, shown as 5,040 coloured dots. Every order gives a different route.
Every mission is a vector of 34 numbers: 3 for entering the system, 4 flight parameters for each of six legs, and 7 whole numbers for the order of the planets. I split the problem in two: which order (7 numbers, 5,040 options) and how to fly it (27 numbers). With no astrophysics background, I treated the flight as a black box: numbers in, time and fuel out.
Working through all 5,040 orders takes too long. First a few random orders are tested; one of them gives no usable result. The assumption: good routes share building blocks. In the good orders, the planet pairs that stand side by side are counted. In this example, pairs that turn up at least twice are chained into new orders: each pair starts with the planet the previous one ended with, and gaps get the first free letter.
For each promising order, a genetic algorithm breeds better flights. Every flight is a point: fuel (ΔV) against time. Fast flights need a lot of fuel, thrifty ones take long. The best trade-offs form the Pareto front. The score is the area between the front and the corner at 2,500 m/s and 4,000 days, the hypervolume.
Five genetic algorithms from pymoo, NSGA-II, NSGA-III, U-NSGA-III, AGE-MOEA and R-NSGA-II, optimised the same 100 orders in five runs each. Only R-NSGA-II reached a score, in three of five runs: minus 1,235,462, minus 433,600 and minus 47,157. All others scored 0.0 in every run, including U-NSGA-III, which I had expected to win. The small charts are schematic; only the scores come from the thesis.
Over weeks, many optimisation runs with populations of up to 400 and up to 1,500 offspring per generation produced fronts that were merged into one. The final Pareto front runs from about 550 m/s and 3,850 days to about 2,500 m/s and 1,950 days. There is no single best route. The final score is minus 3,440,253.65: the challenge counts the area as negative, so lower is better. A good solution needs 667.89 m/s and 7.95 years and flies calm, similar orbits; a poor one needs 52,456 m/s and 27.24 years and zigzags all over.
The thesis was awarded the GOR Bachelor Prize. GOR is the German Operations Research Society. Moving targets came back in my master's thesis, at sea: collection boats chase plastic hotspots that drift with the current.