人工智能第3章
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
A
90
80
B
170 160 110
C
85 140 100
65
D
E
80
第3章 搜索原理
3.1 盲目搜索 3.2 启发式搜索 3.3 博弈树搜索 3.4 遗传算法 3.5 模拟退火算法
3.1 启发式搜索
启发信息是进行搜索技术所需要的一 些有关具体问题领域的特性的信息。
利用启发信息的搜索方法称为启发式 搜索或有信息搜索。 1、启发信息分类
有序搜索又可分为两种:局部最佳优先 搜索和全局最佳优先搜索。
启发式搜索(续)
有序搜索算法(见P76-77) 宽度优先搜索、等代价搜索和深度优
先搜索均是有序搜索的特例。 宽度优先搜索,f(i)是节点i的深度。 等代价搜索,f(i)是从起始节点至节点i这段
路径的代价。 深度优先搜索,f(i)是节点i距目标节点的深
图搜索策略(续)
(8)按某一任意方式或按某个探试值,重 排OPEN表。
(9)转第(3)步。
举例说明:P68,例3.1
图搜索策略(续)
3、搜索图与搜索树
图搜索过程生成一个明确的图G(称为搜索图)和一
个G的子集T(称为搜索树),树T上的每个节点也在 图G中。
例:二阶Hanoi塔问题。状态空间图如下。
量无用节点。
例3.2,P72,图3.5
3.1.3 深度优先搜索
定义
深度优先搜索也是一种盲目搜索策略,其 基本思想是:首先扩展最新产生的(即最深) 节点,即从初始节点S开始,在其后继节点中 选择一个节点,对其进行考察,若它不是目标 节点,则对该节点进行扩展,并再从它的后继 节点中选择一个节点进行考察。依次类推,一 直搜索下去,当到达某个既非目标节点又无法 继续扩展的节点时,才选择其兄弟节点进行考 察。
(6)扩展节点n,同时生成不是n的祖先的那些 后继节点的集合M。把M中的这些成员作为n 的后继节点加入图G中。
(7)对那些未曾在G中出现过的(既未曾在 OPEN表上或CLOSED表上出现过的)M成员 设置一个通向n的指针。把M的这些成员加进 OPEN表。对已经在OPEN表或CLOSED表上 的每一个M成员,确定是否需要更改通到n的 指针方向。对已在CLOSED表上的每个M成员, 确定是否需要更改图G中通向它的每个后继节 点的指针方向。
S 初始状态
A(2,1) (1,1)
A(1,2)
S1 (2,1)
(3,1) S2
S3 (2,3)
(3,2) S4
S5 (3,3)
目标状态
(1,3)
S6
(1,2)
S7
(2,2) S8
图搜索策略(续)
搜索图G为:
搜索树T为:
S
S1
S2
S
S1
S2
S3
S4
S3
S4
S5
S6 S7 S8
S5
S6 S7 S8
图搜索策略(续)
盲目搜索(续)
启发式搜索又称有信息搜索,指搜索求 解过程中,根据问题本身的特性或搜索 过程中产生的一些信息来不断改变或调 整搜索的方向,使搜索朝着最有希望的 方向前进,加速问题的求解,并找到最 优解。求解的效率更高,更易于求解复 杂的问题。
盲目搜索(续)
3、研究和选用搜索算法的原则 (1)有限搜索还是无限搜索? (2)搜索空间是静态还是动态生成? (3)已知目标还是未知目标? (4)只要目标还是也要路径? (5)状态空间搜索还是问题空间搜索? (6)有约束还是无约束? (7)数据驱动还是目标驱动? (8)单向搜索还是双向搜索? (9)盲目搜索还是启发式搜索? (10)有对手搜索还是无对手搜索?
盲目搜索(续)
搜索包含两层含义:一是要找到从初始事实 到问题最终答案的一条推理路线,另一是找到 的这条路线是时间和空间复杂度最小的求解路 线。
2、搜索的种类
分为盲目搜索和启发式搜索。
盲目搜索又称无信息搜索,即在搜索过程中, 只按预先规定的搜索控制策略进行搜索,而没 有任何中间信息来改变这些控制策略。即问题 本身的特性对搜索控制策略没有任何影响,这 就使搜索带有盲目性,效率不高。只用于解决 比较简单的问题。
(2)深度优先搜索所求得的解答路径不一定是最 短路径;
(3)深度界限得选择很重要,过大,可能会影响 搜索效率,过小,有可能求不到解。有界深度 优先搜索策略是不完备的。 例3.3,P74,图3.8
3.1.4 等代价搜索
定义
有些问题并不要求有应用算符序列 为最少的解,而是要求具有某些特性的 解。宽度优先搜索可被推广用来解决这 种寻找从起始状态至目标状态的具有最 小代价的路径问题,这种推广了的宽度 优先搜索算法叫做等代价搜索算法。
等代价搜索(续)
记号
S:起始节点。 c(i,j): 节点i到它的后继节点j的连接弧线代价。 g(i): 起始节点S到任一节点i的路径代价,在搜索
树上它也是从起始节点S到节点i的最少代价路 径上的代价。
等代价搜索(续)
等代价搜索算法
与宽度优先搜索算法区别,以g(i)的递增 顺序扩展其节点,即根据节点的代价大小对 OPEN表中的所有节点进行从小到大的排序。 (1)把起始节点S放到OPEN表中。如果此起始 节点为一目标节点,则求得一个解;否则令 g(S)=0; (2)如果OPEN表是个空表,则没有解而失败 退出;
3.1.1 图搜索策略
搜索法求解问题的基本思想:
首先将问题的初始状态(即状态空间图中的 初始节点)当做当前状态,选择一适当的算符 作用于当前状态,生成一组后继状态(或称后 继节点),然后检查这组后继状态中有没有目 标状态。如果有,则说明搜索成功,从初始状 态到目标状态的一系列算符即是问题的解;若 没有,则按某种控制策略从已生成的状态中 再选一个状态作为当前状态,重复上述过程, 直到目标状态出现或不再有可供操作的状态及 算符为止。
等代价搜索(续)
(3)从OPEN表中选择一个节点i,使其g(i)为最小。 如果有几个节点都合格,那么就要选择一个目标节点 作为节点i(如果有目标节点);否则,就从中选一 个作为节点i。把节点i从OPEN表移至CLOSED表中;
(4)如果节点i为目标节点,则求得一个解;
(5)扩展节点i。如果没有后继节点,则转向步骤(2)
度.
启发式搜索(续)
有序搜索的有效性直接取决于f的选 择,如果选择的f不合适,有序搜索就可 能失去一个最好的解甚至全部的解。
正确地选择估价函数对确定搜索结 果具有决定性地作用。使用不能识别某 些节点真实希望的估价函数会形成非最 小代价路径;而使用一个过多地估计了 全部节点希望地估价函数又会扩展过多 的节点。
(6)对于节点i的每个后继节点j,计算 g(j)=g(i)+c(i,j),并把所有后继节点j放进OPEN表。 提供回到节点i的指针。
(7)转向步骤(2)。
等代价搜索(续)
举例分析
例:推销员旅行问题。
假设A,B,C,D,E是5个城市,推销员从
பைடு நூலகம்
城市A出发,到达城市E,走怎样的路线费用
最省?5个城市间的交通图及每两个城市间的
3.1.2 宽度优先搜索
定义
如果搜索是以接近起始节点的程度依次扩展 节点的,那么这种搜索就叫做宽度优先搜索。 宽度优先搜索又称广度优先搜索,是一种盲目 搜索策略。
其基本思想是:从初始节点开始,逐层对 节点进行依次扩展,并考虑它是否为目标节点, 在对下层节点进行扩展(或搜索)前,必须完 成对当前层的所有节点的扩展(或搜索)。
图搜索策略(续)
1、概念 已扩展节点:对于状态图中的某个节点,
若求出了它的后继节点,称已扩展节点。 未扩展节点:对于状态图中的某个节点,
尚未求出它的后继节点,称未扩展节点。 扩展:就是用合适的算符对某个节点进行
操作,生成一组后继节点,扩展过程实 际上就是求后继节点的过程。
图搜索策略(续)
2、状态空间图的一般搜索算法
函数。
启发式搜索(续)
一个节点的“希望”有几种不同的 定义方法。在状态空间问题中,一种定 义是估算目标节点到此节点的距离;另 一种定义是整条路径(包括被估价过的 节点)的长度或难度。
用符号f来标记估价函数,用f(n) 表示节点n的估价函数值。
启发式搜索(续)
3、有序搜索
用估价函数f来排列OPEN表上的节点, 选择OPEN表上具有最小f值的节点作为 下一个要扩展的节点。这种搜索方法叫 做有序搜索或最佳优先搜索。它总是选 择最有希望的节点作为下一个要扩展的 节点。
用两个表分别存放已扩展节点和未扩展
节点,OPEN表存放未扩展节点, CLOSED表存放已扩展节点。两个表的 结构如下:
OPEN表: 节点
父节点
CLOSED表: 编号 节点 父节点
图搜索策略(续)
状态空间图的一般搜索算法:
(1)建立一个只含有起始节点S的搜索图G,把S 放到OPEN表中。
(2)建立CLOSED表,且置为空表。
(3)若OPEN表是空表,则问题无解,失败退出。
(4)选择OPEN表中的第一个节点,把它从 OPEN表移出,并放入CLOSED表中,将此节点 记为节点n,它是CLOSED表中节点的编号。
(5)若n为一目标节点,则有解并成功退出。问 题的解即可从图G中沿着指针从n到S这条路径 而得到。
图搜索策略(续)
按用途可分为3种。 (1)用于决定要扩展的下一个节点,以免
像在宽度优先或深度优先搜索中那样盲目 地扩展。
启发式搜索(续)
(2)在扩展一个节点的过程中,用于决 定要生成哪一个或哪几个后继节点,以 免盲目地同时生成所有可能的节点。
(3)用于决定某些应该从搜索树中抛弃 或修剪的节点。
2、估价函数 用来估算希望程度的量度,叫做估价
第3章 搜索原理
知识点 重难点 学习要求
知识点
盲目搜索 启发式搜索 博弈树搜索 遗传算法 模拟退火算法
重难点
宽度优先 深度优先 等代价搜索 有序搜索 A*算法 博弈树搜索
学习要求
重点掌握宽度优先和深度优先搜索算法 掌握等代价搜索算法 掌握启发式搜索相关知识 理解博弈树搜索相关技术 掌握遗传算法基本原理 理解模拟退火算法基本原理
深度优先搜索(续)
有界深度优先搜索 为了避免考虑太长的路径(防止搜索
过程沿着无益的路径扩展下去),往往给 出一个节点扩展的最大深度,即深度界 限。任何节点如果达到了深度界限,都 将被作为没有后继节点处理。
深度优先搜索(续)
有界深度优先搜索算法(P73) 深度优先搜索策略分析
(1)将OPEN表作为 “先进后出”的栈进行操 作;
第3章 搜索原理
3.1 盲目搜索 3.2 启发式搜索 3.3 博弈树搜索 3.4 遗传算法 3.5 模拟退火算法
3.1 盲目搜索
知识是解决问题的基础,解决问题的方法一 种就是算法,但对很多问题没有有效的算法 (或无现成算法),这时就可利用最一般方法 即搜索来解决。 1、搜索的概念
根据问题的实际情况,按照一定的策略或规 则,从知识库重寻找可利用的知识,从而构造 出一条使问题获得解决的推理路线的过程,就 称为搜索。
启发式搜索(续)
应用举例: (P78) 采用简单的估价函数f(n)=d(n)+w(n), 其中,d(n)是搜索树中节点n的深度; w(n)用来计算节点n与目标状态节点Sg 相比较,错位的数码个数。
旅行费用如图所示。
6 A7
B5
3C
D
8
4E
作业
1、分别用宽度优先搜索、有界深度优先搜 索(深度界限5)求解下图所示八数码难 题。初始状态S0,目标状态Sg,要求寻 找从初始状态到目标状态的路径,并画 出对应搜索树。
2
3
184
765
S0
123
8
4
765
Sg
作业(续)
2、推销员旅行问题。设有5个相互直达的城市A、 B、C、D、E,如下图所示,各城市间的交通 费用已在图中标出。推销员从城市A出发,去 每个城市各旅行一次,最后到达城市E,请找 出一条费用最省的旅行路线。
宽度优先搜索(续)
宽度优先搜索算法(P71) 宽度优先搜索方法分析
(1)将OPEN表作为“先进先出”的队列进行操 作;
(2)宽度优先搜索方法能够保证在搜索树中找到 一条通向目标节点的最短路径(即宽度优先搜 索策略是完备的);
(3)搜索树提供了所有存在的路径; (4)盲目性较大,当目标节点较远时,将产生大
4、图搜索方法的几点分析
(1)对OPEN表进行排序(盲目或启发式搜索)。 (2)被选作扩展的节点为目标节点时,成功,回
溯,可找到路径。否则,失败终止情况下没有解 路径。
在利用状态空间搜索方法求解问题时,并不是将整个 问题的状态空间图全部输入计算机,而是只存入问题有 关的部分状态空间图,这部分是在搜索过程中生成的, 并且每前进一步,都要检查是否到达目标节点,这样就 可尽量减少生成与问题求解无关的状态,从而提高了解 题效率,节省了存储空间。