高中数学 第11章 算法初步 11.1 算法概念和例子课件 湘教版必修5.pptVIP

  • 1
  • 0
  • 约4.08万字
  • 约 197页
  • 2019-05-18 发布于四川
  • 举报

高中数学 第11章 算法初步 11.1 算法概念和例子课件 湘教版必修5.ppt

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 三、LC-搜索的形式化描述 设T是一棵状态空间树, c(.) 是T中结点的成本函数。如果X是T中的一个结点,则 c(X)是其根为X的子树中任一答案结点的最小成本。从而,c(T)是T中最小成本答案结点的成本。如前所述,要找到一个如上定义且易于计算的函数c(.) 通常是很困难的,为此使用一个对c(.) 估值的启发性函数 c’(.)来代替。这个启发函数应是易于计算的并且一般有如下性质,如果X是一个答案结点或者是一个叶结点,则 c(X)= c’(X) 。过程LC(算法6.1)用c’ (X )去寻找一个答案结点。这个算法用了两个子算法LEAST(X)和ADD(X),它们分别将一个活结点从活结点表中删去或加入。 LEAST(X)找一个具有最小的 C’ 值的活结点,从活结点表中删去这个结点,并将此结点放在变量X中返回。 ADD(X)将新的活结点X加到活结点表。 通常把这个活结点表作成一个min-堆来使用。过程LC输出找到的答案结点到根结点T的那条路径。如果使用PARENT信息段将活结点X与它的父亲相连接,这条路径就很容易输出了。 以下是LC-检索算法LC(Elemtype T,Elemtype c?[])的描述 LC(Elemtype T,Elemtype c?[])//为找一个答案结点检索T; //书上的算法有错,请修改 1 if( T是答案结点) 2 then { 输出T;return;} 3 E?T; //扩展结点; 4 将活结点表初始化为空; 5 while (1) do 6 { 7 for (E的每个儿子X) 8 do{ if (X是答案结点) 9 then { 输出从X到T的那条路径; 10 return;} 11 ADD(X); //X是新的活结点; 12 PARENT(X) ? E; } //指示到根的路径。 13 if (不再有活结点) 14 then { 输出“no answer node”;stop;} 15 LEAST(E); 16 } 关键 说明是宽度优先搜索 算法的正确性证明见书上,自学。 注意:此算法对于没有答案结点的无限状态空间树时,不会终止. 四.LC搜索的特性 在许多应用中,我们希望在所有的答案节点中找到一个最小成本的答案节点,但是LC搜索不一定能找到成本最小的答案节点。如下: 10 0 20 2 10 10 ∞ ∞ ∞ ∞ 20 20 10 4 其中上面的数是C的值,下面的数是C的估计值。 定理7.2 在有限状态空间T中,对于每一个节点X,令c’(X)是c(X)的估计值且具有以下性质:对于每一对节点Y,Z,当且仅当c(Y)c(Z)时有c’(Y)c’(Z),那么在使c’()作为c()的估计值时,算法LC达到一个最小的成本答案节点而终止。 证明略 一般情况下,只可能找到一个易于计算且具有如下性质的c’(),对于每一个节点X, ,在这种情况下,算法LC不一定能找到最小成本的答案节点,但是如果对于每一个节点X有 且对于答案节点X有 c’(X)=c(X),则只要对LC稍作改动就可以得到一个在达到某个最小成本时终止的搜索算法。 * * * * * * * * * * * * * * * * * * * * * * * * * * X3=2 X3=3 注意:回朔过程 在回溯期间所生成的Slice 12 所示树的一部分 六、回溯方法的抽象化描述 回溯法的执行过程就是使用深度优先方法生成树的同时,结合限界函数控制生成过程,从而搜索出答案解。 假定回溯法要找出所有的答案结点而不是仅仅只找出一个。设(x1, x2,…,xi-1)是状态空间树中由根到一个结点(即问题状态)的路径,而R(x1, x2,…,xi-1)是下述所有结点xi的集合,它使得对于每一个xi,(x1,x2,…,xi)是一条由根到结点xi的路径;还假定存在着一些限界函数Ci(还可以表示成一些谓词),如果路径(x1,x2,…,xi)不可能延伸到

文档评论(0)

1亿VIP精品文档

相关文档