锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

基于烟花优化算法的线性规划问题求解matlab程序

时间:2023-06-03 04:07:01 mtc本安型磁致伸缩位移传感器

解决基于烟花优化算法的线性规划问题matlab程序
1 烟花算法介绍
烟花算法 (Fireworks Algorithm),缩写为 FWA,它是一组受夜空烟花爆炸启发的群体智能算法。
在这里插入图片描述
1.1 烟花算法的起源和动机
通过模拟烟花爆炸同时进行多点爆炸性搜索,这可能是一种高效的搜索方法,不同于现有其他方法的新搜索方法,因此有了研究这种爆炸性搜索方法的想法,并将其命名为烟花算法(fireworks algorithm,FWA)。

虽然烟花算法的名称更直观、更简单,但由于它没有直接与优化问题建立直接联系,一些研究人员有时用烟花算法、烟花我们的烟花算法,如烟花优化算法、烟花爆炸算法、烟花爆炸优化算法、烟花爆炸搜索算法、爆炸搜索方法等。虽然有这些不同的名称,但原名烟花算法统一在这里,以避免混淆。

1.2 烟花算法的研究进展
自2010年谭颖教授等人发表烟花算法开创性论文以来,业界对烟花算法的研究逐渐深入和传播。通过对原烟花算法的详细深入分析,针对原烟花算法(FWA)缺点,提出了大量的改进方法,开发了各种改进算法,与其他方法混合,大大提高了原烟花算法的性能,研究了烟花算法解决不同类型优化问题的能力,大量研究人员进行了烟花算法的应用研究,给出了一些典型的成功应用案例。

2 线性规划算例
2.1算例

2.2答案

3 烟花算法求解结果

1)迭代曲线

2)求解答案

从求解结果可以看出,求解答案接近标准值,求解效果一般。

4 matlab程序
1)主函数

%% 烟花算法优化函数 %求函数最小值 %fitness适应度函数,N烟花数,D变量维数,M变化火花数,Er爆炸半径,En爆炸数目 %LB,UB分别是变量的上下界,T迭代次数,a,b限制爆炸数量的因素 clear;clc N=100;   % N烟花数 D=3;     % D变量维数 M=5;     % M变异火花数 En=10;    % En爆炸数目 Er=5;    % Er爆炸半径 a=0.3;   % a,b限制爆炸数量的因素 b=0.6; T=500;   % T为迭代次数  %求上下界最大值变量 LB=[0,0,0]; UB=[10,10,15];  N烟花的位置是随机的 x = zeros(N,D); for i=1:N     x(i,:)=LB rand(1,D).*(UB-LB); end %循环迭代 E_Spark=zeros(T,D,N); Fit = zeros(1,N); F = zeros(1,T); for t=1:T     %计算每个烟花适应度值     for i=1:N         Fit(i)=fitness(x(i,:));     end     [F(t),~]=min(Fit);     Fmin=min(Fit);     Fmax=max(Fit);     每个烟花的爆炸半径计算%E_R和爆炸数目E_N还有爆炸火花     E_R = zeros(1,N);     E_N = zeros(1,N);     for i=1:N         E_R(i)=Er*((Fit(i)-Fmin eps)/(sum(Fit)-N*Fmin eps));  %爆炸半径         E_N(i)=En*((Fmax-Fit(i) eps)/(N*Fmax-sum(Fit) eps));  %爆炸数目         if E_N(i)b*En             E_N(i)=round(b*En);         else             E_N(i)=round(E_N(i));         end         %产生爆炸火花 E_Spark         for j=2:(E_N(i) 1)              % 第一烟花共产E_N(i)个火花             E_Spark(1,:,i)=x(i,:);      % 将第一个烟花保存为第一个火花序列中的第一个,爆炸产生的火花从序列中的第二个开始(即三维数组每页的第一行)             h=E_R(i)*(-1 2*rand(1,D));  % 位置偏移             E_Spark(j,:,i)=x(i,:) h;    % 第一个烟花(三维数组的i页)产生j(三维数组j行)火花             for k=1:D   %越界检测                 if E_Spark(j,k,i)>UB(k)||E_Spark(j,k,i)UB(k)||E_Spark(n,k,m)

5 完整程序链接:
https://mp.weixin.qq.com/s?__biz=Mzg4MTc1MjE2Mg==&mid=2247484329&idx=1&sn=7704db9e479be00e8f84328677f5b873&chksm=cf6062a4f817ebb29dde31c46f59fcdc3d89d619779c3c166dbc6a4bc8431220fdc04bb10be5&token=1023455607&lang=zh_CN#rd

锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章