基于GWO灰狼优化的生产线工件工序调度优化matlab仿真,仿真输出优化收敛曲线和工序调度甘特图
目录
1.算法仿真效果
2.算法涉及理论知识概要
3.MATLAB核心程序
4.完整算法代码文件
1.算法仿真效果
matlab2022a仿真结果如下:
2.算法涉及理论知识概要
灰狼优化算法(GWO),灵感来自于灰狼.GWO算法模拟了自然界灰狼的领导层级和狩猎机制.四种类型的灰狼,如 α,β,δ,w 被用来模拟领导阶层。此外,还实现了狩猎的三个主要步骤:寻找猎物、包围猎物和攻击猎物。
为了在设计GWO算法时对灰狼的社会等级进行数学建模,我们将最适解作为α .因此,第二和第三个最佳解决方案分别被命名为 β 和 δ .剩下的候选解被假定为 w .在GWO算法中,狩猎过程由 ,α,β 和 δ 引导. w 狼跟随这三只狼。
在狩猎过程中,将灰狼围捕猎物的行为定义如下:
D=|C⋅Xp(t)−X(t)| (1)
X(t+1)=Xp(t)−A⋅D (2)
式(1)表示个体与猎物间的距离,式(2)是灰狼的位置更新公式.其中, t 是目前的迭代代数, A 和 C 是系数向量, Xp 和 X 分别是猎物的位置向量和灰狼的位置向量. A 和 C 的公式如下:
A=2a⋅r1−a (3)
C=2⋅r2 (4)
其中, a 是收敛因子,随着迭代次数从2线性减小到0, r1 和 r2 的模取[0,1]之间的随机数.
2.2 狩猎
灰狼能够识别猎物的位置并包围它们.当灰狼识别出猎物的位置后, β 和 δ 在 α 的带领下指导狼群包围猎物.灰狼个体跟踪猎物位置的数学模型描述如下:
Dα=|C1⋅Xα−X|
Dβ=|C2⋅Xβ−X| (5)
Dδ=|C3⋅Xδ−X|
其中, Dα , Dβ和 Dδ 分别表示 α,β 和 δ 与其他个体间的距离; Xα,Xβ 和 Xδ 分别代表 α,β 和 δ 当前位置; C1,C2,C3 是随机向量, X 是当前灰狼的位置。
X1=Xα−A1⋅(Dα)
X2=Xβ−A2⋅(Dβ) (6)
X3=Xδ−A3⋅(Dδ)
X(t+1)=X1+X2+X33 (7)
式(6)分别定义了狼群中 w 个体朝向 α,β 和 δ 前进的步长和方向,式(7)定义了ω的最终位置。
2.3 攻击猎物
当猎物停止移动时,灰狼通过攻击来完成狩猎过程.为了模拟逼近猎物, a 的值被逐渐减小,因此 A 的波动范围也随之减小.换句话说,在迭代过程中,当 a 的值从2线性下降到0时,其对应的 A 的值也在区间 [−a,a] 内变化.如图3所 示,当 A 的值位于区间内时,灰狼的下一位置可以位于其当前位置和猎物位置之间的任意位置.当 |A|<1 时,狼群向猎物发起攻击(陷入局部最优).当 |A|>1 时,灰狼与猎物分离,希望找到更合适的猎物(全局最优).
GWO算法还有另一个组件 C 来帮助发现新的解决方案.由式(4)可知, C 是[0,2]之 间 的随机值. C 表示狼所在的位置对猎物影响的随机权重, C>1 表示影响权重大,反之,表示影响权重小.这有助于GWO算法更随机地表现并支持探索,同时可在优化过程中避免陷入局部最优.另外,与 A 不同, C 是非线性减小的.这样,从最初的迭代到最终的迭代中,它都提供了决策空间中的全局搜索.在算法陷入了局部最优并且不易跳出时, C 的随机性在避免局部最优方面发挥了非常重要的作用,尤其是在最后需要获得全局最优解的迭代中.
3.MATLAB核心程序
function [newp,newTN] = GWO(fit,p,TN,N,m,n,s,a)
newp = cell(N,1);
newTN = cell(N,1);
fit_sort = sort(fit);
fit_1 = fit_sort(1);
fit_2 = fit_sort(1);
fit_3 = fit_sort(1);
pos = find(fit == fit_1);if length(pos)>=3; p1 = p{pos(1)};p2 = p{pos(2)};p3 = p{pos(3)};elseif length(pos) == 2p1 = p{pos(1)};p2 = p{pos(2)};pos1 = find(fit==fit_3);p3 = p{pos1(1)};elseif length(pos) == 1 && length(find(fit ==fit_2))>=2p1 = p{pos(1)};pos2 = find(fit ==fit_2);p2 = p{pos2(1)};p3 = p{pos2(2)};elseif length(pos) == 1 && length(find(fit ==fit_2))==1p1 = p{pos(1)};p2 = p{find(fit ==fit_2)};pos3 = find(fit == fit_3);p3 = p{pos3(1)};endfor i=1:N p5=p1; %为防止p1,p2,p3的数值发生变化,赋值给p5,p6,p7p6=p2;p7=p3;if i == 1 %将前三个最好的解放入下一代数的前三个解,保证最优解不会变坏newp{1} = p5; elseif i==2newp{2}= p6;elseif i==3newp{3} = p7;elseif i>3p4 = p{i-3}; %将其余的灰狼取出for ii=1:m %进行位置信息转换for j =1:nif length(find(s{ii,j}(1,:)==p5(ii,j)))>1p5(ii,j) = 0;elsep5(ii,j) = find(s{ii,j}(1,:)==p5(ii,j));endif length(find(s{ii,j}(1,:)==p6(ii,j)))>1p6(ii,j) = 0;elsep6(ii,j) = find(s{ii,j}(1,:)==p6(ii,j));endif length(find(s{ii,j}(1,:)==p7(ii,j)))>1p7(ii,j) = 0;elsep7(ii,j) = find(s{ii,j}(1,:)==p7(ii,j));endif length(find(s{ii,j}(1,:)==p4(ii,j)))>1p4(ii,j) = 0;elsep4(ii,j) = find(s{ii,j}(1,:)==p4(ii,j));endendendp4 = ceil((p5-(2*a*rand-a).*((2*rand).*p5-p4)+p6-(2*a*rand-a).*((2*rand).*p6-p4)+p7-(2*a*rand-a).*((2*rand).*p7-p4))/3);%灰狼位置更新公式for ii = 1:m %将位置信息转换回机器号for j = 1:nif length(s{ii,j}(1,:))>p4(ii,j) || length(s{ii,j}(1,:))<p4(ii,j)p4(ii,j) = s{ii,j}(1,ceil(rand*length(s{ii,j}(1,:))));elsep4(ii,j) = s{ii,j}(1,p4(ii,j));endendendnewp{i} = p4;endfor ii = 1:m %对机器号对应的时间进行更新for j= 1:npos = find(s{ii,j}(1,:)==newp{i}(ii,j));p8(ii,j) = s{ii,j}(2,pos(1));endendnewTN{i} = p8;
end
A584
4.完整算法代码文件
V
基于GWO灰狼优化的生产线工件工序调度优化matlab仿真,仿真输出优化收敛曲线和工序调度甘特图相关推荐
- ACO蚁群算法优化BP神经网络(ACO-BPNN)回归预测MATLAB代码(有优化前后的对比)
ACO蚁群算法优化BP神经网络(ACO-BPNN)回归预测MATLAB代码(有优化前后的对比) 代码注释清楚. main为运行主程序,可以读取本地EXCEL数据. 很方便,容易上手. (以电厂运行数据 ...
- 伺服系统基于陷波滤波器双惯量伺服系统机械谐振抑制matlab Simulink仿真
伺服系统基于陷波滤波器双惯量伺服系统机械谐振抑制matlab Simulink仿真 1.模型简介 模型为基于陷波滤波器的双惯量伺服系统机械谐振抑制仿真,采用Matlab R2018a Simulink ...
- SSA麻雀算法优化BP神经网络(SSA-BPNN)回归预测MATLAB代码(有优化前后的对比
SSA麻雀算法优化BP神经网络(SSA-BPNN)回归预测MATLAB代码(有优化前后的对比) 代码注释清楚. main为运行主程序,可以读取本地EXCEL数据. 很方便,容易上手. (以电厂运行数据 ...
- 【MATLAB教程案例16】基于GWO灰狼优化算法的函数极值计算matlab仿真及其他应用
FPGA教程目录 MATLAB教程目录 目录 1.软件版本 2.GWO灰狼优化算法的理论知识 2.1包围 2.2追捕 2.3攻击
- gwo算法matlab源代码,智能优化算法应用:基于GWO优化BP神经网络 - 附代码
智能优化算法应用:基于GWO优化BP神经网络 - 附代码 智能优化算法应用:基于GWO优化BP神经网络 - 附代码 智能优化算法应用:基于GWO优化BP神经网络 文章目录智能优化算法应用:基于GWO优 ...
- PSO粒子群算法优化BP神经网络(PSO-BPNN)回归预测MATLAB代码
PSO粒子群算法优化BP神经网络(PSO-BPNN)回归预测MATLAB代码(有优化前后的对比) 代码注释清楚. main为运行主程序,可以读取本地EXCEL数据,也可以加载本地数据.mat,使用换自 ...
- 【车间调度】基于灰狼优化算法求解柔性作业车间问题matlab源码
一.简介 Grey Wolf Optimizer是Seyedali Mirjalili受大灰狼捕食策略的启发,于2014年提出的一种元启发式算法,主要模拟了搜索猎物.包围猎物和攻击猎物,源代码关注公众 ...
- 【回归预测-BP预测】基于灰狼算法优化BP神经网络实现数据回归预测附matlab代码
1 内容介绍 Mirjalili 等在 2014 年 提 出 了 灰 狼 优 化 ( Grey Wolf Optimizer,GWO) 算法,是一种新型群智能优化算法,通过模拟自然界中灰狼寻找.包围和 ...
- 灰狼算法 c语言 代码,GWO灰狼优化算法
1.算法原理 灰狼属于犬科动物,被认为是顶级的掠食者,它们处于生物圈食物链的顶端.灰狼大多喜欢群居,每个群体中平均有5-12只狼.特别令人感兴趣的是,它们具有非常严格的社会等级层次制度,如图1,金字塔 ...
最新文章
- Javascript调试技巧整理
- sihpostreboot 权限_记一次使用post请求重启TP-LINK TL-WDR7661路由
- angular字符串转成html,详解angular如何调用HTML字符串的方法
- el表达式,c标签的使用
- mysql 4升级,MySQL_Sql_打怪升级_进阶篇_进阶4:常见函数
- Eclipse怎么全局搜索替换(整个项目)
- ctypealpha php_PHP Ctype函数(转)
- XML 数据挖掘 之 挖掘 XML 关联规则
- ztree同级只显示一个节点
- 【持久层】Druid简介
- wget下载网络图片
- pdf转图片文字丢失,字体映射替换
- 背包问题(Knapsack Problem) ----- 蛮力法
- Android 自定义圆角TextView控件 带边框 非shape
- java freemark导出word 实现word分页
- python公众号文章_Python 抓取微信公众号文章
- 身份证、手机号、邮箱、银行卡、企业税号等正则校验
- 力扣 26.删除有序数组中的重复项
- Android自定义View之图形图像(模仿360的刷新球自定义一个SeekBar)
- 【PCL自学:Segmentation3】基于PCL的点云分割:区域增长分割
热门文章
- 杂谈_小米电纸书折腾手记
- [附源码]java+ssm计算机毕业设计java未来新型养老院管理系统7vhm1【源码、数据库、LW、部署】
- FB中国学徒今何在:开心网不开心 微博“萎”了
- 搜索引擎资料收藏(转)
- Zabbix配置企业微信报警机器人
- cad中直径符号不显示_CAD字体不显示怎么解决?
- spark视频-Spark on Docker深入揭秘
- 【云栖大会】英国气象局联手阿里云寻找最聪明智能算法为“反重力无人飞行器”护航...
- Quark-Renderer-----第九篇
- 单片机计算机实训总结,单片机实习心得体会范文