路线优化的最佳交叉
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]
我正在检查用于路线优化的交叉技术,并且经历了下面提到的一些 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]