1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
//! 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
//!
//! ```rust
//! 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
//!
//! ```rust
//! 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
//!
//! ```rust
//! 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);
//! });
//! ```
// Public for testing, but hidden from docs
pub use ;
pub use Checkpoint;
pub use Chromosome;
pub use FitnessFunction;