~/bend-docscommunity

problems.bend checks

raw source on the hub · import 0x527a2a4fa91b05a0250d7be0e11d232a/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

type Problem source · line 15 · raw

Data

Definitions

def box_of source · line 21 · raw

@p:Problem -> 0x527a2a4fa91b05a0250d7be0e11d232a/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:0x527a2a4fa91b05a0250d7be0e11d232a/individual.Individual -> 0x527a2a4fa91b05a0250d7be0e11d232a/individual.Individual

def evaluate_all source · line 179 · raw

@+p:Problem -> @+xs:List<&2, 0x527a2a4fa91b05a0250d7be0e11d232a/individual.Individual> -> List<&2, 0x527a2a4fa91b05a0250d7be0e11d232a/individual.Individual>

Independent per individual. Mid-split + parallel recurse; same order as cons.