(1)不能保证算法一定得到最优解;<br> (2)性能不稳定。启发式算法对同一个问题的不同实例的计算会产生不同的效果。有些实例所得的解的优度很高,而另一些则相反。在工程应用中,启发式算法的这种不稳定性使得计算结果不可信;<br> (3)启发式算法的优劣依赖于具体问题以及设计者的经验、技术等,这一点很难总结成规律,同时使不同算法之间难于比较。<br> 虽说启发式方法有诸多优点,但是它本身固有的一个很严重的缺陷--无法保证得到最优解,使得对启发式算法的评价显得尤为重要。一个好的启发式算法可以使其解尽可能地接近最优解,同时保持很好的稳定性。评价启发式算法的性能有很多不同的方法,主要是对算法的复杂性和它的计算效能进行分析。下面就简要地介绍几种常用的方法。<br> 1.最坏情形分析<br> 最坏情形分析考虑计算复杂性和所得解的效果两个方面。最坏情形计算复杂性分析关注算法基本运算总次数同实例的计算机二进制输入长度之间的关系,从最坏实例--规模相同基本计算步数最多的实例的角度来研究、分析算法的计算时间复杂性。<br> 2.概率分析<br> 由于最坏情形分析是以最坏的实例来评价一个算法或者它所得到的解,这样难免因为一个实例导致对某个算法或它所求得解的优劣的评价完全颠倒。人们认识到应该从总体上而非极端的实例上来评价算法,概率分析方法正是着眼于此。这个方法是从理论上考虑的,针对一个算法,我们可以从它的计算时间复杂性和计算所得解的效果两个方面进行概率分析。无论作哪一个方面的分析,都假设实例的数据服从某一种概率分布。在这些数据的一个已知概率分布的假设条件下,研究算法或其解的某种平均效果。<br> 概率方法在评价算法方面的一个成功、典型的应用是对线性规划单纯形法的评价。概率发现方法是一种理论分析方法,它需要对问题本身有很深入的理解,并且掌握概率模型的建立和概率理论。<br> 最坏情形分析和概率分析方法有一个共同的特点:用理论的方法分析算法所得到的解同最优解之间的误差界,要求分析者具有坚实的数学基础,而且分析过程很繁复。<br> 3.大规模计算分析<br> 前两种方法都是理论分析方法,要求有多的数学工具和繁复的推演,而且分析过程很复杂。<br> ……
展开