基因遗传算法中,利用适应度函数,遗传算法自适应函数

遗传算法:适应度函数: fitnv=rankingobjv ) ) ) ) ) ) ) ) )。

ranking函数分为两个阶段进行操作。

1)按照从小到大的顺序分类个体的目标值ObjV

)2)根据排序后的值,利用计算公式

这里,Position在最初的步骤排序后,从小到大的值的位置属性1,2,3,4…);

上面的等式是线性排序sp=0sp=0表示线性排序,sp=1表示非线性排序) )。

Nind是个体群中个体的数量在个体群中进行多少次,对应于对少的个体),例如

[Chrom,Lind,basev]=CRTBPnind,Lind ) ]

表示要创建大小为Nind*Lind的随机二进制矩阵。 其中Nind是种群的个体数,Lind是个体的长度。

ranking函数计算适应度时,各个体的长度为Lind,该个体生成ObjV,可以根据该ObjV的排序值计算出对应的适应度。

例如; 线性排序和压差为2估算适应度。

ObjV )1 2 3 4 5 10 9 8 7 6

ObjV排序)1 2 3 4 5 6 7 8 9 10

位置标签Position )1 2 3 4 5 10 9 8 7 6

根据与ObjV值对应的位置标签,代入公式进行计算) :

Position是与各ObjV对应的位置编号。

计算12-0-2*1*0/9)=2——–ObjV=1的适应度分配值为2;

计算2-0-2*1/9)=1.7778——ObjV=2的适应度分配值为1.7778;

计算32-0-2*2/9)=1.5556——ObjV=3的适应度分配值为1.5556

计算42-0-2*3/9)=1.3333——ObjV=4的适应度分配值为1.3333

计算52-0-2*4/9)=1.1111——ObjV=5的适应度分配值为1.1111

计算102-0-2*9/9)=0 ——ObjV=10的适应度分配值为0

计算92-0-2*8/9)=0.2222 ——ObjV=9的适应度分配值为0.2222

计算82-0-2*7/9)=0.4444——ObjV=8的适应度分配值为0.4444

计算72-0-2*6/9)=0.6667 ——ObjV=7的适应度分配值为0.6667

计算62-0-2*5/9)=0.8889 ——ObjV=6的适应度分配值为0.8889

可以看出,计算公式本身随着Position的增大而变小。 也就是说,ObjV的值越大,对应的排序坐标越靠后,计算得到的适应度值就越小。

因此,最终的FitnV积累的数据是对应每个ObjV个体的适应度,适应度越大,说明就越好,应该为下一代的遗传保留。 压差为2对应的最佳适应度值为2。

非线性排序公式在《遗传算法工具箱及应用》健忘水壶教科书第76页。

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注