write the simple GA using C++. Your problem should use the basic simple GA to evolve a string of all ones. Use the STL bitset to hold the bits of a chromosome. You are to have a population size of 50 chromosomes and each chromosome should be 20 bits long. Your crossover operator should be one point crossover with a probability of pcross(.8) and your mutation operation should randomly flip each bit with a probability of pmut(.o1). Use a roulette proportional selection algorithm. Have the GA stop when the optimal fitness is 20(size of the chromosome) or when 1000 iterations have been completed. New individuals are created using a loop randomly filling each bit with a 0 or 1.
Your program when it stops should print out the optimal chromosome, the iteration it was discovered and the population that it appeared within. Run this problem 10 times using different srand(val) val’s. Change the chromosome size to 40 and do the same. Change the size to 60, 80, 100 and do the same. Write a report explaining what you observe as well as a run output for each chromosome size. Also within the report include a graph of the average fitness for the population from generation 0 to the generation that hit 20.