GA/SA/ACO不同优化算法的对比分析简介

目录

1.GA算法的优化过程和原理

2.SA算法的优化过程和原理

3 Anti算法的优化过程和原理

4.仿真对比


1.GA算法的优化过程和原理

在这里,我们使用一种改进遗传算法进行权值的快速高效优化。

首先看下传统的遗传算法,遗传算法优化的过程如下所示:

 1.选择问题解的一个编码,给出一个有N个染色体的初始群体pop(1),t=1。

2.对群体中的每一个染色体 ,计算它的适应函数值f(xi)。

3.若停止规则满足,则算法停止,否则计算概率P,并以此概率分布,从pop(t)中随机选取N个染色体构成一个新的种群newpop(t)。

4.通过交叉(交叉概率为),得到N个染色体的crosspop(t+1)。

5.以较小的变异概率 ,使得某染色体的一个基因发生变异,形成新的群体mutpop(t+1)。  令t=t+1,pop(t)=mutpop(t),重复第(2)步。

其详细步骤如下:

      而一种好的改进的遗传算法对进化具有导向作用。能够明显减少搜索的盲目性,增大算法搜索到最优解的概率,可以很大程度上避免基本遗传算法的欺骗问题,避免陷入局部最优,提高全局寻优能力。

传统的GA在解决时存在如下问题:

      首先,模型复杂,参数太多难以达到优化目的,优化速度慢且达不到最优解,在本文中,我们需要同时优化5个权值,参数数目属于中等个数;

      其次,约束条件复杂,算法在收敛的时候很难满足全部约束条件。本文需要优化的参数,每个参数都在0到1的范围之内,而且权值之和为1,约束条件较多。因此,需要一种改进的遗传算法,达到优化的效果。

      由于传统的GA算法的种群规模是有限的,通过复制、交叉、变异和适度值选择之后,会使高于种群平均适应度的个体在下一代中得到更多的复制,这样通过多次迭代之后,这类个体在种群中会占有优势,然后GA算法会强化这种优势使得种群开始收敛,并最后收敛到某一个值,得到最后的优化解,这就导致了GA算法的局部收敛。这种情况下得到的非全局最优收敛解存在进化后期搜索效率降低,个体适度值计算时间过长等缺陷。

2.SA算法的优化过程和原理

        对固体退火过程的研究给人们以新的启示。1982年,Kirkpatrick等首先意识到固体退火过程与组合优化问题之间存在的类似性,Metropolis等对固体在恒定温度下达到热平衡过程的模拟也给他们以启迪:应该把 Metropolis准则引入到优化过程中来。得到一种对Metropolis算法进行迭代的组合优化算法,因这种算法模拟固体退火过程,故称之为“模拟退火算法”。

     在模拟退火算法中,设优化问题的控制参数为时的一个解及其非负目标函数分别与固体的在某一温度下的一个微观状态及其能量等价,设随着算法进程递减其值的控制参数相当固体退火过程中的温度的角色,则对于控制参数的每一取值,算法持续进行“产生新解—判断—接受/舍弃”的迭代过程就对应着固体在某一恒定温度下趋于热平衡的过程,也就是执行了一次Metropolis算法。与Metropolis算法从某一初始状态出发,通过计算系统的时间演化过程,求出系统最终达到的状态相似,模拟退火算法从某个初始解出发,经过大量解的变换后,可以求得给定控制参数值时组合优化问题的相对最优解。然后减少控制参数的值,重复执行Metropolis算法,就可以在控制参数趋于零时,最终求得组合优化问题的整体最优解。由于固体退火必须“徐徐”降温,才能使固体在每一温度下都达到热平衡,最终趋于能量最小的基态,控制参数的值也必须缓慢衰减,才能确保模拟退火算法最终趋于组合优化问题的整体最优解集。

       模拟退火算法用Metropolis算法产生组合优化问题解的序列,并由与Metropolis准则对应的转移概率:

        确定是否接受从当前解到新解的转移。式(1.2)中的表示控制参数。开始让取较大的值(与固体的熔解温度相对应),在进行足够多的转移后,缓慢减少的值(与“徐徐”降温相对应),如此重复,直至满足某个停止准则是算法终止。因此,模拟退火算法可视为递减控制参数值时Metropolis算法的迭代。图1.1和图1.2描述了固体退火过程与模拟退火算法之间的相似性。 

图1-1 固体退火过程示意图

图1-2  模拟退火算法流程示意图

 

       模拟退火算法依据Metropolis准则接受新解,因此除接受优化解外,还在一个限定范围内接受恶化解,这正是模拟退火算法与其他局部搜索算法的本质区别所在。开始时值大,可能接受较差的恶化解;随着值的减少,只能接受较好的恶化解;最后在值趋于零时,就不再接受任何恶化解了。这就使模拟退火算法既可以从局部最优的“陷阱”中跳出,更有可能求得组合优化问题的整体最优解,又不失简单性和通用性。

与同类方法相比,SA算法具有以下优缺点:

优点:高效,灵活,通用,初值鲁棒性强,适用于并行处理,可用于求解复杂的非线性优化问题。

缺点:由于要求较高的初始温度、较慢的降温速率、较低的终止温度,以及各温度下足够多次的抽样,因此其收敛速度慢,执行时间长,算法性能与初始值有关及参数敏感等缺点。另外如果降温过程过快,很可能得不到全局最优解。

1.模拟退火算法存在的问题:

返回一个高质近似解的时间花费较多,当问题规模不可避免地增大时,难于承受的运行时间将使算法丧失可行性。因此,必须探求改进算法实验性能、提高算法执行效率的可行途径,

2.主要解决方法:

1)选择适当的邻域结构和随机数序列可以提高解质并缩减运行时间,这需要大量试验。适合于对优化问题较了解的优化控制问题。

2)选择合理的冷却进度表可使算法的执行过程更为有效。这将在后面详细讨论。

3)模拟退火算法(SAA)的执行过程是一系列“产生新解——判断——接受/舍弃”的迭代过程,提高各个环节的时效可以缩减运行时间,而不会影响最终解的质量。

4)改变算法进程的各种变异方法,如有记忆的SAA(记取算法进程中的最优近似解)、回火退火法(在解质不能改进时使控制参数值增大以跳离“陷井”)、加温退火法(先升温后退火)等,这将在后面详细讨论。

5)大规模并行计算能够真正缩减算法的运行时间。

3.有待于解决的问题:

1)模拟退火算法(SA)的控制参数对算法性能有一定的影响,至今还没有一个适合各种问题的参数选择方法,只能依赖于问题进行确定。对于这些参数的选择还需要进一步研究,确定适合优化问题的参数选择范围。

2)模拟退火算法的应用虽然非常广泛,但它的理论还不够完善,故而阻碍发展,因此有必要深入其理论研究。

3)寻求新的数学工具和分析方法,建立算法复杂性、收敛性和鲁棒性的分析研究理论,对算法收敛速度和优化度进行估计。

4)基于数学和计算机进行研究,尤其是算法的比较研究,提供控制参数选取的理论指导和规律性结论,提出搜索进入局部极小的合理判断准则。

3 Anti算法的优化过程和原理

        蚁群算法是对自然界蚂蚁的寻径方式进行模似而得出的一种仿生算法。蚂蚁在运动过程中,能够在它所经过的路径上留下一种称之为外激素(pheromone)的物质进行信息传递,而且蚂蚁在运动过程中能够感知这种物质,并以此指导自己的运动方向,因此由大量蚂蚁组成的蚁群集体行为便表现出一种信息正反馈现象:某一路径上走过的蚂蚁越多,则后来者选择该路径的概率就越大。

        基本模型由下面三个公式描述:

 蚁群优化算法,式中:

m为蚂蚁个数;n为迭代次数;i为蚂蚁所在位置;j为蚂蚁可以到达的置;

        蚁群算法具有如下一些优点:

①通用性较强,能够解决很多可以转换为连通图结构的路径优化问题;

②同时具有正负反馈的特点,通过正反馈特点利用局部解构造全局解,通过负反馈特点也就是信息素的挥发来避免算法陷入局部最优;

③有间接通讯和自组织的特点,蚂蚁之间并没有直接联系,而是通过路径上的信息素来进行间接的信息传递,自组织性使得群体的力量能够解决问题。

但是,基本蚁群算法也存在一些缺点:

①从蚁群算法的复杂度来看,该算法与其他算法相比,所需要的搜索时间较长;

②该算法在搜索进行到一定程度以后,容易出现所有蚂蚁所发现的解完全一致这种“停滞现象”,使得搜索空间受到限制

4.仿真对比

将三组算法的仿真结论对比放到如下的表格中去:

产品1:

GA

1     2     1     3     1     2     1     1     3     2     1     3     2     1     2     1     3     2     1     3......

SA

1     1     1     2     1     2     1     2     1     1     2     1     2     1     1     2     1     2     3     1......

ANTI

1     1     2     1     1     2     3     1     1     2     3     2     3     2     3     2     3     1     3     1......

产品2:

GA

2     1     2     1     2     1     2     1     2     1     2     1     2     1     2     1     2     1     2     1......

SA

2     2     2     1     2     2     1     2     1     2     1     2     1     2     2     1     1     2     1     1......

ANTI

2     2     1     2     2     1     1     2     2     2     1     1     2     1     2     2     1     1     1     2......

产品3:

GA

3     3     2     3     3     2     3     2     3     2     3     2     3     2     3     2     3     3     2     3......

SA

3     3     3     3     3     3     3     3     3     3     3     3     2     3     2     3     2     3     2     3......

ANTI

3     3     3     3     3     2     3     3     3     2     3     2     3     2     3     2     3     2     3     3......

        这里,以产品1为例子,从产品1的三个算法的对比结果可知,GA算法,产品1充分利用三种不同的机器的容量和空闲期进行合理的变换生产。SA算法中,从其结论可知,通过SA控制算法,其在开始阶段,只有1号机器和2号机器之间进行生产。而对于ANTI,则优化结果,则是三种机器之间频繁的切换,导致最后的总的耗时较大。

        通过上面的仿真分析可知,三种算法的性能优劣为GA > ANTI > SA。采用遗传GA算法,最后的最优时间为2505。采用蚁群优化算法,最后的最优时间为2684,。采用SA退火算法,最后的最优时间为2992。

猜你喜欢

转载自blog.csdn.net/ccsss22/article/details/129848215