现在的位置: 首页 > 综合 > 正文

循环不变式的理解

2013年10月14日 ⁄ 综合 ⁄ 共 421字 ⁄ 字号 评论关闭

算法导论的时候看到了一个概念,循环不变式。循环不变式(Loop invariant)主要用来帮助我们理解算法的正确性。对于循环不变式,必须证明它的三个性质:

初始化:它在循环的第一轮迭代开始之前,应该是正确的。

保持:如果在循环的某一次迭代开始之前它是正确的,那么,在下一次迭代开始之前,它也应该保持正确。

终止:当循环结束时,不变式给了我们一个有用的性质,它有助于表明算法是正确的。

与数学归纳法很相似。在数学归纳法中,要证明某一性质是成立的,必须首先证明其基本情况和一个归纳步骤都是成立的。这儿,证明不变式在第一轮迭代开始之前是成立的,就有点类似于归纳法中对基本情况的证明。证明不变式在各次迭代之间保持成立,就有点类似于归纳法中对归纳步骤的证明。有关循环不变式的第三项性质可能是最重要的,因为我们主要是用不变式来证明算法正确性的。此外,它与数学归纳法的常见用法也是不同的,在归纳法中,归纳步骤是无穷地使用的,在这儿,当循环结束时,即终止“归纳”。

抱歉!评论已关闭.