The hardware and bandwidth for this mirror is donated by METANET, the Webhosting and Full Service-Cloud Provider.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]metanet.ch.

Introduction to genetic.algo.optimizeR

true

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
#> [1] 0 1 2

Evaluation

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

# Evaluate fitness
fitness <- evaluate_fitness(population)
fitness
#> [1] 4 1 0

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
#> [1] 2 1

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
#> [1] 2 2

# Perform mutation
mutated_offspring <- mutation(offspring, mutation_rate = 0.1)
mutated_offspring
#> [1] 2 2

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
#> [1] 0 2 2
# 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.

These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.