算法概念介绍及举例说明.ppt

  1. 1、本文档共197页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
算法概念介绍及举例说明算法概念介绍及举例说明

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 估值函数的一般形式: =f(X)+ 其中: f(X)是从状态空间树的根节点到X的路径的长, 是在以X为根的子树上到达一个答案节点的最短路径长的估计值。 三、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稍作改动就可以得到一个在达到某个最小成本时终止的搜索算法。 * * * * * * * * * * * * * * * * * * * * * * * 1、几个概念 活结点 :如果已生成一个结点而它的所有儿子结点还没有全部生成,则这个结点叫做活结点。 E-结点(正在扩展的结点):当前正在生成其儿子结点的活结点叫E-结点。 死结点 :不再进一步扩展或者其儿子结点已全部生成的结点就是死结点 。 有两种生成状态空间树的方法: (1)深度优先生成: --回溯法(使用限界函数的深度优先结点生成方法,称为回溯法)。当前的E-结点R一旦生成一个新的儿子C,这个儿子结点就变成一

文档评论(0)

cxiongxchunj + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档