人工智能的搜索算法
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
人工智能的搜索算法
在智能过程中,搜索是不可避免的 ———— Nilsson 一个物理符号系统解决任何智能问题的充分和必 要条件 ———— Newell
搜索法简介
搜索法是人工智能中问题求解的基本方法 可大致分为有信息搜索和无信息搜索 约束满足问题和博弈问题的求解均可表述为搜索 过程 Agent的学习过程亦可表述为搜索过程 搜索法的本质是在状态空间中从问题的初始状态 搜索到通向目标状态的路径
搜索算法的评价
搜索法要处理的是状态空间图 在人工智能领域,状态空间图是由初始状态和后 继函数隐含表示的(与通常的计算机图搜索算法 不同) 搜索算法可从以下三个方面评价: b:分支因子 d:最浅目标节点的深度 m:状态空间中最大路径长度(考虑耗散)
问题的形式化
搜索法首先要对问题进行形式化描述 问题通常可形式化定义为下述四个部分 Agent所处的初始状态 Agent可采纳的行动:后继函数 目标测试:确定当前状态是否是目标状态 路径耗散函数:为每条路径分配量化的耗散值
A*算法
A*算法的要求: 启发函数满足可采纳约束: h(n) h* (n) 其中 h* ( n) 是节点n到目标节点的最低耗散 一致性约束: h(n) c(n, a, n ) h(n ) 1 1 A*算法是可采纳算法:当解存在时能保证找到最优解 当满足 n, h(n) h* (n) 时,A*算法效率最高
wk.baidu.com索法简介
当前的智能计算方法本质上也是搜索方法,如神 经网络、遗传算法、蚁群算法等 搜索法的设计主要考虑解路径的耗散值以及搜索 过程中的耗散值——耗费最低化
算法性能的评价
评价算法性能的四个方面: 完备性:有解时能保证找到解(可判定问题) 最优性:能否找到最优解 时间复杂度 空间复杂度
禁忌搜索(TS)算法
Glover于1986年提出 特点: 具有记忆功能,可有效避免局部最优 适用于多参数优化问题
双向搜索
思想基础: bd 2 bd 2 bd 从初始状态和目标状态同时开始相向搜索,形成两棵 搜索树 若某一待扩展节点出现在另一棵搜索树中,则找到解 后向搜索较难实现,无固定方法
启发式搜索
使用启发信息,对待扩展节点到目标节点的距离给 出估计 定义: f (n) g (n) h(n) f(n):对经过节点n的最低耗散解的估计值 g(n):初始节点到节点n的路径耗散 h(n):从节点n到目标节点的耗散估计值 每次首先扩展队列中具有最低f(n)的节点
代价一致搜索: 与广度优先搜索类似,但首先扩展耗费最低的节 点 须保证算法的完备性(为每一步设定最小耗散) c* 最坏时间复杂度为 O(b )
深度优先搜索
首先扩展搜索树中最深最边缘的未扩展节点 通常通过LIFO的栈实现 空间复杂度低, O(bm) 对于状态复杂的问题,可变形为回溯搜索,空间复 杂度降为 O(m) m O ( b ) 最坏时间复杂度 通常应用中变形为深度有限搜索(需要知识的支 持)O(bl ), 通常l<m
A*算法的复杂性估计
若h(n)满足: h * ( n) h( n) 1 p 0 h * ( n) m, 则有: E( z) ~ O(ecN ), c0 故A*并不能保证克服指数爆炸 非指数级增长的条件:
h(n) h* (n) O(log h* (n))
举例:八数码问题
盲目搜索
广度优先搜索: 在下一层节点被扩展之前保证本层节点都被扩展 通常用FIFO队列实现 能保证找到最浅的目标节点(不一定是最优的) 在单步耗散相同时是最优算法 空间复杂度大, O(bd 1 ) 目标节点较深时,时间复杂度亦很大
盲目搜索
在智能过程中,搜索是不可避免的 ———— Nilsson 一个物理符号系统解决任何智能问题的充分和必 要条件 ———— Newell
搜索法简介
搜索法是人工智能中问题求解的基本方法 可大致分为有信息搜索和无信息搜索 约束满足问题和博弈问题的求解均可表述为搜索 过程 Agent的学习过程亦可表述为搜索过程 搜索法的本质是在状态空间中从问题的初始状态 搜索到通向目标状态的路径
搜索算法的评价
搜索法要处理的是状态空间图 在人工智能领域,状态空间图是由初始状态和后 继函数隐含表示的(与通常的计算机图搜索算法 不同) 搜索算法可从以下三个方面评价: b:分支因子 d:最浅目标节点的深度 m:状态空间中最大路径长度(考虑耗散)
问题的形式化
搜索法首先要对问题进行形式化描述 问题通常可形式化定义为下述四个部分 Agent所处的初始状态 Agent可采纳的行动:后继函数 目标测试:确定当前状态是否是目标状态 路径耗散函数:为每条路径分配量化的耗散值
A*算法
A*算法的要求: 启发函数满足可采纳约束: h(n) h* (n) 其中 h* ( n) 是节点n到目标节点的最低耗散 一致性约束: h(n) c(n, a, n ) h(n ) 1 1 A*算法是可采纳算法:当解存在时能保证找到最优解 当满足 n, h(n) h* (n) 时,A*算法效率最高
wk.baidu.com索法简介
当前的智能计算方法本质上也是搜索方法,如神 经网络、遗传算法、蚁群算法等 搜索法的设计主要考虑解路径的耗散值以及搜索 过程中的耗散值——耗费最低化
算法性能的评价
评价算法性能的四个方面: 完备性:有解时能保证找到解(可判定问题) 最优性:能否找到最优解 时间复杂度 空间复杂度
禁忌搜索(TS)算法
Glover于1986年提出 特点: 具有记忆功能,可有效避免局部最优 适用于多参数优化问题
双向搜索
思想基础: bd 2 bd 2 bd 从初始状态和目标状态同时开始相向搜索,形成两棵 搜索树 若某一待扩展节点出现在另一棵搜索树中,则找到解 后向搜索较难实现,无固定方法
启发式搜索
使用启发信息,对待扩展节点到目标节点的距离给 出估计 定义: f (n) g (n) h(n) f(n):对经过节点n的最低耗散解的估计值 g(n):初始节点到节点n的路径耗散 h(n):从节点n到目标节点的耗散估计值 每次首先扩展队列中具有最低f(n)的节点
代价一致搜索: 与广度优先搜索类似,但首先扩展耗费最低的节 点 须保证算法的完备性(为每一步设定最小耗散) c* 最坏时间复杂度为 O(b )
深度优先搜索
首先扩展搜索树中最深最边缘的未扩展节点 通常通过LIFO的栈实现 空间复杂度低, O(bm) 对于状态复杂的问题,可变形为回溯搜索,空间复 杂度降为 O(m) m O ( b ) 最坏时间复杂度 通常应用中变形为深度有限搜索(需要知识的支 持)O(bl ), 通常l<m
A*算法的复杂性估计
若h(n)满足: h * ( n) h( n) 1 p 0 h * ( n) m, 则有: E( z) ~ O(ecN ), c0 故A*并不能保证克服指数爆炸 非指数级增长的条件:
h(n) h* (n) O(log h* (n))
举例:八数码问题
盲目搜索
广度优先搜索: 在下一层节点被扩展之前保证本层节点都被扩展 通常用FIFO队列实现 能保证找到最浅的目标节点(不一定是最优的) 在单步耗散相同时是最优算法 空间复杂度大, O(bd 1 ) 目标节点较深时,时间复杂度亦很大
盲目搜索