Table of Contents
Fetching ...

Optimizing Genetic Algorithms Using the Binomial Distribution

Vincent A. Cicirello

TL;DR

This work targets the slowdown caused by randomness in genetic algorithms by showing that bit-flip mutation, uniform crossover, and parent-pair selection are binomial processes that can be accelerated via binomial variates $B(n,p)$ generated in constant average time using the BTPE algorithm. The authors couple this with efficient sampling and bitmask techniques to replace per-bit trials with compact binomial decisions, applying the approach to mutation, crossover, and generation-level decisions within GA loops, and integrating the methods into the Chips-n-Salsa library. The experimental results demonstrate order-of-magnitude speedups across mutation, crossover, and whole-GA runs, while preserving solution quality on OneMax problems. The method offers practical impact for large-scale and time-sensitive EAs and extends naturally to permutation-based operators beyond the current GA operators.

Abstract

Evolutionary algorithms rely very heavily on randomized behavior. Execution speed, therefore, depends strongly on how we implement randomness, such as our choice of pseudorandom number generator, or the algorithms used to map pseudorandom values to specific intervals or distributions. In this paper, we observe that the standard bit-flip mutation of a genetic algorithm (GA), uniform crossover, and the GA control loop that determines which pairs of parents to cross are all in essence binomial experiments. We then show how to optimize each of these by utilizing a binomial distribution and sampling algorithms to dramatically speed the runtime of a GA relative to the common implementation. We implement our approach in the open-source Java library Chips-n-Salsa. Our experiments validate that the approach is orders of magnitude faster than the common GA implementation, yet produces solutions that are statistically equivalent in solution quality.

Optimizing Genetic Algorithms Using the Binomial Distribution

TL;DR

This work targets the slowdown caused by randomness in genetic algorithms by showing that bit-flip mutation, uniform crossover, and parent-pair selection are binomial processes that can be accelerated via binomial variates generated in constant average time using the BTPE algorithm. The authors couple this with efficient sampling and bitmask techniques to replace per-bit trials with compact binomial decisions, applying the approach to mutation, crossover, and generation-level decisions within GA loops, and integrating the methods into the Chips-n-Salsa library. The experimental results demonstrate order-of-magnitude speedups across mutation, crossover, and whole-GA runs, while preserving solution quality on OneMax problems. The method offers practical impact for large-scale and time-sensitive EAs and extends naturally to permutation-based operators beyond the current GA operators.

Abstract

Evolutionary algorithms rely very heavily on randomized behavior. Execution speed, therefore, depends strongly on how we implement randomness, such as our choice of pseudorandom number generator, or the algorithms used to map pseudorandom values to specific intervals or distributions. In this paper, we observe that the standard bit-flip mutation of a genetic algorithm (GA), uniform crossover, and the GA control loop that determines which pairs of parents to cross are all in essence binomial experiments. We then show how to optimize each of these by utilizing a binomial distribution and sampling algorithms to dramatically speed the runtime of a GA relative to the common implementation. We implement our approach in the open-source Java library Chips-n-Salsa. Our experiments validate that the approach is orders of magnitude faster than the common GA implementation, yet produces solutions that are statistically equivalent in solution quality.

Paper Structure

This paper contains 14 sections, 3 figures, 8 tables, 6 algorithms.

Figures (3)

  • Figure 1: CPU time for $10^5$ mutations vs mutation rate $p_{m}$ for lengths: (a) 16 bits, (b) 64 bits, (c) 256 bits, (d) 1024 bits.
  • Figure 2: CPU time for $10^5$ uniform crosses vs uniform rate $p_{u}$ for lengths: (a) 16 bits, (b) 64 bits, (c) 256 bits, (d) 1024 bits.
  • Figure 3: CPU time for 1024-bit OneMax using 1000 generations with population size 100 vs crossover rate $p_{c}$ for crossover operators: (a) uniform ($p_{u}=0.33$), (b) uniform ($p_{u}=0.49$), (c) single-point, (d) two-point.