当前位置 : 主页 > 编程语言 > python >

【经济调度】基于蚁狮算法解决经济调度优化问题附matlab代码

来源:互联网 收集:自由互联 发布时间:2022-06-15
1 简介 ​ 编辑 ​ 编辑 ​ 编辑 ​ 编辑 ​ 编辑 ​ 编辑 2 部分代码 %_________________________________________________________________________%clc;clear;closeall;warningoff;%Changethesedetailswithrespecttoyourproblem%%


 1 简介

【经济调度】基于蚁狮算法解决经济调度优化问题附matlab代码_参考文献

【经济调度】基于蚁狮算法解决经济调度优化问题附matlab代码_matlab代码_02编辑


【经济调度】基于蚁狮算法解决经济调度优化问题附matlab代码_hive_03

【经济调度】基于蚁狮算法解决经济调度优化问题附matlab代码_hive_04编辑


【经济调度】基于蚁狮算法解决经济调度优化问题附matlab代码_matlab代码_05

【经济调度】基于蚁狮算法解决经济调度优化问题附matlab代码_参考文献_06编辑


【经济调度】基于蚁狮算法解决经济调度优化问题附matlab代码_matlab代码_07

【经济调度】基于蚁狮算法解决经济调度优化问题附matlab代码_参考文献_08编辑


【经济调度】基于蚁狮算法解决经济调度优化问题附matlab代码_matlab代码_09

【经济调度】基于蚁狮算法解决经济调度优化问题附matlab代码_matlab代码_10编辑


【经济调度】基于蚁狮算法解决经济调度优化问题附matlab代码_参考文献_11

【经济调度】基于蚁狮算法解决经济调度优化问题附matlab代码_hive_12编辑


2 部分代码

%_________________________________________________________________________%clc;clear;close all;warning off;% Change these details with respect to your problem%%%%%%%%%%%%%%% This program solves the economic dispatch with Bmn coefficients by MOALO% Algorithm % The data matrix should have 5 columns of fuel cost coefficients and plant  limits.% 1.a ($/MW^2) 2. b $/MW 3. c ($) 4.lower lomit(MW) 5.Upper limit(MW)%no of rows denote the no of plants(n)data=[0.007  7  240  100  5000.0095  10  200  50  2000.009  8.5  220  80  3000.009  11  200  50  1500.008  10.5  220  50  2000.0075  12  120  50  120];% Loss coefficients it should be squarematrix of size nXn where n is the no% of plantsB=1e-4*[0.14  0.17  0.15  0.19  0.26  0.220.17  0.6  0.13  0.16  0.15  0.20.15  0.13  0.65  0.17  0.24  0.190.19  0.16  0.17  0.71  0.3  0.250.26  0.15  0.24  0.3  0.69  0.320.22  0.2  0.19  0.25  0.32  0.85];% Demand (MW)Pd=700;ObjectiveFunction=@eldnba;dim=length(data(:,1));;lb=0;ub=1;obj_no=1;if size(ub,2)==1    ub=ones(1,dim)*ub;    lb=ones(1,dim)*lb;end%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Initial parameters of the MODA algorithmmax_iter=100;N=100;ArchiveMaxSize=100;Archive_X=zeros(100,dim);Archive_F=ones(100,obj_no)*inf;Archive_member_no=0;r=(ub-lb)/2;V_max=(ub(1)-lb(1))/10;Elite_fitness=inf*ones(1,obj_no);Elite_position=zeros(dim,1);Ant_Position=initialization(N,dim,ub,lb);fitness=zeros(N,2);V=initialization(N,dim,ub,lb);iter=0;position_history=zeros(N,max_iter,dim);for iter=1:max_iter    for i=1:N %Calculate all the objective values first        Particles_F(i,:)=ObjectiveFunction(Ant_Position(:,i)');        if dominates(Particles_F(i,:),Elite_fitness)            Elite_fitness=Particles_F(i,:);            Elite_position=Ant_Position(:,i);        end    end    [Archive_X, Archive_F, Archive_member_no]=UpdateArchive(Archive_X, Archive_F, Ant_Position, Particles_F, Archive_member_no);    if Archive_member_no>ArchiveMaxSize        Archive_mem_ranks=RankingProcess(Archive_F, ArchiveMaxSize, obj_no);        [Archive_X, Archive_F, Archive_mem_ranks, Archive_member_no]=HandleFullArchive(Archive_X, Archive_F, Archive_member_no, Archive_mem_ranks, ArchiveMaxSize);    else        Archive_mem_ranks=RankingProcess(Archive_F, ArchiveMaxSize, obj_no);    end    Archive_mem_ranks=RankingProcess(Archive_F, ArchiveMaxSize, obj_no);    % Chose the archive member in the least population area as arrtactor    % to improve coverage    index=RouletteWheelSelection(1./(Archive_mem_ranks+1e-20));    if index==-1        index=1;    end    Elite_fitness=Archive_F(index,:);    Elite_position=Archive_X(index,:)';    Random_antlion_fitness=Archive_F(1,:);    Random_antlion_position=Archive_X(1,:)';    for i=1:N        index=0;        neighbours_no=0;        RA=Random_walk_around_antlion(dim,max_iter,lb,ub, Random_antlion_position',iter);        [RE]=Random_walk_around_antlion(dim,max_iter,lb,ub, Elite_position',iter);        Ant_Position(:,i)=(RE(iter,:)'+RA(iter,:)')/2;        Flag4ub=Ant_Position(:,i)>ub';        Flag4lb=Ant_Position(:,i)<lb';        Ant_Position(:,i)=(Ant_Position(:,i).*(~(Flag4ub+Flag4lb)))+ub'.*Flag4ub+lb'.*Flag4lb;    end    display(['At the iteration ', num2str(iter), ' there are ', num2str(Archive_member_no), ' non-dominated solutions in the archive']); K(iter)=Elite_fitness; end[F P Pl]=eldnba(Elite_position)plot(K)gridtitle('Iteration vs Best Function Value');xlabel('Iteration')ylabel('Function Value')  

3 仿真结果

【经济调度】基于蚁狮算法解决经济调度优化问题附matlab代码_参考文献_13

【经济调度】基于蚁狮算法解决经济调度优化问题附matlab代码_参考文献_14编辑


4 参考文献

[1]彭暄惠, 陈才学, 熊志刚,等. 一种基于改进蚁狮算法的含电动汽车参与的微电网优化调度方法:. 

博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。

部分理论引用网络文献,若有侵权联系博主删除。

5 代码下载

【经济调度】基于蚁狮算法解决经济调度优化问题附matlab代码_参考文献_15

【经济调度】基于蚁狮算法解决经济调度优化问题附matlab代码_参考文献_16编辑




网友评论