Cultural algorithm

Cultural algorithms (CA) 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 (see references).

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.

List of belief space categories

 * Normative knowledge A collection of desirable value ranges for the individuals in the population component
 * Domain specific knowledge Information about the domain of the problem CA is applied to.
 * Situational knowledge
 * Temporal knowledge Information about important events in search space
 * Spatial knowledge Information about the topography of the search space

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

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

Pseudo-code for cultural algorithms

 * 1) Initialize population space (choose initial population)
 * 2) Initialize belief space (eg. set domain specific knowledge and normative value-ranges)
 * 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 (this is done by letting the best individuals to affect the belief space)

Applications

 * Various optimization problems