Examples
Each example is the same program in Rust and Python, with a problem from the literature or a feature of genoxide. The code on these pages is the code in the repository's examples folder, which CI runs. Choosing Rust or Python on one page selects it on every page.
| Example | Category | Languages | Known optimum |
|---|---|---|---|
| OneMax | binary | Rust, Python | 500 (all ones) |
| LeadingOnes | binary | Rust, Python | 100 (all ones) |
| Deceptive trap | binary | Rust, Python | 40 (all ones) |
| Royal road R1 | binary | Rust, Python | 64 (all ones) |
| Royal road R2 | binary | Rust, Python | 256 (all ones) |
| NK landscape | binary | Rust, Python | 0.742541 (landscape seed 1, by exhaustive search) |
| 0/1 knapsack | constrained | Rust, Python | 20849 (total value, by dynamic programming) |
| N-Queens 8×8 | permutation | Rust, Python | 0 (conflicts) |
| N-Queens 16×16 | permutation | Rust, Python | 0 (conflicts) |
| N-Queens 32×32 | permutation | Rust, Python | 0 (conflicts) |
| N-Queens 64×64 | permutation | Rust, Python | 0 (conflicts) |
| N-Queens 128×128 | permutation | Rust, Python | 0 (conflicts) |
| Travelling salesman (berlin52) | permutation | Rust, Python | 7542 (tour length) |
| Job shop scheduling (ft06) | permutation | Rust, Python | 55 (makespan) |
| Sphere | continuous | Rust, Python | 0 (at the origin) |
| Axis-parallel ellipsoid | continuous | Rust, Python | 0 (at the origin) |
| Schwefel 1.2 | continuous | Rust, Python | 0 (at the origin) |
| Schwefel 2.21 | continuous | Rust, Python | 0 (at the origin) |
| Schwefel 2.22 | continuous | Rust, Python | 0 (at the origin) |
| Zakharov | continuous | Rust, Python | 0 (at the origin) |
| Trid | continuous | Rust, Python | −n (n + 4) (n − 1) / 6 at xᵢ = i (n + 1 − i): −210 for n = 10 |
| Dixon-Price | continuous | Rust, Python | 0 at xᵢ = 2^(−(2ⁱ − 2)/2ⁱ), and with xₙ negated |
| Powell | continuous | Rust, Python | 0 (at the origin) |
| Sum of different powers | continuous | Rust, Python | 0 (at the origin) |
| Step | continuous | Rust, Python | 0 (on the cube [−0.5, 0.5)ⁿ) |
| Quartic | continuous | Rust, Python | 0 (at the origin, without noise) |
| Rotated hyper-ellipsoid | continuous | Rust, Python | 0 (at the origin) |
| High-conditioned elliptic | continuous | Rust, Python | 0 (at the origin) |
| Bent cigar | continuous | Rust, Python | 0 (at the origin) |
| Discus | continuous | Rust, Python | 0 (at the origin) |
| Different powers | continuous | Rust, Python | 0 (at the origin) |
| Rosenbrock | continuous | Rust, Python | 0 (at (1, …, 1)) |
| Levy | continuous | Rust, Python | 0 (at (1, …, 1)) |
| Styblinski-Tang | continuous | Rust, Python | −1174.98 in 30 dimensions (−39.1662 n, at xᵢ ≈ −2.9035) |
| Michalewicz | continuous | Rust, Python | −9.66015 in 10 dimensions (computed a gene at a time) |
| Ackley | continuous | Rust, Python | 0 (at the origin) |
| Rastrigin function | continuous | Rust, Python | 0 (at the origin) |
| Griewank | continuous | Rust, Python | 0 (at the origin) |
| Schwefel 2.26 | continuous | Rust, Python | −12569.4866 in 30 dimensions (every gene 420.9687) |
| Himmelblau's function | continuous | Rust, Python | 0 (at four points) |
| Branin | continuous | Rust, Python | 0.397887 (at three points) |
| Goldstein-Price | continuous | Rust, Python | 3 (at (0, −1)) |
| Six-hump camel | continuous | Rust, Python | −1.0316285 (at two points) |
| Three-hump camel | continuous | Rust, Python | 0 at (0, 0) |
| Beale | continuous | Rust, Python | 0 at (3, 0.5) |
| Booth | continuous | Rust, Python | 0 at (1, 3) |
| Matyas | continuous | Rust, Python | 0 at (0, 0) |
| Bohachevsky 1 | continuous | Rust, Python | 0 at (0, 0) |
| Bohachevsky 2 | continuous | Rust, Python | 0 at (0, 0) |
| Bohachevsky 3 | continuous | Rust, Python | 0 at (0, 0) |
| Hartmann 3-D | continuous | Rust, Python | −3.86278 at (0.11461, 0.55565, 0.85255) (best known) |
| Hartmann 6-D | continuous | Rust, Python | −3.32237 at (0.20169, 0.15001, 0.47687, 0.27533, 0.31165, 0.65730) (best known) |
| Shekel 5 | continuous | Rust, Python | −10.15320 near (4, 4, 4, 4) (best known) |
| Shekel 7 | continuous | Rust, Python | −10.40294 near (4, 4, 4, 4) (best known) |
| Shekel 10 | continuous | Rust, Python | −10.53641 near (4, 4, 4, 4) (best known) |
| Shekel's foxholes | continuous | Rust, Python | 0.99800 at (−31.97833, −31.97833) (best known) |
| Langermann | continuous | Rust, Python | −4.15581 at (2.79340, 1.59723) (best known) |
| Kowalik | continuous | Rust, Python | 3.07486e-4 at (0.19283, 0.19084, 0.12312, 0.13577) (best known) |
| Easom | continuous | Rust, Python | −1 at (π, π) |
| Eggholder | continuous | Rust, Python | −959.6407 at (512, 404.2318) (best known) |
| Schaffer F6 | continuous | Rust, Python | 0 at the origin |
| Schaffer F7 | continuous | Rust, Python | 0 (at the origin) |
| Penalized 1 | continuous | Rust, Python | 0 (at (−1, …, −1)) |
| Penalized 2 | continuous | Rust, Python | 0 (at (1, …, 1)) |
| Büche-Rastrigin | continuous | Rust, Python | 0 (at the origin) |
| Non-continuous Rastrigin | continuous | Rust, Python | 0 (at the origin) |
| Weierstrass | continuous | Rust, Python | 0 (at the origin) |
| Katsuura | continuous | Rust, Python | 0 (at the origin, and wherever every gene is a multiple of 1/2) |
| HappyCat | continuous | Rust, Python | 0 (at (−1, …, −1)) |
| HGBat | continuous | Rust, Python | 0 (at (−1, …, −1)) |
| Pressure vessel design | constrained | Rust, Python | 6059.714335 (cost) |
| Welded beam design | constrained | Rust, Python | 1.7248523085993899 (seven constraints) and 2.3811341169090015 (five constraints), best known |
| Tension/compression spring | constrained | Rust, Python | 0.01266523278831971 (weight), best known |
| Speed reducer | constrained | Rust, Python | 2996.348165 (weight), best known |
| Three-bar truss | constrained | Rust, Python | 263.895843 (volume, cm³) |
| Cantilever beam | constrained | Rust, Python | 1.339956361 (weight), proven |
| Car side impact | constrained | Rust, Python | 23.585658 (weight), best known |
| CEC 2006 g01 | constrained | Rust, Python | −15 at (1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 1), proven |
| CEC 2006 g02 | constrained | Rust, Python | −0.80361910412559, best known (not proven) |
| CEC 2006 g03 | constrained | Rust, Python | −1.0005001 (−1.0001⁵) at xi = 0.316244 for the report's tolerance 0.0001, proven |
| CEC 2006 g04 | constrained | Rust, Python | −30665.53867178332 (proven) |
| CEC 2006 g05 | constrained | Rust, Python | 5126.4967140071 (best known, with the equalities met within 0.0001) |
| CEC 2006 g06 | constrained | Rust, Python | −6961.81387558015 (proven) |
| CEC 2006 g07 | constrained | Rust, Python | 24.30620906818 (proven) |
| CEC 2006 g08 | constrained | Rust, Python | −0.0958250414180359 (proven) |
| CEC 2006 g09 | constrained | Rust, Python | 680.630057374402 (proven) |
| CEC 2006 g10 | constrained | Rust, Python | 7049.24802052867 (proven) |
| CEC 2006 g11 | constrained | Rust, Python | 0.7499 (3/4 − 0.0001) at (±0.707036, 0.5) for the report's tolerance 0.0001, proven |
| CEC 2006 g12 | constrained | Rust, Python | −1 at (5, 5, 5) (proven) |
| CEC 2006 g13 | constrained | Rust, Python | 0.053941514041898 (best known, with the equalities met within 0.0001) |
| CEC 2006 g14 | constrained | Rust, Python | −47.7648884594915 (best known, with the equalities met within 0.0001) |
| CEC 2006 g15 | constrained | Rust, Python | 961.715022289961 (best known, with the equalities met within 0.0001) |
| CEC 2006 g16 | constrained | Rust, Python | −1.90515525853479 (best known) |
| CEC 2006 g17 | constrained | Rust, Python | 8853.5338748065 (best known, with the equalities met within 0.0001; the report prints 8853.53967480648) |
| CEC 2006 g18 | constrained | Rust, Python | −0.866025403784439, −√3/2 (best known) |
| CEC 2006 g19 | constrained | Rust, Python | 32.6555929502463 (best known) |
| CEC 2006 g20 | constrained | Rust, Python | none feasible; the report's best known, 0.2049794002, violates a constraint by 0.1438 |
| CEC 2006 g21 | constrained | Rust, Python | 193.724510070035 (best known, with the equalities met within 0.0001) |
| CEC 2006 g22 | constrained | Rust, Python | 236.430975504001 (the report's best known, with the equalities met within 0.0001); 236.370313314566 with every equality met exactly |
| CEC 2006 g23 | constrained | Rust, Python | −400.055099999999584 (best known, with the equalities met within 0.0001) |
| CEC 2006 g24 | constrained | Rust, Python | −5.50801327159536 (proven) |
| Gear train design | integer | Rust, Python | 2.700857e-12 (squared error of the ratio) |
| ZDT1 | multi-objective | Rust, Python | hypervolume 0.8767 (reference point (1.1, 1.1)) |
| ZDT2 | multi-objective | Rust, Python | the front f₂ = 1 − f₁² for f₁ in [0, 1]; hypervolume 0.5433 (reference point (1.1, 1.1)) |
| ZDT3 | multi-objective | Rust, Python | five pieces of f₂ = 1 − √f₁ − f₁ sin(10π f₁); hypervolume 1.3318 (reference point (1.1, 1.1)) |
| ZDT4 | multi-objective | Rust, Python | the front f₂ = 1 − √f₁ for f₁ in [0, 1]; hypervolume 0.8767 (reference point (1.1, 1.1)) |
| ZDT5 | multi-objective | Rust, Python | 31 points f₂ = 10 / f₁ for f₁ = 1, 2, …, 31; hypervolume 323.15 (reference point (34.1, 11)) |
| ZDT6 | multi-objective | Rust, Python | the front f₂ = 1 − f₁² for f₁ from 0.2808 to 1; hypervolume 0.5079 (reference point (1.1, 1.1)) |
| Schaffer 1 | multi-objective | Rust, Python | the front f₂ = (√f₁ − 2)² for f₁ in [0, 4]; hypervolume 16.693 (reference point (4.4, 4.4)) |
| Schaffer 2 | multi-objective | Rust, Python | the front f₂ = (f₁ − 3)² for f₁ in [−1, 0) and f₂ = (f₁ − 1)² for f₁ in [0, 1]; hypervolume 26.053 (reference point (1.2, 17.6)) |
| Fonseca-Fleming | multi-objective | Rust, Python | the front (1 − exp(−(s − 1)²), 1 − exp(−(s + 1)²)) for s in [−1, 1]; hypervolume 0.5521 (reference point (1.1, 1.1)) |
| Kursawe's disconnected front | multi-objective | Rust, Python | not known in closed form; a reference front from much longer runs has hypervolume 37.3489 (reference point (−14, 1)) |
| Poloni | multi-objective | Rust, Python | not known in closed form; a fine grid gives hypervolume 444.57 (reference point (18.4, 27.5)) |
| BNH, a constrained two-objective problem | multi-objective | Rust, Python | the front f = (8t², 2(t − 5)²) for t in [0, 5]; hypervolume 9883.33 (reference point (210, 55)) |
| SRN (Srinivas and Deb) | multi-objective | Rust, Python | a front in three pieces, from (10.1, 2.61) to (222.97, −217.74); hypervolume 35478.6 (reference point (245, 25)) |
| TNK (Tanaka) | multi-objective | Rust, Python | a front in five pieces on the first constraint's boundary, from (0.0417, 1.0384) to (1.0384, 0.0417); hypervolume 0.6551 (reference point (1.2, 1.2)) |
| OSY (Osyczka and Kundu) | multi-objective | Rust, Python | a front in five pieces, from (−274, 76) to (−42, 4); hypervolume 16546.1 (reference point (−20, 85)) |
| CONSTR | multi-objective | Rust, Python | the front f₂ = 7/f₁ − 9 for f₁ in [7/18, 2/3], then f₂ = 1/f₁ for f₁ in [2/3, 1]; hypervolume 5.3327 (reference point (1.1, 10)) |
| WFG1 | multi-objective | Rust, Python | the front f₁ = 2 (1 − cos(x₁π/2)), f₂ = 4 (1 − x₁ + sin(10πx₁) / 10π) for x₁ in [0, 1]; hypervolume 6.7857 (reference point (2.2, 4.4)); no genome reaches it in double precision: the closest front a genome can have is the front moved by 0.0695, hypervolume 6.3321 |
| WFG2 | multi-objective | Rust, Python | six regions of the curve f₁ = 2 (1 − cos(x₁π/2)), f₂ = 4 (1 − x₁ cos²(5πx₁)); hypervolume 6.1511 (reference point (2.2, 4.4)) |
| WFG3 | multi-objective | Rust, Python | the segment from (0, 4) to (2, 0); hypervolume 5.68 (reference point (2.2, 4.4)) |
| WFG4 | multi-objective | Rust, Python | the front (f₁ / 2)² + (f₂ / 4)² = 1, a quarter ellipse from (0, 4) to (2, 0); hypervolume 3.3968 (reference point (2.2, 4.4)) |
| WFG5 | multi-objective | Rust, Python | the front (f₁ / 2)² + (f₂ / 4)² = 1, a quarter ellipse from (0, 4) to (2, 0); hypervolume 3.3968 (reference point (2.2, 4.4)) |
| WFG6 | multi-objective | Rust, Python | the front (f₁ / 2)² + (f₂ / 4)² = 1, a quarter ellipse from (0, 4) to (2, 0); hypervolume 3.3968 (reference point (2.2, 4.4)) |
| WFG7 | multi-objective | Rust, Python | the quarter ellipse (f₁/2)² + (f₂/4)² = 1; hypervolume 3.3968 (reference point (2.2, 4.4)) |
| WFG8 | multi-objective | Rust, Python | the quarter ellipse (f₁/2)² + (f₂/4)² = 1; hypervolume 3.3968 (reference point (2.2, 4.4)) |
| WFG9 | multi-objective | Rust, Python | the quarter ellipse (f₁/2)² + (f₂/4)² = 1; hypervolume 3.3968 (reference point (2.2, 4.4)) |
| DTLZ1 with 3 objectives | multi-objective | Rust, Python | the plane f₁ + f₂ + f₃ = 0.5; hypervolume 0.1455 (reference point (0.55, 0.55, 0.55)) |
| DTLZ2 with 3 objectives | multi-objective | Rust, Python | hypervolume 0.8074 (reference point (1.1, 1.1, 1.1)) |
| DTLZ3 with 3 objectives | multi-objective | Rust, Python | the unit sphere's eighth with f ≥ 0; hypervolume 0.8074 (reference point (1.1, 1.1, 1.1)) |
| DTLZ4 with 3 objectives | multi-objective | Rust, Python | the unit sphere's eighth with f ≥ 0; hypervolume 0.8074 (reference point (1.1, 1.1, 1.1)) |
| DTLZ5 with 3 objectives | multi-objective | Rust, Python | the curve f₁ = f₂ = cos θ / √2, f₃ = sin θ for θ in [0, π/2]; hypervolume 0.1349 (reference point (0.7778, 0.7778, 1.1)) |
| DTLZ6 with 3 objectives | multi-objective | Rust, Python | the curve f₁ = f₂ = cos θ / √2, f₃ = sin θ for θ in [0, π/2]; hypervolume 0.1349 (reference point (0.7778, 0.7778, 1.1)) |
| DTLZ7 with 3 objectives | multi-objective | Rust, Python | f₃ = 6 − φ(f₁) − φ(f₂), φ(f) = f (1 + sin 3πf), with f₁ and f₂ in [0, 0.2514] or (0.6316, 0.8594]; hypervolume 1.7392 (reference point (0.9453, 0.9453, 6.6)) |
| Viennet 1 | multi-objective | Rust, Python | the image of the triangle with corners (0, 1), (0, −1) and (1, 0); hypervolume about 33.52 (reference point (4.4, 5.4, 4.2)) |
| Viennet 2 | multi-objective | Rust, Python | not known in closed form; hypervolume about 0.7744 (reference point (4.3697, −16.4242, −11.9584)) |
| Viennet 3 | multi-objective | Rust, Python | not known in closed form: two curves; hypervolume about 5.3255 (reference point (9.016, 17.2407, 0.2036)) |
| CTP1 | multi-objective | Rust, Python | the front f₂ = max(e^−f₁, 0.858 e^−0.541f₁, 0.728 e^−0.295f₁) for f₁ in [0, 1]; hypervolume 0.8829 in objectives scaled by the ideal and nadir points (reference point (1.1, 1.1)) |
| CTP2 | multi-objective | Rust, Python | 13 disconnected pieces of the constraint's boundary, from (0, 1) to (0.9845, 0.2872); hypervolume 0.6901 in objectives scaled by the ideal and nadir points (reference point (1.1, 1.1)) |
| CTP3 | multi-objective | Rust, Python | 13 points on the line f₂ = 1 − tan(0.2π) f₁, from (0, 1) to (0.9708, 0.2947); hypervolume 0.6683 in objectives scaled by the ideal and nadir points (reference point (1.1, 1.1)) |
| CTP4 | multi-objective | Rust, Python | 13 points on the line f₂ = 1 − tan(0.2π) f₁, from (0, 1) to (0.9708, 0.2947); hypervolume 0.6683 in objectives scaled by the ideal and nadir points (reference point (1.1, 1.1)) |
| CTP5 | multi-objective | Rust, Python | a piece of the constraint's boundary from (0, 1) to f₁ = 0.2558, and 15 points on the line f₂ = 1 − tan(0.2π) f₁ at √(k/10) along it, the last at (0.9908, 0.2801); hypervolume 0.6613 in objectives scaled by the ideal and nadir points (reference point (1.1, 1.1)) |
| CTP6 | multi-objective | Rust, Python | one piece of a constraint boundary, from (0, 3.6958) to (1, 0.8813); hypervolume 0.7124 in objectives scaled by the ideal and nadir points (reference point (1.1, 1.1)) |
| CTP7 | multi-objective | Rust, Python | six pieces of the curve f₂ = 1 − √f₁, the last ending at (1, 0), and the point (0, 1.0446); hypervolume 0.8443 in objectives scaled by the ideal and nadir points (reference point (1.1, 1.1)) |
| CTP8 | multi-objective | Rust, Python | three pieces of CTP6's front, from (0, 3.6958) to (0.1345, 3.3128), (0.3263, 2.7686) to (0.4790, 2.3372) and (0.6823, 1.7654) to (0.8229, 1.3727); hypervolume 0.6540 in objectives scaled by the ideal and nadir points (reference point (1.1, 1.1)) |
| C1-DTLZ1 with 3 objectives | multi-objective | Rust, Python | DTLZ1's front, the plane f₁ + f₂ + f₃ = 1/2, all feasible; the 91 target points' hypervolume is 1.1204 in objectives scaled by the nadir point (reference point (1.1, 1.1, 1.1)) |
| C1-DTLZ3 with 3 objectives | multi-objective | Rust, Python | DTLZ3's front, the unit sphere, all feasible; the 91 target points' hypervolume is 0.7449 (reference point (1.1, 1.1, 1.1)) |
| C2-DTLZ2 with 3 objectives | multi-objective | Rust, Python | the parts of the unit sphere within 0.4 of (1, 0, 0), (0, 1, 0), (0, 0, 1) and (1, 1, 1)/√3; the 58 feasible target points' hypervolume is 0.6535 (reference point (1.1, 1.1, 1.1)) |
| Convex C2-DTLZ2 with 3 objectives | multi-objective | Rust, Python | the convex front f₃ + √f₁ + √f₂ = 1 outside the cylinder of radius 0.225 around the diagonal; the 47 feasible target points' hypervolume is 1.2546 (reference point (1.1, 1.1, 1.1)) |
| C3-DTLZ1 with 3 objectives | multi-objective | Rust, Python | the front f₁ + f₂ + f₃ + min fⱼ = 1, three planes from the unit vectors to (1/4, 1/4, 1/4); the 91 target points' hypervolume is 1.1624 (reference point (1.1, 1.1, 1.1)) |
| C3-DTLZ4 with 3 objectives | multi-objective | Rust, Python | the front minⱼ [fⱼ²/4 + Σ_{i≠j} fᵢ²] = 1, three ellipsoids from 2 × the unit vectors to (2/3, 2/3, 2/3); the 91 target points' hypervolume is 1.0598 in objectives scaled by the nadir point (reference point (1.1, 1.1, 1.1)) |
| DTLZ8 with 3 objectives | multi-objective | Rust, Python | the line f₁ = f₂ = t, f₃ = 1 − 4t, t in [0, 1/6], and the triangle 2f₃ + f₁ + f₂ = 1 with f₁, f₂ ≥ (1 − f₃)/4; ideal point (0, 0, 0), nadir point (3/4, 3/4, 1); hypervolume 0.9724 (normalized objectives, reference point (1.1, 1.1, 1.1)) |
| DTLZ9 with 3 objectives | multi-objective | Rust, Python | the curve f₁ = f₂ = cos θ, f₃ = sin θ, θ in [0, π/2]; ideal point (0, 0, 0), nadir point (1, 1, 1); hypervolume 0.2697 (normalized objectives, reference point (1.1, 1.1, 1.1)) |
| DC1-DTLZ1 with 3 objectives | multi-objective | Rust, Python | two bands of the triangle f₁ + f₂ + f₃ = 1/2, f₃ in [1/9, 2/9] or [4/9, 1/2]; ideal point (0, 0, 1/9), nadir point (7/18, 7/18, 1/2); hypervolume 1.0709 (normalized objectives, reference point (1.1, 1.1, 1.1)) |
| DC1-DTLZ3 with 3 objectives | multi-objective | Rust, Python | two bands of the unit sphere's octant, f₃ in [0, sin(π/18)] or [sin(5π/18), sin(7π/18)]; ideal point (0, 0, 0), nadir point (1, 1, sin(7π/18)) = (1, 1, 0.9397); hypervolume 0.6529 (normalized objectives, reference point (1.1, 1.1, 1.1)) |
| DC2-DTLZ1 with 3 objectives | multi-objective | Rust, Python | DTLZ1's front, whole; ideal point (0, 0, 0), nadir point (1/2, 1/2, 1/2); hypervolume 1.1577 (normalized objectives, reference point (1.1, 1.1, 1.1)) |
| DC2-DTLZ3 with 3 objectives | multi-objective | Rust, Python | DTLZ3's front, whole; ideal point (0, 0, 0), nadir point (1, 1, 1); hypervolume 0.7971 (normalized objectives, reference point (1.1, 1.1, 1.1)) |
| DC3-DTLZ1 with 3 objectives | multi-objective | Rust, Python | four patches of DTLZ1's front; ideal point (0, 0, 1/9), nadir point (49/162, 7/18, 1/2) = (0.3025, 0.3889, 0.5); hypervolume 0.9010 (normalized objectives, reference point (1.1, 1.1, 1.1)) |
| DC3-DTLZ3 with 3 objectives | multi-objective | Rust, Python | four patches of DTLZ3's front; ideal point (cos²(7π/18), 0, 0) = (0.117, 0, 0), nadir point (1, sin(7π/18), sin(7π/18)) = (1, 0.9397, 0.9397); hypervolume 0.5488 (normalized objectives, reference point (1.1, 1.1, 1.1)) |
| DAS-CMOP1 | multi-objective | Rust, Python | for the difficulty triplet (0, 0.5, 0.5), two pieces of the curve f₂ = 1.5 − (f₁ − 0.5)²; ideal point (0.5, 0.5), nadir point (1.5, 1.5); hypervolume 0.4706 (normalized objectives, reference point (1.1, 1.1)) |
| DAS-CMOP2 | multi-objective | Rust, Python | for the difficulty triplet (0, 0.5, 0.5), the curve f₂ = 1.5 − √(f₁ − 0.5) and a piece of an ellipse; ideal point (0.5, 0.5), nadir point (1.5, 1.5); hypervolume 0.8612 (normalized objectives, reference point (1.1, 1.1)) |
| DAS-CMOP3 | multi-objective | Rust, Python | for the difficulty triplet (0, 0.5, 0.5), six pieces; ideal point (0.5, 0.5), nadir point (1.5, 1.5); hypervolume 0.7711 (normalized objectives, reference point (1.1, 1.1)) |
| DAS-CMOP4 | multi-objective | Rust, Python | for the difficulty triplet (0.5, 0.5, 0.5), six pieces of the curve f₂ = 1.5 − (f₁ − 0.5)²; ideal point (0.5, 0.5975), nadir point (1.45, 1.5); hypervolume 0.4476 (normalized objectives, reference point (1.1, 1.1)) |
| DAS-CMOP5 | multi-objective | Rust, Python | for the difficulty triplet (0.5, 0.5, 0.5), ten pieces, of the curve f₂ = 1.5 − √(f₁ − 0.5) and of an ellipse; ideal point (0.5, 0.5253), nadir point (1.45, 1.5); hypervolume 0.8494 (normalized objectives, reference point (1.1, 1.1)) |
| DAS-CMOP6 | multi-objective | Rust, Python | for the difficulty triplet (0.5, 0.5, 0.5), six pieces, some of them points; ideal point (0.5, 0.6056), nadir point (1.3, 1.5); hypervolume 0.7211 (normalized objectives, reference point (1.1, 1.1)) |
| DAS-CMOP7 | multi-objective | Rust, Python | for the difficulty triplet (0.5, 0.5, 0.5), patches of the plane f₁ + f₂ + f₃ = 2.5; ideal point (0.5, 0.5, 0.5), nadir point (1.4479, 1.5, 1.5); hypervolume 1.1300 (normalized objectives, reference point (1.1, 1.1, 1.1)) |
| DAS-CMOP8 | multi-objective | Rust, Python | for the difficulty triplet (0.5, 0.5, 0.5), patches of the unit sphere's octant moved to (0.5, 0.5, 0.5); ideal point (0.5, 0.5, 0.5), nadir point (1.5, 1.5, 1.4969); hypervolume 0.7853 (normalized objectives, reference point (1.1, 1.1, 1.1)) |
| DAS-CMOP9 | multi-objective | Rust, Python | for the difficulty triplet (0.5, 0.5, 0.5), DAS-CMOP8's, patches of the unit sphere's octant moved to (0.5, 0.5, 0.5); ideal point (0.5, 0.5, 0.5), nadir point (1.5, 1.5, 1.4969); hypervolume 0.7853 (normalized objectives, reference point (1.1, 1.1, 1.1)) |
| Convex DTLZ2 with 3 objectives | multi-objective | Rust, Python | the surface f₃ + √f₁ + √f₂ = 1 with fᵢ in [0, 1]; hypervolume 1.2943 (reference point (1.1, 1.1, 1.1)) |
| Scaled DTLZ1 with 3 objectives | multi-objective | Rust, Python | the plane f₁ + f₂/10 + f₃/100 = 0.5 with every fᵢ ≥ 0; hypervolume 1.1577 (objectives divided by the nadir point (0.5, 5, 50), reference point (1.1, 1.1, 1.1)) |
| Scaled DTLZ2 with 3 objectives | multi-objective | Rust, Python | the ellipsoid f₁² + (f₂/10)² + (f₃/100)² = 1 with every fᵢ ≥ 0; hypervolume 0.7971 (objectives divided by the nadir point (1, 10, 100), reference point (1.1, 1.1, 1.1)) |
| Inverted DTLZ1 with 3 objectives | multi-objective | Rust, Python | the triangle f₁ + f₂ + f₃ = 1 with every fᵢ in [0, 0.5]; hypervolume 0.3392 (objectives divided by the nadir point (0.5, 0.5, 0.5), reference point (1.1, 1.1, 1.1)) |
| MW1 | multi-objective | Rust, Python | six pieces of the line f₂ = 1 − 0.85 f₁, from (0, 1) to (1, 0.15); hypervolume 0.6794 (normalized objectives, reference point (1.1, 1.1)) |
| MW2 | multi-objective | Rust, Python | the line f₂ = 1 − f₁ for f₁ in [0, 1]; hypervolume 0.7100 (normalized objectives, reference point (1.1, 1.1)) |
| MW3 | multi-objective | Rust, Python | the line f₂ = 1 − f₁ and two stretches of the second constraint's boundary, from (0, 1) to (1, 0); hypervolume 0.6650 (normalized objectives, reference point (1.1, 1.1)) |
| MW4 | multi-objective | Rust, Python | the triangle f₁ + f₂ + f₃ = 1 with every fᵢ ≥ 0; hypervolume 1.1577 (reference point (1.1, 1.1, 1.1)) |
| MW5 | multi-objective | Rust, Python | sixteen points of the unit circle and two short curves near the axes; hypervolume 0.3930 (normalized objectives, reference point (1.1, 1.1)) |
| MW6 | multi-objective | Rust, Python | twelve pieces of the circle f₁² + f₂² = 1.21, from f₁ = 0.0163 to (1.1, 0); hypervolume 0.4043 (normalized objectives, reference point (1.1, 1.1)) |
| MW7 | multi-objective | Rust, Python | three pieces, of the unit circle and of the second constraint's boundary, from (0, 1.15) to (1.15, 0); hypervolume 0.5025 (normalized objectives, reference point (1.1, 1.1)) |
| MW8 | multi-objective | Rust, Python | the unit sphere with non-negative coordinates where arcsin f₃ is in [0, π/24], [π/8, 5π/24], [7π/24, 3π/8] or [11π/24, π/2]; hypervolume 0.7677 (reference point (1.1, 1.1, 1.1)) |
| MW9 | multi-objective | Rust, Python | f₂ = 1 − 0.64 f₁² for f₁ in [0, 0.5868], then f₂ = 1.15² − (f₁ + 0.15)² to (1, 0); hypervolume 0.4934 (normalized objectives, reference point (1.1, 1.1)) |
| MW10 | multi-objective | Rust, Python | two pieces, each part constraint boundary and part the parabola f₂ = 1 − f₁², from (0.2325, 1.1350) to (1, 0); hypervolume 0.6883 (normalized objectives, reference point (1.1, 1.1)) |
| MW11 | multi-objective | Rust, Python | two pieces on constraint boundaries and the isolated point (1, 1), which needs x₁ = 1 and g₃ = 1 exactly; hypervolume 0.8099 (normalized objectives, reference point (1.1, 1.1)) |
| MW12 | multi-objective | Rust, Python | the boundary T₁ = 0 from (0, 1) to (1.3164, 0.0039); hypervolume 0.7397 (normalized objectives, reference point (1.1, 1.1)) |
| MW13 | multi-objective | Rust, Python | three pieces, of the unconstrained front and of the boundary T₁ = 0, from (0, 4) to (1.5, 0.0183); hypervolume 0.5819 (normalized objectives, reference point (1.1, 1.1)) |
| MW14 | multi-objective | Rust, Python | f₃ = (φ(f₁) + φ(f₂))/2, φ(t) = 6 − eᵗ − 1.5 sin(1.1πt²), with f₁ and f₂ each in [0, 0.7314] or (1.3296, 1.5]; hypervolume 0.6742 (objectives normalized by the ideal and nadir points, reference point (1.1, 1.1, 1.1)) |
| Two-bar truss | multi-objective | Rust, Python | the front f₁ f₂ = 400 for stresses from 10⁵ down to 4000√5, then x₂ = 0.01 and y from 2 to 3, down to 8000√10/3 ≈ 8432.74; hypervolume 1.0663 in objectives scaled by the ideal and nadir points (reference point (1.1, 1.1)) |
| Welded beam, two objectives | multi-objective | Rust, Python | not known in closed form; from a cost of 2.3811341 at a deflection of 0.0157592 to a deflection of 0.00043904 at a cost of 36.421245 (best known); genoxide's reference front has a hypervolume of 1.1434 in scaled objectives (reference point (1.1, 1.1)) |
| Disc brake | multi-objective | Rust, Python | not known in closed form; from 0.1274 kg stopping in 16.654925 s to 2.0710401 s at 2.793 kg, both ends derived; genoxide's reference front has a hypervolume of 1.0853 in scaled objectives (reference point (1.1, 1.1)) |
| Speed reducer, two objectives | multi-objective | Rust, Python | not known in closed form; from a volume of 2771.9151 at the stress limit of 1300 to a stress of 694.70574 at a volume of 5777.9203 (best known); genoxide's reference front has a hypervolume of 1.1804 in scaled objectives (reference point (1.1, 1.1)) |
| Four-bar truss | multi-objective | Rust, Python | the front from (1400, 0.04) to (2200 + 600√2, (2√2 − 2)/300) ≈ (3048.53, 0.0027614), in three pieces with x₃ = √2; hypervolume 0.8891 in objectives scaled by the ideal and nadir points (reference point (1.1, 1.1)) |
| Car side impact, three objectives | multi-objective | Rust, Python | not known in closed form; ideal point (23.585658, 3.58525, 10.610644); genoxide's reference front has a hypervolume of 0.8687 in objectives scaled by the ideal point and its estimated nadir point (42.768, 4.0, 12.5212) (reference point (1.1, 1.1, 1.1)) |
| Rocket injector | multi-objective | Rust, Python | not known in closed form; ideal point (0.0088934, −0.4315, 0.00488); genoxide's reference front has a hypervolume of 0.9019 in objectives scaled by the ideal point and its estimated nadir point (1.002, 1.0965, 1.0539) (reference point (1.1, 1.1, 1.1)) |
| Vehicle crashworthiness | multi-objective | Rust, Python | not known in closed form; ideal point (1661.7078, 6.1428, 0.0394), at bounds; genoxide's reference front has a hypervolume of 1.0525 in objectives scaled by the ideal point and its estimated nadir point (1695.161, 10.736, 0.264) (reference point (1.1, 1.1, 1.1)) |
| Water resource planning | multi-objective | Rust, Python | the image of every design with x₃ = 0.01 and x₁x₂ ≥ 0.00139 / 1.0306; ideal point (63840.28, 40.46, 285346.9, 183749.97, 7.22), nadir point (73450.51, 1350, 2853469.0, 6575303.1, 25000) |
| Conceptual marine design | multi-objective | Rust, Python | not known in closed form; ideal point (8.376894, 5240.3356, −700,552.76); genoxide's reference front has a hypervolume of 0.8624 in objectives scaled by the ideal point and its estimated nadir point (11.0662, 12,435.8, −386,500) (reference point (1.1, 1.1, 1.1)) |
| XOR neuroevolution | neuroevolution | Rust, Python | 0.000216214 (squared error, with the weights in [−10, 10]; best known) |
| XOR by NEAT | neuroevolution | Rust, Python | Every output on the right side of 0.5 (the paper's success criterion); a fitness of 16 is a perfect network |
| Cart-pole | neuroevolution | Rust, Python | Balanced for 100,000 steps of 0.02 s (the success criterion of Gomez et al. 2008) |
| Double pole balancing | neuroevolution | Rust, Python | Balanced for 100,000 steps of 0.02 s (the success criterion of Gomez et al. 2008) |
| Double pole balancing without velocities | neuroevolution | Rust, Python | Balanced for 100,000 steps, and for 1000 steps from at least 200 of 625 other starts (Gruau et al.'s success criteria) |
| Two spirals | neuroevolution | Rust, Python | All 194 points classified |
| Koza's quartic | genetic programming | Rust, Python | x⁴ + x³ + x² + x, exactly (an RMSE of 0, up to rounding) |
| Koza's 11-multiplexer | genetic programming | Rust, Python | All 2048 cases right |
| [ | x | by strongly typed GP](abs_typed.md) | genetic programming |
| Nguyen-1 | genetic programming | Rust, Python | x³ + x² + x, exactly (an RMSE of 0, up to rounding) |
| Nguyen-5 | genetic programming | Rust, Python | sin(x²) cos(x) − 1, exactly (an RMSE of 0, up to rounding) |
| Nguyen-9 | genetic programming | Rust, Python | sin(x) + sin(y²), exactly (an RMSE of 0, up to rounding) |
| Nguyen-1 to 12 | genetic programming | Rust, Python | Each formula, exactly (an RMSE of 0, up to rounding); this search recovers 11 of the 12 in some runs |
| Accuracy against size | genetic programming | Rust, Python | The formula, ln(x + 1) + ln(x² + 1), is a tree of 13 nodes; this run's front doesn't reach it, and shows the best error found for each size instead |
| Asynchronous evaluation | engine | Rust | 0 (at the origin) |
| Neuroevolution on the GPU | engine | Rust | none known; the best fit found by gradient descent: 4.4e-9 (mean squared error) |
| Nelder-Mead on Rosenbrock | local | Rust, Python | 0 (at (1, 1)) |
| Nelder-Mead with restarts on Himmelblau | local | Rust, Python | 0 (at four points) |
| L-BFGS-B on Rosenbrock in 100 dimensions | local | Rust, Python | 0 (at (1, …, 1)) |
| MMA on a million variables | local | Rust, Python | (Σ √cₖ)² / V, at xⱼ = V √cⱼ / Σ √cₖ |
| L-BFGS-B on a minimum at the bound | local | Rust, Python | 0.25 (at (0.5, 0.25), on the bound x₁ = 0.5) |
| SHADE, then L-BFGS-B | local | Rust, Python | 0 (at the origin) |
| Adam with a learning-rate schedule | local | Rust, Python | the curve x* the data are made from, at distance 0 |
| Continuation by Gaussian smoothing | local | Rust, Python | f* = 0.82084153378296, computed gene by gene to the last bit |
| Bayesian optimization of Branin | bayesian | Rust, Python | 5 / (4π) ≈ 0.397887 (at three points) |
| Bayesian optimization in batches on Hartmann 6-D | bayesian | Rust, Python | −3.32237 at (0.20169, 0.15001, 0.47687, 0.27533, 0.31165, 0.65730) (best known) |
| Asynchronous Bayesian optimization | bayesian | Rust | −3.86278 at (0.11461, 0.55565, 0.85255) (best known) |
| Constrained Bayesian optimization | bayesian | Rust, Python | 0.599788 at (0.195123, 0.404665) |
Run a Rust example with cargo run --release --example <name> from the root of the
repository, and a Python one with python examples/<name>/main.py after
pip install genoxide.