FIFO分支限界法搜索可行解的过程包括以下步骤
A: 先进先出搜索算法要依赖队列做基本的数据结构。一开始,根结点是唯一的活结点,根结点入队列。从活结点队列中取出根结点后,作为当前扩展结点。
B: 对当前扩展结点,先从左到右地产生它的所有儿子,用约束条件检查,把所有满足约束函数的儿子加入活结点队列中。
C: 再从活结点表中取出队列的首结点(队列中最先进来的结点)为当前扩展结点,直到找到一个解或活结点队列为空为止。
D: 从当前扩展结点开始,进行深度优先搜索。
A: 先进先出搜索算法要依赖队列做基本的数据结构。一开始,根结点是唯一的活结点,根结点入队列。从活结点队列中取出根结点后,作为当前扩展结点。
B: 对当前扩展结点,先从左到右地产生它的所有儿子,用约束条件检查,把所有满足约束函数的儿子加入活结点队列中。
C: 再从活结点表中取出队列的首结点(队列中最先进来的结点)为当前扩展结点,直到找到一个解或活结点队列为空为止。
D: 从当前扩展结点开始,进行深度优先搜索。
举一反三
- 优先队列式分支限界法将活结点表组织成一个优先队列,按优先队列中规定的结点优先级选取优先级最高的下一个结点成为当前扩展结点。
- 在队列式分支限界法中, 叶子结点不加入队列。而在优先队列式分支限界法中,叶子结点通常要加入到优先队列中。有下列2个解释:(1) 队列式分支限界法,活结点在队列中的顺序是按照搜索解空间树时扩展出该结点的先后顺序存放,每次从队首取出一个活结点成为新的扩展结点。扩展结点扩展出的儿子结点是叶子结点时,会将该叶子结点的值同当前最优值比较,检查更新最优值,叶子结点并不进入队列,等队列为空时,搜索结束,记录的当前最优值就是问题最优值。(2) 优先队列式分支限界法中, 当优先级的定义是限界函数时,扩展出的叶子结点进入队列, 这种做法主要是为了让搜索过程提前结束。也就是当从优先队列中取出一个活结点是叶子结点时,意味着现在优先队列中剩余的所有活结点其优先级都不大于该叶子结点的优先级,叶子结点的优先级等于最优值,算法结束,无论优先队列是否为空。根据其正确与否,给出答案 A: (1)正确, (2)错误 B: (1)正确, (2)正确 C: (1)错误, (2)错误 D: (1)错误, (2)正确
- 分支限界法的搜索策略是:在扩展结点处,生成其所有的儿子结点(分支),然后再从当前的____中选择下一个扩展结点。 A: 扩展结点表 B: 活结点表 C: 死结点表 D: 以上都不是
- 分支限界法的搜索策略是,在扩展结点处,先生成其所有的儿子结点,然后再从当前的活结点表中选择下一个扩展结点。
- 分支限界法的搜索策略师:在扩展结点处,生成其所有的儿子结点(分支),然后再从当前的____中选择下一个扩展结点。