人工智能之(搜索推理技术1-图盲目搜索)
人工智能[第五章状态空间搜索策略]山东大学期末考试知识点复习
![人工智能[第五章状态空间搜索策略]山东大学期末考试知识点复习](https://img.taocdn.com/s3/m/90a7eb54dd36a32d73758188.png)
第五章状态空间搜索策略搜索是人工智能的一个基本问题,是推理不可分割的一部分。
搜索是求解问题的一种方法,是根据问题的实际情况,按照一定的策略或规则,从知识库中寻找可利用的知识,从而构造出一条使问题获得解决的推理路线的过程。
搜索包含两层含义:一层含义是要找到从初始事实到问题最终答案的一条推理路线;另一层含义是找到的这条路线是时间和空间复杂度最小的求解路线。
搜索可分为盲目搜索和启发式搜索两种。
1.1 盲目搜索策略1.状态空间图的搜索策略为了利用搜索的方法求解问题,首先必须将被求解的问题用某种形式表示出来。
一般情况下,不同的知识表示对应着不同的求解方法。
状态空间表示法是一种用“状态”和“算符”表示问题的方法。
状态空间可由一个三元组表示(S,F,Sg)。
利用搜索方法求解问题的基本思想是:首先将问题的初始状态(即状态空间图中的初始节点)当作当前状态,选择一适当的算符作用于当前状态,生成一组后继状态(或称后继节点),然后检查这组后继状态中有没有目标状态。
如果有,则说明搜索成功,从初始状态到目标状态的一系列算符即是问题的解;若没有,则按照某种控制策略从已生成的状态中再选一个状态作为当前状态,重复上述过程,直到目标状态出现或不再有可供操作的状态及算符时为止。
算法5.1 状态空间图的一般搜索算法①建立一个只含有初始节点S0的搜索图G,把S放入OPEN表中。
②建立CLOSED表,且置为空表。
③判断OPEN表是否为空表,若为空,则问题无解,退出。
④选择OPEN表中的第一个节点,把它从OPEN表移出,并放入CLOSED表中,将此节点记为节点n。
⑤考察节点n是否为目标节点,若是,则问题有解,并成功退出。
问题的解的这条路径得到。
即可从图G中沿着指针从n到S⑥扩展节点n生成一组不是n的祖先的后继节点,并将它们记作集合M,将M中的这些节点作为n的后继节点加入图G中。
⑦对那些未曾在G中出现过的(即未曾在OPEN表上或CLOSED表上出现过的)M中的节点,设置一个指向父节点(即节点n)的指针,并把这些节点加入OPEN 表中;对于已在G中出现过的M中的那些节点,确定是否需要修改指向父节点(n 节点)的指针;对于那些先前已在G中出现并且已在COLSED表中的M中的节点,确定是否需要修改通向它们后继节点的指针。
3搜索问题-盲目搜索

◦ 以上问题等价于在图中寻找从根节点到某个(或某些)
目标节点的一条(或一组)路径。
1 问题状态空间的构成
状态空间表示法是以“状态空间”的形式对问题 进行表示。 1)状态:是描述问题求解过程中不同时刻状况的 数据结构。一般用一组变量的有序集合表示:Q=(q1, q2,…,qn) 其中每个元素qi为集合的分量,称为状态 变量,当给每个分量以确定的值时,就得到了一个具体的 状态。
2
3 1 3
2 1
3
2 1 3 1 1
2 3 2 3
2
1
初始棋局
17
目标棋局
产生式系统(production system)
◦ 一个总数据库:它含有与具体任务有关的信息。随着应 用情况的不同,这些数据库可能简单,或许复杂。 ◦ 一套规则:它对数据库进行操作运算。每条规则由左部
鉴别规则的适用性或先决条件以及右部描述规则应用时所 完成的动作。 ◦ 一个控制策略:它确定应该采用哪一条适用规则,而且 当数据库的终止条件满足时,就停止计算。
Q () Q Q
((1,1))
((1,1) (2,3))
((1,1) (2,4))
((1,1) (2,4) (3,2))
Q () Q
((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))
◦ 系统状态的描述 四个皇后 ((i1,j1), (i2,j2), (i3,j3), (i4,j4))
()
Q ()
((1,1))
Q ()
智能控制-第三章--搜索推理技术概要PPT课件

3.1 图搜索策略 3.2 盲目搜索 3.3 启发式搜索 3.4 消解原理 3.5 规则演绎系统
3.6 产生式系统 3.7 系统组织技术 3.8 小结
3.1 图搜索策略
❖ 图搜索控制策略 一种在图中寻找路径的方法。 图中每个节点对应一个状态,每条连线对应 一个操作符。这些节点和连线又分别由产生 式系统的数据库和规则来标记。求得把一个 数据库变换为另一数据库的规则序列问题就 等价于求得图中的一条路径问题。
5)若n为一目标节点,则有解并成功退出,此 解是追踪图G中沿着指针从n到S这条路径而 得到的(指针将在第7步中设置)。
.
3.1 图搜索策略
6)扩展节点n,同时生成不是n的祖先的那些后 继节点的集合M。把M的这些成员作为n的后 继节点添入图G中。
7)对那些未曾在G中出现过的M成员设置一个 通向n的指针。把M的这些成员加进OPEN表。 对已经在OPEN或CLOSED表上的每一个M成 员,确定是否需更改通到n的指针方向。对已 在CLOSED表上的每个M成员,确定是否需 要更改图G中通向它的每个后裔节点的指针方 向。
是否有后继节点 为目标节点?
否
是 成功
图3.2 宽度优先算法框图
.
❖ 例子
八数码难题(8-puzzle problem)
3.2 盲目搜索
28 3
1
4
76 5
(初始状态)
12 3
8
4
76 5
(目标状态)
规定:将棋子移入空格的顺序为:从空格左边开 始顺时针旋转。不许斜向移动,也不返回先辈节 点。从图可见,要扩展26个节点,共生成46个 节点之后才求得解(目标节点)。
.
深度优先搜索示意图
人工智能及其应用-状态空间的盲目搜索

3
3.2.1 状态空间的盲目搜索
广度优先搜索(2/3)
例3.5 八数码难题。在3×3的方格棋盘上,分别放置了表有数字1、 2、3、4、5、6、7、8的八张牌,初始状态S0,目标状态Sg,如下图 所示。可以使用的操作有
空格左移,空格上移,空格右移,空格下移
即只允许把位于空格左、上、右、下方的牌移入空格。要求应用广度 优先搜索策略寻找从初始状态到目标状态的解路径。
23 4 18 765
27
28 14 3 765
283 14 5 76
283 64
1 75
12 3
12 3
8 7
6
4 5
Sg
78 4 65
283 1 64 75
283 16 754
5
3.2.1 状态空间的盲目搜索
深度优先搜索
深度优先搜索算法和广度优先搜索算法的步骤基本相同,它 们之间的主要差别在于Open表中的节点排序不同。在深度优先 搜索算法中,最后进人Open表的节点总是排在最前面,即后生 成的节点先扩展。
个子节点设置指向父节点的指针。按如下公式: g(ni)=g (n) +c (n , ni) i=1,2,...
计算各子结点的代价,并根据各子结点的代价对Open表中的全部结点按由小到大的 顺序排序。然后转第(2)步。
8
3.2.2 代价树的盲目搜索
代价树的代价及广度优先搜索(2/2)
例3.6 城市交通问题。设有5个城市,它们之间的交通线路如左图所示,图中的数 字表示两个城市之间的交通费用,即代价。用代价树的广度优先搜索,求从A市出 发到E市,费用最小的交通路线。
搜索算法 (1)把初始节点S0放入Open表中; (2)如果Open表为空,则问题无解,失败退出; (3)把Open表的第一个节点取出放入Closed表,并记该节点为n; (4)考察n是否为目标节点。若是,则得到问题的解,成功退出; (5)若节点n不可扩展,则转第(2)步; (6)扩展节点n,将其子节点放入Open表的尾部,并为每一个子节
人工智能搜索技术(PPT 79张)

7 283 714 65 15 2 8 3 714 6 5 24 2 8 3 7 4 615
16 1 2 3 84 765 26 25 2 8 3 1 2 3 1 2 3 714 8 4 784 65 765 65
234 234 28 248 1 8 185 143 1 3 765 76 765 765
3.1 盲目搜索
3.1.2 宽度优先搜索
定义3.1 如果搜索是以接近起始节点的程度依次扩展节点的, 那么这种搜索就叫做宽度优先搜索(breadth-first search)
3.1 盲目搜索
3.1.2 宽度优先搜索
宽度优先搜索算法 (1) 把起始节点放到OPEN表中(如果该起始节点为一目标节点, 则求得一个解答)。 (2) 如果OPEN是个空表,则没有解,失败退出;否则继续。 (3) 把第一个节点(节点n)从OPEN表移出,并把它放入 CLOSED的扩展节点表中。 (4) 扩展节点n。如果没有后继节点,则转向上述第(2)步。 (5) 把n的所有后继节点放到OPEN表的末端,并提供从这些后 继节点回到n的指针。 (6) 如果n的任一个后继节点是个目标节点,则找到一个解答, 成功退出;否则转向第(2)步。
9
2 5 1 4 6 7 3 8 2 5 1 4 6 7 3 8 2 4 5 1 6 7 3 8 2 4 5 1 6 7 3 8 2 4 5 1 3 6 7 8 2 4 5 1 6 7 3 8 2 4 5 1 3 6 7 8 2 4 5 1 3 6 72 8 3 1 6 4 7 5 2 8 3 1 4 7 6 5 2 3
4.图搜索方法分析:
图搜索过程的第8步对OPEN表上的节点进行排序,以便能够 从中选出一个“最好”的节点作为第4步扩展用。这种排序可 以是任意的即盲目的(属于盲目搜索),也可以用以后要讨论的 各种启发思想或其它准则为依据(属于启发式搜索)。每当被选 作扩展的节点为目标节点时,这一过程就宣告成功结束。这时, 能够重现从起始节点到目标节点的这条成功路径,其办法是从 目标节点按指针向S返回追溯。当搜索树不再剩有未被扩展的 端节点时,过程就以失败告终(某些节点最终可能没有后继节 点,所以OPEN表可能最后变成空表)。在失败终止的情况下, 从起始节点出发,一定达不到目标节点。
第3章(搜索推理技术1-图盲目搜索)

①、起 始节点 ( 即根
节点)的深度为0。
②、任何其它节点的
深度等于其父辈
节点深度加上1。
深度优先搜索的基本
思路:
先扩展最深的节点 。
当出现没有后继节点
时,换到旁边的次深
节点
后生成的节点画在左边
含有深度界限的深度优先搜索算法:
① 把起始节点 S 放到未扩展节点的 OPEN 表中。 如果此节点为一目标节点,则得到解 ② 如果 OPEN 为一空表,则无解、失败退出
状态:长度为9的一维数组
(q1 , q2 , … , q9 )
其中,qi 取 0 , 1 , … , 8 个数,0 表示空格,且取值
互不相同
如果记空格的位置为P,这时空格的移动规则是: 1 4 7 2 5 8 3 6 9 数字表示位置 1 2 3 4 5 6 7 8 9 P-3
P-1
P
P+1
P+3
起始节点的父节点标志和操作符:
不作记录或记录为负
搜索过程(按照程序运行方式)
① 起始节点放到OPEN表
2 8 3 1 0 4
2 8 3 1 4 7 6 5 7 6 5
② OPEN不为空,继续
③ 将第一个节点 n 从 OPEN 表中移出,并放到 CLOSED表中 OPEN表
CLOSED表 1 0 0 2 8
13
14
1
4
2
8
8
3
3
0
1
2
4
1
5
4
7
7
0
6
6
5
1 8
7
2
3 4
14 15 15
16 16
3 2 4
(搜索推理技术-与或树搜索)

7、无判断起始节点1可解
8、从OPEN中删除含有可解先辈节点的节点
删除
OPEN= { B, C, t1, 10, 11, 12, A, t2, t3 }
CLOSED= { 1, 2, 3, 4, 5, 6, 7, 8, 9 } OPEN= {t1, 10, 11, 12, t2, t3}
CLOSED= {1, 2, 3, 4, 5, 6, 7, 8, 9} 说明:对于OPEN表中的叶节点直接移到 CLOSED表,不作任何处理
OPEN= {9, B, C, t1, 10, 11, 12, A} CLOSED= {1, 2, 3, 4, 5, 6, 7, 8}
第九大循环(3、4、5、6、7、8步): 3、从OPEN表中取出节点9,并送到CLOSED表 4、扩展节点9,生成后继节点 t2、t3,并送到 OPEN表的末端 5、有叶节点 6、实现可解标志过程(可以判断节点9、4、2可解)
即OPEN是堆栈
注意
由于深度限制,深度优先搜索算法有可能找不 到解
例:
深度界限为4
√
2
1
√
√
6
√
3
Ⅹ A √ √
7 √
C
Ⅹ
4
5
8
t
√
Ⅹ B
t
t
t
t
√
√
√
√
注:后生成的节点画在左边
课堂练习:用宽度和深度优先搜索算法找出解树
提示:对于宽度优先搜索,先生成的节点画在左;
对于深度优先搜索,后生成的节点画在左
CLOSED= { 1, 2, 3, 4, 5, 6, 7, 8, 9, t1, 10 }
搜索过程演示
√
人工智能课件-搜索推理技术

1
3.4 消解原理
(4) (x){~P(x)∨{(y)[~P(y)∨P(f(x,y))]
∧[Q(x,g(x))∧~P(g(x))]}}
式中,w=g(x)為一Skolem函數。
(4) 消去存在量詞
以Skolem函數代替存在量詞內的約束變數,
❖ 實質
❖ 把一棵根部有NIL的反演樹變換為根部帶有回 答 語句的一棵證明樹。
1
3.5 規則演繹系統
—— g是g*的估計 ,h是h*的估計
❖ A*演算法的定義:
定義1 在GRAPHSEARCH過程中,如果第8步的重排OPEN表
是依據f(x)=g(x)+h(x)進行的,則稱該過程為A演算法。
定義2 在A演算法中,如果對所有的x存在h(x)≤h*(x),則稱h(x)
為h*(x)的下界,它表示某種偏於保守的估計。
子句(4) {a/x,b/y}
子句(7) ~M(b)
子句(5)
圖3.12 儲蓄問題反演樹
NIL
1
3.4 消解原理
❖ 反演求解過程 ❖從反演樹求取答案步驟
❖把由目標公式的否定產生的每個子句添加到目 標公式否定之否定的子句中去。
❖按照反演樹,執行和以前相同的消解,直至在 根部得到某個子句止。
❖用根部的子句作為一個回答語句。
❖ 種類:有序搜索、A*演算法等
3.3.1 啟發式搜索策略和估價函數
❖盲目搜索可能帶來組合爆炸 ❖啟發式資訊
用來加速搜索過程的有關問題領域的特徵資訊。
1
3.3 啟發式搜索
❖ 估價函數 為獲得某些節點“希望”的啟發資訊,提供一
人工智能中图搜索算法(PDF 159页)

图4—5 八数码问题的广度优先搜索
第9页
第4章 图搜索技术
以上两个问题都是在某个有向图中寻找目标或路径问 题,这种问题图搜索问题。把描述问题的有向图称为状态 空间图,简称状态图。图中的节点代表问题中的一种格局, 一般称为问题的一个状态,边表示两个状态之间的联系。 在状态图中,从初始节点到目标节点的一条路径或者所找 到的目标节点,就是问题的解(路径解)。
谓搜索,顾名思义,就是从初始节点出发,沿着与之相连 的边试探地前进,寻找目标节点的过程(也可以反向进行)。 搜索过程中经过的节点和边,按原图的连接关系,形成树 型的有向图,称为搜索树。搜索过程应当随时记录搜索痕 迹。
1.搜索方式 用计算机来实现状态图的搜索,有两种最基本的方式: 树式搜索和线式搜索。 所谓树式搜索,形象地讲就是以“画树”的方式进行 搜索。 即从树根(初始节点)出发一笔一笔地描出来的。
状态图实际上是一类问题的抽象表示。事实上,有许
多智力问题(如梵塔问题、旅行商问题、八皇后问题、农
夫过河问题等)和实际问题(如路径规划、定理证明、演
绎推理、机器人行动规划等)都可以归结为在某一状态图
中寻找目标或路径的问题。因此,研究状态图搜索具有普
遍意义。
第10页
第4章 图搜索技术
4.1.2 状态图搜索 在状态图中寻找目标或路径的基本方法就是搜索。所
第4章 图搜索技术
3. 搜索算法 由于搜索的目的是为了寻找初始节点到目标节点 的路径,所以在搜索过程中就得随时记录搜索轨迹。 为此,我们用一个称为CLOSED表的动态数据结构来 专门记录考查过的节点。显然,对于树式搜索来说, CLOSED表中存储的正是一棵不断成长的搜索树;而 对于线式搜索来说,CLOSED表中存储的是一条不断 伸长的折线,它可能本身就是所求的路径(如果能找到 目标节点的话)。
状态空间与图搜索

1,1 A(1,3)
2,1 2,3
3,3
1,3
3,1 B(1,2)
3,2 A(3,2)
1,2 2,2
A B
12 3
S0
《人工智能》
A B
12 3
Sg
猴子摘香蕉问题
c
a
b
《人工智能》
状态:(w,t,x,y,z)
初始状态:(c,a,b,0,0)
w:猴子的水平位置
{a,b,c} 目标状态:(a,a,a,1,1)
《人工智能》
树节点深度: 根节点深度=0 其它节点深度=父节点深度+1
0 1
2
3
《人工智能》
路径的代价(耗散值) 等于连接这条路径各节点间所有代价(耗散值)的总和。
代价树:边上标有代价的树状结构图 若干记号: S0-初始态;Sg-目标态; g(x)-从S0到节点x的代价;g(xj)=g(xi)+ C(xi, xj)
《人工智能》
n 皇后问题解的个数:独立解U;互不相同的解D 现在还没有已知公式可以对 n 计算 n 皇后问题的解的个数。
n 1 2 3 4 5 6 7 8 9 10 11 12
13
14
U 1 0 0 1 2 1 6 12 46 92 341 1787 9233 45752
D 1 0 0 2 10 4 40 92 352 724 2680 14200 73712 365596
m 0 m c 1,2 m 3
m c 1,2
(3,3,1)
(3,2,0)
(2,2,0) (3,1,0)
m m x b 1: c c y ,
b 0
m m x b 0 : c c y ,
人工智能ch3 盲目搜索

3.1 一般搜索过程
三、几点说明
代价树的宽度优先搜索算法
3.3 宽度优先搜索
3.4 代价树的宽度优先搜索算法
例:城市交通问题。 设有5个城市, 它们之间的交 通路线如图所示,图中的数字 表示两个城市之间的交通费用,
即代价。
求从A市出发到E市,费用最 小的交通路线。 结论:在搜索树中给每条边 都标上代价。
3.4 代价树的宽度优先搜索
第3章 盲目搜索
3.1 一般搜索过程
3.2 回溯策略 3.3 宽度(广度)优先搜索 3.4 代价树的宽度优先搜索 3.5 深度优先搜索
搜索、推理与人工智能
搜索是人工智能中的一个基本问题,是推理不可分 割的一部分,它直接关系到智能系统的性能与运行效率, 尼尔逊把它列为人工智能研究中的核心问题之一。
搜索的基本问题:
一、代价树生成方法
从初始节点A开始,把与A直接 相邻的节点作为子节点。 对其他节点作相同处理。 若一个节点已是某节点的直系 先辈节点,就不能再作为该节点的 子节点。 除 A 外,其它节点可能在代价 树中多次出现。为便于区分,用下 标1, 2, ……标出。
3.4 代价树的宽度优先搜索
二、代价的定义
3.2 回溯策略
回溯策略的几点说明
各种合适的推理规则或其他问题求解操作都可以应用于 PS,得到一些新的子节点有序集; 为避免死循环,若有序集中的子节点已在 3张表的任一表 中,说明它已被搜索过,不需要再考虑;
人工智能导论-第3章 搜索求解1 - 启发式搜索

节点在搜索树中却是不同结点,因为它们分别代
表了从初始状态出发到达城市 A 的三条不同路径。
这三个结点表示的路径分别为:A → B → A、
A → D → A和A → E → A。因此需要注意的是,在
搜索树中,同一个标号一定表示相同的状态,其
含义为智能体当前所在的城市,但是一个标号可
达每个状态(城市)的最短路径。在处理通向相同状态的不同路径时,算法会更新当前的
前驱状态。
图3.7 修改后图搜索A*算法扩展A→E→G结点,红色实线表示
当前搜索树中的边,虚线表示不在搜索树中的边
搜索算法:A*算法性能分析
图搜索A*算法满足最优性(方法二):
要求启发函数满足一致性
引理3.1:启发函数满足一致性条件时,给定一个从搜索树中得到的结点序列,每个结
ถ
=
+
评价函数 起始结点到结点代价
(当前最小代价)
B
5
5
3
D
4
I
C
A
5
7
6
4
E
4
H
G
J
3
3
3
F
7
K
5
6
L
()
ถ
结点到目标结点代价
(后续估计最小代价)
状态
A
h(n)
13 10 6 12 7 8 5 3 6 3 0 6
B C D
E F G H I J K L
A*算法
搜索算法:A*算法
搜索算法:启发函数与评价函数
贪婪最佳优先搜索
所求解问题之外、与所求解
问题相关的特定信息或知识。
人工智能答案终极版

人工智能复习参考(2015工程硕士)1-1.什么是人工智能?它的研究目标是什么?人工智能(Artificial Intelligence),简称AI,又称机器智能(Machine Intelligence,MI),主要研究用人工的方法和技术开发智能机器或智能系统,以模仿、延伸和扩展人的智能、生物智能、自然智能,实现机器的智能行为。
近期目标:人工智能的近期目标是实现机器智能。
即先部分地或某种程度地实现机器智能,从而使现有的计算机更灵活好用和更聪明有用。
远期目标:人工智能的远期目标是要制造智能机器。
具体讲就是使计算机具有看、听、说、写等感知和交互能力,具有联想、学习、推理、理解、学习等高级思维能力,还要有分析问题解决问题和发明创造的能力。
1-2.人工智能有哪些研究方法和途径?简单描述它们的特点。
一、传统划分法1.符号主义:以人脑的心理模型为依据,将问题或知识表示成某种符号,采用符号推演的方法,宏观上模拟人脑的推理、联想、学习、计算等功能,实现人工智能。
2.连接主义:不仅要求机器产生的智能和人相同,产生的过程和机理也应该相同。
人或某些动物所具有的智能皆源自于大脑,通过对大脑微观结构的模拟达到对智能的模拟,这是一条很自然的研究人工智能的途径。
3.行为主义:模拟人在控制过程中的智能活动和行为特性,如自适应,自寻优、自学习、自组织等,以此来研究和实现人工智能。
二、现代划分法1.符号智能:是对智能和人工智能持狭义的观点,侧重于研究任何利用计算机软件来模拟人的抽象思维过程,并把思维过程看成是一个抽象的符号处理过程。
2.计算智能:计算机智能又重新回到依靠数值计算解决问题的轨道上来,它是对符号智能中符号推演的再次否定。
3.群体智能:它认同智能同样可以表现在群体的整体特性上,群体中每个个体的智能虽然很有限,但通过个体之间的分工协作和相互竞争,可以表现出很高的智能。
1-3.为什么能够用机器(计算机)模仿人的智能?假设:任何一个系统,如果它能够表现出智能,那么它就必定能够执行上述6种功能:输入符号;输出符号;存储符号;复制符号;建立符号结构;条件性迁移:反之,任何系统如果具有这6种功能,那么它就能够表现出智能,这种智能指的是人类所具有的那种智能。
人工智能 一般搜索原理---盲目搜索

人 工 智 能 及 其 应 用
第六讲一般搜索原理--盲目搜索
搜索:从问题表示到问题解决的求解过程. 一.盲目搜索:人为给定搜索顺序的无信息搜索. 1.宽度优先搜索 2.深度优先搜索 3.等代价搜索 二.启发式搜索:根据检测到的信息决定搜索顺序 的有信息搜索. 1.有序搜索,2.A算法,3.A*算法
第六讲一般搜索原理--盲目搜索
算法
(1)把起始节点放到OPEN表中,若该节点为一目标节点,则求得一个 解,退出.否则,令g(s)=0. (2)如果OPEN表是一个空表,则没有解,失败退出.否则继续. (3)把第一个节点i,其g(i)为最小,从OPEN 表中移出到CLOSED表中. (4)扩展节点i.如果没有后继节点,则goto(2). (5)把i的所有后继节点j,计算g(j)=g(i)+C(i,j),放到OPEN表末端,并 提供从这些后继节点回到i的指针. (6)如果i的任一后继节点是目标,则成功退出,否则,goto (2).
2 8 3 7 1 4 6 5
2 3 1 8 4 7 6 5
2 3 1 8 4 7 6 5
2 8 3 1 6 4 7 5
2 8 3 1 6 4 7 5
2 8 1 4 3 7 6 5
2 8 3 1 4 5 7 6
宽度优先搜索示意图
第六讲一般搜索原理--盲目搜索
2.深度优先搜索 扩展最新产生的节点,搜索沿着状态空间某条 单一的路径从起始节点向下搜索,结果使得只有 搜索到一个没有后裔的状态时,才考虑另一条替 代的路径. 问题:当搜索深度很深时,需要控制.
第六讲一般搜索原理--盲目搜索
算法
(1)把起始节点放到OPEN表中,若该节点为一目标节点,则求得一个 解,退出. (2)如果OPEN表是一个空表,则没有解,失败退出.否则继续. (3)把第一个节点N从OPEN 表中移出到CLOSED表中. (4)如果节点N的深度等于最大深度,则goto(2). (5)扩展节点N.把N的所有后继节点放到OPEN表前端,并提供从这些 后继节点回到N的指针.如果没有后继节点,则goto(2). (6)如果N的任一后继节点是目标,则成功退出,否则,goto (2).
《人工智能》课程简介

《人工智能》课程简介
课程目标:
人工智能是研究如何利用计算机来模拟人脑所从事的感知、推理、学习、思考、规划等人类智能活动,来解决需要用人类智能才能解决的问题,以延伸人们智能的科学。
掌握人工智能的基本概念、基本原理、知识的表示、推理机制和求解技术,以及机器学习的技术方法. 掌握人工智能的一个问题和三大技术,即通用问题求解和知识表示技术、搜索技术、推理技术。
课程主要内容:
1.搜索技术
✧图搜索技术
✧盲目搜索算法(宽度优先搜索、深度优先搜索、均一代价搜索)
✧启发式搜索算法(登山法、分支界限法、动态规划法、A算法、A*算法)
✧与或图搜索(AO*搜索)
✧博弈树搜索(极大极小法,剪枝的?-?剪枝法)
✧高级搜索技术(遗传算法)
2. 归结推理方法
✧谓词逻辑表达式
✧谓词逻辑归结原理
✧Herbrand定理。
3.知识表示方法
✧产生式规则表示法
✧语义网络表示法
✧框架表示法
✧脚本方法
✧过程表示
✧直接表示
4.机器学习
✧实例学习
✧解释的学习
✧决策树学习
✧神经网络学习(人工神经网络的结构、模型,解BP算法)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
④ 扩展节点 n 。如果没有后继节点,则转向第 ②步
⑤ 把 n 的所有后继节点放到OPEN表的末端,
并提供从这些后继节点回到 n 的指针
⑥ 如果 n 的任一个后继节点是个目标节点,则 找到一个解(反向追踪得到从目标节点到起始 节点的路径),成功退出,否则转向第②步
说明:
OPEN 表是存放待扩展的节点,从数据结构 上来说,它是一个先进先出的队列
CLOSED 表是存放已被扩展过的节点(包括 有后继节点的非端节点和无后继节点的端节
点)
流程图
注意几点:
①搜索过程产生的节点和指针构成一棵隐式定义的 状态空间树的子树,称之为搜索树
② 宽度优先搜索方法能够保证在搜索树中找到 一条通向目标节点的最短途径(所用操作符
最少)
例:八数码问题
初始状态 2 8 3 1 7 6 4 5 目标状态 1 2 3 8 7 2 操作符: 1 空 3 4 6 4 5
状态:长度为9的一维数组
( q 1 , q2 , … , q 9 )
其中,qi 取 0 , 1 , … , 8 个数,0 表示空格,且取值
互不相同
如果记空格的位置为P,这时空格的移动规则是: 1 4 7 2 5 8 3 6 9 数字表示位置 1 2 3 4 5 6 7 8 9 P-3
P-1
P
P+1
Q
X
X
Q
Q Q
Q
假设,每个节点的分支数为10;10000节点/秒; 1000字节/节点
P+3
空格移动规则
顺序
规则
左移
前提条件
应用结果
P 位置与 P-1 位置上的元素互换
1
P≠1,4,7
2
3
上移
下移
P≠1,2,3
P≠7,8,9
P-3
P+3
4
右移
P≠3,6,9
P+1 P-3
1 4 7
2 5 8
3 6 9
P-1
P
P+3
P+1
为了记录后继节点与父节点之间的指针,我们将
长度为 9 的数组扩大到长度为 11 的数组,其中 一个元素记录该节点的父节点标志,另一个元素
3.2 盲目搜索
盲目搜索是指无问题先验信息的搜索技术
特点:
OPEN表中节点的排列是人为规定的 一般只适合于求解比较简单的一些问题
图的盲目搜索技术分成: 宽度优先搜索技术
深度优先搜索技术
等代价(代价优先)搜索技术
3.2.1 宽度优先搜索
宽度优先搜索:以接近起始节点的程度依次扩展 节点的搜索技术(即:离起始节点近的节点先被
王A:寿命47,有儿子王B1、王B3、王B2 王B1:寿命77,有儿子王C1、王C2
王B3:寿命52,有儿子王D1
王B2:寿命65,有儿子王E1、王E2 王F1:寿命32
王G1:寿命96
王C2:寿命87,有儿子王F1 王D1:寿命77,没有儿子
王E1:寿命57,有儿子王G1
王E2:寿命92,有儿子王H1 王C1:寿命27,没有儿子 王H1:寿命51
8 1
3 4 5
1
2 8
3 4 5
2 1 7
3 8 6
4
2
8 6
3 4 5
2 1 7
8 6 5
3
2 1 4 6
8 3 5
2 1 7
8 4
3 5 6
7
6
5
1
7
4
7
8
1
3
8 2
3 1 4
2
8
3
2 7
8 1
3 4
1
2
3
1 8
2
3 4
2
7 6
4
5
7
6 1
4
5
7
8
6
4
5
7
6
5
6
5
7
6
5
目标 节点
生成后继节 点的顺序
5 5 5 5 5 5 5 5 5
10 11
4
1
2
8
3
1
6
4
0
7
5
4
5 5 6 7
4
2 3 4 4
2
2 2 8 2
8
8 8 0 8
3
0 3 3 3
1
1 1 2 7
6
4 4 1 1
4
3 5 4 4
7
7 7 7 6
5
5 6 6 0
0
0 0 5 5
12
13
14
15 16
目标节点
8
16
3
4
1
1
2
2
3
3
0
8
2
3
2
8
3
7
1
4
0
6
5
…………………. 一直继续下去,而且不产生已经产生过的节点 (状态),防止死循环。在程序中每一个新产 生的节点必须与 OPEN 和 CLOSED 表中状态
进行比较,判断是否已经产生过,只保留从未
产生过的节点
最后的OPEN表:
9 10 11 12 3 3 2 1 2 2 2 2 3 8 8 0 4 3 3 8 1 0 1 1 8 6 6 4 0 4 0 3 7 1 7 7 6 7 5 6 5 5 4 5
13
14
1
4
2
8
8
3
3
0
1
2
4
1
5
4
7
8
7
2
3 4
14 15 15
16 16
3 2 4
3 4
8 2 2
1 1
1 8 8
2 2
3 3 3
3 3
2 7 7
7 8
0 0 1
8 0
4 4 4
4 4
7 6 6
0 7
6 1 5
6 6
5 5 0
5 5
6
5
目标节点
最后的CLOSED表:
1 2 3 4 5 6 7 8 9
图搜索中的两个重要记号(符号):
OPEN 表:
存放待扩展的节点
CLOSED 表:存放已扩展的节点 注意:在与或树搜索中也要用到这两张表
数据结构中图的遍及:从图某一个节点出发, 访问遍图中其余节点,且每一个节点仅仅被访问 一次。 当前图的搜索技术中,有两个特殊之处: 搜索前,图并没有生成好,需要边生成图边搜索 搜索从起始节点(初始状态)开始,到目标节点 (目标状态)结束,不需要搜索所有可能的节点
扩展)
扩展节点的原则:先扩展出来的节点随后优先被 扩展(生成其所有的后继节点)
宽度优先搜索算法:
① 把起始节点放到 OPEN 表中(如果该起始节点 为一目标节点,则得到解) ② 如果 OPEN 是个空表,则无解,失败退出; 否则继续下一步
③ 把第一个节点(记作节点 n )从 OPEN 表移出, 并把它放入 CLOSED 的已扩展节点表中
节点n 3 1 0 4 7 6 5
④ 扩展节点n
0 0 2 8 3 1 扩 展 0 4 7 6 5
2 8 3 1 4 7 6 5
2
2 2 2
8
0 8 8
3
3 3 3
0
1 1 1
1
8 6 4
4
4 4 0
7
7 7 7
6
6 0 6
5
5 5 5
⑤ 将节点 n 的所有后继节点放到 OPEN 表的末
端,并提供这些后继节点回到 n 的指针 OPEN表 1 1 1 1 2 3 2 2 2 0 8 0 8 0 2 3 3 3 0 1 1 8 1 8 6 3 4 4 4 1 7 7 7 0 CLOSED 4 7 6 5 6 6 0 5 5 5
若X=57,下面讨论一种可通用的图搜索策略求解此问
题。 如果是一个N代的家族表中找其寿命为X的人,我 们最可能用的手工方法是从家族表的开始往下,例中 还要求所找的人是某人的后代,就比较复杂了。如果
用图来表示,就很容易了。图中把姓氏省去,每个成
员的后代按例子中给出名字的先后顺序。图示为:
3.1 图搜索策略
CLOSED表
1 0 0 2 8 3 1 0 4 7 6 5
节 点 n
2 1
1
2
8
3
0
1
4
7
6
5
④ 扩展节点 n 1 1 2 8 3 0 1 4
2 8 3 1 4 7 6 5 7 6 5
0
2
8
8
3
3
2
7
1
1
4
4
7
0
6
6
5
5
⑤ 将节点 n 的所有后继节点放到 OPEN 表的末 端,并提供这些后继节点回到 n 的指针 OPEN表 1 1 1 2 2 3 4 2 2 2 2 0 0 8 8 8 3 3 3 3 1 1 1 2 8 6 4 1 4 4 0 4 7 7 7 7 6 0 6 6 5 5 5 5
1 1 1 1 2 2 3 3
1 2 3 4 2 3 1 4
2 2 2 2 2 0 2 0 2
8 8 0 8 8 8 8 2 3
3 3 3 3 3 3 3 3 0
1 0 1 1 1 2 7 1 1
0 1 8 6 4 1 1 8 8
4 4 4 4 0 4 4 4 4
7 7 7 7 7 7 0 7 7
6 6 6 0 6 6 6 6 6
8
0
4
4