Improved Compact Genetic Algorithms with Efficient Caching
Prasanta Dutta, Anirban Mukhopadhyay
TL;DR
This work tackles the high cost of fitness evaluations in compact genetic algorithms (cGAs) by introducing a fitness caching mechanism. A hash-based cache stores (chromosome, fitness) pairs and uses FIFO or LRU replacement to bound overhead, preserving the original algorithms’ accuracy and convergence. The approach extends to elitism-based cGAs (pe-cGA and ne-cGA), achieving substantial reductions in evaluations with asymptotically constant average cache-time and manageable space complexity. Experimental results on benchmark problems demonstrate meaningful speedups across population sizes and cache capacities, highlighting practical impact for time- and resource-intensive fitness computations.
Abstract
Compact Genetic Algorithms (cGAs) are condensed variants of classical Genetic Algorithms (GAs) that use a probability vector representation of the population instead of the complete population. cGAs have been shown to significantly reduce the number of function evaluations required while producing outcomes similar to those of classical GAs. However, cGAs have a tendency to repeatedly generate the same chromosomes as they approach convergence, resulting in unnecessary evaluations of identical chromosomes. This article introduces the concept of caching in cGAs as a means of avoiding redundant evaluations of the same chromosomes. Our proposed approach operates equivalently to cGAs, but enhances the algorithm's time efficiency by reducing the number of function evaluations. We also present a data structure for efficient cache maintenance to ensure low overhead. The proposed caching approach has an asymptotically constant time complexity on average. The proposed method further generalizes the caching mechanism with higher selection pressure for elitism-based cGAs. We conduct a rigorous analysis based on experiments on benchmark optimization problems using two well-known cache replacement strategies. The results demonstrate that caching significantly reduces the number of function evaluations required while maintaining the same level of performance accuracy.
