# 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.