def select_st.large

unified-nsga-iii@0.2.2.0 · survival.bend:1256

import unified-nsga-iii@0.2.2.0/survival.bend as Survival
import Base
import unified-nsga-iii@0.2.2.0/individual.bend as Ind
import unified-nsga-iii@0.2.2.0/normalization.bend as Norm
import unified-nsga-iii@0.2.2.0/rng.bend as Rng

1256# Persistent-normalization Select for Unsga3Algorithm.Run. Threads rng
1257# so last-front niching matches C# Select(..., rng) on min-count niche
1258# ties. Empty niches take closest; extras are random among near-best
1259# on that ray. v0 `select` stays the `rng == null` path (empty laws).
1260def select_st.large(+pop: List<&2, Ind.Individual>, +target: Nat, +dirs: List<&2, List<&2, F32>>, state: Norm.State, rng: Rng.State, bad: Bool) -> Norm.State & List<&2, Ind.Individual> & Rng.State:
1261  match bad:
1262    case False{}:
1263      select_st.dirs(pop, target, dirs, state, rng, List.is_empty(&2, List<&2, F32>, dirs))
1264    case True{}:
1265      select_st.constrained(pop, target, dirs, state, rng)

Uses (11)

Used by (1)