当前位置: 首页 > article >正文

【论文复现】基于适应度-距离平衡的自适应引导差分进化算法用于考虑可再生能源的安全约束最优潮流问题

目录

    • 1.摘要
    • 2.AGDE算法
    • 3.结果展示
    • 4.参考文献
    • 5.代码获取


在这里插入图片描述

1.摘要

安全约束最优潮流(SCOPF)问题是一个非凸、非线性、大规模且计算复杂的优化问题。随着可再生能源(如风能和太阳能)的引入,SCOPF问题的操作条件和电力系统面临的压力更加复杂和不确定,使得找到可行解变得更加具有挑战性。尽管现有的强大优化算法已经在解决类似问题上取得一定进展,但仍无法有效找到现实可行的解决方案。本文提出了一种基于自适应引导差分进化算法(AGDE),专门针对包含风能和太阳能系统的SCOPF问题。该模型不仅具有一个复杂的问题空间,还包含大量局部最优解陷阱,并涉及离散和连续变量,增加了解决问题的难度。
为提升算法的求解效率,本文采用了适应度-距离平衡(FDB)方法,对AGDE算法进行了改进。FDB方法通过优化搜索过程中的解候选选择,增强了算法的平衡搜索能力和多样性,模拟了自然界中更为高效的选择机制。

2.AGDE算法

变异算子

差分进化(DE)算法变异算子:
v i G = X r 1 G + F . ( X r 2 G − X r 3 G ) v_i^G=X_{r1}^G+F.\left(X_{r2}^G-X_{r3}^G\right) viG=Xr1G+F.(Xr2GXr3G)
在AGDE算法中使用:
v i G + 1 = X r G + F . ( X p b e s t G − X p w o r s t G ) v_i^{G+1}=X_r^G+F.\left(X_{p_{best}}^G-X_{p_{worst}}^G\right) viG+1=XrG+F.(XpbestGXpworstG)

种群中的解候选根据适应度值进行排序,并将其划分为三个子组:最优组、中间组和最差组。最优组由适应度值最高的前五个解候选构成,最差组由适应度值最低的最后五个解候选构成,而中间组则包含剩余的解候选。

自适应参数

AGDE算法的搜索性能在很大程度上依赖于变异和交叉算子的成功。其中,交叉比率 C R CR CR对交叉操作的效果有显著影响。较大的 C R CR CR值能够增加解的多样性,但会降低收敛速度;而较小的 C R CR CR值则可能导致过早收敛。因此, C R CR CR参数需要根据具体问题和搜索过程的需求进行动态调整,以维持算法的开发-探索平衡。在搜索过程的第 G G G代中,每个解候选的 C R CR CR值都是从这两个均匀分布中独立生成的,从而实现了对 C R CR CR参数的动态控制和优化。
{ i f G = 1 , C R i 1 = { C R 1 , i f r a n d ( 0 , 1 ) ≤ 0.5 C R 2 , e l s e e l s e , C R i G = { C R 1 , i f r a n d ( 0 , 1 ) ≤ p 1 C R 2 , i f p 1 ≤ r a n d ( 0 , 1 ) ≤ p 1 + p 2 \begin{cases} ifG=1, & CR_i^1= \begin{cases} CR_1, & ifrand(0,1)\leq0.5 \\ CR_2, & else & \end{cases} \\ else, & CR_i^G= \begin{cases} CR_1, & ifrand(0,1)\leq p_1 \\ CR_2, & ifp_1\leq rand(0,1)\leq p_1+p_2 & \end{cases} & \end{cases} ifG=1,else,CRi1={CR1,CR2,ifrand(0,1)0.5elseCRiG={CR1,CR2,ifrand(0,1)p1ifp1rand(0,1)p1+p2

适应度-距离平衡FDB

FDB是一种贪心选择方法,但与其他贪心或概率方法不同,它根据解候选的FDB得分而非适应度值进行选择。在FDB方法中,得分的计算考虑了两个参数:解候选的适应度值和解候选与最佳解(即适应度最优解)之间的距离。因此,FDB通过同时考虑适应度和距离,优化了解的选择过程。计算每个候选解与最优候选解的距离值:
i = 1 m ∀ P i , D P i = ( x 1 [ i ] − x 1 [ b e s t ] ) 2 + ( x 2 [ i ] − x 2 [ b e s t ] ) 2 + ⋯ + ( x n [ i ] − x n [ b e s t ] ) 2 \begin{aligned} & {}_{i=1}^{m}\forall P_{i},D_{P_{i}} \\ & =\sqrt{\left(x_{1[i]}-x_{1[best]}\right)^{2}+\left(x_{2[i]}-x_{2[best]}\right)^{2}+\cdots+\left(x_{n[i]}-x_{n[best]}\right)^{2}} \end{aligned} i=1mPi,DPi=(x1[i]x1[best])2+(x2[i]x2[best])2++(xn[i]xn[best])2

FDB得分使用适应度值(FV)和距离值(Dp)的归一化向量:
i = 1 m ∀ P i , S P i = w ∗ n o r m F V i + ( 1 − w ) ∗ n o r m D P i _{i=1}^m\forall P_i,\quad S_{P_i}=w*\mathrm{norm}FV_i+(1-w)*\mathrm{norm}D_{P_i} i=1mPi,SPi=wnormFVi+(1w)normDPi

种群位置更新为:
v i G + 1 = X r G + F . ( X p b e s t G − X p w o r s t G ) × { C a s e 1 → X r G = X F D B ( r o u l e t t e w h e e l ) G C a s e 2 → X p b e s t G = X F D B ( r o u l e t t e w h e e l ) G C a s e 3 → X p W o r s t G = X F D B ( r o u l e t t e w h e e l G \begin{gathered} v_{i}^{G+1}=X_{r}^{G}+F.\left(X_{p_{best}}^{G}-X_{p_{worst}}^{G}\right) \\ \times \begin{cases} \mathsf{Case}1\to X_{r}^{G}=X_{\mathrm{FDB}(roulettewheel)}^{G} \\ \mathsf{Case}2\to X_{p_{\mathrm{best}}}^{G}=X_{\mathrm{FDB}(roulettewheel)}^{G} \\ \mathsf{Case}3\to X_{p_{\mathrm{Worst}}}^{G}=X_{\mathrm{FDB}(roulettewheel}^{G} & \end{cases} \end{gathered} viG+1=XrG+F.(XpbestGXpworstG)× Case1XrG=XFDB(roulettewheel)GCase2XpbestG=XFDB(roulettewheel)GCase3XpWorstG=XFDB(roulettewheelG

伪代码

在这里插入图片描述

3.结果展示

CEC2017
选择DE,ADE对比
ADE:高级差分进化算法

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.参考文献

[1] Guvenc U, Duman S, Kahraman H T, et al. Fitness–Distance Balance based adaptive guided differential evolution algorithm for security-constrained optimal power flow problem incorporating renewable energy sources[J]. Applied Soft Computing, 2021, 108: 107421.

5.代码获取


http://www.kler.cn/a/534858.html

相关文章:

  • 数据结构初探:链表之双向链表篇
  • 一文讲解Spring如何解决循环依赖
  • CSS的媒体查询语法
  • 说一下JVM管理的常见参数
  • C/C++编译器
  • 构建一个翻译助手Agent:提升翻译效率的实践
  • 【Go语言快速上手】第一部分:Go 语言基础
  • Angular-hello world
  • 青少年编程与数学 02-008 Pyhon语言编程基础 22课题、类的定义和使用
  • C++【深入 STL--list 之 迭代器与反向迭代器】
  • 【鸿蒙HarmonyOS Next实战开发】视频压缩库VideoCompressor
  • Vue混入(Mixins)与插件开发深度解析
  • 常用抓包工具tcpdump、Fiddler、Charles、Wireshark 和 Sniffmaster 下载地址
  • 使用 CMake 自动管理 C/C++ 项目
  • C语言程序设计P6-5【应用指针进行程序设计 | 第五节】——指针与函数
  • OCR--光学字符识别
  • WebSocket推送数据快,条数多导致前端卡顿问题解决
  • 《Linux基础优化与常用软件包》
  • 【大数据技术】词频统计样例(hadoop+mapreduce+yarn)
  • Vue 3 30天精进之旅:Day 16 - 组合式API进阶
  • 用DeepSeek做网络系统规划方案
  • C++编程语言实现某一个具体算法
  • 数据库迁移后在密码不知道的情况下重建DBLINK
  • 游戏引擎学习第89天
  • 大模型 RAG 优化之预生成qa对
  • LLAMA-Factory安装教程(解决报错cannot allocate memory in static TLS block的问题)