I am trying to create an efficient crossover method for a genetic algorithm I am building. I only have 2 or 3 variables to optimise so I can treat each generation as points on a plane or sphere.
To generate the children I would like to divide the space into triangles or quadrilaterals and then take the centroid of each as the child. My problem is in subdividing the space. How can I group the points and also ensure that each parent contributes to the same number of children?
One solution might be to form clusters of N (3 or 4) nearest neighbour points and then take the centroid of these points as the child. More children could then be generated by grouping N clusters and taking the centroid again. I am not very familiar with nearest neighbour clustering and, although I have been looking into it, I have yet to find anything that seems like a particularly efficient solution.