第一章人工智能蔡自兴.pptxVIP

  • 8
  • 0
  • 约1.91万字
  • 约 112页
  • 2021-08-11 发布于北京
  • 举报
第一章 搜索问题内容: 状态空间的搜索问题。搜索方式:盲目搜索启发式搜索关键问题: 如何利用知识,尽可能有效地找到问题的解(最佳解)。搜索问题(续1)S0问题全状态空间搜索空间解路径Sg搜索问题(续2)讨论的问题:有哪些常用的搜索算法。问题有解时能否找到解。找到的解是最佳的吗?什么情况下可以找到最佳解?求解的效率如何。1.1 回溯策略例:皇后问题( )Q( )((1,1))QQ( )((1,1))((1,1) (2,3))Q( )((1,1))((1,1) (2,3))QQ( )((1,1))((1,1) (2,3))((1,1) (2,4))QQ( )Q((1,1))((1,1) (2,3))((1,1) (2,4))((1,1) (2,4) (3.2))QQ( )((1,1))((1,1) (2,3))((1,1) (2,4))((1,1) (2,4) (3.2))Q( )((1,1))((1,1) (2,3))((1,1) (2,4))((1,1) (2,4) (3.2))( )((1,1))((1,1) (2,3))((1,1) (2,4))((1,1) (2,4) (3.2))Q( )((1,1))((1,2))((1,1) (2,3))((1,1) (2,4))((1,1) (2,4) (3.2))QQ( )((1,1))((1,2))((1,1) (2,3))((1,1) (2,4))((1,2) (2,4))((1,1) (2,4) (3.2))QQ( )Q((1,1))((1,2))((1,1) (2,3))((1,1) (2,4))((1,2) (2,4))((1,1) (2,4) (3.2))((1,2) (2,4) (3,1))QQ( )Q((1,1))((1,2))Q((1,1) (2,3))((1,1) (2,4))((1,2) (2,4))((1,1) (2,4) (3.2))((1,2) (2,4) (3,1))((1,2) (2,4) (3,1) (4,3))回溯策略回溯策略属于盲目搜索的一种。回溯策略是这样一种策略: 首先将规则给出一个固定排序,在搜索时,对当前状态依次检查每条规则,在当前状态未使用过的规则中找到第一条可应用规则应用于当前状态,得到的新状态设置为当前状态,并重复以上搜索。 如果当前状态无规则可用,或者所有规则已经用过仍未找到问题的解,则将当前状态的前一个状态(即直接生成该状态的状态)设置为当前的状态。重复以上搜索,直到找到问题的解。 从前有座山……从前有座山…… 从前有座山……递归的思想回溯有多种实现方法,其中递归是一种最直接的实现方法.回溯搜索算法 递归过程:BACKTRACK(DATA) DATA:当前状态。 返回值:从当前状态到目标状态的路径 (以规则表的形式表示) 或FAIL。回溯搜索算法递归过程BACKTRACK(DATA)1, IF TERM(DATA) RETURN NIL; //满足结束条件时返回2, IF DEADEND(DATA) RETURN FAIL; //不合法状态的回溯点3, RULES:=APPRULES(DATA);//可应用规则集4, LOOP: IF NULL(RULES) RETURN FAIL; //全部规则均失败的回溯点5, R:=FIRST(RULES);6, RULES:=TAIL(RULES); //删去第一条规则,减少可应用规则表的长度7, RDATA:=GEN(R, DATA); //调用规则R作用于当前状态,生成新状态8, PATH:=BACKTRACK(RDATA);//对新状态递归调用9, IF PATH=FAIL GO LOOP;10, RETURN CONS(R, PATH); //返回解路径规则表递归的思想(续)当前状态nriri-1mir2r1mi-1m2m1目标状态t当前状态存在问题及解决办法问题:深度问题死循环问题解决办法:对搜索深度加以限制记录从初始状态到当前状态的路径QQQQ3 2 2 3一些深入问题在回溯策略中,也可以引入一些与问题有关的信息来加快搜索解的速度。 基本思想(以皇后问题为例): 尽可能选取划去对角线上位置数最少的。回溯搜索算法1BACKTRACK1(DATALIST) DATALIST:从初始到当前的状态表(逆向) 返回值:从当前状态到目标状态的路径 (以规则表的形式表示) 或FAIL。回溯搜索算法11, DATA:=FIRST(DATALIST) //设置DATA为当前状态2, IF MENBE

文档评论(0)

1亿VIP精品文档

相关文档