最优化——GA遗传算法+PSO粒子群算法

文章目录

  • GA遗传算法
    • 二进制编解码
      • 编码
      • 解码
    • 复制交叉变异
    • 算法实现
  • PSO粒子群优化算法
    • 基本原理总结

GA遗传算法

传送门

仿生物学交叉和变异

  • 交叉:染色体交互位置
  • 变异:染色体突变,绿巨人再现

所需的就是提取最优的保留下来,达尔文进化论

二进制编解码

编码

将问题抽象为适用于遗传算法的形式,将数值转换为二进制

用二进制表示十进制

  • 给定区间范围
  • 给定精度,也就是两个数间隔
  • 进行编码,每个数值分配一个独一无二的二进制串
    • 串所能表示的数值个数必须要 ≥ 数值解的个数
    • 一个长度为n的串,能表示2^n个数

example:

  • 区间范围是[1,10],长度为2的串精度(间隔)是多少?(10-1)/(2^n-1)=3
  • 区间长度为L,精度为E的情况下,二进制的串的长度为n,三者的关系是L/(2^n-1)≤E
  • 要想达到1e-5的精度,对于区间长度10,串的长度n应该满足10/(2^n-1)≤0.00001 —> n ≥20

解码

索引:当前串是第几个串,可以通过二进制转10进制得到

example:

  • [1,0],10进制转换结果为2,对应数值表示1+2*3=7

  • [1,1],10进制转换结果为3,对应数值表示1+3*3=7

  • 一般情况下,区间范围是[a,b]且b-a=L,串长为n,当前串的十进制为T,则该串对应的实值解为:X = a + T * L/(2^n-1)

复制交叉变异

  • 复制

    • 将个体的适应度映射为概率进行复制,说白了生活能力强的评分高的,更大概率复制,且复制份数越多—轮盘赌法
    • 对适应度高的前N/4的个人进行复制,然后用这些个体把后N/4个体替换—精英产生精英
    • 产生新解的方式多种多样,当然可以随机
  • 交叉

    • 按顺序,两两个体之间按概率交叉
    • 完全可以相互交叉,3个、5个交叉,前N/2交叉,随机N/2选一个个体交叉,多端交叉都是可以的
  • 变异

    • 每个个体都进行变异
    • 只对适应度低的后N/4,或者后N/2个体变异
    • 可以按适应度大小映射变异,多个点位也可以变异

算法实现

策略选型

  • 复制:按适应度大小映射为概览,轮盘赌复制
  • 交叉:1和2,3和4,一定概率决定是否交叉,如果交叉,则二者选择随机一个段进行交叉
  • 变异:按照一定的概率决定该个体是否变异,若变异,随机选择一个位点进行变异:按位取反

算法实现思想

  • 轮盘赌基本思想:适应度越高的解,越应该高概率复制,且复制的份数应该越多

    • exapmle:丢个随机数,看其所在区间范围,如果在0.3—0.7则是属于0.4块,0.4块+1,看其最后每个块的累计和,视频内讲解的其实是归并排序的思想

      最优化——GA遗传算法+PSO粒子群算法_第1张图片

算法拓展

  • 启发式的算法背后思想都是择优,好的根据一定策略实现更好,差的根据一定策略向好的发展,若下一次不好,那就保底:保底机制+更新策略=寻得最优

GA梅开二度

PSO粒子群优化算法

传送门

已知A为全局最优,B和C如何移动才能到达A处,可以用数学去表达

最优化——GA遗传算法+PSO粒子群算法_第2张图片

  • 某个粒子点的移动,是有大小和方向的,想想向量
  • example
    • 上图就是(2,3)到(1,1),也就是(1,1)=(2,3)+(-1,-2)
    • 推广也就是(x,y)=(2,3)+ rand *(-1,-2)

基本原理总结

  • D维空间内,N个粒子组合一个群体,其中第i个粒子用Xi(xi1,xi2,…xiD)表示

  • 第i个粒子的飞行速度也是一个D维向量,用Vi(vi1,vi2,…viD)表示,一般会设置最大值

  • 在第t代的第i个粒子向第t+1代进化时,会有如下机制更新

    最优化——GA遗传算法+PSO粒子群算法_第3张图片

    • wvij:惯性思想,w是惯性权重,一般是0.5-0.8
      • 解释下,惯性就是按照上一次的方向
    • pij:个体方向,c1是个体学习系数,一般是0.1-2
      • 解释下,个体就是指自己单个粒子中最优的点
    • pgj:全局方向,c2是全局学习系数,一般是0.1-2
      • 解释下,全局指的就是多个粒子共同去找的最优的
  • example

    最优化——GA遗传算法+PSO粒子群算法_第4张图片

    • 上图黄线就是惯性,B点是个体C的下一个要去的点,A是全局最优
    • 黄线先和绿线合成为黑线,黑线再和橘线合成为蓝色虚线,蓝色虚线为最终结果C‘
    • 当然如果C’还没现在好(适应度比较),就不动,还是在C点(保底机制)
      • 解释下,适应度就是优化目标,一般都是优化损失函数越小,对应的适应度也就越高

你可能感兴趣的:(大数据——数据挖掘,算法,机器学习,遗传算法,粒子群算法,最优化)