完整改进RIME算法,基于修正多项式微分学习算子Rime-ice增长优化器,完整MATLAB代码获取
1 简介
为了有效地利用雾状冰生长的物理现象,最近开发了一种优化算法——雾状优化算法(RIME)。它模拟硬雾状和软雾状过程,构建硬雾状穿刺和软雾状搜索机制。在本研究中,引入了一种增强版本,称为修改的RIME(MRIME),集成了多项式微分学习算子(PDLO)。与传统的RIME方法相比,PDLO的加入给RIME算法引入了非线性,提高了其适应性、收敛速度和全局搜索能力。
2. MRIME算法
RIME算法从自然过程,特别是软冰晶和硬冰晶的生长中汲取灵感,设计了其优化策略。冰晶粒子的位置代表搜索空间中的解向量。它通过两个阶段模拟相关的环境条件:软冰晶搜索(SRS)和硬冰晶穿刺(HRP)。它需要几个关键步骤来执行优化,如下所示。
2.1 冰晶初始化阶段
种群由 N m N_m Nm个冰晶代理初始化,每个代理表示为 D D D维的冰晶粒子。在初始化过程中采用随机搜索来确定搜索空间中冰晶粒子的位置。因此,冰晶代理种群,表示为 R P O P R_{POP} RPOP,由单个冰晶粒子的位置表示为 R M i j R_{Mij} RMij,如公式(10)所示。
R P O P = [ R M i j ] N m × D = [ R M 1 , 1 R M 1 , 2 ⋯ R M 1 , D R M 2 , 1 R M 2 , 2 ⋯ R M 2 , D ⋮ ⋮ ⋱ ⋮ R M N m , 1 R M N m , 2 ⋯ R M N m , D ] R_{POP} = [R_{Mij}]_{N_m \times D} = \begin{bmatrix} R_{M1,1} & R_{M1,2} & \cdots & R_{M1,D} \\ R_{M2,1} & R_{M2,2} & \cdots & R_{M2,D} \\ \vdots & \vdots & \ddots & \vdots \\ R_{MN_m,1} & R_{MN_m,2} & \cdots & R_{MN_m,D} \end{bmatrix} RPOP=[RMij]Nm×D= RM1,1RM2,1⋮RMNm,1RM1,2RM2,2⋮RMNm,2⋯⋯⋱⋯RM1,DRM2,D⋮RMNm,D
其中 R P O P R_{POP} RPOP是种群矩阵,由冰晶代理的向量组成( N m × 1 N_m \times 1 Nm×1),每个冰晶代理向量由几个设计参数( 1 × D 1 \times D 1×D)组成。
这些位置受到限制,具有上限( U p j Up_j Upj)和下限( L o j Lo_j Loj)边界,定义了每个维度的允许范围。采用许多基于种群的算法中观察到的传统方法,冰晶种群在初始阶段通过随机搜索过程进行初始化。初始化期间位置 R M i j R_{Mij} RMij的结果表达式如下:
R M i j = L o j + r d j ⋅ ( U p j − L o j ) , i = 1 : N m , j = 1 : D , R_{Mij} = Lo_j + r_{d_j} \cdot (Up_j - Lo_j), \quad i = 1 : N_m, j = 1 : D, RMij=Loj+rdj⋅(Upj−Loj),i=1:Nm,j=1:D,
其中 r d j r_{d_j} rdj是范围[0, 1]内随机选择的数字。
2.2 SRS阶段
算法模拟冰晶粒子在物体表面冻结的过程,模拟软冰晶的生长过程。冰晶代理在风和自身随机性的驱动下在搜索空间中移动,确保在早期迭代中广泛覆盖。冰晶代理的位置更新由以下公式确定,该公式包括最佳冰晶代理的位置、环境因素和随机性:
R m j = R m b e s t , j + r d 2 ⋅ β ⋅ cos ( θ ) ⋅ ( A D ⋅ ( U p j − L o j ) + L o j ) , if r d 2 < E , R_{mj} = R_{mbest,j} + r_{d_2} \cdot \beta \cdot \cos(\theta) \cdot (AD \cdot (Up_j - Lo_j) + Lo_j), \quad \text{if } r_{d_2} < E, Rmj=Rmbest,j+rd2⋅β⋅cos(θ)⋅(AD⋅(Upj−Loj)+Loj),if rd2<E,
其中粘附度( A D AD AD)表征最佳冰晶代理与随机选择的冰晶代理之间的接近程度, A D AD AD限制在范围[0, 1]内。修改后的第 i i i个冰晶代理在SRS阶段后的维度 j j j的位置,表示为 R m j R_{mj} Rmj,基于最佳冰晶代理的位置 R m b e s t , j R_{mbest,j} Rmbest,j确定。方向控制由 r d 2 r_{d_2} rd2和 cos ( θ ) \cos(\theta) cos(θ)的插值控制,其中 r d 2 r_{d_2} rd2是范围[-1, 2]内的随机数。此外, r d 2 r_{d_2} rd2是范围[0, 1]内的随机数, θ \theta θ在公式(13)中定义。
θ = π ( t 10 ⋅ T m a x ) , \theta = \pi \left( \frac{t}{10 \cdot T_{max}} \right), θ=π(10⋅Tmaxt),
在这种情况下,符号“ t t t”表示迭代计数索引,而“ T m a x T_{max} Tmax”表示总迭代次数。
环境因子,表示为“ β \beta β”,模拟外部条件并确保冰晶种群的收敛,如公式(14)所示。
β = 1 − 1 ω ⋅ ( 1 round ( ω ⋅ t T m a x ) ) , \beta = 1 - \frac{1}{\omega} \cdot \left( \frac{1}{\text{round} \left( \frac{\omega \cdot t}{T_{max}} \right)} \right), β=1−ω1⋅ round(Tmaxω⋅t)1 ,
函数“round”用于四舍五入数值,参数“ ω \omega ω”用于调节步进函数的分割,默认值为5,如文献[29]所述。此外,变量“ r d 3 r_{d_3} rd3”是范围[0, 1]内的随机数,“ E E E”表示粘附系数,影响冰晶代理的凝聚概率。粘附系数随着整个搜索过程的迭代次数逐渐增加,如下所示:
E = ( t T m a x ) 1 / 2 , E = \left( \frac{t}{T_{max}} \right)^{1/2}, E=(Tmaxt)1/2,$
在强风条件下,算法模拟硬冰晶粒子的更简单和更规则的生长。HRP机制促进了代理之间的信息交换,以提高收敛性和跳出局部最优的能力,如下所示:
R m _ n e w , i j = { R m b e s t , j r d 4 < F i t μ ( R m i ) R m j Else , i = 1 : N m , j = 1 : D , R_{m\_new,ij} = \begin{cases} R_{mbest,j} & r_{d_4} < Fit^{\mu}(R_{m_i}) \\ R_{mj} & \text{Else} \end{cases}, \quad i = 1 : N_m, j = 1 : D, Rm_new,ij={Rmbest,jRmjrd4<Fitμ(Rmi)Else,i=1:Nm,j=1:D,
其中 R m _ n e w , i j R_{m\_new,ij} Rm_new,ij表示第 i i i个冰晶代理在维度 j j j中的新创建位置,而“ r d 4 r_{d_4} rd4”是范围[0, 1]内的随机数。如所示,冰晶代理的位置根据适应度值和归一化适应度值( F i t μ ( R m i ) Fit^{\mu}(R_{m_i}) Fitμ(Rmi))进行更新,促进了代理之间的交叉。
F i t μ ( R m i ) = F i t ( R m i ) ∑ i = 1 N m ( F i t ( R m i ) ) 2 , Fit^{\mu}(R_{m_i}) = \frac{Fit(R_{m_i})}{\sqrt{\sum_{i=1}^{N_m} (Fit(R_{m_i}))^2}}, Fitμ(Rmi)=∑i=1Nm(Fit(Rmi))2Fit(Rmi),
其中 F i t μ ( R m i ) Fit^{\mu}(R_{m_i}) Fitμ(Rmi)是关于冰晶代理 i i i的当前位置的适应度函数值。
2.4 提出的PLDO整合
在本文中,PLDO被整合以增强RIME算法的搜索能力和多样性。PLDO通常用于优化中的差分进化(DE)算法[44]。该算子通过合并两个随机选择的个体的信息来增强种群多样性,以更新当前冰晶代理的位置。PLDO是DE的扩展,通过适应突变策略来放大搜索空间内的探索和开发。PLDO中的突变公式结合了多项式函数,将非线性特性注入突变操作中。为了执行整合的PLDO,从种群中抽取两个随机整数( i n d e x 1 index1 index1和 i n d e x 2 index2 index2)。随后,新派生的冰晶代理 i i i的位置可以公式化为:
R m _ n e w = R m i + ϕ ⋅ ( R m i n d e x 1 − R m i n d e x 2 ) , i = 1 : N m , R_{m\_new} = R_{m_i} + \phi \cdot (R_{m_{index1}} - R_{m_{index2}}), \quad i = 1 : N_m, Rm_new=Rmi+ϕ⋅(Rmindex1−Rmindex2),i=1:Nm,
其中 ϕ \phi ϕ是范围[0, 1]内生成的随机数。因此,更新涉及两个随机选择的元素( R m i n d e x 1 R_{m_{index1}} Rmindex1和 R m i n d e x 2 R_{m_{index2}} Rmindex2)之间的加权差异,而权重 ϕ \phi ϕ控制这种差异对更新的贡献。
2.5 正向贪婪选择(PGS)阶段
在生成HRP-SRS阶段(公式(12)和(16))或PLDO(公式(18))中的冰晶粒子的新位置后,PGS机制用于比较更新前后的适应度值。如果更新后的适应度更好,则用次优解替换最优解,从而增强全局解的质量。该机制在更新过程中积极替换代理,以确保更优的种群进化。
2.6 迭代过程
图3a,b展示了标准RIME与所提出的MMIME优化器的主要步骤,其中整个过程在预定的迭代次数( I m a x I_{max} Imax)内交替执行。在每次迭代中,所提出的MMIME利用SRS和HRP阶段或PLDO机制更新冰晶代理的位置,评估适应度值,并执行PGS。在所提出的MMIME中,引入PLDO,包含多项式函数,使每个突变向量组件的影响得到精细控制,为探索过程提供灵活性。通过排列引入的随机性增加了搜索空间探索的有效性。种群中的最佳冰晶代理由最佳适应度值确定,并作为优化问题的解决方案输出。
function [Best_rime_rate,Best_rime,Convergence_curve]=MRIME(N,Max_iter,lb,ub,dim)
% disp('RIME is now tackling your problem')
% initialize positionBest_rime=zeros(1,dim);
Best_rime_rate=inf;%change this to -inf for maximization problemsRimepop=initialization(N,dim,ub,lb);%Initialize the set of random solutions
Lb=lb.*ones(1,dim);% lower boundary
Ub=ub.*ones(1,dim);% upper boundary
it=1;%Number of iterations
Convergence_curve=zeros(1,Max_iter);
Rime_rates=zeros(1,N);%Initialize the fitness value
newRime_rates=zeros(1,N);
W = 5;%Soft-rime parameters, discussed in subsection 4.3.1 of the paper%Calculate the fitness value of the initial position
for i=1:N% Rime_rates(1,i)=fobj(Rimepop(i,:));%Calculate the fitness value for each search agentx=Rimepop(i,:);[Im,Vm]=IVload;Iph=x(1);I0=x(2);Rs=x(3);Rsh=x(4);n=x(5);I02=x(6);n2=x(7);k = 1.380649e-23;T = 306.15;q = 1.602176634e-19;Vth= k*T/q;Ns=1;a=n*Vth*Ns;a2=n2*Vth*Ns;I = -Vm./(Rs + Rsh) - lambertw(Rs.*I0.*Rsh.*exp(Rsh.*(Rs.*Iph + Rs.*I0 + Vm)./(a.*(Rs + Rsh)))./(a.*(Rs + Rsh))).*a./Rs...- lambertw(Rs.*I02.*Rsh.*exp(Rsh.*(Rs.*Iph + Rs.*I02 + Vm)./(a2.*(Rs + Rsh)))./(a2.*(Rs + Rsh))).*a2./Rs + (Rsh.*(I0 + Iph + I02))./(Rs + Rsh);fit_I=sqrt(sum((Im-I).^2)/length(Im));Rime_rates(1,i)=fit_I;%Make greedy selectionsif Rime_rates(1,i)<Best_rime_rateBest_rime_rate=Rime_rates(1,i);Best_rime=Rimepop(i,:);end
end
% Main loopwhile it <= Max_iter% itRimeFactor = (rand-0.5)*2*cos((pi*it/(Max_iter*10)))*(1-round(it*W/Max_iter)/W);%Parameters of Eq.(3),(4),(5)E =sqrt(it/Max_iter);%Eq.(6)newRimepop = Rimepop;%Recording new populationsnormalized_rime_rates=normr(Rime_rates);%Parameters of Eq.(7)if rand>0.5for i=1:Nfor j=1:dim%Soft-rime search strategyr1=rand();if r1< EnewRimepop(i,j)=Best_rime(1,j)+RimeFactor*((Ub(j)-Lb(j))*rand+Lb(j));%Eq.(3)endendendelsefor i=1:NnewRimepop(i,:)=newRimepop(i,:)+rand*(newRimepop(randperm(N,1),:)-newRimepop(randperm(N,1),:));endendfor i=1:Nfor j=1:dim%Hard-rime puncture mechanismr2=rand();if r2<normalized_rime_rates(i)newRimepop(i,j)=Best_rime(1,j);%Eq.(7)endendendfor i=1:N%Boundary absorptionFlag4ub=newRimepop(i,:)>ub;Flag4lb=newRimepop(i,:)<lb;newRimepop(i,:)=(newRimepop(i,:).*(~(Flag4ub+Flag4lb)))+ub.*Flag4ub+lb.*Flag4lb;x=newRimepop(i,:);[Im,Vm]=IVload;Iph=x(1);I0=x(2);Rs=x(3);Rsh=x(4);n=x(5);I02=x(6);n2=x(7);k = 1.380649e-23;T = 306.15;q = 1.602176634e-19;Vth= k*T/q;Ns=1;a=n*Vth*Ns;a2=n2*Vth*Ns;I = -Vm./(Rs + Rsh) - lambertw(Rs.*I0.*Rsh.*exp(Rsh.*(Rs.*Iph + Rs.*I0 + Vm)./(a.*(Rs + Rsh)))./(a.*(Rs + Rsh))).*a./Rs...- lambertw(Rs.*I02.*Rsh.*exp(Rsh.*(Rs.*Iph + Rs.*I02 + Vm)./(a2.*(Rs + Rsh)))./(a2.*(Rs + Rsh))).*a2./Rs + (Rsh.*(I0 + Iph + I02))./(Rs + Rsh);fit_I=sqrt(sum((Im-I).^2)/length(Im));newRime_rates(1,i)=fit_I;%Positive greedy selection mechanismif newRime_rates(1,i)<Rime_rates(1,i)Rime_rates(1,i) = newRime_rates(1,i);Rimepop(i,:) = newRimepop(i,:);if newRime_rates(1,i)< Best_rime_rateBest_rime_rate=Rime_rates(1,i);Best_rime=Rimepop(i,:);endendendConvergence_curve(it)=Best_rime_rate;it=it+1;
end
Hakmi S.H., Alnami H., Moustafa G., et al. Modified Rime-Ice Growth Optimizer with Polynomial Differential Learning Operator for Single-and Double-Diode PV Parameter Estimation Problem. Electronics. 2024, 13(9): 1611.
相关文章:
完整改进RIME算法,基于修正多项式微分学习算子Rime-ice增长优化器,完整MATLAB代码获取
1 简介 为了有效地利用雾状冰生长的物理现象,最近开发了一种优化算法——雾状优化算法(RIME)。它模拟硬雾状和软雾状过程,构建硬雾状穿刺和软雾状搜索机制。在本研究中,引入了一种增强版本,称为修改的RIME…...
【1——Android端添加隐私协议(unity)1/3】
前言:这篇仅对于unity 发布Android端上架国内应用商店添加隐私协议,隐私协议是很重要的东西,没有这个东西,是不上了应用商店的。 对于仅仅添加隐私协议,我知道有三种方式,第一种和第二种基本一样 1.直接在unity里面新…...
笔记本6GB本地可跑的图生视频项目(FramePack)
文章目录 (一)简介(二)本地执行(2.1)下载(2.2)更新(2.3)运行(2.4)生成 (三)注意(3.1)效…...
Android View的事件分发机制
ViewGroup的事件分发逻辑 从Activity传递给Window,再传递给ViewGroup,ViewGroup的dispatchTouchEvent()会被调用,如果onInterceptTouchEvent()返回true 转交自身onTouchEvent()处理,如果返回false继续向子View传递,子View的dispatchTouchEve…...
Python字符串格式化(二): f-string的进化
文章目录 一、Python 3.6:重新发明字符串格式化(2016)1. 语法糖的诞生:表达式直嵌技术2. 性能与可读性的双重提升3. 奠定现代格式化的基础架构 二、Python 3.7:解锁异步编程新场景(2018)1. 异步…...
力扣HOT100之二叉树:124. 二叉树中的最大路径和
这道题是困难题,靠自己想还是挺难想的,还是去看的灵神的题解,感觉还是要多复习一下这道题。这道题的思路和之前做的543. 二叉树的直径很像,可以参考之前的这篇博客。这里我们还是用递归来做,定义一个lambda函数来实现递…...
【C++】位图+布隆过滤器
1.位图 概念 所谓位图,就是用每一位来存放某种状态,适用于海量数据,数据无重复的场景。通常是用来判断某个数据存不存在的或是否被标记。 1.二进制位表示 : 位图中的每一位(bit)代表一个元素的状态。通常&…...
Google Agent Development Kit与MCP初试
Google Agent Development Kit与MCP初试 一、背景知识二、搭建智能大脑 - Ollama服务器2.1 为什么要先搭建Ollama?2.2 搭建ollama服务器2.2.1 安装2.2.2 试着用curl命令"问"AI一个问题: 三、构建智能体工坊 - ADK环境3.1 创建容器3.2 安装核心…...
云原生+大数据
虚拟化: 虚拟化,是指通过虚拟化技术将一台计算机虚拟为多台逻辑计算机。在一台计算机上同时运行多个逻辑计算机,每个逻辑计算机可运行不同的操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提…...
基于cornerstone3D的dicom影像浏览器 第二十一章 显示DICOM TAGS
系列文章目录 第一章 下载源码 运行cornerstone3D example 第二章 修改示例crosshairs的图像源 第三章 vitevue3cornerstonejs项目创建 第四章 加载本地文件夹中的dicom文件并归档 第五章 dicom文件生成png,显示检查栏,序列栏 第六章 stack viewport 显…...
【记录】PPT|PPT打开开发工具并支持Quicker VBA运行
文章目录 打开开发者工具支持Quicker VBA运行 打开开发者工具 参考文章,微软文档:显示“开发工具”选项卡,以下直接复制,如侵私删。 适用对象:Microsoft 365 专属 Excel Microsoft 365 专属 Outlook Microsoft 365 专属…...
西门子 S1500 博途软件舞台威亚 3D 控制方案
西门子 S1500 PLC 是工业自动化领域的主流控制器,适合高精度、高可靠性的舞台威亚控制。下面为你提供基于博途 (TIA Portal) 软件的 3D 控制方案设计。 系统架构设计 舞台威亚 3D 控制系统通常包含以下组件: 硬件层: S1500 PLC 主机伺服驱动…...
第三十二天打卡
import pandas as pd from sklearn.datasets import load_iris from sklearn.model_selection import train_test_split from sklearn.ensemble import RandomForestClassifier # 加载鸢尾花数据集 iris load_iris() df pd.DataFrame(iris.data, columnsiris.feature_names) …...
同步/异步电路;同步/异步复位
同步/异步电路;同步/异步复位 在 FPGA 设计中,同步电路、异步电路、同步复位和异步复位是基础且关键的概念,它们的特性直接影响电路的可靠性、时序性能和设计复杂度。 一、同步电路(Synchronous Circuit) 定义 同步电…...
spring boot 实现resp视频推流
1、搭建resp服务(docker方式) docker pull aler9/rtsp-simple-serverdocker run -d --restartalways \--name rtsp-server \-p 8554:8554 \aler9/rtsp-simple-server2、maven依赖 <dependency><groupId>org.bytedeco</groupId><a…...
python、R、shell兼容1
一,兼容方式 1,shell中用R、python: (1)python3、R/r(radian)进入 (2)脚本封装:命令行或者封装到sh脚本中 python xxx.py 自定义参数 Rscript xxx.r 自…...
Oracle 11G RAC重启系统异常
vmware安装centos7环境部署Oracle RAC (11.2.0.4) 部署时所有资源情况都是正常的,关机重启虚拟机后集群资源状态异常,请教CSDN大佬 – 部署规划 域名地址备注rac16192.168.31.16rac17192.168.31.17rac16vip192.168.31.26viprac17vip192.168.31.27vip…...
便捷的电脑自动关机辅助工具
软件介绍 本文介绍的软件是一款电脑上实用的倒计时和关机助手。 软件特性 这款关机助手十分贴心,它是一款无需安装的小软件,体积仅60KB,不用担心占用电脑空间,打开即可直接使用。 操作方法 你只需设置好对应的关机时间&#x…...
巧用 FFmpeg 命令行合并多个视频为一个视频文件教程
你是否曾经遇到过需要将多个视频片段合并成一个连续视频的情况?比如,你拍摄了一段旅行的精彩瞬间,想把它们合成一部短片;或者你在制作教学视频时,希望将不同的部分整合在一起。这时候,FFmpeg 就是你的得力助…...
平时使用电脑,如何去维护
在这个数字化的时代,电脑已经成为我们生活和工作中不可或缺的一部分。然而,你是否知道如何正确地维护它,让它始终保持良好的运行状态呢?今天,就让我来为大家揭晓这个谜底。定期清理电脑内部和外部的灰尘是至关重要的。…...
(视觉)分类、检测与分割在不同网络中的设计体现
分类、检测与分割在不同网络中的设计体现 概述 在计算机视觉领域,不同的网络结构在功能和结构上差异显著,同时也共享一些基础设计元素。 卷积神经网络是基石: 卷积层通过特定的卷积核与图像进行卷积运算提取图像中的局部特征,比…...
技术分享 | MySQL大事务导致数据库卡顿
本文为墨天轮数据库管理服务团队第66期技术分享,内容原创,作者为技术顾问孙文龙,如需转载请联系小墨(VX:modb666)并注明来源。 一、现 象 业务侧反馈连接数据库异常,报错 connection is not av…...
C#在 .NET 9.0 中启用二进制序列化:配置、风险与替代方案
在 .NET 9.0 中启用二进制序列化:配置、风险与替代方案 引言一、启用二进制序列化的步骤二、实现序列化与反序列化三、安全风险与缓解措施四、推荐替代方案五、总结 引言 在 .NET 生态中,二进制序列化(Binary Serialization)曾是…...
每日Prompt:像素风格插画
提示词 像素风格插画,日式漫画脸,画面主体为一位站在路边的男孩,人物穿着黑色冲锋衣,手里拿着手机,男孩靠坐在机车旁边,脚边依偎着一只带着小摩托车头盔的小小猫,背景是雨中,身旁停…...
Rust 学习笔记:生命周期
Rust 学习笔记:生命周期 Rust 学习笔记:生命周期使用生命周期防止悬空引用借用检查器函数中的泛型生命周期生命周期注释语法函数签名中的生命周期注解从生命周期的角度思考结构定义中的生命周期注解省略生命周期方法定义中的生命周期注释静态生命周期泛型…...
科学标注法:数据治理的未来之路
在数据治理领域,科学标注法是一种系统化、标准化的数据标注方法论,其核心是通过规范化的流程、技术工具和质量控制机制,将原始数据转化为具有语义和结构特征的可用数据资源。以下从定义、技术特征、应用场景、与传统标注方法的区别以及遵循的标准框架等方面展开详细解析: 一…...
小白刷题 之 如何高效计算二进制数组中最大连续 1 的个数
前言 学习如何快速找出二进制数组中最长的连续 1 序列。 这个问题在数据处理、网络传输和算法面试中经常出现,掌握它不仅能提升编程能力,还能加深对数组操作和循环控制的理解。 🌟 问题背景 想象你是一位网络工程师,正在分析服…...
中科方德鸳鸯火锅平台使用教程:轻松运行Windows应用!
原文链接:中科方德鸳鸯火锅平台使用教程:轻松运行Windows应用! Hello,大家好啊,今天给大家带来一篇中科方德鸳鸯火锅平台使用的文章,欢迎大家分享点赞,点个在看和关注吧!在信创环境…...
完全禁用 Actuator 功能
问题描述: springboot 关闭Actuator无效,原本设置 management:endpoints:enabled-by-default: false # 禁用所有端点屏蔽了/actuator/info和/actuator/health,但/actuator还可以访问。 拉满配置如下,成功屏蔽 # application.y…...
Netty学习专栏(二):Netty快速入门及重要组件详解(EventLoop、Channel、ChannelPipeline)
文章目录 前言一、快速入门:5分钟搭建Echo服务器二、核心组件深度解析2.1 EventLoop:颠覆性的线程模型EventLoop 设计原理核心 API 详解代码实践:完整使用示例 2.2 Channel:统一的网络抽象层Channel 核心架构核心 API 详解代码实践…...
27-FreeRTOS的任务管理
一、FreeRTOS的任务概念 在FreeRTOS中,任务(Task)是操作系统调度的基本单位。每个任务都是一个无限循环的函数,它执行特定的功能。任务可以被看作是一个轻量级的线程,具有自己的堆栈和优先级。下面是如何定义一个任务函…...
upload-labs靶场通关详解:第14关
一、分析源代码 这一关的任务说明已经相当于给出了答案,就是让我们上传一个图片木马,可以理解为图片中包含了一段木马代码。 function getReailFileType($filename){$file fopen($filename, "rb");$bin fread($file, 2); //只读2字节fclose…...
supervisor的进程监控+prometheus+alertmanager实现告警
supervisor服务进程监控实现告警 前提:部署了prometheus(配置了rules文件夹),alertmanager,webhook,python3环境 [roottest supervisor_prometheus]# pwd /opt/supervisor_prometheus [roottest supervisor_prometheus]# ls supervisor_exporter.py supervisor_int…...
HarmonyOS 鸿蒙应用开发基础:父组件调用子组件方法的几种实现方案对比
在ArkUI声明式UI框架中,父组件无法直接调用子组件的方法。本文介绍几种优雅的解决方案,并作出对比分析,分析其适用于不同场景和版本需求。帮助开发者在开发中合理的选择和使用。 方案一:Watch装饰器(V1版本适用&#x…...
Enhancing Relation Extractionvia Supervised Rationale Verifcation and Feedback
Enhancing Relation Extraction via Supervised Rationale Verification and Feedback| Proceedings of the AAAI Conference on Artificial Intelligencehttps://ojs.aaai.org/index.php/AAAI/article/view/34631 1. 概述 关系抽取(RE)任务旨在抽取文本中实体之间的语义关...
等离子体隐身技术和小型等离子体防御装置设计
相信大家前不久都看到了关于国防科大团队关于等离子体防御的相关文章,恰好也在做相关的研究,所以想向对这个问题感兴趣的朋友聊一聊这里面的一些基本原理和研究现状。 等离子体与电磁波的相互作用 等离子体会对电磁波产生吸收和反射作用,通常…...
PCB设计教程【入门篇】——电路分析基础-电路定理
前言 本教程基于B站Expert电子实验室的PCB设计教学的整理,为个人学习记录,旨在帮助PCB设计新手入门。所有内容仅作学习交流使用,无任何商业目的。若涉及侵权,请随时联系,将会立即处理 一、电路基本概念 连接线与节点 …...
C++-继承
1.继承的概念及定义 1.1继承的概念 继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特性的基础上进行扩展,增加功能,这样产生新的类,称派生类。继承呈现了面向对象 程序设计的层…...
25.5.22学习总结
ST表(Sparse Table,稀疏表)是一种用于高效解决静态区间最值查询(RMQ)问题的数据结构。其核心思想是通过预处理每个长度为2^j的区间的最值,使得查询时只需合并两个子区间的最值即可得到结果,从而…...
接口自动化测试框架(pytest+allure+aiohttp+ 用例自动生成)
🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快 近期准备优先做接口测试的覆盖,为此需要开发一个测试框架,经过思考,这次依然想做点儿不一样的东西。 接口测试是比较讲究效率的…...
FastAPI在 Nginx 和 Docker 环境中的部署
目录 实现示例1. 项目结构2. FastAPI 应用 (app/main.py)3. 依赖文件 (app/requirements.txt)4. Dockerfile5. Nginx 配置 (nginx/nginx.conf)6. Docker Compose 配置 (docker-compose.yml) 使用方法修改代码后更新 实现示例 接下来创建一个简单的示例项目,展示如何…...
08 接口自动化-用例管理框架pytest之fixtrue,conftest.py,allure报告以及logo定制
文章目录 一、使用fixture实现部分前后置1.function级别:在每个函数的前后执行2.class级别:在每个类的前后执行一次3.module级别:在每个模块的前后执行一次4.package、session级别,一般是和connftest.py文件一起使用 二、当fixture的级别为pa…...
Appium+python自动化(二)- 环境搭建—下
简介 我这里已经将android的测试开发环境已经搭建准备完毕。上一篇android测试开发环境已经准备好, 那么接下来就是appium的环境安装和搭建了。 搭建环境安装过程中切勿浮躁,静下心来一个一个慢慢地按照步骤一个个来。 环境装好后,可以用真机…...
浅谈测试驱动开发TDD
目录 1.什么是TDD 2.TDD步骤 3.TDD 的核心原则 4.TDD 与传统开发的对比 5.TDD中的单元测试和集成测试区别 6.总结 1.什么是TDD 测试驱动开发(Test-Driven Development,简称 TDD) 是一种软件开发方法论,核心思想是 “先写测试…...
MVC和MVVM架构的区别
MVC和MVVM都是前端开发中常用的设计模式,都是为了解决前端开发中的复杂性而设计的,而MVVM模式则是一种基于MVC模式的新模式。 MVC(Model-View-Controller)的三个核心部分:模型、视图、控制器相较于MVVM(Model-View-ViewModel)的三个核心部分…...
网络安全-等级保护(等保) 3-1-1 GB/T 28448-2019 附录A (资料性附录)测评力度附录C(规范性附录)测评单元编号说明
附录A (资料性附录)测评力度 A.1 概述 测评力度是在等级测评过程中实施测评工作的力度,体现为测评工作的实际投入程度,具体由测评的广度和深度来反映。测评广度越大,测评实施的范围越大,测评实施包含的测评对象就越多。测评深度…...
MySQL 可观测性最佳实践
MySQL 简介 MySQL 是一个广泛使用的开源关系型数据库管理系统(RDBMS),以其高性能、可靠性和易用性而闻名,适用于各种规模的应用,从小型网站到大型企业级系统。 监控 MySQL 指标是维护数据库健康、优化性能和确保数据…...
深入解析Spring Boot与Redis集成:高效缓存与性能优化
深入解析Spring Boot与Redis集成:高效缓存与性能优化 引言 在现代Web应用中,缓存技术是提升系统性能的重要手段之一。Redis作为一种高性能的内存数据库,广泛应用于缓存、会话管理和消息队列等场景。本文将详细介绍如何在Spring Boot项目中集…...
《C 语言字符串操作从入门到实战(下篇):strncpy/strncat/strstr 等函数原理与实现》
目录 七. strncpy函数的使用与模拟实现 7.1 strncpy函数理解 7.2 strncpy函数使用示例 7.3 strncpy函数模拟实现 八. strncat函数的使用与模拟实现 8.1 strncat函数理解 8.2 strncat函数使用示例 8.3 strncat函数模拟实现 九. strncmp函数的使用 9.1 strncmp函数理…...
百度智能云千帆AppBuilder RAG流程技术文档
一、概述 本文档旨在详细阐述百度智能云千帆AppBuilder的RAG(Retrieval-Augmented Generation,检索增强生成)流程,包括API对接、知识库维护以及文档资料管理等关键环节。通过本流程,开发者可以高效地构建基于大模型的…...