【Matlab】智能优化算法_平衡优化器算法EO

news2024/11/25 2:49:16

【Matlab】智能优化算法_平衡优化器算法EO

  • 1.背景介绍
  • 2.数学模型
    • 2.1 初始化和功能评估
    • 2.2 平衡池和候选者(Ceq)
    • 2.3 指数项(F)
    • 2.3 生成率(G)
  • 3.文件结构
  • 4.伪代码
  • 5.详细代码及注释
    • 5.1 EO.m
    • 5.2 Get_Functions_details.m
    • 5.3 initialization.m
    • 5.4 main.m
  • 6.运行结果
  • 7.参考文献

1.背景介绍

EO方法的灵感来源于控制体积上的简单混合动态质量平衡,其中使用质量平衡方程来描述控制体积中非反应成分的浓度,作为其各种源和汇机制的函数。质量平衡方程为进入、离开和在控制体积中产生的质量守恒提供了基础物理。表示一般质量平衡方程的一阶常微分方程被描述为:

在这里插入图片描述

C是控制体积内的浓度(V),V(dC/dt)是控制体积内的质量变化率。是控制体积内的质量变化率,Q是进出控制体积的体积流量,Ceq代表平衡状态下的浓度,其中控制体积内没有生成,G是控制体积内的质量生成率。当V(dC/dt) 达到零时,就达到了一个稳定的平衡状态。通过对公式(1)的重新排列,可以求出dC/dt与Q/V的函数关系;其中Q/V代表停留时间的倒数,这里称为λ,或周转率(即λ=Q/V)。随后,公式(1)也可以重新排列,以解决控制体积(C)中的浓度与时间(t)的关系:

在这里插入图片描述

方程(3)显示了方程(2)随时间的积分:

在这里插入图片描述

这导致:

在这里插入图片描述

在等式(4)中,F的计算如下:

在这里插入图片描述

其中t0和C0是初始开始时间和浓度,取决于积分间隔。等式(4)可用于估计具有已知周转率的控制体积中的浓度,或者用于使用具有已知生成率和其他条件的简单线性回归来计算平均周转率。

在EO中,粒子类似于溶液,浓度类似于粒子在PSO算法中的位置。如等式(4)所示,有三个项表示粒子的更新规则,每个粒子通过三个单独的项更新其浓度。第一项是平衡浓度,定义为从一个称为平衡池的池中随机选择的迄今为止最好的溶液之一。第二项与粒子和平衡状态之间的浓度差有关,这起到了直接搜索机制的作用。这个术语鼓励粒子全局搜索域,充当探索者。第三个术语与生成率有关,生成率主要扮演开发者或解决方案细化者的角色,尤其是小步骤,尽管有时也会扮演探索者的角色。每个术语及其影响。

2.数学模型

2.1 初始化和功能评估

与大多数元启发式算法类似,EO使用初始种群来启动优化过程。初始浓度是基于搜索空间中具有均匀随机初始化的粒子数量和维度构建的,如下所示:

在这里插入图片描述

C initial i是第i个粒子的初始浓度矢量,Cmin和Cmax表示维度的最小值和最大值,Rand i是[0,1]区间内的随机矢量,n是作为总体的粒子数。评估粒子的适应度函数。

2.2 平衡池和候选者(Ceq)

平衡状态是算法的最终收敛状态,它被期望为全局最优。在优化过程开始时,没有关于平衡状态的知识,并且仅确定平衡候选者以提供粒子的搜索模式。基于不同类型案例问题下的不同实验,这些候选粒子是在整个优化过程中识别出的迄今为止最好的四个粒子加上另一个粒子,其浓度是上述四个粒子的算术平均值。这四个候选者有助于EO具有更好的勘探能力,而平均值有助于开发。候选的数量是任意的,并且基于优化问题的类型。可以使用其他数量的候选者(例如3或5)。例如,GWO使用三种迄今为止最好的候选者(阿尔法狼、贝塔狼和伽马狼)来更新其他狼的位置。

在这里插入图片描述

每次迭代中的每个粒子都通过在以相同概率选择的候选者中随机选择来更新其浓度。例如,在第一次迭代中,第一个粒子基于Ceq(1)更新其所有浓度;然后,在第二次迭代中,它可以基于Ceq(ave)更新其浓度。在优化过程结束之前,每个粒子都将经历更新过程,所有候选解决方案都将为每个粒子接收大致相同数量的更新。

2.3 指数项(F)

对主要浓度更新规则有贡献的下一项是指数项(F)。该术语的准确定义将有助于EO在勘探和开采之间取得合理的平衡。由于实际控制体积中的周转率可以随时间变化,因此假设λ是[0,1]区间内的随机向量。

在这里插入图片描述

其中,时间t被定义为迭代(Iter)的函数,因此随着迭代次数的增加而减少:

在这里插入图片描述

其中,Iter和Max_Iter分别表示当前迭代次数和最大迭代次数,a2是用于管理利用能力的常数值。为了通过降低搜索速度来保证收敛性,同时提高算法的探索和利用能力,本研究还考虑:

在这里插入图片描述

其中a1是控制勘探能力的常数值。a1越高,勘探能力越好,因此开采性能越低。同样,a2越高,开采能力越好,勘探能力越低。第三个组成部分,符号(r−0.5),对勘探和开发方向的影响。r是介于0和1之间的随机向量。对于本文随后解决的所有问题,a1和a2分别等于2和1。这些常数是通过测试函数子集的经验测试来选择的。然而,这些参数可以根据需要针对其他问题进行调整。

等式(11)显示了等式(8)的修订版本,将等式(10)替换为等式((8):

在这里插入图片描述

2.3 生成率(G)

生成率是所提出的算法中最重要的术语之一,通过改进开发阶段来提供精确的解决方案。例如,将生成率描述为一阶指数衰减过程的一个多用途模型定义为:

在这里插入图片描述

其中G0是初始值,k表示衰减常数。为了具有更可控和系统的搜索模式,并限制随机变量的数量,本研究假设k=λ,并使用先前导出的指数项。因此,生成速率方程的最终集合如下:

在这里插入图片描述

其中r1和r2是[0,1]中的随机数,并且GCP向量是通过重复由等式(15)得到的相同值来构造的。在这个方程中,GCP被定义为生成率控制参数,它包括生成项对更新过程的贡献的可能性。指定有多少粒子使用生成项来更新其状态的这种贡献的概率由另一个称为生成概率(GP)的项决定。这种贡献的机制由等式(14)和(15)决定。方程(15)发生在每个粒子的水平上。例如,如果GCP为零,则G等于零,并且在没有生成率项的情况下更新该特定粒子的所有维度。在GP=0.5的情况下,勘探和开发之间实现了良好的平衡。最后,EO的更新规则如下:

在这里插入图片描述

其中F在等式(11)中定义,V被认为是单位。

等式(16)中的第一项是平衡浓度,其中第二项和第三项表示浓度的变化。第二个术语负责全局搜索空间以找到最佳点。这个术语对探索有更大的贡献,从而利用了浓度的大变化(即平衡和样品颗粒之间的直接差异)。当它找到一个点时,第三项有助于使解决方案更加准确。因此,这个术语对开采有更大的贡献,并受益于由生成率术语控制的浓度的小变化(等式(13))。根据粒子浓度和平衡候选者以及周转率(λ)等参数,第二项和第三项可能具有相同或相反的符号。相同的符号使变异变大,这有助于更好地搜索整个域,相反的符号使变化变小,有助于局部搜索

尽管第二项试图找到离均衡候选者相对较远的解,而第三项试图细化更接近候选者的解,但这种情况并不总是发生。第三项分母中的小周转率(例如≤0.05)增加了其变化,也有助于在某些维度上进行探索。图1展示了这些术语如何促进勘探和开发的一维版本。C1−Ceq代表方程中的第二项。(16)而Ceq−λC1代表第三项(G是G0的函数)。生成速率项(等式(13)-(15))控制这些变化。因为λ随每个维度的变化而变化,所以这种大的变化只发生在λ值较小的维度上。值得一提的是,这一功能类似于进化算法中的突变算子,极大地帮助EO开发解决方案。

在这里插入图片描述

图2显示了在所提出的算法中,样本粒子上所有平衡候选者的协作以及它们如何一个接一个地影响浓度更新的概念草图。由于平衡候选者的拓扑位置在初始迭代中是不同的,并且指数项会产生大的随机数,因此这种逐步更新的过程有助于粒子在搜索中覆盖整个域。相反的情况发生在最后的迭代中,当候选者通过类似的配置围绕最优点时。在这些时候,指数项会产生较小的随机数,这有助于通过提供较小的步长来细化解决方案。这个概念也可以作为超空间扩展到更高的维度,由此浓度将随着粒子在n维空间中的运动而更新。

在这里插入图片描述

3.文件结构

在这里插入图片描述

EO.m							% 平衡优化器算法
Get_Functions_details.m			% 基准的全部信息和实现
initialization.m				% 初始化
main.m							% 主函数

4.伪代码

在这里插入图片描述

5.详细代码及注释

5.1 EO.m

function [Convergence_curve,Ave,Sd]=EO(Particles_no,Max_iter,lb,ub,dim,fobj,Run_no)

for irun=1:Run_no

Ceq1=zeros(1,dim);   Ceq1_fit=inf; 
Ceq2=zeros(1,dim);   Ceq2_fit=inf; 
Ceq3=zeros(1,dim);   Ceq3_fit=inf; 
Ceq4=zeros(1,dim);   Ceq4_fit=inf;

C=initialization(Particles_no,dim,ub,lb);

Iter=0; V=1;

a1=2;
a2=1;
GP=0.5;

while Iter<Max_iter
   
      for i=1:size(C,1)  
        
        Flag4ub=C(i,:)>ub;
        Flag4lb=C(i,:)<lb;
        C(i,:)=(C(i,:).*(~(Flag4ub+Flag4lb)))+ub.*Flag4ub+lb.*Flag4lb;         
          
        fitness(i)=fobj(C(i,:));
      
        if fitness(i)<Ceq1_fit 
              Ceq1_fit=fitness(i);  Ceq1=C(i,:);
        elseif fitness(i)>Ceq1_fit && fitness(i)<Ceq2_fit  
              Ceq2_fit=fitness(i);  Ceq2=C(i,:);              
        elseif fitness(i)>Ceq1_fit && fitness(i)>Ceq2_fit && fitness(i)<Ceq3_fit
              Ceq3_fit=fitness(i);  Ceq3=C(i,:);
        elseif fitness(i)>Ceq1_fit && fitness(i)>Ceq2_fit && fitness(i)>Ceq3_fit && fitness(i)<Ceq4_fit
              Ceq4_fit=fitness(i);  Ceq4=C(i,:);
                         
        end
      end
      
%---------------- Memory saving-------------------   
      if Iter==0
        fit_old=fitness;  C_old=C;
      end
    
     for i=1:Particles_no
         if fit_old(i)<fitness(i)
             fitness(i)=fit_old(i); C(i,:)=C_old(i,:);
         end
     end

    C_old=C;  fit_old=fitness;
%-------------------------------------------------
       
Ceq_ave=(Ceq1+Ceq2+Ceq3+Ceq4)/4;                              % averaged candidate 
C_pool=[Ceq1; Ceq2; Ceq3; Ceq4; Ceq_ave];                     % Equilibrium pool

 
 t=(1-Iter/Max_iter)^(a2*Iter/Max_iter);                      % Eq (9)

 
    for i=1:Particles_no
           lambda=rand(1,dim);                                % lambda in Eq(11)
           r=rand(1,dim);                                     % r in Eq(11)  
           Ceq=C_pool(randi(size(C_pool,1)),:);               % random selection of one candidate from the pool
           F=a1*sign(r-0.5).*(exp(-lambda.*t)-1);             % Eq(11)
           r1=rand(); r2=rand();                              % r1 and r2 in Eq(15)
           GCP=0.5*r1*ones(1,dim)*(r2>=GP);                   % Eq(15)
           G0=GCP.*(Ceq-lambda.*C(i,:));                      % Eq(14)
           G=G0.*F;                                           % Eq(13)
           C(i,:)=Ceq+(C(i,:)-Ceq).*F+(G./lambda*V).*(1-F);   % Eq(16)                                                             
    end
 
       Iter=Iter+1;  
       Convergence_curve(Iter)=Ceq1_fit; 
       Ceqfit_run(irun)=Ceq1_fit;

end


display(['Run no : ', num2str(irun)]);
display(['The best solution obtained by EO is : ', num2str(Ceq1,10)]);
display(['The best optimal value of the objective funciton found by EO is : ', num2str(Ceq1_fit,10)]);
disp(sprintf('--------------------------------------'));
end


Ave=mean(Ceqfit_run);
Sd=std(Ceqfit_run);

5.2 Get_Functions_details.m

function [lb,ub,dim,fobj] = Get_Functions_details(F)


switch F
    case 'F1'
        fobj = @F1;
        lb=-100;
        ub=100;
        dim=30;
        
    case 'F2'
        fobj = @F2;
        lb=-100;
        ub=100;
        dim=30;
        
    case 'F3'
        fobj = @F3;
        lb=-100;
        ub=100;
        dim=30;
        
    case 'F4'
        fobj = @F4;
        lb=-100;
        ub=100;
        dim=30;
        
    case 'F5'
        fobj = @F5;
        lb=-30;
        ub=30;
        dim=30;
        
    case 'F6'
        fobj = @F6;
        lb=-100;
        ub=100;
        dim=30;
        
    case 'F7'
        fobj = @F7;
        lb=-1.28;
        ub=1.28;
        dim=30;
        
    case 'F8'
        fobj = @F8;
        lb=-500;
        ub=500;
        dim=30;
        
    case 'F9'
        fobj = @F9;
        lb=-5.12;
        ub=5.12;
        dim=30;
        
    case 'F10'
        fobj = @F10;
        lb=-32;
        ub=32;
        dim=30;
        
    case 'F11'
        fobj = @F11;
        lb=-600;
        ub=600;
        dim=30;
        
    case 'F12'
        fobj = @F12;
        lb=-50;
        ub=50;
        dim=30;
        
    case 'F13'
        fobj = @F13;
        lb=-50;
        ub=50;
        dim=30;
        
    case 'F14'
        fobj = @F14;
        lb=-65.536;
        ub=65.536;
        dim=2;
        
    case 'F15'
        fobj = @F15;
        lb=-5;
        ub=5;
        dim=4;
        
    case 'F16'
        fobj = @F16;
        lb=-5;
        ub=5;
        dim=2;
        
    case 'F17'
        fobj = @F17;
        lb=[-5,0];
        ub=[10,15];
        dim=2;
        
    case 'F18'
        fobj = @F18;
        lb=-2;
        ub=2;
        dim=2;
        
    case 'F19'
        fobj = @F19;
        lb=0;
        ub=1;
        dim=3;
        
    case 'F20'
        fobj = @F20;
        lb=0;
        ub=1;
        dim=6;     
        
    case 'F21'
        fobj = @F21;
        lb=0;
        ub=10;
        dim=4;    
        
    case 'F22'
        fobj = @F22;
        lb=0;
        ub=10;
        dim=4;    
        
    case 'F23'
        fobj = @F23;
        lb=0;
        ub=10;
        dim=4;   
             
  
end

end

% F1

function o = F1(x)
o=sum(x.^2);
end

% F2

function o = F2(x)
o=sum(abs(x))+prod(abs(x));
end

% F3

function o = F3(x)
dim=size(x,2);
o=0;
for i=1:dim
    o=o+sum(x(1:i))^2;
end
end

% F4

function o = F4(x)
o=max(abs(x));
end

% F5

function o = F5(x)
dim=size(x,2);
o=sum(100*(x(2:dim)-(x(1:dim-1).^2)).^2+(x(1:dim-1)-1).^2);
end

% F6

function o = F6(x)
o=sum(abs((x+.5)).^2);
end

% F7

function o = F7(x)
dim=size(x,2);
o=sum([1:dim].*(x.^4))+rand;
end

% F8

function o = F8(x)
o=sum(-x.*sin(sqrt(abs(x))));
end

% F9

function o = F9(x)
dim=size(x,2);
o=sum(x.^2-10*cos(2*pi.*x))+10*dim;
end

% F10

function o = F10(x)
dim=size(x,2);
o=-20*exp(-.2*sqrt(sum(x.^2)/dim))-exp(sum(cos(2*pi.*x))/dim)+20+exp(1);
end

% F11

function o = F11(x)
dim=size(x,2);
o=sum(x.^2)/4000-prod(cos(x./sqrt([1:dim])))+1;
end

% F12

function o = F12(x)
dim=size(x,2);
o=(pi/dim)*(10*((sin(pi*(1+(x(1)+1)/4)))^2)+sum((((x(1:dim-1)+1)./4).^2).*...
(1+10.*((sin(pi.*(1+(x(2:dim)+1)./4)))).^2))+((x(dim)+1)/4)^2)+sum(Ufun(x,10,100,4));
end


% F13

function o = F13(x)
dim=size(x,2);
o=.1*((sin(3*pi*x(1)))^2+sum((x(1:dim-1)-1).^2.*(1+(sin(3.*pi.*x(2:dim))).^2))+...
((x(dim)-1)^2)*(1+(sin(2*pi*x(dim)))^2))+sum(Ufun(x,5,100,4));
end

% F14

function o = F14(x)
aS=[-32 -16 0 16 32 -32 -16 0 16 32 -32 -16 0 16 32 -32 -16 0 16 32 -32 -16 0 16 32;,...
-32 -32 -32 -32 -32 -16 -16 -16 -16 -16 0 0 0 0 0 16 16 16 16 16 32 32 32 32 32];

for j=1:25
    bS(j)=sum((x'-aS(:,j)).^6);
end
o=(1/500+sum(1./([1:25]+bS))).^(-1);
end

% F15

function o = F15(x)
aK=[.1957 .1947 .1735 .16 .0844 .0627 .0456 .0342 .0323 .0235 .0246];
bK=[.25 .5 1 2 4 6 8 10 12 14 16];bK=1./bK;
o=sum((aK-((x(1).*(bK.^2+x(2).*bK))./(bK.^2+x(3).*bK+x(4)))).^2);
end

% F16

function o = F16(x)
o=4*(x(1)^2)-2.1*(x(1)^4)+(x(1)^6)/3+x(1)*x(2)-4*(x(2)^2)+4*(x(2)^4);
end

% F17

function o = F17(x)
o=(x(2)-(x(1)^2)*5.1/(4*(pi^2))+5/pi*x(1)-6)^2+10*(1-1/(8*pi))*cos(x(1))+10;
end

% F18

function o = F18(x)
o=(1+(x(1)+x(2)+1)^2*(19-14*x(1)+3*(x(1)^2)-14*x(2)+6*x(1)*x(2)+3*x(2)^2))*...
    (30+(2*x(1)-3*x(2))^2*(18-32*x(1)+12*(x(1)^2)+48*x(2)-36*x(1)*x(2)+27*(x(2)^2)));
end

% F19

function o = F19(x)
aH=[3 10 30;.1 10 35;3 10 30;.1 10 35];cH=[1 1.2 3 3.2];
pH=[.3689 .117 .2673;.4699 .4387 .747;.1091 .8732 .5547;.03815 .5743 .8828];
o=0;
for i=1:4
    o=o-cH(i)*exp(-(sum(aH(i,:).*((x-pH(i,:)).^2))));
end
end

% F20

function o = F20(x)
aH=[10 3 17 3.5 1.7 8;.05 10 17 .1 8 14;3 3.5 1.7 10 17 8;17 8 .05 10 .1 14];
cH=[1 1.2 3 3.2];
pH=[.1312 .1696 .5569 .0124 .8283 .5886;.2329 .4135 .8307 .3736 .1004 .9991;...
.2348 .1415 .3522 .2883 .3047 .6650;.4047 .8828 .8732 .5743 .1091 .0381];
o=0;
for i=1:4
    o=o-cH(i)*exp(-(sum(aH(i,:).*((x-pH(i,:)).^2))));
end
end

% F21

function o = F21(x)
aSH=[4 4 4 4;1 1 1 1;8 8 8 8;6 6 6 6;3 7 3 7;2 9 2 9;5 5 3 3;8 1 8 1;6 2 6 2;7 3.6 7 3.6];
cSH=[.1 .2 .2 .4 .4 .6 .3 .7 .5 .5];

o=0;
for i=1:5
    o=o-((x-aSH(i,:))*(x-aSH(i,:))'+cSH(i))^(-1);
end
end

% F22

function o = F22(x)
aSH=[4 4 4 4;1 1 1 1;8 8 8 8;6 6 6 6;3 7 3 7;2 9 2 9;5 5 3 3;8 1 8 1;6 2 6 2;7 3.6 7 3.6];
cSH=[.1 .2 .2 .4 .4 .6 .3 .7 .5 .5];

o=0;
for i=1:7
    o=o-((x-aSH(i,:))*(x-aSH(i,:))'+cSH(i))^(-1);
end
end

% F23

function o = F23(x)
aSH=[4 4 4 4;1 1 1 1;8 8 8 8;6 6 6 6;3 7 3 7;2 9 2 9;5 5 3 3;8 1 8 1;6 2 6 2;7 3.6 7 3.6];
cSH=[.1 .2 .2 .4 .4 .6 .3 .7 .5 .5];

o=0;
for i=1:10
    o=o-((x-aSH(i,:))*(x-aSH(i,:))'+cSH(i))^(-1);
end
end

function o=Ufun(x,a,k,m)
o=k.*((x-a).^m).*(x>a)+k.*((-x-a).^m).*(x<(-a));
end

5.3 initialization.m

function [Cin,domain]=initialization(SearchAgents_no,dim,ub,lb)

Boundary_no= size(ub,2); % numnber of boundaries

% If the boundaries of all variables are equal and user enter a signle
% number for both ub and lb
if Boundary_no==1
    Cin=rand(SearchAgents_no,dim).*(ub-lb)+lb;
    domain=ones(1,dim)*(ub-lb);
end


% If each variable has a different lb and ub
if Boundary_no>1
    for i=1:dim
        ub_i=ub(i);
        lb_i=lb(i);
        Cin(:,i)=rand(SearchAgents_no,1).*(ub_i-lb_i)+lb_i;
    end
    domain=ones(1,dim).*(ub-lb);
end

5.4 main.m

clear all
clc
tic;
Run_no=30;         % Number of independent runs 
Particles_no=30;   % Number of particles
Max_iteration=500; % Maximum number of iterations

Function_name='F1'; 
        
[lb,ub,dim,fobj]=Get_Functions_details(Function_name);
    
[Convergence_curve,Ave,Sd]=EO(Particles_no,Max_iteration,lb,ub,dim,fobj,Run_no);

display(['The average objective function is : ', num2str(Ave,7)]);
display(['The standard deviation is : ', num2str(Sd,7)]);

toc;

6.运行结果

在这里插入图片描述

7.参考文献

[1]Faramarzi A,Heidarinejad M,Stephens B, et al. Equilibrium optimizer: A novel optimization algorithm[J]. Knowledge-Based Systems,2020,191©.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/715147.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux基础服务7——lamp架构

文章目录 一、基本了解二、单机部署LAMP2.1 安装httpd2.2 安装mysql2.3 安装php环境2.4 配置apache 三、分离部署四、脚本单机部署 一、基本了解 LAMP架构介绍&#xff1a; lamp是由LinuxApacheMysql/MariaDBPhp/Perl/Python的一组动态网站或者服务器的开源软件。LAMP指Linux&a…

多元回归预测 | Matlab基于深度置信网络(DBN)回归预测,matlab代码回归预测,多变量输入模型

文章目录 效果一览文章概述部分源码参考资料效果一览 文章概述 多元回归预测 | Matlab多元回归预测 | Matlab基于深度置信网络(DBN)回归预测,matlab代码回归预测,多变量输入模型 评价指标包括:MAE、RMSE和R2等,代码质量极高,方便学习和替换数据。要求2018版本及以上。 部分…

原来工作18年的企业大佬都是这样自定义企业微信扫码登录的样式

前言 由于企业微信扫码登录都是固定样式和模板&#xff0c;每个公司在前期使用的时候可能会使用原样的模版&#xff0c;随着业务场景的复杂及细分场景优化&#xff0c;这个固定样式的模版满足不了企业的需求&#xff0c;所以需要对模版进行改造&#xff0c;使它更加贴合企业业务…

【elementplus】解决el-table开启show-overflow-tooltip后,tooltip的显示会被表格边框遮挡的问题

如图所示&#xff1a; 原因&#xff1a; 1. el-table没有设置高度&#xff1b;2.就是被遮住了 解决&#xff1a; 方法一&#xff1a;给el-table设置高度 方法二: .el-table {overflow: visible !important;}如果不想给el-table设置高度&#xff0c;就直接使用方法二解决即可

Pycharm使用Anoconda配置虚拟环境

目录 1.Anoconda的介绍 2.Anaconda的作用 3.Anaconda的安装 4.Anaconda的配置 4.1添加镜像源 4.2创建、使用并切换虚拟环境 5.pycharm的集成 1.Anoconda的介绍 Anaconda是一个可用于科学计算的 Python 发行版&#xff0c;可以便捷获取和管理包&#xff0c;同时对环境进行…

Java内存结构分析

一、Java内存结构划分 Java虚拟机的运行时数据区域主要包括程序计数器、Java虚拟机栈、本地方法栈、堆、方法区。 &#xff08;1&#xff09;程序计数器&#xff08;Program Counter Register&#xff09; 它是一块较小的内存空间&#xff0c;它可以看作是当前线程所执行的字…

SpringBoot项目整合WebSocket+netty实现前后端双向通信(同时支持前端webSocket和socket协议哦)

目录 前言 技术栈 功能展示 一、springboot项目添加netty依赖 二、netty服务端 三、netty客户端 四、测试 五、代码仓库地址 专属小彩蛋&#xff1a;前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家…

OLS回归分析理论基础

前言 由于目前的实证研究中需要对变量间的因果关系进行定量分析&#xff0c;所以以伍德里奇和陈强两版本计量经济学教材为基础&#xff0c;有针对性的整理出OLS回归的相关知识&#xff0c;以解决实证分析中的实际问题。 1&#xff09;本文重点&#xff1a;本文重点研究OLS下面板…

vs code koroFileHeader插件相关配置

https://www.cnblogs.com/melodyjerry/p/14449990.html 一、安装插件 koroFileHeader 插件作用&#xff1a;在文件顶部添加头部注释 VS Code 中搜索并安装插件 koroFileHeader&#xff1b; 点击插件右下方的 设置 按钮 > 扩展设置 > 点击 在settings.json 中编辑&…

数据结构 线性表的定义和基本操作(以顺序表为例)

名人说&#xff1a;一花独放不是春&#xff0c;百花齐放花满园。——《增广贤文》 作者&#xff1a;Code_流苏(CSDN)&#xff08;一个喜欢古诗词和编程的Coder&#x1f60a;&#xff09; 目录 〇、线性表是什么&#xff1f;1、定义2、特点3、基本操作 一、代码实现二、思路阐明…

记录使用ffmpeg把mp4转换成m3u8

背景:公司需要上一些视频资源,平均每一个都在600m以上,经过考虑以后采取视频分片以后上传到oss上进行加速播放的流程.这里记录一下使用ffmpeg进行转换视频格式的过程中的一些命令. 准备工作: 下载ffmpeg到本地,以及配置ffmpeg到环境变量中,这里就不多说了. 使用的时候先打开…

软考每年成绩几月公布 软考考试历年成绩查询时间

软考成绩一般在考试结束后两个月内公布&#xff0c;上半年软考考试成绩一般在7月查询&#xff0c;下半年软考考试成绩一般在12月查询。软考成绩在中国计算机技术职业资格网公布&#xff0c;从2022年起&#xff0c;软考的合格标准为满分的60%&#xff0c;即45分合格。 软考考试…

MybatisX插件自动生成sql失效问题的详细分析

mybatis框架提供了非常好用的逆向工程插件&#xff0c;但是根据数据库驱动版本的不同会出现一些问题。 在使用mybatisX插件的时候使用Generate mybatis sql无法实现自动生成sql 解决方案&#xff1a; 1.首先检查自己的数据库中表是否有主键&#xff0c;如果没有主键是不会生…

流及其相关操作

本文已收录于专栏 《Java》 目录 概念说明流 流的分类根据数据流向的不同&#xff0c;可以分为输入流和输出流。根据处理单位的不同&#xff0c;可以分为字节流和字符流。根据功能不同&#xff0c;可以分为节点流和处理流。 提供服务过滤操作&#xff08;Filter&#xff09;映射…

后端基础:IO cell的pre driver与post driver的区别

pre driver就是接core电压的部分&#xff0c;一般叫VDD/VSS&#xff0c;post driver就是接pad的高压部分。所以power IO起到一个level shifter的作用&#xff0c;将高压转换为低压。 pre driver和post driver地共用的情况可以节省一个PAD&#xff0c;esd也很好&#xff0c;但是…

华为IMC培训——通信基础与路由协议

目录 环境搭建 wireshark安装 VirtualBox安装 WinPcap安装 eNSP安装 数据在七层模型间的传输过程 路由 静态路由 动态路由 rip OSPF 单臂路由 ——————————————————————————————————————————— 虽然是白嫖的课&#xff…

使用cmake创建visual studio工程

对于从网上拉取的C++代码,手动配置VS环境比较麻烦,使用cmake可以自动配置,这里使用一个简单的cmake配置hello.cpp例子演示 前提环境:cmake vs2017 1.在某路径下创建一个文件夹名为test:(注意:路径中不能有中文) 其中CMakeList.txt文件中输入代码如下: 其中,cmake_…

supervisor管理

supervisor 一&#xff1a;supervisor使用详解 一&#xff1a;supervisor使用详解 简介 使用文档&#xff1a;http://supervisord.org/ supervisor是Python开发的c/s服务&#xff0c;是Linux系统下的进程管理工具。 可以监听、启动、停止、重启一个或多个进程 用supervisor…

【SLAM学习】获取IMU和雷达消息并发布

本文主要记录如何将rosbag的消息进行获取并进行发布以及后续处理。 测试数据集&#xff1a; 链接: https://pan.baidu.com/s/1DthWE45V5Zhq7UUrfTt_CQ 提取码: mxvn 查看数据集bag包里面都有那些话题&#xff1a; rosbag info indoor_lab_RS.bag 可以看到包含了两个话题…

web安全php基础_php语法格式与注释

php开头与结尾 php脚本以<php 开始 以 ?>结束 但是先前创建页面的时候我们发现phpinfo只有<php开头&#xff0c;并没有&#xff1f;>结尾 在这里我们可以手动给它加上?>结尾 php强制使用分号&#xff1b;结尾 PHP指令分隔符   与C、Perl及Java一样&…