Surrogate modelling and NSGA-II optimization
This paper covers the data-driven core of the front-wing thesis: fitting a surrogate to a limited set of CFD runs and extracting the optimal designs from it.
Training the surrogate
A Gaussian Process surrogate was trained on 70×2 Latin Hypercube designs — about 2.7 samples per dimension over the 26-dimensional design space, which is sparse by any standard and is precisely why the active-learning stage matters.
The kernel is squared-exponential with Automatic Relevance Determination, so a separate length-scale is fitted per design variable. As a by-product, the fitted length-scales provide a data-driven sensitivity ranking of the 26 variables.
Active learning
The surrogate was then refined iteratively. At each step the q-Expected Hypervolume Improvement acquisition function selects a batch of designs that would most enlarge the dominated region of the CD–CL plane; those designs are evaluated with the true CFD and the surrogate re-fitted.
/assets/img/papers/active-learning-convergence.pngParity plots and forward-prediction checks track accuracy batch by batch until the surrogate is trustworthy enough to be frozen.
/assets/img/papers/surrogate-parity.pngMulti-objective optimization
With the surrogates frozen, NSGA-II is run directly over the surrogate means to produce a Pareto front of downforce-versus-drag optima. Selected points on the front were then re-evaluated with full CFD to quantify the surrogate offset — the discrepancy between predicted and actual performance at the optimum.
/assets/img/papers/nsga2-pareto.pngTrack-specific selection
Every point on the front is an optimal compromise, so the algorithm does not select for you. The final choice was made per circuit, weighting the two modes by the fraction of each 2025 F1 lap spent with DRS open — which turns an abstract trade-off curve into concrete, track-specific geometries.
/assets/img/papers/optimal-per-track.png