在数学优化和计算机科学中,启发式算法用于在经典方法效果不佳时更快地解决问题或找到近似解。这是通过牺牲最优性、完整性、准确性或精度换取速度来实现的。它是一个与最优化算法相对的概念。
在某种程度上,它可以被认为是一条捷径。因此启发式算法给出的答案是具有偶然性的,或者说时好时坏,因为启发式方法仅仅告诉我们该如何去找答案,而不直接告诉我们答案是什么。
某些启发式算法具有强大的基础理论,它们要么是从理论中以自上而下的方式推导出来的,要么是基于实验或现实世界的数据得出的。其他的只是基于现实世界观察或经验的经验法则,甚至连理论都没有,这些启发式算法的难点是建立符合实际问题的一系列启发式规则。