启发式算法(Heuristic Algorigthm):
是一种基于直观或经验构造的算法,在可接受的花费(指计算时间、计算空间等)给出待解决优化问题的每一实例的一个可行解,该可行解与与最优解的偏离程度一般不可以事先预计。
启发式算法是一种技术,这种算法可以在可接受的计算费用内找到最好的解,但不一定能保证所得到解的可行性及最优性,甚至大多数情况下无法阐述所得解与最优解之间的近似程度。
元启发式算法(MetaHeuristic Algorigthm):
是启发式算法的改进,它是随机算法与局部搜索算法相结合的产物。
.
启发式算法包括遗传算法、模拟退火算法、粒子群算法、禁忌搜索算法及神经网络算法等。
比较:
1)两者无法保证得到某个优化问题的全局最优解;
2)两者存在意义就是快速地求解那些不存在或者暂时未找到多项式时间内算法的问题。比如TSP问题,flowshop问题。而像Linear programming就不会用heuristics或者meta-heuristics去求解了;
3)不同点在于:heuristics算法中不会存在“随机因素”。对于同样一个问题,只要给定了一个输入,那么算法执行的步骤就固定下来了,输出也因此固定。但是meta-heuristics就不一样了,里面包括了“随机因素”。就拿遗传算法来说,同样一个初始的种群(输入一致),运行两次(每次100代),得到的结果很可能是不同的。因为交叉、变异操作的对象是随机选择的。在比如模拟退火,按照metropolis准则跳出局部最优解时也是随机的,这也解释了为神马SA可能得到全局最优解。总之,heuristics在固定的输入下得到固定的输出。meta-heuristics在固定的输入下得到的输出不固定。
(引用自评论)