鲸鱼算法代码python
时间: 2023-09-06 20:05:54 浏览: 137
鲸鱼算法(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)
```
在这个例子中,鲸鱼算法被用于求解一个简单的优化问题,即求一个向量的各个元素的和最小值。算法使用了衰减因子和随机向量等操作来模拟鲸鱼的觅食行为,通过迭代搜索逐渐找到最优解。最后输出找到的最优解。
阅读全文