人工智能a算法(推荐文档).docVIP

  • 8
  • 0
  • 约3.4千字
  • 约 8页
  • 2020-10-06 发布于山东
  • 举报
1.启发式搜索算法 A 启发式搜索算法 A ,一般简称为 A 算法,是一种典型的启 发式搜索算法。其基本思想是:定义一个评价函数 f,对当前的搜索状态进行评估,找出一个最有希望的节点来扩展。评价函数的形式如下: f( n)= g( n)+ h( n) 其中 n 是被评价的节点。 f(n)、g( n)和 h(n)各自表述什么含义呢?我们先来定义下 面几个函数的含义,它们与 f(n)、 g(n)和 h(n)的差别是 都带有一个 * 号。 g*(n) :表示从初始节点 s 到节点 n 的最短路径的耗散值; h*(n) :表示从节点 n 到目标节点 g 的最短路径的耗散值; f*(n)=g*(n)+h*(n) :表示从初始节点 s 经过节点 n 到目标节点 g 的最短路径的耗散值。 而 f(n)、g( n)和 h(n)则分别表示是对 f* (n)、g*(n)和 h* ( n)三个函数值的的估计值。是一种预测。 A 算法就是利 用这种预测,来达到有效搜索的目的的。它每次按照 f(n) 值的大小对 OPEN 表中的元素进行排序, f 值小的节点放在前面,而 f 值大的节点则被放在 OPEN 表的后面, 这样每次扩展节点时, 都 是选择当前 f 值最小的节点来优先扩展。 利用评价函数 f( n)= g( n)+ h( n)来排列 OPEN 表节点顺 序的图搜索算法称为算法 A 。 过程 A OPEN:=( s), f( s):=g( s)+h(s) ; 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); g(n,mi )是从 s 通过 n 到 mi 的耗散值, f(n, mi)是从 s 通 过 n、mi 到目标节点耗散值的估计。 ·ADD (mj ,OPEN),标记 mi 到 n 的指针。 ·IF f (n, mk) f ( mk) THEN f( mk) := f (n, mk),标记 mk 到 n 的指针;比较 f(n,mk)和 f( mk),f( mk)是扩展 n 之前计算的耗散值。 ·IF f (n, m1) f ( m1) THEN f( m1) := f (n, m1),标记 m1 到 n 的指针, ADD (m1,OPEN);当 f (n,m1)f (m1) 时,把 m1 重放回 OPEN 中,不必考虑修改到其子节点的指针。 OPEN 中的节点按 f 值从小到大排序; ⑧GO LOOP ; A 算法同样由一般的图搜索算法改变而成。 在算法的第 7 步, 按照 f 值从小到大对 OPEN 表中的节点进行排序, 体现了 A 算法 的含义。 算法要计算 f(n) 、g(n)和 h(n)的值,g(n)根据已经搜索的结果, 按照从初始节点 s 到节点 n 的路径,计算这条路径的耗散值就可 以了。而 h(n)是与问题有关的,需要根据具体的问题来定义。有 了 g(n)和 h(n)的值,将他们加起来就得到 f(n) 的值了。 在介绍一般的图搜索算法时我们就曾经让大家注意过,在这 里我们再强调一次, 请大家注意 A 算法的结束条件: 当从 OPEN 中取出第一节点时,如果该节点是目标节点,则算法成功结束。 而不是在扩展一个节点时, 只要目标节点一出现就立即结束。 我们在后面将会看到, 正是由于有了这样的结束判断条件, 才使得 算法有很好的性质。 算法中 f(n)规定为对从初始节点 s 出发,约束通过节点 n 到达目标点 t,最小耗散值路径的耗散值 f*(n) 的估计值,通常取 正值。 f(n)由两个分量组成,其中 g( n)是到目前为止,从 s 到 n 的一条最小耗散值路径的耗散值, 是作为从 s 到 n 最小耗散 值路径的耗散值 g*(n) 的估计值, h(n)是从 n 到目标节点 t,最小耗散值路径的耗散值 h*(n) 的估计值。 设函数 k(ni,nj)表示最小耗散路径的实际耗散值(当 ni 到 nj 无通路时则 k( ni,nj)无意义),则 g*(n)= k(s,n), h* ( n)= min k(n, ti ),其中 ti 是目标节点集, k( n,ti )就 是从 n 到每一个目标节点最小耗散值路径的耗散值, h* (n)是 其中最小值的那条路径的耗散值,而具有 h* (n)值的路径是 n 到 ti 的最佳路径。由此可得 f* ( n)= g* (n)+ h* (n)就表示 s→ ti 并约束通过节点 n 的最

文档评论(0)

1亿VIP精品文档

相关文档