Skip to content

Commit df11901

Browse files
committed
do another round ot AGENTS.md updates
1 parent 16c10bf commit df11901

29 files changed

Lines changed: 614 additions & 61 deletions

AGENTS.md

Lines changed: 481 additions & 23 deletions
Large diffs are not rendered by default.

examples/hill_climb_milp.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,6 @@ fn main() {
5252
MutationType::StepScaled(vec![0.1, 0.01, 0.001, 0.0001, 0.00001, 0.000001]),
5353
MutationType::StepScaled(vec![0.1, 0.01, 0.001, 0.0001, 0.00001, 0.000001]),
5454
])
55-
.with_genes_hashing(false) // not useful for HillClimb
5655
.build()
5756
.unwrap();
5857

examples/hill_climb_nqueens.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,6 @@ fn main() {
3737

3838
let genotype = UniqueGenotype::builder()
3939
.with_allele_list((0..BOARD_SIZE).collect())
40-
.with_genes_hashing(false) // not useful for HillClimb
4140
.build()
4241
.unwrap();
4342

examples/hill_climb_range.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@ fn main() {
3030
.with_mutation_type(MutationType::StepScaled(vec![
3131
0.1, 0.01, 0.001, 0.0001, 0.00001,
3232
]))
33-
.with_genes_hashing(false) // not useful for HillClimb
3433
.build()
3534
.unwrap();
3635

examples/hill_climb_recess.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -372,7 +372,6 @@ fn main() {
372372
.flat_map(|(index, adult)| vec![index; adult.number_of_assigns])
373373
.collect(),
374374
)
375-
.with_genes_hashing(false) // not useful for HillClimb
376375
.build()
377376
.unwrap();
378377

examples/hill_climb_scrabble.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -266,7 +266,6 @@ fn main() {
266266

267267
let genotype = MultiListGenotype::builder()
268268
.with_allele_lists(allele_lists)
269-
.with_genes_hashing(false) // not useful for HillClimb
270269
.build()
271270
.unwrap();
272271

examples/hill_climb_table_seating.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,6 @@ fn main() {
8181

8282
let genotype = MultiUniqueGenotype::builder()
8383
.with_allele_lists(allele_lists)
84-
.with_genes_hashing(false) // not useful for HillClimb
8584
.build()
8685
.unwrap();
8786

src/fitness.rs

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,21 @@ use thread_local::ThreadLocal;
2525
/// detection. For float-based fitness, scale manually: `(score / precision) as FitnessValue`.
2626
pub type FitnessValue = isize;
2727

28+
/// Convert a float score to [`FitnessValue`] with the given precision.
29+
///
30+
/// Shorthand for `(score / precision) as FitnessValue`.
31+
/// Accepts both f32 and f64 (and any type implementing `Into<f64>`).
32+
///
33+
/// # Example
34+
/// ```
35+
/// use genetic_algorithm::fitness::fitness_value;
36+
/// assert_eq!(fitness_value(3.14159_f32, 0.001_f32), 3141);
37+
/// assert_eq!(fitness_value(3.14159_f64, 0.001_f64), 3141);
38+
/// ```
39+
pub fn fitness_value(score: impl Into<f64>, precision: impl Into<f64>) -> FitnessValue {
40+
(score.into() / precision.into()) as FitnessValue
41+
}
42+
2843
/// Whether to maximize or minimize fitness scores. Default is Maximize.
2944
#[derive(Copy, Clone, Debug)]
3045
pub enum FitnessOrdering {

src/fitness/prelude.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22
pub use crate::chromosome::{Chromosome, GenesHash};
33
#[doc(no_inline)]
44
pub use crate::fitness::{
5-
Fitness, FitnessChromosome, FitnessGenes, FitnessGenotype, FitnessOrdering, FitnessPopulation,
6-
FitnessValue,
5+
fitness_value, Fitness, FitnessChromosome, FitnessGenes, FitnessGenotype, FitnessOrdering,
6+
FitnessPopulation, FitnessValue,
77
};
88
#[doc(no_inline)]
99
pub use crate::genotype::{

src/genotype.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ pub trait Genotype:
6262

6363
fn set_seed_genes_list(&mut self, seed_genes_list: Vec<Genes<Self::Allele>>);
6464
fn seed_genes_list(&self) -> &Vec<Genes<Self::Allele>>;
65+
fn set_genes_hashing(&mut self, genes_hashing: bool);
6566
fn max_scale_index(&self) -> Option<usize> {
6667
None
6768
}

0 commit comments

Comments
 (0)