任务规划概述:从经典规划到HTN

2026-07-21 Updated 2026-08-28 10 min read 142 views

一、什么是任务规划?

任务规划(Task Planning)是人工智能的一个重要分支,研究如何让智能体(机器人、卫星、软件代理等)自动生成一系列动作,以完成给定的目标。

想象一个简单的场景:你要求一个机器人"把桌子上的苹果放到冰箱里"。为了完成这个任务,机器人需要:

  1. 识别苹果的位置
  2. 移动到桌子旁
  3. 抓取苹果
  4. 移动到冰箱前
  5. 打开冰箱门
  6. 放入苹果
  7. 关上冰箱门

这就是任务规划要解决的问题:给定初始状态和目标,自动生成一系列有序的动作序列

任务规划的典型应用

  • 航天领域:卫星观测任务规划、深空探测器任务编排
  • 机器人:家庭服务机器人、工业机器人
  • 游戏AI:NPC行为决策、战术规划
  • 智能助手:日程安排、工作流自动化

学习资源推荐

如果你想系统学习任务规划,有一本必读的经典教材:《Automated Planning: Theory and Practice》(自动规划:理论和实践),由 Malik Ghallab、Dana Nau 和 Paolo Traverso 合著。这本书涵盖了从经典规划到分层任务网络(HTN)的完整理论体系,是该领域的权威参考。本文以及本专栏的后续内容,很大程度上都基于这本书的框架。


二、经典规划及其局限

2.1 经典规划的核心思想

经典规划(Classical Planning)是最基础的规划形式,其核心思想是目标导向

  • 给定一个初始状态(Initial State)
  • 给定一个目标状态(Goal State)
  • 给定一组动作(Actions),每个动作有前置条件和效果
  • 规划器的任务是:找到一条从初始状态到目标状态的路径

经典的 STRIPS 表示和 PDDL(Planning Domain Definition Language)都是基于这个框架。

2.2 经典规划的问题

经典规划虽然在理论上优雅,但在实际应用中面临严峻挑战:

问题一:搜索空间爆炸

想象一个卫星需要执行 20 个观测任务。经典规划器需要在所有可能的动作组合中搜索。即使每个时刻只有 5 个可选动作,组合数也会呈指数增长。这就是著名的"状态空间爆炸"问题。

问题二:无法利用领域知识

经典规划器对"如何完成任务"一无所知。它只知道每个动作的合法性和效果。但实际上,人类专家往往有丰富的经验知识——比如"观测一个目标通常需要先转动卫星、再开机、再采集数据"。这些知识在经典规划框架中难以表达。

问题三:难以表达"怎么做"

经典规划回答的是"如何到达目标状态",而不是"如何执行这个任务"。对于复杂的任务,人类通常习惯于把它分解为子任务,而不是直接思考原子动作。经典规划缺乏这种分层思维。


三、HTN:任务导向的新思路

3.1 从"目标导向"到"任务导向"

分层任务网络(Hierarchical Task Network, HTN)规划提供了一种全新的思路。

经典规划问的是:"如何到达某个目标状态?"

HTN 问的是:"如何执行这个高层任务?"

这个转变看似微妙,却带来了根本性的改变。

3.2 HTN 的核心概念

HTN 引入了三个核心概念:

复合任务(Compound Task):抽象的高层活动,不能直接执行,需要被分解。例如"观测目标A"、"修复故障"。

原子任务(Primitive Task):可以直接执行的基本动作。例如"转动卫星"、"打开相机"。

方法(Method):告诉规划器"如何实现一个复合任务"的配方。一个方法包含:
- 它能解决哪个复合任务
- 使用这个方法的条件
- 分解后的子任务网络

3.3 分解:填空题而非寻路

经典规划像是在迷宫中寻找一条从起点到终点的路径——可能性太多,容易迷路。

HTN 更像是在做填空题:给你一个高层任务,你按照已知的方法把它分解为子任务;如果子任务还是复合任务,继续分解;直到所有任务都是可直接执行的原子任务。

这种方法大大缩小了搜索空间,因为你不需要探索所有可能性,只需要在专家定义的"正确路径"中寻找。

3.4 HTN 的本质

HTN 的核心优势在于:它允许人类专家将领域知识以"方法"的形式编码进系统

这就像给规划器一本"操作手册"——专家不再只是告诉它"动作A是什么",而是告诉它"遇到这种情况,通常应该这样做"。这种知识表示方式,让规划器能够利用人类积累的经验,而不是每次都从零开始搜索。


四、HTN 的典型应用

4.1 航天器任务规划

航天是 HTN 最重要的应用领域之一。卫星任务通常有严格的操作流程(如观测需要先对准目标、再开机、再采集),非常适合用 HTN 的方法来建模。NASA、ESA 等机构在实际任务中广泛使用 HTN 技术。

4.2 游戏 AI

在游戏开发中,HTN 被用于控制 NPC 的行为决策。例如《地平线:零之曙光》《变形金刚:塞伯坦的陨落》等游戏都采用了 HTN 来实现敌人的智能行为。相比行为树和 GOAP,HTN 的"推演"能力让 AI 行为更加智能和可预测。

4.3 机器人任务规划

服务机器人、工业机器人需要完成复杂的任务序列。HTN 的分层结构让机器人能够处理"打扫房间""准备晚餐"等高层指令,自动分解为底层的动作序列。


五、本专栏的内容规划

这是一个系统性介绍 HTN 规划的专栏。我计划按照以下顺序展开:

  1. 基础篇:HTN 的核心概念、STN 与 HTN 的区别、经典算法(TFD)
  2. 理论篇:不可判定性、表达能力、与经典规划的关系
  3. 实践篇:如何设计 HTN 领域、规划器介绍(SHOP2、PyHOP 等)
  4. 前沿篇:HTN 与时序规划的结合、混合规划方法、研究进展

无论你是刚接触任务规划的研究生,还是想了解 HTN 的工程师,希望这个专栏能帮助你建立起系统的认知。