34 lines
696 B
Odin
34 lines
696 B
Odin
package main
|
|
|
|
import "core:container/bit_array"
|
|
|
|
Chromosome :: ^bit_array.Bit_Array
|
|
Population :: [POPULATION_SIZE]Chromosome
|
|
|
|
GENERATIONS :: 100
|
|
POPULATION_SIZE :: 100
|
|
ELITISM_COUNT :: 0
|
|
SKEW :: 0
|
|
TOURNAMENT_SIZE :: 5
|
|
CROSSOVER_RATE :: 0.7
|
|
MUTATION_RATE :: 0.01
|
|
|
|
PARENT_SELECTION_POLICY :: random_selection
|
|
CROSSOVER_POLICY :: single_point_crossover
|
|
MUTATION_POLICY :: bit_flip_mutation
|
|
SURVIVOR_SELECTION_POLICY :: generational_replacement
|
|
|
|
RANDOM_SEED :: u64(42)
|
|
OUTPUT_FILE :: "output/data.csv"
|
|
|
|
Problem :: struct {
|
|
name: string,
|
|
chromosome_size: int,
|
|
fitness_proc: proc(_: Chromosome) -> f64,
|
|
maximize: bool,
|
|
}
|
|
|
|
Stats :: struct {
|
|
best, mean, worst, entropy: f64,
|
|
}
|