primordial-opt
A genetic algorithm library for Rust, providing composable building blocks for evolutionary optimization.
Features
- Chromosome: Binary representation with fitness caching
- Selection:
rank,tournament,roulette, andnsga2(multi-objective) - Crossover:
single_point - Mutation:
bit_flip,fill_random
All selection methods return iterators, enabling flexible composition with .take(n).
Installation
[]
= "0.1"
Quick Example
use ;
use SeedableRng;
let mut rng = seed_from_u64;
// Create and evaluate population
let mut population: =
.map
.collect;
for c in &mut population
// Select top 50 by rank
let parents: = rank.take.collect;
// Crossover
let = single_point;
// Mutate
bit_flip;
Multi-Objective Optimization
Use NSGA-II for Pareto-based selection:
// Set multi-objective fitness
chromosome.set_fitness;
// NSGA-II sorts by Pareto front, then crowding distance
let selected: = nsga2.take.collect;
Examples
cargo run --example rastrigin- Single-objective optimizationcargo run --example zdt1- Multi-objective optimization with NSGA-II
License
MIT OR Apache-2.0