状态空间搜索解读

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算机与信息学院 刘勇








3、基于搜索的问题求解模式
问题的形式化:将环境状态简化为适于问题求解 的状态,用状态空间图描述问题。
给出初始状态 设计算子:对动作建模 目标函数:目标的形式化 给出路径代价函数
求解过程:在状态空间图中找到一条从初始结点 到达目标的路径。这条路径上的所有边对应算子 组成的序列,就是解决问题的一个方案 关键技术:搜索
目标状态








1 2 7 5 8 3 4 6
right up left
1 2 7 5 8 3 4 6
up left
1 2 7 5 3 4 8 6
right up down left
1 2 7 5 8 3 4 6
right up
……
计算机与信息学院 刘勇








二. 状态搜索法
1、状态(State)的基本概念
计算机与信息学院 刘勇








问题实例——八数码问题
状态:8个棋子在3×3 的棋盘上的任意一个 摆放 初始状态:右上图 算子(后继函数): left、right、up、down 目标函数:右下图 路径代价:1
计算机与信息学院 刘勇
1 2 7 5 8 3 4 6
初始状态
1 2 3 4 5 6 7 8
计算机与信息学院 刘勇








深度优先搜索
open
1 2 3 4 5 6 7 8 9 10 A B,F C,D,E,F D,E,F E,F F G,I H,I I
close
A A,B A,B,C A,B,C,D A,B,C,D,E A,B,C,D,E,F A,B,C,D,E,F,G A,B,C,D,E,F,G,H A,B,C,D,E,F,G,H,I








常用搜索策略
基础知识 状态空间搜索法 与或树搜索法 博弈树搜索法
随机搜索-遗传算法
分析与讨论
计算机与信息学院 刘勇








一. 基础知识
1、为何要搜索?
人工智能所要解决的问题大部分是结构不良或非 结构化的问题,对这样的问题一般不存在成熟的算法 可供利用,而只能是利用已有的知识一步丛地摸索着 前进。如何确定推理路线,使其付出的代价尽可能的 少,而问题又能得到较好的解决? 在人工智能中,即使对结构性能较好,理论上有 算法可依的问题,由于问题本身的复杂性以及计算机 在时间、空间上的局限性,也需要通过搜索来求解。
计算机与信息学院 刘勇








4. 状态空间搜索数据结构表示
计算机与信息学院 刘勇








5. 状态空间搜索一般过程
计算机与信息学院 刘勇








计算机与信息学院 刘勇








6. 常用搜索方法 (盲目Blindfold+启发式Heuristic)
计算机与信息学院 刘勇
可把状态空间记为三元状态(S,F,G)。
计算机与信息学院 刘勇








2、状态空间的搜索策略
计算机与信息学院 刘勇








3. 状态空间的一般搜索过程
对一个确定的具体问题来说,与解题有关的状态空 间往往只是整个状态空间的一部分,因此只要能生成并 存储这部分状态空间就可求得问题的解。 人工智能采用的基本思想:首先把问题的初始状态( 即初始节点)作为当前状态,选择适用的算符对其进行 操作,生成一组子状态(或称后继状态、后继节点、于 节点),然后检查目标状态是否在其中出现。若出现, 则搜索成功,找到了问题的解;若不出现,则按某种搜 索策略从已生成的状态中再选一个状态作为当前状态。 重复上述过程,直到目标状态出现或者不再有可供操作 的状态及算符时为止。
计算机与信息学院 刘勇






应wenku.baidu.com

广度优先搜索
open
1 2 A B,F
close
A
A B C D E G H F I
3 4 5 6 7 8 9
F,C,D,E C,D,E,G,I D,E,G,I E,G,I G,I I,H H
A,B A,B,F A,B,F,C A,B,F,C,D A,B,F,C,D,E A,B,F,C,D,E,G A,B,F,C,D,E,G,I
计算机与信息学院 刘勇








B2 深度优先搜索(depth-first search)
A B C D E F G H I
A B C D E G H F I
新扩展出的节 点先被考察
计算机与信息学院 刘勇








深度优先搜索算法
1. 初始化open表、close表为空,定义S为初始状态 结点 2. 将S 放入open表中 3. 如果open表为空,则搜索失败,否则从open表中 取出第一个结点N,将N放入close表中 4. 如果N是目标结点,搜索成功,返回N 5. 对N的每一个子结点 i,如果open表和close表中 都没有结点i,那么将结点i其插入到open表的第 一个元素之前 6. goto 3
计算机与信息学院 刘勇








2、搜索的定义和分类?
定义:根据问题的实际情况不断寻找可利用的知识, 从而构造一条代价较少的推理路线,使问题得到圆满 解决的过程称为搜索。 分类:盲目搜索和启发式搜索。
盲目搜索是按预定的控制策略进行搜索,在搜索过程中获 得的中间信息不用来改进控制策略。效率不高,不便于复杂问 题的求解。 启发式搜索是在搜索中加入了与问题有关的启发性信息, 用以指导搜索朝着最有希望的方向前进,加速问题的求解过程 并找到最优解。








B1 广度优先搜索
breadth-first search,BFS A B F C D E G I
A B C D E G H F I
先扩展出的节 点先被考察
计算机与信息学院 刘勇








广度优先搜索算法
1. 初始化open表、close表为空,定义S为初始状态 结点 2. 将S放入到open表中 3. 如果open表为空,则搜索失败,否则从open表中 取出第一个结点N,将N放入到close表中。 4. 如果N是目标结点,搜索成功,返回N 5. 对N的每一个子结点 i,如果open表和close表中 都没有结点i,那么将结点i其追加到open表的最 后一个元素之后 6. goto 3
相关文档
最新文档