problems.bend checks
raw source on the hub · import 0xcd07e24a626a62e74603d48f436cd679/problems.bend as Problems
Named problems — C# Unsga3.Problems Zdt1 / Zdt2 / Dtlz2. Bounds + Evaluate match the attached C# IProblem / problem files. Minimize. Unconstrained (NumberOfConstraints = 0).
4 imports
import Base import ./individual.bend as Ind import ./bounds.bend as Bounds import ./util.bend as Util
Types
type Family source · line 10 · raw
Data
Zdt1Family
Zdt2Family
Dtlz2Family
type Problem source · line 15 · raw
Data
MkProblem@kind:Family -> @box:0xcd07e24a626a62e74603d48f436cd679/bounds.Box -> Problem
Definitions
def box_of source · line 21 · raw
@p:Problem -> 0xcd07e24a626a62e74603d48f436cd679/bounds.Box
def kind_of source · line 26 · raw
@p:Problem -> Family
def n_obj source · line 31 · raw
@p:Problem -> Nat
def n_var source · line 34 · raw
@p:Problem -> Nat
def zdt1 source · line 38 · raw
@n:Nat -> Problem
ZDT1 / ZDT2: n variables (C# default 30), 2 objectives, x ∈ [0,1]^n.
def zdt2 source · line 41 · raw
@n:Nat -> Problem
def dtlz_n source · line 45 · raw
@m:Nat -> @k:Nat -> Nat
n = M + k - 1 (C# Dtlz2Problem).
def dtlz2 source · line 57 · raw
@+m:Nat -> @k:Nat -> Problem
DTLZ2: C# default M=3, k=10 ⇒ n=12, x ∈ [0,1]^n.
def sum_from source · line 60 · raw
@xs:List<&2, F32> -> F32
def sum_tail source · line 67 · raw
@xs:List<&2, F32> -> F32
def zdt_den source · line 74 · raw
@n:Nat -> F32
def zdt_g source · line 84 · raw
@+x:List<&2, F32> -> F32
C# Zdt1Problem.GLinear: 1 + 9 * sum(x[1..]) / (n - 1).
def zdt1_f source · line 88 · raw
@+x:List<&2, F32> -> List<&2, F32>
def zdt2_f source · line 93 · raw
@+x:List<&2, F32> -> List<&2, F32>
def pred source · line 99 · raw
@n:Nat -> Nat
def sum_sq_half source · line 106 · raw
@xs:List<&2, F32> -> F32
def dtlz2_g source · line 114 · raw
@+x:List<&2, F32> -> @m:Nat -> F32
C# DtlzHelper.GDtlz2: sum (x[i] - 0.5)^2 for i >= M-1.
def half_pi source · line 117 · raw
F32
def prod_cos.go source · line 120 · raw
@+x:List<&2, F32> -> @fuel:Nat -> @+i:Nat -> @acc:F32 -> F32
def prod_cos source · line 132 · raw
@+x:List<&2, F32> -> @n:Nat -> F32
def dtlz2_sin source · line 135 · raw
@+x:List<&2, F32> -> @+m:Nat -> @+i:Nat -> F32
def dtlz2_fi.tail source · line 138 · raw
@+x:List<&2, F32> -> @+m:Nat -> @+g:F32 -> @+i:Nat -> @+body:F32 -> @first:Bool -> F32
def dtlz2_fi source · line 146 · raw
@+x:List<&2, F32> -> @+m:Nat -> @+g:F32 -> @+i:Nat -> F32
C# Dtlz2Problem: (1+g) * prod_{j<M-i-1} cos(x[j] π/2) [* sin(x[M-i-1] π/2) if i>0].
def dtlz2_fs.go source · line 156 · raw
@+x:List<&2, F32> -> @+m:Nat -> @+g:F32 -> @fuel:Nat -> @+i:Nat -> List<&2, F32>
def dtlz2_f source · line 163 · raw
@+x:List<&2, F32> -> @+m:Nat -> List<&2, F32>
def eval_kind source · line 166 · raw
@kind:Family -> @+x:List<&2, F32> -> @+m:Nat -> List<&2, F32>
def evaluate source · line 175 · raw
@+p:Problem -> @+ind:0xcd07e24a626a62e74603d48f436cd679/individual.Individual -> 0xcd07e24a626a62e74603d48f436cd679/individual.Individual
def evaluate_all source · line 179 · raw
@+p:Problem -> @+xs:List<&2, 0xcd07e24a626a62e74603d48f436cd679/individual.Individual> -> List<&2, 0xcd07e24a626a62e74603d48f436cd679/individual.Individual>
Independent per individual. Mid-split + parallel recurse; same order as cons.