人工智能课件 第二章 问题求解的基本方法
合集下载
人工智能问题求解基本原理及搜索技术51页PPT
5、教导儿童服从真理、服从集体,养 成儿童 自觉的 纪律性 ,这是 儿童道 德教育 最重要 的部分 。—— 陈鹤琴
66、节制使快乐增加并使享受加强。 ——德 谟克利 特 67、今天应做的事没有做,明天再早也 是耽误 了。——裴斯 泰洛齐 68、决定一个人的一生,以及整个命运 的,只 是一瞬 之间。 ——歌 德 69、懒人无法享受休息之乐。——拉布 克 70、浪费时间是一桩大罪过。——卢梭、纪律是管理关系的形式。——阿法 纳西耶 夫 2、改革如果不讲纪律,就难以成功。
3、道德行为训练,不是通过语言影响 ,而是 让儿童 练习良 好道德 行为, 克服懒 惰、轻 率、不 守纪律 、颓废 等不良 行为。 4、学校没有纪律便如磨房里没有水。 ——夸 美纽斯
人工智能 第2章 问题求解与搜索技术-a star
Qk=[q0k,q1k,…,qnk]
算符:使问题从一种状态变化为另一种状态的操作称
为操作符或算符。
2020/2/29
《人工智能》
5
问题的状态空间(state space)是一个表示某问题
全部可能状态及其关系的图,它包含三个集合,即问 题初始状态集合S、操作符集合F以及目标状态集合G。 因此,可把状态空间记为三元组(S,F,G)。
1,1 A(1,3)
2,1
3,1
B(1,2)
2,3
3,2
A(3,2)
3,3
1,3
1,2
2,2
2020/2/29
《人工智能》
9
二阶梵塔问题:设有三根钢针,在1号钢针上穿有A、 B两个金片,A小于B,A位于B的上面。要求把这两个 金片全部移到另一根钢针上;而且规定每次只能移动
一片,任何时刻都不能使B位于A的上面。
节点回到n的指针。 (6) 如果n的任一个后继节点是个目标节点,则找到一个解答,成
功退出;否则转向第(2)步。
2020/2/29
《人工智能》
18
2.3.1 广度优先搜索(2)
广度优先搜索过程分析:
广度优先搜索是图搜索一般过程的特殊情况,它将OPEN 表作为“先进先出”的队列进行操作。
广度优先搜索方法能够保证找到一条通向目标节点的最优 途径。
2020/2/29
《人工智能》
17
2.3.1 广度优先搜索
广度优先搜索过程:
(1) 把起始节点放到OPEN表中。 (2) 如果OPEN是个空表,则没有解,失败退出;否则继续。 (3) 把第一个节点(节点n)从OPEN表移出,并把它放入CLOSED
扩展节点表中。 (4) 扩展节点n。如果没有后继节点,则转向上述第(2)步。 (5) 把n的所有后继节点放到OPEN表的末端,并提供从这些后继
算符:使问题从一种状态变化为另一种状态的操作称
为操作符或算符。
2020/2/29
《人工智能》
5
问题的状态空间(state space)是一个表示某问题
全部可能状态及其关系的图,它包含三个集合,即问 题初始状态集合S、操作符集合F以及目标状态集合G。 因此,可把状态空间记为三元组(S,F,G)。
1,1 A(1,3)
2,1
3,1
B(1,2)
2,3
3,2
A(3,2)
3,3
1,3
1,2
2,2
2020/2/29
《人工智能》
9
二阶梵塔问题:设有三根钢针,在1号钢针上穿有A、 B两个金片,A小于B,A位于B的上面。要求把这两个 金片全部移到另一根钢针上;而且规定每次只能移动
一片,任何时刻都不能使B位于A的上面。
节点回到n的指针。 (6) 如果n的任一个后继节点是个目标节点,则找到一个解答,成
功退出;否则转向第(2)步。
2020/2/29
《人工智能》
18
2.3.1 广度优先搜索(2)
广度优先搜索过程分析:
广度优先搜索是图搜索一般过程的特殊情况,它将OPEN 表作为“先进先出”的队列进行操作。
广度优先搜索方法能够保证找到一条通向目标节点的最优 途径。
2020/2/29
《人工智能》
17
2.3.1 广度优先搜索
广度优先搜索过程:
(1) 把起始节点放到OPEN表中。 (2) 如果OPEN是个空表,则没有解,失败退出;否则继续。 (3) 把第一个节点(节点n)从OPEN表移出,并把它放入CLOSED
扩展节点表中。 (4) 扩展节点n。如果没有后继节点,则转向上述第(2)步。 (5) 把n的所有后继节点放到OPEN表的末端,并提供从这些后继
人工智能第二章1 问题求解的基本方法
状态空间可能的状态总数为4×4×2 = 32
这个问题总共只有16个可达的合法状态
№ 12
№ 13
渡河问题中的操作算子可以定义2类:L(m,c)、R(m,c)
L(m,c)——指示从左岸到右岸的划船操作
R(m,c) ——从右岸回到左岸的划船操作
m和c取值的可能组合只有5个:10,20,11,01,02 故而总共有10个操作算子
№ 23
假定:
任意相临节点间的路径代价相同,代价为1 设:目标状态相应的节点: ng 从ni到ng的路径代价: C( ni , ng)= C( ni , nj )+ C( nj , ng )
2、一般图搜索算法 定义: s——指示初始状态节点
№ 24
G——指示搜索图
OPEN——作为存放待扩展节点的表 CLOSE——作为存放已被扩展节点的表 MOVE-FIRST(OPEN)——指示取OPEN表首的节 点作为当前要被扩展的节点n,同时将节点n移至 CLO般过程:
1) G := s; 2) OPEN := (s), CLOSE := ( );
3) 若OPEN是空表,则算法以失败结束;
4) n := MOVE-FIRST(OPEN); 5) 若n是目标状态节点,则搜索成功结束,并给出解答路径; 6) 扩展节点n,将非节点n祖先的子节点置于子节点集合SNS 中,并插入搜索图G中;
问题求解的基本方法
№2
人工智能技术的一个主要目的就是解决非平凡 问题 非平凡问题:难以用常规(数值计算,数据库应 用等)技术直接解决的问题
• 知识贫乏系统——搜索技术 • 知识丰富系统——识别技术
本章内容
№3
经典搜索技术: 一般图搜索 基于问题归约的与或图搜索
人工智能 第2讲问题求解PPT课件
Sg=fn(…(f2(f1(S0)))…)
式中,fi表示对其右边的当前状态将进行第i个操作。
对一个智能问题全部状态及其操作关系,给予具体 的赋值,就可构成一个状态空间的相互关系有向图, 使用该图,即可进行具体问题求解。
2020/8/1
合肥工业大学人工智能与数据挖掘研究室
15
问题表示及求解
--状态空间图搜索算法
2020/8/1
合肥工业大学人工智能与数据挖掘研究室
25
问题表示及求解
--状态空间图搜索算法
由上述利用状态空间图求解的举例,对具体问题搜索求解 可总结为如下的思路和步骤:
Ee
En
Ep
2020/8/1
合问肥题工业世大界学的人信工智息能环与境数据挖掘研究室
11
问题表示及求解
--搜索
(3)未知信息环境En
对于未知信息环境的问题求解,首先要设法变En为部分 已知信息环境Ep来解决。例如,为了探测海洋、极地、 外星球的奥秘,就需要实地探险或发射相应的探测器, 以便取得必要的信息与知识;当进入陌生的地带作战时, 需要派出侦察小分队了解地形地物和侦察敌人火力部署, 或用侦察卫星探测敌情等。
2020/8/1
合肥工业大学人工智能与数据挖掘研究室
4
问题表示及求解
--问题表达及其变换
同构同态变换
原始问题 h
难解
原始解答 h-1
同态问题
同态解答
易解
问题分解法
❖ 与图(树)描述问题分解。 ❖ 或图(树)描述同构同态变换 。
2020/8/1
合肥工业大学人工智能与数据挖掘研究室
5
问题表示及求解
用状态空间法搜索求解问题:
首先要把待求解的问题表示为状 态空间图;把问题的解表示为 目标节点Sg。
式中,fi表示对其右边的当前状态将进行第i个操作。
对一个智能问题全部状态及其操作关系,给予具体 的赋值,就可构成一个状态空间的相互关系有向图, 使用该图,即可进行具体问题求解。
2020/8/1
合肥工业大学人工智能与数据挖掘研究室
15
问题表示及求解
--状态空间图搜索算法
2020/8/1
合肥工业大学人工智能与数据挖掘研究室
25
问题表示及求解
--状态空间图搜索算法
由上述利用状态空间图求解的举例,对具体问题搜索求解 可总结为如下的思路和步骤:
Ee
En
Ep
2020/8/1
合问肥题工业世大界学的人信工智息能环与境数据挖掘研究室
11
问题表示及求解
--搜索
(3)未知信息环境En
对于未知信息环境的问题求解,首先要设法变En为部分 已知信息环境Ep来解决。例如,为了探测海洋、极地、 外星球的奥秘,就需要实地探险或发射相应的探测器, 以便取得必要的信息与知识;当进入陌生的地带作战时, 需要派出侦察小分队了解地形地物和侦察敌人火力部署, 或用侦察卫星探测敌情等。
2020/8/1
合肥工业大学人工智能与数据挖掘研究室
4
问题表示及求解
--问题表达及其变换
同构同态变换
原始问题 h
难解
原始解答 h-1
同态问题
同态解答
易解
问题分解法
❖ 与图(树)描述问题分解。 ❖ 或图(树)描述同构同态变换 。
2020/8/1
合肥工业大学人工智能与数据挖掘研究室
5
问题表示及求解
用状态空间法搜索求解问题:
首先要把待求解的问题表示为状 态空间图;把问题的解表示为 目标节点Sg。
人工智能及其应用完整版本ppt课件
精选ppt
32
2.2 问题规约法
梵塔问题归约图
•数据结构介绍
(111)(333)
•思考题:四圆盘问题
(111)(122) (122)(322)
()(333)
(111)(113) (113)(123) (123)(122) (322)(321) (321)(331) (331)(333)
精选ppt
精选ppt
19
解题过程
将原始问题归约为一个较简单问题集合 将原始梵塔难题归约(简化)为下列子
难题
– 移动圆盘A和B至柱子2的双圆盘难题 – 移动圆盘C至柱子3的单圆盘难题 – 移动圆盘A和B至柱子3的双圆盘难题
详细过程参看下图
精选ppt
20
2.2 问题规约法
解题过程(3个圆盘问题)
123
123
叫做从节点ni1至节点nik的长度为k的路径
代价 用c(ni,nj)来表示从节点ni指向节点nj
的那段弧线的代价。两点间路径的代价等于连
接该路径上各节点的所有弧线代价之和.
精选ppt
6
图的显示说明 对于显式说明,各节点及其具
有代价的弧线由一张表明确给出。此表可能列出 该图中的每一节点、它的后继节点以及连接弧线 的代价
问题归约的实质:
–从目标(要解决的问题)出发逆向推理,建立 子问题以及子问题的子问题,直至最后把初 始问题归约为一个平凡的本原问题集合。
精选ppt
18
2.2 问题规约法
2.2.1 问题归约描述 (Problem Reduction Description)
梵塔难题
1
2
3
A B C
思考:用状态空间法有多少个节点?为什么?
人工智能算法Python语言版PPT第2章分治法
(3) 将结果从C中填回原列表
indexC←1 for i←finalStart to finalEnd do list[i]←result[indexC] indexC←indexC+1 end for
无需比较操作!
合并排序 (8)
MergeLists的最优情况
MergeSort算法的执行时间
- 列表A中所有元素都不大于B中最小 - nA 次比较 (n/2) - 例如:A={1, 2, 3}, B={4, 5 ,6}
T
(n)
O(1) 2T (n
/
2)
O(n)
n 1 n 1
O(n log n)
MergeLists的最坏情况
- 列表A列表 B中元素交叉排列时
- 每执行一次比较操作,将A或B中的 一个元素移到列表C中
应用背景和动机 (1)
对将这k要个求子解问的题较分别大求规解模的问题分割成k个更小规模的子问题。
- 如果子问题的规模仍然不够小,再划分为k个子问题
- 如此递归地进行下去,直到问题规模足够小,很容易求出其解为止
=
n
T(n)
T(n/2)
T(n/2)
T(n/2)
T(n/2)
应用背景和动机 (2)
对这k个子问题分别求解,其中分解直到问题规模足够小,很容易求 出其解为止
提纲
应用背景和动机 分治法的基本思想和一般步骤 分治法的适用条件 分治法的复杂度分析方法 合并排序 总结
合并排序 (1)
引例:合并两个有序子列表
{179, 285, 351}, {310, 312, 652, 800}
(1) 179<310: {179} (2) 285<310: {179, 285} (3) 351>310: {179, 285, 310} {179, 285, 351}, {310, 312, 652, 800}
人工智能课件 --02知识的表示与推理-1
P=>P ٧ Q • 析取三段论
¬P, P ٧ Q =>Q
第一节 知识表示的一般方法
• 假言推理
P, P → Q =>Q
• 拒取式 ¬Q, P→Q=> ¬P
• 假言三段论 P→Q, Q→R => P→R
• 二难推论 P ٧ Q, P → R, Q → R => R
• 全称固化 (∀x) P(x) => p(y) 其中,y是个体域中的任一个体。
第一节 知识表示的一般方法
三、谓词表示法 1、复习(命题逻辑与谓词逻辑) (1) 命题
定义:命题是具有真假意义的语句。
命题代表人们进行思维的一种判断,或者为肯定,或 者为否定。
在命题逻辑中,通常用大写的英文字母表示。例如, 可用英文字母P表示“西安是个古老的城市”这个命题。
第一节 知识表示的一般方法
第一节 知识表示的一般方法
④ 谓词公式的解释 在命题逻辑中,对命题公式中各个变元的一次真值指
派,称为命题公式的一个解释。
⑤ 谓词公式的永真性、可满足性、不可满足性 如果谓词公式P对个体域D上的任何一个解释都取真值
T,则称P在D上永真的。 对于谓词公式P,如果至少存在一个解释使得公式P为
真值T,则称公式P是可满足的。 如果谓词公式P对于个体域D上的任何一个解释都取真
(2)谓词 在谓词逻辑中,命题用谓词来表示。
谓词的一般形式:P(x1,x2,…,xn) 其中P是谓词名,xi是个体。个体可以是变量、常 量或函数。
在P(x1,x2,…,xn)中,如果xi是变量、常量或 函数,则称为一阶谓词;如果xi本身又是一个一阶 谓词,则称为二阶谓词。
第一节 知识表示的一般方法
第2章 知识的表示与推理(1)
¬P, P ٧ Q =>Q
第一节 知识表示的一般方法
• 假言推理
P, P → Q =>Q
• 拒取式 ¬Q, P→Q=> ¬P
• 假言三段论 P→Q, Q→R => P→R
• 二难推论 P ٧ Q, P → R, Q → R => R
• 全称固化 (∀x) P(x) => p(y) 其中,y是个体域中的任一个体。
第一节 知识表示的一般方法
三、谓词表示法 1、复习(命题逻辑与谓词逻辑) (1) 命题
定义:命题是具有真假意义的语句。
命题代表人们进行思维的一种判断,或者为肯定,或 者为否定。
在命题逻辑中,通常用大写的英文字母表示。例如, 可用英文字母P表示“西安是个古老的城市”这个命题。
第一节 知识表示的一般方法
第一节 知识表示的一般方法
④ 谓词公式的解释 在命题逻辑中,对命题公式中各个变元的一次真值指
派,称为命题公式的一个解释。
⑤ 谓词公式的永真性、可满足性、不可满足性 如果谓词公式P对个体域D上的任何一个解释都取真值
T,则称P在D上永真的。 对于谓词公式P,如果至少存在一个解释使得公式P为
真值T,则称公式P是可满足的。 如果谓词公式P对于个体域D上的任何一个解释都取真
(2)谓词 在谓词逻辑中,命题用谓词来表示。
谓词的一般形式:P(x1,x2,…,xn) 其中P是谓词名,xi是个体。个体可以是变量、常 量或函数。
在P(x1,x2,…,xn)中,如果xi是变量、常量或 函数,则称为一阶谓词;如果xi本身又是一个一阶 谓词,则称为二阶谓词。
第一节 知识表示的一般方法
第2章 知识的表示与推理(1)
人工智能入门课件第2章用搜索实现求解问题
(3)选择一种搜索策略
为求解水壶问题,除上面给出的问题描述和算子外, 还应该选择一种策略控制搜索。该问题的策略为 一个简单的循环控制结构:选择其左部匹配当前 状态的某条规则,并按照该规则右部的描述,对 此状态作适当改变,然后检查改变后的状态是否
为某一目 启发式信息的表示
1)启发式搜索的依据
(1)人们善于利用一些线索来帮助自己选择 搜索方向,这些线索统称为启发式 (Heuristics)信息。
(2)现实问题往往只需一个解,而不要求最 优解或全部解。
(3)启发式信息可以避免某些领域里的组合 爆炸问题。
1. 启发式信息的表示
2)启发式信息表示
启发信息按其形式可分为下列2种:
宽度优先搜索算法如下:
1. 令N为一个由初始状态构成的表; 2. 若N为空退出,标志失败; 3. 令n为N中第一个点,将n从N中删除; 4. 若n是目标,则退出,标态成功; 5. 若n不是目标,将n的后继点加入到N表 的尾部,转2。
宽度优先搜索的优点是:若问题有解, 则可找出最优解;
宽度优先搜索的缺点是:效率低,组 合爆炸问题难以解决。
状态转移算子
使问题从一种状态变化为另一种状态的手段称为操作 符或转移算子(operator)。 操作符可以是一个动作(如下棋走步)、过程、规则、 数学算子、运算符号或逻辑运算符等。
2.2.2 扩展规则
状态扩展策略
宏观地看,以怎样的次序对问题对应的搜索图进行 搜索,是搜索的技巧,也是智能的体现。没有目的 随机的选一个扩展的话很容易实现,但一般很难得 到一个解或不能保证解的质量,即得不到一个满意 解。而好的策略可以比一般的方法搜索更少的节点 ,更快地找到解。也就是说,根据问题的不同设计 更合理的扩展策略可以提高搜索的效率。
人工智能求解问题的方法
人工智能求解问题的方法
1. 数据驱动法:就像我们人要通过不断学习知识来提升自己一样,人工智能也是通过大量的数据来求解问题呀!比如说,让人工智能识别猫和狗的图片,那它就是靠着分析成千上万张猫和狗的图片数据,才慢慢学会准确区分它们的呢,厉害吧!
2. 算法优化法:这就好比我们寻找最快到达目的地的路线,人工智能也会不断优化自己的算法呀!比如在自动驾驶中,为了让车更安全快速地行驶,人工智能会不断改进算法来应对各种复杂情况,哇塞!
3. 模拟人类思维法:你想啊,人工智能也可以像人类一样去思考问题呢!就像下围棋,它能模拟人类棋手的策略和思路,然后给出精彩的应对,是不是很神奇!
4. 深度学习法:这就好像是人工智能在不断挖掘宝藏一样,深入挖掘数据中的信息。
比如语音识别,它通过深度学习,越来越准确地理解并转化我们说的话,好牛啊!
5. 模型构建法:可以想象成给人工智能建一个专属的房子,让它在里面更好地发挥作用。
比如预测天气,通过构建合适的模型,让人工智能准确预测出明天会不会下雨呢,太酷了吧!
6. 并行计算法:就如同好几个人同时干活一样,人工智能利用并行计算快速处理大量问题。
像处理海量的图像数据时,它能迅速给出结果,这效率,绝了!
7. 自适应调整法:它就如同一个能随时改变自己的机灵鬼!面对不同的情况,人工智能自动调整参数来更好地求解问题。
比如在智能机器人与我们互动时,能随时根据我们的反应改变自己的行为,真是太有意思啦!
我觉得人工智能求解问题的方法真的是越来越神奇和强大,未来肯定会给我们的生活带来更多不可思议的改变!。
人工智能及其应用chapter3071101课件
3.2 问题表示及求解方法
➢ 问题表达及其变换 ➢ 问题的直接求解法 ➢ 状态空间图搜索算法
人工智能及其应用
1
问题表达及其变换
同构同态变换
原始问题 h
难解
原始解答 h-1
同态问题
易解
同态解答
问题分解法
❖ 与图(树)描述问题分解。 ❖ 或图(树)描述同构同态变换 。
人工智能及其应用
2
问题的直接求解法
✓ 操作规定: 允许空格四周上、下、左、右的数 码块移入空格中,不许斜方向移动,不许返回 先辈结点。
✓ 初始布局S和目标状态D如下图所示:
283
123
1
4
8
4
765
765
S
D
人工智能及其应用
17
广度优先搜索
例3-4的广度优先搜索树:
1 283 S
14 765
2 283 14
765
32 3 184 765
/15
10 26 ADBCE
/24
29
3.6 启发式搜索策略
➢ 启发信息和估价函数 ➢ 局部择优搜索 ➢ 全局择优搜索 ➢ A*算法
人工智能及其应用
30
启发信息和估价函数
启发信息:
与具体问题解相关的控制性知识 。
估价函数:
估计OPEN表中各扩展节点的重要程度,给它 们排定扩展次序。
人工智能及其应用
754
23 12 1 8 6
754
283 9 156
74
28 5 163
754
123 123
D 8 4 784
765 65
36 35
人工智能及其应用
234 234 28 248 283 283 83 283 23 23 283 1 8 185 143 1 3 145 1 5 216 716 186 186 156 765 76 765 765 76 746 754 54 754 754 74
➢ 问题表达及其变换 ➢ 问题的直接求解法 ➢ 状态空间图搜索算法
人工智能及其应用
1
问题表达及其变换
同构同态变换
原始问题 h
难解
原始解答 h-1
同态问题
易解
同态解答
问题分解法
❖ 与图(树)描述问题分解。 ❖ 或图(树)描述同构同态变换 。
人工智能及其应用
2
问题的直接求解法
✓ 操作规定: 允许空格四周上、下、左、右的数 码块移入空格中,不许斜方向移动,不许返回 先辈结点。
✓ 初始布局S和目标状态D如下图所示:
283
123
1
4
8
4
765
765
S
D
人工智能及其应用
17
广度优先搜索
例3-4的广度优先搜索树:
1 283 S
14 765
2 283 14
765
32 3 184 765
/15
10 26 ADBCE
/24
29
3.6 启发式搜索策略
➢ 启发信息和估价函数 ➢ 局部择优搜索 ➢ 全局择优搜索 ➢ A*算法
人工智能及其应用
30
启发信息和估价函数
启发信息:
与具体问题解相关的控制性知识 。
估价函数:
估计OPEN表中各扩展节点的重要程度,给它 们排定扩展次序。
人工智能及其应用
754
23 12 1 8 6
754
283 9 156
74
28 5 163
754
123 123
D 8 4 784
765 65
36 35
人工智能及其应用
234 234 28 248 283 283 83 283 23 23 283 1 8 185 143 1 3 145 1 5 216 716 186 186 156 765 76 765 765 76 746 754 54 754 754 74
人工智能课件 第二章 问题求解的基本方法
21
0 1 8
3 4 5
22
7 2 6 1 8 0 3 4 5 7 6 8
23
1 2 0 3 4 5 2 1 6
24
0 7 8
3 4 5
1 6 8
25
2 7 0
26
3 4 5 1 0 7 2 8 6 3 4 5
1
2
3
7
6
8
5
0
4
………………………………
1 8 7
2 0 6
3 4 5
目标 节点
………
解决方法——用启发式知识指导排序
(2,1,1)
(2,2,0) (2,2,1) (2,3,0) (2,3,1)
(3,1,1)
(3,2,0) (3,2,1) (3,3,0) (3,3,1)
思考: m_c问题中,N=5,K=3, 分析并给出状态空间图。
课后作业1:
1)P76/二/1.有一农夫带一只狐狸、一只小羊 和一蓝菜过河(从左岸到右岸)。假设船太小, 农夫每次只能带一样东西过河;考虑到安全,无 农夫看管时,狐狸和小羊不能在一起,小羊和那 蓝菜也不能在一起。请为该问题的解决设计状态 空间,并画出状态空间图。 2)有两个无刻度标志的水壶,分别可装5升和2 升的水。设另有一水缸,可用来向水壶灌水或倒 出水,两个水壶之间,水也可以相互倾灌。已知 5升壶为满壶,2升壶为空壶,问如何通过倒水或 灌水操作,使能在2升的壶中量出一升的水来。
7) 8)
• add(mj,OPEN);标记mj到n的指针; • if f(n,mk)<f(mk) then f(mk):=f(n,mk);标 记mk到n的指针; // f(mk)是扩展n之前计算的耗散值 • if f(n,ml)<f(ml) then f(ml):=f(n,ml);标 记ml到n的指针; add(ml,OPEN); OPEN中的节点按f值从小到大排序; go LOOP;
人工智能第二章问题求解与搜索方法
2.2 盲目的搜索方法
优点:假设问题有解,那么可找出最优解 缺点:效率低,组合爆炸问题难以解决
优点:节省大量时间和空间 缺点:不一定能找到解
是深度优点搜索的一种,但每个分支都规定了一 个统一的深度,搜索到这个深度后,如果没有 找到目标便自动退回到上一层,继续按深度优 先搜索
在分支有界搜索的根底上,对搜索深度逐步加深。
2.3 启发式搜索方法
盲目搜索的效率低,消费过多的搜索时间,人 们可以利用一些线索来帮助自己选择搜索方向, 来找到一个解,而不要求最优解或全部解。
283
4
1 7
6
3 5
3 28 3
1
4
76 5
52 8 3
164 75
62 8 3
164
7
5
3
2
3
184
765
4
2
83
32
8
3
42
8
3
164
14
14
7
5
76 5
765
3
5
5
图2-12 利用启发式函数求解八数码问题的搜索图
A*搜索算法
利用一个函数对每步搜索进展估计 f(n)=g(n) + h(n) 在八数码问题中我们取f(n)=d(n) + w(n),其中
d(n)为搜索数的深度,w(n)为放错位置的数字 的个数 A*算法一定能找到最优解
问题求解的是最优解还是较满意解22221宽度优先搜索优点若问题有解则可找出最优解缺点效率低组合爆炸问题难以解决222深度优先搜索优点节省大量时间和空间缺点不一定能找到解223分支有界搜索是深度优点搜索的一种但每个分支都规定了一个统一的深度搜索到这个深度后如果没有找到目标便自动退回到上一层继续按深度优先搜索224迭代加深搜索在分支有界搜索的基础上对搜索深度逐步加深
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3. 算法A
是应用估价函数来实现启发式搜索的典型算法。 利用估价函数 f(n)= g(n)+h(n) 来排序OPEN表 节点顺序的图搜索算法。其中: f(n)——从s经由节点n到达ng估计的最小路径 代价; g(n)——到目前为止,从s到n估计的最短路径 代价; h(n)——从n到ng估计的最小路径代价。它要依 赖于启发式知识来加以估算,因而h(n)称为启 发式函数。
第二章 问题求解的基本方法
2.1 一般图搜索
2.2 问题规约
2.3 基于归结的演绎推理
2.4 基于规则的演绎推理依靠搜索技术) 知识丰富系统(依靠推理识别技术) 搜索技术
本章两大部分
一般图搜索 基于问题规约的与或图搜索 基于归结的谓词演算 基于规则的演绎推理
2.1.1 问题状态描述
1、状态(state)
是为描述某类不同事物间的差别而引入的一 组最少变量q0、q1…、 qn的有序集合。其 矢量形式如下: Q=[q0, q1 ,…, qn]T 式中每个元素qi(i=0,1,…,n)为集合的分量, 称为状态变量。给定每个分量的一组值,就 得到一个具体的状态,如 Qk=[q0k, q1k ,…, qnk]T
(2,1,1)
(2,2,0) (2,2,1) (2,3,0) (2,3,1)
(3,1,1)
(3,2,0) (3,2,1) (3,3,0) (3,3,1)
思考: m_c问题中,N=5,K=3, 分析并给出状态空间图。
课后作业1:
1)P76/二/1.有一农夫带一只狐狸、一只小羊 和一蓝菜过河(从左岸到右岸)。假设船太小, 农夫每次只能带一样东西过河;考虑到安全,无 农夫看管时,狐狸和小羊不能在一起,小羊和那 蓝菜也不能在一起。请为该问题的解决设计状态 空间,并画出状态空间图。 2)有两个无刻度标志的水壶,分别可装5升和2 升的水。设另有一水缸,可用来向水壶灌水或倒 出水,两个水壶之间,水也可以相互倾灌。已知 5升壶为满壶,2升壶为空壶,问如何通过倒水或 灌水操作,使能在2升的壶中量出一升的水来。
两种方式:
局部排序——仅对新扩展出来的子节 点排序 全局排序——对OPEN表中的所有节 点排序
2.1.3 启发式搜索
本节讨论 的内容 启发式知识对于搜索的指导作用可归纳为3个方
面:
(1)选择下一个要被扩展的节点,排序OPEN表 中的待扩展节点;
(2)在扩展一个节点时,仅仅有选择地生成部分 有用的节点,而非所有可能的子节点; (3)修剪掉某些估计不可能导致成功的子节点。
4、状态空间的搜索
以SE表示:SE=(S,O,E,I,G) 基本思想:通过搜索引擎寻找一个操作 算子的调用序列,使问题从初始状态变 迁到目标状态之一,而变迁过程中的状 态序列或相应的操作算子调用序列称为 从初始状态到目标状态的解答路径。
或图
由于一个状态可以有多个可供选择的操 作算子,导致了多个待搜索的解答路径。 这种选择在逻辑上称为“或”关系,这 样的有向图称为或图。 常用的状态空间一般都表示为或图,因 而也称为一般图。
3 4 5
12
0 1 6 2 7 8 3 4 5
13
1 6 0
14
1
2 3 7 4 8 5
2
3
1 7 6
15
2 8 5
3 4 0
16
1 7 6
2 4 8
3 0 5
1 7 6
2 4 8
17
3 0 5
18
1 7 6
19
3 0 8 4 2 5
1
7 6
3
2 8
4
5 0
7
0
8
6
4
5
20
7 2 6 1 4 8 3 0 5 7 2 6
可记为:三元状态(I,O,G)。 二元状态(S,O) 状态空间---有向图
例1、传教士和野人问题
设N个传教士带N个野人划船渡河,为安 全起见,需遵循两个约束条件: (1)船上人数不得超过K; (2)任何时刻(两岸、船上)野人数目 不得超过传教士数目。
取N=3,K=2
设m,c分别表示传教士和野人在左岸或 船上的实际人数,b指示船是否在左岸(1 表示在左岸)。 问题条件即:m+c≤2,m≥c。 问题简化为:(3,3,1)(0,0,0)
7) 8)
• add(mj,OPEN);标记mj到n的指针; • if f(n,mk)<f(mk) then f(mk):=f(n,mk);标 记mk到n的指针; // f(mk)是扩展n之前计算的耗散值 • if f(n,ml)<f(ml) then f(ml):=f(n,ml);标 记ml到n的指针; add(ml,OPEN); OPEN中的节点按f值从小到大排序; go LOOP;
4
7 2 6 1 0 8 3 4 5 7 6 0
8
1 2 8 3 4 5
12
0 1 6 2 7 8 3 4 5
14
1 6 0
17
1
2 3 7 4 8 5
2
3
1 7 6
2 8 5
3 4 0
1 7 6
2 4 8
3 0 5
1 7 6
2 4 8
3 0 5
1 7 6
3 0 8
4 2 5
1
7 6
3
2 8
4
5 0
①
2、图搜索的一般过程 {mi}={mj} ∪{mk} ∪{ml} (GraphSearch) s--指示初始状态节点;
1){mj}为OPEN和CLOSED中未出现过的子节点
注:实心圆点在CLOSED表中,空心圆点在OPEN表中
s
s
1
6 2 3 6
1 2 3
4
5
4
5
扩展节点6和节点1得到的搜索图
思考题:
3
1 7 6
2 0 8
3 4 5
4
1 7 6
3 2 8
0 4 5
5
6
7 0 6 1 2 8 3 4 5 1 0 6 2 7 8 3 4 5
7
1
7 6
2
8 0
3
4 5
8
1 7 6 2 4 8 3 0 5
9
1 7 6 3 2 8 4 0 5
10
7 2 6 1 0 8 3 4 5 7 6 0 1 2 8
11
G:=G0(G0=S),OPEN:=(S); G--指示搜索图; ② 2){mk}为已出现在OPEN中的子节点 CLOSED:=(); ③ 3){m } 为在CLOSED中的子节点 LOOP: if OPEN=() THEN exit(fail); OPEN--作为存放待扩展节点的表; l ④ n:=first(OPEN),remove(n,OPEN),add(n,CLOSED CLOSED--作为存放已被扩展节点的表; ); ⑤ if goal(n) then exit(success); ⑥ expand(n)→{mi},G:=add(mi,G); ⑦ add(mj,OPEN),并标记mj到n的指针 计算是否要修改mk、ml到n的指针, 计算是否要修改ml到其后继节点的指针; add(ml,OPEN); ⑧ resort(OPEN); ⑨ GO LOOP;
例2、八数码难题 (8 puzzle problem)
1
7 6 2 8
3
4 5
1
2
3
8
7 6
4
5
(a) 初始
(b) 目标
状态空间图 搜索图
搜索时直接涉及到的节点和弧线构成的图。
解答路径
例3、猴子和香蕉问题
在一个房间内有一只猴子,一个箱子和 一串香蕉。香蕉挂在天花板下方,但猴 子的高度不足以碰到它。那么这只猴子 怎么样才能摘到香蕉呢?
1.启发式搜索策略
总是选择“最有希望”的节点作为
下一个被扩展的节点。这种搜索叫做有
序搜索。
2.估价函数(评价函数)
估价函数(evaluation function):是用 来估算节点希望程度的量度。它能提供 一个评定候选扩展节点的方法,以便确 定哪个节点最有可能在通向目标的最佳 路径上。 我们用符号f来标记估价函数,用f(n)来 表示节点n的估价函数值。
启发式搜索算法A的过程:
1)
2) 3) 4) 5) 6)
OPEN:=(s);f(s)=g(s)+h(s);CLOSED:=(); LOOP:if OPEN=() then exit(fail); n:=first(OPEN); if goal (n) then exit(success); remove(n,OPEN);add (n,CLOSED); expand (n) → {mi},计算 f(n,mi)=g(n,mi)+h(mi); //f(n,mi)是从s通过n、mi到ng的耗散估计; //g(n,mi)是从s通过n到mi的耗散值估计;
7
0
8
6
4
5
5
7 2 6 1 4 8 3 0 5 7 2 6
6
0 1 8
3 4 5
7 2 6
7
1 8 0
3 4 5
9
7 6 8 1 2 0 3 4 5 2 1 6
13
0 7 8
3 4 5
1 6 8
15
2 7 0
18
3 4 5 1 0 7 2 8 6 3 4 5
1
2
3
7
6
8
5
0
4
………………………………