智能规划发展趋势

Posted on 2019-11-07 17:30  Volcano3511  阅读(200)  评论(0编辑  收藏  举报

TOC

规划算法/思想

  • 1975年之前,大部分是状态空间规划
  • 1975年之后,出现了一些局部规划空间规划,规划空间中的点变成了局部规划
  • 之后出现了 action-ordering 表示方法,这种规划方法描述的是 action 之间的关系而不是通过状态之间的前提之类的,可以在不需要明确中间状态的 情况下对两个动作进行排序。相反,state-based plan structures 需要完整的描述中间状态,使得这种表示方法 难以描述复杂度时序和因果关系,从而使得 action-ordering 这种结构应用广泛
  • 局部规划空间出现后,自然就有了偏序规划,偏序规划就涉及到基于局部信息的选择可能无法达到最终的目标,所以需要进行一定的回溯
  • 机运性规划 opportunistic planning
  • 元规划 metaplanning
    不仅仅是推理目标,还推理不同可以用于生成规划的技术
  • 还有一些其它的减少规划空间规模的方法:如对多个goal 进行优先性排序,提前排除已知不可能的规划
  • 后续又有根据领域限制和时间连续性(为启发式拒绝一些 action 提供依据)进行优化算法的规划空间
  • 之后就出现了基于领域模型来仿真规划结果,比如说用资源使用层次,时间限制和其他资源限制来减少一些可选项。
  • 另一种方法是使用自然事件发生的局部性(可以发生在域中),将规划搜索空间划分为更小的局部搜索空间,从而减少搜索负担,如Gemplan (Lansky 1988)
  • 现在有一些方法设计到使用并行性来简要地同时检查许多潜在的选择。
  • 为了避免规划结果中产生动作冗余或者是目标重复,提出 conjunctive goal planning 的概念,也是现代 planning 研究的基础,主要的方法是:按重要性级别排列各种目标(偏序思想就是一种具体的解决方法)和分析和避免连接目标之间的相互作用。

规划语言

  • strips
    最初的世界模型只会通过对建模世界状态的状态(其他一切都保持不变)的一组添加和删除来更改。(这个假设有时被称为条带假设。)然后条带将操作符定义为具有附加列表、删除列表和先决条件公式(用于定义适用性或子目标条件)。操作符的选择是基于对与add-list上的语句匹配的目标的识别(即,操作符可以将这些语句添加到当前状态)。
  • ADL
  • PDDL

动作表示

  • 一开始是 STRIPS,此时动作主要是前提,后果(add-list 和 delete-list)
  • 然后提出了非原子 action,也就是局部规划,其中也包含一些ordering 的限制
  • 之后的系统 也不断增加 Operate 的信息,比如增加资源使用情况,增加时间限制的信息等等
  • 之后的规划中,领域的动态性不断增加

规划和执行

  • 一开始的规划算法是基于完全已知的环境,而且环境的变化是唯一受 action 影响的
  • 但是,这个设想太过理想化,当规划动作执行失败的时候,就需要进行重规划 replanning,对于重规划的处理方法有两种:1是根据新信息和经验进行重新规划 2是在初始规划时就加入对潜在的失败进行考虑
  • 对于环境变化的另一个处理方式就是:边执行边规划

规划的发展趋势

  • 增加条件和迭代
  • 不确定规划
  • 分布式规划

攻击规划的发展趋势

  • 需要对攻击者知识的描述,从攻击者的角度而不是防御者的角度
  • 需要将规划看做是多步骤过程,包括信息获取动作和执行动作
  • 需要考虑附带损害,比如说把机器打宕机了,在渗透测试中可以忽略,但是在实际攻击中不行
  • 需要实时情报,状态感知和决策支持
  • 需要考虑攻防双方的对策方法
  • 需要研究 knowledge engineering 和 建模

参考文献

  • Hendler, J., Tate, A., & Drummond, M. (1990). AI planning. Systems and techniques. AI Magazine, 11(2), 61–77.