一、背景
最近在研究遗传算法,在看到遗传算法选择更优解的时候发现一个令我疑惑的点,就是在计算适应度值、将其转换为选择概率、最后将选择概率归一化并计算累计概率的时候,为了确定需要选取的更优解,选取了一个在[0,1]区间内的随机浮点数,根据浮点数的大小以及其在累计概率区间的位置来判断选择更优解。
选取规则就是若随机浮点数 Rand <累计概率中第一个值,则第一个值对应的解集就为优秀解,若累计概率[k-1] and Rand <累计概率[k],那么更大的累计概率K所对应的解集就为优秀解,看到这里我就很疑惑,为什么更优解的选取是这样来选的,如果调换一下累计概率值的排序那岂不是最终结果也会发生变化吗?
二、想法
后面看了他人写的文章(好像没有解决我的疑惑)又自己想了下,发现应该不是这样来想的,累计概率其实就是相当于一条值在[0,1]的有限区间,其中适应度值越大的个体(元素)其在累计概率区间的长度就越长,这个长度就代表了其被选中的概率,换到Random上而言因为Randon是随机的(伪随机),所以其实这个随机点落在这个区间各位置的概率是相等的,和顺序无关,也就是说不管上述累计概率值的排序是怎么样,这都不会影响到最终的结果。最终结果只和其适应度有关,适应度越大,落在该适应度区间概率就越大。