HTN规划里两种方法前置条件语义不再二选一:新编译把SHOP式检查压进偏序规划,只加两个事实
核心概要
分层任务网络(HTN)规划中,方法前置条件在SHOP系列与HDDL两种语义下含义不同:前者要求前置条件在方法第一个动作执行前立即成立,后者只要求它在某个更早状态成立,偏序下两者可给出不同解。新工作把SHOP式“首动作”语义精确编译成不含方法前置条件的标准偏序HTN问题,只增加两个事实,并给出解之间的一一对应与机器检验的语言保持证明。
深度剖析
分层任务网络规划中的方法前置条件现在可以在偏序下按SHOP式含义使用,而不必改用HDDL那种更宽松的检查方式。 HDDL自设计起就采用辅助检查动作的编译语义,其设计者指出首动作读法“需要(原生)支持该特性,因为编译不易实现”,此后多项工作把偏序下的编译列为未决问题,已有变换只覆盖全序。 编译后的解与首动作解一一对应,语言保持有机器检验的证明;在装运示例中,HDDL语义接受的“检查时舱门开着、随后关舱装货”的线性化被排除,而首动作语义保留的线性化都能复现。
做法是让每个方法不确定地标记将产生其第一个动作的子任务,并把这一义务沿分解层级向下传递。 标记用两种复合任务副本区分:普通副本不承担义务,首副本表示其第一个动作也必须是某个已检查祖先的第一个动作;标记链最终落到一个释放动作。 两个新事实充当全局锁,任一时刻恰有一个成立;开锁检查要求前置条件并翻转锁,内部检查只要求前置条件,释放动作恢复锁,其余动作都要求锁处于未占用状态,因此锁窗口内只能运行本链的检查与释放。
编译规模为多项式,一般情形为平方级,方法全序时为线性级。 每个方法对每个极小子任务生成两个变体,各增加一个任务和若干排序对;由于极小子任务数不超过方法规模,总体为平方界。 编译保持全序、无环、尾递归与正则这四个结构片段,因此已有的计划存在性紧界可沿用到首动作语义;无环与尾递归两种情形是此前没有的。
启示与展望
讨论范围限于地面HTN形式化下的首动作语义及其编译,空方法按SHOP2惯例以空操作在任务被移除时求值;编译对提升后的HDDL域同样适用,无需先接地。
作者把若干问题留作未决:祖先前置条件需在其第一个非空操作动作之前成立时是否存在类似编译;锁能否扩展到对子任务子集的before约束以及after与between约束;平方规模是否必要。
