From 708f1ce9cd659b49c9c9b6ea2e5d203bc2465ebd Mon Sep 17 00:00:00 2001 From: Stephen Waits Date: Thu, 14 May 2026 09:03:53 -0600 Subject: [PATCH] docs: promote MOEA/D to the multi/many-objective default The compare harness shows MOEA/D is the single most consistent performer: top-3 on every multi- and many-objective table (convex, disconnected, spherical and linear fronts; 2 through 10 objectives) and fastest or near-fastest every time. No other algorithm is close to that consistency. This matches the literature view of MOEA/D as a strong, robust, scalable baseline -- with the known caveat that weight-vector spread can leave gaps on highly irregular fronts (the DTLZ/ZDT suite doesn't stress that). But both decision trees buried it: the README filed it under "Want decomposition / weight-vector style" -- a stylistic branch -- and framed it as a speed pick; the book left it out of the TL;DR table entirely. Meanwhile NSGA-II was the listed 2-3-objective default despite losing to MOEA/D on every table and collapsing past ~4 objectives. Both trees now lead the multi- and many-objective branches with MOEA/D, keep NSGA-II as the well-understood alternative and the combinatorial go-to, add MOEA/D to the TL;DR / quick-reference tables, and soften the NSGA-III "strong default" framing to match the data. Co-Authored-By: Claude Opus 4.7 (1M context) --- README.md | 56 ++++++++++++-------- docs/book/src/choosing-an-algorithm.md | 71 ++++++++++++++++---------- 2 files changed, 81 insertions(+), 46 deletions(-) diff --git a/README.md b/README.md index 827109e..046f462 100644 --- a/README.md +++ b/README.md @@ -426,8 +426,20 @@ START │ ├─ 2 or 3 (multi-objective) │ │ - │ ├─ Strong default, fast, well-understood - │ │ → NSGA-II + │ ├─ Strong default — top-3 on every multi- and + │ │ many-objective table on the harness, fastest or + │ │ near-fastest every time + │ │ → MOEA/D (decomposition into scalar sub-problems; + │ │ robust across convex / disconnected / + │ │ spherical / linear fronts and 2–10 + │ │ objectives. Caveat: weight-vector spread + │ │ can leave gaps on highly irregular or + │ │ degenerate fronts) + │ │ → NSGA-II (canonical Pareto EA; well-understood and + │ │ the established choice for combinatorial + │ │ encodings — but edged out by MOEA/D on + │ │ every MO table here, and fades past + │ │ ~4 objectives) │ │ │ ├─ Real-valued, smooth front, want best convergence │ │ → MOPSO (multi-objective PSO; on the benches @@ -435,7 +447,7 @@ START │ │ convergence by 100× over the │ │ dominance-based methods) │ │ - │ ├─ Want better front quality than NSGA-II + │ ├─ Want better front quality than the default │ │ → IBEA (indicator-based; consistently the best │ │ of the dominance-based methods on these │ │ benches — wins ZDT3 HV and DTLZ2 mean @@ -448,9 +460,6 @@ START │ │ fronts where exact HV-contribution is │ │ the right discriminator) │ │ - │ ├─ Want decomposition / weight-vector style - │ │ → MOEA/D (very fast per generation, scales well) - │ │ │ ├─ Disconnected front (separate arcs, e.g. ZDT3) │ │ → IBEA (wins ZDT3 hypervolume on the harness; │ │ MOEA/D and NSGA-II follow. Geometry-aware @@ -469,19 +478,26 @@ START │ → PAES (1+1 ES with a Pareto archive) │ └─ 4+ (many-objective) + │ + ├─ Strong default — #2 on every many-objective table on + │ the harness (DTLZ2 at 4 and 10 objectives, DTLZ1 at 8); + │ decomposition sidesteps the dominance collapse that + │ wrecks Pareto-based EAs at high objective count + │ → MOEA/D + │ (NSGA-II is the cautionary tale: on DTLZ2 at 10 + │ objectives it finishes last — behind random search) │ ├─ Linear / simplex-shaped front (e.g., DTLZ1) │ → GrEA (grid coords drive ranking; on DTLZ1 │ here it beats NSGA-III by 3× and - │ AGE-MOEA by 2.5×) - │ → MOEA/D (decomposition shines on linear fronts; - │ second on DTLZ1, also among the - │ fastest per generation) + │ AGE-MOEA by 2.5×, and wins the + │ 8-objective DTLZ1 table outright) + │ → MOEA/D (also #2 on both DTLZ1 tables) │ ├─ Curved / unknown front geometry - │ → NSGA-III (reference-point niching, canonical; - │ a strong default when the front - │ isn't simplex-shaped) + │ → NSGA-III (reference-point niching; canonical by + │ reputation, but MOEA/D outperforms it + │ on every harness table) │ → AGE-MOEA (estimates L_p geometry per generation) │ → RVEA (reference vectors with adaptive penalty) │ @@ -531,21 +547,21 @@ START | Algorithm | Objectives | Strengths | |---|---|---| -| **PAES** | 2–3 | 1+1 ES with Pareto archive | -| **NSGA-II** | 2–3 | canonical Pareto-based EA | -| **SPEA2** | 2–3 | strength + density | +| **MOEA/D** | 2+ | decomposition; the most consistent all-rounder — top-3 on every MO/many-objective table here, fastest or near-fastest | +| **NSGA-II** | 2–3 | canonical Pareto-based EA; well-understood, the go-to for combinatorial encodings — but fades past ~4 objectives | | **MOPSO** | 2–3 | multi-objective PSO; best convergence on smooth real-valued 2-obj fronts | -| **IBEA** | 2+ | indicator-based; consistently best of the dominance-based methods | +| **IBEA** | 2+ | indicator-based; consistently best of the dominance-based methods; wins disconnected fronts | +| **SPEA2** | 2–3 | strength + density | | **SMS-EMOA** | 2+ | exact HV-contribution selection; high per-step cost, modest gain | -| **HypE** | 2+ | Monte Carlo HV estimation | +| **HypE** | 2+ | Monte Carlo HV estimation; strong on spherical many-objective fronts | | **ε-MOEA** | 2+ | ε-grid archive; auto-sized | | **PESA-II** | 2+ | grid-based region selection | | **AGE-MOEA** | 2+ | adaptive front-geometry estimation | | **KnEA** | 2+ | knee-point favored survival | -| **MOEA/D** | 2+ | decomposition; fast per-gen | +| **PAES** | 2–3 | 1+1 ES with Pareto archive | | **NSGA-III** | 4+ | reference-point niching; strong on curved fronts | | **RVEA** | 4+ | reference vectors with penalty | -| **GrEA** | 4+ | grid coords drive selection; particularly strong on linear/simplex fronts | +| **GrEA** | 4+ | grid coords drive selection; wins linear/simplex fronts at any objective count | ## Current algorithms diff --git a/docs/book/src/choosing-an-algorithm.md b/docs/book/src/choosing-an-algorithm.md index 54541dc..34dc914 100644 --- a/docs/book/src/choosing-an-algorithm.md +++ b/docs/book/src/choosing-an-algorithm.md @@ -121,15 +121,27 @@ picker. ### Strong default -[NSGA-II][Nsga2] is the canonical Pareto-based EA. Fast, well-understood, -maintains diversity via crowding distance. On the harness it lands -on the Pareto front of every test problem. +[MOEA/D][Moead] is the most consistent performer on the harness. It +decomposes the problem into many scalar sub-problems (Tchebycheff or +weighted sum) and solves them in parallel — fast per generation, and +robust: it finishes **top-3 on every multi- and many-objective table** +(convex, disconnected, spherical and linear fronts; 2 through 10 +objectives) and is consistently the fastest or near-fastest. It rarely +*wins* a table outright — a specialist usually does — but it never lands +badly. One caveat from the literature: MOEA/D's spread depends on the +weight-vector distribution and the scalarizing function, so it can leave +gaps on highly irregular or degenerate fronts; the DTLZ/ZDT suite here +doesn't stress that. -NSGA-II is generic over the decision type — drop in -[`ShuffledPermutation`] + a permutation crossover and it solves -bi-objective TSP; drop in a binary initializer and [`BitFlipMutation`] -and it solves bi-objective knapsack. See -[Multi-objective combinatorial problems](./cookbook/multi-objective-combinatorial.md). +[NSGA-II][Nsga2] is the other safe default — the canonical Pareto-based +EA: fast, well-understood, diversity-preserving via crowding distance. +On the harness it's edged out by MOEA/D on every multi-objective table +and degrades past ~4 objectives (see the many-objective section), but it +stays a solid 2–3-objective pick and is the established choice for +*combinatorial* encodings: drop in [`ShuffledPermutation`] + a +permutation crossover and it solves bi-objective TSP; drop in a binary +initializer and [`BitFlipMutation`] and it solves bi-objective knapsack. +See [Multi-objective combinatorial problems](./cookbook/multi-objective-combinatorial.md). ### Real-valued, smooth front, want best convergence @@ -137,7 +149,7 @@ and it solves bi-objective knapsack. See hypervolume outright and converges 100× tighter than the dominance-based methods. -### Better front quality than NSGA-II +### Better front quality than the default [IBEA][Ibea] (indicator-based) is consistently the best of the dominance-based methods on the harness — wins ZDT3 hypervolume and @@ -152,13 +164,6 @@ in theory; in practice on the harness budgets here it underperforms NSGA-II. Worth the higher per-step cost only when exact HV contribution is the right discriminator. -### Decomposition / weight-vector style - -[MOEA/D][Moead] decomposes the multi-objective problem into many scalar -sub-problems (Tchebycheff or weighted sum) and solves them in -parallel. Very fast per generation; scales naturally to many -objectives. - ### Disconnected or non-convex front A *disconnected* front (separate arcs, like ZDT3) and a *non-convex but @@ -194,18 +199,31 @@ population. ## Step 2 — many-objective (4+) +### Strong default + +[MOEA/D][Moead] again. Decomposition sidesteps the *dominance resistance* +that breaks Pareto-based methods at high objective count — each scalar +sub-problem still has a clear best, even when almost every pair of +solutions is mutually non-dominated. On the harness it is **#2 on every +many-objective table** (DTLZ2 at 4 and 10 objectives, DTLZ1 at 8), and +fast every time. [NSGA-II][Nsga2] is the cautionary tale: on DTLZ2 at 10 +objectives it finishes *last — behind random search* — because its +crowding distance has no dominance signal left to refine. + ### Linear / simplex-shaped front (e.g., DTLZ1) -[GrEA][Grea] — grid coords drive ranking. On DTLZ1 it beats NSGA-III by -3× and AGE-MOEA by 2.5×. +[GrEA][Grea] — grid coords drive ranking. On 3-objective DTLZ1 it beats +NSGA-III by 3× and AGE-MOEA by 2.5×, and it wins the 8-objective DTLZ1 +table outright. -[MOEA/D][Moead] — decomposition shines on linear fronts; second on DTLZ1 -and among the fastest per generation. +[MOEA/D][Moead] — also #2 on both DTLZ1 tables. ### Curved / unknown front geometry -[NSGA-III][Nsga3] — reference-point niching; canonical many-objective method; -strong default when the front isn't simplex-shaped. +[NSGA-III][Nsga3] — reference-point niching; the canonical many-objective +method by reputation, though on the harness MOEA/D outperforms it on +every table. Reach for it when you specifically want reference-point +niching. [AGE-MOEA][AgeMoea] — estimates L_p geometry per generation. @@ -265,11 +283,12 @@ method on every algorithm in the catalog. See the | Multimodal single-objective continuous | [IPOP-CMA-ES][IpopCmaEs] or [Differential Evolution][DifferentialEvolution] | | Expensive single-objective | [Bayesian Optimization][BayesianOpt] or [TPE] | | Multi-fidelity single-objective | [Hyperband] | -| 2- or 3-objective default | [NSGA-II][Nsga2] | +| 2- or 3-objective default | [MOEA/D][Moead] (or [NSGA-II][Nsga2]) | +| Many-objective default | [MOEA/D][Moead] | | 2-objective real-valued smooth front | [MOPSO][Mopso] | -| Disconnected / non-convex front | [IBEA][Ibea] | -| Many-objective default (curved front) | [NSGA-III][Nsga3] | -| Many-objective linear / simplex front | [GrEA][Grea] | +| Disconnected front | [IBEA][Ibea] | +| Many-objective, curved front | [NSGA-III][Nsga3] | +| Many-objective, linear / simplex front | [GrEA][Grea] | | Permutation problem (TSP with distance matrix) | [Ant Colony][AntColonyTsp] | | Generic permutation problem | [GA][GeneticAlgorithm] + permutation toolkit | | Bi-objective combinatorial (TSP / scheduling / knapsack) | [NSGA-II][Nsga2] + matching encoding operators |