5.1 什么是搜索?有哪两大类不同的搜索方法?两者的区别是什么?
搜索是根据问题的实际情况,不断寻找可利用的知识,从而构造一条代价最小的推理路线,使得问题得以解决的过程。两大类不同的搜索方法是盲目搜索和启发式搜索。盲目搜索不使用任何关于问题领域的额外信息,按照固定的步骤进行搜索,如深度优先搜索和广度优先搜索。启发式搜索则使用问题领域的知识来引导搜索,通常更高效,因为它可以减少搜索空间。
5.2 什么是启发式搜索?什么是启发信息?
启发式搜索是一种使用启发信息来引导搜索过程的搜索方法,它优先选择最有希望到达问题解的路径。启发信息是与问题求解有关的控制性信息,用于指导搜索过程并加速问题的求解。
5.3 用状态空间法表示问题时,什么是问题的解?求解过程的本质是什么?什么是最优解?最优解唯一吗?
在状态空间法中,问题的解是从初始状态到目标状态的路径。求解过程的本质是在状态空间图中寻找一条从初始状态到目标状态的路径。最优解是代价最小的解路径。最优解可能不唯一,因为在状态空间图中可能存在多条长度或代价相等的最短解路径。
5.4 请写出状态空间图的一般搜索过程-在搜索过程中 open 表和closed 表的作用分别是什么?有何区别?
状态空间图的一般搜索过程是:从初始状态开始,扩展生成子节点,检查目标状态是否出现,如果出现则找到解;如果没有,则选择一个节点继续扩展,重复此过程直到找到目标或无法继续。
- Open表存放待扩展的节点,按照某种顺序(如广度优先或启发式评分)排列。
- Closed表存放已经扩展过的节点,防止重复扩展。 区别在于Open表用于管理待处理的节点,而Closed表用于记录已处理的节点。
5.5 什么是盲目搜索?主要有几种盲目搜索策略?
盲目搜索是不使用问题领域特定知识的搜索,按照预定的策略进行搜索。主要的盲目搜索策略包括深度优先搜索、广度优先搜索、有界深度优先搜索和代价树的宽度优先搜索。
5.6 在深度优先搜索中,每个结点的子结点是按某种次序生成和扩展的,在决定生成子状态的最优次序时,应该用什么标准来衡量?
在深度优先搜索中,通常按照生成的顺序来扩展子节点,但也可以基于启发式信息来决定扩展的次序。如果没有启发式信息,可以简单地使用生成的顺序。
5.7 宽度优先搜索与深度优先搜索有何不同?分析深度和宽度优先的优缺点。在何种情况下,宽度优先搜索优于深度优先搜索?在何种情况下,深度优先搜索优于宽度优先搜索?
宽度优先搜索按层次逐层扩展节点,而深度优先搜索则尽可能深地扩展每个分支。宽度优先搜索的优点是能够找到最短路径,缺点是可能需要大量内存。深度优先搜索的优点是内存使用少,缺点是可能找不到最短路径,且可能陷入深的搜索分支。 宽度优先搜索在目标节点较近或需要找到最短路径时优于深度优先搜索。深度优先搜索在目标节点较深或需要快速探索大量可能的路径时优于宽度优先搜索。