实值遗传算法还是二进制值遗传算法用于实际目的和最新实现



我最近开始学习启发式优化方法,并从遗传算法开始。我已经了解了遗传算法背后的算法。我遇到了两种类型的GA,即二进制编码GA和实数值GA。在任何地方,当我寻找GA的解释和步骤时,我只看到二进制编码GA。但当我寻找GA和优化库和包时,突变和交叉似乎就像真正有价值的方法。这些方法中的哪一种在广泛使用和实际用途中使用?如果我的理解有什么不正确的地方,请分享。

如果您想知道二进制GA和基于值的GA之间的区别。你可以在这篇论文中找到更多详细信息。

https://www.researchgate.net/publication/261016773_A_Comparison_of_Binary_and_Continuous_Genetic_Algorithm_in_Parameter_Estimation_of_a_Logistic_Growth_Model

对于二进制GA,最好使用单点或双点交叉。你可以在突变中使用交换逻辑

def binary_mutation(child1, child2):
posi = random.randint(0, len(child1)-1)
if child1[posi] == 1:
child1[posi] = 0
elif child1[posi] == 0:
child1[posi] = 1
if child2[posi] == 1:
child2[posi] = 0
elif child2[posi] == 0:
child2[posi] = 1
return child1, child2

最新更新