2. 集群任务分配建模基础
任务分配的本质,是把“谁去做什么、什么时候做、能不能做、做得值不值”这四个问题写成可计算的数学形式。只有先把现实中的任务、无人机、资源、时间窗、约束和目标函数抽象成统一的符号系统,后续的分配算法与重规划才有共同的输入输出接口。本节围绕这套符号系统展开,重点说明每个要素“怎么描述”以及“为什么这样描述”。
一、任务集合:把“要干的事”写成可计算对象
设集群需要完成的任务集合为 T = {t₁, t₂, …, tₙ},共 n 个任务。每个任务 tᵢ 至少需要描述四类信息:位置、类型、工作量与时间窗。位置通常写成三维坐标 pᵢ = (xᵢ, yᵢ, zᵢ);类型用于区分侦察、打击、通信中继、物资投送等不同作业,可用离散标签 typeᵢ ∈ {RECON, STRIKE, RELAY, DELIVERY} 表示;工作量表示完成任务所需的“资源量”,例如侦察任务需要覆盖面积、打击任务需要弹药当量;时间窗则给出允许执行的时间区间。
时间窗是任务分配中最容易被低估的要素。对任务 tᵢ,定义最早开始时间 eᵢ 和最晚完成时间 lᵢ,允许执行区间为 [eᵢ, lᵢ]。若无人机在时刻 sᵢ 开始执行、在时刻 fᵢ 完成,则必须满足 eᵢ ≤ sᵢ 且 fᵢ ≤ lᵢ。当任务允许被拆分时,可引入软时间窗,用惩罚函数代替硬性禁止,例如早到惩罚 α·max(0, eᵢ − sᵢ) 与晚到惩罚 β·max(0, fᵢ − lᵢ),其中 α、β 为惩罚系数。硬时间窗适合安全关键任务,软时间窗适合可容忍延迟的侦察或巡检任务。
二、无人机集合与资源描述
设无人机集合为 U = {u₁, u₂, …, uₘ},共 m 架。每架无人机 uⱼ 需要描述初始位置、速度、续航、载荷与能力标签。初始位置 qⱼ = (xⱼ, yⱼ, zⱼ),巡航速度 vⱼ,最大续航时间 Eⱼ,剩余能量 Eⱼʳ。载荷与资源用向量表示:rⱼ = (rⱼ¹, rⱼ², …, rⱼᵏ),例如 rⱼ = (弹药, 燃油, 传感器时长, 通信带宽)。能力标签 capⱼ ⊆ {RECON, STRIKE, RELAY, DELIVERY} 表示该机可承担的任务类型。
资源描述的关键是“可消耗”与“可复用”的区分。弹药、燃油属于可消耗资源,执行任务后按消耗量递减;传感器、通信带宽属于可复用资源,在同一时刻只能被一个任务占用,但任务结束后释放。若忽略这一区别,分配结果可能出现“同一架无人机同时执行两个侦察任务”的不可行解。
三、分配变量与可行性约束
最常用的分配变量是二值变量 xᵢⱼ ∈ {0, 1},xᵢⱼ = 1 表示任务 tᵢ 由无人机 uⱼ 执行,否则为 0。若任务可拆分,则改用连续变量 xᵢⱼ ∈ [0, 1] 表示分配比例。基于该变量,可写出四类基本约束。
- 唯一性约束:每个任务至少被分配一次,
Σⱼ xᵢⱼ ≥ 1;若不允许重复执行,则取等号。 - 能力约束:只有能力匹配的无人机才能承接任务,
xᵢⱼ = 0当typeᵢ ∉ capⱼ。 - 资源约束:无人机执行所分配任务的总消耗不超过其可用资源,
Σᵢ cᵢⱼ xᵢⱼ ≤ rⱼ,其中cᵢⱼ为执行任务 tᵢ 对资源 k 的消耗量。 - 时间窗与续航约束:任务执行区间必须落在时间窗内,且无人机从当前位置出发、依次执行任务的总飞行时间不超过剩余续航。
此外还有时序约束:若任务 tᵢ 必须在 tₖ 之前完成,则 fᵢ ≤ sₖ;若两任务由同一无人机执行,则前一任务完成时刻加上转场时间不大于后一任务开始时刻。这些约束共同构成可行域,任何分配方案必须先通过可行性检查,再进入目标函数比较。
四、目标函数:把“好方案”量化
目标函数决定优化方向。常见形式包括总航程最短、总完成时间最短、任务收益最大、资源消耗最小以及负载均衡。以总航程为例,若无人机 uⱼ 依次执行任务序列 πⱼ = (t₁, t₂, …, tₖ),则其航程为从初始位置到首个任务、任务间转场、最后返回或驻留的总距离,目标函数为 min Σⱼ D(πⱼ)。若同时考虑收益与代价,可写成加权形式 max Σᵢ Σⱼ (gᵢ − λ·dᵢⱼ) xᵢⱼ,其中 gᵢ 为任务收益,dᵢⱼ 为执行代价,λ 为权衡系数。
多目标场景下,通常先归一化再加权:F = w₁·(航程/航程基准) + w₂·(完成时间/时间基准) + w₃·(资源消耗/资源基准),权重满足 w₁ + w₂ + w₃ = 1。权重不是固定值,而应随任务阶段调整:突防阶段偏向时间,巡逻阶段偏向续航,回收阶段偏向均衡。
五、一个可手算的建模示例
为便于理解,给出一个简化示例。设 2 个任务、2 架无人机。任务 t₁ 为侦察,位置 (0, 0),时间窗 [0, 10],收益 8;任务 t₂ 为打击,位置 (10, 0),时间窗 [5, 20],收益 10。无人机 u₁ 初始位置 (0, 0),速度 1,续航 30,能力 {RECON, STRIKE},弹药 1;无人机 u₂ 初始位置 (10, 0),速度 1,续航 20,能力 {RECON},弹药 0。
先看能力约束:u₂ 不能执行 t₂,故 x₂₂ = 0。再看资源约束:t₂ 需要弹药 1,只有 u₁ 满足。时间窗方面,u₁ 从 (0,0) 飞往 t₂ 需 10 个时间单位,若先执行 t₁ 再飞往 t₂,到达时刻为 10,落在 [5, 20] 内,可行。若 u₁ 先执行 t₂,到达时刻 10,再返回执行 t₁ 到达时刻 20,超出 t₁ 的 l₁ = 10,不可行。因此可行方案为:u₁ 执行 t₁ 和 t₂,u₂ 空闲,总航程 20,总收益 18。若把 t₁ 交给 u₂,则 u₂ 从 (10,0) 飞往 (0,0) 需 10,到达时刻 10,恰好满足 l₁ = 10,此时 u₁ 只执行 t₂,总航程 10 + 10 = 20,收益相同,但 u₂ 的续航消耗更小,负载更均衡。这说明同一组约束下可能存在多个可行解,目标函数与权重决定最终选择。
综上,任务分配建模的核心是把任务、无人机、资源、时间窗写成集合与变量,把物理与逻辑限制写成约束,把优化偏好写成目标函数。三者共同构成一个可求解的数学模型,也是后续集中式、分布式与重规划算法的共同基础。