遗传算法基本原理
遗传算法通过模拟自然界中生物遗传进化过程,对优化问题的最优解进行搜索。遗传算法搜索全局最优解的过程是一个不断迭代的过程(每一次迭代都相当于生物进化中的一个循环),知道满足算法的终止条件为止。
遗传算法中的名词
群体:问题搜索空间的一组有效解
种群:经过选择产生的新群体
染色体/串:问题的每个有效解,具体形式是用特定编码方式生成的编码串
基因:编码串(染色体)中每一个编码单元
适应值:区分染色体的优劣(适应值越大,染色体越优)
评估函数:计算并确定染色体对应的适应值
选择算子:按照一定规则对群体染色体进行选择,得到父代种群(越优秀的染色体被选中的次数越多)
交配算子:作用与每两个成功交配的染色体,染色体交换各自的部分基因,产生两个子代染色体。子代染色体取代父代染色体进入新种群,而没有交配的染色体则直接进入新种群
变异算子:染色体某些基因的数值发生改变
模式:群体中编码的某些位置具有相似结构的染色体集合
模式的阶:模式中具有确定取值的基因个数
模式的定义长度:模式中第一个具有确定取值的基因到最后一个具有确定取值的基因的距离
eg:(假设染色体是由0,1组成的编码串)模式010表示以01开头并且以0结尾的编码串对应的染色体的集合,即{010000,010010,…},一共2^3个。模式010的阶为3(确定的值为0,1,0).模式的定义长度为5(从第一个零开始到最后那个零结束,可以把数字中间的空格算作距离)
Holland定理和积木块假设说明遗传算法能找到全局最优解
遗传算法的流程
重要条件:
1.染色体编码
2.群体初始化
3.适应值评价
4.选择算子
5.交配算子
6.变异算子
步骤
step1:初始化规模为N的群体 ,其中染色体的每个基因个数采用随机数生成并满足问题定义的范围。当前进化代数(generation=0)。
step2:采用评估函数对所有染色体进行评价,分别计算每个染色体的适应值,并找出适应值最大的染色体,赋给best。
step3:采用轮盘赌选择算法对群体的染色体进行选择,产生规模与初始群体规模相同的群体。
step4:按照概率对新产生的群体进行交配,产生的子代染色体进入新群体,未交配的染色体也进入新群体。
step5:对新群体的每个染色体进行适应值的计算,并且迭代更新best的值,generation值+1、
step6:如果best的值满足所要求的条件或者代数超过预计的规定数,则结束遗传算法,否则返回第三步。
遗传算法的改进
1.算子选择
选择模型中有适应值比例模型(轮盘赌选择),最佳个体保存模型,排挤模型,确定性采样,期望型模型,无回放余数随机采样,随机锦标赛模型,排序模型。
交配模型中有多点交配,部分匹配交配算子,顺序交配算子,循环交配算子,边重组交配算子,边集合交配算子,两点交配,均匀交配,算术交配,单性孢子交配算子
变异模型中有边界变异,高斯变异,非均匀变异
混合遗传算法
并行遗传算法