an interesting concept.
here is the algorithm:
boxcar2d.com/about.html
take note of the following:
To prevent the algorithm from converging too fast theres a chance it won't use the roulette wheel and just randomly select a mate. For version 1 this was as high as 40%, otherwise the small population didn't lost diversity quickly and it would fall into local optimum.
isn't this a little like saying a gorilla mates with a banana?
No.
In contex of GA, you should view the entire population as being of the same species.
What that paragraph refers to is the part of the algoritm responsible for selecting breeding pairs (
after the fitness test).
Also note that there is no hand-picking involved and that it rather works based on probabilities. ie, pseudo-random.
Designing a solid GA is not an easy task. Having your solution fall into a local optimum to quickly and finding a good balance between optimisation and variation is indeed one of the hard parts.
In the real world, this isn't much of a problem because the environment (and by that, I mean the complete works - including competing species, predators, food sources, climate, etc) is very very dynamic, while in a GA it is typically very static.
For example, if you try to optimise a fluid distribution system, you are not going to change the end-points of the system
during computation. That would make no sense.
Or when the point of the GA is to solve the "traveling salesman" problem, you aren't going to change the location of the places the salesman needs to visit
during computation. That also wouldn't make any sense.
GA's are used when you are trying to solve a very specific design problem. So the job of the GA is to find the best possible solution
for that particular, static, problem.
And it will be designed with that in mind.