- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
* * 4.2 状态空间的盲目搜索 五. 代价树搜索 在前面讨论的各种搜索策略中,实际上都作了一种假设,认为状态空间中各边的代价都相同,且都为一个单位量。从而,可用路径的长度来代替路径的代价。但是,对许多实际问题,这种假设是不现实的,它们的状态空间中的各个边的代价不可能完全相同。例如,城市交通问题,各城市之间的距离是不同的。为此,我们需要在搜索树中给每条边都标上其代价。这种边上标有代价的树称为代价树。 在代价树中,可以用g(n)表示从初始节点S0到节点n的代价,用c(n1,n2)表示从父节点n1到其子节点n2的代价。这样,对节点n2的代价有 g(n2)=g(n1)+c(n1,n2) 在代价树中,最小代价的路径和最短路径(即路径长度最短)是有可能不同的。最短路径不一定是最小代价路径;最小代价路径不一定是最短路径。代价树搜索的目的是为了找到最佳解,即找到一条代价最小的解路径。 前面所讨论的广度优先搜索策略和深度优先搜索策略都可应用到代价树的搜索上来,因此,代价树搜索也可分为代价树的广度优先搜索和代价树的深度优先搜索。 4.2 状态空间的盲目搜索 五. 代价树搜索 1.代价树的广度优先搜索 代价树的广度优先搜索也称为分枝界限法。它每次从Open表中选择节点或往Closed表中存放节点时,总是选择代价最小的节点。也就是说,Open表中的节点总是按照其代价从小到大排列的,代价小的节点排在前面,代价大的节点排在后面,与节点在树中的位置无关。 4.2 状态空间的盲目搜索 五. 代价树搜索 1.代价树的广度优先搜索 代价树的广度优先搜索算法如下: (1)把初始节点 S0放人 Open表中,置S0的代价 g(S0)=0; (2)如果Open表为空,则问题无解,失败退出; (3)把 Open表的第一个节点取出放入 Closed表,并记该节点为n; (4)考察节点n是否为目标节点。若是,则找到了问题的解,成功退出; (5)若节点n不可扩展,则转第(2)步; (6)扩展节点 n,生成其子节点 ni, (其中i=1,2,3,……),将这些子节点放入 Open表中,并为每一个子节点设置指向父节点的指针;按如下公式 g(ni)=g(n)+c(n,ni)(i=1,2,…)计算Open表中的各子节点的代价,并根据各节点的代价对Open表中的全部节点按照从小到大顺序重新进行排序;然后转第(2)步。 代价树的广度优先搜索策略是完备的。如果问题有解,上述算法一定能够找到它,并且找到的一定是最优解。 例:城市交通问题。设有5个城市,它们之间的交通线路如左下图所示,图中的数字表示两个城市之间的交通费用,即代价。用代价树的广度优先搜索,求从A市出发到E市,费用最小的交通路线。 解:左图是一个网络图,它不能直接用于搜索算法,需要先将其转换为代价树。转换后的代价树如右图所示。 ? 城市交通图 城市交通图的代价树 A C D E B 3 2 3 4 4 5 A C1 B1 D1 E2 B2 E4 D2 E1 C2 E3 3 4 4 5 3 2 2 3 4 5 8 14 11 9 1.代价树的广度优先搜索 把一个网络图转换为代价树的方法是: 从起始节点A开始,把与它直接连接的节点作为其子节点。对其他节点也作同样处理。但当一个节点已作为某个节点的直系先辈节点时,就不能再作为这个节点的子节点。例如,上页左图中与节点B直接相邻的节点有节点A、D、E,但由于A已作为B的父节点在代价树中出现过了,因此A不能再作为B的子节点。此外,图中的节点除初始节点A外,其他节点都可能在代价树中出现多次,为区别它们的多次出现,分别用下标1,2,…标出,但实际上是同一个节点。 对上页右图所示的代价树,按广度优先搜索可得到最优解 A →C1→D1→E2其代价为8。可见,从A市到E市的最小费用路线为 A→C→D→E 1.代价树的广度优先搜索 4.2 状态空间的盲目搜索 五. 代价树搜索 代价树的深度优先搜索和代价树的广度优先搜索的区别在于每次选择最小代价节点的范围不同。广度优先搜索每次都是从Open表的全体节点中选择一个代价最小的节点,而深度优先搜索则是从刚扩展的子节点中选择一个代价最小的节点。 2.代价树的深度优先搜
原创力文档


文档评论(0)