úÎÓNoneChromosome interfaceCrossover functionMutation functionEFitness function. fitness x > fitness y means that x is better than yPure GA implementation.Non-pure GA implementation.^Generate zero generation. Use this function only if you are going to implement your own runGA.ŒGenerate next generation (in parallel) using mutation and crossover. Use this function only if you are going to implement your own runGA.Random number generatorPopulation sizeMutation probability [0, 1]<Random chromosome generator (hint: use currying or closures)IStopping criteria, 1st arg - best chromosome, 2nd arg - generation numberBest chromosomePopulation sizeMutation probability [0, 1]<Random chromosome generator (hint: use currying or closures)IStopping criteria, 1st arg - best chromosome, 2nd arg - generation numberBest chromosome 0Random chromosome generator (hint: use closures)Population sizeZero generationCurrent generationPopulation sizeMutation probability1Next generation ordered by fitness (best - first)         simpl_99XbjyGgfZKK3dh2Qm7cmRAI.GeneticAlgorithm.Simple Chromosome crossovermutationfitnessrunGArunGAIOzeroGenerationnextGenerationrunGA'runGAIO'nextGeneration'mutate normalizeroulette fromList'