但为了使搜索次数尽可能的减少,我们又必须花工夫设计出一个准确性较高的优化算法,而当算法的准确性升高,其判断的次数必定增多,从而又导致耗时的增多,这便引出了矛盾。
因此,如何在优化与效率之间寻找一个平衡点,使得程序的时间复杂度尽可能降低,同样是非常重要的。
倘若一个剪枝的判断效果非常好,但是它却需要耗费大量的时间来判断、比较,结果整个程序运行起来也跟没有优化过的没什么区别,这样就太得不偿失了。
综上所述,我们可以把剪枝优化的主要原则归结为六个字:正确、准确、高效。
剪枝算法按照其判断思路可大致分成两类:可行性剪枝及最优性剪枝。
该方法判断继续搜索能否得出答案,如果不能直接回溯。
最优性剪枝,又称为上下界剪枝,是一种重要的搜索剪枝策略。
它记录当前得到的最优值,如果当前结点已经无法产生比当前最优解更优的解时,可以提前回溯。
古语云:多算胜,少算不胜,而况于无算乎?
(出处于)孙子曰:“夫未战而庙算胜者,得算多也;未战而庙算不胜者,得算少也。多算胜,少算不胜,而况于无算乎。吾以此观之,胜负见矣。“(《计篇》)
【本章阅读完毕,更多请搜索小小书屋;https://www.xxswu.com 阅读更多精彩小说】