This vignette provides a step-by-step explanation of a genetic algorithm optimization process using the BioGA package.
# Load the BioGA package
library(BioGA)
# Example genomic data
genomic_data <- matrix(rnorm(50), nrow = 10, ncol = 10)
# Initialize population
population <- initialize_population_cpp(genomic_data, population_size = 5)
# Initialize fitness history
fitness_history <- list()
# Initialize time progress
start_time <- Sys.time()
# Run genetic algorithm optimization
generation <- 0
while (TRUE) {
generation <- generation + 1
# Evaluate fitness
fitness <- evaluate_fitness_cpp(genomic_data, population)
fitness_history[[generation]] <- fitness
# Check termination condition
if (generation==6) {
break
}
# Selection
selected_parents <- selection_cpp(population, fitness, num_parents = 2)
# Crossover and Mutation
offspring <- crossover_cpp(selected_parents, offspring_size = 2)
# (no mutation in this example)
mutated_offspring <- mutation_cpp(offspring, mutation_rate = 0)
# Replacement
population <- replacement_cpp(population, mutated_offspring,
num_to_replace = 1)
# Calculate time progress
elapsed_time <- difftime(Sys.time(), start_time, units = "secs")
# Print time progress
cat("\rGeneration:", generation, "- Elapsed Time:",
format(elapsed_time, units = "secs"), " ")
}
#> Generation: 1 - Elapsed Time: 0.02651072 secs Generation: 2 - Elapsed Time: 0.02674365 secs Generation: 3 - Elapsed Time: 0.02689719 secs Generation: 4 - Elapsed Time: 0.02702856 secs Generation: 5 - Elapsed Time: 0.02717113 secs