Genetic Algorithms (GA)

class pypop7.optimizers.ga.ga.GA(problem, options)[source]

Genetic Algorithms (GA).

This is the abstract class for all GA classes. Please use any of its instantiated subclasses to optimize the black-box problem at hand.

Note

GA are one of three earliest versions of evolutionary algorithms along with evolutionary programming (EP) and evolution strategies (ES). GA’ original history dated back to Holland’s JACM paper in 1962 called outline for a logical theory of adaptive systems. John H. Holland, “GA’s father”, was the 2003 recipient of IEEE Evolutionary Computation Pioneer Award. Note that both Hans Bremermann (professor emeritus at University of California at Berkeley) and Woody Bledsoe (chairman in IJCAI-1977 / president-elect in AAAI-1983) did independent works closest to the modern notion of GA, as pointed out by [Goldberg, 1989].

“Just to give you a flavor of these problems: GA have been used at the General Electric Company for automating parts of aircraft design, Los Alamos National Lab for analyzing satellite images, the John Deere company for automating assembly line scheduling, and Texas Instruments for computer chip design. GA were used for generating realistic computer-animated horses in the 2003 movie The Lord of the Rings: The Return of the King, and realistic computer-animated stunt doubles for actors in the movie Troy. A number of pharmaceutical companies are using GA to aid in the discovery of new drugs. GA have been used by several financial organizations for various tasks: detecting fraudulent trades (London Stock Exchange), analysis of credit card data (Capital One), and forecasting financial markets and portfolio optimization (First Quadrant). In the 1990s, collections of artwork created by an interactive GA were exhibited at several museums, including the Georges Pompidou Center in Paris. These examples are just a small sampling of ways in which GA are being used.”[Mitchell, 2009, 《Complexity: A Guided Tour》 –winner of the 2010 Phi Beta Kappa Book Award in Science]

For some interesting applications of GA on diverse areas, please refer to [Lyu et al., 2024, Science], [Truong-Quoc et al., 2024, Nature Materials], [Castanha et al., 2024, PNAS], [Lucas et al., 2023, Nature Photonics], [Villard et al., 2023, JCTC], [Kanal&Hutchison, 2017], [Groenendaal et al., 2015, PLoS Computational Biology], to name a few.

Parameters:
  • problem (dict) –

    problem arguments with the following common settings (keys):
    • ’fitness_function’ - objective function to be minimized (func),

    • ’ndim_problem’ - number of dimensionality (int),

    • ’upper_boundary’ - upper boundary of search range (array_like),

    • ’lower_boundary’ - lower boundary of search range (array_like).

  • options (dict) –

    optimizer options with the following common settings (keys):
    • ’max_function_evaluations’ - maximum of function evaluations (int, default: np.Inf),

    • ’max_runtime’ - maximal runtime to be allowed (float, default: np.Inf),

    • ’seed_rng’ - seed for random number generation needed to be explicitly set (int);

    and with the following particular setting (key):
    • ’n_individuals’ - population size (int, default: 100).

n_individuals

population size.

Type:

int

References

Whitley, D., 2019. Next generation genetic algorithms: A user’s guide and tutorial. In Handbook of Metaheuristics (pp. 245-274). Springer, Cham.

De Jong, K.A., 2006. Evolutionary computation: A unified approach. MIT Press.

Mitchell, M., 1998. An introduction to genetic algorithms. MIT Press.

Levine, D., 1997. Commentary—Genetic algorithms: A practitioner’s view. INFORMS Journal on Computing, 9(3), pp.256-259.

Goldberg, D.E., 1994. Genetic and evolutionary algorithms come of age. Communications of the ACM, 37(3), pp.113-120.

De Jong, K.A., 1993. Are genetic algorithms function optimizer?. Foundations of Genetic Algorithms, pp.5-17.

Forrest, S., 1993. Genetic algorithms: Principles of natural selection applied to computation. Science, 261(5123), pp.872-878.

Mitchell, M., Holland, J. and Forrest, S., 1993. When will a genetic algorithm outperform hill climbing. Advances in Neural Information Processing Systems (pp. 51-58).

Holland, J.H., 1992. Adaptation in natural and artificial systems: An introductory analysis with applications to biology, control, and artificial intelligence. MIT press.

Holland, J.H., 1992. Genetic algorithms. Scientific American, 267(1), pp.66-73.

Goldberg, D.E., 1989. Genetic algorithms in search, optimization and machine learning. Reading: Addison-Wesley.

Goldberg, D.E. and Holland, J.H., 1988. Genetic algorithms and machine learning. Machine Learning, 3(2), pp.95-99.

Holland, J.H., 1973. Genetic algorithms and the optimal allocation of trials. SIAM Journal on Computing, 2(2), pp.88-105.

Holland, J.H., 1962. Outline for a logical theory of adaptive systems. Journal of the ACM, 9(3), pp.297-314.