我正在研究 VB.NET 中对称 TSP 的遗传算法。我想知道执行选择程序的正确方法是什么。似乎至少有两种不同的可能性:
1)
-create a "reproduction pool" of size R by using SELECTION(pop) function
-do offspring creation cycle
-randomly (uniformly) select two parents from that pool for each offspring
that needs to be created in each iteration
2)
-do offspring creation cycle
-use modified SELECTION(pop) function that will return two different parents from pop
-perform crossover to produce a child
额外问题:选择两个父母后,有可能产生两个不同的后代(如果交叉算子是不可交换的):CROSS(p1, p2) 和 CROSS(p2, p1)。我应该立即插入两个后代还是一个接一个地生产它们?这会有所作为吗?
目前我正在一一生产它们,因为我认为它会给人群带来更多的差异。