ITCS 6111-8111 Evolutionary Computation Spring 2008 Jing Xiao Homework # 1: due 2/11/08 at the class Implement the evolution algorithm for the 8-queen's problem as explained in Lecture 2. You can build your program on top of the sample code http://www.cs.uncc.edu/~xiao/itcs6111-8111/prog.c. Or you can write your own program on a language of your choice. Next do the following. In each category, run the program 20 times and record the number of generations when a solution is found and how many times a solution is not found. (1) Run the program with the parameter values of Page 23 of Lecture 2. (2) Vary the mutation and crossover probabilities: - decrease crossover to 80% - increase mutation to 90% - decrease crossover to 80% and increase mutation to 90% Note that each time after parents are selected, try crossover first based on its probability to generate offsprings, and then try mutation on the best parent based on its probability to generate an offspring. You are encouraged to change those probabilities to other numbers. Keep track of the mutation and crossover probabilities each time you make a change. (3) Vary the population size: - increase the pop. size to 150 - decrease the pop. size to 50 You are encouraged to change the pop. size to other numbers. Keep track of the population size each time you make a change. (4) Optional (bonus points): - make other changes such as trying a different survival selection strategy or designing a different genetic operator incorporating more heuristic knowledge, and then run the program again. - extend it to n-queens problem with n > 8 and see if similar result patterns hold. You need to turn in a report in hard copy consisting of the following: - source code of your program with proper documentation - Running results clearly displayed, which you may want to present in tables or charts or plots. - Discuss the results: what can you say about the results? the role of each operator (which one is more important and why)? the impact of the population size, etc.? In addition, please e-mail our TA, Rayomand Vatcha (rvatcha@uncc.edu) your zipped executable file through your UNC-Charlotte account (so that we can run it).