启发式算法简介
百度百科给出的启发式算法定义:一个基于直观或经验构造的算法,在可接受的花费下给出待解决优化问题的一个可行解。
三点注意事项:
(1) 什么是可接受花费?
计算的时间和空间是可以接受的。
(2) 什么是优化问题?
工程设计中的优化问题指:在一定约束条件下,求解一个目标函数的最值问题。
(3) 什么是可行解?
得到的解能用于工程实践,而并不一定为最优解。
为什么需要启发式算法
对于一个简单的优化问题,如何获得器其可行解(最优解)?
暴力枚举!!!
注意:对于实数区间,其解空间是不可枚举。因为哪怕区间再小也可以无限细分。
启发式算法,利用搜索过程中的中间信息改进搜索策略,以达到获取较优解并加速搜索的目的。
常见启发式算法
常见的启发式算法有:粒子群算法、模拟退火算法、遗传算法、蚁群算法,禁忌搜索算法和免疫算法等等。
启发式算法解决的问题大同小异,这里详细介绍:粒子群算法、模拟退火算法、遗传算法和蚁群算法。
粒子群算法
粒子群算法,其全称为粒子群优化算法(Particle Swarm Optimization,PSO) 。它是通过模拟鸟群觅食行为而发展起来的一种基于群体协作的搜索算法。
–>粒子群算法链接<–
模拟退火算法
模拟退火算法(Simulate Anneal Arithmetic,SAA)是一种通用概率演算法,用来在一个大的搜寻空间内找寻命题的最优解。
–>模拟退火算法链接<–
遗传算法
遗传算法是根据大自然中生物体进化规律而设计提出的,是模拟达尔文生物进化论的自然选择和遗传学机理的生物进化过程的计算模型,是一种通过模拟自然进化过程搜索最优解的方法。
–>遗传算法链接<–
蚁群算法
蚁群算法是一种用来寻找优化路径的概率型算法。它由Marco Dorigo于1992年在他的博士论文中提出,其灵感来源于蚂蚁在寻找食物过程中发现路径的行为。
–>蚁群算法链接<–