路线优化的最佳交叉

best crossover for route optimization

我正在检查用于路线优化的交叉技术,并且经历了下面提到的一些 thgem

1 - single point crossover
2 - two point crossover
3 - uniform crossover

在单点交叉中,我们一般从每个parent交换一个变量得到child。与两点交叉相同,我们从两个 parents 交换两个变量。

在我的问题中,parents 长度不相同,例如 p1: ['a','b','c'] and p2:['v','n','m','h','k']。由于我们两个 parent 的长度不相同,因此我能够使用基于偶数和奇数技术的单点交叉。

现在我想使用带有掩码的统一交叉,发现它很难用于不同的长度。 有什么建议吗?

后代的长度是多少,如果它们与 parents 的长度相同,那么你可以做一个正常的统一顺序。例如

 [a,b,c] = p1
 [v,n,m,h,k] = p2
 [0,0,1,0,1] = mask (this should be random)

 [v,n,c] = o1
 [a,b,m,h,k] = o2

您甚至可以随意将较小的放在面具上的位置,例如:

 [-,-,v,n,c]
 [a,b,m,h,k]

所以后代会是

 [v,h,c] 
 [a,b,m,n,k]