基于梯度求解的方法并不能有广泛的适用性,因为机器学习乃至深度学习中的梯度更新方法对代价函数的要求是相当高的,相关问题的机器学习方法的代价函数的设计都是相当用心的,限制上是比较大的。

    我了解的进化算法
    爬山法
    遗传算法
    思维进化
    粒子群
    蚁群
    禁忌搜索
    多目标优化
    模拟退火
    启发式算法可以分为两大类:基于游动的方法和进化技术。
    第一类主要模拟物理现象,应用数学规则或方法,包括多体优化器(MVO) [6]、带电系统搜索(CSS) [7]、引力搜索算法(GSA) [8]、正弦余弦算法(SCA) [9]、基于教学-学习的优化(TLBO) [10]、中心力优化(CFO) [11]和禁忌搜索(TS) [12]。自然启发的方法主要包括两种:进化方法和智能群体技术。进化算法的灵感来源于自然界的生物进化过程。与传统优化算法相比,它是一种全局优化方法,具有更好的鲁棒性和适用性。
    进化算法类中一些广泛使用的算法有遗传算法(GA) [13]、遗传规划(GP) [14]、进化策略(ES) [15]、进化规划(EP) [16]和差分进化(DE) [17]。
    群体智能(SI) [21]包括一种集体或社会智能,它人工模拟自然界中生物集群的分散或自组织系统的集体行为。在这类算法中,灵感通常来自自然界中具有集体行为和智能以达到某种目的的生物群体。该类已建立和近期的算法有粒子群优化(PSO) [22]、蝙蝠启发算法(BA) [23]、灰狼优化(GWO) [24]、果蝇优化(FOA) [25]、飞蛾火焰优化(MFO) [26]、蚁群优化(ACO) [27]、哈里斯鹰优化器(HHO) [28]和人工蜂群(ABC) [29]。

    不同的多智能体(MAS)在理论上都有两个相同的阶段,第一是对解空间尽可能的探索,第二阶段是在利用探索结果的基础上进行更加精确的搜索,这两个阶段的能力强弱会影响优化结果,探索主导更多的情况下,全局搜索能力会更强,会产生很多解集,算法收敛速度会更快,利用阶段局部搜索能力会比较强,解集的质量和结果精度很好,

    黏菌算法的搜索速度越快,求解质量和精度就越差,所以搜索的速度和精度要平衡,黏菌需要决定需要进一步利用的局部求解空间,黏菌会在高质量食物附近进行区域限制搜索,当搜索到的食物质量低的时候,黏菌会离开该区域,,搜索其他食物来源,这种自适应的特性会在区域内不同食物质量分散的情况下更加明显,

    黏菌
    w 静脉壁 厚度 越厚更新速度越快
    适应度好 选择 该区域探索 适应度差选择其他区域探索
    两个随机的黏菌
    image.png
    p = tanh|S(i) − DF|
    p是计算当下适应度和最佳适应度差值的非线性映射
    后边的是以当前黏菌为中心向随机方向探索,适应度好的维持原方向缩小区域进行搜索
    vb的随机性能够跳出局部最优,
    初始化 最佳适应度 设为无穷小
    X(i,:)=(X(i,:).(~(Flag4ub+Flag4lb)))+ub.Flag4ub+lb.*Flag4lb;
    #用最大值最小值替换超界的参数
    worstFitness = SmellOrder(N);
    bestFitness = SmellOrder(1);
    适应度最小的反而是最好的适应度 (默认是转换为最小值问题 func 和 1.0/func+e)
    3%的子个体会重新生成位置
    投入的群落数量和迭代次数并不能带来成比例的近似解

    AGA 和DE

    • 在获取到优质食物后,黏菌会分裂成两个个体,是否可以淘汰一定比例的最差适应度的个体转而探索优质食物附近区域
    • 获取到优质食物后会发出信号召集其他个体进行局部聚集,历史最佳适应度区域应该加大搜索力度

    单峰函数和多峰函数,后者怕陷入局部最优解