ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

【优化求解】基于matlab改进的灰狼算法求解重油热解优化模型【含Matlab源码 164期】

【优化求解】基于matlab改进的灰狼算法求解重油热解优化模型【含Matlab源码 164期】 欢迎来到海神之光博客之家✅博主简介热爱科研的Matlab仿真开发者修心和技术同步精进个人主页海神之光代码获取方式海神之光Matlab王者学习之路—代码获取方式⛳️座右铭行百里者半于九十。更多Matlab优化求解仿真内容点击①Matlab优化求解 进阶版②付费专栏Matlab优化求解初级版⛳️关注CSDN海神之光更多资源等你来⛄一、灰狼算法简介Grey Wolf Optimizer是Seyedali Mirjalili受大灰狼捕食策略的启发于2014年提出的一种元启发式算法主要模拟了搜索猎物、包围猎物和攻击猎物源代码关注公众号后回复灰狼或GWO获取。启发灰狼属于犬科动物是食物链顶端的顶级掠食者它们大多喜欢群居生活每个种群平均5~12不等。特别有趣的是它们有非常严格的社会等级如下图所示。图1 灰狼分层领头狼领导者是一公一母称为alphas个人理解之所以这么叫是因为alpha是希腊字幕中的第一个用来表示最前面的。alpha狼主要负责决策狩猎、睡觉地点、起床时间等等然后再将决策下达至整个种群如果狼群垂下尾巴说明它们都认可。然而种群中也会存在民主行为alpha狼也会听从种群中的其他狼。有趣的是alpha狼不一定是最强壮的成员但在管理团队方面是最好的。这说明一个狼群的组织和纪律远比它的力量重要。第二层是beta。deta狼是从属狼可公可母用于辅助alpha狼制定决策或其他种群活动。当其中一只alpha狼去世或变老时它就是alpha狼的最佳替补。beta狼应该遵从alpha狼但也会命令其他低级别的狼因而起到承上启下的作用。最底层的是omega狼。它们扮演了替罪羊的角色好惨,必须屈服于其他领头狼进食时也是排在最后。看起来omega狼在狼群中并不是一个重要的个体但是一旦失去omega狼整个狼群就会面临内部争斗和问题。如果一头狼既不是alphabeta也不是omega就称为从属狼或delta狼。delta狼必须听从于alpha和beta狼但会支配omega狼。侦察狼、守卫狼、老狼、捕食狼和看管狼都是这一类。侦察狼负责监视领地的边界一旦有危险就向狼群发出警告守卫狼保护和保证狼群的安全老狼是从alpha或beta退下来的经验丰富的狼捕食狼帮助alpha和beta捕猎并为狼群提供食物看管狼负责照顾狼群中的老弱病残。除此之外群体狩猎是灰狼的另一个有趣的社会行为主要包括以下几个阶段跟踪、追逐和接近猎物追捕、包围和骚扰猎物直到它停止移动向猎物发起攻击。图2 灰狼捕食行为(A)追逐、接近和跟踪猎物。(B-D)追捕、骚扰和包围猎物。(E)静止状态与攻击数学模型和算法首先给出社会等级、跟踪、包围和攻击猎物的数学模型然后再提供完整的GWO算法。社会等级为了在设计GWO时对狼的社会等级进行数学建模认为最合适的解是alpha(α \alphaα)那么第二和第三最优解分别表示为beta(β \betaβ)和delta(δ \deltaδ),而剩余其他解都假定为omega(ω \omegaω)。在GWO中通过α \alphaα、β \betaβ和δ \deltaδ来导引捕食优化ω \omegaω听从于这三种狼。包围捕食灰狼在捕食时会将猎物包围使用下式进行表达这种行为D ⃗ ∣ C ⃗ ⋅ X p → ( t ) − X ⃗ ( t ) ∣ (1) \vec{D}|\vec{C} \cdot \overrightarrow{X_{p}}(t)-\vec{X}(t)|\tag{1}D∣C⋅Xp​​(t)−X(t)∣(1)X ⃗ ( t 1 ) X p → ( t ) − A ⃗ ⋅ D ⃗ (2) \vec{X}(t1)\overrightarrow{X_{p}}(t)-\vec{A} \cdot \vec{D}\tag{2}X(t1)Xp​​(t)−A⋅D(2)其中t tt表示当前迭代次数A ⃗ \vec{A}A和C ⃗ \vec{C}C为系数向量X p → \overrightarrow{X_{p}}Xp​​是猎物的位置向量X ⃗ \vec{X}X是灰狼的位置向量。向量A ⃗ \vec{A}A和C ⃗ \vec{C}C的计算如下A ⃗ 2 a ⃗ ⋅ r ⃗ 1 − a ⃗ (3) \vec{A}2 \vec{a} \cdot \vec{r}_{1}-\vec{a}\tag{3}A2a⋅r1​−a(3)C ⃗ 2 ⋅ r 2 → (4) \vec{C}2 \cdot \overrightarrow{r_{2}}\tag{4}C2⋅r2​​(4)其中a ⃗ \vec{a}a的各个分量在迭代过程中线性地从2减少到0r ⃗ 1 \vec{r}{1}r1​和r 2 → \overrightarrow{r{2}}r2​​为[0,1]之间的随机向量。为了清楚地反映等式(1)和(2)的效果图3(a)中显示了二维的位置向量以及可能的邻域可以看出灰狼的位置( X , Y ) (X,Y)(X,Y)可以根据猎物的位置( X ∗ , Y ∗ ) (X*,Y)(X∗,Y∗)进行更新通过调整A ⃗ \vec{A}A和C ⃗ \vec{C}C的值可以在最优代理周围到达相对于当前位置的不同地方。例如当A ⃗ ( 0 , 1 ) \vec{A}(0,1)A(0,1)和C ⃗ ( 1 , 1 ) \vec{C}(1,1)C(1,1)时灰狼的新位置为( X ∗ − X , Y ∗ ) (X*-X,Y)(X∗−X,Y∗)。三维空间中也是类似。注意此处的两张图仅仅展示了A ⃗ ( 0 , 1 ) \vec{A}(0,1)A(0,1)和C ⃗ ( 1 , 1 ) \vec{C}(1,1)C(1,1)这一种情况当随机向量r 1 r_1r1​和r 2 r_2r2​取不同的值时灰狼可以到达任意两点之间的位置。同时还注意到A AA的取值不同还会决定灰狼靠近还是远离猎物后面再详细说明。图3 2D和3D位置向量及其可能的下一位置狩猎灰狼能够识别猎物的位置并包围它们狩猎通常是是由alpha狼领导的beta和和delta狼偶尔也会参与狩猎。然而在一个抽象的搜索空间中我们不知道最佳(猎物)的位置。为了在数学上模拟灰狼的狩猎行为我们假设alpha(最佳候选解)、beta和delta狼对猎物的潜在位置有更好的了解。因此我们保存到目前为止获得的前三个最佳解并迫使其他搜索代理(包括omegas)根据最佳搜索代理的位置更新其位置。对此提出以下公式D α → ∣ C ⃗ 1 ⋅ X α → − X ⃗ ∣ , D β → ∣ C ⃗ 2 ⋅ X β → − X ⃗ ∣ , D δ → ∣ C 3 → ⋅ X δ → − X ⃗ ∣ (5) \overrightarrow{D_{\alpha}}\left|\vec{C}{1} \cdot \overrightarrow{X{\alpha}}-\vec{X}\right|, \overrightarrow{D_{\beta}}\left|\vec{C}{2} \cdot \overrightarrow{X{\beta}}-\vec{X}\right|, \overrightarrow{D_{\delta}}|\overrightarrow{C_{3}} \cdot \overrightarrow{X_{\delta}}-\vec{X}|\tag{5}Dα​​∣∣∣​C1​⋅Xα​​−X∣∣∣​,Dβ​​∣∣∣​C2​⋅Xβ​​−X∣∣∣​,Dδ​​∣C3​​⋅Xδ​​−X∣(5)X 1 → X α → − A 1 → ⋅ ( D α → ) , X 2 → X β → − A 2 → ⋅ ( D β → ) , X 3 → X δ → − A 3 → ⋅ ( D δ → ) 6 ) (() \overrightarrow{X_{1}}\overrightarrow{X_{\alpha}}-\overrightarrow{A_{1}} \cdot(\overrightarrow{D_{\alpha}}), \overrightarrow{X_{2}}\overrightarrow{X_{\beta}}-\overrightarrow{A_{2}} \cdot(\overrightarrow{D_{\beta}}), \overrightarrow{X_{3}}\overrightarrow{X_{\delta}}-\overrightarrow{A_{3}} \cdot(\overrightarrow{D_{\delta}})\tag(6)X1​​Xα​​−A1​​⋅(Dα​​),X2​​Xβ​​−A2​​⋅(Dβ​​),X3​​Xδ​​−A3​​⋅(Dδ​​)6)(()X ⃗ ( t 1 ) X 1 → X 2 → X 3 → 3 (7) \vec{X}(t1)\frac{\overrightarrow{X_{1}}\overrightarrow{X_{2}}\overrightarrow{X_{3}}}{3}\tag{7}X(t1)3X1​​X2​​X3​​​(7)图4展示了2D空间中如何根据alphabeta和delta进行代理位置的更新。可以看到最终位置将是圆内的一个随机位置该圆由alpha、beta和delta定义换句话说alpha、beta和delta狼对猎物的位置进行估计而其他狼则再猎物周围随机更新它们的位置。图4 GWO中的位置更新示意图攻击猎物利用正如上面提到的当猎物停止移动时灰狼就会攻击它来完成狩猎。为了对接近猎物进行建模需要不断降低a ⃗ \vec aa的值那么A ⃗ \vec AA的波动范围也会降低。当A ⃗ ∈ [ − 1 , 1 ] \vec A\in[-1,1]A∈[−1,1]搜索代理的下一位置可以是代理当前位置和猎物位置之间的任意位置。图5(a)表明当∣ A ∣ 1 |A|1∣A∣1时灰狼向猎物发起攻击。图5 猎物攻击vs搜索猎物搜索猎物探索灰狼通常根据alpha、beta和delta狼的位置进行搜索它们彼此分散寻找猎物然后汇聚攻击猎物。为了数学上对分散建模利用随机值大于1或小于-1的A ⃗ \vec AA迫使搜索代理偏离猎物从而保证了探索。图5(b)表明当∣ A ∣ 1 |A|1∣A∣1时迫使灰狼离开猎物希望能找到更合适的猎物。另一个支持GWO进行探索的因素是C ⃗ \vec CC根据公式(4)C ⃗ \vec CC的取值范围为[ 0 , 2 ] [0,2][0,2]该分量为猎物提供随机权重以随机强调(C1)或弱化(C1)猎物在定义等式(1)中的距离时的作用。这有助于GWO在整个优化过程中表现出更随机的行为有利于探索和避免局部最优。C CC并不是和A AA一样线性递减特意要求C CC在任何时候都提供随机值以便不仅在初始迭代中强调探索而且在最终迭代中也强调探索。C CC向量也可以被认为是在自然界中障碍物对接近猎物的影响一般来说自然中的障碍出现在狼的捕猎路径上实际上阻碍了它们快速、方便地接近猎物。这就是向量C CC的作用。根据狼所处的位置它可以随机地给猎物一个权重从而让狼的捕食变得更加困难和遥远反之亦然。GWO算法总之搜索过程从在GWO算法中创建一个随机的灰狼种群(候选解)开始。在迭代过程中alpha、beta和delta狼估计猎物可能的位置。每一个候选解更新它与猎物的距离。为了分别强调探索和利用将参数a aa从2降低到0。当∣ A ⃗ ∣ 1 |\vec A|1∣A∣1时,候选解有偏离猎物的倾向当∣ A ⃗ ∣ 1 |\vec A|1∣A∣1时,候选解收敛于猎物。最后当满足结束条件时终止GWO算法。GWO的伪代码如下。初始化灰狼种群X i ( i 1 , 2 , . . . , n ) X_i(i1,2,…,n)Xi​(i1,2,…,n)初始化a , A , C a,A,Ca,A,C计算每个搜索代理的适应度值X α X_{\alpha}Xα​最优搜索代理X β X_{\beta}Xβ​第二优搜索代理X δ X_{\delta}Xδ​第三优搜索代理while(t最大迭代次数)for 每个搜索代理根据等式(7)更新当前代理的位置end for更新a , A , C a,A,Ca,A,C计算所有搜索代理的适应度值更新X α X_{\alpha}Xα​、X β X_{\beta}Xβ​、X δ X_{\delta}Xδ​KaTeX parse error: Expected ‘EOF’, got ‘’ at position 1: ̲emsp; tt…end whilereturn X α X_{\alpha}Xα​通过以下几点可以了解GWO在理论上是如何解决优化问题的所提出的社会等级有助于GWO在迭代过程中保存目前的最优解所提出的包围机制在解周围定义了一个圆形邻域该邻域可以作为超球体扩展到更高维度随机参数A AA和C CC辅助候选解具有不同随机半径的超球体所提出的狩猎方法允许候选解确定猎物的可能位置a aa和A AA的适配保证了探索和利用参数a aa和A AA的自适应值使GWO在探索和利用之间实现平稳过渡随着A AA的下降一半迭代致力于探索(∣ A ∣ ≥ 1 |A|≥1∣A∣≥1)另一半致力于利用(∣ A ∣ 1 |A|1∣A∣1)GWO只有两个主要参数需要调整(a aa和C CC)。⛄二、部分源代码%__________________________________________clear allclcfor t 1:1SearchAgents_no30; % Number of search agentsMax_iteration100; % Maximum numbef of iterations% Load details of the selected benchmark function% [lb,ub,dim,fobj]Get_Functions_details(Function_name);fobj heavyoilevaluate;ub [10,10,10,1500,4000,4500,5,5];lb [0,0,0,800,1500,1500,0,0];dim size(ub,2);[Best_score,Best_pos,GWO_cg_curve]GWO(SearchAgents_no,Max_iteration,ub,lb,dim,fobj);display([The best solution obtained by GWO is : , num2str(Best_pos)]);display([Best value by GWO is : , num2str(Best_score)]);endoptheavyoilevaluate(Best_pos,20);%重油热解模型 陶毕业论文第7章function optheavyoilevaluate(input,select)B0;Klp0input(1);%范围010Kwp0input(2);%010Kwlp0input(3);%010Elpinput(4);%8001500Ewpinput(5);%15004000Ewlpinput(6);%15004500nlinput(7);%05nwinput(8);%05if select 20T[673,683,693,703,698,713,723,733,663,708,703,689,725,715,695,663,683,703,713,723];%自变量X[0.3122,0.3348,0.405,0.4034,0.2674,0.4514,0.51,0.574,0.1739,0.4719,0.3478, 0.3562,0.5918,0.4075,0.3355,0.1893,0.222,0.3927,0.3306,0.342];XL0[0.2034,0.2305,0.3041,0.3209,0.1638,0.3282,0.3555,0.3685,0.1064,0.3222,0.2346,0.2609,0.4101,0.2724,0.2369,0.1104,0.1447,0.3049,0.2426,0.2559];endif select 56T[ 673723673723673673683683683703683683693683695698703723708713698713713733708733713713715733723733725663733663708673689673693673693683684683703693703703708713713723719723];X [ 0.31220.43710.31380.36370.38790.20750.33480.31100.33840.39270.46840.22200.40500.25990.33550.28460.40340.34200.42660.33060.26740.20620.45140.45850.45340.47200.45520.44470.40750.37290.51000.42340.59180.17390.57400.18930.36370.21690.35620.16190.33970.06490.23810.25120.30310.14100.54360.25320.34780.39730.47190.41620.42320.42030.53670.3011];XL0 [0.20340.28020.21360.26740.28060.12820.23050.22760.24970.30490.36930.14470.30410.18220.23690.20450.32090.25590.31070.24260.16380.13970.33260.29770.32600.30990.32820.34410.27240.26880.35550.30830.41010.10640.36850.11040.24490.15410.26090.11030.24820.04390.14830.18670.19760.09830.38310.18330.23460.30180.32220.32660.29450.33900.33540.2510];endN max(size(XL0));for k1:1:Ntemp1Klp0exp(-Elp/T(k))/nl(1-(1-X(k))^nl);temp2Kwp0Kwlp0exp(-(EwpEwlp)/T(k))/(nw-Kwlp0exp(-Ewlp/T(k)));temp3(1-(1-X(k))^(Kwlp0exp(-Ewlp/T(k))))/(Kwlp0exp(-Ewlp/T(k)));temp4((1-X(k))^nw-1)/nw;XXL(k)temp1temp2(temp3temp4);%模型输出BBabs(XL0(k)-XXL(k));%目标函数值endif size(input,1) 1subplot(2,1,1)t 1:1:N;plot(t,XL0,‘-k’,‘linewidth’,1.5);hold onplot(t,XXL,‘–b’,‘linewidth’,1.5);hold offxlabel(‘sample point’,‘fontsize’,9);ylabel(‘output’,‘fontsize’,9);legend(‘actual output’,‘estimate output’);set(legend,‘fontname’,‘Times New Roman’)set(legend,‘fontsize’,9)subplot(2,1,2)plot(t,XL0 -XXL,‘-.g’,‘linewidth’,1.5)hold offxlabel(‘sample point’,‘fontsize’,9);ylabel(‘output’,‘fontsize’,9);legend(‘output error’);set(legend,‘fontname’,‘Times New Roman’)set(legend,‘fontsize’,9)data [XL0’,XXL’]endoptB;⛄三、运行结果⛄四、matlab版本及参考文献1 matlab版本2014a2 参考文献《智能优化算法及其MATLAB实例第2版》包子阳 余继周 杨杉著 电子工业出版社3 备注简介此部分摘自互联网仅供参考若侵权联系删除 仿真咨询1 各类智能优化算法改进及应用生产调度、经济调度、装配线调度、充电优化、车间调度、发车优化、水库调度、三维装箱、物流选址、货位优化、公交排班优化、充电桩布局优化、车间布局优化、集装箱船配载优化、水泵组合优化、解医疗资源分配优化、设施布局优化、可视域基站和无人机选址优化2 机器学习和深度学习方面卷积神经网络CNN、LSTM、支持向量机SVM、最小二乘支持向量机LSSVM、极限学习机ELM、核极限学习机KELM、BP、RBF、宽度学习、DBN、RF、RBF、DELM、XGBOOST、TCN实现风电预测、光伏预测、电池寿命预测、辐射源识别、交通流预测、负荷预测、股价预测、PM2.5浓度预测、电池健康状态预测、水体光学参数反演、NLOS信号识别、地铁停车精准预测、变压器故障诊断3 图像处理方面图像识别、图像分割、图像检测、图像隐藏、图像配准、图像拼接、图像融合、图像增强、图像压缩感知4 路径规划方面旅行商问题TSP、车辆路径问题VRP、MVRP、CVRP、VRPTW等、无人机三维路径规划、无人机协同、无人机编队、机器人路径规划、栅格地图路径规划、多式联运运输问题、车辆协同无人机路径规划、天线线性阵列分布优化、车间布局优化5 无人机应用方面无人机路径规划、无人机控制、无人机编队、无人机协同、无人机任务分配6 无线传感器定位及布局方面传感器部署优化、通信协议优化、路由优化、目标定位优化、Dv-Hop定位优化、Leach协议优化、WSN覆盖优化、组播优化、RSSI定位优化7 信号处理方面信号识别、信号加密、信号去噪、信号增强、雷达信号处理、信号水印嵌入提取、肌电信号、脑电信号、信号配时优化8 电力系统方面微电网优化、无功优化、配电网重构、储能配置9 元胞自动机方面交通流 人群疏散 病毒扩散 晶体生长10 雷达方面卡尔曼滤波跟踪、航迹关联、航迹融合
返回列表