文章目录
- Overview
- 1 Intro
- LTL任务分解
- STL任务分解
- 本文工作
- Background and Problem Definition
- STL
- Agent
- 假设与问题
- 方法
- An STL Rewriting System
- Rewriting System
- Formula Rewrite DAG
- Decomposing STL
- 智能体编队
- 任务分解
- 最优分解
- Exploring the Formula Rewrite DAG
- Experiments and Results
- 心得体会
多智能体 STL任务分解
[1] K. Leahy, M. Mann, and C.-I. Vasile, “Rewrite-Based Decomposition of Signal Temporal Logic Specifications,” in NASA Formal Methods, K. Y. Rozier and S. Chaudhuri, Eds., in Lecture Notes in Computer Science. Cham: Springer Nature Switzerland, 2023, pp. 224–240. doi: 10.1007/978-3-031-33170-1_14.
Overview
- 用rewriting system将STL公式分解以解决中心计算计算量太大的问题
- 同时给智能体分组
- 证明分解算法的收敛性
- 提出一个分解的评价指标并给出最佳分解的评价方式
1 Intro
LTL任务分解
[2,7,21,23]
STL任务分解
[6] Charitidou, M., Dimarogonas, D.V.: Signal temporal logic task decomposition via convex optimization. IEEE Contr. Syst. Lett. 6 , 1238–1243 (2021)
- 已知智能体的分组情况
[14] Leahy, K., Jones, A., Vasile, C.I.: Fast decomposition of temporal logic specifications for heterogeneous teams. IEEE Robot. Autom. Lett. 7 (2), 2297–2304 (2022)
- abstract reduction system,只能处理特定形式的STL
[22] Sun, D., Chen, J., Mitra, S., Fan, C.: Multi-agent motion planning from signal temporal logic specifications. IEEE Robot. Autom. Lett. 7 (2), 3451–3458 (2022)
- 将任务分解给每一个机器人,不考虑编队
- 主要探究的是控制综合的问题
本文工作
- 公式分解 + 机器人编队 (分两阶段完成)
- 提供了分解式的正则形式以及量化了分解上限
- 基于优化方法在DAG上选择最佳分解和编队
Background and Problem Definition
STL
文章分层定义了predicate和conjugate,如下所示
虽然文章说不约束STL的形式,但是这个定义一出来看上去是只接受一层时序嵌套和布尔运算的组合
Agent
-
智能体定义为一个状态和状态上界(element-wise)的元组 A = ( x ( t ) , u ) A=(x(t),u) A=(x(t),u)
-
u u u: x ( t ) x(t) x(t)有一个恒定的上界,假定是已知的
-
An agent “services” a predicate: 一个智能体的动作对该predicate是否满足有影响
-
equivalence class g u g_u gu: 具有相同 u u u的智能体被看做为同一类型
-
Robustness upper bound ρ u b \rho_{ub} ρub: 所有机器人鲁棒度能够达到的最大值之和
- 上面公式定义的很奇怪,感觉像是括号打错了,正确的应该是 ρ u b ( π ( x ( t ) ≥ c ) , A ) : = ∑ a ∈ A ( π ( a . u ) − c ) \rho_{ub}(\pi(x(t)\geq c),\mathcal{A}):=\sum_{a\in\mathcal{A}}(\pi(a.u)-c) ρub(π(x(t)≥c),A):=a∈A∑(π(a.u)−c)
- 如果 ρ u b \rho_{ub} ρub为负,则不存在满足此公式的控制律
假设与问题
- 假定 S y n t h ( J , ϕ ) Synth(J,\phi) Synth(J,ϕ)是一个已知的函数,输出一个控制律,使得智能体集群 J J J满足公式 ϕ \phi ϕ
- 由于目前没有方法能够在求解控制律之前就得出问题是否可行,因此本文将robustness upper bound作为存在可行解的一个必要条件
- 即得到智能体的编队方式 R R R以及每一队所对应的公式 ϕ r \phi_r ϕr
- 为了使分解有意义,接下来假设原控制综合问题是有可行解的
方法
大致步骤如下:
- 先将原公式转化为更容易分解的形式(很多种):图(a)DAG中包含4个结点,对应图(b)中的4个AST
- 为每种变形构建抽象语法树(AST, abstract syntax tree)
- 给所有变形打分
- 选择最好的结点,完成公式的分解
- 根据公式完成智能体编队
An STL Rewriting System
这里完成上面步骤中的第一步:将原公式转化为更容易分解的形式
Rewriting System
最顶层为合取 ∧ \land ∧组合为的公式是最容易分解的, ∧ \land ∧下的子公式没有逻辑关联性(都满足就好了),因此这里想了一个方法将所有的公式都改成顶层连接词为 ∧ \land ∧的形式。
为了保证分解后的问题与原问题的统一性,必须保证改写后的公式比原公式更加严格。
因此文章提出下面3中加入顶层
∧
\land
∧的方法:
→
□
,
→
⋄
,
→
U
\to_\square,\to_\diamond,\to_\mathcal{U}
→□,→⋄,→U
- 上面的split-finally和split-until对原公式的逻辑压缩得简直是大刀阔斧
- 文中还有两种合并,就是说很有道理但是又没有道理 😅
接下来就是一些比较长的数学证明,这里不细看了
- rewrite系统的终止条件:出现一个单调
φ
\varphi
φ,其中
φ
=
∑
i
=
1
n
∧
,
U
d
i
+
(
n
∧
,
U
+
1
)
n
U
\varphi=\sum_{i=1}^{n_{\land,\mathcal U}}d_i+(n_{\land,\mathcal U}+1)n_\mathcal{U}
φ=i=1∑n∧,Udi+(n∧,U+1)nU
- n ∧ , U n_{\land,\mathcal U} n∧,U是顶层连接词 ∧ \land ∧和 U \mathcal U U的数量
- d i d_i di是第 i i i个顶层连接词到AST根节点的距离
- monotone embedding into ( N , > ) (\mathbb N,>) (N,>)
- Confluence
Formula Rewrite DAG
G
:
=
<
Φ
,
E
>
G:=\left<\Phi,E\right>
G:=⟨Φ,E⟩ 表示公式的变化过程,结点为公式形态,边为重写规则,如下如所示
上面证明过DAG一定能够以有限图终止,上图最下方也展示了这个结果
Decomposing STL
这一部分做的是给上面的所有结点评分,以选出一个最佳的分解方法
智能体编队
一个将STL公式转化成智能体集合的函数:
α
:
c
o
n
j
(
ϕ
)
→
2
J
\alpha:conj(\phi)\to 2^J
α:conj(ϕ)→2J
任务分解
- 一种任务分解对应一种编队形式 R R R (a partition of set J J J),记一种分解为元组 D R : = < R , { ϕ r } r ∈ R > \mathcal D_R:=\left<R,\{\phi_r\}_{r\in R}\right> DR:=⟨R,{ϕr}r∈R⟩
- 分解后的子任务能够独立求解
最优分解
为了选出最佳分解,这一部分引入了一个评分体系
- c a p : G × p r e d ( ϕ ) → R c_{ap}:G\times pred(\phi)\to\mathbb R cap:G×pred(ϕ)→R 起步代价
- c p p : G × p r e d ( ϕ ) × p r e d ( ϕ ) → R c_{pp}: G\times pred(\phi)\times pred(\phi) \to \mathbb R cpp:G×pred(ϕ)×pred(ϕ)→R 切换任务的代价
最终用于排序的评分称作decomposition score,为一个元组:
ξ
:
=
<
N
,
−
C
a
p
,
−
C
p
p
,
−
h
,
ρ
u
b
>
\xi:=\left<N,-C_{ap},-C_{pp},-h,\rho_{ub} \right>
ξ:=⟨N,−Cap,−Cpp,−h,ρub⟩,比较结点时按照排序优先级向下比较
Exploring the Formula Rewrite DAG
这一章介绍总体算法,包括DAG构建以及结点遍历、排序的算法,如下所示:
- 这里子问题是否都有可行解只有再进行控制综合时才知道
- 当根据得分得到的最佳分解仍然包含没有可行解的子问题时,又回到DAG换过一个结点❓
Experiments and Results
对computing和电网两个场景分别进行了实验,可以看出分解后求解速度明显快了不少
文章还和之前的Capability TL的结果进行了效率的对比,在对角线下方表示本文算法更快,发现问题规模越大提速越明显。CaTL用的是SMT进行智能体编队的
心得体会
- 将任务分解为子任务是STL控制综合的一个比较有意思的方向
- 用inference做data-based decomposition应该也挺有意思的