Use the notebook Project 2 - Sonic Tide Pools (Links to an external site.) to complete the project. Copy this
notebook to your own Google Drive account and edit it to complete the assignment. I strongly recommend
working within the given notebook, rather than copy and pasting code to a new notebook.
Part 1: Customize the genetic algorithm to use the mai.synths.feedback_fm() to make sound.
Define a custom random_individual() function to generate a random genotype.
Define a custom to_phenotype() function to turn a genotype into sound.
Part 2: Carry out the three searches below and answer the highlighted questions. We are expecting 2-4
sentences for each question. You will lose credit if your answers are too brief.
Search 1: Preference Search
Start a new search and evolve at least four generations. Set the fitness scores to find sounds that you find
interesting or intriguing. Use a mutation prob of 0.05.
Question 1: What kinds of sounds did you tend to score high and what kinds of sounds did you tend to score
low? Did these musical traits pass on from generation to generation?
Search 2: Sparse Search
Start a new search and evolve at least four generations. This time set your fitness scores to be sparse,
meaning only two or three individuals are given high fitness scores (1.0 or close to it) and the rest are given
zeros. Keep the mutation probability at 0.05.
Question 2: How does the evolution of a sparse search differ from the evolution of a non-sparse search?
Explain why.
Search 3: Mutation Search
Start a new search and evolve at least four generations. This time give only one individual a high fitness score
(1.0) and set the rest to zero. BUT, increase the mutation probability to 1.0.
Question 3: How does increasing the mutation probability affect the evolution of the search? Explain why.
Additional Questions
Question 4: Describe how you would control a genetic algorithm search in order to maximize sonic variety. How
would you decide the fitness scores and why? Would you use a large population or small population?
Question 5: Describe how you would control a genetic algorithm search in order to find a given target sound.
How would you decide the fitness scores and why? Would you use a large population or small population?