Genetic Algorithm pseudocode:
1) Create random individuals and compute fitness value. 2) For each generation: 2.1) Catastrophe? (first 10% of generations are catastrophe-free; catastrophe probability: 5%) 2.1.1) Remove all individuals. 2.1.2) Create random individuals and compute fitness value. 2.2) Keep top 10% individuals (based on fitness) and remove the others. 2.3) Create new individuals by mutating the remaning (swap Queen positions). 2.4) For each individual: 2.4.1) Compute new fitness value based on the number of collisions between Queens. 2.4.2) Fitness value is zero? (no collisions) 22.214.171.124) Solution Found.
Each individual is a group of
(x,y) coordinates that represent the position of each Queen on the board. Individual
1324 means that the Queens positions are
(1,1) (2,3) (3,2) (4,4).
1 2 3 4 (x) 1 Q . . . 2 . . Q . 3 . Q . . 4 . . . Q (y)
Y Axis: score (lower is better), X Axis: Generation Number.
All the source code is online here.