一、解空间确定
二、编码:二进制编码、实数向量编码
三、初始化
四、计算适应度值
五、父体选择:轮盘赌
六、遗传算子:杂交、变异
一、编码:(用自然的方式编码)
数值优化时二进制好,TSP时自然数编码好
二进制编码确定位数方法:
依上式得到第j个变量xj编码为二进制时所需二进制位数。总的二进制位数为所有之和
缺点:
1.相邻整数的二进制编码的hamming距离较大,可以采用gray编码克服
2.在高维高精度问题求解中,串长太长
实数向量编码,排列编码,结构编码,树编码,图编码
二、适应函数
1.原始适应函数,即目标函数
2.简单适应函数,加减常量,倒数等
3.适应值比例变换f'(v)=g(f(v))
(1)线性比例变换:f'(v)=af(v)+b,ab可以根据最大最小平均适应度值的限定来确定,使得变换后的适应函数在我们要求范围内
(2)σ截断:,其中σ为标准差
(3) 幂函数变换:最好与最坏染色体的适应值之差随着 的增加而增加。
三、父体选择策略
基于适应值比例的选择策略
(1) 确定性选择:选择每个个体的期望个数
(2)轮盘赌选择:
(3) 随机通用采样(stochastic universal sampling):轮盘上放N个指针,以此选出N个个体
(4) Boltzmann选择
基于排名的选择策略
(1) 线性排名选择
(2) 指数排名选择
基于竞争的选择策略
(1) 锦标赛(tournament)选择:随机挑k个,选最好的
(2) Boltzmann锦标赛选择:
四、遗传算子设计
1. 二进制编码
(1) 杂交算子:点式杂交,交换一点或多点;均匀杂交,每一位都判定,是否交换
(2) 变异算子
2. 实数向量编码
(1) 杂交算子:
离散杂交,可模拟二进制的单点,均匀杂交
部分算术杂交,
x’=(x1,...,xk,ak+1xk+1+(1-ak+1)yk+1,...,anxn+(1-an)yn)
y’=(y1,...,yk,ak+1yk+1+(1-ak+1)xk+1,...,anyn+(1-an)xn)
整体算术杂交,
x’=(x1+(1-a1)y1,...,xk+(1-ak)yk,ak+1xk+1+(1-ak+1)yk+1,...,anxn+(1-an)yn)
y’=(y1+(1-a1)x1,...,yk+(1-ak)xk,ak+1yk+1+(1-ak+1)xk+1,...,anyn+(1-an)xn)
(2) 变异算子非均匀变异,
t 是当前演化代数,δ(t,y)函数返回[0,y]中的一个值,并且随t的增加而趋于0。其中或者,
其中r 是[0,1]上的一个随机数,T表示最大演化代数。b是确定非均匀度的一个参数,通常b的取值为2~5。