求函数f(x)极大值的遗传算法的主要过程如下:
(1)对所涉及问题的可能解进行个体编码。在可行解集合S内,将决策向量 用n个子串组成的符号编码串表示,每个子串由若干个符号组成。这些子串分别代表了决策变量中的一个分量 ,称为遗传基因;X则是由n个遗传基因所组成的一个染色体,每一个染色体代表一个个体。
(2)生成满足约束条件的初始种群。群体的规模参数定义为一个整数N,然后随机生成N个个体,形成初始遗传群体,表示为:P(0)={x(1,0),•••,x(N,0)}。
(3)个体适应度Fit(x(i,k)),k是遗传代数,初始代k=0。以适应度大小评价个体的优劣。
(4)个体选择。根据个体的适应度,按照一定的规则或方法,从第k代群体P(k)中选出一些优良的个体遗传到下一代群体P(k+1)中[4]。
(5)交叉。将群体P(k+1)内的各个个体随机搭配成对,对每一对个体,以某个概率按设定的交叉策略交换它们之间的部分染色体[4]。
(6)变异。对群体P(k+1)中的每一个个体,以某一概率改变某一个或某一些基因座上的基因值[4]。
(7)算法终止。遗传算法对计算适应值、进行杂交和变异这几步反复执行,直至满足某个停止准则。比如已经产生一个满意解,或迭代代数已经达到预设值。然后就能终止计算,输出的最优解就是进化过程中得到的拥有最大适应度的个体。
如上述过程所示,我们可以看到遗传算法的本质其实是迭代。遗传算法流程见图2-1。
2.2 遗传算法的特点
2.2.1 遗传算法的优点
1. 对可行解表示的广泛性。
遗传算法的处理对象不是参数本身,而是针对那些通过参数集进行编码得到的基因个体,此编码操作使得遗传算法可以直接对结构对象进行操作,所谓结构对象,泛指集合、序列、矩阵、树、图、链和表等各种一文或二文甚至多文结构形式的对 MATLAB遗传算法的性能仿真研究+文献综述(4):http://www.youerw.com/jisuanji/lunwen_16157.html