Skip to content

Test problem library: batch progress #260

Description

@tachsin

Where the test problem library (docs/problems-plan.md, section 4) stands, batch by batch. I'll keep this issue up to date as batches land.

When a batch is done

A batch is done when every problem it adds has:

  • the problem itself in Rust and Python, with its tests and its citation in the module docs;
  • an example of its own in examples/<name>/, one problem per example: main.rs and main.py with the same output, a README (the problem, what makes it hard, representation, algorithm, output, good results), output.txt checked by CI, and the trace.json that its page on tachsin.gr/projects/genoxide/examples plays back, with a plot that shows the solutions;
  • a row in examples/README.md.

One problem per page: the comparison example function_suite was removed once each of its functions had its own page.

Where it stands

189 problems are in the library, and every one has its own example page (#253, #261, #270, #277, #307, #313, #357, #367, #401, #409, #414, #421). Every example reaches its problem's optimum or true front with its main method, or its README shows why it can't (#312; in batch 10a, Dixon-Price in 10-D, where CMA-ES and SHADE stall at a stationary point; in batch 10b, HappyCat and HGBat, whose minima neither CMA-ES with IPOP restarts over 10⁶ evaluations nor L-SHADE, the CEC 2014 winner, reaches; in batch 11, DAS-CMOP9, which MOEA/D-DE brings onto its front but whose 99% hypervolume target is beyond any 300 Tchebycheff weight vectors, as the README measures; and DC2/DC3-DTLZ, reached on the relaxed problem as C1-DTLZ3 is).

Batch Problems Library Own example pages
0 (before the plan) ZDT1-4, ZDT6, DTLZ1-4 (9) ✅ #66 ✅ 9 of 9 (#261)
1 16 classic functions ✅ #170 ✅ 16 of 16 (#253, #261)
2 13 classic multi-objective problems ✅ #177 ✅ 13 of 13 (#253, and bnh, kursawe)
3 8 engineering designs and CEC 2006 g01-g06 (14) ✅ #191 ✅ 14 of 14 (#253, and welded_beam, pressure_vessel, gear_train)
4 DTLZ5-7, ZDT5 (binary), WFG1-9 (13) ✅ #270 ✅ 13 of 13 (#270)
5 CEC 2006 g07-g18 (12) ✅ #277 ✅ 12 of 12 (#277)
6 g19-g24, Hartmann 3-D and 6-D, Shekel 5/7/10, Easom, Eggholder, Schaffer F6 (14) ✅ #307 ✅ 14 of 14 (#307)
7 CTP1-8, C1/C2/C3-DTLZ (14) ✅ #313 ✅ 14 of 14 (#313)
8 Scaled and inverted DTLZ, MW1-14 (18) ✅ #313 ✅ 18 of 18 (#313)
9 Multi-objective engineering designs (10) ✅ #357, #401 ✅ 10 of 10 (#357, #401)
10a Low-dimensional and classic scalable functions (15) ✅ #367 ✅ 15 of 15 (#367)
10b CEC and BBOB-style functions, Shifted<P>, Rotated<P> (17) ✅ #409 ✅ 17 of 17 (#409)
11 DAS-CMOP1-9, DC1-3-DTLZ1/3, DTLZ8-9 (17) ✅ #414 ✅ 17 of 17 (#414)
12 Binary and combinatorial problems: OneMax, LeadingOnes, deceptive trap, royal roads R1 and R2, NK landscapes, 0/1 knapsack (Pisinger's 11 classes) (6) ✅ #421 ✅ 7 pages (#421; the royal roads one family)
13 (optional) Competition suites with long definitions – –

Batch 9's tenth problem, conceptual marine design, was added in #401, completing batch 9.

Pages that were missing (batches 0 and 1), added in #261

  • Sphere
  • Axis-parallel ellipsoid
  • Schwefel 1.2
  • Rosenbrock
  • Ackley
  • Griewank
  • Schwefel 2.26
  • Levy
  • Zakharov
  • Styblinski-Tang
  • Michalewicz
  • ZDT2
  • ZDT3
  • ZDT4
  • ZDT6
  • DTLZ1
  • DTLZ3
  • DTLZ4

The plan gives batch 10a a page per function (done in #367); batch 13 (benchmark suites) is to decide when it comes.

Next

  1. Batch 11 is done (feat: the constrained DTLZ8 and DTLZ9, the DC-DTLZ and the DAS-CMOP problems, each with its own example #414). DAS-CMOP1, 2 and 3 needed differential-evolution variation, so MOEA/D-DE was added first (feat(moead): MOEA/D-DE, differential evolution in place of the crossover (Li and Zhang 2009) #418). With it, they reach their fronts from 20 of 20 seeds, where NSGA-II reaches none. DC1-DTLZ3 reaches its front from 20 of 20 seeds at 4,000 generations.
  2. Batch 10b follow-up (feat(problems): gradients for batch 10b's functions, and gradients and constraint values through Shifted and Rotated #416): done in feat(problems): gradients for batch 10b's functions, and gradients and constraint values through Shifted and Rotated #420. 14 of the functions supply analytic gradients; Step, the non-continuous Rastrigin, Katsuura and the noisy quartic don't, each documented. Shifted and Rotated pass gradients and constraint values through.
  3. CTP8 against Deb's 2001 book: done in docs(ctp): CTP1-CTP8 checked against the published paper and Deb's 2001 book #419. All eight CTP problems match the published paper (EMO 2001) and the book (section 8.3.5); CTP8's parameters on p. 358 are the code's. Only CTP8's documented piece ends were slightly off, now corrected.
  4. Batch 12: done in feat(problems): binary and combinatorial problems, batch 12, each with its own example #421. Each example reaches its exact optimum: NK landscapes by exhaustive search or dynamic programming, the knapsack by dynamic programming. It also found an erratum in Deb and Goldberg (1993): only Ackley's traps of 3 and 4 bits are fully deceptive, not all below 7.
  5. Batch 13 (optional): competition suites with long definitions (LIR-CMOP, CEC 2009 UF/CF, MaF, and others), mainly for the benchmark suite.

Related

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    documentationImprovements or additions to documentation

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions