一种改进的Estimation-of-Distribution差分进化算法
为了充分利用差分进化(DE)的强大开发和estimation-of-distribution算法(EDA)的强大探索,提出了一种混合estimation-of-distribution算法的改进差分进化IDE-EDA。首先,提出了一种新的协同进化框架,将LSHADE-RSP(一种结合基于DE的有效改进策略的最先进的DE变体)与EDA混合。其次,利用LSHADE-RSP产生的优势个体建立EDA的概率分布模型,以增强其在每一代的开发,并引入新的控制参数来平衡开发和探索。
然后,使用贪心策略通过EDA工作,将高质量的解决方案充分保留到下一代以提高收敛速度。
2. LSHADE-RSP 和 EDA 的原理
在本节中,简要介绍了结合基于DE的有效改进策略的最新DE变体,称为LSHADE-RSP,以及EDA。
2.1. LSHADE-RSP
LSHADE-RSP [21],是2018年IEEE CEC竞赛的获奖者之一,是一种非常优秀的DE变体,由Stanovov等人于2018年提出,通过结合基于DE的有效改进策略。初始化策略、变异策略、交叉策略、选择策略、线性种群规模缩减策略和自适应参数控制策略的数学模型描述如下。
2.1.1. 初始化策略
LSHADE-RSP中的初始化策略与经典DE相同[8]。在进化过程的开始,每个候选个体随机初始化如下。
x i j = x min j + rand ⋅ ( x max j − x min j ) (1) x_i^j = x_{\min}^j + \text{rand} \cdot (x_{\max}^j - x_{\min}^j) \tag{1} xij=xminj+rand⋅(xmaxj−xminj)(1)
其中 i ∈ { 1 , 2 , 3 , ⋯ , N P } i \in \{1, 2, 3, \cdots, NP\} i∈{1,2,3,⋯,NP} 是种群中个体的索引, N P NP NP 表示种群大小。 j ∈ { 1 , 2 , 3 , ⋯ , D } j \in \{1, 2, 3, \cdots, D\} j∈{1,2,3,⋯,D} 是个体的维度索引, D D D 表示维度。 rand \text{rand} rand 表示0到1之间的均匀分布随机数。 x min = ( x min 1 , x min 2 , ⋯ , x min D ) x_{\min} = (x_{\min}^1, x_{\min}^2, \cdots, x_{\min}^D) xmin=(xmin1,xmin2,⋯,xminD) 和 x max = ( x max 1 , x max 2 , ⋯ , x max D ) x_{\max} = (x_{\max}^1, x_{\max}^2, \cdots, x_{\max}^D) xmax=(xmax1,xmax2,⋯,xmaxD) 定义了搜索空间的问题特定上下界。
2.1.2. 变异策略
在LSHADE中,采用基于排名的自适应选择压力策略“DE/current-to-pbest-w/r”[21] 生成变异向量 v i v_i vi,如下所示。
v i = x i + F w i ⋅ ( x pbest − x i ) + F i ⋅ ( x p r 1 − x p r 2 ) (2) v_i = x_i + Fw_i \cdot (x_{\text{pbest}} - x_i) + F_i \cdot (x_{pr1} - x_{pr2}) \tag{2} vi=xi+Fwi⋅(xpbest−xi)+Fi⋅(xpr1−xpr2)(2)
F w i = { 0.7 ⋅ F i , F E s < 0.2 ⋅ F E s max 0.8 ⋅ F i , 0.2 ⋅ F E s max ≤ F E s < 0.4 ⋅ F E s max 1.2 ⋅ F i , F E s ≥ 0.4 ⋅ F E s max (3) Fw_i = \begin{cases} 0.7 \cdot F_i, & FE_s < 0.2 \cdot FE_{s_{\max}} \\ 0.8 \cdot F_i, & 0.2 \cdot FE_{s_{\max}} \leq FE_s < 0.4 \cdot FE_{s_{\max}} \\ 1.2 \cdot F_i, & FE_s \geq 0.4 \cdot FE_{s_{\max}} \end{cases} \tag{3} Fwi=⎩ ⎨ ⎧0.7⋅Fi,0.8⋅Fi,1.2⋅Fi,FEs<0.2⋅FEsmax0.2⋅FEsmax≤FEs<0.4⋅FEsmaxFEs≥0.4⋅FEsmax(3)
其中 F i F_i Fi 是范围在(0,1]内的缩放因子,将在第2.1.6节详细讨论。 x pbest x_{\text{pbest}} xpbest 是从当前种群中随机选择的主导个体[12], p p p 是基于排名的选择概率,用于平衡开发和探索。 x p r 1 x_{pr1} xpr1 和 x p r 2 x_{pr2} xpr2 是基于当前种群的选择概率选择的不同个体。此外, x p r 2 x_{pr2} xpr2 也可以从外部存档 A A A [21] 中随机选择。当前种群中第 i i i 个个体的选择概率计算如下。
P r i = R a n k i ( R a n k 1 + R a n k 2 + ⋯ + R a n k N P ) (4) Pr_i = \frac{Rank_i}{(Rank_1 + Rank_2 + \cdots + Rank_{NP})} \tag{4} Pri=(Rank1+Rank2+⋯+RankNP)Ranki(4)
R a n k i = k ( N P − i ) + 1 (5) Rank_i = k(NP - i) + 1 \tag{5} Ranki=k(NP−i)+1(5)
在公式(5)中,最佳个体根据适应度值被分配最大排名,最差个体被分配最小排名,即从范围[1, NP]中取值。 k k k 用于控制排名选择的贪婪度,设置为3在LSHADE-RSP中。此外,如果变异向量 v i v_i vi 超出搜索范围 [ L j , U j ] [L_j, U_j] [Lj,Uj],则使用公式(6)进行调整。
v i j = { ( x min j + x i j ) / 2 , v i j < x min j ( x max j + x i j ) / 2 , v i j > x max j (6) v_i^j = \begin{cases} (x_{\min}^j + x_i^j) / 2, & v_i^j < x_{\min}^j \\ (x_{\max}^j + x_i^j) / 2, & v_i^j > x_{\max}^j \end{cases} \tag{6} vij={(xminj+xij)/2,(xmaxj+xij)/2,vij<xminjvij>xmaxj(6)
2.1.3. 交叉策略
交叉操作将在变异操作完成后实施,以生成试验向量。在LSHADE-RSP中,使用二项式交叉[8]生成试验向量 u i u_i ui,如公式(7)所示。
u i j = { v i j , rand < C R j 或 j = j rand x i j , 否则 (7) u_i^j = \begin{cases} v_i^j, & \text{rand} < CR_j \text{ 或 } j = j_{\text{rand}} \\ x_i^j, & \text{否则} \end{cases} \tag{7} uij={vij,xij,rand<CRj 或 j=jrand否则(7)
其中 j rand j_{\text{rand}} jrand 是在范围[1, D]内随机生成的维度,可以确保至少从变异向量中取一个分量 u i u_i ui。 C R j CR_j CRj 是将在第2.1.6节详细讨论的交叉率。
2.1.4. 选择策略
选择策略将被实施以根据 u i u_i ui 和 x i x_i xi 的适应度值确定下一代的幸存者。在LSHADE-RSP中,使用贪婪选择策略[8]如下。
x i g + 1 = { u i , f ( u i ) ≤ f ( x i ) x i , 否则 (8) x_i^{g+1} = \begin{cases} u_i, & f(u_i) \leq f(x_i) \\ x_i, & \text{否则} \end{cases} \tag{8} xig+1={ui,xi,f(ui)≤f(xi)否则(8)
其中 f f f 是目标函数。此外,外部存档 A A A [12] 在LSHADE-RSP中用于增强种群的多样性。如果目标个体 x i x_i xi 优于试验个体 u i u_i ui,则将其保留到下一代。否则,它将从当前种群中丢弃,并保存到外部存档 A A A 中。对于外部存档更新机制,如果外部存档已满,则从外部存档中随机选择一个个体将被新插入的个体替换。
2.1.5. 线性种群规模缩减
在LSHADE [13] 中提出的线性种群规模缩减(LPSR)也被用于LSHADE-RSP中以平衡开发和探索。根据LPSR,种群规模在进化过程中减少,如下所示。
N P = round [ F E s F E s max ( N P min − N P init ) + N P init ] (9) NP = \text{round} \left[ \frac{FE_s}{FE_{s_{\max}}} (NP_{\min} - NP_{\text{init}}) + NP_{\text{init}} \right] \tag{9} NP=round[FEsmaxFEs(NPmin−NPinit)+NPinit](9)
其中 F E s FE_s FEs 和 F E s max FE_{s_{\max}} FEsmax 分别是当前和最大函数评估次数。 N P min NP_{\min} NPmin 和 N P init NP_{\text{init}} NPinit 分别表示种群的最大和最小大小。 round ( ⋅ ) \text{round}(\cdot) round(⋅) 是一个整数函数。因此,当 N P NP NP 更新时,每一代中最差的个体将从种群中移除。此外,外部存档大小 ∣ A ∣ = round ( N P × r a r c ) |A| = \text{round}(NP \times r^{arc}) ∣A∣=round(NP×rarc) 将根据每一代结束时的 N P NP NP 调整。
2.1.6. 自适应参数控制
在LSHADE-RSP中,使用与iL-SHADE [14] 中相同的基于历史的参数调整方案来调整每个个体在每一代的缩放因子 F i F_i Fi 和交叉率 C R i CR_i CRi。成功的 F i F_i Fi 和 C R i CR_i CRi 对将分别保存到 S C R S_{CR} SCR 和 S F S_F SF 中,用于在每一代结束时基于加权勒梅尔平均值更新历史记忆 M C R , k M_{CR,k} MCR,k 和 M F , k M_{F,k} MF,k,如下所示。
M F , k = { M F , k , S F = ∅ mean W L ( S F ) + M F , k 2 , 否则 (10) M_{F,k} = \begin{cases} M_{F,k}, & S_F = \emptyset \\ \frac{\text{mean}_{WL}(S_F) + M_{F,k}}{2}, & \text{否则} \end{cases} \tag{10} MF,k={MF,k,2meanWL(SF)+MF,k,SF=∅否则(10)
M C R , k = { 0 , M C R , k = ⊥ 或 max ( S C R = 0 ) mean W L ( S C R ) + M C R , k 2 , 否则 (11) M_{CR,k} = \begin{cases} 0, & M_{CR,k} = \bot \text{ 或 } \max(S_{CR} = 0) \\ \frac{\text{mean}_{WL}(S_{CR}) + M_{CR,k}}{2}, & \text{否则} \end{cases} \tag{11} MCR,k={0,2meanWL(SCR)+MCR,k,MCR,k=⊥ 或 max(SCR=0)否则(11)
mean W L ( S ) = ∑ n = 1 ∣ S ∣ ω n ⋅ S n 2 ∑ n = 1 ∣ S ∣ ω n ⋅ S n (12) \text{mean}_{WL}(S) = \frac{\sum_{n=1}^{|S|} \omega_n \cdot S_n^2}{\sum_{n=1}^{|S|} \omega_n \cdot S_n} \tag{12} meanWL(S)=∑n=1∣S∣ωn⋅Sn∑n=1∣S∣ωn⋅Sn2(12)
ω n = ∣ f ( u n ) − f ( x n ) ∣ ∑ n = 1 ∣ S ∣ ∣ f ( u n ) − f ( x n ) ∣ (13) \omega_n = \frac{|f(u_n) - f(x_n)|}{\sum_{n=1}^{|S|} |f(u_n) - f(x_n)|} \tag{13} ωn=∑n=1∣S∣∣f(un)−f(xn)∣∣f(un)−f(xn)∣(13)
在公式(12)中, S S S 指的是 S C R S_{CR} SCR 或 S F S_F SF。对于每一代,仅更新 M C R M_{CR} MCR 和 M F M_F MF 中的第 k k k 个单元。 k k k 的值从 1 开始,每一代增加 1。一旦 k k k 超过预定内存大小 H H H [14], k k k 将重置为 1。此外, M F M_F MF 和 M C R M_{CR} MCR 中的所有单元值初始化为 0.3 和 0.8。此外, M C R M_{CR} MCR 和 M F M_F MF 中的历史记忆条目在进化过程中始终设置为 0.9。
在每一代中,每个个体 x i x_i xi 将被分配缩放因子 F i F_i Fi 用于变异操作,交叉率 C R i CR_i CRi 用于交叉操作。 F i F_i Fi 和 C R i CR_i CRi 是使用柯西分布和正态分布生成的,如下所示。
F i = randc ( M F , R i , 0.1 ) (14) F_i = \text{randc}(M_{F,R_i}, 0.1) \tag{14} Fi=randc(MF,Ri,0.1)(14)
F i = { 1 , 应用公式(13), F i > 1 min ( F i , 0.7 ) , F E s < 0.6 ⋅ F E s max , 0.6 ⋅ F E s max ≤ F E s , min ( F i , 1 ) , 0.6 ⋅ F E s max ≤ F E s (15) F_i = \begin{cases} 1, & \text{应用公式(13),} F_i > 1 \\ \min(F_i, 0.7), & FE_s < 0.6 \cdot FE_{s_{\max}}, \\ 0.6 \cdot FE_{s_{\max}} \leq FE_s, \\ \min(F_i, 1), & 0.6 \cdot FE_{s_{\max}} \leq FE_s \end{cases} \tag{15} Fi=⎩ ⎨ ⎧1,min(Fi,0.7),0.6⋅FEsmax≤FEs,min(Fi,1),应用公式(13),Fi>1FEs<0.6⋅FEsmax,0.6⋅FEsmax≤FEs(15)
C R i = randn ( M C R , R i , 0.1 ) (16) CR_i = \text{randn}(M_{CR,R_i}, 0.1) \tag{16} CRi=randn(MCR,Ri,0.1)(16)
C R i = { 0 , C R i < 0 max ( C R i , 0.6 ) , 0.25 ⋅ F E s max ≤ F E s < 0.5 ⋅ F E s max , max ( C R i , 1 ) , 0.5 ⋅ F E s max ≤ F E s , C R i > 0 (17) CR_i = \begin{cases} 0, & CR_i < 0 \\ \max(CR_i, 0.6), & 0.25 \cdot FE_{s_{\max}} \leq FE_s < 0.5 \cdot FE_{s_{\max}}, \\ \max(CR_i, 1), & 0.5 \cdot FE_{s_{\max}} \leq FE_s, CR_i > 0 \end{cases} \tag{17} CRi=⎩ ⎨ ⎧0,max(CRi,0.6),max(CRi,1),CRi<00.25⋅FEsmax≤FEs<0.5⋅FEsmax,0.5⋅FEsmax≤FEs,CRi>0(17)
其中 R i ∈ { 1 , 2 , 3 , ⋯ , H } R_i \in \{1, 2, 3, \cdots, H\} Ri∈{1,2,3,⋯,H} 是单元选择的索引。此外,贪婪因子 p p p 在LSHADE-RSP中随着 M C R M_{CR} MCR 的增加而增加,如下所示。
p = 0.085 + 0.085 ⋅ F E s F E s max (18) p = 0.085 + 0.085 \cdot \frac{FE_s}{FE_{s_{\max}}} \tag{18} p=0.085+0.085⋅FEsmaxFEs(18)
3 EDA
在本部分中,简要介绍了EDA的基本知识。基本EDA框架简单,EDA的一般过程如下。
步骤1. 初始化参数和种群 P P P。
步骤2. 评估 P P P 中的解并更新最佳解 x best x_{\text{best}} xbest。
步骤3. 如果算法终止,则输出 x best x_{\text{best}} xbest,否则执行步骤4。
步骤4. 从 P P P 中选择优势种群 P d P_d Pd 以构建高斯概率分布模型。
步骤5. 通过从概率分布模型中采样生成新种群 P P P。
步骤6. 检查边界约束,然后执行步骤2。
在连续EDA及其变体中,高斯模型是最广泛采用的概率模型[40]。具有 D D D 维的随机向量 x x x 的联合高斯概率密度函数(PDF)可以通过均值 μ \mu μ 和协方差矩阵 C C C 参数化,如下所示[38]。
G ( x ) ( μ , C ) = 1 ( 2 ⋅ π ) D ⋅ det ( C ) ⋅ exp ( − ( x − μ ) T ⋅ C − 1 ⋅ ( x − μ ) / 2 ) (19) G(x)_{(\mu, C)} = \sqrt{\frac{1}{(2 \cdot \pi)^D \cdot \text{det}(C)}} \cdot \exp \left( - (x - \mu)^T \cdot C^{-1} \cdot (x - \mu) / 2 \right) \tag{19} G(x)(μ,C)=(2⋅π)D⋅det(C)1⋅exp(−(x−μ)T⋅C−1⋅(x−μ)/2)(19)
C = 1 ∣ P d ∣ ⋅ ∑ i = 1 ∣ P d ∣ x i , x i ∈ P d (20) C = \frac{1}{|P_d|} \cdot \sum_{i=1}^{|P_d|} x_i, \quad x_i \in P_d \tag{20} C=∣Pd∣1⋅i=1∑∣Pd∣xi,xi∈Pd(20)
C = 1 ∣ P d ∣ ⋅ ∑ i = 1 ∣ P d ∣ ( x i − μ ) ⋅ ( x i − μ ) T , x i ∈ P d (21) C = \frac{1}{|P_d|} \cdot \sum_{i=1}^{|P_d|} (x_i - \mu) \cdot (x_i - \mu)^T, \quad x_i \in P_d \tag{21} C=∣Pd∣1⋅i=1∑∣Pd∣(xi−μ)⋅(xi−μ)T,xi∈Pd(21)
其中 ∣ P d ∣ |P_d| ∣Pd∣ 表示 P d P_d Pd 的基数,即包含在 P d P_d Pd 中的优势个体数量。
估计的高斯概率模型可以通过图1中的概率密度椭球(PDE)在超空间中描绘。在图1中,概率密度椭球的中心表示均值 μ \mu μ,即EDA的搜索中心,协方差矩阵 C C C 的特征向量和相应的特征值分别决定了概率密度椭球的轴方向和长度[40]。因此,协方差矩阵 C C C 表示EDA的搜索方向和范围。

当根据优势种群获得估计的高斯概率分布模型的 μ \mu μ 和 C C C 时,将使用均值 μ \mu μ 和协方差矩阵 C C C 采样新种群,如下所示。
x i = μ + g i , g i ∼ N ( 0 , C ) (22) x_i = \mu + g_i, \quad g_i \sim N(0, C) \tag{22} xi=μ+gi,gi∼N(0,C)(22)
此外,如果向量 x i x_i xi 超出搜索边界,将使用公式(23)进行调整。
x i j = x min j + rand ⋅ ( x max j − x min j ) , if x i j < x min j or x i j > x max j (23) x_i^j = x_{\min}^j + \text{rand} \cdot (x_{\max}^j - x_{\min}^j), \text{ if } x_i^j < x_{\min}^j \text{ or } x_i^j > x_{\max}^j \tag{23} xij=xminj+rand⋅(xmaxj−xminj), if xij<xminj or xij>xmaxj(23)
3. 提出的IDE-EDA
本节描述了通过将LSHADE-RSP与EDA结合而提出的新型混合算法IDE-EDA。
3. 提出的IDE-EDA
本节描述了通过将LSHADE-RSP与EDA结合而提出的新型混合算法IDE-EDA。首先,选择LSHADE-RSP作为混合基础的原因如下:(1) DE由于其简单性和效率,被认为是EA最具代表性的算法之一。(2) 基于DE的算法在IEEE CEC会议系列中表现出色。(3) LSHADE-RSP被认为是不改变DE基本框架的最具有竞争力的基于DE的变体,因为它在IEEE CEC 2018竞赛中排名第二。然后,选择EDA作为混合算法的组成部分的原因是,由于EDA不依赖于特定的个体,而是仅依赖于进化过程中主导个体的信息,从而产生强大的探索能力,这可以有效缓解LSHADE-RSP中种群多样性的减少。
3.1. 协同进化框架
混合算法的研究是进化算法的重要方向。重点是如何有效地结合两个或多个EA,并充分发挥各自的优势以开发更好的算法。在提出的IDE-EDA中利用了一种新的协同进化框架,以充分利用LSHADE-RSP在不同优化阶段的强开发能力和EDA的强探索能力。具体来说,由于进化过程中种群多样性的减少,LSHADE-RSP倾向于陷入局部最优。此外,如图1所示,半圆形椭球的长轴倾向于与函数等高线平行,因此使用半圆形椭球内的优势个体估计的新概率密度椭球的长轴也倾向于与函数等高线平行[40]。换句话说,EDA的主要搜索方向在进化过程中通常与改进方向正交。EDA确实表现出强大的探索性能,尽管存在上述缺陷。
在IDE-EDA中,每一代设计了两个阶段,基于LSHADE-RSP和EDA的特性,并在每个阶段独立应用。协同进化框架的新颖性主要体现在两个算法之间的种群交互上。IDE-EDA的过程如图2所示,并在算法1中描述。首先,使用LSHADE-RSP搜索解空间,充分利用其强开发能力,这是由于实施 x pbest x_{\text{pbest}} xpbest 和基于排名的选择压力在变异中产生的。然后,从LSHADE-RSP生成的种群 P P P 中选择的优势个体用于建立EDA的概率分布模型,以充分利用其在进化过程中的强探索能力。由于用于建立概率分布模型的优势个体并非全部由EDA生成,因此可以缓解EDA的正交改进方向进化方向的缺陷。在协同进化框架中,LSHADE-RSP实施过程中的种群更新策略与原始算法一致,如算法1的第17至23行所示。在EDA实施过程中,利用贪婪搜索策略将更好的个体保留到下一代,如算法1的第33至36行所示,以提高IDE-EDA的收敛速度,其中LSHADE-RSP生成的个体和EDA采样的个体被结合,最好的 N P NP NP 个个体将形成新的种群 P P P。此外,在进化过程中使用贪婪策略缩小外部存档 A A A,即当其大小 ∣ A ∣ |A| ∣A∣ 由于 N P NP NP 的减少而减少时,最差的个体将从外部存档中丢弃。

An Improved Differential Evolution by Hybridizing with Estimation-of-Distribution Algorithm, Information Sciences, 619(2023):439-456. https://doi.org/10.1016/j.ins.2022.11.029
相关文章:
一种改进的Estimation-of-Distribution差分进化算法
为了充分利用差分进化(DE)的强大开发和estimation-of-distribution算法(EDA)的强大探索,提出了一种混合estimation-of-distribution算法的改进差分进化IDE-EDA。首先,提出了一种新的协同进化框架࿰…...
正则表达式(复习)
文章目录 一、[]: 一个字符集合二、{}: 重复次数三、特殊符号四、(): 分组五、python代码示例六、注意 正则表达式(regular expression)描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个…...
大数据学习(61)-Impala与Hive计算引擎
&&大数据学习&& 🔥系列专栏: 👑哲学语录: 承认自己的无知,乃是开启智慧的大门 💖如果觉得博主的文章还不错的话,请点赞👍收藏⭐️留言📝支持一下博主哦ᾑ…...
洛谷每日1题-------Day18__P1320 压缩技术(续集版)
题目描述 设某汉字由 NN 的 0 和 1 的点阵图案组成。 我们依照以下规则生成压缩码。连续一组数值:从汉字点阵图案的第一行第一个符号开始计算,按书写顺序从左到右,由上至下。第一个数表示连续有几个 0,第二个数表示接下来连续有…...
[数据结构]排序之希尔排序( 缩小增量排序 )
希尔排序法又称缩小增量法。希尔排序法的基本思想是: 先选定一个整数,把待排序文件中所有记录分成个 组,所有距离为的记录分在同一组内,并对每一组内的记录进行排序。然后,取,重复上述分组和排序的工 作。当…...
LORA中 软提示是什么
LORA中 软提示是什么 软提示的原理概述 软提示(Soft Prompt)是提示学习(Prompt Learning)中的一种技术,主要用于引导预训练语言模型在特定任务上的表现。传统的提示学习通常使用硬提示(Hard Prompt),也就是在输入文本中添加固定的离散文本,比如在情感分析任务里,在…...
问问 DeepSeek 什么是网络爬虫
在现代互联网时代,信息的获取和整理变得至关重要,而爬虫(Web Crawler) 是一种自动化工具,帮助我们从网页上提取数据。爬虫在新闻采集、商品比价、天气数据收集等方面应用广泛。 爬虫的工作原理 爬虫的基本工作流程如下…...
进程(下)【Linux操作系统】
文章目录 进程的状态R状态:S状态:D状态:T状态t状态Z状态:孤儿进程X状态: 进程的优先级如果我们要修改一个进程的优先级重置进程优先级 进程切换进程的调度 进程的状态 在内核中,进程状态的表示,…...
Insar结合ISCE2,某一个文件进行并行-stackSentinel.py
stackSentinel.py 依次执行 run_01 到 run_15,记录各自的日志 并行执行 run_16 里的所有命令,仍然记录日志 不知道对不对,测试的时间有点长就给停了 #!/bin/bash# ✅ 适用于 WSL/Linux runfiles_path"/mnt/e/insar_order_test/Stack…...
2.2.3 TCP—UDP-QUIC
文章目录 2.2.3 TCP—UDP-QUIC1. TCP如何做到可靠性传输1. ACK机制2. 重传机制3. 序号机制4. 窗口机制5. 流量机制6. 带宽机制 2. tcp和udp如何选择1. tcp和udp格式对比2. ARQ协议(Automatic Repeat reQuest,自动重传请求)1. ARQ协议的主要类…...
golang从入门到做牛马:第十九篇-Go语言类型转换:数据的“变形术”
在Go语言中,类型转换是一种将一种数据类型的变量转换为另一种类型的变量的操作。类型转换在处理不同类型的数据时非常有用,尤其是在需要将数据从一种类型转换为另一种类型进行计算或存储时。接下来,让我们一起深入了解Go语言中的类型转换。 什么是类型转换:数据的“变形术”…...
【Golang】第一弹-----初步认识GO语言
笔上得来终觉浅,绝知此事要躬行 🔥 个人主页:星云爱编程 🔥 所属专栏:Golang 🌷追光的人,终会万丈光芒 🎉欢迎大家点赞👍评论📝收藏⭐文章 一、Go语言的简单介绍 1、G…...
K8S学习之基础二十三:k8s的持久化存储之nfs
K8S持久化存储之nfs 在 Kubernetes (k8s) 中使用 NFS(Network File System)作为存储解决方案是一种常见的方式,特别是在需要共享存储的场景中。以下是关于如何在 Kubernetes 中使用 NFS 存储的详细说明: 1. 准备 NFS 服务器 …...
【Linux通信篇】深入理解进程间通信——管道
--------------------------------------------------------------------------------------------------------------------------------- 每日鸡汤:找一个对的人,然后好好去爱。一个你跟他在一起,然后又可以舒舒服服做自己的人。 -------…...
「 DelegateUI 」Ant-d 风格的 Qt Qml UI 套件
写在前面:关于为什么要写一套新的UI框架 一方面,Qt Qml 生态中缺乏一套既遵循现代设计规范(自带的功能少且丑,懂得都懂),又能深度整合 Qt 生态的开源组件库。 另一方面,Qt Qml 中也有一些其他方案,例如 FluentUI Qml…...
Redis--Set类型
目录 一、引言 二、介绍 三、命令 1.sadd,smembers,sismember 2.spop,srandmember 3.smove,srem 4.sinter,sinterstore 5.sunion,sunionstore,sdiff,sdiffstore 四、内部编码 1.intset 2.hashtable 五、应用场景 1.使用Set保存用…...
【0013】Python数据类型-列表类型详解
如果你觉得我的文章写的不错,请关注我哟,请点赞、评论,收藏此文章,谢谢! 本文内容体系结构如下: Python列表,作为编程中的基础数据结构,扮演着至关重要的角色。它不仅能够存储一系…...
文件上传靶场(10--20)
目录 实验环境: 具体内容实现: 第十关(双写绕过): 第十一关:(%00截断,此漏洞在5.2版本中) 正确用法 错误用法 思路: 操作过程: 第十二关…...
C# 检查系统是否开启 Hyper - V
C# 检查系统是否开启 Hyper - V 在使用 C# 开发应用程序时,有时需要判断系统是否开启了 Hyper - V 功能。Hyper - V 是 Windows 系统提供的一款虚拟化技术,以下为你介绍几种在 C# 中检查系统是否开启 Hyper - V 的方法。 方法一:通过查询系…...
【前端】BOM DOM
两天更新完毕,建议关注收藏点赞 友情链接: HTML&CSS&LESS&Bootstrap&Emmet Axios & AJAX & Fetch BOM DOM 待整理 js2 Web API 是浏览器提供的一套操作浏览器功能和页面元素的 API ( BOM 和 DOM)。官方文档点击跳转 目录 BOMDOM…...
K8s 1.27.1 实战系列(十一)ConfigMap
ConfigMap 是 Kubernetes 中管理非敏感配置的核心资源,通过解耦应用与配置实现灵活性和可维护性。 一、ConfigMap 的核心功能及优势 1、配置解耦 将配置文件(如数据库地址、日志级别)与容器镜像分离,支持动态更新而无需重建镜像。 2、多形式注入 环境变量:将键值…...
计算机网络——IP、MAC、ARP
一、IP地址 1. 什么是IP地址? IP地址(Internet Protocol Address)是互联网中设备的唯一逻辑标识符,类似于现实生活中的“门牌号”。它分为 IPv4(32位,如 192.168.1.1)和 IPv6(128位…...
代码优化——基于element-plus封装组件:表单封装
前言 今天实现一个基于element-plus表单组件的二次封装,什么是二次封装?查看以下表单,传统表单组件是不是用<el-form>嵌套几个<el-form-item>即可实现,那么一个表单可不可以实现,传入一个对象给封装组件&a…...
C/C++中使用CopyFile、CopyFileEx原理、用法、区别及分别在哪些场景使用
文章目录 1. CopyFile原理函数原型返回值用法示例适用场景 2. CopyFileEx原理函数原型返回值用法示例适用场景 3. 核心区别4. 选择建议5. 常见问题6.区别 在Windows系统编程中,CopyFile和CopyFileEx是用于文件复制的两个API函数。它们的核心区别在于功能扩展性和控制…...
qt 多进程使用共享内存 ,加速数据读写,进程间通信 共享内存
Summary: 项目中我们有时需要使用共享内存共享数据,这样,数据不用进程IO读写,加进数据加载和落地; 程序退出时,再保存到本地;速度提升数十倍; Part1:QSharedMemory Windows平台下进程间通信…...
HTML左右分页2【搬代码】
HTML左右分页2 html <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>左右分页布局</title>&l…...
【鸿蒙开发】OpenHarmony调测工具hdc使用教程(设备开发者)
00. 目录 文章目录 00. 目录01. OpenHarmony概述02. hdc简介03. hdc获取04. option相关的命令05. 查询设备列表的命令06. 服务进程相关命令07. 网络相关的命令08. 文件相关的命令09. 应用相关的命令10. 调试相关的命令11. 常见问题12. 附录 01. OpenHarmony概述 OpenHarmony是…...
【贪心算法】简介
1.贪心算法 贪心策略:解决问题的策略,局部最优----》全局最优 (1)把解决问题的过程分成若干步 (2)解决每一步的时候,都选择当前看起来的“最优”的算法 (3)“希望”得…...
transformer模型介绍——大语言模型 LLMBook 学习(二)
1. transformer模型 1.1 注意力机制 **注意力机制(Attention Mechanism)**在人工智能中的应用,实际上是对人类认知系统中的注意力机制的一种模拟。它主要模仿了人类在处理信息时的选择性注意(Selective Attention)&a…...
【GPT入门】第11课 FunctionCall调用本地代码入门
【GPT入门】第11课 FunctionCall调用代码入门 1. 手撕FunctionCall2.代码3.functionCall的结果 1. 手撕FunctionCall 为了了解,funcationCall底层,手写一个functionCall多方法,并调用,体验 思路: 任务:让…...
