第3章(搜索推理技术1-图盲目搜索)ppt课件.ppt
从使用情况来看,闭胸式的使用比较广泛。敞开式盾构之中有挤压式盾构、全部敞开式盾构,但在近些年的城市地下工程施工中已很少使用,在此不再说明。第第3章章 搜索推理原理搜索推理原理 3.1 图的搜索策略图的搜索策略3.2 盲目搜索盲目搜索3.3 启发式搜索启发式搜索3.4 与或树搜索(与或树搜索(补充补充)3.5 博弈树搜索(博弈树搜索(补充补充)3.6 消解原理消解原理从使用情况来看,闭胸式的使用比较广泛。敞开式盾构之中有挤压式盾构、全部敞开式盾构,但在近些年的城市地下工程施工中已很少使用,在此不再说明。解决实际问题的两个关键之处解决实际问题的两个关键之处:问题的表达问题的表达 状态空间法状态空间法 问题归约法问题归约法 谓词逻辑法谓词逻辑法问题的求解问题的求解 搜索技术搜索技术 推理技术推理技术从使用情况来看,闭胸式的使用比较广泛。敞开式盾构之中有挤压式盾构、全部敞开式盾构,但在近些年的城市地下工程施工中已很少使用,在此不再说明。盲目与启发式搜索盲目与启发式搜索:状态空间法、图的搜索技术:状态空间法、图的搜索技术与与或或树树搜搜索索:问问题题归归约约法法、与与或或图图的的特特例例的的搜搜索索技术技术博博弈弈树树搜搜索索:状状态态空空间间法法问问题题归归约约法法、双双人人博博弈的特殊搜索技术弈的特殊搜索技术消解原理消解原理:谓词逻辑法、推理技术:谓词逻辑法、推理技术从使用情况来看,闭胸式的使用比较广泛。敞开式盾构之中有挤压式盾构、全部敞开式盾构,但在近些年的城市地下工程施工中已很少使用,在此不再说明。3.1 图搜索策略图搜索策略 状态空间中状态空间中:状态状态初始状态初始状态目标状态目标状态操作符操作符图中有图中有:节点节点初始节点初始节点目标节点目标节点有向弧有向弧状态空间法与图的对应关系状态空间法与图的对应关系从使用情况来看,闭胸式的使用比较广泛。敞开式盾构之中有挤压式盾构、全部敞开式盾构,但在近些年的城市地下工程施工中已很少使用,在此不再说明。q在状态空间中,解是从在状态空间中,解是从初始状态初始状态到到目标状态目标状态的的操作符序列操作符序列q在图中,解是从在图中,解是从初始节点初始节点到到目标节点目标节点的一条的一条路路径径解的含义解的含义:从使用情况来看,闭胸式的使用比较广泛。敞开式盾构之中有挤压式盾构、全部敞开式盾构,但在近些年的城市地下工程施工中已很少使用,在此不再说明。图的搜索策略图的搜索策略:图搜索过程的一般步骤(图搜索过程的一般步骤(基本基本思路、框架思路、框架),经过细化后得到具体算法:),经过细化后得到具体算法:盲目搜索技术(盲目搜索技术(深度深度、宽度宽度、代价代价优先算法)优先算法)启发式搜索技术(启发式搜索技术(有序有序算法、算法、A*算法)算法)从使用情况来看,闭胸式的使用比较广泛。敞开式盾构之中有挤压式盾构、全部敞开式盾构,但在近些年的城市地下工程施工中已很少使用,在此不再说明。图搜索中的图搜索中的两个重要记号两个重要记号(符号):(符号):OPEN 表表:存放待扩展的节点存放待扩展的节点CLOSED 表表:存放已扩展的节点:存放已扩展的节点注意注意:在与或树搜索中也要用到这两张表:在与或树搜索中也要用到这两张表从使用情况来看,闭胸式的使用比较广泛。敞开式盾构之中有挤压式盾构、全部敞开式盾构,但在近些年的城市地下工程施工中已很少使用,在此不再说明。数据结构中数据结构中图的遍及图的遍及:从图某一个节点出发,:从图某一个节点出发,访问遍图中其余节点,且每一个节点仅仅被访问访问遍图中其余节点,且每一个节点仅仅被访问一次。一次。当前图的搜索技术中,有两个当前图的搜索技术中,有两个特殊之处特殊之处:搜索前,图并没有生成好,需要边搜索前,图并没有生成好,需要边生成生成图边图边搜索搜索搜索从起始节点(初始状态)开始,到目标节点搜索从起始节点(初始状态)开始,到目标节点(目标状态)结束,不需要搜索(目标状态)结束,不需要搜索所有所有可能的节点可能的节点从使用情况来看,闭胸式的使用比较广泛。敞开式盾构之中有挤压式盾构、全部敞开式盾构,但在近些年的城市地下工程施工中已很少使用,在此不再说明。盲目搜索盲目搜索是指无问题先验信息的搜索技术是指无问题先验信息的搜索技术特点特点:OPEN表中节点的排列是人为规定的表中节点的排列是人为规定的一般只适合于求解比较简单的一些问题一般只适合于求解比较简单的一些问题3.2 盲目搜索盲目搜索从使用情况来看,闭胸式的使用比较广泛。敞开式盾构之中有挤压式盾构、全部敞开式盾构,但在近些年的城市地下工程施工中已很少使用,在此不再说明。图的盲目搜索技术分成图的盲目搜索技术分成:宽度优先搜索技术宽度优先搜索技术深度优先搜索技术深度优先搜索技术等代价(代价优先)搜索技术等代价(代价优先)搜索技术从使用情况来看,闭胸式的使用比较广泛。敞开式盾构之中有挤压式盾构、全部敞开式盾构,但在近些年的城市地下工程施工中已很少使用,在此不再说明。3.2.1 宽度优先搜索宽度优先搜索 宽度优先搜索宽度优先搜索:以接近起始节点的程度依次扩展:以接近起始节点的程度依次扩展节点的搜索技术(即:离起始节点近的节点先被节点的搜索技术(即:离起始节点近的节点先被扩展)扩展)扩展节点的原则扩展节点的原则:先扩展出来的节点随后优先被:先扩展出来的节点随后优先被扩展(扩展(生成其所有的后继节点生成其所有的后继节点)从使用情况来看,闭胸式的使用比较广泛。敞开式盾构之中有挤压式盾构、全部敞开式盾构,但在近些年的城市地下工程施工中已很少使用,在此不再说明。从使用情况来看,闭胸式的使用比较广泛。敞开式盾构之中有挤压式盾构、全部敞开式盾构,但在近些年的城市地下工程施工中已很少使用,在此不再说明。把把起起始始节节点点放放到到 OPEN 表表中中(如如果果该该起起始始节节点点为一目标节点,则得到解为一目标节点,则得到解)如如果果 OPEN 是是个个空空表表,则则无无解解,失失败败退退出出;否则继续下一步否则继续下一步宽度优先搜索算法宽度优先搜索算法:从使用情况来看,闭胸式的使用比较广泛。敞开式盾构之中有挤压式盾构、全部敞开式盾构,但在近些年的城市地下工程施工中已很少使用,在此不再说明。把第一个节点把第一个节点(记作节点记作节点 n)从从 OPEN 表移出,表移出,并把它放入并把它放入 CLOSED 的已扩展节点表中的已扩展节点表中 扩扩展展节节点点 n。如如果果没没有有后后继继节节点点,则则转转向向第第步步从使用情况来看,闭胸式的使用比较广泛。敞开式盾构之中有挤压式盾构、全部敞开式盾构,但在近些年的城市地下工程施工中已很少使用,在此不再说明。把把 n 的的所所有有后后继继节节点点放放到到OPEN表表的的末末端端,并提供从这些后继节点回到并提供从这些后继节点回到 n 的指针的指针 如如果果 n 的的任任一一个个后后继继节节点点是是个个目目标标节节点点,则则找找到到一一个个解解(反反向向追追踪踪得得到到从从目目标标节节点点到到起起始始节点的路径节点的路径),成功退出,否则转向第),成功退出,否则转向第步步从使用情况来看,闭胸式的使用比较广泛。敞开式盾构之中有挤压式盾构、全部敞开式盾构,但在近些年的城市地下工程施工中已很少使用,在此不再说明。OPEN 表是存放待扩展的节点,从数据结构上表是存放待扩展的节点,从数据结构上来说,它是一个先进先出的队列来说,它是一个先进先出的队列CLOSED 表是存放已被扩展过的节点(包括表是存放已被扩展过的节点(包括有后继节点的非端节点和无后继节点的端节点)有后继节点的非端节点和无后继节点的端节点)说明说明:从使用情况来看,闭胸式的使用比较广泛。敞开式盾构之中有挤压式盾构、全部敞开式盾构,但在近些年的城市地下工程施工中已很少使用,在此不再说明。流程图流程图 从使用情况来看,闭胸式的使用比较广泛。敞开式盾构之中有挤压式盾构、全部敞开式盾构,但在近些年的城市地下工程施工中已很少使用,在此不再说明。搜搜索索过过程程产产生生的的节节点点和和指指针针构构成成一一棵棵隐隐式式定定义义的的状态空间树的子树,称之为状态空间树的子树,称之为搜索树搜索树注意几点注意几点:从使用情况来看,闭胸式的使用比较广泛。敞开式盾构之中有挤压式盾构、全部敞开式盾构,但在近些年的城市地下工程施工中已很少使用,在此不再说明。宽度优先搜索方法能够保证在搜索树中找到宽度优先搜索方法能够保证在搜索树中找到一条通向目标节点的一条通向目标节点的最短途径最短途径(所用操作符(所用操作符最少)最少)从使用情况来看,闭胸式的使用比较广泛。敞开式盾构之中有挤压式盾构、全部敞开式盾构,但在近些年的城市地下工程施工中已很少使用,在此不再说明。例:例:八数码问题八数码问题初始状态初始状态目标状态目标状态操作符:操作符:2831476512384765空空1243从使用情况来看,闭胸式的使用比较广泛。敞开式盾构之中有挤压式盾构、全部敞开式盾构,但在近些年的城市地下工程施工中已很少使用,在此不再说明。状态状态:长度为:长度为9的一维数组的一维数组 (q1,q2,q9)其其中中,qi 取取 0,1,8 个个数数,0 表表示示空空格格,且且取取值值互不相同互不相同 从使用情况来看,闭胸式的使用比较广泛。敞开式盾构之中有挤压式盾构、全部敞开式盾构,但在近些年的城市地下工程施工中已很少使用,在此不再说明。如果记空格的位置为如果记空格的位置为P,这时空格的移动规则是:,这时空格的移动规则是:123456789123456789PP-3P+1P+3P-1数字表示位置数字表示位置从使用情况来看,闭胸式的使用比较广泛。敞开式盾构之中有挤压式盾构、全部敞开式盾构,但在近些年的城市地下工程施工中已很少使用,在此不再说明。顺序顺序规则规则前提条件前提条件应用结果应用结果1左移左移P1,4,7P 位置与位置与 P-1 位置上的元素互换位置上的元素互换2上移上移P1,2,3 P-33下移下移P7,8,9 P+34右移右移P3,6,9 P+1空格移动规则空格移动规则P-3PP+3P-1P+1123456789从使用情况来看,闭胸式的使用比较广泛。敞开式盾构之中有挤压式盾构、全部敞开式盾构,但在近些年的城市地下工程施工中已很少使用,在此不再说明。为了记录后继节点与父节点之间的指针,我们将为了记录后继节点与父节点之间的指针,我们将长度为长度为 9 的数组扩大到长度为的数组扩大到长度为 11 的数组,其中的数组,其中一个元素记录该节点的父节点标志,另一个元素一个元素记录该节点的父节点标志,另一个元素记录操作符的序号记录操作符的序号操操作作符符父父节节点点状态状态从使用情况来看,闭胸式的使用比较广泛。敞开式盾构之中有挤压式盾构、全部敞开式盾构,但在近些年的城市地下工程施工中已很少使用,在此不再说明。OPEN表的存储形式表的存储形式:队列:队列插入端(队尾)插入端(队尾)删除端(队头)删除端(队头)队列队列:一种先进先出的线性表,允许在表的一:一种先进先出的线性表,允许在表的一端进行插入、另一端进行删除端进行插入、另一端进行删除从使用情况来看,闭胸式的使用比较广泛。敞开式盾构之中有挤压式盾构、全部敞开式盾构,但在近些年的城市地下工程施工中已很少使用,在此不再说明。CLOSED表的存储形式表的存储形式:也可以用队列:也可以用队列父父 符符插入端(队尾)插入端(队尾)特殊的队列特殊的队列:只进不出的队列,只允许在表的:只进不出的队列,只允许在表的一端进行插入一端进行插入从使用情况来看,闭胸式的使用比较广泛。敞开式盾构之中有挤压式盾构、全部敞开式盾构,但在近些年的城市地下工程施工中已很少使用,在此不再说明。某一个节点的父节点标志某一个节点的父节点标志:记录记录CLOSED表中的父节点的序号表中的父节点的序号起始节点的父节点标志和操作符起始节点的父节点标志和操作符:不作记录或记录为负不作记录或记录为负从使用情况来看,闭胸式的使用比较广泛。敞开式盾构之中有挤压式盾构、全部敞开式盾构,但在近些年的城市地下工程施工中已很少使用,在此不再说明。搜索过程搜索过程(按照程序运行方式)(按照程序运行方式)起始节点放到起始节点放到OPEN表表283104765 OPEN不为空,继续不为空,继续28314765从使用情况来看,闭胸式的使用比较广泛。敞开式盾构之中有挤压式盾构、全部敞开式盾构,但在近些年的城市地下工程施工中已很少使用,在此不再说明。将第一个节点将第一个节点 n 从从 OPEN 表中移出,并放到表中移出,并放到CLOSED表中表中00283104765OPEN表表CLOSED表表节点节点n1从使用情况来看,闭胸式的使用比较广泛。敞开式盾构之中有挤压式盾构、全部敞开式盾构,但在近些年的城市地下工程施工中已很少使用,在此不再说明。扩展节点扩展节点n 283014765 203184765 283164705 28314076500283104765扩扩展展28314765从使用情况来看,闭胸式的使用比较广泛。敞开式盾构之中有挤压式盾构、全部敞开式盾构,但在近些年的城市地下工程施工中已很少使用,在此不再说明。将节点将节点 n 的所有后继节点放到的所有后继节点放到 OPEN 表的末表的末端,并提供这些后继节点回到端,并提供这些后继节点回到 n 的指针的指针11283014765122031847651328316470514283140765OPEN表表符符父父00283104765CLOSED从使用情况来看,闭胸式的使用比较广泛。敞开式盾构之中有挤压式盾构、全部敞开式盾构,但在近些年的城市地下工程施工中已很少使用,在此不再说明。后继节点中无目标节点,转到后继节点中无目标节点,转到 OPEN表不为空,继续表不为空,继续从使用情况来看,闭胸式的使用比较广泛。敞开式盾构之中有挤压式盾构、全部敞开式盾构,但在近些年的城市地下工程施工中已很少使用,在此不再说明。将第一个节点将第一个节点 n 从从 OPEN 表中移出,并放到表中移出,并放到CLOSED 表中表中OPEN表表CLOSED表表1220318476513283164705142831407650028310476511283014765节节点点n12从使用情况来看,闭胸式的使用比较广泛。敞开式盾构之中有挤压式盾构、全部敞开式盾构,但在近些年的城市地下工程施工中已很少使用,在此不再说明。扩展节点扩展节点 n 083214765 2837140651128301476528314765从使用情况来看,闭胸式的使用比较广泛。敞开式盾构之中有挤压式盾构、全部敞开式盾构,但在近些年的城市地下工程施工中已很少使用,在此不再说明。将节点将节点 n 的所有后继节点放到的所有后继节点放到 OPEN 表的末表的末端,并提供这些后继节点回到端,并提供这些后继节点回到 n 的指针的指针122031847651328316470514283140765OPEN表表 2 2083214765 2 3283714065从使用情况来看,闭胸式的使用比较广泛。敞开式盾构之中有挤压式盾构、全部敞开式盾构,但在近些年的城市地下工程施工中已很少使用,在此不再说明。.一直继续下去,而且不产生已经产生过的节点一直继续下去,而且不产生已经产生过的节点(状态),防止死循环。在程序中每一个新产(状态),防止死循环。在程序中每一个新产生的节点必须与生的节点必须与 OPEN 和和 CLOSED 表中状态表中状态进行比较,判断是否已经产生过,只保留从未进行比较,判断是否已经产生过,只保留从未产生过的节点产生过的节点从使用情况来看,闭胸式的使用比较广泛。敞开式盾构之中有挤压式盾构、全部敞开式盾构,但在近些年的城市地下工程施工中已很少使用,在此不再说明。最后的最后的OPEN表:表:93234180765103283064175112283160754121208143765131283145706144830214765143813204765152283704615154283714650163123784065164123804765目标节点目标节点12384765从使用情况来看,闭胸式的使用比较广泛。敞开式盾构之中有挤压式盾构、全部敞开式盾构,但在近些年的城市地下工程施工中已很少使用,在此不再说明。最后的最后的CLOSED表:表:2831047651128301476512203184765132831647051428314076522083214765232837140653102318476534230184765123456789从使用情况来看,闭胸式的使用比较广泛。敞开式盾构之中有挤压式盾构、全部敞开式盾构,但在近些年的城市地下工程施工中已很少使用,在此不再说明。4128316407544283164750522801437505328314576064803214765742837146058312308476510111213141516164123804765目标节点目标节点从使用情况来看,闭胸式的使用比较广泛。敞开式盾构之中有挤压式盾构、全部敞开式盾构,但在近些年的城市地下工程施工中已很少使用,在此不再说明。83123084765164123804765目标节点目标节点310231847651681220318476528310476531从使用情况来看,闭胸式的使用比较广泛。敞开式盾构之中有挤压式盾构、全部敞开式盾构,但在近些年的城市地下工程施工中已很少使用,在此不再说明。2831476528314765231847652831647528314765214383214765283714652318476523184765281437652831647528316475283145768321476528371465123847652341876528364175283167542814376528314576832147658132476512378465123847652837461528371465先生成的先生成的节点在左节点在左目标目标节点节点从使用情况来看,闭胸式的使用比较广泛。敞开式盾构之中有挤压式盾构、全部敞开式盾构,但在近些年的城市地下工程施工中已很少使用,在此不再说明。(先扩展的节点画在左边)(先扩展的节点画在左边)生成后继节生成后继节点的顺序点的顺序从使用情况来看,闭胸式的使用比较广泛。敞开式盾构之中有挤压式盾构、全部敞开式盾构,但在近些年的城市地下工程施工中已很少使用,在此不再说明。OPEN与与CLOSED表的存储形式的简化表的存储形式的简化CLOSEDOPEN加入扩展节点加入扩展节点从使用情况来看,闭胸式的使用比较广泛。敞开式盾构之中有挤压式盾构、全部敞开式盾构,但在近些年的城市地下工程施工中已很少使用,在此不再说明。状态:状态:11 1状态:状态:21 2状态:状态:31 3状态:状态:41 4状态:状态:52 2状态:状态:62 3状态:状态:73 1状态:状态:83 4状态:状态:94 1状态:状态:104 4状态:状态:115 2状态:状态:125 3状态:状态:136 4状态:状态:1474状态:状态:1583状态:状态:1693状态:状态:1710 3状态:状态:1811 2状态:状态:1912 1状态:状态:2013 1状态:状态:2114 4状态:状态:2214 3状态:状态:2315 2状态:状态:2415 4状态:状态:2516 3状态:状态:2616 4状态:状态:27CO123456789101112131415161718192021222324252627CO从使用情况来看,闭胸式的使用比较广泛。敞开式盾构之中有挤压式盾构、全部敞开式盾构,但在近些年的城市地下工程施工中已很少使用,在此不再说明。人人4S3E2N1W(1,1)N(2,3)(2,4)NS(2,2)(1,4)(3,4)WE(3,2)(3,1)ES(3,3)(4,4)ES目目标标节节点点X例:例:迷宫问题迷宫问题从使用情况来看,闭胸式的使用比较广泛。敞开式盾构之中有挤压式盾构、全部敞开式盾构,但在近些年的城市地下工程施工中已很少使用,在此不再说明。例:四皇后问题例:四皇后问题QQQQQQQQQQQQQQQQQQQXQQQQQQQQQXQQQQX从使用情况来看,闭胸式的使用比较广泛。敞开式盾构之中有挤压式盾构、全部敞开式盾构,但在近些年的城市地下工程施工中已很少使用,在此不再说明。大家听懂了大家听懂了“宽度优先算法宽度优先算法”?基本听懂(基本听懂(85以上)以上)大概听懂(大概听懂(70以上)以上)似懂非懂(似懂非懂(50左右)左右)没有听懂(没有听懂(25以下)以下)从使用情况来看,闭胸式的使用比较广泛。敞开式盾构之中有挤压式盾构、全部敞开式盾构,但在近些年的城市地下工程施工中已很少使用,在此不再说明。课堂作业课堂作业(写上学号与姓名)写上学号与姓名)根据下列迷宫,用根据下列迷宫,用宽度优先搜索算法宽度优先搜索算法寻找出从入寻找出从入口到出口的一条路径口到出口的一条路径状态状态:用极坐标表示的人的:用极坐标表示的人的位置位置操作符操作符:人向左方、前方、:人向左方、前方、右方前进右方前进提示提示:不要产生已有的状态:不要产生已有的状态从使用情况来看,闭胸式的使用比较广泛。敞开式盾构之中有挤压式盾构、全部敞开式盾构,但在近些年的城市地下工程施工中已很少使用,在此不再说明。(6,0)人人向左向左1向右向右3向前向前2(4,0)前前右右(6,45)(4,45)(2,0)前前右右左左(2,45)前前(4,90)(0,0)前前右右(2,90)右右(6,90)出口出口宽度优先搜索算法宽度优先搜索算法(没有生成已有的状态没有生成已有的状态)先在左先在左XX从使用情况来看,闭胸式的使用比较广泛。敞开式盾构之中有挤压式盾构、全部敞开式盾构,但在近些年的城市地下工程施工中已很少使用,在此不再说明。(6,0)向左向左1(4,0)前前右右(4,45)(2,0)前前前前(2,45)右右(4,90)(0,0)前前右右(6,90)出口出口宽度优先搜索算法宽度优先搜索算法先在左先在左X人人向右向右3向前向前2从使用情况来看,闭胸式的使用比较广泛。敞开式盾构之中有挤压式盾构、全部敞开式盾构,但在近些年的城市地下工程施工中已很少使用,在此不再说明。课堂作业存在主要问题:课堂作业存在主要问题:1、搜索过程画成图的形式,将导致反向追踪路、搜索过程画成图的形式,将导致反向追踪路径出现歧义径出现歧义2、操作符使用混乱,搜索树不规范。、操作符使用混乱,搜索树不规范。3、画出整棵搜索树、画出整棵搜索树从使用情况来看,闭胸式的使用比较广泛。敞开式盾构之中有挤压式盾构、全部敞开式盾构,但在近些年的城市地下工程施工中已很少使用,在此不再说明。3.2.2 深度优先搜索深度优先搜索 深度优先搜索策略深度优先搜索策略是先扩展最新产生的是先扩展最新产生的(即最深的即最深的)节点节点 从使用情况来看,闭胸式的使用比较广泛。敞开式盾构之中有挤压式盾构、全部敞开式盾构,但在近些年的城市地下工程施工中已很少使用,在此不再说明。节点的深度;节点的深度;、起起始始节节点点(即即根根节点节点)的深度为的深度为0。、任任何何其其它它节节点点的的深深度度等等于于其其父父辈辈节点深度加上节点深度加上1。从使用情况来看,闭胸式的使用比较广泛。敞开式盾构之中有挤压式盾构、全部敞开式盾构,但在近些年的城市地下工程施工中已很少使用,在此不再说明。深深度度优优先先搜搜索索的的基基本本思路思路:先先扩扩展展最最深深的的节节点点。当当出出现现没没有有后后继继节节点点时时,换换到到旁旁边边的的次次深深节点节点后生成的节点画在左边后生成的节点画在左边从使用情况来看,闭胸式的使用比较广泛。敞开式盾构之中有挤压式盾构、全部敞开式盾构,但在近些年的城市地下工程施工中已很少使用,在此不再说明。把把起起始始节节点点 S 放放到到未未扩扩展展节节点点的的 OPEN 表表中中。如果此节点为一目标节点,则得到解如果此节点为一目标节点,则得到解 如果如果 OPEN 为一空表,则无解、失败退出为一空表,则无解、失败退出含有深度界限的深度优先搜索算法含有深度界限的深度优先搜索算法:从使用情况来看,闭胸式的使用比较广泛。敞开式盾构之中有挤压式盾构、全部敞开式盾构,但在近些年的城市地下工程施工中已很少使用,在此不再说明。深度界限的设置:深度界限的设置:q为了避免出现过深的路径,搜索过程要设为了避免出现过深的路径,搜索过程要设置一个深度界限置一个深度界限q对于等于深度界限的任何节点,当作没有对于等于深度界限的任何节点,当作没有后继节点的节点来看待后继节点的节点来看待缺点缺点:可能丢失解:可能丢失解从使用情况来看,闭胸式的使用比较广泛。敞开式盾构之中有挤压式盾构、全部敞开式盾构,但在近些年的城市地下工程施工中已很少使用,在此不再说明。把第一个节点把第一个节点(记作节点记作节点 n)从从 OPEN 表移到表移到 CLOSED 表表 如果节点如果节点 n 的深度等于最大深度,则转向的深度等于最大深度,则转向从使用情况来看,闭胸式的使用比较广泛。敞开式盾构之中有挤压式盾构、全部敞开式盾构,但在近些年的城市地下工程施工中已很少使用,在此不再说明。扩扩展展节节点点 n,产产生生其其全全部部后后继继节节点点,并并把把它它们们放放入入 OPEN 表表的的前前头头。如如果果没没有有后后继继节节点,则转向点,则转向 如如果果后后继继节节点点中中有有任任一一个个节节点点为为目目标标节节点点,则则求求得得一一个个解解(反反向向追追踪踪从从目目标标节节点点到到起起始始节节点的路径点的路径),成功退出;否则,转向),成功退出;否则,转向从使用情况来看,闭胸式的使用比较广泛。敞开式盾构之中有挤压式盾构、全部敞开式盾构,但在近些年的城市地下工程施工中已很少使用,在此不再说明。从使用情况来看,闭胸式的使用比较广泛。敞开式盾构之中有挤压式盾构、全部敞开式盾构,但在近些年的城市地下工程施工中已很少使用,在此不再说明。从使用情况来看,闭胸式的使用比较广泛。敞开式盾构之中有挤压式盾构、全部敞开式盾构,但在近些年的城市地下工程施工中已很少使用,在此不再说明。说明说明:现在的现在的OPEN表是一个堆栈,后进先出表是一个堆栈,后进先出从使用情况来看,闭胸式的使用比较广泛。敞开式盾构之中有挤压式盾构、全部敞开式盾构,但在近些年的城市地下工程施工中已很少使用,在此不再说明。例:例:八数码问题八数码问题深度界限为深度界限为5后生成的节点画在左边后生成的节点画在左边从使用情况来看,闭胸式的使用比较广泛。敞开式盾构之中有挤压式盾构、全部敞开式盾构,但在近些年的城市地下工程施工中已很少使用,在此不再说明。深度界限为深度界限为4后生成的节点画在左边后生成的节点画在左边从使用情况来看,闭胸式的使用比较广泛。敞开式盾构之中有挤压式盾构、全部敞开式盾构,但在近些年的城市地下工程施工中已很少使用,在此不再说明。说明说明:状态旁边的数字表示该节点生成后继节点的状态旁边的数字表示该节点生成后继节点的顺序,即顺序,即CLOSED节点的存放顺序,不是本节点的存放顺序,不是本身被生成的顺序身被生成的顺序解是图中的虚线解是图中的虚线扩展过程中没有生成已有的节点扩展过程中没有生成已有的节点从使用情况来看,闭胸式的使用比较广泛。敞开式盾构之中有挤压式盾构、全部敞开式盾构,但在近些年的城市地下工程施工中已很少使用,在此不再说明。人人4S3E2N1W(1,1)N(2,3)(2,4)NS(2,2)E(3,2)(3,1)S例:例:迷宫问题迷宫问题(3,3)(3,4)(4,4)目标节点目标节点ENE后生成的节点后生成的节点在左边在左边没有已有节点没有已有节点从使用情况来看,闭胸式的使用比较广泛。敞开式盾构之中有挤压式盾构、全部敞开式盾构,但在近些年的城市地下工程施工中已很少使用,在此不再说明。宽度优先(先在左)宽度优先(先在左)深度优先深度优先(后在左)(后在左)人人4321从使用情况来看,闭胸式的使用比较广泛。敞开式盾构之中有挤压式盾构、全部敞开式盾构,但在近些年的城市地下工程施工中已很少使用,在此不再说明。例:四皇后问题例:四皇后问题QQQQQQQQQQXQQQQQQXQQQQ后在左后在左从使用情况来看,闭胸式的使用比较广泛。敞开式盾构之中有挤压式盾构、全部敞开式盾构,但在近些年的城市地下工程施工中已很少使用,在此不再说明。课堂作业课堂作业根据下列迷宫,用根据下列迷宫,用深度优先搜索算法深度优先搜索算法寻找出从入寻找出从入口到出口的一条路径口到出口的一条路径状态状态:用极坐标表示的人的:用极坐标表示的人的位置位置操作符操作符:人向左方、前方、:人向左方、前方、右方前进右方前进提示提示:不要产生已有的状态:不要产生已有的状态从使用情况来看,闭胸式的使用比较广泛。敞开式盾构之中有挤压式盾构、全部敞开式盾构,但在近些年的城市地下工程施工中已很少使用,在此不再说明。(6,0)人人向左向左1向右向右3向前向前2(4,0)前前右右(6,45)(4,45)前前前前(2,45)右右(4,90)左左(2,90)右右(6,90)出口出口深度优先搜索算法深度优先搜索算法(没有产生已有的节点)(没有产生已有的节点)后在左后在左从使用情况来看,闭胸式的使用比较广泛。敞开式盾构之中有挤压式盾构、全部敞开式盾构,但在近些年的城市地下工程施工中已很少使用,在此不再说明。(6,0)(4,0)前前右右(4,45)前前(2,45)右右(4,90)右右(6,90)出口出口深度优先搜索算法深度优先搜索算法(没有产生已有的节点)(没有产生已有的节点)后在左后在左人人向右向右3向前向前2从使用情况来看,闭胸式的使用比较广泛。敞开式盾构之中有挤压式盾构、全部敞开式盾构,但在近些年的城市地下工程施工中已很少使用,在此不再说明。思考题思考题:(每人独立完成):(每人独立完成)利用宽度优先与深度优先算法解决八数码问题?利用宽度优先与深度优先算法解决八数码问题?(要求用(要求用C/C+语言编写出核心代码,考核的指语言编写出核心代码,考核的指标分成零、一、二、五、多步)标分成零、一、二、五、多步)从使用情况来看,闭胸式的使用比较广泛。敞开式盾构之中有挤压式盾构、全部敞开式盾构,但在近些年的城市地下工程施工中已很少使用,在此不再说明。3.2.3 等代价搜索等代价搜索宽宽度度优优先先搜搜索索技技术术找找到到了了应应用用算算符符数数目目最最少少或者深度最浅的解或者深度最浅的解如如果果认认为为每每一一个个操操作作符符的的代代价价相相等等,则则宽宽度度优优先先搜搜索索技技术术就就可可以以找找到到了了代代价价最最小小的的路路径径或解或解从使用情况来看,闭胸式的使用比较广泛。敞开式盾构之中有挤压式盾构、全部敞开式盾构,但在近些年的城市地下工程施工中已很少使用,在此不再说明。所有操作符代所有操作符代价相等价相等找到最短的路找到最短的路径径宽度优先算法宽度优先算法操作符的代操作符的代价不相等价不相等找到代价最找到代价最小的路径小的路径等代价等代价(代价代价优先优先)搜索技搜索技术术问题问题推广推广推广推广从使用情况来看,闭胸式的使用比较广泛。敞开式盾构之中有挤压式盾构、全部敞开式盾构,但在近些年的城市地下工程施工中已很少使用,在此不再说明。宽度优先搜索宽度优先搜索:按照先后顺序取待扩展节点:按照先后顺序取待扩展节点等代价搜索等代价搜索:将初始节点到所有端节点(:将初始节点到所有端节点(OPEN中的节点中的节点)的局部路径中代价最小的端节点作)的局部路径中代价最小的端节点作为下一个要扩展的节点为下一个要扩展的节点 推广的思路推广的思路:从使用情况来看,闭胸式的使用比较广泛。敞开式盾构之中有挤压式盾构、全部敞开式盾构,但在近些年的城市地下工程施工中已很少使用,在此不再说明。宽度优先宽度优先搜索算法搜索算法等代价等代价搜索算法搜索算法注注:圆圈中的数字表示从起始节点到当前节:圆圈中的数字表示从起始节点到当前节点的代价点的代价从使用情况来看,闭胸式的使用比较广泛。敞开式盾构之中有挤压式盾构、全部敞开式盾构,但在近些年的城市地下工程施工中已很少使用,在此不再说明。符号符号c(i,j):从从节节点点 i 到到它它的的直直接接后后继继节节点点 j 的的连连接接弧弧线上的代价线上的代价g(i):从起始节点从起始节点 S 到某一节点到某一节点 i 的路径的代价的路径的代价从使用情况来看,闭胸式的使用比较广泛。敞开式盾构之中有挤压式盾构、全部敞开式盾构,但在近些年的城市地下工程施工中已很少使用,在此不再说明。选取待扩展节点的原则选取待扩展节点的原则:以以 g(i)的递增顺序排列的递增顺序排列OPEN表表以以 g(i)最小的节点作为下一个要扩展的最小的节点作为下一个要扩展的节点节点从使用情况来看,闭胸式的使用比较广泛。敞开式盾构之中有挤压式盾构、全部敞开式盾构,但在近些年的城市地下工程施工中已很少使用,在此不再说明。将将起起始始节节点点S放放到到未未扩扩展展节节点点表表OPEN中中。如如果果此此起起始始节节点点为为一一目目标标节节点点,则则求求得得一一个个解解。否则令否则令g(S)0 如果如果OPEN是空表,则无解,失败退出是空表,则无解,失败退出等代价搜索算法等代价搜索算法:从使用情况来看,闭胸式的使用比较广泛。敞开式盾构之中有挤压式盾构、全部敞开式盾构,但在近些年的城市地下工程施工中已很少使用,在此不再说明。从从OPEN表表中中选选择择一一个个节节点点 i,使使其其 g(i)为为最最小小。如如果果有有几几个个节节点点都都合合格格,则则分分两两种种情情况况,如如果果有有目目标标节节点点,则则选选择择一一个个目目标标节节点点作作为为节节点点 i;否否则则,从从中中任任选选一一个个节节点点作作为为节节点点 i。把把节节点点 i 从从OPEN表表移移至至扩扩展展节节点点表表CLOSED中中从使用情况来看,闭胸式的使用比较广泛。敞开式盾构之中有挤压式盾构、全部敞开式盾构,但在近些年的城市地下工程施工中已很少使用,在此不再说明。如如果果节节点点 i 为为目目标标节节点点,则则求求得得一一个个解解;否否则则,继续下一步继续下一步 扩扩展展节节点点 i。如如果果没没有有后后继继节节点点,则则转转向向第第步步从使用情况来看,闭胸式的使用比较广泛。敞开式盾构之中有挤压式盾构、全部敞开式盾构,但在近些年的城市地下工程施工中已很少使用,在此不再说明。对于节点对于节点 i 的每个后继节点的每个后继节点 j,计算计算 g(j)g(i)+c(i,j)并并把把所所有有后后继继节节点点 j 放放进进OPEN表表。提提供供回回到到节节点点 i 的指针的指针 转向第转向第步步从使用情况来看,闭胸式的使用比较广泛。敞开式盾构之中有挤压式盾构、全部敞开式盾构,但在近些年的城市地下工程施工中已很少使用,在此不再说明。从使用情况来看,闭胸式的使用比较广泛。敞开式盾构之中有挤压式盾构、全部敞开式盾构,但在近些年的城市地下工程施工中已很少使用,在此不再说明。说明几点说明几点:第第一一、上上述述算算法法实实际际是是树树的的搜搜索索算算法法。如如果果是是图图的的搜搜索索,则则要要检检查查新新产产生生的的后后继继节节点点是是否否已已经经在在OPEN表表或或CLOSED表表,若若是是,比比较较新新、旧旧代价并调整指针(保留代价小的路径)代价并调整指针(保留代价小的路径)从使用情况来看,闭胸式的使用比较广泛。敞开式盾构之中有挤压式盾构、全部敞开式盾构,但在近些年的城市地下工程施工中已很少使用,在此不再说明。第二第二、OPEN表是一张线性表,其元素按代价表是一张线性表,其元素按代价的递增顺序排列。表的基本操作:删除、的递增顺序排列。表的基本操作:删除、定位与插入定位与插入从使用情况来看,闭胸式的使用比较广泛。敞开式盾构之中有挤压式盾构、全部敞开式盾构,但在近些年的城市地下工程施工中已很少使用,在此不再说明。例:例:迷宫迷宫人人4321代价代价:关键位置点之间的水平与垂直距离之和