SMA: 黏菌算法


每一个维度的更新按照如上规则

用黏菌算法来搜索最佳初始值 - 图1用黏菌算法来搜索最佳初始值 - 图2都是随机选取的点,也就是指数衰减 用黏菌算法来搜索最佳初始值 - 图3控制的搜索范围
用黏菌算法来搜索最佳初始值 - 图4%7D%7D#card=math&code=%5Cvec%7BX_%7Bb%28t%29%7D%7D)是适应度最佳的点,用黏菌算法来搜索最佳初始值 - 图5是一个线性衰减的向量,用来控制

p是非线性映射的相对适应度。也就是适应度越差(较多的点在最佳个体附近做搜索)

比较少的点在此随机生成

用黏菌算法来搜索最佳初始值 - 图6其中用黏菌算法来搜索最佳初始值 - 图7%2B1)#card=math&code=a%20%3D%20atanh%28-%28%5Cfrac%7Bt%7D%7Bmax_iter%7D%29%2B1%29)这是一个指数衰减的随机采样区间

用黏菌算法来搜索最佳初始值 - 图8代表

r是0,1之间的随机函数。wF是最差适应度

也就是所每过一轮迭代:

都要过一次鉴定看看要不要对当前的点进行随机生成z可以看作一个超参数。

然后执行最上面的按照相对适应度做随机的更新规则

一维实现是比较简单的,发现黏菌算法前期收敛快,但是算法稳定性和局部搜索能力不足。

退火算法


用状态转移函数来产生

对比较坏的结果进行容忍概率

用黏菌算法来搜索最佳初始值 - 图9%2C%0A%5Cend%7Bcases%7D%0A#card=math&code=%5Cbegin%7Bcases%7D%0A%5CDelta%20f%3C0%2C%5Cto%20%5Ctext%7Bbest%5C_solution%2Creturn%20new%5C_solution%2C%7D%5C%5C%0A%5CDelta%20f%3E0%2C%5Cto%20tolerate%5C_solution%2C%20p%28-%5CDelta%20f%29%2C%0A%5Cend%7Bcases%7D%0A)

用黏菌算法来搜索最佳初始值 - 图10%7D%20%3D%20e%5E%7B%5Cfrac%7B%5CDelta%20f%7D%7BT%7D%7D%5C%5C%0A%24%24%20%7B%5C%7D%0A%0A%E6%B3%A8%E6%84%8F%24%5CDelta%20f%20%E5%BA%94%E8%AF%A5%E4%B8%BA%E8%B4%9F%24%0A%0A%E9%9A%8F%E6%9C%BA%E5%80%BC%E8%A6%81%E6%98%AF%E5%A4%A7%E4%BA%8E%E5%AE%B9%E5%BF%8D%E5%80%BC%E7%9A%84%E6%97%B6%E5%80%99%E5%B0%B1%E5%8F%AF%E4%BB%A5%E6%A0%B9%E6%8D%AE%E6%9C%80%E6%96%B0%E7%9A%84%E6%AC%A1%E4%BC%98%E5%80%BC%E6%9D%A5%E6%9B%B4%E6%96%B0%0A%0A%E8%BF%99%E4%B8%AA%E5%AE%B9%E5%BF%8D%E5%BA%A6%E4%BC%9A%E4%B8%8B%E9%99%8D%0A%0A%E9%80%80%E7%81%AB%E7%AE%97%E6%B3%95%20%E6%A0%B8%E5%BF%83%E5%B0%B1%E6%98%AF%E5%AF%B9%E6%9C%80%E4%BD%B3%E4%BB%A3%E7%90%86%E5%92%8C%E9%9A%8F%E6%9C%BA%E6%90%9C%E7%B4%A2%E4%B9%8B%E9%97%B4%E7%9A%84%E6%A6%82%E7%8E%87%E5%A4%84%E7%90%86%E3%80%82%0A%0A%E4%BD%86%E6%98%AF%E5%9B%A0%E4%B8%BA%E9%9A%8F%E6%9C%BA%E6%80%A7%E7%A1%AE%E5%AE%9E%E8%BF%87%E5%A4%A7%EF%BC%8C%E5%90%8C%E6%97%B6%E5%8E%9F%E5%A7%8B%E7%AE%97%E6%B3%95%E5%B9%B6%E5%8F%91%E6%80%A7%E4%B8%8D%E6%98%AF%E5%BE%88%E5%A5%BD%0A%0A#card=math&code=%5Ctextcolor%7Bred%7D%7Bp%28%5CDelta%20f%29%7D%20%3D%20e%5E%7B%5Cfrac%7B%5CDelta%20f%7D%7BT%7D%7D%5C%5C%0A%24%24%20%7B%5C%7D%0A%0A%E6%B3%A8%E6%84%8F%24%5CDelta%20f%20%E5%BA%94%E8%AF%A5%E4%B8%BA%E8%B4%9F%24%0A%0A%E9%9A%8F%E6%9C%BA%E5%80%BC%E8%A6%81%E6%98%AF%E5%A4%A7%E4%BA%8E%E5%AE%B9%E5%BF%8D%E5%80%BC%E7%9A%84%E6%97%B6%E5%80%99%E5%B0%B1%E5%8F%AF%E4%BB%A5%E6%A0%B9%E6%8D%AE%E6%9C%80%E6%96%B0%E7%9A%84%E6%AC%A1%E4%BC%98%E5%80%BC%E6%9D%A5%E6%9B%B4%E6%96%B0%0A%0A%E8%BF%99%E4%B8%AA%E5%AE%B9%E5%BF%8D%E5%BA%A6%E4%BC%9A%E4%B8%8B%E9%99%8D%0A%0A%E9%80%80%E7%81%AB%E7%AE%97%E6%B3%95%20%E6%A0%B8%E5%BF%83%E5%B0%B1%E6%98%AF%E5%AF%B9%E6%9C%80%E4%BD%B3%E4%BB%A3%E7%90%86%E5%92%8C%E9%9A%8F%E6%9C%BA%E6%90%9C%E7%B4%A2%E4%B9%8B%E9%97%B4%E7%9A%84%E6%A6%82%E7%8E%87%E5%A4%84%E7%90%86%E3%80%82%0A%0A%E4%BD%86%E6%98%AF%E5%9B%A0%E4%B8%BA%E9%9A%8F%E6%9C%BA%E6%80%A7%E7%A1%AE%E5%AE%9E%E8%BF%87%E5%A4%A7%EF%BC%8C%E5%90%8C%E6%97%B6%E5%8E%9F%E5%A7%8B%E7%AE%97%E6%B3%95%E5%B9%B6%E5%8F%91%E6%80%A7%E4%B8%8D%E6%98%AF%E5%BE%88%E5%A5%BD%0A%0A)