implement swap_mutation

This commit is contained in:
2026-01-31 12:03:35 +01:00
parent fcfb934d8c
commit b5efeb0642

View File

@@ -181,6 +181,17 @@ bit_flip_mutation :: proc(chrom: ^Chromosome, mutation_rate: f32 = 0.01) {
}
}
swap_mutation :: proc(chrom: ^Chromosome) {
idx1 := rand.int_max(NUMBER_OF_ITEMS)
idx2 := rand.int_max(NUMBER_OF_ITEMS)
bit1 := bit_array.get(chrom, idx1)
bit2 := bit_array.get(chrom, idx2)
bit_array.set(chrom, idx1, bit2)
bit_array.set(chrom, idx2, bit1)
}
main :: proc() {
items, ok := read_data(DATA_FILE)
if !ok {