pub struct NkLandscape { /* private fields */ }Expand description
NK Landscape
A tunable fitness landscape with controllable epistasis (gene interactions).
- N is the genome length
- K is the number of other genes that affect each gene’s fitness contribution
Higher K = more rugged landscape with more local optima. K=0: smooth landscape (separable) K=N-1: maximally rugged (all genes interact)
The fitness is the average of local fitness contributions.
Implementations§
Source§impl NkLandscape
impl NkLandscape
Sourcepub fn new(n: usize, k: usize, seed: u64) -> Self
pub fn new(n: usize, k: usize, seed: u64) -> Self
Create a new NK Landscape with random fitness contributions
§Arguments
n- Genome lengthk- Epistasis degree (must be < n)seed- Random seed for reproducibility
Sourcepub fn with_adjacent_neighbors(n: usize, k: usize, seed: u64) -> Self
pub fn with_adjacent_neighbors(n: usize, k: usize, seed: u64) -> Self
Create an NK Landscape with adjacent neighbors (each gene interacts with its k nearest neighbors)
Sourcepub fn genome_length(&self) -> usize
pub fn genome_length(&self) -> usize
Get genome length (N)
Sourcepub fn evaluate_bits(&self, bits: &[bool]) -> f64
pub fn evaluate_bits(&self, bits: &[bool]) -> f64
Evaluate fitness for a bit string
Trait Implementations§
Source§impl Clone for NkLandscape
impl Clone for NkLandscape
Source§fn clone(&self) -> NkLandscape
fn clone(&self) -> NkLandscape
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for NkLandscape
impl Debug for NkLandscape
Auto Trait Implementations§
impl Freeze for NkLandscape
impl RefUnwindSafe for NkLandscape
impl Send for NkLandscape
impl Sync for NkLandscape
impl Unpin for NkLandscape
impl UnsafeUnpin for NkLandscape
impl UnwindSafe for NkLandscape
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<T> Pointable for T
impl<T> Pointable for T
§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read more§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.