基于麻雀算法改进的SVM电器启动识别,基于麻雀算法优化SVM分类预测

news2024/12/25 1:03:09

目录

摘要
背影
Eggholder测试函数
MATALB编程 测试函数代码
麻雀算法原理
麻雀算法主要参数
麻雀算法流程图
麻雀算法优化测试函数代码
基于麻雀算法改进的SVM电器启动识别
matlab编程实现
效果图
结果分析
展望

摘要

麻雀算法理论,SSA-SVM,电器启动识别,测试函数Eggholder

背影

现代社会进入智能化社会,家用电器实现联网,远程控制开启是社会的发展趋势,电器启动识别是实现智能家居的必然要求之一,本文基于麻雀算法改进SVM对电器启动实现识别

Eggholder测试函数

函数特点

Eggholder函数是一个难以优化的函数,因为存在大量的局部极小值,并且波峰波谷陡峭,比较容易陷入局部最优,是测试各种算法的一个较好的函数,测试效果好就能说明算法性能优异,参数设置合理,同时能检验一个程序员是否真正掌握算法的精髓。一种新型的群智能优化算法,在2020年提出,主要是受麻雀的觅食行为和反捕食行为的启发,在麻雀觅食的过程中,分为发现者(探索者)和加入者(追随者),发现者在种群中负责寻找食物并为整个麻雀种群提供觅食区域和方向,而加入者则是利用发现者来获取食物。为了获得食物,麻雀通常可以采用发现者和加入者这两种行为策略进行觅食。种群中的个体会监视群体中其它个体的行为,并且该种群中的攻击者会与高摄取量的同伴争夺食物资源,以提高自己的捕食率。此外,当麻雀种群意识到危险时会做出反捕食行为,本文用麻雀算法ssa对Eggholder进行优化求解以验证麻雀算法的性能其中,

测试函数Eggholder图像如下:

在这里插入图片描述

MATALB编程的Eggholder函数代码如下:

clc
clear
close all
clc
clear
close all
[x,y]= meshgrid(-500:2:500);
[mx,my] = size(x);
z = zeros(size(x));
for ii = 1:mx
for jj = 1:my
z(ii,jj) = eggholderfun(x(ii,jj),y(ii,jj));
end
end
figure
surfc(x,y,z)
shading interp
xlabel(‘x’)
ylabel(‘y’)
zlabel(‘f’)
colormap(jet)
view([112 18])
set(gca,‘fontsize’,12)
axis([-600

function [y] = eggholderfun(x1,x2)

term1 = -(x2+47) * sin(sqrt(abs(x2+x1/2+47)));
term2 = -x1 * sin(sqrt(abs(x1-(x2+47))));

y = term1 + term2;

end

麻雀算法SSA的原理

主要公式

在SSA中,具有较好适应度值的发现者在搜索过程中会优先获取食物。此外,因为发现者负责为整个麻雀种群寻找食物并为所有加入者提供觅食的方向。因此,发现者可以获得比加入者更大的觅食搜索范围。在每次迭代的过程中,发现者的位置更新描述如下:
在这里插入图片描述
其中,t代表当前迭代数,itermax是一个常数,表示最大的迭代次数。Xij表示第i个麻雀在第j维中的位置信息。α∈(0,1]是一个随机数。R2(R2∈[0,1])和ST(ST∈[0.5,1])分别表示预警值和安全值。Q是服从正态分布的随机数。L表示一个1×d的矩阵,其中该矩阵内每个元素全部为1。当R2< ST 时,这意味着此时的觅食环境周围没有捕食者,发现者可以执行广泛的搜索操作。当R2 ≥ ST,这表示种群中的一些麻雀已经发现了捕食者,并向种群中其它麻雀发出了警报,此时所有麻雀都需要迅速飞到其它安全的地方进行觅食。
加入者(追随者)的位置更新描述如下:
在这里插入图片描述

其中,Xp是目前发现者所占据的最优位置,Xworst则表示当前全局最差的位置。A表示一个1×d的矩阵,其中每个元素随机赋值为1或-1,并且A+=AT(AAT)-1。当i >n/2时,这表明,适应度值较低的第i个加入者没有获得食物,处于十分饥饿的状态,此时需要飞往其它地方觅食,以获得更多的能量。
当意识到危险时,麻雀种群会做出反捕食行为,其数学表达式如下:
在这里插入图片描述

其中,其中Xbest是当前的全局最优位置。β作为步长控制参数,是服从均值为0,方差为1的正态分布的随机数。K∈[-1,1]是一个随机数,fi则是当前麻雀个体的适应度值。fg和fw分别是当前全局最佳和最差的适应度值。ε是最小的常数,以避免分母出现零。
为简单起见,当fi >fg表示此时的麻雀正处于种群的边缘,极其容易受到捕食者的攻击。fi = fg时,这表明处于种群中间的麻雀意识到了危险,需要靠近其它的麻雀以此尽量减少它们被捕食的风险。K表示麻雀移动的方向同时也是步长控制参数。

麻雀算法SSA的主要参数:

一、种群个数popsize,既算法中麻雀的个数;
二、最大迭代次数maxgen,既算法迭代gen次后停止迭代;
三、种群维度dim,既需要优化的自变量个数;
四、种群位置pop,既每个麻雀的对应的自变量的值,一个麻雀对应一组自变量,相当于一个解;
五、发现者比例P_percent,既麻雀算法发现者占所有麻雀的比例;
六、安全值ST,既这意味着此时的觅食环境周围没有捕食者;

麻雀算法流程图

在这里插入图片描述

麻雀算法SSA优化测试函数Eggholder的MATLAB代码如下:

% 清空环境
clc
clear
close all
warning off
%读取数据
fun = @eggholderfun;
dim=2;
maxgen=50; % 进化次数
sizepop=500; %种群规模

popmax=512 ;
popmin=-512;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
P_percent = 0.2; % The population size of producers accounts for “P_percent” percent of the total population size

pNum = round( sizepop * P_percent ); % The population size of the producers
beta=20;

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
for i=1:sizepop
pop(i,:)=2popmaxrand(1,dim)+popmin;
% V(i,:)=rands(1,21);
fitness(i)=fun(pop(i,1),pop(i,2));
end
pop0=pop;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
pFit = fitness;
[ fMin, bestI ] = min( fitness ); % fMin denotes the global optimum fitness value
bestX = pop( bestI, : ); % bestX denotes the global optimum position corresponding to fMin

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%麻雀搜索算法 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
for t = 1 : maxgen
[ ans, sortIndex ] = sort( pFit );% Sort.

[fmax,B]=max( pFit );
worse= pop(B,:);

r2=rand(1);
if(r2<0.8)

for i = 1 : pNum                                                   % Equation (3)
     r1=rand(1);
    pop( sortIndex( i ), : ) = pop( sortIndex( i ), : )*exp(-(i)/(r1*maxgen));
   for hh = 1:2
         if pop( sortIndex( i ),hh)>popmax
             pop( sortIndex( i ),hh)=popmax;
         elseif pop( sortIndex( i ),hh)<popmin
             pop( sortIndex( i ),hh)=popmin;
         end
     end
    fitness(sortIndex( i ))=fun(pop(sortIndex( i ),1),pop(sortIndex( i ),2)); 
end

else
for i = 1 : pNum

pop( sortIndex( i ), : ) = pop( sortIndex( i ), : )+(beta*rand(1,dim)-beta/2).*ones(1,dim);
for hh = 1:2
if pop( sortIndex( i ),hh)>popmax
pop( sortIndex( i ),hh)=popmax;
elseif pop( sortIndex( i ),hh)<popmin
pop( sortIndex( i ),hh)=popmin;
end
end
fitness(sortIndex( i ))=fun(pop(sortIndex( i ),1),pop(sortIndex( i ),2));

end

end
[ fMMin, bestII ] = min( fitness );
bestXX = pop( bestII, : );
for i = ( pNum + 1 ) : sizepop % Equation (4)

     A=floor(rand(1,dim)*2)*2-1;
     
      if( i>(sizepop/2))
       pop( sortIndex(i ), : )=rand(1)*exp((worse-pop( sortIndex( i ), : ))/(i)^2);
      else
      pop( sortIndex( i ), : )=bestXX+(abs(( pop( sortIndex( i ), : )-bestXX)))*(A'*(A*A')^(-1))*ones(1,dim);  

      end  
     for hh = 1:2
         if pop( sortIndex( i ),hh)>popmax
             pop( sortIndex( i ),hh)=popmax;
         elseif pop( sortIndex( i ),hh)<popmin
             pop( sortIndex( i ),hh)=popmin;
         end
     end
             
    
    fitness(sortIndex( i ))=fun(pop(sortIndex( i ),1),pop(sortIndex( i ),2));

end
c=randperm(numel(sortIndex));
b=sortIndex(c(1:3));
for j = 1 : length(b) % Equation (5)

if( pFit( sortIndex( b(j) ) )>(fMin) )

    pop( sortIndex( b(j) ), : )=bestX+beta*(randn(1,dim)).*(abs(( pop( sortIndex( b(j) ), : ) -bestX)));

    else

    pop( sortIndex( b(j) ), : ) =pop( sortIndex( b(j) ), : )+(beta*(2*rand(1)-1))*(abs(pop( sortIndex( b(j) ), : )-worse))/ ( pFit( sortIndex( b(j) ) )-fmax+1e-50);

end
   
   for hh = 1:2
         if pop( sortIndex( i ),hh)>popmax
             pop( sortIndex( i ),hh)=popmax;
         elseif pop( sortIndex( i ),hh)<popmin
             pop( sortIndex( i ),hh)=popmin;
         end
     end
   fitness(sortIndex( i ))=fun(pop(sortIndex( i ),1),pop(sortIndex( i ),2));
end

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
for i = 1 : sizepop
if ( fitness( i ) < pFit( i ) )
pFit( i ) = fitness( i );
pop(i,:) = pop(i,:);
end

    if( pFit( i ) < fMin )
       fMin= pFit( i );
        bestX =pop( i, : );
     
        
    end
end



yy(t)=fMin;    

end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% 迭代寻优
x=bestX
%% 结果分析
plot(yy)
title(['适应度曲线 ’ ‘终止代数=’ num2str(maxgen)]);
xlabel(‘进化代数’);ylabel(‘适应度’);

[x,y]= meshgrid(-500:2:500);
[mx,my] = size(x);
z = zeros(size(x));
for ii = 1:mx
for jj = 1:my
z(ii,jj) = eggholderfun(x(ii,jj),y(ii,jj));
end
end
figure
surf(x,y,z)
shading interp
hold on
plot3(pop(:,1),pop(:,2),fitness,‘ro’)
xlabel(‘x’)
ylabel(‘y’)
zlabel(‘f’)
colormap(jet)
view([112 18])
set(gca,‘fontsize’,12)
axis([-600 600 -600 600 -1000 1500])
title(‘SSA收敛后种群分布’)

figure
surf(x,y,z)
shading interp
hold on
plot3(pop0(:,1),pop0(:,2),fitness,‘ro’)
xlabel(‘x’)
ylabel(‘y’)
zlabel(‘f’)
colormap(jet)
view([112 18])
set(gca,‘fontsize’,12)
axis([-600 600 -600 600 -1000 1500])
title(‘SSA初始种群分布’)

麻雀算法ssa优化eggholder函数结果图如下:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
通过测试函数可以看出来,麻雀算法可以拥有很好的优化能力,寻优能力比较钱,不易陷入局部最优。

麻雀算法改进的SVM电器启动识别

SVM的参数c和g对SVM的分类精度影响很大,并且很多时候,参数c和g的响应分布并不平滑,很难通过试凑法找到最佳的参数,所以用麻雀算法来寻找最佳的参数c和g,
MATALB编程代码如下;
%% 清空环境变量
close all;
clear;
clc;
format compact;
%% 数据提取

% 载入测试数据wine,其中包含的数据为classnumber = 3,wine:17813的矩阵,wine_labes:1781的列向量
load data1.mat;
data=tz;
k=rand(1,length(data));
[m,n]=sort(k);
m1=floor(length(m)*0.8); %80%作为训练集
%% 输入输出数据
input=data(:,1:end-1);
output=data(:,end);
%抽取前80%个样本为训练样本,后20%个样本为预测样本
input_train=input(n(1:m1)😅‘; %行为样本列为特征点
label_train=output(n(1:m1)😅’;%类似于标签
input_test=input(n(m1+1:end)😅‘;
label_test=output(n(m1+1:end)😅’;

train_wine_labels=label_train’;
test_wine_labels=label_test’;
%% 数据预处理
% 数据预处理,将训练集和测试集归一化到[0,1]区间
train_wine=input_train’;
test_wine=input_test’;
[mtrain,ntrain] = size(train_wine);
[mtest,ntest] = size(test_wine);

dataset = [train_wine;test_wine];
% mapminmax为MATLAB自带的归一化函数
[dataset_scale,ps] = mapminmax(dataset’,0,1);
dataset_scale = dataset_scale’;

train_wine = dataset_scale(1:mtrain,:);
test_wine = dataset_scale( (mtrain+1):(mtrain+mtest),: );

tic
% [ BPoutput,bpyk ,bpzhunlv] = bpfun(input_train,label_train,input_test,label_test );
BPtime = toc;

tic
[ yy,svmyk,svmzhunlv] = svmfun(train_wine_labels, train_wine, test_wine, test_wine_labels)

SVMtime=toc;
%% 智能算法优化SVM训练,若使用网络训练将这部分与下面优化部分删除即可。
tic
%% 麻雀参数设置
% 定义优化参数的个数,在该场景中,优化参数的个数dim为2 。
% 定义优化参数的上下限,如c的范围是[0.01, 1], g的范围是[2^-5, 2^5],那么参数的下限lb=[0.01, 2^-5];参数的上限ub=[1, 2^5]。
%目标函数
fun = @getObjValue;
% 优化参数的个数 (c、g)
dim = 2;
% 优化参数的取值下限
lb = [0.01, 0.01];
ub = [1000, 1000];

%% 参数设置
pop =100; %麻雀数量
Max_iteration=50;%最大迭代次数
%% 优化(这里主要调用函数)
[Best_pos,Best_score,curve]=SSA(pop,Max_iteration,lb,ub,dim,fun);
c = Best_pos(1, 1);
g = Best_pos(1, 2);
ssatime = toc;
% 用优化得到c,g训练和测试
cmd = ['-s 0 -t 2 ', '-c ', num2str©, ’ -g ‘, num2str(g), ’ -q’];
model = libsvmtrain(train_wine_labels, train_wine, cmd);

%% SVM网络预测
[predict_label, accuracy,decision_values] = libsvmpredict(test_wine_labels, test_wine, model);

% %% 结果分析
% figure;
% hold on;
% plot(test_wine_labels,‘o’);
% plot(predict_label,‘r*’);
% xlabel(‘测试集样本’,‘FontSize’,12);
% ylabel(‘类别标签’,‘FontSize’,12);
% legend(‘实际测试集分类’,‘预测测试集分类’);
% title(‘测试集的实际分类和预测分类图’,‘FontSize’,12);
% grid on;
disp([‘最终预测准确率:’,num2str(accuracy(1))])
[ssayk] = kappafun(test_wine_labels,predict_label,6)

yy=predict_label;
label_test=test_wine_labels;

tic
mainga
timegaelm= toc;

%% 制图_预测分类标签和实际分类标签对比图
figure
plot(yy,‘og’)
hold on
plot(label_test,‘r*’);
legend(‘预测标签’,‘实际标签’)
title(‘SSA-SVM预测分类与实际类别比对’,‘fontsize’,12)
ylabel(‘类别标签’,‘fontsize’,12)
xlabel(‘样本数目’,‘fontsize’,12)
ylim([0.5 6.5])
%% 混淆矩阵制图
[cfmat,order] = confusionmat(label_test,yy’);
mat=cfmat;
k=6;
figure
imagesc(mat); %# Create a colored plot of the matrix values
colormap(flipud(gray)); %# Change the colormap to gray (so higher values are
title(‘SSA-SVM混淆矩阵’);
textStrings = num2str(mat(😃,‘%0.02f’); %# Create strings from the matrix values
textStrings = strtrim(cellstr(textStrings)); %# Remove any space padding
[x,y] = meshgrid(1:k);
hStrings=text(x(😃,y(😃,textStrings(😃,‘HorizontalAlignment’,‘center’);
midValue = mean(get(gca,‘CLim’)); %# Get the middle value of the color range
textColors = repmat(mat(😃 > midValue,1,3);
set(hStrings,{‘Color’},num2cell(textColors,2)); %# Change the text colors;
set(gca,‘XTick’,1:6,…
‘XTickLabel’,{‘1’,‘2’,‘3’,‘4’,‘5’,‘6’},… %# and tick labels
‘YTick’,1:6,… %同上
‘YTickLabel’,{‘1’,‘2’,‘3’,‘4’,‘5’,‘6’},…
‘TickLength’,[0 0]);

% 麻雀优化算法 %
%_________________________________________________________________________%
function [Best_pos,Best_score,curve]=SSA(pop,Max_iter,lb,ub,dim,fobj)

ST = 0.6;%预警值
PD = 0.7;%发现者的比列,剩下的是加入者
SD = 0.2;%意识到有危险麻雀的比重

PDNumber = popPD; %发现者数量
SDNumber = pop - pop
PD;%意识到有危险麻雀数量
if(max(size(ub)) == 1)
ub = ub.*ones(1,dim);
lb = lb.*ones(1,dim);
end

%种群初始化
X0=initialization(pop,dim,ub,lb);
X = X0;
%计算初始适应度值
fitness = zeros(1,pop);
for i = 1:pop
fitness(i) = fobj(X(i,:));
end
[fitness, index]= sort(fitness);%排序
BestF = fitness(1);
WorstF = fitness(end);
GBestF = fitness(1);%全局最优适应度值
for i = 1:pop
X(i,:) = X0(index(i)😅;
end
curve=zeros(1,Max_iter);
GBestX = X(1,:);%全局最优位置
X_new = X;
for i = 1: Max_iter

BestF = fitness(1);
WorstF = fitness(end);


R2 = rand(1);

for j = 1:PDNumber
if(R2<ST)
X_new(j,:) = X(j,:).*exp(-j/(rand(1)*Max_iter));
else
X_new(j,:) = X(j,:) + randn()*ones(1,dim);
end
end
for j = PDNumber+1:pop
% if(j>(pop/2))
if(j>(pop - PDNumber)/2 + PDNumber)
X_new(j,:)= randn().*exp((X(end,:) - X(j,:))/j^2);
else
%产生-1,1的随机数
A = ones(1,dim);
for a = 1:dim
if(rand()>0.5)
A(a) = -1;
end
end
AA = A’inv(AA’);
X_new(j,:)= X(1,:) + abs(X(j,:) - X(1,:)).AA’;
end
end
Temp = randperm(pop);
SDchooseIndex = Temp(1:SDNumber);
for j = 1:SDNumber
if(fitness(SDchooseIndex(j))>BestF)
X_new(SDchooseIndex(j)😅 = X(1,:) + randn().abs(X(SDchooseIndex(j)😅 - X(1,:));
elseif(fitness(SDchooseIndex(j))== BestF)
K = 2
rand() -1;
X_new(SDchooseIndex(j)😅 = X(SDchooseIndex(j)😅 + K.
(abs( X(SDchooseIndex(j)😅 - X(end,:))./(fitness(SDchooseIndex(j)) - fitness(end) + 10^-8));
end
end
%边界控制
for j = 1:pop
for a = 1: dim
if(X_new(j,a)>ub)
X_new(j,a) =ub(a);
end
if(X_new(j,a)<lb)
X_new(j,a) =lb(a);
end
end
end
%更新位置
for j=1:pop
fitness_new(j) = fobj(X_new(j,:));
end
for j = 1:pop
if(fitness_new(j) < GBestF)
GBestF = fitness_new(j);
GBestX = X_new(j,:);
end
end
X = X_new;
fitness = fitness_new;
%排序更新
[fitness, index]= sort(fitness);%排序
BestF = fitness(1);
WorstF = fitness(end);
for j = 1:pop
X(j,:) = X(index(j)😅;
end
curve(i) = GBestF;
end
Best_pos =GBestX;
Best_score = curve(end);
end

效果图

在这里插入图片描述
在这里插入图片描述

结果分析
从效果图上,可以看出来,麻雀算法改进的SVM,分类准确率更高,说明改进方法确实有效

展望
SVM是一种很好的分类识别器,可以改进的方法很多,主要是优化参数,其中,鲸鱼算法,狮群算法天鹰算法等相对较新,也可以通过和其他神经融合,优势互补,达到改进的目的,部分改进方式如下,有需要可以扫描二维码联系
在这里插入图片描述

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

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

相关文章

Android开发之简单控件

文章目录一 文本显示1.1 文本设置的两种方式1.2 常见字号单位类型2.2 设置文本的颜色三 视图基础3.1 设置视图的宽高3.2 设置视图的间距3.3 设置视图的对齐方式四常用布局4.1 线性布局LinearLayout4.2 相对布局RelativeLayout4.3 网格布局GridLayout4.4 滚动视图ScrollView五 按…

【uni-app教程】二、UniAPP 初始化相关配置

二、UniAPP 初始化相关配置 (1)工程目录结构 https://uniapp.dcloud.net.cn/tutorial/project.html#目录结构) 工程简介 一个工程&#xff0c;就是一个 Vue 项目&#xff0c;你可以通过 HBuilderX 或 cli 方式快速创建 uni-app 工程&#xff0c;详见&#xff1a;快速上手。 …

arduino烧录引导程序(BootLoader)方法及出错点

文章目录一、硬件电路准备1、328P的管脚图2、电路连接图&#xff08;1&#xff09;连接图&#xff08;2&#xff09; ISP连接及端口介绍&#xff08;3&#xff09;管脚连接对应表1、准备ArduinoISP2、使用Arduino as ISP烧录设置Arduino板为烧写器3、烧录及错误4、为新烧录328p…

无代码开发浅谈

前 言互联网共享软件工厂KAPT无代码开发平台&#xff0c;提供了可视化编程方法&#xff0c;经过拖拽组件&#xff0c;就像做ppt一样&#xff0c;快速的就能搭建一个软件应用&#xff0c;更高效的构建业务应用程序。以前开发软件大多只能编写代码完成&#xff0c;所以有软件开发…

Mit6.S081-实验1-Xv6 and Unix utilities-pingpong问题

Mit6.S081-实验1-Xv6 and Unix utilities-pingpong问题在进行pingpong实验的时候遇到了许多问题在这里记录一下。 1.输出乱序问题 出现这个问题主要是因为没有弄懂wait(0)的作用&#xff0c; wait(0)暂时停止目前进程的执行&#xff0c;直到信号来到或子进程结束&#xff0c;…

如何让自动化测试框架更自动化?

一、引言 ​对于大厂的同学来说&#xff0c;接口自动化是个老生常谈的话题了&#xff0c;毕竟每年的MTSC大会议题都已经能佐证了&#xff0c;不是大数据测试&#xff0c;就是AI测试等等&#xff08;越来越高大上了&#xff09;。不可否认这些专项的方向是质量智能化发展的方向…

csgo搬砖项目,真的能月入6k?

01 相信很多粉丝都知道steam这个平台&#xff0c;steam是一个游戏平台&#xff0c;这里面的游戏都是要通过去充值购买才能去玩&#xff0c;有的是买游戏的账号&#xff0c;有的是买这个游戏的使用权&#xff0c;买了之后安装到手机上或者电脑上我们才能去畅玩游戏&#xff0c;…

【人工智能 Open AI 】我们程序员真的要下岗了- 全能写Go / C / Java / C++ / Python / JS 人工智能机器人

文章目录[toc]人工智能 AI Code 写代码测试用golang实现冒泡排序用golang实现计算环比函数goroutine and channel用golang实现二叉树遍历代码用golang实现线程安全的HashMap操作代码using C programming language write a tiny Operation Systemuse C language write a tiny co…

【9】SCI易中期刊推荐——工程技术-计算机:软件工程(中科院4区)

🚀🚀🚀NEW!!!SCI易中期刊推荐栏目来啦 ~ 📚🍀 SCI即《科学引文索引》(Science Citation Index, SCI),是1961年由美国科学信息研究所(Institute for Scientific Information, ISI)创办的文献检索工具,创始人是美国著名情报专家尤金加菲尔德(Eugene Garfield…

电脑C盘满了,怎么清理c盘空间?

电脑的C盘是系统盘&#xff0c;存储着操作系统和软件等关键文件&#xff0c;因此当C盘空间不足时&#xff0c;电脑的性能和稳定性都会受到影响。 真实案例&#xff1a;c盘空间莫名其妙变小&#xff1f; “C盘快满了不敢乱删&#xff0c;请问该如何清理&#xff1f;” “求大佬…

八股文(一)

一、箭头函数和普通函数有什么区别 (1)箭头函数比普通函数更加简洁 (2)箭头函数没有自己的this 箭头函数不同于传统JavaScript中的函数&#xff0c;箭头函数并没有属于⾃⼰的this&#xff0c;它所谓的this是捕获其所在上下⽂的 this 值&#xff0c;作为⾃⼰的 this 值&#…

希赛PMP模拟题2022(第9套)

希赛PMP模拟题2022&#xff08;第9套&#xff09; 22 需求和范围 区别 21 什么阶段&#xff1f; 在开发过程中不断衡量 价值 和优先级关系排序20 产品路线图 回顾 团队沟通方式 无法面对面沟通时候 其他人参与 了解项目 需求发布计划 风险 排序发表计划 vs 评审会议 老母鸡 是…

ESP-C3入门14. 实现基本的web server

ESP-C3入门14. 实现基本的web server一、ESP32 IDF创建WEB SERVER的流程1. 配置web服务器2. 注册 URI处理器3. 实现 URI处理器函数4. 处理HTTP请求5. 处理web socket连接6. 注册 URI 处理函数7. 启动HTTP服务器8. 发送响应9. 关闭 http 服务二、本要主要使用API的说明1. httpd_…

编码器的作用和功能有哪些

编码器的作用和功能有哪些 最近很多咨询编码器的作用的&#xff0c;小编结合一下线上和线下的资料&#xff0c;总结了一下&#xff0c;供大家参考。 要说编码器&#xff0c;它的作用很多&#xff0c;主要是用来测量机械运动的速度、位置、角度、距离或计数的&#xff0c;编码器…

SkyWalking使用案例-2

文章目录SkyWalking实现基于容器环境Dubbo微服务链路跟踪部署Dubbo Provider构建Dubbo Provider镜像运行dubbo-provider部署Dubbo Consumer构建Dubbo Consumer镜像运行dubbo-consumer验证SkyWalking收集python项目数据Skywalking告警Skywalking指标Skywalking告警规则SkyWalkin…

62. 不同路径

62. 不同路径 一个机器人位于一个 m∗nm * nm∗n 网格的左上角 &#xff08;起始点在下图中标记为 “Start” &#xff09;。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角&#xff08;在下图中标记为 “Finish” &#xff09;。 问总共有多少条不同的路…

virtualbox7虚拟机中安装苹果macOS big sur系统详细教程

第1步&#xff0c;在 Windows 10/11 PC 上启用虚拟化。 现在的电脑一般都默认开启虚拟化技术了。 如果你遇到一些报错&#xff0c;比如收到错误消息“无法在虚拟机上打开会话”&#xff0c;可以查看 如果没有遇到问题&#xff0c;可以直接进入到第二步。 第2步&#xff0c;在…

【Spark分布式内存计算框架——Spark Streaming】12. 偏移量管理(上)代码重构与Checkpoint 恢复

6. 偏移量管理 针对前面实现【百度热搜排行榜Top10】实时状态统计应用来说&#xff0c;当应用关闭以后&#xff0c;再次启动&#xff08;Restart&#xff09;执行&#xff0c;并没有继续从上次消费偏移量读取数据和获取以前状态信息&#xff0c;而是从最新偏移量&#xff08;L…

JVM 不同垃圾回收器的日志格式分析

1、GC日志采集 在服务器上我们需要配置一些参数才能采集到历史的GC日志信息&#xff0c;这些参数通常在项目启动的时候就需要指定&#xff0c; 如果你项目是jar包&#xff0c;可以按照下面方式指定这些GC参数即可。 下面这些参数意思是把GC日志记录到/opt/app/abc-user/ard-…

蓝桥杯备赛——Echarts学习

文章目录前言学习 ECharts 的方法快速上手基础知识option 配置选项可选配置title 标题组件tooltip 提示框组件axisPointer 坐标轴指示器legend 图例组件toolbox 工具栏坐标轴xAxis和yAxisseries &#xff08;[ ]用数组表示,数组里是一个个数据对象&#xff09;饼状图散点图交互…