Struct evco::gp::tree::TreeGen
[−]
[src]
pub struct TreeGen<'a, R> where
R: 'a + Rng, { /* fields omitted */ }
Configures depth and properties of GP trees.
Methods
impl<'a, R> TreeGen<'a, R> where
R: 'a + Rng,
[src]
R: 'a + Rng,
fn perfect(rng: &mut R, min_depth: usize, max_depth: usize) -> TreeGen<R>
Generate perfect trees. All leaves are at the same depth in the range [min_depth, max_depth].
This is the equivalent of DEAP's genFull
.
fn full(rng: &mut R, min_depth: usize, max_depth: usize) -> TreeGen<R>
Generate full trees with leaves at varying depths. Leaf depths are linearly distributed between min_depth and a chosen depth in the range.
This is NOT the same as DEAP's genFull
. See TreeGen::perfect
.
fn full_ranged(rng: &mut R, min_depth: usize, max_depth: usize) -> TreeGen<R>
Generate full trees with leaves at varying depths. Leaf depths are linearly distributed between min_depth and a chosen depth in the range.
This is the equivalent of DEAP's genGrow
.
fn half_and_half(rng: &mut R, min_depth: usize, max_depth: usize) -> TreeGen<R>
Randomly choose between TreeGen::perfect
and TreeGen::full_ranged
.
This is the equivalent of DEAP's genHalfAndHalf
.
fn have_reached_a_leaf(&mut self, current_depth: usize) -> bool
Chooses whether to generate a Leaf node. Used by Tree::child
.
Trait Implementations
impl<'a, R: PartialEq> PartialEq for TreeGen<'a, R> where
R: 'a + Rng,
[src]
R: 'a + Rng,
fn eq(&self, __arg_0: &TreeGen<'a, R>) -> bool
This method tests for self
and other
values to be equal, and is used by ==
. Read more
fn ne(&self, __arg_0: &TreeGen<'a, R>) -> bool
This method tests for !=
.
impl<'a, R: Eq> Eq for TreeGen<'a, R> where
R: 'a + Rng,
[src]
R: 'a + Rng,
impl<'a, R: Debug> Debug for TreeGen<'a, R> where
R: 'a + Rng,
[src]
R: 'a + Rng,
impl<'a, R> Rng for TreeGen<'a, R> where
R: 'a + Rng,
[src]
R: 'a + Rng,
fn next_u32(&mut self) -> u32
Return the next random u32. Read more
fn next_u64(&mut self) -> u64
Return the next random u64. Read more
fn fill_bytes(&mut self, dest: &mut [u8])
Fill dest
with random data. Read more
fn next_f32(&mut self) -> f32
Return the next random f32 selected from the half-open interval [0, 1)
. Read more
fn next_f64(&mut self) -> f64
Return the next random f64 selected from the half-open interval [0, 1)
. Read more
fn gen<T>(&mut self) -> T where
T: Rand,
T: Rand,
Return a random value of a Rand
type. Read more
fn gen_iter<T>(&'a mut self) -> Generator<'a, T, Self> where
T: Rand,
T: Rand,
Return an iterator that will yield an infinite number of randomly generated items. Read more
fn gen_range<T>(&mut self, low: T, high: T) -> T where
T: SampleRange + PartialOrd<T>,
T: SampleRange + PartialOrd<T>,
Generate a random value in the range [low
, high
). Read more
fn gen_weighted_bool(&mut self, n: u32) -> bool
Return a bool with a 1 in n chance of true Read more
fn gen_ascii_chars(&'a mut self) -> AsciiGenerator<'a, Self>
Return an iterator of random characters from the set A-Z,a-z,0-9. Read more
fn choose<T>(&mut self, values: &'a [T]) -> Option<&'a T>
Return a random element from values
. Read more
fn choose_mut<T>(&mut self, values: &'a mut [T]) -> Option<&'a mut T>
Return a mutable pointer to a random element from values
. Read more
fn shuffle<T>(&mut self, values: &mut [T])
Shuffle a mutable slice in place. Read more