1、遗传算法
(1)概念
遗传算法(Genetic Algorithm,简称GA)起源于对生物系统所进行的计算机模拟研究,是一种随机全局寻优化方法,它模拟了自然选择和遗传中发生的复制、交叉(crossover)和变异(mutation)等现象,从任一初始种群(Population)出发,通过随机选择、交叉和变异操作,产生一群更适合环境的个体,使群体进化到搜索空间中越来越好的区域,这样一代一代不断繁衍进化,最后收敛到一群最适应环境的个体(Individual),从而求得问题的优质解。
(2)步骤
第一步:染色体编码
1)编码,即把一个问题的可行解从其解空间转换到遗传算法的搜索空间的转换方法(解–>染色体)
常见的编码方法有二进制编码、 浮点数编码、符号编码、、、
例子:
2)解码,即染色体–>解
解码公式:
例子:
第二步:初始群体的生成
设置最大进化代数T,群体大小M,交叉概率Pc,变异概率Pm,随机生成M个体作为初始化群体P0
第三步:适应度值评估检测
最大化问题,把目标函数作为适应度函数,最小化问题,把目标函数的倒数作为适应度函数
第四步:遗传算子
1)选择(selection)
选择操作从旧群体中以一定概率选择优良个体组成新的种群,个体被选中的概率跟适应度值有关,个体适应度值越高,被选中的概率越大。以轮盘赌法为例,若设种群数为M,个体i的适应度为fi,则个体i被选取的概率为:
2)交叉(crossover)
交叉操作是指从种群中随机选择两个个体,通过两个染色体的交换组合,把父串的优秀特征遗传给子串,从而产生新的优秀个体。
使用率最高的是单点交叉
3)变异(mutation)
常用的变异是单点变异
群体Pt经过选择、交叉、变异运算后得到下一代群体P(t+1)。
第五步:终止判断条件
终止条件有迭代次数、运行时间、达到目标值、、、
注:M、T、Pc、Pm四个参数需要提前设定,Pc一般取为0.4~0.99,Pm一般取为0.0001-0.1,通过正交实验确定它们的最优值
(3)图解
2、求解TSP
同样是求解att48实例(最优解为10628)
代码结构: