lib.bend
unified-nsga-iii@0.1.2.0 · 56 lines · 0 definitions
1# Core + pass-2 facade. Importing this file is the module graph check:
2# v0 selection, SBX / mutation, ZDT/DTLZ, tournament, Unsga3Algorithm.Run.
3
4import Base
5import unified-nsga-iii@0.1.2.0/individual.bend as Individual
6import unified-nsga-iii@0.1.2.0/non_dominated_sort.bend as NonDominatedSort
7import unified-nsga-iii@0.1.2.0/normalization.bend as Normalization
8import unified-nsga-iii@0.1.2.0/reference_directions.bend as ReferenceDirections
9import unified-nsga-iii@0.1.2.0/survival.bend as Survival
10import unified-nsga-iii@0.1.2.0/util.bend as Util
11import unified-nsga-iii@0.1.2.0/bounds.bend as Bounds
12import unified-nsga-iii@0.1.2.0/rng.bend as Rng
13import unified-nsga-iii@0.1.2.0/sbx.bend as Sbx
14import unified-nsga-iii@0.1.2.0/polynomial_mutation.bend as Poly
15import unified-nsga-iii@0.1.2.0/problems.bend as Problems
16import unified-nsga-iii@0.1.2.0/tournament.bend as Tournament
17import unified-nsga-iii@0.1.2.0/algorithm.bend as Algorithm
18
19def core_modules_loaded() -> Bool:
20 True{}
21
22def variation_defaults() -> F32 & F32 & F32:
23 (Sbx.eta(Sbx.default()), Sbx.probability(Sbx.default()), Poly.eta(Poly.default()))
24
25def unit_box2() -> Bounds.Box:
26 Bounds.unit_n(2n, 2n)
27
28def rng_seed1() -> Rng.State:
29 Rng.from_nat(1n)
30
31def empty_fronts() -> List<&2, List<&2, Nat>>:
32 NonDominatedSort.sort(Nil{})
33
34def empty_normalized() -> Normalization.State & List<&2, List<&2, F32>>:
35 Normalization.normalize(Normalization.new_state(2n), Nil{})
36
37def das_dennis_m1() -> List<&2, List<&2, F32>>:
38 ReferenceDirections.das_dennis(1n, 1n)
39
40def empty_selected() -> List<&2, Individual.Individual>:
41 Survival.select(Nil{}, 0n, Nil{})
42
43def count_m1() -> Nat:
44 Util.nat_min(ReferenceDirections.count(1n, 12n), 1n)
45
46def zdt1_n_obj() -> Nat:
47 Problems.n_obj(Problems.zdt1(30n))
48
49def dtlz2_n_var() -> Nat:
50 Problems.n_var(Problems.dtlz2(3n, 10n))
51
52def empty_run() -> List<&2, Individual.Individual>:
53 Algorithm.run(Problems.zdt1(30n), Algorithm.mk(Nil{}, 0n, 0n, 1n, Tournament.pymoo(), True{}))
54
55def parents_zero() -> List<&2, Individual.Individual>:
56 Tournament.parents_of(Tournament.select_parents(Tournament.pymoo(), Nil{}, 0n, Rng.from_nat(1n)))