pub enum GPSelection {
    Deterministic,
    Drift(f64),
    Hybrid(f64),
    Probabilistic,
    Resample,
}
Expand description

The mechanism by which individuals are selected for inclusion in the population.

Variants§

§

Deterministic

Deterministic implies a strict survival-of-the-fittest selection mechanism, in which the best individuals are always retained. An individual can only be removed from a population if a better-scoring individual arises to take its place.

§

Drift(f64)

Drift(alpha) implies a noisy survival-of-the-fittest selection mechanism, in which individuals are selected probabilistically without replacement from the combination of the population and offspring to form a new population. Offspring fitness is simply determined by the task, while the fitness of members of the pre-existing population is computed as a linear combination of their prior fitness and fitness on the current task, given as fitness_{:t} = alpha * fitness_{:t-1} + (1-alpha) * fitness_t. An individual can be removed from a population by lower-scoring individuals, though this is relatively unlikely.

§

Hybrid(f64)

Hybrid(deterministic_proportion) implies a selection mechanism in which some portion of the population is selected deterministically such that the best individuals are always retained. The remainder of the population is sampled without replacement from the remaining individuals. An individual can be removed from a population by lower-scoring individuals, though this is relatively unlikely, and impossible if the individual is considered one of the “best” in the population. The number of “best” individuals is floor(population.len() * deterministic_proportion). The deterministic_proportion should be between 0 and 1.

§

Probabilistic

Probabilistic implies a noisy survival-of-the-fittest selection mechanism, in which a population is selected probabilistically from a set of possible populations in proportion to its overall fitness. An individual can be removed from a population even by lower-scoring individuals, though this is relatively unlikely.

§

Resample

Resample implies that individuals are selected by sampling from the offspring with replacement, as in a particle filter.

Trait Implementations§

source§

impl<'de> Deserialize<'de> for GPSelection

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Serialize for GPSelection

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,