改进鲸鱼优化算法种群改进
时间: 2025-02-22 18:29:09 浏览: 16
改进鲸鱼优化算法中的种群策略
准反向学习初始化种群
为了提升初始解的质量并增加群体多样性,在改进的鲸鱼优化算法中采用了准反向学习方法来初始化种群。这种方法利用现有个体及其对应的镜像点之间的关系构建新的候选解决方案,有助于扩大搜索范围,防止早熟收敛于局部极值[^1]。
def quasi_opposite_based_learning(population, lower_bound, upper_bound):
opposite_population = []
for individual in population:
new_individual = [lower_bound[i] + upper_bound[i] - value
for i, value in enumerate(individual)]
opposite_population.append(new_individual)
return opposite_population
自适应权重策略与随机差分法变异策略
引入自适应权重机制可以根据迭代过程动态调整参数,使得前期更注重全局探索而后期侧重局部开发;同时采用随机差异变异操作进一步加强跳出局部最优的能力,促进种群进化方向多样化。
import random
def adaptive_weight_and_random_mutation(current_position, best_position_global,
worst_position_global, a_value):
r1 = random.random()
r2 = random.random()
A = 2 * a_value * r1 - a_value
C = 2 * r2
p = random.uniform(0, 1)
if p < 0.5 and abs(A) >= 1:
rand_leader_index = int(len(best_position_global)*random.random())
D_x_rand = abs(C*best_position_global[rand_leader_index]-current_position)
updated_position = best_position_global[rand_leader_index] - A*D_x_rand
# Apply Random Mutation
F = 0.5 # Scaling factor for mutation
mutated_vector = current_position + \
F*(best_position_global-worst_position_global)
final_position = (updated_position + mutated_vector)/2
else:
final_position = current_position
return final_position
引入共生有机体搜索(SOS)
通过借鉴自然界中共生现象设计了基于不同物种间相互作用模型——即共生有机体搜索(Symbiotic Organisms Search),该技术被应用于改进后的鲸鱼优化算法当中。具体来说就是模拟寄生、互利以及偏利三种生态学上的互动模式来进行信息交换和共享,以此达到强化全局寻优的目的[^3]。
def symbiotic_organisms_search(positions, fitness_values):
sorted_indices = np.argsort(fitness_values)
parasites = positions[sorted_indices[:len(sorted_indices)//4]]
mutualists = positions[sorted_indices[len(sorted_indices)//4:len(sorted_indices)//2]]
commensals = positions[sorted_indices[-len(sorted_indices)//4:]]
parasite_mutations = apply_parasitic_behavior(parasites)
mutualist_cooperations = perform_mutualistic_interactions(mutualists)
commensal_benefits = gain_commensal_advantages(commensals)
next_generation_positions = np.vstack((parasite_mutations,
mutualist_cooperations,
commensal_benefits))
return next_generation_positions
相关推荐


















