研究分享|超启发式、元启发式、启发式算法的交织关系

文章来源于我的个人公众号:KAU的云实验台,主要更新智能优化算法的原理、应用、改进

最优化方法作为一种解决具有某些约束的最优化问题的方法,广泛应用在电力系统、路径规划、金融决策、环境工程、车间调度等各个领域。算法研究随着工业界的要求不断深入,从精确算法、启发式算法、元启发式算法,到目前比较火的超启发式算法,工业界的现实需求不断驱动算法向更智能、更通用、更高效的方向发展。因此本文从宏观上综述优化方法的特点及其发展历程,希望能够为正处于相关领域的你提供一点点参考或启发。
当然,由于KAU水平有限,不足之处还请指正。

00 目录

1 从最优化说起
2 代码目录
3 算法性能
4 源码获取

01 从最优化说起

企业总效益最优,以及在军事、工商、工程等领域中常碰到的调度问题、排序问题、路径问题、布局问题都属于最优化问题。简单来说,最优化问题由三个要素构成:
1.目标函数:这是我们希望优化(最大化或最小化)的函数。例如,在路径最小化问题中,目标函数表示路径长度,我们的目标是找到最小化路径的解决方案。
2.决策变量:这些是影响目标函数值的变量。在最优化问题中,我们通过改变这些变量的值来寻找目标函数的最优值。
3.约束条件:这些是决策变量需要满足的条件。约束可以是等式或不等式。
因此只要把优化问题的三要素都描述出来,那么该优化问题就已经被精确的表述了出来。其一般形式为:
在这里插入图片描述

s.t.是“subject to”的缩写,表示约束条件的意思。
通过构建上式中的数学模型,我们可以使用一些优化方法,在解空间中找到最优解和相应的目标函数最优值。
下面通过一个实际例子感受一下最优化问题在生活中的体现:相亲男女嘉宾匹配问题(这个例子来源于:科研式学习)
在这里插入图片描述

上图代表着一个随机的相亲匹配方案,但该方案可能并不是最好的,本着认真负责的态度,我们可以将其进一步优化。
定义决策变量:
在这里插入图片描述

假设N位男性和N位女性来相亲
在这里插入图片描述

其中,cij为男性i和女性j的匹配度,cij越大则男女生越合适,则目标函数代表着男女总匹配度。由此可以看到,最优化问题与我们的现实生活息息相关,而随着优化问题规模的不断庞大、复杂以及对于通用性要求的不断提高,传统优化方法不再适用,而衍生了诸如启发式算法、元启发式算法、超启发式算法等更有效的优化方法。

启发式算法起源于20世纪40年代,大致可分为简单启发式算法(如爬山法、贪心法等,KAU在后面将其称为启发式算法)和元启发式算法(如遗传、粒子群算法等),而随着现实中对算法通用性要求的提高(单一优化算法无法保证在所有问题上始终优于其他算法),超启发式算法的概念被提出,并迅速得到学界的高度关注,智能计算领域的三大著名国际会议(GECCO、 PPSN和 CEC)分别举办了专门针对超启发式算法的研讨会,另外,智能计算领域的两大学报《Journal of Heuristics》和《Evolutionary Computation》也组织了专刊集中介绍超启发式算法的研究进展。(下面KAU将一个个介绍这几种算法的特性)。

02 启发式算法

20世纪40年代,启发式算法首先被提出用于求解优化问题。当时的启发式算法是一种基于经验构造的领域特定算法,主要目的是在合理的时间范围内提供问题的可行解。这一可行解可能并不是该问题解空间中最优的,或者也可能只是近似的精确解,但由于其搜索速度较快,因此仍然具有很高的实际价值。然而,这类方法虽然能够解决一些大规模优化问题,但仅限于某些特定领域的问题且容易陷入局部最优。原因是他们都在一个局部区域选择好的解,若能够找到好的解,就继续搜索,否则陷入停滞,几乎没有搜索的全局性。因此基于现实需要,一种启发式算法的改进版本——元启发式算法应运而生。

03 元启发式算法

20世纪60年代,受到一些生物学研究的启发,一些元启发式(Metaheuristic)算法,例如遗传算法等被提出用于求解优化问题。元启发式算法是启发式算法的改进,是随机算法与局部搜索算法相结合的产物。另外,由于元启发式算法通常不需要限定待求解的优化问题具备某些特性,因此,这类算法几乎可适用于各种领域。
在20世纪80年代之后,元启发式算法本身获得了长足的发展。模拟退火、禁忌搜索、蚁群、粒子群等都逐步被提出。并且,元启发式算法的发展与计算机处理能力的提高以及大规模并行结构的发展是同步的。
元启发式算法目前可分为4类:基于自然进化、基于物理现象、基于群体和基于人类规律,不同类别的算法在全局勘探与局部开发的平衡上、迭代方向与迭代步长上都有所区别,针对不同的问题也会有不同求解性能。
元启发式算法的一个重要问题是能否在问题的搜索(多样化)和开发(集约化)之间找到一个平衡。一方面,算法需要通过对更广阔空间的搜索来找到更具有开发前景的区域;另一方面,算法也需要集中资源对这些具有开发前景的空间进行深入开发。现有的元启发法算法之间的主要区别就是实现这种平衡的方式不同。
在上世纪设计出的元启发式算法都具有鲜明的生物背景,且启发源与算法之间存在着紧密的联系。这些元启发式算法的新颖性是毋庸置疑的。然而,本世纪前 20 年提出的元启发式算法的发展状态与上世纪的稳定健康发展状态有所不同。在此期间,受灵感源启发设计的新元启发式算法呈现出爆发式增长。据统计,从 2000 年 1 月至 2023 年 12 月,已有不少于 645 种新元启发式算法出现在文献中。许多新元启发式算法的新颖性引起了领域学者们的质疑,在部分新元启发式算法中存在的重复研究现象可能会阻碍算法设计领域的发展,甚至导致该领域逐渐偏离科学的准确性和严谨性。
在这里插入图片描述

2000-2023新发布的元启发式算法数量
因此算法新颖性判别也逐渐成为一个研究方向,并发展了一些识别元启发式新颖性的方法[1]。然而,由于评审可能无法准确判断算法新颖性,或初学者在算法设计上缺乏经验,新元启发式算法的数量仍然在飞速增长。
虽然元启发式算法还不够成熟,但其发展还是为科学、工程和技术领域上带来了巨大成功。在此基础上,由于单一算法无法保证在所有问题上始终优于其他算法(因为具体实例千差万别,总有某些算法性能较差),因此一种被称为超启发式算法(Hyper Heuristic Algorithm)的概念被提出。

04 超启发式算法

超启发算法[2]最初由Cowling提出,它是一种新兴优化算法,属于一种高级启发式优化算法,可以简单阐述为“寻找启发式算法的启发式算法”,具有更高级智能系统的特征,是未来启发式优化领域研究的主流方向之一,其严格的定义如下:
超启发式算法提供了一种高层次启发式方法,通过管理或操纵一系列低层次启发式算法(Low Level Heuristics,LLH),以产生新的启发式算法。
这些新启发式算法被用于求解各类组合优化问题。
这里KAU对超启发式算法的概念模型及其组成部分进行简要介绍,主要目的是帮助不了解的同学快速理解,也欢迎已经熟悉的同学对这部分内容做批评指正。

4.1 超启发式算法概念模型
超启发算法主要由控制域、问题域和领域屏蔽层组成。控制域层面上,主要是对底层算法的性能进行监测,然后根据解的性能选择合适的算法改进可行解。问题域层面中,领域专家设计一系列的底层启发式算法(即LLH),并提供实际问题描述、评价函数等信息,供控制域调用。领域信息屏蔽层中,可以看到控制域独立于具体的问题,它的搜索空间主要是底层算法层中的各种启发式算法,因此能够自适应选择优化器来解决不同的复杂优化问题。
在这里插入图片描述

因此,容易知道元启发式算法和超启发式算法的区别:
在这里插入图片描述

但是,如果对于不同问题,我们把许多算法一起运行再择其优,那么和超启发式算法又有什么区别呢?效率会有不同吗?首先,超启发式算法每次迭代都会寻找最合适的底层算法;其次,其选择规则是经过特别设计的。下面具体来说:

4.2 控制域选择策略
控制域的主要任务是为超启发式算法在程序运行的不同阶段选取不同的算法。如何得知在不同问题状态下应该采用哪一种算法呢?此时,控制域通过评价不同算法的历史执行信息来自动化地帮助选取下一次将会执行的算法。目前主要有4种方法:
(1)基于随机选择。该方法从给定的底层算法池中随机选择一个执行,或者选择一些进行组合,形成新的算法再执行。结构简单,可用作其它决策方法的对比基础。
(2)基于贪心策略。该方法每次选取能最大化改进当前解的底层算法,由于每次对所有算法执行情况进行评估,所以执行效率较低。
(3)基于元启发式算法。即个体编码是调用底层算法的优先规则,规则组成了启发式集,目的是找到这些启发式的最优调用顺序。
(4)基于学习。该方法在决策时使用一定的学习机制,对各种底层算法的历史执行情况、产生解的好坏等信息进行学习,在选取解的过程中,根据历史学习结果的好坏,来选取不同的算法对程序进行执行。强化学习应用其中较热门。
对于控制域而言,针对不同的问题可以使用不同的决策方法,每一种决策方法也各有优劣。

改进选择策略是一种研究方向

4.3 控制域移动接受方法
移动接受策略作为控制域决策中的一种重要的机制,对算法的整体性能起着重要作用。通常,当接受策略在处理新解的过程中只接受改进解,可能会失去一些相对较差的扰动解,使目标优化容易朝着某一局部最优方向进行,导致收敛速度加快。相反,如果在接受新解的过程中接受过多的较差的扰动解,优化过程中使得解的稳定性变差,收敛速度慢,可能需要消耗大量的时间才能收到较好的局部最优解或全局最优解。此外,如果接受解后,使种群集中在一个比较小的区域内,使种群缺少多样性,丢失对解空间的其它区域搜索的机会,同样会使算法陷入局部最优。因此,在选择新解过程中,首先要保证接受个体的优异性;然后要使新的种群均匀的分布在解空间中。最后还要以一定的概率接受相对较差的解,增大种群扰动性,从而增加种群的多样性,避免收敛过快,陷入局部极小值附近。通常,接受准则包括:接受所有解、只接受改进解、概率接受、门槛接受和模拟退火法。不同的接受准则也各有其优势。

改进接受准则也是一种研究方向。

4.4 问题域底层启发式算法池
底层算法池LLH作为超启发式算法的重要组成部分,其对于整个算法重要程度相当于高楼大厦的地基。已有实验研究表明 LLH 的设计对超启发式算法的最终效率有着极大的影响[3]。池中的 LLH 的设计原则是简单且丰富。简单是因为太复杂的 LLH 会导致由高层次启发式策略生成的最终算法复杂度太高,消耗太多不必要的运算时间。丰富是因为只有丰富的素材,才能让各种问题域搜索更丰富,更好地更快地搜寻最优解。这里面可以放入各式优化算法及其改进

基于以上认识,可以把超启发式算法的运行过程用以下框架表示:
在这里插入图片描述

初始解将经过选择算子选择合适的底层算法再应用优化求解,通过接受准则判断是否采用该优化后的解,最终根据迭代条件判断是否终止。

结语:超启发式算法是本文重点内容,由于精力有限,遗憾没有进行更全面的讲解,各位同学可以结合相关文献一并阅读,后续KAU也将出超启发式相关代码,敬请期待~

参考文献

[1] Geem Z W. Survival of the fittest algorithm or the novelest algorithm?: the existence reason of the harmony search algorithm[J]. International Journal of Applied Metaheuristic Computing, 2010, 1(4): 76-80.
[2] Cowling P,Kendall G,Soubeiga E.A hyper heuristic approach to scheduling a sales summit[C].Proceedings of the International Conference on the Practice and Theory of Automated Timetabling,2000:176。190.
[3] MıSıR M, VERBEECK K, DE CAUSMAECKER P, et al. The effect of the set of low-level heuristics on the performance of selection hyper-heuristics; proceedings of the International Conference on Parallel Problem Solving from Nature, F, 2012 [C]. Springer.
[4]徐昶.超启发式算法研究及其在低碳LRP中的应用[D].浙江工业大学,2019.
[5]迟宗正.大规模优化问题的高效元启发式算法研究[D].大连理工大学,2021.DOI:10.26991/d.cnki.gdllu.2021.003805.
[6]张倩.元启发式算法设计的新颖性研究与分析[D].长江大学,2024.
另:如果有伙伴有待解决的优化问题(各种领域都可),可以发我,我会选择性的更新利用优化算法解决这些问题的文章。

如果这篇文章对你有帮助或启发,可以点击右下角的赞/在看(ง •̀_•́)ง(不点也行),你们的鼓励就是我坚持的动力!若有定制需求,可私信作者。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值