首页 > 其他分享 >基于GWO灰狼优化的生产线工件工序调度优化matlab仿真,仿真输出优化收敛曲线和工序调度甘特图

基于GWO灰狼优化的生产线工件工序调度优化matlab仿真,仿真输出优化收敛曲线和工序调度甘特图

时间:2023-05-28 11:35:07浏览次数:42  
标签:仿真 猎物 工序 fit pos 灰狼 ii 优化 find

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) == 2
     p1 = 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))>=2
     p1 = 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))==1
     p1 = p{pos(1)};
     p2 = p{find(fit ==fit_2)};
     pos3 = find(fit == fit_3);
     p3 = p{pos3(1)};
 end
 
for i=1:N         
     p5=p1;        %为防止p1,p2,p3的数值发生变化,赋值给p5,p6,p7
     p6=p2;
     p7=p3;
    if i == 1     %将前三个最好的解放入下一代数的前三个解,保证最优解不会变坏
        newp{1} = p5;   
    elseif i==2
        newp{2}= p6;
    elseif i==3
        newp{3} = p7;
    elseif i>3
        p4 = p{i-3};   %将其余的灰狼取出
        for ii=1:m     %进行位置信息转换
            for j =1:n
                if length(find(s{ii,j}(1,:)==p5(ii,j)))>1
                    p5(ii,j) = 0;
                else
                    p5(ii,j) = find(s{ii,j}(1,:)==p5(ii,j));
                end
                if length(find(s{ii,j}(1,:)==p6(ii,j)))>1
                    p6(ii,j) = 0;
                else
                    p6(ii,j) = find(s{ii,j}(1,:)==p6(ii,j));
                end
                if length(find(s{ii,j}(1,:)==p7(ii,j)))>1
                    p7(ii,j) = 0;
                else
                    p7(ii,j) = find(s{ii,j}(1,:)==p7(ii,j));
                end
                if length(find(s{ii,j}(1,:)==p4(ii,j)))>1
                    p4(ii,j) = 0;
                else
                    p4(ii,j) = find(s{ii,j}(1,:)==p4(ii,j));
                end
            end
        end

 

  

 

标签:仿真,猎物,工序,fit,pos,灰狼,ii,优化,find
From: https://www.cnblogs.com/51matlab/p/17437970.html

相关文章

  • m基于ABC人工蜂群优化的无线传感器网络路由优化算法matlab仿真,对比优化前后网络寿命,
    1.算法仿真效果matlab2022a仿真结果如下:2.算法涉及理论知识概要无线传感器网络通常使用电池电源,因此能量有限,属于一次性使用。因此,无线传感器网络在原理和应用平台上都有自己的特点:•有限的能源和存储容量传感器节点通常布置在无人值守的运行环境中,节点能量由电池提供,但在......
  • m基于ABC人工蜂群优化的无线传感器网络路由优化算法matlab仿真,对比优化前后网络寿命,
    1.算法仿真效果matlab2022a仿真结果如下:       2.算法涉及理论知识概要       无线传感器网络通常使用电池电源,因此能量有限,属于一次性使用。因此,无线传感器网络在原理和应用平台上都有自己的特点: •有限的能源和存储容量        传感器......
  • Matlab中用m代码来控制运行Simulink仿真过程
    ✅作者简介:热爱科研的算法开发者,Python、Matlab项目可交流、沟通、学习。......
  • 每天都有一点新发现:Questa的Verilog仿真
        在自己的电脑里安装了QuestaIntelStarter和ModelSimStarter版本,因为不熟悉Questa,但是搜索了一下,发现它和ModelSim几乎是完全一样的。准备后续尽可能多的练习Questa的使用。    在Verilog里很多教材都会提供代码和生成的电路,今早用Questa试了一下生成的电路,......
  • Qemu仿真----(9)运行Debian Rootfs
    平台:ubuntu-22.04-desktop-amd64.对象:debianrootfs、qemu.文件:linux-6.1.26.tar.xz本例通过qemu运行debianrootfsforarm64。1.安装依赖$sudoaptinstallbinfmt-supportqemu-user-staticqemu-system-aarch64gcc-aarch64-linux-gnudebootstrap2.下载文件linux-......
  • 性能优化
    性能优化概述不同硬件配置、不同操作系统平台上性能表现是不一样的。另外,随着数据增多,性能下降无法避免。所以我们可能需要改变使用方式并调整一些配置项来提升性能,以获得更流畅的使用体验。整体性能内容块数量:内容块数量对性能影响范围较大,比如展开文档树、搜索、数据写入等......
  • 基于GoogleNet深度学习网络的人员身份识别系统Matlab仿真
    1.算法仿真效果matlab2022a仿真结果如下:  2.算法涉及理论知识概要       深度学习(DL,DeepLearning)是机器学习(ML,MachineLearning)领域中一个新的研究方向,它被引入机器学习使其更接近于最初的目标——人工智能(AI,ArtificialIntelligence)。[1深度学习是学习样本数据......
  • 基于MIMO-OFDM通信系统的误码率matlab仿真,对比了MRC,ZF等多种接收器性能
    1.算法仿真效果matlab2022a仿真结果如下:  2.算法涉及理论知识概要    MIMO-OFDM系统的接收信号是多个发射天线发送信号的衰落与加性噪声的线性叠加,若采用通常SISO-OFDM系统或MIMO系统的估计算法估计信道,将会带来很大的估计误差。出于设计实现的考虑,本文主要研究理论相......
  • 基于GoogleNet深度学习网络的人员身份识别系统Matlab仿真
    1.算法仿真效果matlab2022a仿真结果如下:2.算法涉及理论知识概要深度学习(DL,DeepLearning)是机器学习(ML,MachineLearning)领域中一个新的研究方向,它被引入机器学习使其更接近于最初的目标——人工智能(AI,ArtificialIntelligence)。[1深度学习是学习样本数据的内在规律和表示层次,这......
  • 武汉星起航:布局亚马逊欧洲站关键策略—选品和运营的双重优化
    亚马逊欧洲站点是一个庞大而充满潜力的电商市场,对于卖家来说,优化选品和运营至关重要。通过精选适宜的产品并进行有效的运营,您可以在这个竞争激烈的市场中取得成功。武汉星起航将为您介绍一些关键策略,帮助您在亚马逊欧洲站点上实现双重优化。一、精选适宜的产品在选品过程中,以下策略......