遗传算法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}\)