① 启发式算法
什么是算法?从枚举到贪心再到启发式(上)
目标 :要优化的东西
决策 :根据目标做出的决策
约束 :进行决策时必须遵循的条件
算例 :问题参数的具体化
枚举法 :将问题所有的解一一枚举出来,挨个去评价,选出最好的那个
1.枚举法能够找到问题的最优解
2.枚举法求解时间随问题规模增长而呈爆炸式增长
贪心法 :利用“构造”的方式生成解,速度相对而言会非常快,同时不会随着问题规模的增长而大幅度增加,是平缓的线性增长
什么是算法?从枚举到贪心再到启发式(下)
启发式算法 :在一个合理的求解资源范围内(合理的时间,合理的内存开销等)求得一个较为满意的解。目前主要包括邻域搜索和群体仿生两大类。
解空间 :所有该问题的解的集合,包括可行解和不可行解
局部搜索 :不完全遍历解空间,只选择一部分进行遍历,进而大大降低搜索需要的资源。为了提高局部搜索的质量,大部分局部搜索算法都会在搜索的时候不断地抓取多个区域进行搜索,直到满足算法终止条件。
邻域 :在邻域结构定义下的解的集合,它是一个相对的概念,即邻域肯定是基于某个解产生的
邻居解 :邻域内某个解的称呼
邻域结构 :定义了一个解的邻域
邻域结构的设计在启发式算法中非常重要,它直接决定了搜索的范围,对最终的搜索结构有着重要的影响,直接决定了最终结果质量的好坏
搜索过程
不断重复步骤2-步骤5,直到满足终止条件,最后输出全局最优解
所有的启发式找到的都是满意解,不能说是最优解(即便真的是),因为它遍历的是解空间的局部。
一般情况下,启发式算法的时间是随着问题规模增长而呈线性增长的
干货 | 想学习优化算法,不知从何学起?
邻域搜索类
迭代局部搜索算法
模拟退火算法
变邻域搜索算法
禁忌搜索
自适应大邻域搜索
群体仿生类
遗传算法
蚁群算法
粒子群算法
人工鱼群算法
算法应用
禁忌搜索算法求解带时间窗的车辆路径问题
基于树表示法的变邻域搜索算法求解考虑后进先出的取派货旅行商问题
变邻域搜索算法求解Max-Mean dispersion problem
遗传算法求解混合流水车间调度问题
② 什么是启发式算法 – Heuristic
启发式算法(Heuristic)是相对于最优算法提出的,旨在在可接受的时间和空间花费下,为组合优化问题提供可行解。这些算法基于直观或经验构建,提供一种可能的解,该解与最优解的偏离程度不能被精确预计。目前,启发式算法主要以模拟自然体算法为主,包括蚁群算法、模拟退火法、神经网络等。
启发式算法在实际应用中,常能在合理时间内得到满意的答案,但无法保证每次都达到最优解。它们处理问题时,既可能得到很好的解,也可能遇到某些特殊情况导致解的品质下降,但这些特殊情况在现实中可能不会出现。因此,启发式算法在解决实际问题时具有广泛的应用价值。
元启发式算法是通用型启发式算法的一种,其优化机制不依赖于特定算法的组织结构信息,适用于函数优化和计算。元启发式算法主要分为模拟退火算法(SA)、遗传算法(GA)、列表搜索算法(ST)、进化规划(EP)、进化策略(ES)、蚁群算法(ACA)和人工神经网络(ANN)等。
元启发式算法起源于50年代中期的仿生学,旨在借鉴生物进化机理解决复杂问题优化。近年来,智能计算领域的研究逐渐引入了超启发式算法,这是一种基于多个启发式算法组合的更高级算法。超启发式算法包括基于随机选择、基于贪心策略、基于元启发式算法和基于学习的超启发式算法等。
超启发式算法的结构分为问题域层面和高层策略层面,前者由领域专家提供问题定义、评估函数和一系列低层启发式算法,后者由智能计算专家设计高效的管理机制,利用问题特征信息和低层算法库构造新启发式算法。
近年来,为了提高优化质量和搜索效率,研究人员开发了新的搜索机制和并行、混合搜索算法。现代启发式算法的结构开放性和与问题无关性,使得各算法之间容易进行综合。这种研究有助于分析算法性能和适用范围,发现各算法的独特优点和不足,以便改进算法结构、参数和操作算子,发展高效混合算法。
现代启发式算法研究的未来发展方向包括整合研究成果、开发新的数学工具、研究混合算法和高效并行或分布式优化算法等。这些研究将有助于解决计算机科学、人工智能和数学优化领域中的复杂问题。
③ 七种启发式算法
七种启发式算法包括:
差分进化:一种基于群体差异的进化算法,通过变异、交叉和选择操作来迭代优化解。
遗传算法:模拟自然选择和遗传机制的优化算法,常用于解决组合优化和全局优化问题。
粒子群优化:模仿鸟群或鱼群等群体行为的优化算法,通过粒子间的信息共享和协作来寻找最优解。
模拟退火:基于物理退火过程的优化算法,通过概率接受较差解来避免陷入局部最优,适用于全局优化问题。
蚂蚁群算法:模拟蚂蚁觅食行为的优化算法,通过信息素更新和路径选择来寻找最优路径,常用于解决TSP等组合优化问题。
火蚁算法:一种基于火蚁觅食行为的启发式算法,通过模拟火蚁的协作和信息传递机制来优化问题。
免疫优化:模仿生物免疫系统的优化算法,利用免疫系统的自适应性和进化特性来搜索最优解,适用于复杂优化问题。
④ 启发式算法介绍
启发式算法是一种基于直观或经验构造的算法,用于在可接受的花费下,给出待解决组合优化问题的一个可行解。以下是关于启发式算法的详细介绍:
定义与特点:
应用场景:
主要类型:
优势与局限:
综上所述,启发式算法是一种实用的算法,能够在可接受的花费下给出组合优化问题的一个可行解,但其解的质量通常无法预知。在选择使用启发式算法时,需要根据问题的具体特点和需求进行权衡。