Crate rusty_genes

Crate rusty_genes 

Source

Modules§

one_max
This module provides an implementation of the OneMax problem for use with the evolutionary algorithm framework. The OneMax problem is a simple problem often used in the field of genetic algorithms to test new techniques. The problem consists of maximizing the number of ‘1’ bits in a binary string.

Structs§

AdaptiveGeneticAlgorithm
An adaptive genetic algorithm for evolving populations towards better fitness values.
AdaptiveGeneticAlgorithmParameters
Represents the parameters used in an adaptive genetic algorithm.
BoltzmannSelection
Represents the Boltzmann selection algorithm used in genetic algorithms.
ElitistSelection
Represents the elitist selection algorithm used in genetic algorithms.
Evolution
The Evolution struct is the primary user-facing interface for running an evolutionary algorithm.
GeneticAlgorithm
A genetic algorithm for evolving populations towards better fitness values.
GeneticAlgorithmParameters
Represents the parameters used in a genetic algorithm.
IndividualWrapper
Wrapper type for objects implementing the Individual trait, allowing them to be placed on a heap.
LinearSelection
Represents the linear selection algorithm used in genetic algorithms.
PopulatedStats
The PopulatedStats struct represents a statistical summary of a non-empty set of numerical samples. This structure is similar to the Stats struct, but it contains additional constraints ensuring that the set of samples it represents is not empty.
Population
Represents a population of individuals in an evolutionary algorithm.
RankSelection
Represents the rank selection algorithm used in genetic algorithms.
ReproductionParameters
Represents the reproduction parameters of an evolutionary model.
RouletteWheelSelection
Represents the roulette-wheel selection algorithm used in genetic algorithms.
Stats
The Stats struct represents a collection of statistical data derived from a set of unsorted numerical samples.
TournamentSelection
Represents the tournament selection algorithm.

Enums§

CrossoverStrategy
Defines various crossover strategies for combining genetic information of two individuals.
MutationStrategy
Represents various mutation strategies for modifying an individual’s genetic material.
SelectionStrategy
Represents various selection strategies for selecting an individual from the population in an evolutionary algorithm.

Traits§

EvolutionAlgorithm
Represents the core mechanism of an evolutionary algorithm.
EvolutionModel
The EvolutionModel trait represents a template for implementing an evolutionary model for a specific optimization problem.
EvolutionParameters
Defines the minimum set of parameters required for an evolutionary algorithm.
Individual
Represents an individual in a population of an evolutionary algorithm.
RandomIndividual
Represents an individual in a population of an evolutionary algorithm that is generated randomly.
SelectionMechanism
Defines the mechanism for selecting an individual from the population in an evolutionary algorithm.

Functions§

bounded_random_range
Returns a random range as a subset of 0..n, with the additional constraint that the length of the range should be between min_len and max_len (inclusive). The range is guaranteed to be uniformly distributed.
common_neighbors
Identifies and returns the common neighboring genes between two genomes.
common_partitions
Identifies and returns the common partitions between two genomes.
compare_fitness
Compares two individuals by their fitness scores.
cycle_crossover
Performs a Cycle Crossover (CX) operation between two parent genomes.
duplicate_mutation
Selects a gene from a random position in the genome and copies it to another position, replacing the gene that was previously there.
edge_recombination_crossover
Performs an Edge Recombination Crossover (ERX) operation between two parent genomes.
generalized_partition_2_crossover
Performs a Generalized Partition Crossover 2 (GPX2) operation between two parent genomes.
insertion_mutation
Removes a gene from a random position in the genome and insert it in another position. This results in the shifting of the rest of the genes between two positions.
interpolate_f64
Calculates the linear interpolation value between two f64 values based on a given ratio.
interpolate_usize
Calculates the linear interpolation value between two usize values based on a given ratio.
inversion_mutation
Reverses the order of the elements within a randomly selected subset of the given genetic material.
order_crossover
Performs an Order Crossover (OX) operation between two parent genomes.
partially_mapped_crossover
Performs a Partially Mapped Crossover (PMX) operation between two parent genomes.
random_pair
Returns a distinct random pair of numbers within the range [0, n).
random_range
Returns a random range as a subset of 0..n. The range is guaranteed to be non-empty and uniformly distributed.
scramble_mutation
Shuffles the elements within a randomly selected subset of the given genetic material.
sequential_constructive_crossover
Performs a Sequential Constructive Crossover (SCX) operation between two parent genomes.
single_point_crossover
Performs a Single-Point Crossover (SPX) operation between two parent genomes.
swap_mutation
Performs a swap mutation on the given genome.