pub struct Dtlz2 { /* private fields */ }Expand description
DTLZ2 (Deb, Thiele, Laumanns & Zitzler 2002): a scalable many-objective
benchmark whose Pareto front is the unit hypersphere in the positive orthant
(Σ fᵢ² = 1). On [0, 1]^n with M objectives and k = n − M + 1 distance
variables,
g = Σ_{i ≥ M} (xᵢ − 0.5)²
f_1 = (1+g) · cos(x₁ π/2) ··· cos(x_{M−1} π/2)
f_j = (1+g) · cos(x₁ π/2) ··· sin(x_{M−j+1} π/2)
f_M = (1+g) · sin(x₁ π/2)The front is reached when g = 0 (all distance variables at 0.5); there the
objective vector lies exactly on the unit sphere — the ground truth the
NSGA-III test measures distance to.
Implementations§
Trait Implementations§
Source§impl MultiProblem for Dtlz2
impl MultiProblem for Dtlz2
Source§fn n_objectives(&self) -> usize
fn n_objectives(&self) -> usize
Number of objectives (≥ 2 for a genuine multi-objective problem).
Source§fn objectives(&self, x: &[f64]) -> Vec<f64>
fn objectives(&self, x: &[f64]) -> Vec<f64>
The objective vector to minimize, length
MultiProblem::n_objectives.Auto Trait Implementations§
impl Freeze for Dtlz2
impl RefUnwindSafe for Dtlz2
impl Send for Dtlz2
impl Sync for Dtlz2
impl Unpin for Dtlz2
impl UnsafeUnpin for Dtlz2
impl UnwindSafe for Dtlz2
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more