Skip to main content

Crate dsmga2

Crate dsmga2 

Source
Expand description

DSMGA-II: Dependency Structure Matrix Genetic Algorithm II

This crate implements DSMGA-II with a two-edge graphical linkage model for solving discrete optimization problems, particularly binary optimization problems.

§Quick Start

use dsmga2::{Dsmga2, fitness::OneMax};

let fitness_fn = OneMax;
let mut ga = Dsmga2::new(100, &fitness_fn)
    .population_size(200)
    .max_generations(1000)
    .seed(42)
    .build();

let solution = ga.run();
println!("Best fitness: {}", ga.best_fitness());

§Iterator-based Usage

use dsmga2::{Dsmga2, fitness::OneMax};

let fitness_fn = OneMax;
let mut ga = Dsmga2::new(100, &fitness_fn).build();

for state in ga.take(100) {
    if state.generation % 10 == 0 {
        println!("Gen {}: fitness = {:.2}", state.generation, state.best_fitness);
    }
}

§With Callbacks

use dsmga2::{Dsmga2, fitness::OneMax};

let fitness_fn = OneMax;
let mut ga = Dsmga2::new(100, &fitness_fn).build();

ga.run_with(|state| {
    println!("Generation {}: {:.2}", state.generation, state.best_fitness);
});

Re-exports§

pub use checkpoint::Checkpoint;
pub use chromosome::Chromosome;
pub use fitness::FitnessFunction;

Modules§

checkpoint
Checkpoint functionality for saving and loading DSMGA2 state
chromosome
fitness
structures
utils

Structs§

Dsmga2
DSMGA2: Dependency Structure Matrix Genetic Algorithm II
Dsmga2Builder
Builder for configuring DSMGA2
State
State information about the DSMGA2 run