优化算法有哪些(最优化理论的三大经典算法)
此账号为华为云开发者社区官方运营账号,提供全面深入的云计算前景分析、丰富的技术干货、程序样例,分享华为云前沿资讯动态
本文分享自华为云社区《智能优化算法(1)——遗传算法》,原文作者:我是一颗大西瓜 。
智能优化算法又称现代启发式算法,是一种具有全局优化性能、通用性强且适合于并行处理的算法。这种算法一般具有严密的理论依据,而不是单纯凭借专家经验,理论上可以在一定的时间内找到最优解或近似最优解。常用的智能优化算法有:遗传算法 、模拟退火算法、禁忌搜索算法、粒子群算法、蚁群算法。
本文主要为大家带来遗传算法和蚁群算法的详细解读。1. 遗传算法
遗传算法(Genetic algorithm, GA),模拟生物在自然环境中遗传和进化的自适应(对遗传参数的自适应调整)全局优化(随机变异不断寻找全局最优解)算法,基本思想是"优胜劣汰",是应用最广泛和效果最显著的智能优化算法。1.1 编码方法
算法模型通过对个体(individual,也即solution)进行二进制编码(01编码)、自然数编码、实数编码和树型编码。在对个体进行适应度计算时需要进行解码,实现问题的解空间与算法搜索空间的相互转换。1.2 适应度函数
每个个体都有一个适应度函数(Fitness),对这个个体的优劣进行定量评价,适应度函数是算法执行"适者生存、优胜劣汰"的依据。适应度函数需要根据目标函数进行设置,令g(x)g(x)表示目标函数,令G(x)G(x)表示适应度函数,从目标函数g(x)g(x)映射到适应度函数G(x)G(x)的过程称为标定。
对于最大值优化问题,可直接将g(x)g(x)设定为适应度函数G(x)G(x),即G(x)=g(x)G(x)=g(x);对于最小值优化问题,G(x)=-\min g(x)G(x)=−ming(x);在遗传算法规定中,适应度函数为正值,但上述二式无法保证,因此需要加上最小值或者最大值以及分段函数。1.3 选择操作
选择(Selection)是从当前群体中选择适应度函数值大的个体,这些优良个体有可能作为父代繁殖下一代,个体适应度函数越大,被选择作为父代的概率越大(有可能!)
选择算法有很多,最基本的是轮盘赌算法:
P_i =\frac{F_i}{\sum_{i=1}^{N}F_i}Pi=∑i=1NFiFi
其中,P_iPi表示个体被选择的概率;F_iFi表示个体的适应度函数值;NN表示种群规模。
根据选择概率P_iPi将圆盘形赌轮分为NN份,第ii个扇形的中心角为2\pi P_i2πPi。随机产生0到1之间服从均匀分布的数rr,落在第ii个扇形的累计概率为Q_i = \sum_{j=1}^i P_jQi=∑j=1iPj,则选择个体ii,重复NN次,就可以选择NN个个体。1.4 交叉操作
两个个体通过交叉(Crossover)互换染色体部分基因而重组产生新的个体,也就是产生新解。交叉前需要进行随机配对。
一般情况下,对二进制编码的个体采用点交叉的方法,也就是在两个配对字符串随机选择一个或者多个交叉点,互换部分子串从而产生新的字符串
两个个体是否进行交叉操作由交叉概率决定,较大的交叉概率可以使遗传算法产生更多新解,保持群体多样性,并能防止算法过早成熟,但是交叉概率过大会使算法过多搜索不必要的解区域,消耗过多的计算时间,一般取值在0.9左右。1.5 变异操作
生物进化中,某些染色体可能会发生基因突变(Mutation),从而产生新的染色体,这也是产生新解的另外一种重要方式。交叉操作相当于进行全局探索,变异操作相当于进行局部开发,这也是智能优化算法必备的两种搜索能力。
个体能否变异取决于变异概率,过低会使得部分有用基因无法进入染色体,不能提高解的质量;过大会使子代丧失父代优良基因,导致算法失去从过去搜索经验的学习能力,一般情况下,变异概率取值为0.005左右。
值得注意的是,Rudolph通过马尔科夫链相关理论证明仅采用选择、交叉和变异三个操作的遗传算法不能收敛到全局最优解,而采用精英保留策略的遗传算法是全局收敛的。
算法的整体流程如下图所示:
1.6 算法分析
一个好的智能算法,关键在于全局探索和局部开发能力的平衡。全局探索的目的是对解空间进行更全面的探索,局部开发主要目的是对已知区域进行更精细的搜索,希望获得质量更好的新解。
遗传算法可以通过设置选择压力实现全局探索和局部开发的平衡。在算法运行初始阶段,设置较小的选择压力可以使算法具有较好的全局探索能力,进行广域搜索;算法运行后期,设置较大的选择压力可以使算法进行比较精细的局部搜索。
选择压力的设置可以从适应度函数标定和选择策略。
适应度函数标定,在算法早期,应当缩小个体适应度差距,减少淘汰率;算法运行最后阶段,扩大个体适应度差距,保证算法能在高适应度个体对应解区域进行集中搜索,加快算法收敛速度。常用方法有:线性尺度变换 H= aF bH=aF b\sigmaσ截断法 H= F (\hat F - c\sigma)H=F (F^−cσ)幂律尺度变换 H= F^\alphaH=Fα
选择策略,低选择压力可选择多种类型的个体,加强对未知解区域的搜索,避免算法陷入局部极值,但算法优化速度会变得缓慢;高选择压力可选择优良个体,加快优化速度但群体多样性会下降,减少搜索到全局最优值的概率。除了轮盘赌算法外,选择策略还有:分级选择法锦标赛选择法Boltzmann选择法2. 蚁群算法2.1 蚁群优化算法
蚁群优化(Ant ColonyOptimization, ACO)算法是源自大自然生物界的仿真类算法,其思想吸收了蚁群觅食过程中的行为特性。蚁群算法在TSP问题、二次分配问题、图着色问题、车辆调度问题、通信网络中的负载均衡问题等表现出良好的优化性能。
大自然中的蚂蚁没有视觉,依赖于同类散发在环境中的信息素决定自己何去何从,孤立的蚂蚁沿着同伴的信息素轨迹移动,同时释放自己的信息素,从而增强了该路线上的信息素数量,随着越来越多的蚂蚁通过该路线,一条较佳的路线就形成了(这条路径不一定最短,但对于NP-hard问题而言足够了)。2.1.1算法模型
以旅行商问题(TravelingSalesman Problem, TSP)为例,在图论中称为最小Hamilton问题。
记G = (V,E)G=(V,E)为赋权图,V=(1,2,3,...,N)V=(1,2,3,...,N)为顶点集,EE为边集,各顶点间的距离d_{ij}dij已知(d_{ij}
大型游戏有哪些(大型电脑游戏排行榜)对于忠实游戏迷或者是那些游戏发烧友们来说,只有大型3A游戏才能玩,这样的游戏才能更好地去体验,那除了玩过像什么荒野大镖客战地极品飞车这一类的大型3A游戏外,你们还玩过哪些同类的呢?
乌龟怎么看公母(刚出生乌龟怎么分公母)如何区分乌龟的性别无论你是否准备饲养乌龟,如果你不知道雌龟和雄龟的区别所在,那要想辨别乌龟的性别可是很难的。在本文中,你将了解到一些简单的区分乌龟性别的方法。结合各种性别标志得到结
家里为什么不能养双猫(佛教说人养猫的缘分)老一辈口中的双猫独狗,越过越有,这句话有没有道理?民间俗语蕴含着劳苦人民的智慧结晶,囊括着人们生活的方方面面,经过口口相传,竟然也留下了许多!不仅给后人们一些警示和提醒,同时对人们
维生素c吃多了会怎么样(维生素c一天吃几粒)引言随着社会的发展,生活水平的提高,现在的人们越来越注重自己的身体健康情况。除了锻炼和饮食方面比较注意外,还有一部分朋友开始服用保健品。相信有不少人都认为维生素类都是补品吧,毕竟补
简单的来给大家介绍下OPPOReno3怎么设置解锁密码最近发现很多网友们对于OPPOReno3怎么设置解锁密码问题都非常关注,而我们现在的生活基本上也都离不开手机,想要了解最新的信息也都是直接在手机上进行了解,那么既然现在大家都想要了
独立显卡怎么看(独立显卡后面的数字是啥意思)关于电脑显卡,首先就是要知道,电脑显卡的功能是什么?显卡的功能显卡的作用就是把电脑系统的信息进行转换驱动显示器,承担输出显示图形的任务,而且向显示器提供扫描信号,控制显示器的正常显
wednesday怎么读(show怎么读英语发音视频)本节课内容理解几种不同的时间表达,总结英语里从微秒到一千年的时间单位课前说明针对前面几课内容,有朋友反馈说,单独的单词出现得越来越少了,标注国际音标的单词越来越少了。在这里略作说明
excel除法怎么用(除在excel中怎么表达)在Excel表格中要对整个表格中的数据进行批量处理,比如让Excel中有数值的单元格全部除以10,有什么小技巧可以快速解决以上的问题呢?很简单,具体的操作方法如下。1在一个新的单元
怎么用excel(怎么用excel做甘特图)在项目管理中经常会使用甘特图。在Excel中制作甘特图非常简单,可以使用条形图,柱形图,可以使用条件格式,函数等等,还有其他许多方法。今天我给大家介绍一种比较简单快捷的方法01。数
键盘锁是哪个键(笔记本电脑键盘锁是哪个键)主题颜色在个性化中可以设置主题颜色及Windows颜色,让你的系统颜色,浏览器颜色以及输入法颜色变得更加个性化,长时间看电脑屏幕后改变一下颜色也会有一定的保护视力的作用。浏览器系统
英国人用英语怎么说(british)每个群体都有其忌讳之处,英国人也是一样,那么,英国人忌讳哪些事情呢?一不要称呼他们为英国人虽然很多其他国家的人都称呼所有英国人为英国人(England),但是,对于英国人而言,他们
怎么办爸爸(爸爸怎么整)儿子今年参加高考,我一直跟他都是和风细雨的说话,高考分数一出来431分,我以为还可以,总忙于工作,这几天就抽出时间来啥也不干,专门陪他散心,咱是农民,也不懂得以往高考会是什么分数最
怎么吹口哨不用手(口哨的基本功怎么练)流氓哨不流氓,你也能用流氓哨演奏出优美的歌曲,它有个优雅的名字叫指笛在前面的文章里,给大家介绍了开始发声吹响双手四指手势单手双指手势等内容,不知道你吹响了没有?如果能吹响了,说明你
李峤怎么读(古诗风(唐)李峤朗诵)一年级上册经典诵读chl敕勒歌nnbichomn(南北朝民歌)chlchun敕勒川,ynshnxi阴山下。tinsqinl天似穹庐,lnisy笼盖四野。tincncn天苍苍,
i5347怎么样(i5347s怎么样)1i58400与Ryzen52600参数对比回顶部PConline评测今年四月到八月这段时间,i58400散片最低价曾下潜到800多块,当时配个便宜的B360和GTX1066,简直
圜怎么读(何方圜怎么读)原创牛汝辰昆仑山是中国神话系统里最重要的神山。原始的宇宙观常把最高的山作为神圣的地方。黄帝族华夏集团崇拜昆仑与昆仑是高山有关,高山是最接近天空的,最可能被想象为天帝和群神在下界的行
女友查微信聊天记录(如何恢复微信聊天记录)女友查微信聊天记录(如何恢复微信聊天记录)微信现已成为我们最常用的谈天东西,因为微信的运用率十分高,我们也常常会收拾一下微信谈天记载和其他软件的缓存文件来腾出手机空间。但有时分我们
女生终结微信聊天记录怎么查(怎么样查找聊天记录微信)女生终结微信聊天记录怎么查(怎么样查找聊天记录微信)微信现已成为咱们最常用的谈天东西,由于微信的运用率非常高,咱们也常常会拾掇一下微信谈天记载和其他软件的缓存文件来腾出手机空间。但
宁波假名媛微信聊天记录怎么查(查微信全部聊天记录)宁波假名媛微信聊天记录怎么查(查微信全部聊天记录)微信现已成为我们最常用的谈天东西,因为微信的运用率十分高,我们也常常会收拾一下微信谈天记载和其他软件的缓存文件来腾出手机空间。但有
可不可以查微信聊天记录(怎么样查找聊天记录微信)可不可以查微信聊天记录(怎么样查找聊天记录微信)微信现已成为咱们最常用的谈天东西,由于微信的运用率非常高,咱们也常常会拾掇一下微信谈天记载和其他软件的缓存文件来腾出手机空间。但有时
可不可以查别人的微信聊天记录(怎么查看别人聊天记录微信)可不可以查别人的微信聊天记录(怎么查看别人聊天记录微信)微信现已成为咱们最常用的谈天东西,由于微信的运用率非常高,咱们也常常会拾掇一下微信谈天记载和其他软件的缓存文件来腾出手机空间
科大讯飞能查微信聊天记录吗(怎么查微信里面的聊天记录)科大讯飞能查微信聊天记录吗(怎么查微信里面的聊天记录)微信现已成为我们最常用的谈天东西,因为微信的运用率十分高,我们也常常会收拾一下微信谈天记载和其他软件的缓存文件来腾出手机空间。