Evolutionary Algorithms I > Submission of solutions

Submission of solutions

Published on Oct. 10, 2016, 11:40 p.m.

Evolutionary algorithms are based on randomness, i.e. each run can have a slightly different outcome. Therefore, it is not possible to compare the results of only one run. Instead, we need to repeat the run a number of times and compare the performance in the average/best/worst case.

The submitted solution must contain the following:

  1. A short description of what you did and tried, what was the outcome. Around 5-10 sentences are enough.
  2. A plot showing the optimized criteria as a function of fitness evaluations. The plot must show the average (or median) value and first and third quartile. If you compare more algorithms, they all should be in a single plot.
  3. Do not zip the plots (unless there is a lot of them}. Upload them as pictures.

Scripts to create the plots

To create the plot with the fitness you can use the scripts createGraphs.ps1 (for Windows PowerShell), or createGraphs.sh (for Unix). Both scripts require to have gnuplot installed and in $PATH.

Using the scripts is quite easy. They require only two parameters, which indicate where are their inputs (the outputs of the evolutionary algorithm) a how they should be named in the plot. Assume, we have outputs of two algorithms in files logs/basic.objective_stats and logs/better.objective_stats. To compare these algorithms, we have to run

createGraphs.ps1 -logFileNames basic,better -legendNames Basic,Better

This yields the comparison of the two algorithms in one plot named output.svg, the names in the legend will read “Basic” and “Better”.

This script has more useful parameters:

These parameters can be used to make the resulting plot more readable. Use them and experiment with them. Try to make the plots as readable as possible.

A Python script is also available to create the graphs. It does not need gnuplot, but uses numpy and matplotlib instead. The parameters of the script are similar to those of the scripts described above. Check them in the source code.

The following hints may help you to make better graphs