Article Preview
Top1. Introduction
The mountains turn into ridges when viewed transversely,
And turn into peaks when viewed from sides.
They vary near and far, low and high,
We cannot recognize the real shape of Mountain Lushan,
Only because we are within the mountain itself.
An ancient Chinese poem by Shi Su (Song Dynasty)
If we are in a system, it is hard for us to see or understand how the system itself works. Since we live in a culture, how can we see the culture from an unbiased perspective? It would be worthwhile and interesting to look at the culture from an external point of view. The Cultural Algorithm (Johnson & Earle, 2000) was developed by Reynolds to do just that: assess a cultural system in terms of its performance relative to problems presented to it by its physical and social environment.
Cultural Algorithms (Reynolds, 1976; Johnson & Earle, 2000) can provide a flexible framework in which to study the emergence of organizational complexity in a multi-agent system (MAS). The Cultural Algorithm (CA) is a class of computational models derived from observing the cultural evolution process in nature. CA has three major components: a Population Space, a Belief Space, and a protocol that describes how knowledge is exchanged between the first two components. The Population Space can support any population-based computational model, such as Genetic Algorithms, Evolutionary Programming, etc. The basic framework is shown in Figure 1.
Figure 1. Cultural algorithm frameworks
A Cultural Algorithm is a dual inheritance system that characterizes evolution in human culture at both the macro-evolutionary level, which takes place within the Belief Space, and at the micro-evolutionary level, which occurs in the Population Space. Knowledge produced in the Population Space at the micro-evolutionary level is selectively accepted or passed to the Belief Space and used to adjust the knowledge structures there. This knowledge can then be used to influence the changes made by the population in the next generation (Jayyousi & Reynolds, 2013).
The basic pseudo code of Cultural Algorithm is shown in Figure 2 above where Pt represents the Population component at time t, and Bt for the Belief Space at time t. The algorithm begins by initializing both the Population and the Belief Space. Then it enters the evolution loop until the termination condition is satisfied.
Figure 2. Basic pseudo-code for cultural algorithm
At the end of each generation, individuals in the population space are first evaluated with a performance function, obj(). An acceptance function, accept() is then used to determine which individuals will be allowed to update the Belief Space. Experiences of those chosen elite individuals are then added to the contents of the Belief Space via function update(). Next, knowledge from the Belief Space is allowed to influence the selection of individuals for the next generation of the population through the influence() function. The two feedback paths of information, one through the accept() and influence() functions, and the other through individual experience and the obj() function create a system of dual inheritance of both the population and the Belief Spaces. The Cultural Algorithm repeats this process for each generation until the pre-specified termination condition is met. In this way, the population component and the Belief Space interact with, and support each other, in a manner analogous to the evolution of human culture (Johnson & Earle, 2000; Richerson & Boyd, 2005).