Based on Lectures 2,3,4, which provide
all the necessary background.
Before the seminar, you should
have encoded (preferably:real code that runs. otherwise:
pseudocode) a simple Genetic Algorithm to solve the following
problem:-
You have 10 cards numbered 1 to 10.
You have to divide them into 2 piles so that:
The sum of the first pile is as close as possible to 36
And the product of all in second pile is as close as poss to 360
Hint: call the piles 0 and 1, and use binary
genotypes of length 10 to encode any possible solution.
(But do it
another way if you prefer.)
You will need to design an appropriate fitness function -- there are various possibilities here.
Is there a perfect solution? How many evaluations did it take to find a solution? How can you optimise the code, and the parameters such as population size, mutation rate, so as to minimise the number of evaluations taken? How does this compare with random search? Is this a suitable problem for GAs?
If you got your program working easily, try it for more cards with different targets for the two piles: how does the difficulty of the problem scale?
Bring to the seminar printouts of your code (or: legibly written pseudo-code) and answers to these questions.
Bring a pen - ideally a red one as well as a blue one! At some stage in the seminar your efforts will be passed around, and each person will be asked to comment on and give feedback on each others work.