不一致的搜索策略只使用问题定义中可用的信息
扩展最浅的未扩展节点
实施:边缘结点是一个FIFO队列,即,新来的后继放在末尾
时间复杂度 :BFS算法的时间复杂度可以通过BFS中遍历的节点数来获得,直到最浅的节点。其中 d= 最浅解的深度,b是每个状态的节点。
空间复杂度:O(bd+1)O(b ^{d+1})O(bd+1)(keeps every node in memory)
完整性:BFS完成,这意味着如果最浅的目标节点处于某个有限的深度,那么BFS将找到解决方案。
最优性:如果路径成本是节点深度的非递减函数,则BFS是最优的。
空间是个大问题;可以轻松地以100MB/秒的速度生成节点,因此24小时=8640GB。
检测不到重复状态可能会将线性问题变成指数问题!
避免探索冗余路径的方法是牢记曾经走过的路。
为了做到这一点,我们给TREE-SEARCH搜索树算法增加一个参数–这个数据结构称为探索集(也被称为 closed 表),用它记录每个已扩展过的结点。
新生成的结点若与已经生成的某个结点相匹配的话–即是在探索集中或是边缘集中-那么它将被丢弃而不是被加入边缘集中。
新算法叫 GRAPH-SEARCH,图搜索
上一篇:贾玲被传绯闻,这样的玩笑可开不得
下一篇:Docker离线安装部署