a) GA利用目标函数变量的编码进行求解,而不像传统方法那样使用变量来求解,它不受函数约束条件(如连续性、导数存在、单极值等)的限制,适合复杂问题的求解。
b) GA从群体出发在整个空间寻优,并进行多极值比较,具备全局最优搜索性。同时在很多区域中进行采样,可以大大地减小了陷入局部解的可能性。
c) GA直接应用目标函数的函数值信息(即适应度值),而非函数的导数或其它辅助信息,因此GA几乎可以处理任何问题。
d) GA引用了概率转换规则,而不采用确定性的转换规则指导搜索,因此能搜索离散的有噪声的多峰值复杂空间。
e) GA在解空间内进行充分的搜索,但不是盲目的穷举或试探,因为选择操作以适应度为依据。因此它的搜索时耗和效率往往优于其它优化算法。
f) GA具有隐含的并行性。GA在搜索空间里使用相对少的个体,就可以检验表示数量极大的区域。隐含并行性是GA优于其它求解过程的关键所在。另外,GA的隐含并行性还有助于处理非线性问题。
GA的缺点主要有以下几点:
a) 编码不规范及编码存在表示的不确定性。由于GA求解问题一般不是直接作用在问题的解空间上,而是利用解的某种编码方式来表示,因此选择一种合适的编码方式对算法的性能和效率意义重大。
b) 单一的GA编码不能全面地将优化问题的约束表示出来,因此人们往往借助于罚函数法,从而增加了算法的时间开销。
c) 不能保证收敛到最优解,即GA虽然全局性能较好,但是在有限的时间内往往会滞留在某一局部最优值,产生“早熟收敛”现象。
遗传算法是20世纪70年代由美国Michigan大学的J. H. Holland教授等开创的。其思想源于生物进化的“适者生存”规律,即“最适合自然环境的群体往往产生了更大的后代群体”。随后引起了广泛的注意并在世界范围内掀起了研究热潮,其中以D. E. Goldberg的贡献最为卓越。他不但建立和完善了整个GA体系,而且成功地将其应用到搜索、优化及机器学习等多个领域。目前GA已经成为一种成熟的具有高鲁棒性和适用性的全局优化算法。生物进化的基本过程如图1所示。以这个循环圈的群体为起点,经过竞争后,一部分群体被淘汰,而一部分则成为种群。优胜劣汰在这个过程中起着关键的作用。种群通过婚配产生子代群体(子群)。进化过程中可能会因为变异而产生新的个体。从而子群成长为新的群体而取代旧群体,并由此形成循环。遗传算法是一种基于自然法则的自适应启发式群体型概率性迭代式全局收敛算法,它根据当前解和一些随机信息来产生新解,对需要全局优化和函数难于进行解析处理的问题,遗传算法中的随机过程使得对解空间更广泛的搜索成为可能,显示出遗传算法的优越性。
a) 轮盘赌方法。个体的适应度值越大,被选中的概率就越高,直接体现了“适者生存”这一自然选择原理,是目前GA中最基本也是最常用的选择方法[3,4,7]。缺点是超级个体的存在将导致早熟收敛。
b) 排序选择法。首先根据各个体的适应度大小进行排序,然后基于所排序号进行选择。如文献[8],各个体的选择概率和适应度无直接关系而仅与序号有关。其优点是避免超级个体引起的早熟收敛,缺点是选择概率和序号的关系需事先确定并存在统计误差。
c) 两两竞争法。从父代中随机地选取两个个体,对其适应值进行比较,保存优秀个体,淘汰较差的个体。这种方法既保证了配对库中的个体在解空间中有较好的分散性,同时又保证了加入配对库中的个体具有较大的适应值[11~14]。
上述选择方式均以适应度为基础,这可能在进化过程中导致以下问题:
a) 在群体中出现个别或极少数适应度值相当高的个体时,采用这类选择机制就有可能导致这些个体在群体中迅速繁殖,经过少数几次迭代后就占满了群体的位置,形成早熟收敛现象。
b) 当群体中个体适应度彼此非常接近时,这些个体进入配对库的机会相当,而且交叉后得到的新个体也不会有多大变化,这样搜索过程就不能有效地进行,陷于停滞状态。
a) 一点交叉。在个体串中随机地选定一个交叉点,两个个体在该点前或后进行部分互换,以产生新的个体[2,3,19]。为了使一点交叉有更大的搜索范围,可以同时使用尾-尾交叉和头-尾交叉[2,7]。有专家提出采用选择式一点交叉[10],即在交叉时保留优秀个体,而较差个体接受优秀个体的优良性态,以避免种群性态变坏,但是可能引起群体多样性的破坏。文献[9]则提出自适应交叉,即pc并不采用一固定值,而是使其与适应度相联系,适应度大的减低pc值,小的则提高pc值。
b) 两点交叉(多点交叉)。与一点交叉类似,只是随机地产生两个(多个)交叉点。
c) 均匀交叉。随机建立一个与码串等长的“0-1”模板,然后根据对应位是0还是1来决定父体相应基因交换与否[11,14]。对于复杂的多变量问题,一般说来,采用均匀交叉和两点交叉比一点交叉的效果要好[1,11]。
a) SA具有依赖于Boltzmann策略,具有全局收敛性,而GA存在着过早收敛的问题。
b) GA同时对多个个体进行搜索,而SA仅对一个点进行操作。
c) SA按照一定概率接受比原解差的解,而GA一般只接受比原解好的解。因此,SA能使搜索跳出局部最优解到达全局最优,而GA却可能会引起基因损失,导致搜索失败。
d) GA具有隐含的并行性,可很容易地应用于并行计算机,而SA是一种串行算法,若把它并行化,势必要以降低速度为代价。
e) GA运行速度较SA快,但需要较多的内存。
由上可知,GA和SA各有长短,若把两者结合起来,可望取得令人满意的效果。鉴此,在GA的选择操作中引入了Boltzmann生存机制[12,15~18],取得了较好的效果,尤其是随着系统规模的增大,其优越性更加突显出来[15]。
参考文献
[1]段玉倩,贺家李.遗传算法及其改进[J].电力系统及其自动化学报,1998,10(1):39—52.
[2] LEE K Y,BAI X M,PARK Y M.Optimization method for reactive power planningby using a modified simple genetic algorithm [J].IEEE Trans on PS,1995,10(4): 1843—1850.
[3] MA J T,LAI L L,杨以涵.遗传算法在电力系统无功优化中的应用[J].中国电机工程学报,1995,15(5):347—353.
[4] 周双喜,杨彬.实现无功优化的新算法——遗传算法[J].电力系统自动化,1995,19(11):19—23.
[5] 范明天,相年德,张祖平,等.基于遗传算法技术的离散无功优化[J].电网技术,1995,19(5):39—45.
[6] 周双喜,蔡虎.应用于无功优化的遗传算法中的编码问题[A].全国高等学校电力系统及其自动化专业第十二届学术年会论文集[C].保定:[出版社不详],1996.
[7] 柏岭.用改进的简单遗传算法进行无功规划的优化方法[J].电力情报,1997(2):72—75.
[8] 周竹,许克明.改进遗传算法进行电压无功实时控制[J].贵州工业大学学报,1997,26(3):37—41.
[9] WU Q H,CAO Y J,WEN J Y.Optimal reactive power dispatch using an adaptive genetic algorithm [J].Electrical power & systems,1998,20(8): 563—569.
[10]赵登福,周文华,张伏生,等.遗传算法在无功优化应用中的改进[J].电网技术,1998,22(10):34—36.
[11] 张粒子,舒隽,林宪枢,等.基于遗传算法的无功规划优化[J].中国电机工程学报,2000,20(6):5—8.
[12] 戴文霞.无功功率优化的改进退火选择遗传算法[J].电网技术,2001,25(11):33—37.
[13] 朱启贵,张晓宇,张志平.吉林省电力系统无功规划优化[J].吉林电力,2000(5):5—8,32.
[14] 周双喜,蔡虎.应用于电力系统无功优化的改进遗传算法[J].电网技术,1997,21(12):1—4.
[15] 陈皓勇,王锡凡.电力系统无功优化的退火选择遗传算法[J].中国电力,1998(2):3—6.
[16] 张金奎,林荫宇,甘兴国,等.一种基于混和遗传算法的电力系统优化无功问题研究[J].电力系统及其自动化学报,2000,12(1): 15—19.
[17] 刘吉来.混合寻优法在无功优化中的应用研究[J].电力建设,1998(9):1—5.
[18] DELFANTI M,GRANELLI G P.Optimal capacitor placement using deterministic and genetic algorithms [J].IEEE Trans on PS,2000,15(3): 1041—1046.
[19] 周双喜,杨彬.影响遗传算法性能的因素及改进措施[J].电力系统自动化,1996,20(7):24—26,31.
[20] 文劲宇,江振华,姜霞,等.基于遗传算法的无功优化在鄂州电网中的实现[J].电力系统自动化,2000,24(2):45—47,60.
[21] 程浩忠.基于遗传算法的电力系统无功优化[J].上海交通大学学报,1998,32(1):127—130.
[22] 蔡超豪,王奇.遗传算法及其在无功优化中的应用[J].东北电力技术,1996(8):22—25.
[23] 倪炜,单渊达.具有优化路径的遗传算法应用于电力系统无功优化[J].电力系统自动化,2000,24(21):40—44.
[24] 宋军英,刘涤尘,陈允平.电力系统模糊无功优化的建模及算法[J].电网技术,2001,25(3):22—25.(end)