理论教育 现代启发式算法优化技巧

现代启发式算法优化技巧

时间:2023-06-25 理论教育 版权反馈
【摘要】:近年来,一类基于生物学、人工智能的现代启发式算法已经广泛应用于组合优化问题、运输问题、工程设计优化等领域。目前流行的现代启发式算法有:遗传算法、模拟退火法、Tabu搜索法、蚂蚁算法和粒子群算法。

现代启发式算法优化技巧

6.4.1节所提到的各种无功补偿优化算法都有一定的优越性和适应性,但是由于它们都是单路径寻优模式,故难以给出全局最优解,这是传统经典优化算法所无法克服的弊端,其次由于无功补偿优化问题中的控制变量如可投无功补偿容量是离散变量,而传统优化方法一般要求可微或线性化,用于离散无功补偿优化问题就可能会有较大误差。

近年来,一类基于生物学、人工智能的现代启发式算法(Meta-Heuristics,MH)已经广泛应用于组合优化问题、运输问题、工程设计优化等领域。目前流行的现代启发式算法有:遗传算法(Genetic Algorithm,GA)、模拟退火法(Simulate Annealing,SA)、Tabu搜索法(Tabu Search,TS)、蚂蚁算法(Ant Colony Algo-rithm,ACO)和粒子群算法(Particle Swarm Optimization,PSO)。

它们与传统优化方法存在很大的区别:

1)传统优化方法以一个解为迭代的初始值,而MH以一组解为初值;

2)传统优化算法搜索策略为确定性的,而MH的搜索策略是结构化和随机化的;

3)MH仅用到优化目标函数值的信息,不必用到目标函数的导数信息,而传统优化算法大多数需要导数信息;

4)MH对问题的数学描述不要求满足可微性、凸性等条件,而传统优化算法对此有着较严格的要求;

5)MH具有全局优化性能、鲁棒性强、通用性强且适于进行并行计算的特点,而传统优化算法不具有这些优点。

MH的算法在结构、研究内容与研究方法上具有较大的相似性。但这类方法也有其固有的一些缺陷,具体表现为:

1)缺乏普遍适用的算法收敛理论;

2)缺乏完备的计算搜索及时空复杂度理论评价体系;

3)算法的理论基础还不能清楚地解释算法在应用过程中出现的各种问题;

4)算法参数的选择主要还是凭经验;

5)对算法操作的作用机理及其作用效果的分析仍不充分。

1.禁忌搜索算法(Tabu Search,TS)

禁忌搜索算法(Tabu Search,TS)是局部领域搜索算法的推广,它是由F.Glover在20世纪60年代末提出的,近年来逐步形成为一套系统的优化理论,并成功应用于求解复杂的组合优化问题。其基本思想是:采用一种灵活的对历史进行记录的技术指导下一步的搜索方向,当到达局部最优解时,禁忌搜索将搜索方向指向导致目标函数退化最小的方向上,由此避开局部最优解。在禁忌搜索法中,对每一个试验解都定义了一个邻域,然后在此邻域内搜索局部最优解。

和其他梯度类型的算法不同,禁忌搜索法允许将搜索朝目标函数退化的方向指引,这样可以避免陷入局部最优解。禁忌搜索算法的特点是采用了禁忌技术,主要有移动、禁忌表和释放准则三个基本要素,其基本原理为:首先产生一个初始解X,采用一组“移动”操作从当前解的邻域NX)中随机产生一系列试验解,选择其中最好的解作为当前解,重复迭代,直到满足一定的终止准则。

为了避免陷入局部最优解,TS方法中将最近若干次迭代过程中所实现的移动的反方向移动记录到禁忌表中,禁忌表里的移动一般不作为下一步的搜索方向,这样可以避免重新访问已经访问过的解群,从而防止循环的产生,跳出局部最优解。另外,为了尽可能不错过产生最优解的“移动”,当一个“移动”满足释放准则时,即使它处于禁忌表中,这个移动也可以实现。禁忌搜索算法的最基本的特点是:将已经执行过的移动设置为临时禁止,这样可以避免搜索重复的空间。释放准则是用来检验Tabu表中的各移动是否已经达到了释放水平。当某个移动已经满足释放准则时,说明这个移动虽然还没有在表中保存应有的迭代步数,但它可导致优化过程中有比当前解更优良的解,故应解除对其的限制。禁忌搜索方法在逼近最优解时允许解出现退化现象,这样更有利于寻找全局最优解。

尽管禁忌搜索方法的搜索速度比遗传算法快,但该方法对于初始解的依赖性较强。一个好的初始解可使禁忌搜索方法在解空间中搜索到更好的解,而一个差的初始解则会降低禁忌搜索方法的收敛速度,搜索到的解也相对较差。禁忌搜索方法的另一个缺点是搜索只是单点操作,即搜索过程中初始解只能有一个,在每代也只是把一个解移动到另一解,而不像遗传算法那样每代都是对多个解进行操作。

2.模拟退火算法(Simulated Annealing,SA)

模拟退火算法(SimulatedAnnealing,SA)是一种随机的启发式搜索方法,适用于处理非线性规划问题,能以较大的概率求得优化问题的全局最优解,理论上来说,它是一个全局最优算法,故具有相当广泛的应用前景。模拟退火算法最早的思想是由Metropolis在1953年提出的,Kirkpatrick在1983年成功将它应用在组合最优化问题中。

SA算法模拟了金属溶液冷却或退火的过程,即退火过程中能量逐渐减小,而退火结束后,金属的能量达到最小。在模拟退火算法中,利用温度这个重要的参数来控制整个求解过程,通常把优化问题的目标函数看成是退火系统能量函数,以退火温度为控制变量,其寻找基态的过程就是使目标函数极小化的过程。为了使最终解尽可能接近最优解,退火过程不能太快,但使得算法的计算时间较长。事实上,模拟退火算法计算的执行过程是一系列的“产生新解—判断—接受/舍弃”的迭代过程。模拟退火算法的特性之一就是可根据一定的概率接收目标函数值不太好的状态,即算法不但往好的方向走也可朝差的方向走,这使得算法即使落入局部最优的陷阱中,经过足够长的时间后也可跳出来从而收敛到全局最优解。在具体应用时,通常并不一定找寻最优解,而只是求出一个满意的近似最优解。

模拟退火算法能以足够高的概率收敛于全局最优点,其前提是:初始温度足够高,温度下降足够慢和终止温度足够低。实际应用中很难满足这些要求,因而其求解结果不太理想。另外它的搜索效率较低,最后输出的结果可能比中间结果差。多年来,模拟退火算法的主要改进之处在于初始温度的选择、降温策略和终止判据上。

3.遗传算法(Genetic Algorithms,GA)

遗传算法(Genetic Algorithms,GA)是由美国密执安大学J.H.Holland教授于20世纪70年代提出的一种建立在自然选择原理和自然遗传机制上的迭代自适应概率性搜索方法。遗传算法的基本思想是将达尔文进化论引入到数学理论中,通过模拟生物进化过程来达到自学习与优化的目的。这种迭代自适应概率性搜索算法含有进化过程中的信息遗传思想及生物优胜劣汰的原则。遗传算法是基于自然界中自然遗传和自然选择的机制,是一种全新的随机搜索优化方法,与传统方法相比,该方法实现简单,对目标函数不要求可导、可微,且能方便地处理优化问题中的变量离散问题并能以较大概率达到全局最优解。

由于遗传算法的这些优良特性,近年来遗传算法已经被广泛地应用于电力系统无功补偿优化的求解。遗传操作利用某种编码技术作用于被称为染色体的字符串,其基本思想是模拟由这些串组成群体的进化过程,核心操作是选择、交叉、变异。在遗传迭代过程中任何一代所得的最优解都可以作为整个问题的次优解,根据要求总能给出一个合理可行的优化解。用遗传算法进行无功补偿优化,无需求导、求逆等复导数数学运算,且可以方便地引入各种约束条件,更有利于得到最优解,适合于处理混合非线性规划和多目标优化。近年来将遗传算法引入电力系统的无功补偿优化中取得了一定的经验和成果。

遗传算法的特点是从问题解的串集开始搜索,而不是从单个解开始,覆盖面大,利于全局择优,这是遗传算法与传统优化算法的极大区别;遗传算法求解时使用特定问题的信息极少,容易形成通用算法程序;遗传算法有极强的容错能力;遗传算法中的选择、交叉和变异都是随机操作,而不是确定的精确规则。这说明遗传算法是采用随机方法进行最优解搜索,选择体现了向最优解迫近,交叉体现了最优解的产生,变异体现了全局最优解的覆盖。

文献[7]阐述了遗传算法在电力系统无功补偿优化中的应用,建立了无功补偿优化模型,给出了遗传算法应用于无功补偿优化的程序流程,对一个9节点系统分三种不同的计算方法进行了计算对比测试:常规潮流计算、传统的非线性规划法和遗传算法。测试结果表明:遗传算法可以有效地在整个解空间寻优,更有把握获得全局最优解,或者准全局最优解:算法原理和操作简单;鲁棒性好:由于每个个体都需要进行潮流计算,故遗传算法对大型电力系统所需的计算时间较长。

文献[8][9][10]也对遗传算法应用于电力系统无功补偿优化做了相似的研究。简单遗传算法一般可以以极快的速度达到最优解的90%左右,但要获得真正的最优解则要花费很长时间,因此对简单遗传算法进行改进来求解无功补偿优化问题成为研究热点。文献[11]提出了一种应用于电力系统无功补偿优化问题的改进遗传算法,在简单遗传算法的基础上,对编码方式、遗传算子以及终止判据等方面进行了改进,通过对ZEEE-14节点系统的计算分析表明要优于简单遗传算法。文献[12]提出了在不同优化阶段,对目标函数各项罚因子采用不同权重,并且构造出分阶段适应性函数,以及提出了选择式杂交方式等改进措施。通过典型算例和实际系统的测试,证明了这些改进方法对遗传算法应用于无功补偿优化计算的寻优速度和收敛特性都有明显提高。

文献[133]采用一种修正的遗传算法求解无功补偿优化问题。文中算法借助于Benders分解将原问题分解为投资子问题和运行问题;其中,运行问题用逐次线性规划法求解,而投资子问题用遗传算法求解,将二者结合起来,综合了两种方法的长处。该算法缩小了求解空间,降低求解维数,加快了收敛速度。文献[14]以降低网络损耗为目标函数,采用二进制编码的优化编码方式,把所有子串中的对应位码按一定的方式排列,分成不同区域,先对各区域搜索,最后对所有区域进行搜索,扩大了遗传算法的搜索空间。另外,引进了可变的变异概率,避免了算法早熟。

马晋瞍等学者在国内较早利用遗传算法求解电力系统无功补偿优化问题。在优化编码中引入了一个分解编码结构,改善了大系统的全局最优搜索。在变异概率的取值上提出了可控变异概率的原则,以避免寻优陷于局部极小点,推动了遗传算法在实际系统优化问题中的应用。

文献[16]对交叉算子与变异算子做了不同于以前的改进。将每个控制变量看作一个基因片。交叉是取两个父辈个体,将对应分量求平均值作为新个体各分量的值。变异则是随机产生各分量的值,替换要变异的分量,优秀个体直接到下一代的方法,能保证历代出现的好方案均不会立即丢失,且可得到一批有竞争力的次优方案。文献[17]以鄂州电网无功补偿优化系统的实例出发,作者论述了基于GA的无功补偿优化方法的程序流程,着重解决了在实际应用时遇到的几个问题,即针对无功补偿优化中离散变量的处理提出了一种映射编码方法;改进了目标函数的模;讨论了相关参数的选择,在实际应用中取得了较好的效果。

遗传算法的缺点是在进化搜索过程中,每代总要维持一定规模的群体,若群体规模小,含有的信息量也少,不能使遗传算法的作用得到充分发挥;若群体规模大,包含的信息量较大,但计算次数会急剧增加,因此限制了遗传算法的使用。另一个缺点是“早熟”,造成这种成熟前收敛的原因:遗传算法操作的交叉算子使群体中的染色体具有局部相似性,父代染色体的信息交换量小,从而使搜索停滞不前;变异概率太小,以至于不能驱动搜索转向其他的解空间进行搜索。此外,遗传算法的爬山能力较差。

利用前面提到的各种方法解决电力系统无功补偿优化问题时,各有其自身的优缺点,可根据需要选择不同的优化方法。众多学者不但对各个优化算法从操作上进行有效的改进,鉴于遗传算法的寻优特点,有不少学者融合这些优化方法,构成基于遗传算法的混合算法,来提高遗传算法的运行效率和求解质量。

文献[18]提出一种退火选择遗传算法,应用于解决大规模电力系统的无功补偿优化问题,该算法引入模拟退火中的退火因子加入到选择操作中,成为整体退火选择,经算例分析,该算法的收敛速度及各种性能均优于简单遗传算法。文献[19]比较了遗传算法与模拟退火的共性和异性,利用各自的优点提出了两种混合寻优法并应用于地区电网无功补偿优化,算例结果表明,两种算法的寻优性能和计算速度均优于模拟退火算法。文献[20]结合电力系统无功补偿优化的实际问题,提出了基于禁忌遗传算法的电力系统无功补偿优化方法,并采用混合编码方式,通过与简单遗传算法、禁忌搜索算法相比较,证明了方法的可行性和有效性。文献[21]详细介绍了禁忌遗传算法混合优化策略的具体实现形式,让算法既具有禁忌搜索优良的局部搜索能力,又实现遗传算法的并行搜索方式,实现逆调压要求,保证了电压合格,在优化速度和优化效果上比简单遗传算法有很大改进。对于无功补偿优化问题,遗传算法虽然解决了传统优化方法难以解决的局部最优和离散变量难于精确处理等方面的问题,但其也存在局部搜索能力差,寻优速度慢,计算时间长等缺陷。

4.粒子群算法(PSO)

粒子群算法是模仿鸟群寻找食物的过程发展而来的,通过记忆与反馈机制实现了高效的寻优搜索。由于该方法模仿的是生物群落的活动,因而非常适于进行并行计算,对于解决大规模数学优化问题具有很快的计算速度及较好的全局寻优能力。该算法具有并行性好、鲁棒性强的特点,能以较大概率找到问题的全局最优解,实现简单,收敛速度快,既适合进行理论研究,又适合工程计算。PSO算法在函数优化,神经网络设计、分类、模式识别信号处理机器人技术等许多领域都得到了成功的应用。该算法目前已被“国际演化计算会议”列为讨论专题之一。(www.daowen.com)

PSO算法的搜索过程模仿了鸟群及鱼群的觅食过程,具有鲜明的生物社会背景:认知行为和社会行为,即在寻求一致认知过程中,个体除了记住它们自己的经验,又同时考虑其他同伴的经验;向自己的经验学习,又向同伴学习,正是这种学习机制使其区别于其他主要以随机搜索为特征的现代启发式算法。

PSO算法同GA类似,开始时随机生成粒子的初始位置Xi=(xi1xi2,…,xim),(i=1,2,…,n),n为群中粒子数,m为粒子维数。但与GA算法不同的是,PSO算法不需要进行编码,并且每个粒子都随机分配一个初始速度Vi=(vi1vi2,…,vim),(i=1,2,…,n)。在计算过程中,粒子受三个因素影响在寻优空间中移动:一是粒子的当前速度Vi,二是粒子本身曾到过的最优点Pi,三是总群(全局)的最优点Pg。粒子每次迭代时不断改变速度向当前Pi和Pg移动。

PSO算法有一些重要的参数,由于这些参数是在PSO发展过程中经过不断地尝试得出的经验值,针对不同的求解对象,其参数设定也不尽相同。因此,对PSO算法改进的探讨有许多是针对其参数进行的,主要包括惰性权重、认知权重、社会学习权重、随机因子等参数对搜索性的影响。实际上,普遍适用的参数设定是没有的,在计算时,需要针对不同特征的优化目标函数、约束条件进行一定的调整。

(1)基本粒子群算法

无功规划问题可表述为如下形式:

minfX) (6-29)

s.t.

gX)≥0 (6-30)

hX)=0 (6-31)

X=(x1x2,…,xn)>0 (6-32)

同其他现代启发式算法类似,PSO不能直接处理约束条件,因此通常对不等式约束g(X)都采用罚函数形式将其加入到目标函数中作为惩罚项;而等式约束h(X)则是直接将优化变量代入其中,如果满足h(X)=0,为可行解,则求其目标函数值,如不满足h(X)=0,为不可行解,直接将其适应度值赋予一罚值;变量的上下限约束可通过直接限制变量在迭代时的取值范围来实现,当变量大于上限时取其为上限值,小于下限时取其为下限值。则PSO优化的适应度函数如下:

minFX=fX+U{min[gX),0]}2 (6-33)

基本PSO算法流程如下:

1)随机生成初始粒子位置Xi=(xi1xi2,…,xim)和速度Vi=(vi1vi2,…,vim),(i=1,2,…,n);

2)验证等式约束及变量上下限约束;

3)将粒子位置Xi代入优化适应度函数FX),计算各粒子适应度值;

4)各粒子同自身曾得到的最优粒子Pi适应度值比较,如比Pi适应度值小(最小化),则用当前值适应度值替换自身最优适应度值,并用当前粒子位置更新自身最优粒子位置Xibest

5)各粒子适应度值与全局最优粒子Pg适应度值进行比较,如比Pg适应度值小(最小化),用此值替换全局最优适应度值,并用此粒子位置更新全局最优粒子位置Xgbest

6)用式(6-32)和式(6-33)更新各粒子速度和位置

978-7-111-37480-0-Chapter06-27.jpg

式中 w——速度惰性权重,通常取0.4~0.9;

c1——认知权重;

c2——社会学习权重,c1c2通常取2;

r1r2——(0,1)间随机数,上标表示迭代次数;

n——粒子数;

m——粒子维数。

vidxidpid——第i个粒子的第d维速度、当前坐标和最优坐标;

pgd——全局最优粒子的第d维坐标。

7)返回2),直到满足一定的收敛判断条件。

基本PSO算法流程如图6-6所示。

(2)粒子群算法所存在的问题

与传统的优化计算方法相比,PSO算法不需要目标函数具有连续、可导条件,即使目标函数满足连续、可导条件,但对于多峰问题,基于梯度的算法很难搜索到不同的局优点,因而无法判断出是否已搜索到全局最优点。

与其他现代启发式算法相比,PSO的最大特点就是它的学习机制,GA算法主要是遗传变异过程,多个个体间的学习机制不很显著;TS是随机的搜索,它的经验是以禁忌表体现的,也缺乏群体的学习过程。PSO算法这种以学习机制为基础的优化算法体现了社会群体在学习基础上的高速发展、进化过程,因而其计算速度很快。

但PSO算法缺乏有效的变异或者说独立学习思考的机制,将GA和PSO相类比,PSO只包括了GA的选择交叉过程,虽然PSO的学习机制强于GA,但PSO却缺少了GA的变异机制,因此当粒子数过少时,它不能搜索足够的可行空间。同时,它的搜索过程易受初始粒子分布的影响。所以如何防止其陷入局优是提高PSO算法性能的关键。另外,由于PSO算法的参数、应用模式受具体优化模型的影响,必须针对具体的工程问题对其进行调整和改进,使其适用于特定领域问题的研究。

978-7-111-37480-0-Chapter06-28.jpg

图6-6 基本PSO算法流程

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈