收藏 分享(赏)

人工智能第一章讲义.ppt

上传人:kpmy5893 文档编号:10137021 上传时间:2019-10-13 格式:PPT 页数:128 大小:1.51MB
下载 相关 举报
人工智能第一章讲义.ppt_第1页
第1页 / 共128页
人工智能第一章讲义.ppt_第2页
第2页 / 共128页
人工智能第一章讲义.ppt_第3页
第3页 / 共128页
人工智能第一章讲义.ppt_第4页
第4页 / 共128页
人工智能第一章讲义.ppt_第5页
第5页 / 共128页
点击查看更多>>
资源描述

1、1,第一章 搜索问题,人类思维过程:,搜索问题答案,搜索过程,2,一个简单的例子,设有三枚钱币,其排列处在“正,正,反”状态,现允许每次可翻动其中任意一个钱币,问只允许操作三次的情况下,如何翻动钱币使其变成“正,正,正”或“反,反,反”状态。,3,若“正面”用“1”表示,“反面”用“0”表示,则问题化成求解从初始状态(1,1,0)到目标状态(1,1,1)或(0,0,0)的路径问题,且该路径的长度为3。即:(1,1,0)-(1,1,1)或(1,1,0)-(0,0,0),一个简单的例子,4,状态图,5,状态空间图,人工智能科学中,把这种描述问题的有向图称为 状态空间图,简称状态图(state di

2、agram)。 状态图中的一个结点(node)代表问题中的一种格局或状态。 边表示两个结点之间的某种联系(某种操作、规则、变换、算子、通道或关系)。 在状态图中,从初始结点到目标结点的一条路径或者所找到的目标结点就是相应的一个解。,6,总结:问题的求解状态空间的搜索 。,7,搜索问题,S0,Sg,问题的全状态空间,搜索空间,解路径,8,搜索问题,内容:状态空间的搜索问题。 搜索策略:确定如何选取规则。 盲目搜索(无信息引导的搜索策略)不考虑给定问题的特定知识,按固定的规则排序,依次调用规则或随机调用规则。 启发式搜索(有信息引导的搜索策略)考虑给定问题的特定知识,动态确定规则的排序,优先调用较

3、合适的规则。,9,搜索问题,盲目搜索算法:回溯法、深度优先法、宽度优先法 启发式搜索算法:爬山法最佳图搜索法(A*)、分支界限法、动态规划法一般与或图搜索法(AO*)、-剪支法、极大极小值法等,10,搜索问题,讨论的问题:有哪些常用的搜索算法。 问题有解时能否找到解。 找到的解是最佳的吗? 什么情况下可以找到最佳解? 求解的效率如何。,11,1.1 回溯策略,12,当前状态,目标状态g,r1,r2,ri-1,ri,1.1 回溯策略,子状态,13,递归法,每个状态及其子状态执行同样的操作 递归调用同一过程,14,递归法,递归过程 BACKTRACK(DATA),DATA:,当前状态。,返回值:,

4、从当前状态到目标状态的路径 (以规则表的形式表示)或FAIL。,RULES:,当前状态可用规则集序列表,R :,当前调用的规则,15,递归法,RDATA:,新生成的子状态。,PATH:,当前解路径表(新状态到目标状态),NIL:,空表,FAIL:,回溯点标记,LOOP:,循环标号,16,记忆测试,17,记忆测试,新生成的子状态。,当前解路径表(新状态到目标状态),空表,回溯点标记,循环标号,18,递归过程,BACKTRACK(DATA) IF TERM(DATA) RETURN NIL;如果当前状态即为目标状态,则返回空表 IF DEADEND(DATA) RETURN FAIL;如果当前状态

5、不合法,则返回FAIL,必须回溯 RULES:=APPRULES(DATA);计算当前状态可用的规则集并排序,赋给RULES LOOP: IF NULL(RULES) RETURN FAIL;如果规则用完,即所有子状态无解,则返回FAIL,必须回溯,19,递归过程,BACKTRACK(DATA)R:=FIRST(RULES);取第一条可用规则RULES:=TAIL(RULES);从规则集中删除第一条规则RDATA:=GEN(R, DATA);对当前状态调用规则R,生成新状态,20,递归过程,BACKTRACK(DATA) 8 PATH:=BACKTRACK(RDATA);对新状态递归调用本过程

6、, 将新状态到目标状态的路径赋给PATH IF PATH=FAIL GO LOOP;如果递归调用失败,即当前规则失败,则转移调用另一规则。 RETURN CONS(R, PATH);如果递归调用成功,将当前规则加到新状态解路径规则表前面并返回解路径规则表,21,递归过程 BACKTRACK,设置两个回溯点:,(1)当前状态非法,(2)当前状态的所有子状态均无解,自变量:当前状态,返回值:当前状态到目标状态的解路径规则表或FAIL,22,四皇后问题,要求:每行、每列及对角线只能有一个棋子,23,L = ( (1,1) (2,3) ),当前状态DATA,(1,1),(2,3),棋局状态的表示,24

7、,四皇后问题,DATA = L (表),1、综合数据库:,L元素个数-最多为4,L - 当前棋局中各棋子的位置表。,L的元素-当前棋局中每个棋子的位置(ij)1i,j4,25,四皇后问题,2、规则集:,If 1i4 且 Lenth(DATA)=i-1 then APPEND(DATA(ij)(1j4),当前棋盘中已经 有i-1个棋子,在第i行第j列摆一个棋子,即 在(ij)位置摆一个棋子,26,i=1 时 没有棋子,Lenth(DATA) = 0 = i-1,Q,在第1行摆1个棋子,四皇后问题,27,i=2 时 有1个棋子,Lenth(DATA) = 1 = i-1,Q,Q,在第2行摆1个棋子

8、,四皇后问题,28,四皇后问题,规则集总结:,从第一行开始逐行摆棋子,每行摆1个棋子。,4行4列,共16个摆放规则Rij,29,( ),开 局,30,( ),Q,(1,1),在第1行摆棋子,31,( ),Q,Q,(1,1),x,x,在第2行摆棋子,32,( ),(1,1),(1,1) (2,3),x,x,x,x,在第3行摆棋子,33,( ),Q,(1,1),(1,1) (2,3),第1次回溯,34,( ),Q,Q,(1,1),(1,1) (2,3),x,x,x,回溯,第1次回溯后-在第2行摆棋子,35,( ),(1,1),(1,1) (2,3),(1,1) (2,4),Q,Q,Q,x,第1次回

9、溯后-在第3行摆棋子,回溯,36,( ),(1,1),(1,1) (2,3),(1,1) (2,4),Q,Q,Q,(1,1) (2,4) (3,2),x,x,x,x,第1次回溯后-在第4行摆棋子,回溯,37,( ),(1,1),(1,1) (2,3),(1,1) (2,4),(1,1) (2,4) (3,2),第2次回溯,回溯,x,x,38,( ),Q,Q,(1,1),(1,1) (2,3),(1,1) (2,4),(1,1) (2,4) (3,2),回溯,x,x,x,x,第2次回溯后-在第3行摆棋子,回溯,39,( ),Q,(1,1),(1,1) (2,3),(1,1) (2,4),(1,1

10、) (2,4) (3.2),回溯,回溯,第3次回溯,x,x,x,x,40,( ),(1,1),(1,1) (2,3),(1,1) (2,4),(1,1) (2,4) (3.2),回溯,回溯,回溯,回溯,第4次回溯,41,( ),(1,1),(1,1) (2,3),(1,1) (2,4),(1,1) (2,4) (3.2),Q,第4次回溯后-在第1行摆棋子,回溯,回溯,回溯,回溯,x,42,( ),(1,1),(1,1) (2,3),(1,1) (2,4),(1,1) (2,4) (3.2),(1,2),Q,Q,第4次回溯后-在第2行摆棋子,x,x,x,43,( ),(1,1),(1,1) (2

11、,3),(1,1) (2,4),(1,1) (2,4) (3.2),(1,2),(1,2) (2,4),Q,Q,Q,第4次回溯后-在第3行摆棋子,44,( ),(1,1),(1,1) (2,3),(1,1) (2,4),(1,1) (2,4) (3.2),(1,2),(1,2) (2,4),(1,2) (2,4) (3,1),Q,Q,Q,Q,第4次回溯后-在第4行摆棋子,x,x,45,返回的解路径规则表:,四皇后问题,从初始状态 到目标状态,R12 R24 R31 R43,46,存在问题及解决办法,解决办法: 对搜索深度加以限制 记录从初始状态到当前状态的状态表,问题: 深度问题,死循环问题,

12、47,回溯搜索算法1,BACKTRACK1(DATALIST)自变量:DATALIST-从初始到当前的状态表(逆向)第一个为当前状态,最后一个为初始状态 返回值:从当前状态到目标状态的路径(以规则表的形式表示)或FAIL。,48,回溯搜索算法1,1 DATA:=FIRST(DATALIST)DATA为当前状态 2 IF MEMBER(DATA, TAIL(DATALIST)RETURN FAIL; TAIL取表中除第1个元素之外的所有元素,如果DATA在表中,表示有环路, 返回FAIL,必须回溯。 3 IF TERM(DATA) RETURN NIL;如果找到目标,返回空表。 4, IF DE

13、ADEND(DATA) RETURN FAIL; 如果状态不合法,返回FAIL,必须回溯,49,回溯搜索算法1,5, IF LENGTH(DATALIST)BOUNDRETURN FAIL;如果搜索深度超过限制,必须回溯 6, RULES:=APPRULES(DATA); 7, LOOP: IF NULL(RULES) RETURN FAIL; 8, R:=FIRST(RULES);,50,回溯搜索算法1,9 RULES:=TAIL(RULES); 10 RDATA:=GEN(R, DATA); 11 RDATALIST:=CONS(RDATA, DATALIST);将新状态加到DATALIS

14、T 12 PATH:=BACKTRCK1(RDATALIST) 13 IF PATH=FAIL GO LOOP; 14 RETURN CONS(R, PATH);,51,回溯搜索中知识的利用,基本思想:(以皇后问题为例) 尽可能选取在最长对角线上影响位置数最少的位置来摆放棋子。,Q,Q,Q,3,3,2,2,52,一些深入的问题,失败原因分析、多层回溯,53,1.2 图搜索策略,问题的引出回溯搜索:只记录从初始状态到当前状态的一条路径。 图搜索:记录所有已搜索过的状态和路径。 图搜索策略:从一个隐含图中,生成一个包含目标节点的显式子图。,54,图搜索策略之前例,从某王姓家族的四代中找王A的后代且

15、其寿命为X的人。 王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 若X=57,下面讨论一种可通用的图搜索策略求解此问题。,55,56,一些基本概念,节点深度:当前节点距离根节点的层数。,0,1,2,3,其它节点深度=父节点深度+1,根节点深度=0,57,一些基本概念(续1),路径设一

16、节点序列为(n0, n1,nk),对于i=1,k,若节点ni-1具有一个后继节点ni,则该序列称为从n0到nk的长度为k的路径。,3,58,一些基本概念(续1),路径,路径长度=k,59,一些基本概念(续1),路径的耗散值一条路径的耗散值等于连接这条路径各节点间所有耗散值的总和。用C(ni, nj)表示从ni到nj的路径的耗散值。,60,一些基本概念(续1),路径的耗散值,61,一些基本概念(续1),扩展一个节点,生成出某一节点的所有后继节点,并给出 它们之间的耗散值,这一过程称为“扩展 一个节点”。,62,一些基本概念(续1),C(n0, n1),C(n0, n2),扩展一个节点,63,一般

17、的图搜索算法,一、原理 从一个隐含图中生成包含目标节点的显式子图。,2、T:搜索树 若搜索图不包含环路,即其中任何一个节点都不是以前生成过的则称为搜索树。,1、G:搜索图初始只包含一个初始节点。,64,搜 索 树,65,非 搜 索 树,66,一般的图搜索算法,3、OPEN表 保存未扩展的端节点,为空心圆点。,4、CLOSED表 保存已扩展的端节点或非端节点,为实心圆点。,67,mk,ml,mj,在OPEN表中,在CLOSED表中,OPEN/CLOSED表中都没有,一般的图搜索算法,扩展节点,68,一般的图搜索算法,6、子节点ml: 以前生成过的已扩展节点,是CLOSED表中 有的,表示出现环路

18、。,5、子节点mk: 以前生成过的未扩展端节点,是OPEN表中有的,表示出现环路。,7、子节点mj: 以前未生成过的新节点,是OPEN 表和CLOSED表 中都没有的。,69,一般的图搜索算法,8、指针: 从根节点到达某节点的最佳路径中,该节点所指向的父节点。,70,指针,1,2,3,4,5,6,s,节点5的指针为指向2,71,一般的图搜索算法,1, G=G0 (G0=s), OPEN:=(s); 2, CLOSED:=( ); 3, LOOP: IF OPEN=( ) THEN EXIT(FAIL); 4, n:=FIRST(OPEN), REMOVE(n, OPEN),ADD(n, CLO

19、SED); 5, IF GOAL(n) THEN EXIT(SUCCESS); 6, EXPAND(n)mi, G:=ADD(mi, G);,72,一般的图搜索算法(续),7, 标记和修改指针:ADD(mj, OPEN), 并标记mj到n的指针;计算是否要修改mk、ml到n的指针;计算是否要修改ml到其后继节点的指针; 8, 对OPEN中的节点按某种原则重新排序; 9, GO LOOP;,NEXT,73,为什么要修改指针,当生成的后继节点是以前有过的,说明出现了到达此节点的新路径,需要修改指针到具有较小耗散值的路径。,返回,74,节点4的指针由指向2 修改为指向6,修改指针举例-修改mk的指针

20、,返回,75,修改指针举例-修改ml及其后继节点指针,节点2的指针由指向3 修改为指向1,4,5,1,2,3,6,s,节点4的指针由指向6 修改为指向2,返回,76,1.3 无信息图搜索过程,深度优先搜索宽度优先搜索,77,深度优先搜索,原理:优先扩展深度大的节点(不在OPEN和CLOSED表中的节点),缺点:不能保证找到解。不能保证找到最优解。,解决方法:加上深度限制。,78,深度优先搜索,1, G:=G0(G0=s), OPEN:=(s), CLOSED:=( ); 2, LOOP: IF OPEN=( ) THEN EXIT (FAIL); 3, n:=FIRST(OPEN); 4, I

21、F GOAL(n) THEN EXIT (SUCCESS); 5, REMOVE(n, OPEN), ADD(n, CLOSED); 6, IF DEPTH(n)Dm GO LOOP; 7, EXPAND(n) mi, G:=ADD(mi, G); 8, IF 目标在mi中 THEN EXIT(SUCCESS); 9, ADD(mj, OPEN), 并标记mj到n的指针; 10, GO LOOP;,79,在一个33的方格棋盘上放置8个标有1、2、3、4、5、6、7、8数字的将牌,留下一个空格。,深度优先搜索举例8数码问题,2 3 1 8 4 7 6 5,规定:与空格上下左右相邻的将牌都可以移入

22、空格。,问题要求:寻找一条从某初始状态S0到目标状态Sg的将牌移动路线。,80,深度优先搜索举例8数码问题,初始状态:,2 3 1 8 4 7 6 5,搜索深度限制 = 4,目标状态:,1 2 3 8 4 7 6 5,81,2 3 1 8 4 7 6 5,1,2,3,4,5,6,7,8,9,a,b,c,d,目标,规则: (1)下移(2)上移(3)右移(4)左移,82,深度优先搜索的性质,一般不能保证找到最优解 当深度限制不合理时,可能找不到解,可以将算法改为可变深度限制 最坏情况时,搜索空间等同于穷举 与回溯法的差别:图搜索 是一个通用的与问题无关的方法,83,宽度优先搜索,原理 优先扩展深度

23、浅的节点。,特点: 若有解,必能找到解,并保证能找到最优解。,84,宽度优先搜索,1, G:=G0(G0=s), OPEN:=(s), CLOSED:=( ); 2, LOOP: IF OPEN=( ) THEN EXIT (FAIL); 3, n:=FIRST(OPEN); 4, IF GOAL(n) THEN EXIT (SUCCESS); 5, REMOVE(n, OPEN), ADD(n, CLOSED); 6, EXPAND(n) mi, G:=ADD(mi, G); 7, IF 目标在mi中 THEN EXIT(SUCCESS); 8, ADD(OPEN, mj), 并标记mj到n

24、的指针; 9, GO LOOP;,85,2 3 1 8 4 7 6 5,1,2,5,6,7,3,目标,8,4,规则: (1)下移(2)上移(3)右移(4)左移,86,宽度优先搜索的性质,当问题有解时,一定能找到解 当问题为单位耗散值,且问题有解时,一定能找到最优解 方法与问题无关,具有通用性 效率较低 属于图搜索方法,87,渐进式深度优先搜索方法,目的 解决深度优先方法的空间问题和回溯方法不能找到最优解的问题。 思想首先给回溯法一个比较小的深度限制,然后逐渐增加深度限制,直到找到解或找遍所有分支为止。,88,1.4 启发式图搜索,启发信息的强度 强 降低搜索工作量,但可能导致找不到最优解。 弱

25、 一般导致工作量加大,极限情况下变为盲目搜索,但可能可以找到最优解。,利用知识来引导搜索,达到减少搜索范围,降低问题复杂度的目的。,89,希望,引入启发知识,在保证找到最佳解的情况下,尽可能减少搜索范围,提高搜索效率。,90,基本思想,定义一个评价函数f,对当前的搜索状态进行评估,找出一个最有希望的节点来扩展。 P25,91,1. 启发式搜索算法A(A算法),s初始,n,目标g,f*(n):从s经过n到g的最短路径的实际耗散值 g*(n) :从s到n的最短路径的的实际耗散值 h*(n):从n到g的最短路径的实际耗散值f*(n)=g*(n)+h*(n):,92,1. 启发式搜索算法A(A算法),

26、s初始,n,目标g,f(n) : f*(n)的估计值 g(n): g*(n)的估计值 h(n): h*(n)的估计值 f(n)=g(n)+h(n),93,1. 启发式搜索算法A(A算法),f(n):评价函数h(n):启发函数f(n) = g(n) + h(n),s初始,n,目标g,评价函数的格式:,94,A算法,1 OPEN:=(s), f(s):=g(s)+h(s); 2 LOOP: IF OPEN=( ) THEN EXIT(FAIL); 3 n:=FIRST(OPEN); 4 IF GOAL(n) THEN EXIT(SUCCESS); 5 REMOVE(n, OPEN), ADD(n,

27、 CLOSED); 6 EXPAND(n) mi, 计算f(n, mi):=g(n, mi)+h(mi);,95,A算法(续),ADD(mj, OPEN), 标记mj到n的指针;IF f(n, mk)f(mk) THEN f(mk):=f(n, mk), 标记mk到n的指针;IF f(n, ml)f(ml,) THEN f(ml):=f(n, ml),标记ml到n的指针, ADD(ml, OPEN); 7 OPEN中的节点按f值从小到大排序; 8 GO LOOP;,96,.,.,.,.,.,mj,mk,ml,n,a,b,97,一个A算法的例子,定义评价函数:f(n) = g(n) + h(n)

28、g(n)-从初始节点到当前节点的耗散值,单位耗散时为当前节点的深度(即所走的步数)。h(n)- 当前节点“不在位”的将牌数,即估计要走的步数。,2 8 3 1 6 4 7 5,1 2 3 8 4 7 6 5,98,h(n)计算举例,h(n) =4,2 8 3 1 6 4 7 5,1 2 3 8 4 7 6 5,目标状态,当前状态,99,2 8 3 1 6 4 7 5,s(4),A(6),B(4),C(6),D(5),E(5),F(6),G(6),H(7),I(5),J(7),K(5),L(5),M(7),目标,1,2,3,4,5,6,搜索表,7,规则: (1)右移 (2)下移 (3)左移 (4

29、)上移,100,搜索过程的OPEN表和CLOSED表,OPEN表,CLOSED表,返回,第7循环结束,第4步成功退出,解路径:S(4) B(4) E(5) I(5) K(5) L(5),101,2 最佳图搜索算法A*(A*算法),在A算法中,如果满足条件:h(n)h*(n)则A算法称为A*算法。,求解最佳解的条件,102,A*条件举例,8数码问题 h1(n) = “不在位”的将牌数,即估计需要走的步数 h*(n) = 当前节点n到达目标节点需要走的实际步数 必有:h1(n) h*(n) 满足A*算法条件,103,A*条件举例,8数码问题 h2(n) = 将牌“不在位”的距离和,必有:h2(n)

30、 h*(n) 满足A*算法条件,104,A*算法的性质,A*算法的假设设ni、nj是任意两个节点,有:C(ni, nj) 其中为大于0的常数,105,A*算法的性质,几个等式:f*(s) = f*(t) = h*(s) = g*(t) = f*(n)其中s是初始节点,t是目标节点,n是s到t的最佳路径上的节点。,f*(s) = g*(s)+ h*(s)=0+h*(s)=h*(s),f*(t) = g*(t)+ h*(t)= g*(t)+0=g*(t),106,A*算法的性质(续1),定理1.1:对有限图,如果从初始节点s到目标节点t有路径存在,则算法A*一定成功结束。,107,A*算法的性质(

31、续2),引理1.1 :对无限图,若有从初始节点s到目标节点t的路径,则A*不结束时,在OPEN表中即使最小的一个f值也将增到任意大,或有f(n)f*(s)。,108,A*算法的性质(续3),引理1.2:A*结束前,OPEN表中必存在f(n)f*(s)。,存在一个节点n,n在 最佳路径上。 f(n) = g(n) + h(n)= g*(n)+h(n)g*(n)+h*(n)= f*(n)= f*(s),109,A*算法的性质(续3),定理1.2:对无限图,若从初始节点s到目标节点t有路径存在,则A*一定成功结束。,引理1.1:A*如果不结束,则OPEN中所有的n有f(n) f*(s) 引理1.2:

32、在A*结束前,必存在节点n,使得 f(n) f*(s) 所以,如果A*不结束,将导致矛盾。,110,A*算法的性质(续4),推论1.1:OPEN表上任一具有f(n)f*(s)的节点n,最终都将被A*选作扩展的节点。,111,A*算法的性质(续5),定理1.3 (可采纳性定理):若存在从初始节点s到目标节点t的路径,则A*必能找到最佳解结束。,112,A*算法的性质(续6),推论1.2:A*选作扩展的任一节点n,有f(n)f*(s)。,113,A*算法的性质(续7),定理1.4:设对同一个问题定义了两个A*算法, A1和A2,若A2比A1有较多的启发信息,即对所有非目标节点有h2(n) h1(n

33、),则在具有一条从s到t的路径的隐含图上,搜索结束时,由A2所扩展的每一个节点,也必定由A1所扩展,即A1扩展的节点数至少和A2一样多。 简写:如果h2(n) h1(n) (目标节点除外),则A1扩展的节点数A2扩展的节点数,114,A*算法的性质(续7),注意:在定理1.4中,评价指标是“扩展的节点数”,也就是说,同一个节点无论被扩展多少次,都只计算一次。,115,对h的评价方法,平均分叉树b*设共扩展了d层节点,共搜索了N个节点,则:其中,b*称为平均分叉树。 b*越小,说明h效果越好。 实验表明,b*是一个比较稳定的常数,同一问题基本不随问题规模变化。,116,对h的评价举例,例:8数码

34、问题,随机产生若干初始状态。使用h1:d=14, N=539, b*=1.44;d=20, N=7276, b*=1.47; 使用h2:d=14, N=113, b*=1.23;d=20, N=676, b*=1.27,117,8数码问题-不同启发函数扩展的节点数,118,8数码问题,启发函数为不在位的将牌数距离和,2 8 3 1 6 4 7 5,1 2 3 8 4 7 6 5,目标状态,初始状态,119,1 2 3 8 4 7 6 5,120,3、A*算法的改进,问题的提出:因A算法第6步对ml类节点可能要重新放回到OPEN表中,因此可能会导致多次重复扩展同一个节点,导致搜索效率下降。,12

35、1,出现多次扩展节点的原因,在前面的扩展中,并没有找到从初始节点到当前节点的最短路径,如节点A。,122,解决的途径,对h加以限制 能否对h增加适当的限制,使得第一次扩展一个节点时,就找到了从s到该节点的最短路径。 对算法加以改进 能否对算法加以改进,避免或减少节点的多次扩展。,123,改进的条件,可采纳性不变 不多扩展节点 不增加算法的复杂性,124,对h加以限制,定义:一个启发函数h,如果对所有节点ni和nj,其中nj是ni的子节点,满足h(ni) - h(nj) c(ni, nj)h(t) = 0或h(ni) c(ni, nj) + h(nj) h(t) = 0则称h是单调的。,h(ni

36、),ni,nj,h(nj),c(ni,nj),125,h单调的性质,定理1.5:若h(n)是单调的,则A*扩展了节点n之后,就已经找到了到达节点n的最佳路径。即:当A*选n扩展时,有g(n)=g*(n)。,126,h单调的性质(续),定理1.6:若h(n)是单调的,则由A*所扩展的节点序列其f值是非递减的。即f(ni) f(nj)。,127,4 其他的搜索算法,爬山法(局部搜索算法),如果对于任何n,当g(n)=0时,f(n)=h(n), A*算法就成为爬山法。,爬山法优先扩展距离目标节点的耗散值最小的节点。,128,4 其他的搜索算法(续1),动态规划算法如果对于任何n,当h(n)=0时, f(n)=g(n), A*算法就成为了动态规划法。,动态规划算法优先扩展具有最小耗散值分支路径上的端节点。,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报