西西文学网 > 历史军事小说 > 承德围棋故事 > 第一千零六十八章、鏖战宽城(16)

第一千零六十八章、鏖战宽城(16)

,从左向右,逐一比较。

    期望值较大的为较优方案得以保留,期望值较小的方案予以舍弃,在舍弃的方案枝上画一“ll”。

    通过比较舍弃,最后只能剩下一个方案枝。

    该枝代表的方案就是最优方案。

    在搜索算法中优化中,剪枝,就是通过某种判断,避免一些不必要的遍历过程;形象的说,就是剪去了搜索树中的某些“枝条”,故称剪枝。

    应用剪枝优化的核心问题是设计剪枝判断方法,即确定哪些枝条应当舍弃,哪些枝条应当保留的方法。

    对王志刚那局棋而言,他就是通过放弃一点点利益,主动规避了他不希望出现的局面。

    搜索算法,绝大部分需要用到剪枝。

    然而,不是所有的枝条都可以剪掉,这就需要通过设计出合理的判断方法,以决定某一分支的取舍。

    在设计判断方法的时候,需要遵循一定的原则。

    剪枝的原则:

    1)正确性

    正如上文所述,枝条不是爱剪就能剪的。

    如果随便剪枝,把带有最优解的那一分支也剪掉了的话,剪枝也就失去了意义。

    所以,剪枝的前提是一定要保证不丢失正确的结果。

    2)准确性

    在保证了正确性的基础上,我们应该根据具体问题具体分析,采用合适的判断手段,使不包含最优解的枝条尽可能多的被剪去,以达到程序“最优化”的目的。

    可以说,剪枝的准确性,是衡量一个优化算法好坏的标准。

    3)高效性

    设计优化程序的根本目的,是要减少搜索的次数,使程序运行的时间减少。

    但为了使搜索次数尽可能的减少,我们又必须花工夫设计出一个准确性较高的优化算法,而当算法的准确性升高,其判断的次数必定增多,从而又导致耗时的增多,这便引出了矛盾。

    因此,如何在优化与效率之间寻找一个平衡点,使得程序的时间复杂度尽可能降低,同样是非常重要的。

    倘若一个剪枝的判断效果非常好,但是它却需要耗费大量的时间来判断、比较,结果整个程序运行起来也跟没有优化过的没什么区别,这样就太得不偿失了。

    综上所述,我们可以把剪枝优化的主要原则归结为六个字:正确、准确、高效。

    剪枝算法按照其判断思路可大致分成两类:可行性剪枝及最优性剪枝。

    该方法判断继续搜索能否得出答案,如果不能直接回溯。

    最优性剪枝,又称为上下界剪枝,是一种重要的搜索剪枝策略。

    它记录当前得到的最优值,如果当前结点已经无法产生比当前最优解更优的解时,可以提前回溯。

    古语云:多算胜,少算不胜,而况于无算乎?

    (出处于)孙子曰:“夫未战而庙算胜者,得算多也;未战而庙算不胜者,得算少也。多算胜,少算不胜,而况于无算乎。吾以此观之,胜负见矣。“(《计篇》)