Evolutionary Computing Framework

CodeGuru content and product recommendations are editorially independent. We may make money when you click on links to our partners. Learn More.

What on Earth Is That?

Evolutionary computing is the application of evolutionary theory within the computing environment. It uses the principles of Darwinian Evolutionary Theory such as natural selection, reproduction, and mutation to breed progressively better solutions to a given problem.

A Sample Evolutionary Computing Framework

To understand how evolutionary principles may be applied to a computing problem, a framework is needed to define a set of roles:

  1. The environment: The environment defines the problem that the evolutionary computing application is trying to solve. It is responsible for calculating the fitness of an individual and assigning the problem space meaning to the members of the gene set and for setting the constraints such as the baseline rate of gene mutation. Additional real-world constraints such as the control of the population size to optimise the use of the computer hardware are also supplied by the environment.
  2. The population: The population represents a set of potential solutions to the problem. It can be created from a randomly generated, or seeded by a predefined set, of individuals
  3. The individual (aka The genome): The genome defines the number of genes a member of a population has and their explicit locations. These locations have an explicit meaning in relation to the problem being tested by the environment and are not interchangeable

    When two (or more) individuals reproduce, the new gene set is populated by genes selected from one of the parent individuals at random. There is also the chance (controlled by the environment) that the genes themselves may be subject to mutation at this stage.

  4. The gene: The gene holds the current value for an individual variable that is used to compute the gene set’s fitness to solve the environment’s problem

What Is It Used For?

Evolutionary computing is most useful when it is not immediately obvious how to solve a problem, but when it is possible to test the relative correctness of a solution.

More by Author

Get the Free Newsletter!

Subscribe to Developer Insider for top news, trends & analysis

Must Read