鲸鱼算法与Python简单可视化测试(1)



1. 鲸鱼算法原理

鲸鱼算法是一种根据鲸鱼围捕猎物行为抽象建模而成的优化算法,提出于2016年,是一种较新的群智能优化算法。鲸鱼作为一种群居性的哺乳动物,在捕猎时它们会相互合作对猎物进行驱赶和围猎。鲸鱼在集体捕猎过程的行为动作包括两个步骤:一种是包围猎物(a.随机游向某只鲸鱼,b.向当前最佳位置出发);二是气泡网(通过螺旋包围猎物并喷出气泡,控制鱼群走向)。在每一代的游动过程中,鲸鱼群的个体会随机选择这两种行为来进行捕猎。

在这里插入图片描述

2. 鲸鱼算法的python实现

2.1 问题描述

作用是拟合多项式的系数
原函数是
y = x 3 − 4

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
鲸鱼算法(Whale Algorithm)是一种受到鲸鱼行为启发的进化算法,用于解决优化问题。它模拟了鲸鱼觅食的行为,通过群体移动和逃避障碍物来寻找最优解。 下面是使用Python实现鲸鱼算法简单代码: ```python import random import math def whale_algorithm(dim, search_space, max_iter): population = [] # 初始化种群 for _ in range(search_space): x = [random.uniform(-search_space, search_space) for _ in range(dim)] population.append(x) # 最优解和最优适应度 best_solution = population[0] best_fitness = fitness_function(best_solution) # 迭代搜索 for iter in range(max_iter): a = 2 - iter * (2 / max_iter) # 衰减因子 for i in range(search_space): x = population[i] A = random.uniform(-1, 1) # 随机向量 C = 2 * random.random() # 倍数 for j in range(dim): D = abs(C * best_solution[j] - x[j]) # 距离向量 b = 1 # 倍数 if random.random() < 0.5: x[j] = D * math.exp(b * a) * math.cos(2 * math.pi * a) + best_solution[j] else: x[j] = D * math.exp(b * a) * math.sin(2 * math.pi * a) + best_solution[j] # 更新最优解和最优适应度 fitness = fitness_function(x) if fitness < best_fitness: best_solution = x best_fitness = fitness return best_solution def fitness_function(x): # 自定义适应度函数 return sum(x) # 使用示例 dim = 5 # 维度 search_space = 30 # 种群大小 max_iter = 100 # 最大迭代次数 best_solution = whale_algorithm(dim, search_space, max_iter) print("Best Solution:", best_solution) ``` 在这个例子中,鲸鱼算法被用于求解一个简单的优化问题,即求一个向量的各个元素的和最小值。算法使用了衰减因子和随机向量等操作来模拟鲸鱼的觅食行为,通过迭代搜索逐渐找到最优解。最后输出找到的最优解。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

GuGuDa123

你的鼓励将是我最大的动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值