级人工智能原理-10-185325976.pptx

上传人:jix****n11 文档编号:77556513 上传时间:2023-03-15 格式:PPTX 页数:53 大小:489.49KB
返回 下载 相关 举报
级人工智能原理-10-185325976.pptx_第1页
第1页 / 共53页
级人工智能原理-10-185325976.pptx_第2页
第2页 / 共53页
点击查看更多>>
资源描述

《级人工智能原理-10-185325976.pptx》由会员分享,可在线阅读,更多相关《级人工智能原理-10-185325976.pptx(53页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、 前面讨论的各种搜索方法都没有用到问题本身的特性信前面讨论的各种搜索方法都没有用到问题本身的特性信前面讨论的各种搜索方法都没有用到问题本身的特性信前面讨论的各种搜索方法都没有用到问题本身的特性信息,只是按照事先设定的线路进行搜索,具有较大的盲目性。息,只是按照事先设定的线路进行搜索,具有较大的盲目性。息,只是按照事先设定的线路进行搜索,具有较大的盲目性。息,只是按照事先设定的线路进行搜索,具有较大的盲目性。事实上,如果能够利用搜索过程所得到的问题自身的一些特事实上,如果能够利用搜索过程所得到的问题自身的一些特事实上,如果能够利用搜索过程所得到的问题自身的一些特事实上,如果能够利用搜索过程所得到

2、的问题自身的一些特性信息来指导搜索过程,则对搜索将是十分有益的。这种利性信息来指导搜索过程,则对搜索将是十分有益的。这种利性信息来指导搜索过程,则对搜索将是十分有益的。这种利性信息来指导搜索过程,则对搜索将是十分有益的。这种利用问题自身的特性信息来引导搜索过程的搜索方法称为用问题自身的特性信息来引导搜索过程的搜索方法称为用问题自身的特性信息来引导搜索过程的搜索方法称为用问题自身的特性信息来引导搜索过程的搜索方法称为启发启发启发启发式搜索式搜索式搜索式搜索。由于启发式搜索方法具有较强的针对性,因此,可。由于启发式搜索方法具有较强的针对性,因此,可。由于启发式搜索方法具有较强的针对性,因此,可。由

3、于启发式搜索方法具有较强的针对性,因此,可以缩小搜索范围,提高搜索效率。以缩小搜索范围,提高搜索效率。以缩小搜索范围,提高搜索效率。以缩小搜索范围,提高搜索效率。4.5 4.5 状态空间的启发式搜索状态空间的启发式搜索1 启发式搜索方法所依据的是问题自身的启发性信息,而启发式搜索方法所依据的是问题自身的启发性信息,而启发式搜索方法所依据的是问题自身的启发性信息,而启发式搜索方法所依据的是问题自身的启发性信息,而启发性信息又是通过启发性信息又是通过启发性信息又是通过启发性信息又是通过估价函数估价函数估价函数估价函数作用到搜索过程中的。作用到搜索过程中的。作用到搜索过程中的。作用到搜索过程中的。1

4、 1 1 1启发性信息启发性信息启发性信息启发性信息一一.启发性信息和估价函数启发性信息和估价函数 启发性信息启发性信息启发性信息启发性信息是指那种与具体问题求解过程有关的,并可指是指那种与具体问题求解过程有关的,并可指是指那种与具体问题求解过程有关的,并可指是指那种与具体问题求解过程有关的,并可指导搜索过程朝着最有希望方向前进的控制信息。启发性信息一导搜索过程朝着最有希望方向前进的控制信息。启发性信息一导搜索过程朝着最有希望方向前进的控制信息。启发性信息一导搜索过程朝着最有希望方向前进的控制信息。启发性信息一般有以下三种:般有以下三种:般有以下三种:般有以下三种:有效地帮助确定扩展节点的信息

5、;有效地帮助确定扩展节点的信息;有效地帮助确定扩展节点的信息;有效地帮助确定扩展节点的信息;有效地帮助决定哪些后继节点应被生成;有效地帮助决定哪些后继节点应被生成;有效地帮助决定哪些后继节点应被生成;有效地帮助决定哪些后继节点应被生成;能决定在扩展一个节点时哪些节点应从搜索树上被删除。能决定在扩展一个节点时哪些节点应从搜索树上被删除。能决定在扩展一个节点时哪些节点应从搜索树上被删除。能决定在扩展一个节点时哪些节点应从搜索树上被删除。一般来说,搜索过程所使用的启发性信息的启发能力越强,一般来说,搜索过程所使用的启发性信息的启发能力越强,一般来说,搜索过程所使用的启发性信息的启发能力越强,一般来说

6、,搜索过程所使用的启发性信息的启发能力越强,扩展的无用节点就越少。扩展的无用节点就越少。扩展的无用节点就越少。扩展的无用节点就越少。2 2 2 2 2估价函数估价函数估价函数估价函数 用来估计节点重要性的函数称为用来估计节点重要性的函数称为用来估计节点重要性的函数称为用来估计节点重要性的函数称为估价函数估价函数估价函数估价函数。估价函数。估价函数。估价函数。估价函数f f f f(n n n n)被定义为从初始节点)被定义为从初始节点)被定义为从初始节点)被定义为从初始节点S0S0S0S0出发,经过节点出发,经过节点出发,经过节点出发,经过节点n n n n到达目标节点到达目标节点到达目标节点

7、到达目标节点SgSgSgSg的所有路径中最小路径代价的估计值。它的一般形式为的所有路径中最小路径代价的估计值。它的一般形式为的所有路径中最小路径代价的估计值。它的一般形式为的所有路径中最小路径代价的估计值。它的一般形式为 f f f f(n n n n)=g=g=g=g(n n n n)h h h h(n n n n)其中,其中,其中,其中,g g g g(n n n n)是从初始节点)是从初始节点)是从初始节点)是从初始节点S0S0S0S0到节点到节点到节点到节点n n n n的实际代价;的实际代价;的实际代价;的实际代价;h h h h(n n n n)是)是)是)是从节点从节点从节点从节

8、点n n n n到目标节点到目标节点到目标节点到目标节点S0S0S0S0的最优路径的估计代价。对的最优路径的估计代价。对的最优路径的估计代价。对的最优路径的估计代价。对g g g g(n n n n)的值,)的值,)的值,)的值,可以按指向父节点的指针,从节点可以按指向父节点的指针,从节点可以按指向父节点的指针,从节点可以按指向父节点的指针,从节点n n n n反向跟踪到初始节点反向跟踪到初始节点反向跟踪到初始节点反向跟踪到初始节点S0,S0,S0,S0,得到一条从初始节点得到一条从初始节点得到一条从初始节点得到一条从初始节点S0S0S0S0到节点到节点到节点到节点n n n n的最小代价路径

9、,然后把这条的最小代价路径,然后把这条的最小代价路径,然后把这条的最小代价路径,然后把这条路径上所有有向边的代价相加,就得到路径上所有有向边的代价相加,就得到路径上所有有向边的代价相加,就得到路径上所有有向边的代价相加,就得到g g g g(n n n n)的值。对)的值。对)的值。对)的值。对h h h h(n n n n)的值,则需要根据问题自身的特性来确定,它体现的)的值,则需要根据问题自身的特性来确定,它体现的)的值,则需要根据问题自身的特性来确定,它体现的)的值,则需要根据问题自身的特性来确定,它体现的是问题自身的启发性信息,因此也称是问题自身的启发性信息,因此也称是问题自身的启发性

10、信息,因此也称是问题自身的启发性信息,因此也称h h h h(n n n n)为)为)为)为启发函数启发函数启发函数启发函数。ng(n)h(n)3例例例例:八数码难题。设问题的初始状态八数码难题。设问题的初始状态八数码难题。设问题的初始状态八数码难题。设问题的初始状态S0S0S0S0和目标状态和目标状态和目标状态和目标状态 Sg Sg Sg Sg 如前所如前所如前所如前所述,且估价函数为述,且估价函数为述,且估价函数为述,且估价函数为:f:f:f:f(n n n n)=d=d=d=d(n n n n)WWWW(n n n n)其中,其中,其中,其中,d d d d(n n n n)表示节点)表

11、示节点)表示节点)表示节点 n n n n在搜索树中的深度;在搜索树中的深度;在搜索树中的深度;在搜索树中的深度;w w w w(n n n n)表示节点)表示节点)表示节点)表示节点 n n n n中中中中“不在位不在位不在位不在位”的数码个数。请计算初始状态的数码个数。请计算初始状态的数码个数。请计算初始状态的数码个数。请计算初始状态S0S0S0S0的估价函数值的估价函数值的估价函数值的估价函数值f f f f(S0S0S0S0)。)。)。)。解:在本例的估价函数中,取解:在本例的估价函数中,取解:在本例的估价函数中,取解:在本例的估价函数中,取g g g g(n n n n)=d=d=d

12、=d(n n n n),),),),h h h h(n n n n)=W=W=W=W(n n n n)。它说明是用从)。它说明是用从)。它说明是用从)。它说明是用从S0S0S0S0到到到到n n n n的路径上的单位代价表的路径上的单位代价表的路径上的单位代价表的路径上的单位代价表示实际代价,用示实际代价,用示实际代价,用示实际代价,用n n n n中中中中“不在位不在位不在位不在位”的数码个数作为启发信息。一般的数码个数作为启发信息。一般的数码个数作为启发信息。一般的数码个数作为启发信息。一般来说,某节点中的来说,某节点中的来说,某节点中的来说,某节点中的“不在位不在位不在位不在位”的数码个

13、数越多,说明它离目标的数码个数越多,说明它离目标的数码个数越多,说明它离目标的数码个数越多,说明它离目标节点越远。节点越远。节点越远。节点越远。对初始节点对初始节点对初始节点对初始节点 S0 S0 S0 S0,由于,由于,由于,由于 d d d d(S0S0S0S0)=0=0=0=0,W W W W(S0S0S0S0)=3=3=3=3,因此有,因此有,因此有,因此有 f f f f(S0S0S0S0)=0=0=0=03=33=33=33=3 这个例子仅是为了说明估价函数的含义及估价函数值的计算。这个例子仅是为了说明估价函数的含义及估价函数值的计算。这个例子仅是为了说明估价函数的含义及估价函数值

14、的计算。这个例子仅是为了说明估价函数的含义及估价函数值的计算。在问题搜索过程中,除了需要计算初始节点的估价函数之外,在问题搜索过程中,除了需要计算初始节点的估价函数之外,在问题搜索过程中,除了需要计算初始节点的估价函数之外,在问题搜索过程中,除了需要计算初始节点的估价函数之外,更多的是要计算新生成节点的估价函数值。更多的是要计算新生成节点的估价函数值。更多的是要计算新生成节点的估价函数值。更多的是要计算新生成节点的估价函数值。2 82 82 82 8 3 3 3 31 1 1 1 4 4 4 47 6 57 6 57 6 57 6 54二二.A.A算法算法 在图搜索算法中,如果能在搜索的每一步

15、都利用在图搜索算法中,如果能在搜索的每一步都利用在图搜索算法中,如果能在搜索的每一步都利用在图搜索算法中,如果能在搜索的每一步都利用估价函数估价函数估价函数估价函数f f f f(n n n n)=g=g=g=g(n n n n)h h h h(n n n n)对)对)对)对OpenOpenOpenOpen表中的节点进行排序,则该搜表中的节点进行排序,则该搜表中的节点进行排序,则该搜表中的节点进行排序,则该搜索算法为索算法为索算法为索算法为A A A A算法。由于估价函数中带有问题自身的启发性信息,算法。由于估价函数中带有问题自身的启发性信息,算法。由于估价函数中带有问题自身的启发性信息,算法

16、。由于估价函数中带有问题自身的启发性信息,因此,因此,因此,因此,A A A A算法算法算法算法也被称为也被称为也被称为也被称为启发式搜索算法启发式搜索算法启发式搜索算法启发式搜索算法。对启发式搜索算法,又可根据搜索过程中选择扩展节点的对启发式搜索算法,又可根据搜索过程中选择扩展节点的对启发式搜索算法,又可根据搜索过程中选择扩展节点的对启发式搜索算法,又可根据搜索过程中选择扩展节点的范围,将其分为范围,将其分为范围,将其分为范围,将其分为全局择优搜索算法全局择优搜索算法全局择优搜索算法全局择优搜索算法和和和和局部择优搜索算法局部择优搜索算法局部择优搜索算法局部择优搜索算法。5 每当需要扩展节点

17、时,总是从每当需要扩展节点时,总是从每当需要扩展节点时,总是从每当需要扩展节点时,总是从OpenOpenOpenOpen表的所有节点中选择一个估价表的所有节点中选择一个估价表的所有节点中选择一个估价表的所有节点中选择一个估价函数值最小的节点进行扩展。其搜索过程可描述如下:函数值最小的节点进行扩展。其搜索过程可描述如下:函数值最小的节点进行扩展。其搜索过程可描述如下:函数值最小的节点进行扩展。其搜索过程可描述如下:(1 1 1 1)把把把把S0S0S0S0放入放入放入放入OpenOpenOpenOpen表中,表中,表中,表中,f(s0)=gf(s0)=gf(s0)=gf(s0)=g(SoSoSo

18、So)h h h h(SoSoSoSo););););(2 2 2 2)如果如果如果如果OpenOpenOpenOpen表为空,则问题无解,失败退出;表为空,则问题无解,失败退出;表为空,则问题无解,失败退出;表为空,则问题无解,失败退出;(3 3 3 3)把把把把OpenOpenOpenOpen表的第一个节点取出放入表的第一个节点取出放入表的第一个节点取出放入表的第一个节点取出放入ClosedClosedClosedClosed表,记该节点为表,记该节点为表,记该节点为表,记该节点为n n n n;(4 4 4 4)考察节点考察节点考察节点考察节点n n n n是否为目标节点。若是,则找到了

19、问题的解,成是否为目标节点。若是,则找到了问题的解,成是否为目标节点。若是,则找到了问题的解,成是否为目标节点。若是,则找到了问题的解,成功退出;功退出;功退出;功退出;(5 5 5 5)若节点若节点若节点若节点n n n n不可扩展,则转第(不可扩展,则转第(不可扩展,则转第(不可扩展,则转第(2 2 2 2)步;)步;)步;)步;(6 6 6 6)扩展节点扩展节点扩展节点扩展节点n n n n,生成其子节点,生成其子节点,生成其子节点,生成其子节点ni ni ni ni(i=1,2,i=1,2,i=1,2,i=1,2,),计算每一个子),计算每一个子),计算每一个子),计算每一个子节点的估

20、价值节点的估价值节点的估价值节点的估价值f(ni)f(ni)f(ni)f(ni)(i=1,2,i=1,2,i=1,2,i=1,2,),并为每一个子节点设置指向父节),并为每一个子节点设置指向父节),并为每一个子节点设置指向父节),并为每一个子节点设置指向父节点的指针,然后将这些子节点放入点的指针,然后将这些子节点放入点的指针,然后将这些子节点放入点的指针,然后将这些子节点放入 Open Open Open Open表中;表中;表中;表中;(7 7 7 7)根据各节点的估价函数值,对根据各节点的估价函数值,对根据各节点的估价函数值,对根据各节点的估价函数值,对OpenOpenOpenOpen表中

21、的表中的表中的表中的全部节点全部节点全部节点全部节点按从小到按从小到按从小到按从小到大的顺序重新进行排序;大的顺序重新进行排序;大的顺序重新进行排序;大的顺序重新进行排序;(8 8 8 8)转第(转第(转第(转第(2 2 2 2)步。)步。)步。)步。1 1 1 1全局择优搜索全局择优搜索全局择优搜索全局择优搜索6 由于上述算法的第(由于上述算法的第(由于上述算法的第(由于上述算法的第(7 7 7 7)步要对)步要对)步要对)步要对OpenOpenOpenOpen表中的表中的表中的表中的全部节点全部节点全部节点全部节点按其按其按其按其估价函数值从小到大重新进行排序,这样在算法第(估价函数值从小

22、到大重新进行排序,这样在算法第(估价函数值从小到大重新进行排序,这样在算法第(估价函数值从小到大重新进行排序,这样在算法第(3 3 3 3)步取)步取)步取)步取出的节点就一定是出的节点就一定是出的节点就一定是出的节点就一定是OpenOpenOpenOpen表的所有节点中估价函数值最小的一个表的所有节点中估价函数值最小的一个表的所有节点中估价函数值最小的一个表的所有节点中估价函数值最小的一个节点。因此,它是一种全局择优的搜索方式。节点。因此,它是一种全局择优的搜索方式。节点。因此,它是一种全局择优的搜索方式。节点。因此,它是一种全局择优的搜索方式。对上述算法进一步分析还可以发现:如果取估价函数

23、对上述算法进一步分析还可以发现:如果取估价函数对上述算法进一步分析还可以发现:如果取估价函数对上述算法进一步分析还可以发现:如果取估价函数f(n)=gf(n)=gf(n)=gf(n)=g(n n n n),则它将退化为代价树的广度优先搜索;如果取估),则它将退化为代价树的广度优先搜索;如果取估),则它将退化为代价树的广度优先搜索;如果取估),则它将退化为代价树的广度优先搜索;如果取估价函数价函数价函数价函数f(n)=df(n)=df(n)=df(n)=d(n n n n),则它将退化为广度优先搜索。可见,广度),则它将退化为广度优先搜索。可见,广度),则它将退化为广度优先搜索。可见,广度),则

24、它将退化为广度优先搜索。可见,广度优先搜索和代价树的广度优先搜索是全局择优搜索的两个特例。优先搜索和代价树的广度优先搜索是全局择优搜索的两个特例。优先搜索和代价树的广度优先搜索是全局择优搜索的两个特例。优先搜索和代价树的广度优先搜索是全局择优搜索的两个特例。7例:例:八数码难题。八数码难题。28314765S02831476523184765283147652831647583214765283714652318476523184765S94123847651238476512378465S55S66S86S74SgS104S116S14S24S35S458 在局部择优搜索中,每当需要扩展节点

25、时,总是从在局部择优搜索中,每当需要扩展节点时,总是从在局部择优搜索中,每当需要扩展节点时,总是从在局部择优搜索中,每当需要扩展节点时,总是从刚生成刚生成刚生成刚生成的子节点的子节点的子节点的子节点中选择一个估价函数值最小的节点进行扩展。其搜索中选择一个估价函数值最小的节点进行扩展。其搜索中选择一个估价函数值最小的节点进行扩展。其搜索中选择一个估价函数值最小的节点进行扩展。其搜索过程可描述如下:过程可描述如下:过程可描述如下:过程可描述如下:(1 1 1 1)把初始节点把初始节点把初始节点把初始节点S0S0S0S0放入放入放入放入 Open Open Open Open表中,表中,表中,表中,

26、f(S0)=g(S0)+h(S0);f(S0)=g(S0)+h(S0);f(S0)=g(S0)+h(S0);f(S0)=g(S0)+h(S0);(2 2 2 2)如果如果如果如果OpenOpenOpenOpen表为空,则问题无解,失败退出;表为空,则问题无解,失败退出;表为空,则问题无解,失败退出;表为空,则问题无解,失败退出;(3 3 3 3)把把把把OpenOpenOpenOpen表的第一个节点取出放入表的第一个节点取出放入表的第一个节点取出放入表的第一个节点取出放入ClosedClosedClosedClosed表,并记该节点为表,并记该节点为表,并记该节点为表,并记该节点为n n n

27、n;(4 4 4 4)考察节点考察节点考察节点考察节点n n n n是否为目标节点。若是,则找到了问题的解,是否为目标节点。若是,则找到了问题的解,是否为目标节点。若是,则找到了问题的解,是否为目标节点。若是,则找到了问题的解,成功退出;成功退出;成功退出;成功退出;(5 5 5 5)若节点若节点若节点若节点n n n n不可扩展,则转第(不可扩展,则转第(不可扩展,则转第(不可扩展,则转第(2 2 2 2)步;)步;)步;)步;(6 6 6 6)扩展节点扩展节点扩展节点扩展节点n n n n,生成其子节点,生成其子节点,生成其子节点,生成其子节点ni(i=1ni(i=1ni(i=1ni(i=

28、1,2 2 2 2,),计算每一个子,计算每一个子,计算每一个子,计算每一个子节点的估价值节点的估价值节点的估价值节点的估价值f f f f(ni ni ni ni)(i=1i=1i=1i=1,2 2 2 2,),并按估价值从小到大的),并按估价值从小到大的),并按估价值从小到大的),并按估价值从小到大的顺序依次放入顺序依次放入顺序依次放入顺序依次放入OpenOpenOpenOpen表的首部,并为每一个子节点设置指向父节表的首部,并为每一个子节点设置指向父节表的首部,并为每一个子节点设置指向父节表的首部,并为每一个子节点设置指向父节点的指针,然后转第(点的指针,然后转第(点的指针,然后转第(点

29、的指针,然后转第(2 2 2 2)步。)步。)步。)步。2 2 2 2局部择优搜索局部择优搜索局部择优搜索局部择优搜索(瞎子爬山法瞎子爬山法瞎子爬山法瞎子爬山法)9 由于这一算法的第(由于这一算法的第(由于这一算法的第(由于这一算法的第(6 6 6 6)步仅是把刚生成的子节点按其估价)步仅是把刚生成的子节点按其估价)步仅是把刚生成的子节点按其估价)步仅是把刚生成的子节点按其估价函数值从小到大放入函数值从小到大放入函数值从小到大放入函数值从小到大放入 Open Open Open Open表的首都,这样在算法第(表的首都,这样在算法第(表的首都,这样在算法第(表的首都,这样在算法第(3 3 3

30、3)步取出)步取出)步取出)步取出的节点仅是刚生成的子节点中估价函数值最小的一个节点。因此,的节点仅是刚生成的子节点中估价函数值最小的一个节点。因此,的节点仅是刚生成的子节点中估价函数值最小的一个节点。因此,的节点仅是刚生成的子节点中估价函数值最小的一个节点。因此,它是一种局部择优的搜索方式。它是一种局部择优的搜索方式。它是一种局部择优的搜索方式。它是一种局部择优的搜索方式。对这一算法进一步分析也可以发现:如果取估价函数对这一算法进一步分析也可以发现:如果取估价函数对这一算法进一步分析也可以发现:如果取估价函数对这一算法进一步分析也可以发现:如果取估价函数f f f f(n n n n)=g=

31、g=g=g(n n n n),则它将退化为代价树的深度优先搜索;如果取估价),则它将退化为代价树的深度优先搜索;如果取估价),则它将退化为代价树的深度优先搜索;如果取估价),则它将退化为代价树的深度优先搜索;如果取估价函数函数函数函数f f f f(n n n n)=d=d=d=d(n n n n),则它将退化为深度优先搜索。可见,深度),则它将退化为深度优先搜索。可见,深度),则它将退化为深度优先搜索。可见,深度),则它将退化为深度优先搜索。可见,深度优先搜索和代价树的深度优先搜索是局部择优搜索的两个特例。优先搜索和代价树的深度优先搜索是局部择优搜索的两个特例。优先搜索和代价树的深度优先搜索

32、是局部择优搜索的两个特例。优先搜索和代价树的深度优先搜索是局部择优搜索的两个特例。10三三.A.A*算法算法 前面讨论的启发式搜索算法,都没有对估价函数前面讨论的启发式搜索算法,都没有对估价函数前面讨论的启发式搜索算法,都没有对估价函数前面讨论的启发式搜索算法,都没有对估价函数f(n)f(n)f(n)f(n)作任作任作任作任何限制。实际上,估价函数对搜索过程是十分重要的,如果何限制。实际上,估价函数对搜索过程是十分重要的,如果何限制。实际上,估价函数对搜索过程是十分重要的,如果何限制。实际上,估价函数对搜索过程是十分重要的,如果选择不当,则有可能找不到问题的解,或者找到的不是问题选择不当,则有

33、可能找不到问题的解,或者找到的不是问题选择不当,则有可能找不到问题的解,或者找到的不是问题选择不当,则有可能找不到问题的解,或者找到的不是问题的最优解。为此,需要对估价函数进行某些限制。的最优解。为此,需要对估价函数进行某些限制。的最优解。为此,需要对估价函数进行某些限制。的最优解。为此,需要对估价函数进行某些限制。A*A*A*A*算法就算法就算法就算法就是是是是对估价函数加上一些对估价函数加上一些对估价函数加上一些对估价函数加上一些限制限制限制限制后得到的一种启发式搜索算法后得到的一种启发式搜索算法后得到的一种启发式搜索算法后得到的一种启发式搜索算法。11 假设假设假设假设f*(n)f*(n

34、)f*(n)f*(n)为从初始节点为从初始节点为从初始节点为从初始节点S0S0S0S0出发,约束经过节点出发,约束经过节点出发,约束经过节点出发,约束经过节点n n n n到达目标节到达目标节到达目标节到达目标节点的最小代价值。估价函数点的最小代价值。估价函数点的最小代价值。估价函数点的最小代价值。估价函数f(n)f(n)f(n)f(n)是是是是f*(n)f*(n)f*(n)f*(n)的估计值。显然,的估计值。显然,的估计值。显然,的估计值。显然,f*f*f*f*(n n n n)应由以下两部分所组成:一部分是从初始节点到节点应由以下两部分所组成:一部分是从初始节点到节点应由以下两部分所组成:

35、一部分是从初始节点到节点应由以下两部分所组成:一部分是从初始节点到节点n n n n的的的的最小最小最小最小代代代代价,记为价,记为价,记为价,记为g*g*g*g*(n n n n);另一部分是从节点);另一部分是从节点);另一部分是从节点);另一部分是从节点n n n n到目标节点的到目标节点的到目标节点的到目标节点的最小最小最小最小代价,代价,代价,代价,记为记为记为记为h*h*h*h*(n n n n),当问题有多个目标节点时,应取其中代价最小的),当问题有多个目标节点时,应取其中代价最小的),当问题有多个目标节点时,应取其中代价最小的),当问题有多个目标节点时,应取其中代价最小的一个。

36、因此有一个。因此有一个。因此有一个。因此有 f*f*f*f*(n n n n)g*g*g*g*(n n n n)h*h*h*h*(n n n n)把估价函数把估价函数把估价函数把估价函数f(n)f(n)f(n)f(n)与与与与f*(n)f*(n)f*(n)f*(n)相比,相比,相比,相比,g g g g(n n n n)是对)是对)是对)是对g*g*g*g*(n n n n)的一个估计,)的一个估计,)的一个估计,)的一个估计,h h h h(n n n n)是对)是对)是对)是对h*h*h*h*(n n n n)的一个估计。在这两个估计中,尽管)的一个估计。在这两个估计中,尽管)的一个估计。

37、在这两个估计中,尽管)的一个估计。在这两个估计中,尽管g g g g(n n n n)的值容易计算,但它不一定就是从初始节点的值容易计算,但它不一定就是从初始节点的值容易计算,但它不一定就是从初始节点的值容易计算,但它不一定就是从初始节点S0S0S0S0到节点到节点到节点到节点n n n n的真正最的真正最的真正最的真正最小代价,很有可能从初始节点小代价,很有可能从初始节点小代价,很有可能从初始节点小代价,很有可能从初始节点S0S0S0S0到节点到节点到节点到节点n n n n的真正最小代价还没有的真正最小代价还没有的真正最小代价还没有的真正最小代价还没有找到,故有找到,故有找到,故有找到,故

38、有g g g g(n n n n)g*g*g*g*(n n n n)。有了有了有了有了g*g*g*g*(n n n n)和)和)和)和h*h*h*h*(n n n n)的定义,如果对)的定义,如果对)的定义,如果对)的定义,如果对A A A A算法(全局择优的算法(全局择优的算法(全局择优的算法(全局择优的启发式搜索算法)中的启发式搜索算法)中的启发式搜索算法)中的启发式搜索算法)中的g g g g(n n n n)和)和)和)和h h h h(n n n n)分别提出如下限制:)分别提出如下限制:)分别提出如下限制:)分别提出如下限制:第一,第一,第一,第一,g g g g(n n n n)

39、是对)是对)是对)是对g*g*g*g*(n n n n)的估计,且)的估计,且)的估计,且)的估计,且g g g g(n n n n)0 0 0 0;第二,第二,第二,第二,h h h h(n n n n)是)是)是)是h*h*h*h*(n n n n)的下界,即对任意节点)的下界,即对任意节点)的下界,即对任意节点)的下界,即对任意节点n n n n均有均有均有均有 h h h h(n n n n)h*h*h*h*(n n n n)。则称得到的算法为则称得到的算法为则称得到的算法为则称得到的算法为A*A*A*A*算法。算法。算法。算法。12A*A*A*A*算法的有关特性。算法的有关特性。算法

40、的有关特性。算法的有关特性。1 1 1 1A*A*A*A*算法的可纳性算法的可纳性算法的可纳性算法的可纳性 一般来说,对任意一个状态空间图,当从初始节点到目标一般来说,对任意一个状态空间图,当从初始节点到目标一般来说,对任意一个状态空间图,当从初始节点到目标一般来说,对任意一个状态空间图,当从初始节点到目标节点有路径存在时,如果搜索算法能在有限步内找到一条从初节点有路径存在时,如果搜索算法能在有限步内找到一条从初节点有路径存在时,如果搜索算法能在有限步内找到一条从初节点有路径存在时,如果搜索算法能在有限步内找到一条从初始节点到目标节点的最佳路径,并在此路径上结束,则称该搜始节点到目标节点的最佳

41、路径,并在此路径上结束,则称该搜始节点到目标节点的最佳路径,并在此路径上结束,则称该搜始节点到目标节点的最佳路径,并在此路径上结束,则称该搜索算法是可采纳的。索算法是可采纳的。索算法是可采纳的。索算法是可采纳的。A*A*A*A*算法是可采纳的。算法是可采纳的。算法是可采纳的。算法是可采纳的。(证明略)。证明略)。证明略)。证明略)。2.A*2.A*2.A*2.A*算法的最优性算法的最优性算法的最优性算法的最优性 A*A*A*A*算法的搜索效率很大程度上取决于估价函数算法的搜索效率很大程度上取决于估价函数算法的搜索效率很大程度上取决于估价函数算法的搜索效率很大程度上取决于估价函数h h h h(

42、n n n n)。)。)。)。一般来说,在满足一般来说,在满足一般来说,在满足一般来说,在满足h h h h(n n n n)h*h*h*h*(n n n n)的前提下,)的前提下,)的前提下,)的前提下,h h h h(n n n n)的值越)的值越)的值越)的值越大越好。大越好。大越好。大越好。h h h h(n n n n)的值越大,说明它携带的启发性信息越多,)的值越大,说明它携带的启发性信息越多,)的值越大,说明它携带的启发性信息越多,)的值越大,说明它携带的启发性信息越多,A*A*A*A*算法搜索时扩展的节点就越少,搜索效率就越高。算法搜索时扩展的节点就越少,搜索效率就越高。算法搜

43、索时扩展的节点就越少,搜索效率就越高。算法搜索时扩展的节点就越少,搜索效率就越高。A*A*A*A*算法的这算法的这算法的这算法的这一特性也称为信息性。一特性也称为信息性。一特性也称为信息性。一特性也称为信息性。(证明略证明略证明略证明略)13A A A A*算法应用举例算法应用举例算法应用举例算法应用举例例:例:例:例:八数码难题。问题的初始状态和目标状态和前例相同。要八数码难题。问题的初始状态和目标状态和前例相同。要八数码难题。问题的初始状态和目标状态和前例相同。要八数码难题。问题的初始状态和目标状态和前例相同。要求用求用求用求用A*A*A*A*算法解决该问题。算法解决该问题。算法解决该问题

44、。算法解决该问题。解:解:解:解:在上例中,我们取在上例中,我们取在上例中,我们取在上例中,我们取h h h h(n n n n)=W=W=W=W(n n n n)。尽管我们对)。尽管我们对)。尽管我们对)。尽管我们对h*h*h*h*(n n n n)不能确切知道,但当采用单位代价时,通过对不能确切知道,但当采用单位代价时,通过对不能确切知道,但当采用单位代价时,通过对不能确切知道,但当采用单位代价时,通过对“不在位不在位不在位不在位”数码数码数码数码个数的估计,可以得出至少要移动个数的估计,可以得出至少要移动个数的估计,可以得出至少要移动个数的估计,可以得出至少要移动WWWW(n n n n

45、)步才能到达目标,显)步才能到达目标,显)步才能到达目标,显)步才能到达目标,显然有然有然有然有WWWW(n n n n)h*h*h*h*(n n n n)。因此,前例中所定义的)。因此,前例中所定义的)。因此,前例中所定义的)。因此,前例中所定义的h h h h(n n n n)满足)满足)满足)满足A*A*A*A*算法的限制条件。算法的限制条件。算法的限制条件。算法的限制条件。这里再取另外一种启发函数这里再取另外一种启发函数这里再取另外一种启发函数这里再取另外一种启发函数h h h h(n n n n)=P=P=P=P(n n n n),),),),P P P P(n n n n)定义)定

46、义)定义)定义为每一个数码与其目标位置之间距离(不考虑夹在其间的数码)为每一个数码与其目标位置之间距离(不考虑夹在其间的数码)为每一个数码与其目标位置之间距离(不考虑夹在其间的数码)为每一个数码与其目标位置之间距离(不考虑夹在其间的数码)的总和,同样可以断定至少要移动的总和,同样可以断定至少要移动的总和,同样可以断定至少要移动的总和,同样可以断定至少要移动P P P P(n n n n)步才能到达目标,因)步才能到达目标,因)步才能到达目标,因)步才能到达目标,因此有此有此有此有P P P P(n n n n)h*h*h*h*(n n n n),即满足),即满足),即满足),即满足A*A*A*

47、A*算法的限制条件。算法的限制条件。算法的限制条件。算法的限制条件。23184765523847611428314765h*=4,f=4S023184765283164752831476528314765g*=12318476523184765g*=21238476512378465Sgg*=4h*=5,f=6h*=5,f=6h*=3,f=4h*=5,f=6h*=2,f=4h*=4,f=612384765g*=3h*=1,f=4h*=0,f=4h*=1,f=6八数码难题八数码难题h(n)=P(n)的搜索树)的搜索树15例例例例:设有如下结构的移动将牌游戏:设有如下结构的移动将牌游戏:设有如下结

48、构的移动将牌游戏:设有如下结构的移动将牌游戏B B代表黑色牌,代表黑色牌,代表黑色牌,代表黑色牌,WW代表白色牌;代表白色牌;代表白色牌;代表白色牌;E E代表该位置为空。玩法:代表该位置为空。玩法:代表该位置为空。玩法:代表该位置为空。玩法:当一个牌移入相邻的空位时,费用等于挑过的牌数加当一个牌移入相邻的空位时,费用等于挑过的牌数加当一个牌移入相邻的空位时,费用等于挑过的牌数加当一个牌移入相邻的空位时,费用等于挑过的牌数加1 1。一个牌至多可跳过两个牌进入空位置,其费用等于跳过的牌一个牌至多可跳过两个牌进入空位置,其费用等于跳过的牌一个牌至多可跳过两个牌进入空位置,其费用等于跳过的牌一个牌至

49、多可跳过两个牌进入空位置,其费用等于跳过的牌数加数加数加数加1 1。要求把所有的要求把所有的要求把所有的要求把所有的B B都移到所有的都移到所有的都移到所有的都移到所有的WW的右边,设计的右边,设计的右边,设计的右边,设计h(x)h(x)。解解解解:显然显然显然显然WW左边的左边的左边的左边的B B越少越接近目标,因此可用越少越接近目标,因此可用越少越接近目标,因此可用越少越接近目标,因此可用WW左边左边左边左边B B的个数作的个数作的个数作的个数作为为为为h(x)h(x)h(x)=3*(h(x)=3*(每个每个每个每个WW左边左边左边左边B B个数的总和)个数的总和)个数的总和)个数的总和)

50、h(x)=3*(2+2+3)=21h(x)=3*(2+2+3)=21B B B W W W EBBBW W W E16例:例:例:例:传教士和野人问题。请用传教士和野人问题。请用传教士和野人问题。请用传教士和野人问题。请用A*A*A*A*算法解决该问题。算法解决该问题。算法解决该问题。算法解决该问题。解:解:解:解:用用用用m mm m表示左岸的传道士人数,表示左岸的传道士人数,表示左岸的传道士人数,表示左岸的传道士人数,c c c c表示左岸的野人数,表示左岸的野人数,表示左岸的野人数,表示左岸的野人数,b b b b表示表示表示表示左岸的船数,用三元组(左岸的船数,用三元组(左岸的船数,用

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 技术总结

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁