本文介绍一种针对基于冲突的路径规划问题(conflict-based search, CBS)的整数规划模型,并提供调用 OR-Tools 和 SCIP 求解器的代码。
文章目录
模型部分
参数
参数 | 含义 |
---|---|
I I I | 所有智能体 |
P P P | 所有位置 |
T T T | 时间限制 |
t 0 t_0 t0 | 初始时刻 |
s i s_i si | 智能体 i i i 的初始位置 |
g i g_i gi | 智能体 i i i 的目标位置 |
N p N_p Np | 位置 p p p 的所有相邻位置 |
决策变量
变量 | 类型 | 含义 |
---|---|---|
u i , p , t u_{i, p, t} ui,p,t | { 0 , 1 } \{ 0, 1 \} { 0,1} | 智能体 i i i 在时刻 t t t 位于位置 p p p |
约束条件
(1) 初始位置
u i , s i , t 0 = 1 ∀ i ∈ I u_{i, s_i, t_0} = 1 \quad \forall i \in I ui,si,t0=1∀i∈I
(2) 每个智能体在每个时刻有且仅有一个位置
∑ p ∈ P u i , p , t = 1 ∀ i ∈ I ∀ t ≤ T \sum_{p \in P} u_{i, p, t} = 1 \quad \forall i \in I \quad \forall t \leq T p∈P∑ui,p,t=1∀i∈I∀t≤T
(3) 移动方向
u i , p , t ≤ ∑ q ∈ N p u i , q , t + 1 ∀ i ∈ I ∀ t < T ∀ p ∈ P u_{i, p, t} \leq \sum_{q \in N_p} u_{i, q, t + 1} \quad \forall i \in I \quad \forall t < T \quad \forall p \in P ui,p,t≤q∈Np∑ui,q,t+1∀i∈I∀t<T∀p∈P
(4) 到达终点后不再移动
u i , g i , t ≤ u i , g i , t + 1 ∀ i ∈ I ∀ t < T u_{i, g_i, t} \leq u_{i, g_i, t + 1} \quad \forall i \in I \quad \forall t < T ui,gi,t≤ui,gi,t+1∀i∈I∀t<T
(5) 每个位置在每个时刻至多有一个智能体
∑ i ∈ I u i , p , t ≤ 1 ∀ i ∈ I ∀ p ∈ P \sum_{i \in I} u_{i, p, t} \leq 1 \quad \forall i \in I \quad \forall p \in P i∈I∑ui,p,t≤1∀i∈I∀p∈P
(6) 只有一个智能体离开当前位置后,才允许另一个智能体进入
(更严谨的约束方式是禁止两个相邻的智能体对撞交换位置,但是较难线性化,且需要引入较多变量,故简化为该约束)
u i , p , t + u j , p , t + 1 ≤ 1 ∀ i ∈ I j ∈ I ∀ p ∈ P ∀ t < T u_{i, p, t} + u_{j, p, t + 1} \leq 1 \quad \forall i \in I \quad j \in I \quad \forall p \in P \quad \forall t < T