遗传算法 - 早熟收敛

时间:2018-03-13 21:38:13

标签: optimization genetic-algorithm convergence

我正在尝试实现一种解决TSP的遗传算法。它适用于少数城市的TSP(比如10个)并产生最佳解决方案。然而,当城市数量增加到50个城市时,它会过早收敛。我尝试改变参数(突变概率,交叉概率,初始种群大小,生成数),但它仍然没有收敛到最优解。

我实现的算法如下:

Create an initial population randomly of size p
Calculate the fitness 
Pick p/2 random individuals to the parents
While counter < p/2
     pick parent1 and parent2 by tournament selection
     child1, child2 = mutate and crossover parent1 and parent2
     add child1 and child2 to new population
pick p/2 distinct individuals from initial population and store in new population

有人可以告诉我,我做错了吗?

1 个答案:

答案 0 :(得分:0)

通常,你会想要在进化过程中调整突变率,我不认为你在这里做过。

从高突变开始,让它有机会找到一些可能的&#34;进化路径&#34; (虽然被认为是高的将取决于应用程序,你需要玩游戏),然后随着时间推移突变减少,以防止零星的变化阻碍进展。

您可以将突变率作为当前一代,当前错误或两者的函数。

但正如评论员所提到的,GAs绝不能保证给你最佳效果。他们通常会给你&#34;可接受的&#34;处理巨大的解决方案空间时的结果。

相关问题