artificial intelligence - What is the best way to perform vector crossover in genetic algorithm? -
I used a genetic algorithm to learn the best parameters for a draft / checker A " Vector is stored in. Actually I crossover using two surmals. Methods: A point crossover. And two-point crossover, unfortunately, in my opinion, these methods are not enough. For example: If I have a genetic pool:
[10 20 1] [30 10 9] [100 1 10] If the theoretical The optimum x1 value is 50, so I can never find it by a crossover. >
It seems that you have an encoding problem - no crossover. If you want more variability in the chromosome - then encode the data as a sequence of bytes (or bits). Suppose you have 3 integer parameters - you can show them as 3 * 4 = 12 byte vector:
{114,2,0,214, // first 32-bit Int 14,184,220,7, // second 32-bit int 145,2,32,12, // etc ...} then develops with large variability in your intersections after crossover Will happen. Apart from this, you can not use 1/2 point crossover, but - when at each chromosomal point you will randomly decide which gene version will be used. In this case you will get more variability. But keep in mind that too much variability in the crossover is also destructive because the results in the population can never reach the optimal solution, because the sub-optimal solution is also removed due to large random fluctuations in foreign-friendly operation. Stable Development is the main keyword here. Another approach - not to use genetic algorithm, but which changes the genes in the chromosome. But this approach is possible if the number of different genes versions is not very large. So this can not fit your problem with float / doubles.
HH!
Comments
Post a Comment