Evolutionary Computation and Artificial Life - Grader comments for exercise 2
Part One: TSP Problem
Most of you did a very good job, and your reports were good - you clearly took care of the
issues I have raised in the exercise 1 comments file.
BUT:
- Almost all of you failed to produce a correct distance computation function,
effecting the fitess function and the resulting evolutionary process correctness - so the bottom
line is that your results are meaningless.
The problems lies with the distance table - you were asked to use the kilometer values only (i.e. under the diagonal),
but you have mixed the miles and kilometer values (creating a directed distance graph...)
As said before, the assignments are not designed to test your programming skills, but such
bugs can fail the evolutionary process, so you are required to spot them!
In this case you could have found this bug easily by manually checking
the overall distances of your reported routes: try to do so, and you'll notice right away that the actual distances differ from the
ones reported by your algorithm...
I have attached a simple java program that computes the correct distance in kilometers.
Minor issues:
- Some of you got some repetitive fluctuation patterns in the fitness curve; it would have been nice to discuss
and speculate what is the cause of those fluctuations.
- When choosing a genome representation, please try to explain why did you prefer it over
the other available representations. Since this is an empirical field of study, you can't provide
'wrong' answers to this question...
The shortest path's overall distance was 6852 km; it seems the Norway TSP problem is not very tough, since
every group that managed to code without bugs have found this value. Another option is that
there is a better TSP value, but this value is a strong local minimum.
Part Two: Comparing Selection Methods
This task was a simple one, so most of you did it perfectly.
- When you describe the differences between
the methods, you should try to speculate what are the causes of
these differences. As said before, there are no wrong answers here (except for 'I don't know'...)
- The gemone description was a bit ambigious: you were instructed to use a 8-bit array,
encoding the number 0.b1b2b3b4b5b6b7b8, but the range was said to be [0,1]; Should we use a bit array to
represent the numbers in the range [0.00000000, 0.11111111], or scale it to fit the range [0, 1]?
Since this is not a critical issue, both solutions were treated as correct ones.
Part Three: Solving Sudoku Mini-Puzzles
Most of you managed to correctly solve the given problem. Some of you
even tried (and succeeded!) to solve real 9x9 sudoku problems.
- I gave a small penalty for groups that were unable to solve all of the problems.
Since we usually deal with hard problems, you sometimes won't be able to acheive complete
solutions. In this case, however, the problems were relatively simple, hence the small penalty.
- Some of you gave a nice description of the process of work: a list of all the
experiments done + short discussions for each experiment, discussing its results,
benefits, weaknesses and ideas for the next experiments. This way of describing
the process of work is highly recommended!
- This task involved much creativity. Some of the nice tweaks you've made to the 'standard' GA:
- XO operator that copies full rows (or columns) from parents
- Mutation operator that swaps rows (or columns)
- Initializung the population with legal rows (or columns, or boxes),
and altering the XO & mutation operators to keep this invariant
- Some of you inverted the suggested fitness measure to
MAX_PENALTIES - penalties or
1/(penalties+1) in order to use fitness-proportinate selection.
This is fine, as long as your reports describe this new fitness measure.
- It is important to show the solutions found by your algorithm, and state
whether an optimal solution was found for each instance. After all, this
is the problem you were supposed to solve...
- When submitting your works, please test the submitted URL. Some reports had
broken links to missing images, charts or code files.
This task offered a 5-pt bonus for alternative genome representations. Some of you have made
minor changes in the representation - such as listing all of the cells instead of the
empty ones, or matrix-based representations. These representations do not differ from the
suggested representation, unless special XO & Mutation operators are introduced.
Schemata (2-pt bonus) were not defined for the alternative representations.