首页 > 编程语言 >基于人工鱼群优化的电网规划算法matlab仿真

基于人工鱼群优化的电网规划算法matlab仿真

时间:2023-04-14 21:22:11浏览次数:37  
标签:仿真 人工 fish 算法 鱼群 matlab 行为 控制参数

1.算法仿真效果

matlab2022a仿真结果如下:

 

 

2.算法涉及理论知识概要

       人工鱼群算法(Artificial Fish Swarm Algorithm,简称AFSA)是受鱼群行为的启发,由国内李晓磊博士于2002年提出的一种基于动物行为的群体智能优化算法,是行为主义人工智能的一个典型应用,这种算法源于鱼群的觅食行为。

 

       在一片水域中,鱼往往能自行或尾随其它鱼,找到营养物质多的地方,因而鱼生存数目最多的地方一般就是本水域中营养物质最多的地方。人工鱼群算法根据这一特点,通过构造人工鱼来模仿鱼群的觅食、聚群、追尾及随机行为,从而实现寻优。

 

        人工鱼(AF)是真实鱼的仿制品,用于分析和问题解释(Neshat、Sepidnam、Sargolzaei和Toosi(2012))。鱼类大多生活在食物充足的地区,它们通过跟随其他鱼类或单独寻找食物,向食物较多的地区移动。鱼类数量最多的地区通常是食物最多的。每条人工鱼的下一步行为取决于它目前的状态以及局部的环境状态,AF通过自身行为以及同伴的行为来影响环境。

(1)觅食行为(Prey)

 

 

 

 

(2)聚群行为(Swarm)

 

 

 

 

(3)追尾行为(Follow)

 

 

 

 

(4)随机行为

 

 

 

 

(5)行为选择

 

        这是鱼类的生存习惯,反映出了鱼类的自主行为。在人工鱼群算法中,觅食行为奠定了算法的收敛基础,聚群行为增强了算法收敛的稳定性,追尾行为增强了算法收敛的快速性与全局性,行为选择策略则是为算法收敛的速度与稳定性提供了保障。

 

3.MATLAB核心程序

 

tic,
yjzl=yjzl;
dxzl=dxzl;
Pi=Pi;
[N,row]=size(Pi);  %N为节点数
fish=40;    %控制参数:人工鱼的条数
visual=7;   %控制参数:视野
delta=0.35;  %控制参数:拥挤度
step=5;     %控制参数:人工鱼移动的步长
maxcalculation=100;    %收敛条件:最大迭代次数
objectvalue=zeros(1,fish);  %食物浓度矩阵(1×fish)
[NN,row]=size(dxzl);   %NN为待选线路的维数
status=rand(fish,NN);  %人工鱼位置状态矩阵status
for i=1:fish
    for j=1:NN
        if status(i,j)<=0.5
            status(i,j)=0;
        else
            status(i,j)=1;
        end
    end
end
minvalue=inf;
for fishnumber=1:fish
    x=status(fishnumber,:);
    [B1,B,BL,NEW,NL,L,nbl]=builtnet(x,dxzl,yjzl);
    [tong]=liantong(N,L,BL);
    if tong>1
        objectvalue(fishnumber)=inf;
    else
       [operate,overflowvalue]=dcflow(N,L,BL,Pi,nbl);
       construction=0;
       for i=1:NEW
           construction=construction+25*B1(i,6);    %计算建设费用每公里线路建设费用取25万元
       end
       objectvalue(fishnumber)=construction+operate+overflowvalue;
    end
   if objectvalue(fishnumber)<minvalue
      minvalue=objectvalue(fishnumber);     %minvalue记录最小的目标函数值
      minfish=status(fishnumber,:);         %minfish记录最小目标函数值所对应的人工鱼的位置
   end
end
%进行行为策略
............................................................................
             [status,objectvalue]=prey(status,fishnumber,objectvalue,visual,fish,NN,N,delta,step,dxzl,yjzl,Pi);
        end
    end
end
for fishnumber=1:fish
    if objectvalue(fishnumber)<minvalue
      minvalue=objectvalue(fishnumber);  
      minfish=status(fishnumber,:); 
    end
end
min2(calculation)=minvalue;
disp(calculation);
disp(minvalue);
%if minvalue<=5900
%    break    
%end
calculation=calculation+1;
end
toc
plot(min2,'-*');

 

  

 

标签:仿真,人工,fish,算法,鱼群,matlab,行为,控制参数
From: https://www.cnblogs.com/51matlab/p/17319986.html

相关文章

  • m基于Simulink的自适应模糊控制器设计与仿真实现
    1.算法仿真效果matlab2022a仿真结果如下:                2.算法涉及理论知识概要        模糊自适应控制器同时结合自适应控制和模糊控制,形成具有自适应的功能的控制系统。模糊自适应控制不要求控制对象具有精确的数学模型,并且还巧妙......
  • m基于matlab的图像方块编码仿真,输出编码后PSNR图像质量指标
    1.算法仿真效果matlab2022a仿真结果如下:   2.算法涉及理论知识概要       BTC编码又称方块编码,是一种有效,快速,简单的有损灰度图像数字压缩技术,具有性能高,信道容错力高等特点,在实时图像传输方面具有很高的应用价值,由美国普渡大学的Mitchell和Delphi教授提......
  • 基于Matlab模拟光栅条纹
    ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。......
  • Matlab:三维散点直线拟合
    clearclcdata_line1=xlsread('24.xlsx','Sheet1','A1:C30');%写入字符串x1=data_line1(:,1);y1=data_line1(:,2);z1=data_line1(:,3);Point1=[x4y4z4];num=length(Point1);t1=linspace(-0.15,-0.01);%有效范围F=@(p)arrayf......
  • MATLAB代码:考虑多种天气条件下光伏电站太阳能辐射量预测
    MATLAB代码:考虑多种天气条件下光伏电站太阳能辐射量预测关键词:辐射量预测光伏预测多种天气因素参考文档:《SolarRadiationPredictionandEnergyAllocationforEnergyHarvestingBaseStations》仿真平台:MATLAB+CPLEX平台主要内容:代码主要做的是如何利用预测光伏电站......
  • MATLAB代码:基于列约束生成法CCG的两阶段问题求解
    MATLAB代码:基于列约束生成法CCG的两阶段问题求解关键词:两阶段鲁棒列约束生成法CCG算法参考文档:《Solvingtwo-stagerobustoptimizationproblemsusingacolumn-and-constraintgenerationmethod》仿真平台:MATLABYALMIP+CPLEX主要内容:代码构建了两阶段鲁棒优化模型,并......
  • MATLAB代码:考虑电动汽车负荷随机性的蓄电池容量优化配置
    代码代码MATLAB代码:考虑电动汽车负荷随机性的蓄电池容量优化配置关键词:蓄电池容量优化配置 储能优化配置 中长期配置并网波动性参考文档:《不确定环境下并网型光储微电网的容量规划》《考虑电动汽车有序充电的光储充电站储能容量优化策略_李景丽》仅参考部分模型,非完全复现......
  • MATLAB代码:考虑能源集线器参的电热综合能源市场双层出清模型
    MATLAB代码:考虑能源集线器参的电热综合能源市场双层出清模型关键词:综合能源双层模型能源集线器 市场出清 参考文档:《ParticipationofanEnergyHubinElectricityandHeatDistributionMarkets:AnMPECApproach》完全复现仿真平台:MATLAB+CPLEX平台优势:代码具有......
  • MATLAB代码:基于条件风险价值的合作型Stackerlberg博弈微网动态定价与优化调度
    MATLAB代码:基于条件风险价值的合作型Stackerlberg博弈微网动态定价与优化调度注意:店主有大量P2P分布式交易以及纳什议价的代码,欢迎咨询关键词:微网优化调度条件风险价值合作博弈纳什谈判参考文档:《AcooperativeStackelberggamebasedenergymanagementconsideringpric......
  • matlab 代码基于主从博弈的共享储能与综合能源微网优化运行研究
    matlab代码基于主从博弈的共享储能与综合能源微网优化运行研究综合能源微网与共享储能的结合具有一定的创新性,在共享储能的背景下考虑微网运营商与用户聚合商之间的博弈关系,微网的收益和用户的收益之间达到均衡。采用主从博弈的方法,微网运营商作为上层领导者制定价格策略,用户聚......