基于适应度-距离-平衡的自适应引导差分进化 (FDB-AGDE) 算法附matlab代码

​✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。

🍎个人主页:Matlab科研工作室

🍊个人信条:格物致知。

更多Matlab仿真内容点击👇

智能优化算法  神经网络预测 雷达通信  无线传感器

信号处理 图像处理 路径规划 元胞自动机 无人机  电力系统

⛄ 内容介绍

计算上最困难的问题类型之一是安全约束最优潮流 (SCOPF),这是一个非凸的、非线性的、大规模的、不确定的多项式时间优化问题。随着可再生能源的使用在SCOPF过程中,运行条件的不确定性和对电力系统的压力更大。因此,为该问题寻找可行的解决方案就成为了一个更大的挑战。即使是现代强大的优化算法也无法找到问题的现实解决方案。为了解决这类难题,优化算法需要具有不寻常的探索能力以及开发-探索平衡。在这项研究中,我们提出了涉及风能和太阳能系统的 SCOPF 问题的优化模型. 这个模型有一个问题空间和无数的局部解决方案陷阱,加上高度的复杂性和离散和连续变量。为了使优化模型能够有效地找到解决方案,自适应引导差分进化(AGDE)算法通过使用具有平衡搜索和高功率多样性能力的适应度-距离平衡(FDB)方法进行改进。通过使用 FDB 方法,可以像在自然界中一样更有效地选择在 AGDE 算法中指导搜索过程的候选解。这样,AGDE的探索和平衡搜索能力得到提升。解决涉及风能和太阳能系统的SCOPF问题,所开发的算法在不同操作条件下的 IEEE 30 总线测试系统上进行了测试。与文献中报道的元启发式算法的结果相比,从所提出的算法中获得的仿真结果在寻找最优解方面是有效的。

⛄ 部分代码

function []=FDB_AGDE_Case_1()

[population, dimension, maxIteration, lbArray, ubArray] = problem_terminate();

% *************************** %

% ** ALGORITHM鎷� VARIABLES ** %

% *************************** %

NP = population;

GEN = ceil(maxIteration/NP);

L = lbArray;

H = ubArray;

D = dimension;

X = zeros(D,1); % trial vector

Pop = zeros(D,NP); % population

Fit = zeros(1,NP); % fitness of the population

r = zeros(3,1); % randomly selected indices

% *********************** %

% ** CREATE POPULATION ** %

% *********************** %

for j = 1:NP % initialize each individual

    Pop(:,j) = L + (H-L).*rand(1,D); % within b.constraints

    Fit(1,j)=problem(Pop(:,j)); 

end

[~, iBest]=min(Fit);

% ****************** %

% ** OPTIMIZATION ** %

% ****************** %

Cr_All=zeros(1,2);

NW=zeros(1,2);

for g = 1:GEN % for each generation

    CrPriods_Index=zeros(1,NP);

    Sr=zeros(1,2);

    CrPriods_Count=zeros(1,2);

    for j = 1:NP % for each individual

         %%%%%%%%ADAPTIVE CR RULE  %%%%%%%%%%%%%%%%%%%%%%%%%

            Ali = rand;

            if(g<=1) % Do for the first Generation

                if (Ali<=1/2)

                    CR=0.05+0.1*rand(1,1);

                    CrPriods_Index(j)=1;

                

                else

                    CR=0.9+0.1*rand(1,1);

                    CrPriods_Index(j)=2;    

                end

                CrPriods_Count(CrPriods_Index(j))=CrPriods_Count(CrPriods_Index(j)) + 1;

            else

                 if (Ali<=NW(1))

                    CR=0.05+0.1*rand(1,1);

end

⛄ 运行结果

⛄ 参考文献

Guvenc, U., Duman, S., Kahraman, H. T., Aras, S., Katı, M., “Fitness-Distance Balance based adaptive guided differential evolution algorithm for security-constrained optimal power flow problem incorporating renewable energy sources”, Applied Soft Computing, https://doi.org/10.1016/j.asoc.2021.107421, (2021).

⛄ Matlab代码关注

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

❤️ 关注我领取海量matlab电子书和数学建模资料

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值