Rewrite. Currently segfaults
This commit is contained in:
10
src/main.cpp
10
src/main.cpp
@@ -35,8 +35,8 @@ void mutate(Array<float> &arr_to_mutate) {
|
||||
|
||||
void crossover(const Array<Array<float>*> parents, const Array<Array<float> *> out_children) {
|
||||
for (int i = 0; i < len; i++) {
|
||||
(*out_children._data[0])[i] = i < len/2 ? (*parents._data[0])[i] : (*parents._data[1])[i];
|
||||
(*out_children._data[1])[i] = i < len/2 ? (*parents._data[1])[i] : (*parents._data[0])[i];
|
||||
(*out_children.data[0])[i] = i < len/2 ? (*parents.data[0])[i] : (*parents.data[1])[i];
|
||||
(*out_children.data[1])[i] = i < len/2 ? (*parents.data[1])[i] : (*parents.data[0])[i];
|
||||
}
|
||||
}
|
||||
|
||||
@@ -47,8 +47,8 @@ float fitness(const Array<float> &cell) {
|
||||
float sum = 0;
|
||||
float product = 1;
|
||||
for (int i = 0; i < cell.len; i++) {
|
||||
sum += cell._data[i];
|
||||
product *= cell._data[i];
|
||||
sum += cell.data[i];
|
||||
product *= cell.data[i];
|
||||
}
|
||||
return abs(sum - target_sum) + abs(product - target_product);
|
||||
}
|
||||
@@ -62,8 +62,6 @@ int main(int argc, char **argv) {
|
||||
.test_all = true,
|
||||
.test_chance = 0.0, // doesn't matter
|
||||
.enable_crossover = true,
|
||||
.enable_crossover_mutation = true,
|
||||
.crossover_mutation_chance = 0.6f,
|
||||
.crossover_parent_num = 2,
|
||||
.crossover_parent_stride = 1,
|
||||
.crossover_children_num = 2,
|
||||
|
||||
Reference in New Issue
Block a user