#!/usr/bin/python3 """ Exponential ranking """ import numpy as np import matplotlib.pyplot as plt # Population size u = 20 ui = range(u) # Normalization constant: c = u - (1 - (1 / np.exp(u))) / (1 - np.exp(-1)) fitnesses = [] for i in range(u): e = np.exp(1) P_i = (1 - (e**-i)) / c print(f"Fitness of {i}, P_i is {P_i}") fitnesses.append(P_i) print(sum(fitnesses)) plt.plot(ui, fitnesses) plt.show()