一、遗传算法具体步骤
(1)初始化。设置进化代数计数器g=0,设置最大进化数G,随机生成NP个个体作为初始群体
P(0)。
(2)个体评价。计算群体P(t)中各个个体的适应度
(3)选择运算。将选择算子作用于群体,根据个体的适应度,按照一定的规则或方法,选择一些优良个体遗传到下一代群体
(4)交叉运算。将交叉算子作用于群体,对选中的成对个体,以某一概率交换它们之间的部分染色体,产生新的个体。
(5)变异运算。将变异算子作用于群体,对选中的个体,以某一概率改变某一个或某一些基因值为其他的等位基因。群体P(t)经过选择、交叉和变异运算之后得到下一代群体P(t+1)。计算其适应度值,并根据适应度进行排序,准备下一次遗传操作
(6)终止条件判断:若g<=G,则g=g+1,转到步骤(2),若g>G,则此进化过程中得到的具有最大适应度的个题作为最优解输出,终止计算。
二、关键参数说明
(1)群体规模NP
群体规模将影响遗传优化的最终结果以及遗传算法的执行效率。当群体规模NP太小时,遗传优化性能一般不会太好。采用较大的群体规模可以减小遗传算法陷入局部最优解的机会,但较大的群体规模意味着计算复杂度较高。【一般NP取10~200】
(2)交叉概率Pc
交叉概率Pc控制着交叉操作被使用的频度。较大的交叉概率可以增强遗传算法开辟新的搜索区域能力,但高性能的模式遭到破坏的可能性增大;若交叉概率太低,遗传算法搜索可能陷入迟钝状态,【一般Pc取0.25~1.00】
(3)变异概率Pm
变异在遗传算法中属于辅助性的搜索操作,它的主要目的是保持群体的多样性。一般低频度的变异可防止群体中重要基因的可能丢失,高频度的变异将使遗传算法趋于纯粹的随即搜索。【通常Pm取0.001~0.1】
(4)遗传运算的终止进化代数
终止进化代数G是表示遗传算法运行结束条件的一个参数,它表示遗传算法运行到指定的进化代数之后就停止运行,并将当前群体中的最佳个体作为所求问题的最优解输出。一般是具体问题而定,【G的取值可在100~1000之间】