source("ea_crossover.R") n_point_crossover <- function(p1, p2, mask_gen, iterations) { indivs <- c() for(i in 1:iterations) { children <- ea.crossover(p1, p2, mask_gen()) p1 <- children[[1]] p2 <- children[[2]] indivs <- append(indivs, c(indiv2int(p1), indiv2int(p2))) } return(indivs) } experiment <- function() { p1 <- rand.individual(10) p2 <- rand.individual(10) iterations <- 10000 tmp_indivs <- n_point_crossover(p1, p2, ea.n_point_mask(10, 1), iterations) df <- data.frame(i=1:iterations, individual=tmp_indivs) df["crossover"] <- "1 point" tmp_indivs <- n_point_crossover(p1, p2, ea.n_point_mask(10, 2), iterations) df <- rbind(df, data.frame(i=(iterations+1):(2*iterations) ,individual=tmp_indivs ,crossover="2 point")) tmp_indivs <- n_point_crossover(p1, p2, ea.uniform_mask(10), iterations) df <- rbind(df, data.frame(i=(2*iterations+1):(3*iterations) ,individual=tmp_indivs ,crossover="uniform")) return(df) }