https://medium.com/@hadiyolworld007/unlocking-the-secrets-of-genetic-algorithms-a-beginners-guide-80b0bcef05e2