Ai Plan (07) 后向搜索

Categories

Tags

Table of Contents

  1. 相关性(Relevance)和回归集(Regression Set)
  2. 回归函数
  3. 优点与缺点

与前向搜索相反,前向搜索从初始状态开始,在状态空间进行搜索直到找到最终目标;后向搜索则是从最终目标开始在状态空间进行反向搜索,直到找到初始目标!它非常简单,且和前向搜索也非常相似。

相关性(Relevance)和回归集(Regression Set)

我们从两个定义开始,相关性(Relevance)和回归集(Regression Set) 假设有一个规划问题,P = (∑,si,g),里面的三个前面已经见过多次了,分别是状态转换系统,初始状态,目标状态。 相关性 :当a ∈ A 是 和g的相关时

  • g ∩ effects(a) != {} ,表示行动必须对目标有影响
  • g+ ∩ effects-(a) = {} 且 g- ∩ effects+(a) = {} ,表示行动的效果不能与目标有所冲突

回归集 :g 和 相关的行为a 的回归集 γ-1(g,a) = (g - effects(a)) ∪ precond(a)

  • 正如你看到的,γ-1(g,a) ,和前面的状态转移函数 ∑ = γ(s,a) 相反,即它是状态转移函数的逆函数。
  • 它的计算是,移除掉所有行动的效果,加上该行动的前提条件,来得到一个新的目标,对比该新目标和初始状态是否相等,如果相等证明搜索成功;否则,进行后向搜索,直到找到初始状态。

回归函数

和前向搜索的分析类似,则对于定义域∑ = (S,A,γ), Γ-m 表示 m 步时后向搜索的状态集,当该状态机中包含初始状态时,表明搜索成功,且说明至少需要m步才能回溯到初始状态。

  • Γ-1(g) = { γ-1(g,a) | a ∈ A 且 a 与 g 相关 }
  • 对于多个目标 g1,…,gn ,都是回溯后的子目标,假设我们处于某一个子目标,当我们想要定义我们可以回溯到哪些节点,即有哪些前继节点时
    • Γ-1( {g1,…,gn} ) = ∪k∈[1,n]Γ-1(gk)
      • 计算出每一个状态的Γ-1(g),然后将他们合并,得到一个结果集。无论输入那些子目标中的任意一个,都可以一步取得所有可达前继节点。
    • 为使得这个定义更加通用一些,通过定义我们规定的步数,来限定结果集。意义是,某一组目标,通过m步,可以抵达另一组目标
      • Γ-0( {g1,…,gn} ) = {g1,…,gn}
        • 当步数为0时,我们哪也去不了,只能留在原地
      • Γ-m( {g1,…,gn} ) =Γ-1 ( Γ-(m-1)( {g1,…,gn}))
        • 当步数为m时,通过递归这些结果集得到最终结果集的合并。

类似的,过渡闭路则定义:从最终目标开始,可以回溯的所有状态

Γ(s)=∪(k∈[1,∞])Γ-k({s})=Γ-0(g)∪Γ-1(g) ∪Γ-2(g)∪…∪Γ-k(g)

最后,把状态空间规划作为搜索问题 已知 规划问题 P = (O,si,g),作为搜索问题

  • 初始状态 = g
  • 最终目标的满足检测: 如果当前s 满足 si时,说明找到起始状态si
  • 路径成本函数: π = |π| ,等于路径的长度
  • 状态s前继节点函数 : Γ-1(s)

优点与缺点

后向搜索同样也可能会有非常巨大的分支!当与g相关的操作o可能有许多实例,a1,a2,…,ai 像unstack行动,操作集O中有许多unstack的实例,他们只是输入参数的值不一样 unstack(b1,b1),unstack(b1,b2),.., 而a1,…,ai的中的大部分的前提条件可能都无法从初始状态到达,和之前一样,对这样的节点进行深入的搜索会浪费大量的时间! image-center 我们可用通过把这些形式相同,只是传入参数不同的合并为一个,即简单的把这些不同输入的部分以变量的形式保存,即变成下面这种形式: image-center

这种方法称为抬升(Lifting)

  • 比后向搜索更加复杂,必须跟踪执行了哪些替代操作
  • 但是分支比后向搜索小得多

image-center 这里先不深入讨论,后面有一篇会专门讨论局部规划,就是使用了这种方法!

搜索空间还是很大! 尽管抬升后向搜索(lifted-backward-search)生成了比简单的后向搜索更加小的搜索空间,但是它还是有点大。

  • 假设行动a,b,c是独立的,行动d必须在它们之前执行,且没有从s0到d的输入状态的路径
  • 在意识到没有解决方案前,我们将尝试a,b,c的所有可能排序

image-center 这里先不深入讨论,后面会有一篇文章 计划空间规划 来专门讨论!