搜索问题_人工智能讲义

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
((1,1) (2,3))
() ((1,1)) ((1,1) (2,3)) ((1,1) (2,4))
Q Q
() ((1,1)) ((1,1) (2,3)) ((1,1) (2,4)) ((1,1) (2,4) (3.2))
Q Q
Q
() ((1,1)) ((1,1) (2,3)) ((1,1) (2,4)) ((1,1) (2,4) (3.2))
搜索过程的要点是:
1) 从初始或目的状态出发,并将它作为当前状态。 2) 扫描操作算子集合,将适用于当前状态的一些操作算子作用
在其上得到新的状态,并建立新状态与父母节点的连接指针。 3) 检查生成的新状态是否是结束状态,如果是,则沿着有关指
针从结束状态反向到达开始状态,给出一个解;否则,将新 状态作为当前状态,返回第2)步继续搜索。
1
3.1 状态空间搜索概述 3.2 回溯策略 3.3 图搜索策略 3.4 盲目的图搜索过程 3.5 启发式图搜索过程
人类的实际搜索行为
人工智能所要解决的问题大部分不具备明确的解题 步骤,而只能是利用已有的知识一步一步地摸索前 进。
根据问题的实际情况不断寻找可利用的知识,从而 构造一条代价较少的推理路线,使问题得到圆满解 决的过程称之为搜索 。
◦ 以上问题等价于在图中寻找从根节点到某个(或某些)目 标节点的一条(或一组)路径。
为提供对问题的形式描述,需要: 1. 定义状态空间,包含问题相关对象的各种可能排列。对空间的
定义不必枚举所有状态。 2. 规定一个或多个属于该空间的初始状态。该状态用以描述问题
求解过程开始时的状态。 3. 规定一个或多个属于该空间的目标状态。该状态用以判断是否
求与或图解图的搜索策略: AO*、 Minimax、Alpha-beta Pruning、 Heuristic Pruning.
◦ 8数码问题 ◦ 传教士和野人问题 ◦ 旅行商问题 ◦ 4皇后问题 ◦ 迷宫问题 ◦ 博弈问题 ◦ …………
搜索算法的输入是给定的问题,输出时表示为动 作序列的方案。
搜索法的主要任务:确定以何种方式选择规则?
求任一解路的搜索策略: backtracking、 Hill Climbing、 Breadth-first、 Depth-first、Beam Search、 Best-first (A).
求最佳解路的搜索策略:British Museum、Branch and Bound、 Dynamic Programming、Optimal search (A*).
S0ຫໍສະໝຸດ BaiduSg
◦ 有哪些常用的搜索算法。 ◦ 问题有解时能否找到解。 ◦ 找到的解是最佳的吗? ◦ 什么情况下可以找到最佳解? ◦ 求解的效率如何。
盲目搜索
只是可以区分出哪个 是目标状态。
一般是按预定的搜索 策略进行搜索。
没有考虑到问题本身 的特性,这种搜索具 有很大的盲目性,效 率不高,不便于复杂 问题的求解。
一旦有了方案,就可以执行该方案所给出的动作 了。(执行阶段)
求解问题包括: ◦ 目标表示 ◦ 搜索 ◦ 执行
内容: 状态空间的搜索问题。
搜索方式:
◦ 盲目搜索 ◦ 启发式搜索
关键问题: 如何利用知识,尽可能有效地找到问题的解(最 佳解)。
3.1.1 图的概念
◦ 图是节点及连接节点的弧的集合。 ◦ 由方向性的弧连接的图是有向图。 ◦ 节点深度的表示:根节点深度为0,其他节点深度dn+1=dn+1。 ◦ 路径:N个有序节点组成的序列中,若每对相邻节点都表示一条弧,则称
得到了问题的解。 4. 规定一组规则。描述可使用的操作或算子。
将待求解问题转换成状态空间描述后,使用控制策略对规则进 行选择性的应用,在问题状态空间内进行搜索,直到找出从初 始状态到目标状态的一条(或一组)路径。
状态空间图的搜索,是搜索满足条件的一个(或一组)操作 算子序列的过程,这个过程也是将一个隐式图中包含目的节点的 某个子图变为显式的过程。这种搜索过程是状态空间问题求解的 主要基础。
启发式搜索
是在搜索过程中加入 了与问题有关的启发 式信息,用于指导搜 索朝着最有希望的方 向前进,加速问题的 求解并找到最优解。
回溯策略是一种尝试状态空间中各种不同路径的技术。 带回溯策略的搜索从初始状态出发,不停地、试探地寻找路径直
到找到目标节点或“不可解节点”—“死胡同”。
◦ 找到目标节点,退出搜索,返回解路径。 ◦ 遇到不可解节点时,回溯到路径中最近的父节点上,查看该节点是否还有
◦ 要求:找出所有的摆法
状态描述:
◦ 单个皇后位置的描述: 用(i,j)表示皇后在第i行j 列
◦ 系统状态的描述 四个皇后
((i1,j1), (i2,j2), (i3,j3), (i4,j4))
()
Q ()
((1,1))
() ((1,1)) ((1,1) (2,3))
Q Q
Q () ((1,1))
图是最直观的描述问题状态空间的工具,属于显 式描述。
图中的节点表示问题的状态,图中的弧表示状态 之间的关系。
初始状态对应待求解问题的已知信息,是图的根 节点。
状态空间法将一个待定问题的求解过程定义为若干 算子与搜索的有机结合体。
◦ 算子定义了对状态的操作,求解的目的在于找出从初始状 态转换为某个(或某些)目标状态的一个(或一组)操作 算子序列。
其他子节点未被扩展,如有则沿这些子节点继续搜索。
可以看出,这种求解过程呈现出递归过程的性质。求解过程在每 个节点上的检查遵循着递归方式。
递归法是回溯策略的一种最直接的实现方法。
例:四皇后问题
◦ 在4×4方格的棋盘内, 放置四个皇后
◦ 使任意两个皇后不在同一 行、同一列、同一对角线 (斜线)上
该序列为图中长度为N-1的一条路径。 ◦ 路径耗散值:令C(ni,nj)为节点ni到节点nj这段路径(或弧线)的耗散
值,一条路径的耗散值等于这条路径上所有弧线耗散值的总和。路径耗散 值可按如下递归公式计算:C(ni,t)=C(ni,nj)+C(nj,t) ◦ 节点的扩展:操作符(规则)作用到节点(对应于某一状态描述)上,生 成其所有后继节点(新状态),并给出弧线的耗散值(相当于使用规则的 代价),这个过程叫做扩展一个节点。
相关文档
最新文档