文件交换

图片缩略图

灰太狼优化器

version 1.6 (1.85 MB) by Seyedali Mirjalili
GWO是一种新颖的元启发式全局优化算法
4.9
16评级

147下载

更新2018年5月22日

视图版本历史

查看许可协议

该算法模拟了自然界中灰狼的领导阶层和捕猎机制。四种类型的灰狼,如阿尔法、贝塔、德尔塔和欧米茄被用来模拟领导阶层。另外,通过搜索猎物、包围猎物和攻击猎物三个主要的狩猎步骤进行优化。
这是论文的源代码:S. Mirjalili, S. M. Mirjalili, A. Lewis, Grey Wolf Optimizer, Advances in Engineering Software, Volume 69, 2014年3月,page 46-61, ISSN 0965-9978,http://dx.doi.org/10.1016/j.advengsoft.2013.12.007
更多资料请浏览:http://www.alimirjalili.com/GWO.html
你可以在这里找到灰太狼优化工具箱://www.tianjin-qmedu.com/matlabcentral/fileexchange/47258-grey-wolf-optimizer-toolbox
其他有关提交:https://au.mathworks.com/matlabcentral/fileexchange/49772-grey-wolf-optimizer-for-training-multi-layer-perceptrons
我有很多这方面的相关课程。你可透过以下连结报名,享受九五折优惠:

*******************************************************************************************************************************************
“优化问题与算法:如何理解、表述和解决优化问题”课程:
https://www.udemy.com/optimisation/?couponCode=MATHWORKSREF

《遗传算法概论:理论与应用》
https://www.udemy.com/genisticgorithm/?couponcode=mathworksref.
*******************************************************************************************************************************************

引用作为

Seyedali Mirjalili(2021)。灰太狼优化器(//www.tianjin-qmedu.com/matlabcentral/fileexchange/44974-grey-wolf-optimizer-gwo), MATLAB中央文件交换。检索

评论和评级(48

索菲娅欧维斯

您好,您能帮我翻译一下30母线系统的最佳功率流代码吗?
我有数据,但在相互联系上有些困难,我会感激的
电子邮件:sophiaowaisbhatti@gmail.com

索菲娅欧维斯

sophiaowaisbhatti@gmail.com

aarthi arunagiri

你好,先生,我能帮我一个简单的3或5个发电机的动态负荷调度代码吗,先生?
我拿到了数据,发现编码有困难长官,我会很感激的

电子邮件:aarthiarunnaga@gmail.com

弗林摩泽尔河

先生,我是灰狼优化matlab代码
电子邮件:flynnmoselly@yahoo.fr

RAJESH PALAPARTHI

先生
灰狼优化技术的matlab代码
电子邮件:palaparthirajesh351@gmail.com

cy杨

您好,由于目标函数的输入是整数,如何将灰狼算法选择的最优参数设置为整数。谢谢你!

mahesh parimala

亲爱的先生,请您解释如何创建纸张中给出的搜索历史图。
电子邮件:g.sravan278@gmail.com

王wexia

我想知道它是否适用于机器人路径规划,但我还没有找到代码

Surbhi拉伊

阮Thieu

看看我的github,我用Python (Numpy)实现了这个算法,以获得更好的性能。
https://github.com/thieunguyen5991/metaheuristics

abrha hiluf

嘿,亲爱的,我如何使用GWO微网格优化,请如果你可以发送源代码比您的支持万博1manbetx

朱文昊切

shrivastava aayush

如何在这个程序中施加约束

Ratheesh P M

你好先生,
我们是否可以将GWO应用于图像融合(频域),如果可以,如何裁剪?

7 z

你好,先生

为什么每次运行这个程序,Best_pos的结果都不一样?期待您的回复!

7 z

你好,先生

为什么每次运行这个程序,Best_pos的结果都不一样?期待您的回复!

穆罕默德·安萨里

清除所有
clc

SearchAgents_no = 20;%搜索代理数

func_name =“DG1”;% F1 ~ F23的测试函数名称(本文表1、2、3)

Max_iteration = 100;%最大迭代次数

%加载选定基准函数的详细信息
[磅,乌兰巴托,昏暗,fobj] = Get_Functions_details(“DG1”);

[Best_score, Best_pos GWO_cg_curve] =拥有(SearchAgents_no Max_iteration,磅,乌兰巴托,昏暗,fobj);

图('Position',[500 500 660 290])
%画搜索空间
次要情节(1、2、1);
% func_plot (func_name);
标题(“参数空间”)
包含(x_1);
ylabel (x_2);
Zlabel ([func_name,'(x_1, x_2)'])

% %绘制客观空间
%次要情节(1、2、2);
% semilogy (GWO_cg_curve,“颜色”,“r”)
%标题(“客观空间”)
%包含(“迭代”);
% ylabel('到目前为止获得的最佳分数');

%轴紧
%网格
%框
%的传说(“拥有”)

display([' GWO获得的最佳解决方案是:',num2str(Best_pos)]);
显示([' GWO找到的目标函数的最佳最佳值是:',num2str(Best_score,'%10.9e\n')]);
第47行有人能告诉我吗

穆罕默德·安萨里

你好,
我在IEEE-14,33和69总线系统工作,我想申请在GWO谁能告诉我如何在matlab中使用GWO值

Taief阿拉

你好先生,
请,我想使用GWo为SVM分类器选择最佳RBF (sigma,c)参数。
但我不知道如何更改代码来解决我的问题。

你能给我点提示或者密码吗?
我的问候。

V s r pavan kumar neeli

你好,所有人
我已经在LFC问题中应用了这种GWO技术。
我得到的错误为
???下标下标必须是实正整数或逻辑数。

错误在==> GWO在50
健身= fobj(职位(我,:));
谁能解决我的错误,使之对我有帮助呢

玛丽亚tamoor

我使用GWO,但我想添加约束条件,所有变量的和应该是1…我不知道如何在GWO中实现约束?

Chiemela维克多Amaechi

你好,Seyedali,你能将GWO应用于海洋结构优化吗?如果有,你是如何定制它的?

Immad夏姆斯

亲爱的GWO主matlab文件不需要fobj。那是什么?是“F1”,“F2”.....?

eric githua

eric githua

Ekhlad Altaii

你好
我想要用MATLAB语言编写的灰狼算法的代码,请。

Kamalova阿宾娜

赛义德·阿里·

先生,如何输入目标函数

默罕默德·阿布eita

如何计算GWO中猎物的x_p。以及x_p在GWO中的角色。

Ajay Bhardwaj

你好seyedali先生,谢谢你的代码,我想加入等式约束,例如,如果需求pd= 100mw,发电量应该是100mw,你能提供这个问题的解决方案吗?谢谢先生,我等你的回复。

Ajay Bhardwaj

华莱士刘

enas malkawi

您好先生,这个GWO能解决经济调度问题吗?他们有任何matlab代码吗?

南希SIDHU

您好先生,首先恭喜您!这个超棒的技术。一个问题:当我使用我的目标函数在这段代码。全局最佳分数不随迭代而改变。例如,如果我已经进行了100次迭代,第一次迭代的值,在迭代和最后一次迭代之间保持相同。先生有什么建议吗?

marwa马文

嗨,先生
源代码还没有更新
请尽快给我

dalia elkashef

嗨。先生

我想问一下GWO-EPD的代码?

哈菲兹

您好先生,这个GWO能解决经济负荷调度问题吗?

Seyedali Mirjalili

嗨,Amr赫森,

感谢您发现了这个问题。你是对的。每次更新,我们都要更新。我会考虑这一点,并尽快更新文件。

Amr哈桑

你好,谢谢你的代码。好工作
只有一个担忧。如果我错了,请纠正我。当更新Alpha, Beta和Delta位置和得分时
(引用)
健身= fobj(职位(我,:));%Amr: best_tour =在tsp中计算旅行长度
%更新Alpha, Beta和Delta
如果健身< Alpha_score
Alpha_score =健身;%更新α
Alpha_pos =位置(我:);
结束
如果fitness>Alpha_score && fitnessBeta_score =健身;%更新测试
Beta_pos =位置(我:);
结束
如果fitness>Alpha_score && fitness>Beta_score && fitnessDelta_score =健身;%更新δ
Delta_pos =位置(我:);
结束
(/报价)
这不能正确地更新测试版和Delta。考虑一下这个场景:
例如,在第三次迭代后,alpha_score=1000, Beta_score=1200, Delta_score=1500
如果第4次迭代的适应度是800,那么alpha_score将被更新,beta_score将保持1200,而它应该是1000,delta_score也一样
提出了修正,

(引用)
健身= fobj(职位(我,:));%Amr: best_tour =在tsp中计算旅行长度
%更新Alpha, Beta和Delta
如果健身< Alpha_score
Beta_score = Alpha_score;
Beta_pos = Alpha_pos;
Alpha_score =健身;%更新α
Alpha_pos =位置(我:);
结束
如果fitness>Alpha_score && fitnessDelta_score = Beta_score;
Delta_pos = Beta_pos;
Beta_score =健身;%更新测试
Beta_pos =位置(我:);
结束
如果fitness>Alpha_score && fitness>Beta_score && fitnessDelta_score =健身;%更新δ
Delta_pos =位置(我:);
结束
(/报价)

伊曼

还Biguri

基于灰太狼行为的启发式算法。哇。哇。

Seyedali Mirjalili

嗨Dalia,

这个问题源于F5函数。

o =(100 *(x(2:dim) - (x(1:dim-1)。^ 2))。^ 2+(1-x(1:dim-1))。^ 2)返回向量,虽然每个搜索代理应该有一个适合值。
对于F5函数,公式前面有和,如下所示:
o =总和(100 * (x(2:昏暗的)——(x (1: dim-1)。^ 2))^ 2 + (x (1: dim-1) 1) ^ 2);

一般来说,每个搜索代理应该只分配一个适应度值。

更改您的F5功能,以便它返回每个输入向量的单个值,请尝试尝试,让我知道。

阿里

dalia elkashef

我试着解这个eq
函数o = F5(x)
昏暗的=大小(x, 2);
o = (100 * (x(2:昏暗的)——(x (1: dim-1)。^ 2))^ 2 + (1 - x (1: dim-1)) ^ 2);
结束

例“F5”
fobj = @F5;
磅= - [-1.5,2];
乌兰巴托= (2,2);
昏暗的= 2;
给我错误

||和&&操作符的操作数必须可转换为逻辑标量值。

ggo错误(第51行)
如果fitness>Alpha_score && fitness

main错误(第45行)
[Best_score, Best_pos GWO_cg_curve] =拥有(SearchAgents_no Max_iteration,磅,乌兰巴托,昏暗,fobj);
请帮助我

Seyedali Mirjalili

丹尼尔,

你是对的,一些搜索代理可能在最后一次迭代中超越了搜索空间的边界,没有更多的机会返回到搜索空间。我将位置边界检查移动到第二个for循环的末尾(在更新位置之后)。我也相应地更新了源文件。

谢谢,如果有其他问题请告诉我。

丹尼尔

Ali,当您进入循环进行第一次运行时,您的数据是在先验范围内(因为它是刚刚生成的)。当你做_last_循环迭代时,你可能会有一些搜索代理不在边界内,所以当你查看最终位置时,你可能会发现不正确的数据。
当我尝试使用整数值搜索代理时,我发现了这个:我的边界是1..10,但在最后一次循环迭代后,我得到了一些0的代理。也许对于实际价值来说,它没有那么重要。

Seyedali Mirjalili

嗨,丹尼尔,

谢谢你的赞扬和评论。我认为当前的代码是正确的,因为当你想要计算它们的“适合度”时,返回那些超越边界的搜索代理是很重要的。我同意你的观点,我们可以在第二个for循环结束的时候做这个在位置被更新的时候或者在firs for循环的顶部。然而,这里的重要问题是,边界检查应该在更新适应度之前完成。我希望这些有意义。再次感谢您的警惕和指出这件事。

问候,
阿里

丹尼尔

嗨。伟大的优化器。谢谢你!
我发现了一个问题:我们需要在“for”循环的底部做“返回超出搜索边界的粒子”,而不是在顶部。

MATLAB版本兼容性
创建R2011b
与任何版本兼容
平台的兼容性
窗户 macOS Linux

社区寻宝

在MATLAB中心找到宝藏,并发现社区如何可以帮助你!

开始狩猎!