Introduction to genetic.algo.optimizeR"

knitr::opts_chunk$set(
    collapse = TRUE,
    comment = "#>"
)

Overview

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.

Aim

Optimize the function ( f(x) = x^2 - 4x + 4 ) to find the value of ( x ) that minimizes the function.

Method

Initial Population

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

Evaluation

We evaluate the fitness of each individual by calculating ( f(x) ) for each ( x ) value:

# Evaluate fitness
fitness <- evaluate_fitness(population)
fitness

Selection

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

Crossover and Mutation

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

Replacement

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.

Warp-Up

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.



Try the genetic.algo.optimizeR package in your browser

Any scripts or data that you put into this service are public.

genetic.algo.optimizeR documentation built on Oct. 10, 2024, 5:07 p.m.