遗传算法selection总结-[Fitness, Tournament, Rank Selection]

假设个体(individual)用\(h_i\)表示,该个体的适应度(fitness)为\(Fitness(h_i)\),被选择的概率为\(P(h_i)\)
另外假设种群(population)的个体总数为\(N\)

I. Fitness Selection

该方法也叫 Roulette Wheel Selection(轮盘赌博选择),种群中的个体被选中的概率与个体相应的适应度函数的值成正比。

\[P(h_i)=\frac{Fitness(h_i)}{\sum_{j=1}^N Fitness(h_j)} \]

II. Tournament Selection

锦标赛选择 方法步骤如下:

  • 等概率地从population中选择出\(K\)个individuals,一般\(K=2\).
  • 以预设的概率\(p\)从步骤一中选择的\(K\)个individuals的fitness最高的个体
  • 以概率\((1-p)p\)从步骤一中选择的\(K\)个individuals的fitness第二的个体
  • 以概率\((1-p)^2p\)从步骤一中选择的\(K\)个individuals的fitness第二的个体
  • ...同理

III. Rank Selection

直接举个栗子解释会更直观。假设一共有3个个体,它们的适应度分别为:\(f(h_1)=2,f(h_2)=1,f(h_3)=3\)

  • 首先对所有个体按照适应度从小到大排序,即\(h_2,h_1,h_3\);
  • 按照上面的顺序重新赋予fitness,即\(f(h_2)=1,f(h_1)=2,f(h_3)=3\)
  • 计算选择概率:\(p(h_2)=\frac{1}{1+2+3}=\frac{1}{6},p(h_1)=\frac{2}{6},p(h_3)=\frac{3}{6}\)



MARSGGBO原创





2018-12-15



posted @ 2018-12-15 21:13  marsggbo  阅读(1331)  评论(0编辑  收藏  举报