登录/注册

鱼群算法

更多

好的,我们来详细解释一下鱼群算法

鱼群算法,全称人工鱼群算法,其英文名称为 Artificial Fish Swarm Algorithm。它是一种模拟自然界鱼群觅食、群聚、追尾和随机行为等群体行为的群体智能优化算法。该算法由中国学者李晓磊博士等人在 2002 年提出,主要用于解决各种优化问题(如函数优化、组合优化、参数估计等)。

核心思想

算法的核心思想是:利用大量简单的“人工鱼”个体,通过模拟鱼群在寻找食物(即优化问题的最优解)过程中的简单局部行为(觅食、聚群、追尾),以及个体之间的信息共享,最终在群体层面上涌现出全局的寻优能力,引导鱼群趋向最优解区域。

关键概念(模拟鱼的行为)

  1. 人工鱼:
    • 每个“人工鱼”代表优化问题的一个候选解。例如,在求解函数最小值时,一条鱼的位置 X = (x1, x2, ..., xn) 就代表了问题的一个解向量(n 是问题的维度)。
    • 每条鱼能感知自身状态(当前位置、适应度值)和周围一定范围内的环境(其他鱼的位置和适应度值)。
  2. 视野范围:
    • 定义为 Visual。这是鱼感知周围环境的半径。它决定了鱼在一次行为中能探测到的邻居范围。
    • 这是一个关键参数,影响算法的全局搜索和局部搜索能力。
  3. 步长:
    • 定义为 Step。这是鱼在一次移动中允许的最大移动距离。
    • 控制着鱼的移动速度和解的更新幅度。
  4. 拥挤度因子:
    • 定义为 δ。这是一个阈值(0 < δ < 1),用于控制鱼群聚集的“拥挤程度”。
    • 如果某点周围的鱼群密度过高(超过 δ),即使那里食物更多,鱼也可能选择离开以避免过度拥挤,这有助于算法跳出局部最优。
  5. 尝试次数:
    • 在觅食行为中,鱼会进行若干次(定义为 TryNumber)随机尝试,然后选择最优的方向移动。这增加了探索的随机性和找到更好位置的可能性。
  6. 适应度值:
    • 函数 Y = f(X)。这是评价一个候选解 X (即鱼的位置) 好坏的标准。就是需要优化的目标函数值。对于最小化问题,Y 值越小代表位置越好(食物越丰富);对于最大化问题则相反。

主要行为(算法操作)

人工鱼主要模拟以下几种行为模式,每条鱼在每一步迭代中根据当前位置和周围环境选择执行其中一种行为(通常是几种行为结果中带来最大收益的那个):

  1. 觅食行为:

    • 模拟: 鱼感知当前位置的食物浓度(适应度值),然后在其视野范围内随机选择一个点 Xj
    • 计算: 比较 Xj 的适应度值 Yj 与当前位置 Xi 的适应度值 Yi
    • 决策:
      • 如果 Yj 优于 Yi (最小化时 Yj < Yi, 最大化时 Yj > Yi),则朝 Xj 方向前进一步(移动距离不超过 Step)。
      • 如果 Yj 不优于 Yi,则再随机选择一个新的 Xj,重复以上过程,直到达到 TryNumber 次尝试。如果多次尝试后仍未找到更好的点,则执行随机行为
    • 目的: 局部探索,尝试在附近找到更好的位置。
  2. 聚群行为:

    • 模拟: 鱼查看其视野范围内 (Visual 内) 的所有邻居鱼。
    • 计算:
      • 计算视野范围内邻居鱼的数量 nf
      • 计算这些邻居鱼的中心位置 Xc(所有邻居位置的平均值)。
      • 计算中心位置 Xc 的适应度值 Yc
    • 决策:
      • 如果 Yc 优于 Yi 并且 中心位置的鱼群密度不太高 (nf / N < δ,其中 N 是鱼的总数,δ 是拥挤度因子),说明中心位置既好又不拥挤,则朝中心 Xc 方向前进一步(移动距离不超过 Step)。
      • 否则 (不满足上述条件): 执行觅食行为
    • 目的: 促使鱼群向适应度值高的区域聚集,同时避免过度拥挤导致陷入局部最优。体现了“群聚协作”的优势。
  3. 追尾行为:

    • 模拟: 鱼查看其视野范围内 (Visual 内) 的所有邻居鱼。
    • 计算:
      • 找出视野范围内适应度值最优 (最小化时最小,最大化时最大) 的那条邻居鱼 Xmin/Xmax 及其适应度值 Ymin/Ymax
      • 统计视野范围内有多少邻居鱼围绕在 Xmin/Xmax 附近(即距离 < Visual)。
    • 决策:
      • 如果 Ymin/Ymax 优于 Yi 并且 Xmin/Xmax 周围的鱼群密度不太高(nf_min / N < δnf_max / N < δ),说明这条最优邻居的位置既好又不拥挤,则朝这条最优邻居 Xmin/Xmax 的方向前进一步(移动距离不超过 Step)。
      • 否则 (不满足上述条件): 执行觅食行为
    • 目的: 促使鱼群快速向当前已知的局部最优位置移动,加速收敛。体现了“向优者学习”。
  4. 随机行为:

    • 模拟: 鱼在视野范围内随机选择一个方向。
    • 操作: 朝该方向随机移动一步(移动距离不超过 Step)。
    • 目的: 增加随机性,帮助算法跳出局部最优解,进行全局探索。通常在觅食行为尝试失败后执行。

算法流程(伪代码)

  1. 初始化:
    • 设定算法参数:鱼群数量 N,视野范围 Visual,步长 Step,拥挤度因子 δ,最大尝试次数 TryNumber,最大迭代次数 MaxIter(或设定收敛精度)。
    • 在解空间中随机初始化 N 条人工鱼的位置 {X1, X2, ..., XN}
    • 计算每条鱼的初始适应度值 {Y1, Y2, ..., YN}
    • 记录当前全局最优解 X_best 及其适应度值 Y_best(初始时为鱼群中最好的那个)。
  2. 迭代优化:
    • For iter = 1 to MaxIter (或直到满足收敛条件):
      • For each fish i in the swarm
        • 模拟执行 觅食行为,计算执行该行为后可能到达的新位置 X_food 及其适应度 Y_food
        • 模拟执行 聚群行为,计算执行该行为后可能到达的新位置 X_swarm 及其适应度 Y_swarm
        • 模拟执行 追尾行为,计算执行该行为后可能到达的新位置 X_follow 及其适应度 Y_follow
        • 行为选择: 比较 Y_food, Y_swarm, Y_follow,选择其中能带来最大收益(即适应度值改善最大)的那个行为产生的位置 X_next 作为鱼 i 下一步的位置。
        • (或者采用其他策略,如默认执行追尾行为,不满足条件则执行聚群行为,再不满足则执行觅食行为)。
        • 更新鱼 i 的位置到 X_next,并计算其新的适应度值 Y_i
      • End For each fish
      • 检查整个鱼群:更新全局最优解 X_bestY_best(如果当前鱼群中有比 Y_best 更好的适应度值出现)。
  3. 输出结果:
    • 算法终止后(达到最大迭代次数或满足收敛条件),输出全局最优解 X_best 及其适应度值 Y_best

优点

缺点

应用领域

鱼群算法广泛应用于各种优化问题,包括但不限于:

总结

鱼群算法是一种受自然界鱼群社会行为启发的群体智能优化算法。它通过模拟鱼的觅食、聚群、追尾和随机行为,利用个体感知局部信息和群体信息共享,在解空间中高效地寻找全局最优解或近似最优解。其优点在于简单、鲁棒、全局搜索能力强,对函数要求低;缺点是参数调节对性能影响较大且后期收敛可能较慢。它是一种有效且应用广泛的启发式优化方法。

裸土覆盖检测算法 燧机科技

1970-01-01 08:00:00 至 1970-01-01 08:00:00

AI图像行为算法分析系统 燧机科技

1970-01-01 08:00:00 至 1970-01-01 08:00:00

工装识别算法 工服穿戴检测系统 燧机科技

1970-01-01 08:00:00 至 1970-01-01 08:00:00

结合深度与演化算法的群竞争合作优化算法

将深度与演化算法结合,提岀一种深度演化算法,即群竞争合作优化(GCCO)算法。首先引入生物群模型来模拟群体搜索猎物的自然现象,

资料下载 佚名 2021-04-12 14:13:33

一种头脑风暴算法优化的乳腺MR图像软子空间聚类算法

传统的软子空间聚类算法在对信息量大、强度不均匀、边界模糊的乳腺MR图像进行分割时,易受初始聚类中心和噪声数据的影响,导致算法陷入局部最优,造成误分类。针对该问题,提出一种头脑风暴

资料下载 佚名 2021-04-11 11:22:06

基于显性与隐性时空关联的两种用户激励算法

为在群智感知系统中实现有效的用户激励,提岀基于显性与隐性时空关联的两种用户激励算法。将显性时空关联的用户激励问题转化为集合覆盖问题并利用贪心算法对其进行求解,同时结合显性时空关联

资料下载 佚名 2021-03-21 10:30:56

基于长短时记忆网络的自适应零速检测算法

多运动模式行人航位推算算法采用零速校正消除累计误差,但零速校正错判会导致误差。针对该问题,提出一种基于长短时记忆网络的自适应零速检测算法。构建长短时记忆网络提取不同运动模式下零速区间的三轴加速度、三

资料下载 佚名 2021-03-16 09:25:08

基于SVDPP算法的新型协同过滤推荐算法

  为进一步改善个性化推荐系统的推荐效果,通过使用强化学习方法对 SVDPP算法进行优化,提出一种新的协同过滤推荐算法。考虑用户评分的时间效应,将推荐问题转化为马尔科夫决策过程。在此基础上,利用Q-

资料下载 佚名 2021-03-09 17:20:09

6500VA水声功率放大器如何驱动换能器进行鱼群探测?

以及鱼儿的体型,位置,大小等等。那么你知道功率放大器是如何对鱼探仪中必不可少的换能器进行驱动的吗?Aigtek 安泰电子 为你解答! 鱼群探测所以应用的技术 海洋研究和开发所用的水声技术,包括回声探测、被动探测、水声通

2024-01-12 10:11:08

RJM8L151C8T6Y

低功耗MCU 内置国密算法SM4,国际加密算法DES/3DES

2023-03-31 12:05:28

PID算法增量式算法

这里的PID是指控制类的比例-积分-微分算法,而不是进程ID号。PID算法,不管是原理上,还是代码上都比较简单。主要运用在电机控制、开关电源、电源管理芯片等领域。一般《自动控制原理》上给的是位置式

2021-09-13 06:06:20

算法是什么

算法(Algorithm):计算机解题的基本思想方法和步骤。算法的描述:是对要解决一个问题或要完成一项任务所采取的方法和步骤的描述,包括需要什么数据(输入什么数据、输出什么结果)、采用什么结构

2021-07-15 09:49:41

哈佛大学研究团队从鱼群当中获得灵感,并研发出了一批鱼类机器人

相比之下,现有的大多数水下机器人则更多地依赖水上的、集中的、明确的沟通,能够协调的复杂性有限。那么鱼群中体现出的这种分散的、自组织的、高度自治的协调方式,长期以来吸引着机器人技术领域中科学家们的兴趣。

2021-03-22 14:06:55

哈佛科学家研发出能自主地同步游泳的鱼群机器人

被称为“Bluebots”的机器鱼能自主地同步游泳。 任何看过海底自然纪录片的人都会惊叹于鱼群表演的复杂编排,那仿佛是一部由数千名演员组成的飞镖式同步芭蕾舞。 这些本能的运动激发了哈佛大学约翰保尔

2021-02-23 09:45:33

HFSS 仿真算法及其应用场景详解:有限元算法、积分方程算法、PO算法

版本的更新,HFSS算法越来越多,针对不同的应用场景对应不同的算法。因此,只有实际工程问题切合合适的算法,才能做到速度和精度的平衡。工程师在了解

2019-09-20 17:15:45
7天热门专题 换一换
相关标签