Table of Contents

SMS-EMOA (2007)

S-Metric Selection Evolutionary Multi-objective Optimization Algorithm — Nicola Beume, Boris Naujoks, and Michael Emmerich, SMS-EMOA: Multiobjective selection based on dominated hypervolume, European Journal of Operational Research 181(3):1653–1669, 2007. DOI: 10.1016/j.ejor.2006.08.008.

SMS-EMOA keeps NSGA-II's elitist evolutionary skeleton — and its SBX + polynomial-mutation operators — but replaces the survival criterion. Where NSGA-II breaks ties within a front by crowding distance, SMS-EMOA removes the solution that contributes the least dominated hypervolume (the S-metric). Selecting on the very indicator the field grades approximations by steers the population straight toward a high-hypervolume — hence well-converged and well-distributed — Pareto front. OptunaSharp ships it as SmsEmoaSampler.

The idea

The S-metric (hypervolume) of a set B, bounded by a reference point y_ref that every solution dominates, is the Lebesgue measure Λ of the region B dominates:

S(B, y_ref) = Λ( ⋃_{y∈B} { y' | y ≺ y' ≺ y_ref } )

Maximising it over a bounded-size set is equivalent to finding the Pareto set (Fleischer), and for a fixed number of points the maximiser is empirically well-spread — so hypervolume alone rewards both convergence and diversity. SMS-EMOA is built on two pillars: (1) non-dominated sorting as the primary rank, and (2) hypervolume as the tie-breaker that discards the least-contributing solution in the worst front.

Steady-state (μ+1) main loop. One offspring per generation, one deletion — so Reduce only ever compares the μ+1 leave-one-out hypervolumes of a single front, not a combinatorial (μ+λ) selection:

P₀ ← init()                       # μ random individuals
repeat
    q ← generate(Pₜ)              # ONE offspring by SBX + polynomial mutation
    Pₜ₊₁ ← Reduce(Pₜ ∪ {q})       # drop one, back to μ
until termination

Reduce — the hypervolume survival. Non-dominated-sort the μ+1 individuals into fronts R₁,…,R_v, then delete from the worst front R_v the solution whose exclusive hypervolume contribution is least:

Reduce(Q):
    {R₁,…,R_v} ← fast-nondominated-sort(Q)
    r ← argmin_{s∈R_v} ΔS(s, R_v)      where   ΔS(s, R_v) = S(R_v) − S(R_v \ {s})
    return Q \ {r}

Because a dominated point adds no volume its dominator did not already cover, Reduce never trades a dominator for a dominated point, and the covered hypervolume can only grow — the invariant S(Pₜ) ≤ S(Pₜ₊₁).

Reference point and cost. The contribution ΔS depends on y_ref; the paper recomputes it each generation as the componentwise worst objective values + 1.0 (and in 2-D omits it, always keeping the two extremes). ΔS has closed forms — O(N) in 2-D, an O(μ³) grid method in 3-D — but exact hypervolume is exponential in the number of objectives, which is why SMS-EMOA targets two and three objectives. A cheaper dominating-points selection variant (Algorithm 3 in the paper) is also proposed; OptunaSharp implements the basic ΔS rule.

On the ZDT and DTLZ suites the paper reports SMS-EMOA ranking best on the S-metric on every function except ZDT6, ahead of NSGA-II, C-NSGA-II, SPEA2, and ε-MOEA.

In OptunaSharp

SmsEmoaSampler reconstructs the μ-survivor population from completed trials and evolves it steady-state as above, across Optuna's full parameter space (categorical and single-value distributions fall back to the independent sampler):

using OptunaSharp;
using OptunaSharp.Samplers;

var study = Optuna.CreateStudy(
    directions: new[] { StudyDirection.Minimize, StudyDirection.Minimize },
    sampler: new SmsEmoaSampler(populationSize: 40, seed: 0));

study.Optimize((Func<Trial, IReadOnlyList<double>>)(t =>
{
    double x = t.SuggestFloat("x", 0, 1);
    double y = t.SuggestFloat("y", 0, 1);
    return new[] { x, (1 - Math.Sqrt(x)) + y };
}), nTrials: 400);

The first populationSize (μ) completed trials are the random initial population; every later trial proposes one offspring, generated by the shared NSGA-II child generation (binary tournament + SBX + polynomial mutation — nothing is re-implemented). populationSize, crossover (default SBXCrossover, the paper's classic operator), mutation (default PolynomialMutation), crossoverProb, mutationProb, swappingProb, hvReferenceEps, and seed are configurable.

Beyond-core. SMS-EMOA is absent from Optuna core (which stops at NSGA-II / NSGA-III / MO-TPE), so — like LM-CMA and JANUS — it is a beyond-core, paper-faithful port validated by convergence and achieved hypervolume, not bit-matched to Optuna. On ZDT1 it matches or beats NSGAIISampler using the same SBX + polynomial mutation, confirming the paper's claim that the hypervolume tie-breaker helps. The survival details follow pymoo's SMSEMOA (sms.py), which differs from the 2007 paper in three documented, behavior-preserving ways: the reference point is 1 + hvReferenceEps (default eps = 10) in the population's normalized ideal/nadir box rather than the paper's dynamic worst + 1.0; only the basic ΔS variant is implemented (not the dominating-points one); and the general leave-one-out hypervolume routine is used in place of the paper's specialized 2-D/3-D kernels.

In-memory state. The μ-survivor set is reconstructed incrementally and held in memory for the study's duration, so a SMS-EMOA study does not resume its population across process boundaries (the same concession as JanusSampler).

Relationship to NSGA-II

  • From NSGA-II (2002): inherits the elitist skeleton — combine the population with the new offspring, fast non-dominated sort, fill fronts, and reproduce by binary tournament + SBX + polynomial mutation. Only the secondary score changes: crowding distance → least hypervolume contribution (ΔS).
  • Versus the AGE-MOEA family: those are the other "swap NSGA-II's secondary score" descendants — they replace crowding distance with a geometry-adaptive survival score, where SMS-EMOA replaces it with the S-metric. SMS-EMOA is steady-state (μ+1); the AGE-MOEA family and NSGA-II are generational (μ+λ).

See also

NSGA-II (2002) · NSGA-III (2014) · AGE-MOEA-2 (2022) · Samplers · Multi-objective Optimization · the API reference.