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

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

 1 简介

image.gif编辑

image.gif编辑

image.gif编辑

image.gif编辑

image.gif编辑

image.gif编辑

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 仿真结果

image.gif编辑

4 参考文献

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

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

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

5 代码下载

image.gif编辑


相关实践学习
部署高可用架构
本场景主要介绍如何使用云服务器ECS、负载均衡SLB、云数据库RDS和数据传输服务产品来部署多可用区高可用架构。
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
相关文章
|
20小时前
|
存储 移动开发 算法
磁盘调度算法
磁盘调度算法
10 2
|
20小时前
|
算法 调度 UED
作业调度算法(含详细计算过程)和进程调度算法浅析
作业调度算法(含详细计算过程)和进程调度算法浅析
22 1
作业调度算法(含详细计算过程)和进程调度算法浅析
|
1天前
|
机器学习/深度学习 算法 API
【Paddle】PCA线性代数基础 + 领域应用:人脸识别算法(1.1w字超详细:附公式、代码)
【Paddle】PCA线性代数基础 + 领域应用:人脸识别算法(1.1w字超详细:附公式、代码)
6 0
|
1天前
|
算法 关系型数据库 C语言
卡尔曼滤波简介+ 算法实现代码(转)
卡尔曼滤波简介+ 算法实现代码(转)
19 4
|
1天前
|
数据安全/隐私保护
地震波功率谱密度函数、功率谱密度曲线,反应谱转功率谱,matlab代码
地震波格式转换、时程转换、峰值调整、规范反应谱、计算反应谱、计算持时、生成人工波、时频域转换、数据滤波、基线校正、Arias截波、傅里叶变换、耐震时程曲线、脉冲波合成与提取、三联反应谱、地震动参数、延性反应谱、地震波缩尺、功率谱密度
|
1天前
|
数据安全/隐私保护
耐震时程曲线,matlab代码,自定义反应谱与地震波,优化源代码,地震波耐震时程曲线
地震波格式转换、时程转换、峰值调整、规范反应谱、计算反应谱、计算持时、生成人工波、时频域转换、数据滤波、基线校正、Arias截波、傅里叶变换、耐震时程曲线、脉冲波合成与提取、三联反应谱、地震动参数、延性反应谱、地震波缩尺、功率谱密度
基于混合整数规划的微网储能电池容量规划(matlab代码)
基于混合整数规划的微网储能电池容量规划(matlab代码)
|
1天前
|
算法 数据安全/隐私保护 计算机视觉
基于二维CS-SCHT变换和LABS方法的水印嵌入和提取算法matlab仿真
该内容包括一个算法的运行展示和详细步骤,使用了MATLAB2022a。算法涉及水印嵌入和提取,利用LAB色彩空间可能用于隐藏水印。水印通过二维CS-SCHT变换、低频系数处理和特定解码策略来提取。代码段展示了水印置乱、图像处理(如噪声、旋转、剪切等攻击)以及水印的逆置乱和提取过程。最后,计算并保存了比特率,用于评估水印的稳健性。
|
1天前
|
算法 计算机视觉
基于高斯混合模型的视频背景提取和人员跟踪算法matlab仿真
该内容是关于使用MATLAB2013B实现基于高斯混合模型(GMM)的视频背景提取和人员跟踪算法。算法通过GMM建立背景模型,新帧与模型比较,提取前景并进行人员跟踪。文章附有程序代码示例,展示从读取视频到结果显示的流程。最后,结果保存在Result.mat文件中。
|
1天前
|
资源调度 算法 块存储
m基于遗传优化的LDPC码OMS译码算法最优偏移参数计算和误码率matlab仿真
MATLAB2022a仿真实现了遗传优化的LDPC码OSD译码算法,通过自动搜索最佳偏移参数ΔΔ以提升纠错性能。该算法结合了低密度奇偶校验码和有序统计译码理论,利用遗传算法进行全局优化,避免手动调整,提高译码效率。核心程序包括编码、调制、AWGN信道模拟及软输入软输出译码等步骤,通过仿真曲线展示了不同SNR下的误码率性能。
9 1

热门文章

最新文章