基于哈里斯鹰优化算法的线性规划问题求解matlab程序

基于哈里斯鹰优化算法的线性规划问题求解matlab程序

1 算法简介
  哈里斯鹰优化算法是化(Harris Hawks Optimization,HHO)是Heidari等于2019年提出的一种群体优化算法,该算法模拟哈里斯鹰(美国亚利桑那州南部的猛禽)的捕食行为,主要分为探索阶段、探索与开发转换阶段和开发阶段。
  基于哈里斯鹰优化算法的线性规划问题求解matlab程序_第1张图片
2 算法的实现过程
2.1 探索阶段
  哈里斯鹰会利用眼睛追踪和发现猎物,但有时候也会看不到猎物。因此,哈里斯鹰会花费几个小时去等待、观察和监视沙漠地带。在HHO中,哈里斯鹰是候选方案,每一过程中最佳的候选方案被视为是预期的猎物或接近预期的猎物。哈里斯鹰随机栖息在某些位置,并等待根据两种策略探测猎物。如果每种栖息策略的机会q均等,则当q<0.5时,哈里斯鹰会根据其它成员和猎物的位置进行栖息;当q>0.5时,哈里斯鹰会随机栖息在鹰群活动范围内的大树上。

2.2 探索到开发的转换
  HHO算法可以从探索转移到开发,然后根据猎物的逃逸能量在不同的开发行为之间进行转换。在猎物的逃避过程中,能量将大大降低。
2.3 开发阶段
  在此阶段中,哈里斯鹰对前一阶段中发现的预定猎物进行突袭。但是,猎物经常试图逃脱危险。因此,在实际情况下会出现不同的追逐风格。根据猎物的逃逸行为和哈里斯鹰的追逐策略,在HHO中提出了四种可能的策略来模拟攻击阶段。

猎物总是试图从危险中逃脱。假设r是猎物在突袭前逃脱的机会,成功逃脱(r <0.5)或未成功逃脱(r≥0.5)。不论猎物做什么,鹰都会以强硬或轻柔的围攻来捕获猎物。这意味着它们将根据猎物的保留能量从不同方向轻柔地或强硬地包围猎物。在实际情况下,鹰会越来越接近预期的猎物,并通过执行突袭而增加了合作杀死猎物的机会。几分钟后,逃逸的猎物将损失越来越多的能量;然后,鹰加强围攻过程,从而毫不费力地抓住疲惫的猎物。为了对该策略进行建模,并使HHO能够在软、硬围攻过程之间切换,使用了E参数。

基于哈里斯鹰优化算法的线性规划问题求解matlab程序_第2张图片

3 线性规划算例
基于哈里斯鹰优化算法的线性规划问题求解matlab程序_第3张图片
4 鸡群优化算法求解结果

1)迭代曲线
基于哈里斯鹰优化算法的线性规划问题求解matlab程序_第4张图片
2)求解答案
基于哈里斯鹰优化算法的线性规划问题求解matlab程序_第5张图片
5 matlab程序
1)主函数


%% 哈里斯鹰优化算法

clear all %#ok
close all
clc
%% 算法参数
%最优变量
N=30; % Number of search agents

Function_name='F1'; % Name of the test function 

T=500; % Maximum number of iterations

% Load details of the selected benchmark function
[lb,ub,dim,fobj]=Get_Functions_details(Function_name);

[Rabbit_Energy,Rabbit_Location,CNVG]=HHO(N,T,lb,ub,dim,fobj);

%% Draw objective space
figure,
hold on
semilogy(CNVG,'Color','b');
title('迭代曲线')
xlabel('Iteration');
ylabel('Best fitness obtained so far');
axis tight
grid off
box on
legend('HHO')
%% 输出最优值
display(['最优变量为: ', num2str(Rabbit_Location)]);
display(['最优值为: ', num2str(Rabbit_Energy)]);
。。。。。。。略

你可能感兴趣的:(线性规划,智能算法,求目标最优,matlab,算法,开发语言)