Create PopulationWhile TrueChoose ParentsCombinate Parents (Recombination)Mutate Offspring (Mutation)Rate Offspring (Fitness)Add Offspring to PopulationRemove Unfittest Individual (Selection)If Termination Criterion Is Met: End LoopNext
Circles
source: http://blog.eagerbug.com/circles/
Circles: Definition
Given: Some circles on na arbitrary playground
Task: Find an additional circle
...that does not cross the playground border,
...that does not cross another circle
...that has a maximum circular area.
Circles: Trivial
Circles: Approach
Genes
{
x: <int>,
y: <int>,
radius: <int>
}
Initial Population
Arbitrary circles (x- and y-coordinate, radius)
Circles: Approach
Fitness
Crossing the playground border? (Penalty)
Crossing another circle? (Penalty)
How big is the circle? (Bonus)
Circles: Approach
Fitness
var overlapping = number of overlapping circlesvar outside = crossings with the playground bordervar area = area of the circlevar fitness = area
if outside > 0 or overlapping > 0
fitness = fitness * -1
if overlapping > 0
fitness = fitness * 2 * overlapping;if outside > 0
fitness = fitness * 4 * outside;