人工智能 经典规划

1规划问题定义(PDDL)为一个搜索问题

状态表示为流fluent的合取,流是基元的(无变量的)、无函数的原子。且不是否定式

动作用动作模式描述,隐式描述ACTIONS(s)和RESULT(s, a)

PDDL根据什么发生了变化来描述一个动作的结果;

        不提及保持不变的东西。

        动作的前提和效果都是文字(原子语句或原子语句的否定)的合取。

        前提定义了动作能被执行的状态,效果定义了执行这个动作的结果.

        为所有的变量代入值得到基元动作。

ACTIONS(s):一个动作a能在状态s被执行,如果s蕴涵了a的前提.用形式符号表达即为(aACTIONS(s)) s╞ PRECOND(a),

用集合语义表达即s╞ q当且仅当q中的正文字都在s中,且q中的负文字都不在s中。

如果状态s满足前提,称在状态s动作a是适用的.

RESULT(s,a):在状态s执行动作a的结果定义为状态s’,它由一组流fluent表示,这组流由s开始,去掉在动作效果中以负文字出现的流(称为删除列表delete list或DEL(a)),并增加在动作效果中以正文字出现的流(称为增加列表add list或ADD(a):

s’=RESULT(s,a) = (s–DEL(a))∪ADD(a)

初始状态是基元原子的合取(对于所有状态,使用封闭世界假设,即任何没有提到的原子都是假的)

目标就像前件是可含有变量的文字(正文字或负文字)的合取。变量是存在量化的

目标测试:测试当前状态是否蕴含目标

2.前向(前进)状态空间搜索:从初始状态开始搜索状态空间,寻找一个目标.容易探索到无关动作;其次规划问题经常有大的状态空间,从而需要精确的启发式。选择适用的动作

3.后向(后退)相关状态搜索:从目标开始,向后应用动作,直到找到达到初始状态的步骤序列.只考虑与目标(或当前状态)相关的动作(导致当前目标状态的规划中可以作为最后一个步骤的那些动作)。给定一个基元目标描述g和一个基元动作a,从g经a回退得到状态描述g′,定义为

 g′ = (g − ADD(a)) ∪ Precond(a)

动作的效果(或者为正,或者为负)之一必须与目标的一个元素一致。

动作必须不能具有任何否定目标的某个元素的效果(正或负)。

o 如果目标是A∧B∧C,一个动作的效果是 A∧B∧非C,那么它不是相关的.

通过 总是使用 使目标和效果合一的 最一般合一元 代换到(标准化分离的)动作模式中 得到的动作, 我们可以减小分支因子而不会漏掉任何解。


3.规划的启发式启发式函数h(s)估计从状态到目标距离.获得可采纳的启发式(可定义松弛问题),增加边或者合并结点:

1忽略前提启发式(增加边/松弛前提)

        (1)丢弃动作中的所有前提,在每个状态每个动作都适用,而且任何单个目标流能够一步获得(如果存在一个适用动作——否则,问题是不可能解的)

        (2)选择性地忽略动作的前提

2忽略删除列表(增加边/松弛效果)

        假设所有目标和前提只含有正文字.从所有动作中去掉删除列表(效果中的负文字)得到松弛版本。这使得没有动作会抵消另一个动作的效果;

3忽略一些流(合并结点/抽象状态)。

定义启发式的关键思想是分解decomposition:

        将一个问题分成多个部分,独立地解决每个部分,再组合各部分. 

目标是一组流G,将其划分为不相交的子集G1,…,Gn,然后找到各子目标的解规划P1,…,Pn,

则maxi COST(Pi)是可采纳的;

当确定Gi和Gj相互独立的时候,如果Pi的效果不改变Pj的所有前提和目标,那么估计值COST(Pi)+COST(Pj)是 可采纳的

4从规划图获得启发式及提取规划

一个规划图组织成有层次的有向图:首先是初始状态层 S0,由在S0成立的每个流结点组成;然后是层A0, 由在S0适用的每个基元动作结点组成;然后是交叠的层次Si, Ai…直到达到终止条件(直到连续两层S是一模一样的为止,这时规划图达到了稳定level off).规划图只能用于命题规划问题(没有变量的规划问题)

5.规划图中的互斥:如果下列三个条件之一成立,则在给定层次的两个动作间的互斥关系成立:

不一致效果:一个动作的效果否定另一个动作的效果。

冲突:一个动作的效果否定另一个动作的前提。

竞争需要:一个动作的前提之一与另一个动作的一个前提互斥。

如果一个文字是另一个文字的负,或者如果得到这两个文字的每对可能的动作是互斥的,(条件称为非一致性支持)则这同一层的两个文字之间的互斥关系成立。

从规划图获得单个目标文字的估计代价从状态s获得任何目标文字gi的代价为gi在从初始状态s开始构建出的规划图中首次出现的层(称为gi的层次代价)。

从规划图获得合取目标的估计代

法1最大层max-level启发式简单取任何目标的最大层次代价.可采纳的

法2层次和level sum启发式遵守子目标独立性假设,返回目标的层次代价之和.可能不是可采纳的

法3集合层次set-level启发式找到合取目标中的所有文字出现在规划图中的层次,这一层没有任何一对目标文字是互斥的。

6如何从规划图提取一个规划 :

GRAPHPLAN算法反复地用EXPAND-GRAPH 向规划图增加一层。一旦所有目标在图中出现,没有互斥,GRAPHPLAN就调用EXTRACTSOLUTION搜索解决问题的规划。

扩展出规划图后用EXTRACTSOLUTION找到解,构想为一个布尔约束满足问题CSP),其中变量在每一层的动作,每个变量的“在规划之内”或“在 规划之外”约束互斥以及需要满足每个目标和前提

CSP或定义为一个 后向 搜索问题,搜索中的每个状态含有指向规划图某一层的指针、以及未被满足的目标集合。
初始状态 是最后一层S n ,以及来自规划问题的目标集合。
S i 层的状态中 可用动作 要选择 A i-1中的某个无冲突的、效果覆盖S i 层目标集合的动作子集
结果状态 的层为 S i-1,并将 选择的动作集合的前提作为目标集合 。“无冲突”是指一组动作任意两个都不是互斥的,它们的任意两个前提也不是互斥的。
目标 是达到一个在S 0 的状态,使所有目标得到满足
每个动作的 代价 1
一旦图和no-good都达到稳定,而又没有找到解,我们就可以失败而终止
将一直是稳定的:
文字单调递增 :一旦一个文字在一个给定的层中出现, 它将在所有后继层中出现。
动作单调递增 :一旦一个动作在一个给定的层中出现, 它将在所有后继层中出现。
互斥单调递减 :如果在给定层 A i 的两个行动是互斥的, 那么它们在所有早先 它们共同出现的层中也是互斥的。
No- good 单调递减 :如果在一个给定层,一组目标是不可获得的,那么它们在任何前面的层也是不可获得的。
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值