遗传算法的运算过程

遗传算法的运算过程,第1张

遗传 *** 作是模拟生物基因遗传的做法。在遗传算法中,通过编码组成初始群体后,遗传 *** 作的任务就是对群体的个体按照它们对环境适应度(适应度评估)施加一定的 *** 作,从而实现优胜劣汰的进化过程。从优化搜索的角度而言,遗传 *** 作可使问题的解,一代又一代地优化,并逼近最优解。

遗传 *** 作包括以下三个基本遗传算子(genetic operator):选择(selection);交叉(crossover);变异(mutation)。这三个遗传算子有如下特点:

个体遗传算子的 *** 作都是在随机扰动情况下进行的。因此,群体中个体向最优解迁移的规则是随机的。需要强调的是,这种随机化 *** 作和传统的随机搜索方法是有区别的。遗传 *** 作进行的高效有向的搜索而不是如一般随机搜索方法所进行的无向搜索。

遗传 *** 作的效果和上述三个遗传算子所取的 *** 作概率,编码方法,群体大小,初始群体以及适应度函数的设定密切相关。 从群体中选择优胜的个体,淘汰劣质个体型野唤的 *** 作叫选择。选择算子有时又称为再生算子(reproduction operator)。选择的目的是把优化的个体(或解)直接遗传到下一代或通过配对交叉产生新的个体再遗传到下一代。选择 *** 作是建立在群体中个体的适应度评估基础上的,目前常用的选择算子有以下几种:适应度比例方法、随机遍历抽样法、局部选择法。

其中轮盘赌选择法 (roulette wheel selection)是最简单也是最常用的选择方法。在该方法中,各个个体的选择概率和其适应度值成比例。设群体大小为n,其中个体i的适应度为,则i 被选择的概率,为遗传算法

显然,概率反映了个体i的适应度在整个群体的个体适应度总和中所占的比例。个体适应度越大。其被选择的概率就越高、反之亦然。计算出群体中各个个体的选择概率后,为了选择交配个体,需要进行多轮选择。每一轮产生一个[0,1]之脊运间均匀随机数,将该随机数作为选择指针来确定被选个体。个体被选后,可随机地组成交配对,以供后面的交叉 *** 作。 在自然界生物进化过程中起核心作用的是生物遗传基因的重组(加上变异)。同样,遗传算法中起核心作用的是遗传 *** 作的交叉算子。所谓交叉是指把两个父代个体的部分结构加以替换重组而卜凯生成新个体的 *** 作。通过交叉,遗传算法的搜索能力得以飞跃提高。

交叉算子根据交叉率将种群中的两个个体随机地交换某些基因,能够产生新的基因组合,期望将有益基因组合在一起。根据编码表示方法的不同,可以有以下的算法:

a)实值重组(real valued recombination)

1)离散重组(discrete recombination)

2)中间重组(intermediate recombination)

3)线性重组(linear recombination)

4)扩展线性重组(extended linear recombination)。

b)二进制交叉(binary valued crossover)

1)单点交叉(single-point crossover)

2)多点交叉(multiple-point crossover)

3)均匀交叉(uniform crossover)

4)洗牌交叉(shuffle crossover)

5)缩小代理交叉(crossover with reduced surrogate)。

最常用的交叉算子为单点交叉(one-point crossover)。具体 *** 作是:在个体串中随机设定一个交叉点,实行交叉时,该点前或后的两个个体的部分结构进行互换,并生成两个新个体。下面给出了单点交叉的一个例子:

个体A:1 0 0 1 ↑1 1 1 → 1 0 0 1 0 0 0 新个体

个体B:0 0 1 1 ↑0 0 0 → 0 0 1 1 1 1 1 新个体 变异算子的基本内容是对群体中的个体串的某些基因座上的基因值作变动。依据个体编码表示方法的不同,可以有以下的算法:

a)实值变异

b)二进制变异。

一般来说,变异算子 *** 作的基本步骤如下:

a)对群中所有个体以事先设定的变异概率判断是否进行变异

b)对进行变异的个体随机选择变异位进行变异。

遗传算法引入变异的目的有两个:一是使遗传算法具有局部的随机搜索能力。当遗传算法通过交叉算子已接近最优解邻域时,利用变异算子的这种局部随机搜索能力可以加速向最优解收敛。显然,此种情况下的变异概率应取较小值,否则接近最优解的积木块会因变异而遭到破坏。二是使遗传算法可维持群体多样性,以防止出现未成熟收敛现象。此时收敛概率应取较大值。

遗传算法中,交叉算子因其全局搜索能力而作为主要算子,变异算子因其局部搜索能力而作为辅助算子。遗传算法通过交叉和变异这对相互配合又相互竞争的 *** 作而使其具备兼顾全局和局部的均衡搜索能力。所谓相互配合.是指当群体在进化中陷于搜索空间中某个超平面而仅靠交叉不能摆脱时,通过变异 *** 作可有助于这种摆脱。所谓相互竞争,是指当通过交叉已形成所期望的积木块时,变异 *** 作有可能破坏这些积木块。如何有效地配合使用交叉和变异 *** 作,是目前遗传算法的一个重要研究内容。

基本变异算子是指对群体中的个体码串随机挑选一个或多个基因座并对这些基因座的基因值做变动(以变异概率P.做变动),(0,1)二值码串中的基本变异 *** 作如下:

基因位下方标有*号的基因发生变异。

变异率的选取一般受种群大小、染色体长度等因素的影响,通常选取很小的值,一般取0.001-0.1。 当最优个体的适应度达到给定的阈值,或者最优个体的适应度和群体适应度不再上升时,或者迭代次数达到预设的代数时,算法终止。预设的代数一般设置为100-500代。

首先要清楚常规潮流计算和最优潮流的不同,尤其是计算过程。

常规潮流计算是给定PV,PQ和平衡节点相应的已知条件,根据网络拓扑计算线路功率和网损等运行指标,所给定的条件不一定使电网的运行达到最优水平;并且在电力市场环境下这些条件是未知的。因此需要寻找最优的已知条件,使调度运行成本、安全性、稳定性等最优,即成为最优潮流。在寻找最优运行条件神肢的过程就需要到如遗传算法等智能算法搜索或者数值方法如内点法等。

遗传算法与潮流计算的结合就是用遗传算法搜索最优运行条件。

现假定网损是判定最优与否的原则,即网损越小越优,同时定义遗传算法的适应度为一大数减去网损(即f=C-PL)将最小化问题转化为最大化问题;待求运行条件的个数为m;遗游唤世传算法的种群数为n。

由以上分析不难知道,最优潮流计算过程需要反复调用常规潮流计算,这也是计算耗时的原因。

若将遗传算法的收敛判据设定为相邻两代的最大适应度值趋于稳定,则结合过程如下:

(1)初始化:用遗传算法产生初始种群(n行m列),初始最优适应度为0。转(2)

(2)计算适应度:将产生的种群(已知条件)分别代入常规潮流程序,计算每个个体下的网损,从而得到每个个体相应的适应度值,保存最优适应度值。判定最优适应值变化情况,若|f2-f1|<ε(ε为一很小的正数),迭代终止,输出最优个体,否则转(3)。

(3)进行遗传算子的 *** 作:调用遗传算法的选择、交叉和变异 *** 作,从而链侍得到新的种群。转(2)

根据以上三个基本步即可实现遗传算法与潮流计算的结合。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12373754.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存