一、神经网络-支持向量机
支持向量机(Support Vector Machine)是Cortes和Vapnik于1995年首先提出的,它在解决小样本、非线性及高维模式识别中表现出许多特有的优势,并能够推广应用到函数拟合等其他机器学习问题中。 1 数学部分 1.1 二维空间 2 算法部分
二、狮群算法
三、代码
%_________________________________________________________________________%
%狮群算法 %
%_________________________________________________________________________%
function [Best_pos,Best_score,curve]=LSO(pop,Max_iter,lb,ub,dim,fobj)
beta = 0.5;%成年狮所占比列
Nc = round(pop*beta);%成年狮数量
Np = pop-Nc;%幼师数量
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
[value, index]= min(fitness);%找最小值
GBestF = value;%全局最优适应度值
GBestX = X(index,:);%全局最优位置
curve=zeros(1,Max_iter);
XhisBest = X;
fithisBest = fitness;
indexBest = index;
gbest = GBestX;
for t = 1: Max_iter
%母狮移动范围扰动因子计算
stepf = 0.1*(mean(ub) - mean(lb));
alphaf = stepf*exp(-30*t/Max_iter)^10;
%幼狮移动范围扰动因子计算
alpha = (Max_iter - t)/Max_iter;
%母狮位置更新
for i = 1:Nc
index = i;
while(index == i)
index = randi(Nc);%随机挑选一只母狮
end
X(i,:) = (X(i,:) + X(index,:)).*(1 + alphaf.*randn())./2;
end
%幼师位置更新
for i = Nc+1:pop
q=rand;
if q<=1/3
X(i,:) = (gbest + XhisBest(i,:)).*( 1 + alpha.*randn())/2;
elseif q>1/3&&q<2/3
indexT = i;
while indexT == i
indexT = randi(Nc) + pop - Nc;%随机位置
end
X(i,:) = (X(indexT,:) + XhisBest(i,:)).*( 1 + alpha.*randn())/2;
else
gbestT = ub + lb - gbest;
X(i,:) = (gbestT + XhisBest(i,:)).*( 1 + alpha.*randn())/2;
end
end
%边界控制
for j = 1:pop
for a = 1: dim
if(X(j,a)>ub)
X(j,a) =ub(a);
end
if(X(j,a)<lb)
X(j,a) =lb(a);
end
end
end
%计算适应度值
for j=1:pop
fitness(j) = fobj(X(j,:));
end
for j = 1:pop
if(fitness(j)<fithisBest(j))
XhisBest(j,:) = X(j,:);
fithisBest(j) = fitness(j);
end
if(fitness(j) < GBestF)
GBestF = fitness(j);
GBestX = X(j,:);
indexBest = j;
end
end
%% 狮王更新
Temp = gbest.*(1 + randn().*abs(XhisBest(indexBest,:) - gbest));
Temp(Temp>ub)=ub(Temp>ub);
Temp(Temp<lb) = lb(Temp<lb);
fitTemp = fobj(Temp);
if(fitTemp<GBestF)
GBestF =fitTemp;
GBestX = Temp;
X(indexBest,:)=Temp;
fitness(indexBest) = fitTemp;
end
[value, index]= min(fitness);%找最小值
gbest = X(index,:);%当前代,种群最优值
curve(t) = GBestF;
end
Best_pos = GBestX;
Best_score = curve(end);
end
🎈 部分理论引用网络文献,若有侵权联系博主删除
👇 关注我领取海量matlab电子书和数学建模资料
🎁 私信完整代码和数据获取及论文数模仿真定制🌈
🌈 各类智能优化算法改进及应用
生产调度、经济调度、装配线调度、充电优化、车间调度、发车优化、水库调度、三维装箱、物流选址、货位优化、公交排班优化、充电桩布局优化、车间布局优化、集装箱船配载优化、水泵组合优化、解医疗资源分配优化、设施布局优化、可视域基站和无人机选址优化、背包问题、 风电场布局、时隙分配优化、 最佳分布式发电单元分配、多阶段管道维修、 工厂-中心-需求点三级选址问题、 应急生活物质配送中心选址、 基站选址、 道路灯柱布置、 枢纽节点部署、 输电线路台风监测装置、 集装箱调度、 机组优化、 投资优化组合、云服务器组合优化、 天线线性阵列分布优化、CVRP问题、VRPPD问题、多中心VRP问题、多层网络的VRP问题、多中心多车型的VRP问题、 动态VRP问题、双层车辆路径规划(2E-VRP)、充电车辆路径规划(EVRP)、油电混合车辆路径规划、混合流水车间问题、 订单拆分调度问题、 公交车的调度排班优化问题、航班摆渡车辆调度问题、选址路径规划问题、港口调度、港口岸桥调度、停机位分配、机场航班调度、泄漏源定位
🌈 机器学习和深度学习时序、回归、分类、聚类和降维
2.1 bp时序、回归预测和分类
2.2 ENS声神经网络时序、回归预测和分类
2.3 SVM/CNN-SVM/LSSVM/RVM支持向量机系列时序、回归预测和分类
2.4 CNN|TCN|GCN卷积神经网络系列时序、回归预测和分类
2.5 ELM/KELM/RELM/DELM极限学习机系列时序、回归预测和分类
2.6 GRU/Bi-GRU/CNN-GRU/CNN-BiGRU门控神经网络时序、回归预测和分类
2.7 ELMAN递归神经网络时序、回归\预测和分类
2.8 LSTM/BiLSTM/CNN-LSTM/CNN-BiLSTM/长短记忆神经网络系列时序、回归预测和分类
2.9 RBF径向基神经网络时序、回归预测和分类