图像缩略图

灰狼优化器(GWO)

1.6版(1.85 MB) Seyedali mirjalili.
GWO是一种新颖的元启发式全局优化算法
4.8
15次评级

218下载

更新2018年5月22日

查看版本历史记录

查看许可协议

该算法模拟了自然界中灰狼的领导阶层和捕猎机制。四种类型的灰狼,如阿尔法、贝塔、德尔塔和欧米茄被用来模拟领导阶层。另外,通过搜索猎物、包围猎物和攻击猎物三个主要的狩猎步骤进行优化。
这是论文的源代码:S. Mirjalili,S. M. Mirjalili,A. Lewis,Gree Wolf Optimizer,工程软件的进步,2014年3月3日,第46-61页,ISSN 0965-9978,http://dx.doi.org/10.1016/j.adventsoft.2013.12.007
更多信息可以找到:http://www.alimirjalili.com/gwo.html.
您可以在此找到灰狼优化工具箱://www.tatmou.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/geneticalgorithm/?couponCode=MATHWORKSREF
*******************************************************************************************************************************************

引用

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

评论和评级(44.

Rajesh Paraparthi.

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

Cy Yang.

嗨,如何将灰狼算法选择的最佳参数设置为整​​数,因为目标函数的输入是整数。谢谢你!

mahesh parimala

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

威西王

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

surbhi rai.

Nguyen Thieu.

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

abrha hiluf

嘿,亲爱的,如果您可以发送源代码,我如何使用GWO进行Micro GRID优化,而不是您的支持金宝app

文豪特

shrivastava aayush

如何将限制放入此计划中

Ratheesh P M.

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

七z.

你好,先生

为什么每次运行该程序时都是eST_POS的结果?我期待着你的回复!

七z.

你好,先生

为什么每次运行该程序时都是eST_POS的结果?我期待着你的回复!

穆罕默德·安萨里

清除所有
CLC.

searchagenes_no = 20;%搜索代理数量

func_name ='dg1';可以从F1到F23的测试函数的%名称(表1,2,3)

max_iteration = 100;%最大迭代次数

%加载所选基准函数的详细信息
[LB,UB,DIM,FOBJ] = get_functions_details('dg1');

[best_score,best_pos,gwo_cg_curve] = gwo(searchagents_no,max_entation,lb,Ub,dim,fobj);

图('位置',[500 500 660 290])
%绘制搜索空间
次要情节(1、2、1);
%func_plot(func_name);
标题('参数空间')
Xlabel('x_1');
ylabel('x_2');
Zlabel ([func_name,'(x_1, x_2)'])

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

%轴紧
%网格
%框
%传奇('GWO')

display([' GWO获得的最佳解决方案是:',num2str(Best_pos)]);
显示(['GWO发现的客观磁力的最佳值是:',Num2STR(BEST_SCORE,'%10.9E \ n')]);
第47行有人能告诉我吗

穆罕默德·安萨里

嗨,
我在IEEE-14,33和69巴士系统中工作,我想申请GWO可以告诉我如何将价值观GWO在MAT-LAB上

Abhishek Gupta.

尖锐阿拉

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

拜托,你能给我任何提示还是代码?
我的问候。

V S R Pavan Kumar Neeli

你好
我已经在LFC问题中应用了这种GWO技术。
我得到的错误为
???subscript指数必须是真正的正整数或逻辑。

错误在==> GWO在50
fitness = fobj(位置(我,:));
可以任何人解决我的错误,以便对我有所帮助

玛丽亚tamoor

我用过gwo,但我想加上所有变量的总和......我没有得到如何在gwo实施约束?

Chiemela Victor Amaechi.

嗨Seyedali,你能在海上结构优化上涂抹GWO吗?如果是这样,你如何量身定制?

Immad夏姆斯

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

Eric Githua.

Eric Githua.

Ekhlad Altaii

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

Kamalova Albina.

赛义德·阿里·

爵士如何输入目标函数

默罕默德·阿布eita

我们如何在GWO中计算捕食的X_P。以及,X_P在GWO中的作用是什么。

Ajay Bhardwaj

你好Seyedali先生,谢谢你的代码,我想加入平等约束,例如,如果需求Pd = 100 MW,一代应该是100兆瓦,你能为这个问题提供解决方案。谢谢先生,我会等你的回复。

Ajay Bhardwaj

华莱士刘

enas malkawi

嗨主席先生,这个gwo可以解决经济调度问题吗?这是一个matlab代码的吗?

南希SIDHU

你好先生,首先,祝贺!对于这种令人敬畏的技术。一个问题:当我在此代码中使用我的客观函数时。全球最佳分数不会随着迭代而变化。例如,如果我拍摄了100次迭代在第1次迭代时的值,则在迭代和最后一次迭代之间保持不变。任何建议先生?

Marwa Marwan.

嗨先生
源代码尚未更新
请尽快需要它

Dalia Elkashef.

嗨。先生

我想问你关于GWO-EPD的代码?

哈菲兹

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

Seyedali mirjalili.

嗨,Amr赫森,

我感谢您识别此问题。你是对的。每次alpha更新,我们都必须更新beta和delta。我会考虑一下这个并很快更新文件。

AMR Hassan.

你好,谢谢你的代码。好工作
只有一个问题。如果我错了,请纠正我。更新Alpha,Beta和Delta位置和得分时
(引用)
fitness = fobj(位置(我,:));%AMR:BEST_TOUR =计算TSP中的旅游长度
%更新alpha,beta和delta
如果健身< Alpha_score
alpha_score =健身;%更新alpha.
alpha_pos = positions(i,:);
结束
如果fitness>Alpha_score && fitnessBeta_score =健身;%更新测试
beta_pos =位置(我,:);
结束
如果健身> alpha_score && fitness> beta_score && fitness Delta_score =健身;%更新δ
delta_pos =位置(我,:);
结束
[/ quote]
这无法正确更新beta和delta。考虑此方案:
例如,在第3次迭代之后,Beta_Score = 1200,Delta_Score = 1500
如果第4次迭代的适应性为800,则将更新Alpha_Score,并且Beta_Score将保持1200,而Delta_Score应该为1000且相同
提出纠正,

(引用)
fitness = fobj(位置(我,:));%AMR:BEST_TOUR =计算TSP中的旅游长度
%更新alpha,beta和delta
如果健身< Alpha_score
beta_score = alpha_score;
Beta_pos = Alpha_pos;
alpha_score =健身;%更新alpha.
alpha_pos = positions(i,:);
结束
如果fitness>Alpha_score && fitnessdelta_score = beta_score;
Delta_pos = Beta_pos;
Beta_score =健身;%更新测试
beta_pos =位置(我,:);
结束
如果健身> alpha_score && fitness> beta_score && fitness Delta_score =健身;%更新δ
delta_pos =位置(我,:);
结束
[/ quote]

伊曼

还Biguri

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

Seyedali mirjalili.

嗨Dalia,

此问题源自您的F5功能。

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

一般来说,每个搜索代理都应该仅分配一个健身值。

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

阿里

Dalia Elkashef.

我试图解决这个方面
功能o = f5(x)
dim =尺寸(x,2);
o =(100 *(x(2:dim) - (x(1:dim-1)。^ 2))。^ 2+(1-x(1:dim-1))。^ 2);
结束

案例'F5'
fobj = @F5;
LB = - [ - 1.5,-2];
UB = [2,2];
昏暗= 2;
给我错误

操作数到||&& &&运算符必须转换为逻辑标量值。

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

主要错误(第45行)
[best_score,best_pos,gwo_cg_curve] = gwo(searchagents_no,max_entation,lb,Ub,dim,fobj);
请帮助我

Seyedali mirjalili.

丹尼尼尔,

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

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

丹尼里尔

ALI,当您输入第一个运行的循环时,您的数据在界限APRIORI(因为它刚刚生成)。当您执行_last_循环迭代时,您可能有一些不在界限的搜索代理,因此当您在最终位置时,您可能会发现错误的数据。
当我尝试使用带有整数值的搜索代理时找到了这一点:我的界限为1 ......在最后的循环迭代之后,我几个带有0的代理。也许对于真正的值,它不会那么重要。

Seyedali mirjalili.

嗨,丹尼尔,

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

问候,
阿里

丹尼里尔

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

Matlab释放兼容性
用R2011B创建
兼容任何释放
平台的兼容性
窗户 麦克斯 Linux

社区宝藏狩猎

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

开始狩猎!