13.3. Fitness Landscape¶
The function that maps from genotype to fitness is called a fitness landscape. In the landscape metaphor, each genotype corresponds to a location in an N
-dimensional space, and fitness corresponds to the “height” of the landscape at that location.
In biological terms, the fitness landscape represents information about how the genotype of an organism is related to its physical form and capabilities, called its phenotype, and how the phenotype interacts with its environment.
In the real world, fitness landscapes are complicated, but we don’t need to build a realistic model. To induce evolution, we need some relationship between genotype and fitness, but it turns out that it can be any relationship. To demonstrate this point, we’ll use a totally random fitness landscape.
Here is the definition for a class that represents a fitness landscape:
class FitnessLandscape:
def __init__(self, N):
self.N = N
self.one_values = np.random.random(N)
self.zero_values = np.random.random(N)
def fitness(self, loc):
fs = np.where(loc, self.one_values,
self.zero_values)
return fs.mean()
The genotype of an agent, which corresponds to its location in the fitness landscape, is represented by a NumPy array of zeros and ones called loc
. The fitness of a given genotype is the mean of N
fitness contributions, one for each element of loc
.
To compute the fitness of a genotype, FitnessLandscape
uses two arrays: one_values
, which contains the fitness contributions of having a 1 in each element of loc
, and zero_values
, which contains the fitness contributions of having a 0.
The fitness
method uses np.where
to select a value from one_values
where loc
has a 1, and a value from zero_values
where loc
has a 0.
As an example, suppose N=3
and
one_values = [0.1, 0.2, 0.3]
zero_values = [0.4, 0.7, 0.9]
In that case, the fitness of loc = [0, 1, 0]
would be the mean of [0.4, 0.2, 0.9]
, which is 0.5
.
- True
- Correct. In the book the author uses random fitness landscape.
- False
- Incorrect. Please refer to the section.
Q-1: To induce evolution there needs to be a relationship between genotype and fitness, and it can be any relationship.