遗传算法的优化
1、基于改进遗传算法的大型海上风电场优化电网设计
(Optimal Electric Network Design for a Large Offshore Wind Farm Based on a Modified Genetic Algorithm Approach)
主要内容:
在本文中,考虑到专门为本地WT收集器系统中的径向拓扑设计的特定情况,提高了GA的效率。
对于此建议,遗传算法与用于解决经典多次旅行推销员问题(mTSP)的解决方案方法相结合。
遗传算法——解决M-TSP多旅行商问题(基于python基本实现
这种方法解决了考虑连接到PCC的多个径向馈线的情况下设计本地WT收集器的问题,称为开放式多次旅行推销员问题(omTSP)。
本节还介绍了为此特定配方开发的特殊基因编码。
解决了什么???
解决了考虑连接到PCC的多个径向馈线的情况下设计本地WT收集器的问题----开放式多次旅行推销员问题(omTSP)
算法怎么改进???
遗传算法与用于解决经典多次旅行推销员问题(mTSP)的解决方案方法相结合
遗传算法——解决M-TSP多旅行商问题(基于python基本实现
当搜索和优化具有离散变量的巨大解空间的问题时,GA表现出特殊的功效;海上风电场布局的最佳设计就是这样一个问题[18]。在本文中,考虑到专门为本地WT收集器系统中的径向拓扑设计的特定情况,提高了GA的效率。
编码改进
1对所有可能的染色体解进行编码是解决优化问题的第一步;染色体X代表每个基因定义的所有电连接方案及其特征
染色体中的基因X1定义了离岸变电站之间的集成系统中的连接类型(以二进制表示:1:星形,0:环形),基因X2定义了Nss变电站之间的连接方式,以下Xi(i = 3,…,Nss + 2)表示NWTiWT和PCC之间的馈线的连接拓扑
2、遗传与免疫混合算法优化大型海上风电场内部电气连接系统
(Optimization of Internal Electric Connection System of Large Offshore Wind Farm with
Hybrid Genetic and Immune Algorithm)
采用免疫算法对标准遗传算法进行了改进
优化是找到变电站的最佳位置和风力涡轮机彼此连接以及与变电站连接的最佳路径。
首先,应该优化变电站的数量和容量。实际上,没有应用著名的电力系统“ N-1”标准,因为间歇性风能使风力涡轮机的最大利用小时相对较低,因此经济上最优的方案必须具有以下模式:每个变电站只有一个变压器。另一方面,为了便于管理,在当今的电力系统中,变压器的可用容量受到限制。因此,可以简化变电站的配置,并且在确定变电站的数量和容量之后,可以将每个风力涡轮机分配给其变电站,该风力变电站被设计为算法中的最外部回路,如图1所示
则风力涡轮机的集合为V = {v1,v2,…,vN},其中vk(k = 1,2,…,N)是风力涡轮机的***。
- 先确定风力涡轮机组的数量Jmin-Jmax
- 初始化基因:对于符号染色体,初始化的基因是风力涡轮机序号的随机排列,然后,在可行区域内将变电站的站点坐标相应地随机化
- 疫苗提取:在疫苗提取中,每个风力涡轮机都与其最近的风力涡轮机相连。因此,风力涡轮机被分为多个彼此不互连的子图。这几个基本片段是组成好不能动的意思
- 交叉,变异
- 疫苗接种对于选择的基因,随机抽取一种元素,可以发现含有抽取出的元素的疫苗。
然后,将疫苗接种到基因中并进行完整性保护,即应删除原始基因中重复的疫苗 - 在形成新一代之前,应将候选基因与其父母进行比较,换句话说,最差的候选基因将被父代中的一个或多个基因取代,而该基因要比最佳候选基因好。
可以使用最大迭代次数或相邻代之间的差异来设置终止标准。
核心翻译:
对于变电站和风力涡轮机划分方案,必须优化每个变电站及其风力涡轮机。
换句话说,优化是找到变电站的最佳位置和风力涡轮机彼此连接以及与变电站连接的最佳路径。
这是图1中的第二个嵌套循环,优化算法被标记为“优化核心”程序,应对其进行详细说明。
在优化核心过程中,假设应将N台风机连接到特定的变电站。
则风力涡轮机的集合为V = {v1,v2,…,vN},其中vk(k = 1,2,…,N)是风力涡轮机的***。
(1)编码在此优化过程中,关键问题是如何将风力涡轮机分为不同的组。
一旦确定了组的划分,最小生成树算法就可以为使风力发电机具有连通性提供最佳路径。
因此,在该方法中采用符号编码,它是风力涡轮机***的置换,即T = {t1,t2,… tN},其中ti(i = 1,2,…,N)是 T的第i个位置的风力涡轮机。排列被视为几个部分,每个部分恰好是一个染色体,并且对应于一组风力涡轮机。
对于排列(基因),其片段(染色体)是通过以下方式获得的:Ti = {tround [(i-1)* N / nG] +1,tround [(i-1)* N / nG] +2 ,…,tround [i * N / nG]}(7)查看原始图在MathML和其他功能上单击鼠标右键。其中i = l,2,…,nG,round(∙)是积分函数,nG是 段数(染色体)。
同时,将数字编码应用于变电站的位置。
该染色体对总成本和风力涡轮机的最佳组有相当大的影响,并将与风力涡轮机部门一起进行优化。
(2)风力发电机组数目nG如上所示,基因的结构应在很大程度上受到风力发电机组数目的影响。
根据电缆的可行承载力Acc(单位:MVA)计算数量,该数量在两个限制内变化,即最大组数Jmax和最小组数Jmin:Jmin = ∑k∈JwkAcccosφJmax = ∑k∈JwkAcccosφ + λ(8)(9)查看源右键单击图形以获取MathML和其他功能。
在此,λ是弛豫因子。
对于每个组号nG,将制定出相应的最佳方案进行比较。
因此,如图2所示,算法中存在一个循环来优化组号。
(3)初始化在此步骤中,将生成第一代基因,并将其作为进化的起源。对于符号染色体,初始化的基因是风力涡轮机序号的随机排列,然后,在可行区域内将变电站的站点坐标相应地随机化。进化中通常有一定数量的基因,它们被称为“社区”,在该社区上可以实现各种进化算子。
(4)疫苗的提取众所周知,遗传算法具有很好的全局收敛性,但是不擅长局部收敛。
因此,本文引入免疫算法对其进行弥补。
通过免疫算法,疫苗可用于保护基因的阳性信息并改善局部收敛性。
在疫苗提取中,每个风力涡轮机都与其最近的风力涡轮机相连。
因此,风力涡轮机被分为多个彼此不互连的子图,它们只是疫苗:Vaccine1Vaccine2Vaccinep = {v11,v12,…,v1k} = {v21,v22,…,v2k}⋯= {vp1,vp2, …,vpk}(10)在MathML和其他功能上单击鼠标右键,其中,p是疫苗数量,ik(i = 1,2,…,p)是i−中的风力涡轮机数量 第疫苗vmn(m = 1,2,…,p; n = 1,2,…,mk)是第m疫苗中的第n个元素。
显然,有∑i = 1pik = N和⋃pj= 1Vaccinei = V。
(5)遗传算子所提出的算法有两种遗传算子,交叉算子和变异算子。
它们都将有助于进化过程中的多样性,此外,前者可以帮助重组优秀基因,而后者则可以带来新的染色体。
交叉作用在两个基因Tc =(tc1,tc2,…,tcN)和Td =(td1,td2,…,tdN)之间起作用。
给定随机的几个起始点i和端点j,这两个基因找到了各自应交换的基因片段:(tc(i + 1),tc(i + 2),…,tcj)和(td(i + 1),td(i + 2),…,tdj)。
通过交换基因片段,生成了两个新基因:T’c =(tc1,tc2,…,tci,td(i + 1),td(i + 2),…,tdj,tc(i + 1) ,…,tcN)T′d =(td1,td2,…,tdi,tc(i + 1),tc(i + 2),…,tcj,td(i + 1),…,tdN)(11) 查看SourceRight单击该图以获取MathML和其他功能。
在任何一个新基因中都可能有重复的元素,因此必须删除原始位置的重复元素,以保证基因的可行性。
突变是在基因内部的两个染色体之间进行的。
同样,两条染色体将交换其相应的区段,但新染色体中不能有重复的元素。
(6)疫苗接种对于选择的基因,随机抽取一种元素,可以发现含有抽取出的元素的疫苗。
然后,将疫苗接种到基因中并进行完整性保护,即应删除原始基因中重复的疫苗。
假设应该接种基因Tk =(tk1,tk2,…,tkN),并将绘制出的元素称为tkb。
如果在步骤(4)中创建的疫苗库中有疫苗(tkh,tkb,tkr),则接种的基因为T’k =(tk1,tk2,…,tk(b-1),tkh,tkb, tkr,tkb,tk(b + 1),…,tkN)(12)查看源代码在图上单击鼠标右键以获取MathML和其他功能。
删除重复的元素后,新基因为T’'k =(tk1,tk2,…,tk(b-1),tkh,tkb,tkr,tk(b + 1),…,tk(h-1) ,tk(h + 1),…,tk(r-1),tk(r + 1),…,tkN)(13)查看源右键单击图以获取MathML和其他功能。
(7)选择并保留最佳解将适应度函数定义为目标函数的倒数。
此外,在此过程中检查约束,并且在违反约束的情况下,将适应性函数乘以惩罚性因子(一个很小的正数),从而使不可行的解决方案在轮盘赌选择中难以幸免。
交叉,突变和疫苗接种可以带来更出色的下一代,也可能相反。
为了保留良好的基因,此步骤是必要的。
在形成新一代之前,应将候选基因与其父母进行比较,换句话说,最差的候选基因将被父代中的一个或多个基因取代,而该基因要比最佳候选基因好。
可以使用最大迭代次数或相邻代之间的差异来设置终止标准。
优化核心算法的整个过程如图2所示。
第四节。
3、使用珊瑚礁优化算法(CRO)的海上风电场设计
(Offshore wind farm design with the Coral Reefs Optimization algorithm)
CRO是一种针对生物优化问题的新型生物启发式元启发式算法,基于人工模拟的珊瑚礁形成和繁殖过程。CRO算法模拟了珊瑚繁殖的不同阶段,并争夺礁石中的空间,最终产生了解决难题的优化算法。获得的结果表明,CRO是一种在优化与能源有关的问题中应考虑的竞争算法。
初始
Λ礁石模型,由N × M正方形网格组成。我们假设Λ的每个平方(i,j)都可以分配一个珊瑚(或多个珊瑚群落)首先随机分配CRO算法,方法是在Λ中分配一些要被珊瑚占据的正方形而在网格中分配其他一些正方形为空,即在礁石中的孔中让新的珊瑚*沉降和生长。之间的*/速率占用正方形在Λ在算法开始时是CRO算法的一个重要的参数
每个珊瑚都标有相关的标签保健功能代表问题的目标函数。请注意,只要更健康(更强)的珊瑚(代表着解决当前问题的更好的方法)生存下来,而不那么健康的珊瑚灭亡,珊瑚礁就会继续前进。
繁殖:
为此,通过依次应用不同的运算符来模拟珊瑚在礁中的繁殖。然后迭代地应用此顺序的运算符集,直到满足给定的停止标准为止。因此,我们定义了不同的运算符来模拟性繁殖(广播产卵和育雏),无性繁殖(萌芽)和息肉剥夺。在有性繁殖和无性繁殖中,我们都提供了新的珊瑚有效地附着在珊瑚礁上或在幼体阶段被淘汰的条件
健康函数L:
我们考虑使用在风场Ω中考虑的固定N台涡轮机获得的风场的平均年发电量(AEP)
其中C(k)代表与特定风力涡轮机k的安装相关的成本
N是安装的风力涡轮机数量,a是归一化参数