摘要:智能优化算法又称现代启发式算法,是一种具有全局优化性能、通用性强、适合并行处理的算法。 本文主要给大家带来遗传算法和蚁群算法的详细解读。 本文来自华为云社区《智能优化算法(1)——遗传算法》,原文作者:我是个大西瓜。
智能优化算法又称现代启发式算法,是一种具有全局优化性能、通用性强、适合并行处理的算法。 该算法一般具有严密的理论依据,不仅仅依靠专家经验,在理论上一定的时间内可以找到最优解或近似最优解。 常用的智能优化算法有遗传算法、模拟退火算法、禁忌搜索算法、粒子群算法、蚁群算法。
本文主要给大家带来遗传算法和蚁群算法的详细解读。
1 .遗传算法
遗传算法(Genetic algorithm,GA )对模拟生物在自然环境中遗传和进化的自适应)遗传参数的自适应调整)全局优化)
1.1编码方法算法模型对个体(独立的,即解决方案)进行二进制编码(01编码)、自然数编码、实数编码、树编码。 对个体进行适应度计算时需要进行解码,实现问题的解空间与算法搜索空间的相互转换。
1.2每个适应度函数个体都有适应度函数(Fitness ),定量评价该个体的优劣。 适应度函数是算法执行“适者生存、优胜劣败”的依据。 适应度函数需要根据目标函数来设定,g(x ) g ) x )表示目标函数,g(x ) g ) x )表示适应度函数,从目标函数g(x ) g(x )映射到适应度函数g(x ) x )的过程为3353535550
对于最大值优化问题,可以将g(x ) g ) x )直接设置为适应度函数g(x ) g ) x )。 即,g ) x )=g ) x ) g )=g ) x ); 针对最小值优化问题,g(x )=-(ming ) x (g ) x )=ming ) x ); 遗传算法规定适应度函数为正值,但上述两式不能保证,需要加上最小值或最大值和分段函数。
1.3选择操作选择(Selection )从当前群体中选择适应度函数值大的个体,这些优良个体有可能作为母体繁殖到下一代。标定)
虽然有很多选择算法,但最基本的是轮盘赌算法:
其中,P_iPi表示选择个体的概率; F_iFi表示个体的适应度函数值,NN表示种群的规模。
根据选择概率P_iPi对圆盘形轮盘进行NN分割,第个扇形的中心角为2pi P_i2Pi。 随机产生服从0到1之间均匀分布的数rr,如果设落到第ii个扇形的累计概率为Q_i=sum_{j=1}^i P_jQi=j=1i Pj,则选择个体ii,重复NN次则选择NN个个体
1.4通过交叉操作两个个体,交叉(Crossover )交换染色体部分基因,重组形成新个体,即新解。 在交叉之前需要随机配对。
一般来说,对于二进制编码的个体,采用的是从两个成对字符串中随机选择一个或多个交叉点,调换部分字符串生成新字符串的点交叉的方法
两个个体是否进行交叉操作取决于交叉概率,取个体适应度函数越大,被选择作为父代的概率越大,一般取0.9左右的值。
1.5变异操作生物进化过程中,一条染色体可能发生基因突变(Mutation ),产生新的染色体,这也是产生新解的另一个重要途径。较大的交叉概率可以使遗传算法产生更多新解,保持群体多样性,并能防止算法过早成熟,但是交叉概率过大会使算法过多搜索不必要的解区域,消耗过多的计算时间
个体能否变异取决于变异概率,过低则部分有用基因不能进入染色体,过了不能提高解质量的大会,子代失去双亲优良基因,算法失去了以往检索经验的学习能力,一般变异概率取0.005左右。
值得注意的是交叉操作相当于进行全局探索,变异操作相当于进行局部开发,这也是智能优化算法必备的两种搜索能力
算法的总体流程如下图所示。
1.6算法分析了好的智能算法,关键是全球搜索与局部开发能力的平衡。 全球搜索的目的是更全面地搜索解空间,局部开发的主要目的是更细致地搜索已知区域,希望得到质量更好的新解。
遗传算法可以通过设定选择压力来平衡全局搜索和局部开发。 在算法执行初期阶段,设置较小的选择压力可以使算法具有较好的全局搜索能力,进行广域搜索; 算法运行后,设定较大的选择压力,算法可以进行比较精细的局部搜索。
选择压力的设定可以根据适应度函数标定,选择策略。
适应度函数的标定,在算法初期,必须减小个体适应度的差异,减少淘汰率; 执行算法的最后阶段,扩大个体适应度的差距,保证算法能够在适应度高的个体对应解区域集中搜索,加快算法的收敛速度
。常用方法有:选择策略,低选择压力可选择多种类型的个体,加强对未知解区域的搜索,避免算法陷入局部极值,但算法优化速度会变得缓慢;高选择压力可选择优良个体,加快优化速度但群体多样性会下降,减少搜索到全局最优值的概率。除了轮盘赌算法外,选择策略还有:
分级选择法锦标赛选择法Boltzmann选择法2.蚁群算法 2.1 蚁群优化算法蚁群优化(Ant Colony Optimization, ACO)算法是源自大自然生物界的仿真类算法,其思想吸收了蚁群觅食过程中的行为特性。蚁群算法在TSP问题、二次分配问题、图着色问题、车辆调度问题、通信网络中的负载均衡问题等表现出良好的优化性能。
大自然中的蚂蚁没有视觉,依赖于同类散发在环境中的信息素决定自己何去何从,孤立的蚂蚁沿着同伴的信息素轨迹移动,同时释放自己的信息素,从而增强了该路线上的信息素数量,随着越来越多的蚂蚁通过该路线,一条较佳的路线就形成了(这条路径不一定最短,但对于NP-hard问题而言足够了)。
2.2. 算法模型以旅行商问题(Traveling Salesman Problem, TSP)为例,在图论中称为最小Hamilton问题。
蚁群优化算法基本模型:
蚂蚁群体总是寻找最小费用可行解蚂蚁具有记忆性,存储当前路径的信息,构造可行解、评价解的质量、路径反向追踪当前状态的蚂蚁可以移动到可行领域任意一点每个蚂蚁赋予一个初始状态和若干个终止条件蚂蚁从初始状态到可行领域状态,以递推方式构造解,当有一个蚂蚁满足至少一个终止条件时构造过程结束蚂蚁按某种概率决策规则移动至领域结点移动后信息素轨迹被更新,过程称为“单步在线信息素更新”一旦构造出一个解,蚂蚁沿原路方向追踪,更新信息素轨迹,称为“在线延迟信息素更新”2.3 算法分析算法复杂度是O(nccdot n^2cdot m)O(nc⋅n2⋅m),m为蚂蚁个数,nc为迭代次数或者搜索次数,n为顶点数。算法运行效果受到alpha, betaα,β等参数影响,其中betaβ的影响在于体现信息素轨迹的持久性,数值过小意味着信息消失过快;数值过大容易落入局部最优点,因此其数值通常取0.7左右。
在基本的蚁群优化算法上,可以与其他启发式算法相结合,最典型的就是嵌入局部搜索算法,在各个蚂蚁形成自己的路线后,用局部调整方法(2-opt, 3-opt)加以改进,此外,与遗传算法、模拟退火和禁忌搜索等结合也有一定的成效。
混合蚁群优化算法主要步骤:
Begin蚂蚁初始化;LOOP:quad蚂蚁路径构造;quad对某个蚂蚁实施局部搜索算法quad蚂蚁轨迹更新quad若迭代次数未到,转LOOP;输出当前最好解End
点击关注,第一时间了解华为云新鲜技术~