打字猴:1.700530607e+09
1700530607 定义一个函数(程序),“挑选最优行动方案”。函数返回值为“成功”(已经解决了问题)或者“失败”(没有解决问题)。如果返回值是成功,函数也会同时将解决问题的选定步骤序列值一起返回。在此过程中,“挑选最优行动方案”执行具体如下操作:
1700530608
1700530609 挑选最优行动方案
1700530610
1700530611 ·判断该程序是否可在此节点脱离连续递归。(本条项目符号和下两条项目符号主要说明脱离递归的操作。)首先,判断问题现在是否已经解决。因为有可能是程序自身启动了“挑选最优行动方案”程序这一步,所以我们现在可能得到了一个满意的解决方案,比如:
1700530612
1700530613 i)在博弈情境下(比如国际象棋),棋局获胜的最后一步(比如将军)。
1700530614
1700530615 ii)在解决数学定理问题的情境下,证明定理成立的最后一步。
1700530616
1700530617 iii)在艺术创作程序的情境下(比如用计算机作诗或者谱曲),创作出与下一个词或音符匹配的最后一步。
1700530618
1700530619 如果能得出令人满意的解决方案,程序的返回值则为成功。在这种情况下,“挑选最优行动方案”同时返回选定的步骤序列值。
1700530620
1700530621 ·如果问题未被解决,则判断某一个解决方案是否会走入死胡同,比如:
1700530622
1700530623 i)在博弈情境下(比如国际象棋),此走步会让我们输(比如说,被对方将军)。
1700530624
1700530625 ii)在解决数学定理问题的情境下,这一步违背了定理。
1700530626
1700530627 iii)在艺术创作程序的情境下(比如用计算机作诗或者谱曲),这一步与下一个词或音符不匹配。
1700530628
1700530629 如果此时这种解决方案被判定会走入死胡同,程序的回归值则为失败。
1700530630
1700530631 ·若递归扩展至此节点时,问题既未得到解决也没有走入死胡同,则判断是否终止递归继续扩展。这是设计中十分关键的一步,需要考虑到我们可消耗在计算机上的时间有限,比如:
1700530632
1700530633 i)在博弈情境下(比如国际象棋),这一步可让我方足够“领先”或“落后”。进行这一步判断时或许无法像前两种情况那般直截了当,但又是设计中非常重要的一步。所幸一些简单的方法(比如棋子价值的简单相加)仍能提供不错的结果。如果该程序判定我方已经遥遥领先,那么“挑选最优行动方案”将返回至判断棋局获胜的那一步(即返回值为成功);如果该程序判定我方已远远落后,那么“挑选最优行动方案”将返回至判断棋局走入死胡同的那一步(即返回值为失败)。
1700530634
1700530635 ii)在解决数学定理问题的情境下,这一步需要判断证明中的一连串步骤是否无法被论证。如果是这样,则此种论证无效,“挑选最优行动方案”将返回至判断违背定理的那一步(即返回值为失败)。这种情境下,不存在“类似成功”的对等值,直到该数学问题被确确实实地解决之后,我们才能返回成功。这就是数学的本质。
1700530636
1700530637 iii)在艺术创作程序的情境下(比如用计算机作诗或者谱曲),这一步需要判断步骤的排列顺序(如诗歌中的词,歌曲中的音符)是否无法满足下一步的需求。如果是,则此种选择无效,“挑选最优行动方案”将返回至判断无法匹配下一个词或音符的那一步(即返回值为失败)。
1700530638
1700530639 ·如果“挑选最优行动方案”还未返回(因为此时程序既未判定成功还是失败,也未判定在此节点是否终止该递归),那么此时我们还没有脱离递归的后续扩展。在这种情况下,我们就要列出此节点下会出现的所有可能步骤。此时就需要介入问题的详细精确说明了:
1700530640
1700530641 i)在博弈情境下,问题说明包括在当前棋盘下为我方生成所有可移动的走步,要实现此生成就需要对棋局对弈规则的整理和编辑。
1700530642
1700530643 ii)在证明数学定理情境下,问题说明包括罗列出解决方案中在该节点所有可能用到的公理和已被证明过的定理。
1700530644
1700530645 iii)在计算机艺术创作程序情境下,问题说明包括罗列出在该节点所有可选的词/音符/线条。
1700530646
1700530647 对每一种可能的下一步:
1700530648
1700530649 i)假设执行该步骤,进而据此创设一个执行后会出现的情景。博弈中,这意味着一张假设的棋盘;定理证明中,这意味着把此步骤(比如公理)设为论据;艺术创作程序中,这意味着添加该词/音符/线条。
1700530650
1700530651 ii)现在让“挑选最优行动方案”来检测这种假设情境。此时当然还是递归发挥作用的时候,因为程序在不断启动自身。
1700530652
1700530653 iii)如果上述启动“挑选最优行动方案”程序的返回值为成功,那么我们现在所在的“挑选最优行动方案”步骤的返回值也为成功。否则就考虑下一种可能的步骤,以此类推。
1700530654
1700530655 如果将所有可能的下一步都考虑过后,仍没有找到可以使“挑选最优行动方案”的回归值为成功的那一步,那么我们现在所在的“挑选最优行动方案”步骤的回归值则为失败。
1700530656
[ 上一页 ]  [ :1.700530607e+09 ]  [ 下一页 ]