全球旧事资料 分类
将群体P(t)中的每一个个体的基因码所对应的自变量取值代入目标函数,算出其函数值f,i12…
f越大,表示该个体有较高的适应度,更适合于f所定义的生存环境,适应度f为群体进化提供了依据;
③选择:按一定概率从群体P(t)中选出m个个体,作为双亲用于繁殖后代,产生新的个体加入下一个群体P(t1)中。此处选用轮盘算法,也就是比例选择算法,个体被选择的概率与其适应度成正比。
④交叉(重组):对于选中的用于繁殖的每一个个体,选择一种交叉方法,产生新的个体;此处采取生成随机数决定交叉的个体与交叉的位置。
⑤变异:以一定的概率Pm从群体P(t1)中随机选择若干个个体,对于选中的个体随机选择某个位置,进行变异;
⑥对产生新一代的群体返回步骤③再进行评价,交叉、变异如此循环往复,使群体中个体的适应度和平均适应度不断提高,直至最优个体的适应度达到某一限值或最优个体的适应度和群体的平均适应度不再提高,则迭代过程收敛,算法结束。
五:实验结果
实验结果的显示取决于判断算法终止的条件,这里可以有两种选择:1、在程序中设定迭代的次数;2在程序中设定适应值。本实验是在程序中实验者输入需要迭代的次数来判断程序终结的。
ff六:实验小结
在实验过程中,我觉得发现算子的选择对实验结果有一定程度的影响,所以除了采用PPT上的算子选取外,也同样尝试了其他的算子选择方法。
1、选择算子①、排序选择方法。基于个体按适应度大小的排序来分配个体被选中的概
率,这种算法与轮盘算法的思路差不多。②、保存最佳个体策略。由于选择、交配、变异等操作的随机性,当代最
优秀的个体可能会被破坏,所以可以采用保存当代最优秀的个体,参与到下一代的选择过程中。
不过总的来说,轮盘算法还是选取选择算子最有效、最常用的算法。2、交叉算子
①、单点交叉。是指在个体编码串中随机设置一个交叉点,在该店交换配对的两条染色体上的基因。
②、两点交叉与多点交叉。在选择交叉算子的过程中,单点交叉是最简单的方法,又称简单交叉,两点甚至多点交叉,是交配两点之间的染色体,比单点交叉的适应性更高,不过程序略复杂。
本实验采用的是均匀交叉,在选定位置后每一位基因都以相同的概率进行交叉。
附上实验代码(visualstudio2010环境下运行)
i
cludeiostreami
cludectimei
cludeioma
ipi
cludealgorithm
fusi
g
amespacestd
i
tmai


sra
dtime0
doublearr54初始化
cout
好听全球资料 返回顶部