例3.3 8数码问题。
下面通过例子来学习深度优先搜索
起始节点与目标节点如图3.11所示,请用有界深度优先搜索算法求解,深度界限dm=4。
该问题的搜索过程如图3.12所示,在图中圆圈内的数字表示节点的扩展顺序。
5.有界深度优先搜索方法说明
对于有界深度优先搜索策略,有下面几点需要说明:
①在有界深度搜索算法中,深度限制dm是一个很重要的参数。
②深度限制dm不能太大。
③有界深度搜索的主要问题是深度限制值dm的选取。
存在的问题是对很多问题,我们并不知道该值到底为多少,直到该问题求解完成了,才可以确定出深度限制dm。
一种改进的算法是迭代加深搜索算法,先任意给定一个较小的数作为dm,然后按有界深度算法搜索,若在此深度限制内找到了解,则算法结束;如在此限度内没有找到问题的解,则增大深度限制dm,继续搜索。
迭代加深搜索是一种回避选择最优深度限制问题的策略,它是试图尝试所有可能的深度限制:首先深度为0,然后深度为1,然后为2,等等,一直进行下去。该算法存在的问题是迭代加深搜索看起来会很浪费,因为很多节点都要扩展多次。