8、搜索算法:原理、策略与性能评估

搜索算法:原理、策略与性能评估

1. 搜索算法基础

搜索算法以搜索问题为输入,输出问题的解或表示无解。在搜索过程中,会在状态空间图上构建搜索树,从初始状态出发形成各种路径,试图找到通向目标状态的路径。

1.1 状态空间与搜索树的区别

状态空间描述了世界中可能存在的(可能是无限的)状态集合,以及允许从一个状态转换到另一个状态的动作。而搜索树描述了这些状态之间的路径,指向目标状态。搜索树中,对于任何给定的状态可能有多个路径(即多个节点),但树中的每个节点都有一条唯一的路径回到根节点。

1.2 节点扩展与前沿

以从阿拉德(Arad)到布加勒斯特(Bucharest)的路径搜索为例,搜索树的根节点是初始状态阿拉德。通过考虑该状态的可用动作,使用结果函数确定这些动作的指向,并为每个结果状态生成一个新节点(子节点或后继节点),每个子节点的父节点为阿拉德。

接下来需要选择下一个要考虑的子节点,这是搜索的核心。假设先扩展锡比乌(Sibiu)节点,会得到一组未扩展的节点,这些节点构成了搜索树的前沿。任何为其生成了节点的状态都被称为已到达状态。

前沿将状态空间图分为两个区域:内部区域的每个状态都已被扩展,外部区域的状态尚未被到达。

以下是最佳优先搜索算法的代码实现:

def BEST-FIRST-SEARCH(problem, f):
    node = NODE(STATE=problem.INITIAL)
    frontier = a priority queue ordered by f, with node as 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值