融合混沌对立和分组学习的海洋捕食者算法


文章目录

  • 融合混沌对立和分组学习的海洋捕食者算法
  • 1.海洋捕食者算法
  • 2.改进海洋捕食者算法
  • 2.1 加入混沌对立学习策略
  • 2.2 加入自适应 t 分布
  • 2.3 加入分组维度学习策略
  • 3.实验结果
  • 4.参考文献
  • 5.Matlab代码
  • 6.python代码



摘要:针对海洋捕食者算法存在收敛速度慢,不易逃出局部最优的缺点,提出了一种改进海洋捕食者算法。首先,将混沌映射与对立学习策略相结合,在保证遍历性和随机性的同时,生成高质量的初始猎物种群。其次,引入自适应t分布变异算子更新种群,增加种群多样性,避免陷入局部最优。对更新后的种群,按照适应度分为精英组和学习组,学习组向精英组猎物的平均维度进行学习,精英组内的猎物相互维度学习,进一步提高种群质量和搜索精度。

1.海洋捕食者算法

 

2.改进海洋捕食者算法

2.1 加入混沌对立学习策略

混沌映射是一种非线性理论, 具有非线性、普适 性、遍历性和随机性的特点, 可以按自身的特性在一 定范围内不重复地遍历所有状态, 在智能算法优化中 能帮助生成新的解, 增加种群多样性, 因而被广泛应 用 融合混沌对立和分组学习的海洋捕食者算法-附代码_人工智能 。 Tent 映射迭代速度快, 混沌序列在 融合混沌对立和分组学习的海洋捕食者算法-附代码_迭代_02 之间均 匀分布,其表达式如下:
融合混沌对立和分组学习的海洋捕食者算法-附代码_迭代_03
其中, 融合混沌对立和分组学习的海洋捕食者算法-附代码_人工智能_04 是第 融合混沌对立和分组学习的海洋捕食者算法-附代码_算法_05 次迭代时产生的混沌数, 融合混沌对立和分组学习的海洋捕食者算法-附代码_解决方案_06 是最 大迭代次数, 融合混沌对立和分组学习的海洋捕食者算法-附代码_解决方案_07 是介于 融合混沌对立和分组学习的海洋捕食者算法-附代码_迭代_02 的常数, 本文选取 融合混沌对立和分组学习的海洋捕食者算法-附代码_迭代_09

在解决问题的时候, 考虑到无效解决方案的对立 侧可能存在更好的解决方案, Tizhoosh 等人提出了对 立学习策略(Opposition-based learning,OBL) 融合混沌对立和分组学习的海洋捕食者算法-附代码_算法_10, 近年 来 OBL 已经有效地应用于各种群智能算法中。在群智 能算法初始化种群的过程中, 随机生成的部分个体往 往会分布在远离最优解的无效区域和边缘区域, 进而 降低了种群的搜索效率。采用 OBL 策略, 在种群初始 化中引人一个随机解及其对立解要比引人两个独立的 随机解更能提高初始种群的质量。假设某个 融合混沌对立和分组学习的海洋捕食者算法-附代码_算法_11 维个体 位置为:
融合混沌对立和分组学习的海洋捕食者算法-附代码_人工智能_12
设其个体位置的下界和上界分别为 融合混沌对立和分组学习的海洋捕食者算法-附代码_迭代_13, 则其 对立侧位置可以表示为:
融合混沌对立和分组学习的海洋捕食者算法-附代码_解决方案_14
但是, 在目标函数上下界限对称的时候, 由公 式(16)可看出, 所生成的反向解为原来解的完全镜 像 (取负), 对部分具有偶函数特性的函数, 完全镜 像解与原解目标值一致, 不适合将两个种群做适应 度排序, 无法有效获得高质量种群。

本文将 Tent 混沌映射与 融合混沌对立和分组学习的海洋捕食者算法-附代码_迭代_15 相结合, 提出了一 种新的 TOBL ( Tentand Opposition-based learning ) 机 制。 TOBL 的数学模型如下:
融合混沌对立和分组学习的海洋捕食者算法-附代码_学习_16
其中, 融合混沌对立和分组学习的海洋捕食者算法-附代码_学习_17 为第 融合混沌对立和分组学习的海洋捕食者算法-附代码_解决方案_18 个猎物对立位置的第 融合混沌对立和分组学习的海洋捕食者算法-附代码_学习_19

2.2 加入自适应 t 分布

基本 MPA 中, 猎物更新完位置以后, 需要检测 和更新顶级捕食者的位置, 并进行一次海洋记忆存储, 接下来再考虑 FADs 的影响, 对猎物的位置做进一步 更新。
为了保证此次记忆存储更加有效, 引人自适应 融合混沌对立和分组学习的海洋捕食者算法-附代码_迭代_20 分布算子, 在模拟 FADs 的影响之前, 对猎物的位置 进行变异, 如果变异后的位置更佳, 则代替原来的位 置。数学模型如下:
融合混沌对立和分组学习的海洋捕食者算法-附代码_学习_21
其中, 融合混沌对立和分组学习的海洋捕食者算法-附代码_迭代_22 为第 融合混沌对立和分组学习的海洋捕食者算法-附代码_解决方案_18 个猎物变异后的位置, 融合混沌对立和分组学习的海洋捕食者算法-附代码_人工智能_24 Iter 融合混沌对立和分组学习的海洋捕食者算法-附代码_人工智能_25 为 以当前迭代次数为自由度的 融合混沌对立和分组学习的海洋捕食者算法-附代码_迭代_20 分布。在迭代初期, 迭 代次数较少, 融合混沌对立和分组学习的海洋捕食者算法-附代码_迭代_20 分布近似于柯西分布, 分布的更加平滑。 此时, 融合混沌对立和分组学习的海洋捕食者算法-附代码_迭代_20 分布算子在大概率上取到较大值, 位置变异所 采取的步长较大, 算法具有良好的全局探索能力, 与 MPA 第一阶段的全局搜索特性形成正反馈; 在迭代中 期, 一半的捕食者用于全局探索,另一半的捕食者用 于局部开发, 而此时 融合混沌对立和分组学习的海洋捕食者算法-附代码_迭代_20 分布介于柯西分布和正态分布 之间, 融合混沌对立和分组学习的海洋捕食者算法-附代码_迭代_20 分布算子在大概率上取值相对折中, 同时兼顾 了 MPA 第二阶段的全局搜索和局部开发, 使捕食者 更容易返回到猎物丰富的地区并成功受食, 进而对算 法性能形成正反馈; 在迭代后期, 融合混沌对立和分组学习的海洋捕食者算法-附代码_迭代_20 分布近似于标准正 态分布, 分布的更加集中, 融合混沌对立和分组学习的海洋捕食者算法-附代码_迭代_20

2.3 加入分组维度学习策略

在算法迭代过程中, 有些猎物位置的某些维度实 际上可能早已达到了最优维度, 由于其中个别维度的 影响, 使得这些猎物位置的适应度变差 融合混沌对立和分组学习的海洋捕食者算法-附代码_迭代_33 。为了能在 海洋里生存下去, 位置差的猎物(捕食者)需要向位 置好的猎物 (捕食者)学习捕食本领, 基于这个思想, 提出了一种分组维度学习的策略。将 FADs 影响后的 猎物按照适应度排序平均分成两组, 适应度好的一组 称为精英组, 适应度差的一组称为学习组 融合混沌对立和分组学习的海洋捕食者算法-附代码_解决方案_34

学习组维度交叉策略
由于精英组的维度各有优劣, 所以将精英组的位 置维度取平均值, 学习组的每一个猎物都向精英组平 均维度进行学习。该策略将学习组每个猎物的每一维 度同精英组平均维度值做差, 按照绝对差异大的优先 交叉原则, 取绝对差异大的前 融合混沌对立和分组学习的海洋捕食者算法-附代码_人工智能_35 个对应维度逐一交叉, 如果交叉后猎物的适应度更好, 则交叉对应维度, 反 之则不交叉。该策略的数学模型为:
融合混沌对立和分组学习的海洋捕食者算法-附代码_算法_36
其中, 融合混沌对立和分组学习的海洋捕食者算法-附代码_迭代_37 表示学习组第 融合混沌对立和分组学习的海洋捕食者算法-附代码_解决方案_18 个猎物位置, 融合混沌对立和分组学习的海洋捕食者算法-附代码_算法_39 表示和精英组平均维度值第 融合混沌对立和分组学习的海洋捕食者算法-附代码_解决方案_40 维交叉后的第 融合混沌对立和分组学习的海洋捕食者算法-附代码_解决方案_18 个猎物 位置, 融合混沌对立和分组学习的海洋捕食者算法-附代码_解决方案_42 表示学习组第 融合混沌对立和分组学习的海洋捕食者算法-附代码_解决方案_18 个猎物第 融合混沌对立和分组学习的海洋捕食者算法-附代码_解决方案_40 维和精英组平均维度第 融合混沌对立和分组学习的海洋捕食者算法-附代码_解决方案_40 维的绝对差异, 融合混沌对立和分组学习的海洋捕食者算法-附代码_算法_46 表示精英组平均值的 第 融合混沌对立和分组学习的海洋捕食者算法-附代码_解决方案_40

精英组维度交叉策略
精英组整体离全局最优点相对较近, 所以不适合 全部维度的扰动变异, 这样会导致精英在最优解附近徘 徊, 影响收玫精度。所以, 令精英组的猎物相互之间取长补短, 在保留自己优势维度的前提下, 向相邻的 猎物进行学习。该策略交叉原则和学习组猎物交叉原 则相同, 只是将交叉对像, 由精英组平均维度值更换 为与该猎物相邻的前一个猎物, 设精英组每个猎物取 绝对差异大的前 融合混沌对立和分组学习的海洋捕食者算法-附代码_学习_48

MSIMPA 算法实现步骤
步骤 1 由公式(14)-(17)对猎物的位置进行 混沌对立初始化, 并设置相关参数:种群规模、 最大迭代次数、FADs 等。
步骤 2 计算每个猎物适应度值, 并将适应 度值进行比较、替换, 由最佳猎物构成顶级捕 食者矩阵, 并进行海洋记忆存储。
步骤 3 由公式(3)-(11)更新猎物位置和移 动步长。
步骤 4 由公式(18)的 融合混沌对立和分组学习的海洋捕食者算法-附代码_迭代_20 分布变异算子进行 位置扰动更新, 并保留最佳位置。
步骤 5 重新计算每个猎物适应度值, 并将 适应度值进行比较、替换,由最佳猎物构成顶级捕 食者矩阵, 并进行海洋记忆存储。

步骤 6 考虑 FADs 和漩浴的影响, 由公式(12) 进一步更新位置, 并保留最佳位置。
步骤 7 将更新后的种群按照适应度优劣均分 成学习组和精英组, 由公式(19)-(20)进行维度交叉, 交叉后适应度变好则交叉对应维度,反之则不 交叉。
步骤 8 判断算法是否满足迭代条件, 若满足, 则算法终止, 否则转至步骤 2 。

3.实验结果

融合混沌对立和分组学习的海洋捕食者算法-附代码_迭代_50

4.参考文献

[1]马驰,曾国辉,黄勃,刘瑾.融合混沌对立和分组学习的海洋捕食者算法[J/OL].计算机工程与应用:1-14[2021-11-02].http://kns.cnki.net/kcms/detail/11.2127.TP.20210730.1554.011.html.

5.Matlab代码

6.python代码