Cultural algorithm


Cultural algorithms are a branch of evolutionary computation where there is a knowledge component that is called the belief space in addition to the population component. In this sense, cultural algorithms can be seen as an extension to a conventional genetic algorithm. Cultural algorithms were introduced by Reynolds.

Belief space

The belief space of a cultural algorithm is divided into distinct categories. These categories represent different domains of knowledge that the population has of the search space.
The belief space is updated after each iteration by the best individuals of the population. The best individuals can be selected using a fitness function that assesses the performance of each individual in population much like in genetic algorithms.

List of belief space categories

The population component of the cultural algorithm is approximately the same as that of the genetic algorithm.

Communication protocol

Cultural algorithms require an between the population and belief space. The best individuals of the population can update the belief space via the update function. Also, the knowledge categories of the belief space can affect the population component via the influence function. The influence function can affect population by altering the genome or the actions of the individuals.

Pseudocode for cultural algorithms

  1. Initialize population space
  2. Initialize belief space
  3. Repeat until termination condition is met
  4. # Perform actions of the individuals in population space
  5. # Evaluate each individual by using the fitness function
  6. # Select the parents to reproduce a new generation of offspring
  7. # Let the belief space alter the genome of the offspring by using the influence function
  8. # Update the belief space by using the accept function

    Applications