knitr::opts_chunk$set( collapse = TRUE, comment = "#>" )
This vignette demonstrates how to use the genetic.algo.optimizeR
package to optimize the function ( f(x) = x^2 - 4x + 4 ) using a genetic algorithm.
Optimize the function ( f(x) = x^2 - 4x + 4 ) to find the value of ( x ) that minimizes the function.
We start with a population of three individuals: ( x_1 = 1 ), ( x_2 = 3 ), and ( x_3 = 0 ).
# devtools::install_github("danymukesha/genetic.algo.optimizeR", upgrade = c("never"),) library(genetic.algo.optimizeR)
# Initialize population population <- initialize_population(population_size = 3, min = 0, max = 3) population
We evaluate the fitness of each individual by calculating ( f(x) ) for each ( x ) value:
# Evaluate fitness fitness <- evaluate_fitness(population) fitness
We select individuals ( x_1 ) and ( x_2 ) as parents for crossover because they have higher fitness.
# Perform selection selected_parents <- selection(population, fitness, num_parents = 2) selected_parents
We perform crossover and mutation on the selected parents to generate offspring: ( x_1' = 1 ), ( x_2' = 3 ).
# Perform crossover offspring <- crossover(selected_parents, offspring_size = 2) offspring # Perform mutation mutated_offspring <- mutation(offspring, mutation_rate = 0.1) mutated_offspring
We replace individual ( x_3 ) with offspring ( x_1' ), maintaining the population size.
# Replace individuals in the population new_population <- replacement(population, mutated_offspring, num_to_replace = 1) new_population
# Termination # Repeat the above steps(from Evaluation) for multiple generations or until a termination condition is met.
This vignette demonstrates the usage of the genetic.algo.optimizeR
package to optimize the given function using a genetic algorithm. Users can follow similar steps to optimize other functions or customize the parameters as needed.
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.