【阅读随笔】Rewrite-Based Decomposition of Signal Temporal Logic Specifications

news2024/11/26 23:48:50

文章目录

  • 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

  1. 用rewriting system将STL公式分解以解决中心计算计算量太大的问题
  2. 同时给智能体分组
  3. 证明分解算法的收敛性
  4. 提出一个分解的评价指标并给出最佳分解的评价方式

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):=aA(π(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
  • 为了使分解有意义,接下来假设原控制综合问题是有可行解的

方法

在这里插入图片描述
大致步骤如下:

  1. 先将原公式转化为更容易分解的形式(很多种):图(a)DAG中包含4个结点,对应图(b)中的4个AST
  2. 为每种变形构建抽象语法树(AST, abstract syntax tree)
  3. 给所有变形打分
  4. 选择最好的结点,完成公式的分解
  5. 根据公式完成智能体编队

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=1n,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}rR
  • 分解后的子任务能够独立求解

最优分解

为了选出最佳分解,这一部分引入了一个评分体系

  • 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应该也挺有意思的

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/647244.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

soci在windows下vs2010编译

需要下载 的资源 mysql connector c 因为其使用的的是mysql connector c的api&#xff0c;需要下载https://downloads.mysql.com/archives/c-c/ 分别对应32位和64位的 soci 4.0 从github上下载4.03分支 https://github.com/SOCI/soci/tree/v4.0.3 cmake 需要下载3.25版…

Java多线程快速入门

文章目录 Java多线程快速入门1、认识多线程2、多线程的实现2.1 继承Thread类2.2 实现Runnable接口2.3 利用Callable和Futrue接口2.4 三种方式的比较 3、Thread类常用API3.1 守护线程3.2 礼让线程3.3 插入线程3.4 线程的生命周期 5、线程安全问题5.1 synchronized5.2 Lock 6、等…

wsl安装ubuntu并设置gnome图形界面详细步骤(win11+ubuntu18)

0.前言 wsl确实是个好东西&#xff0c;不过之前配了好几次都没有成功&#xff0c;因为wsl本身确实是有bug。当时配的时候查到GitHub上的一个issue还没被修好。现在重新配一下。 我的环境是Windows11家庭版。区别于win10&#xff0c;win11安装完默认就是wsl2。 1.下载 首先打…

Linux之管理联网

目录 Linux之管理联网 rhel8与7的区别 NetworkManager 定义 NM能管理各种网络 使用方法 使用NM的原因 nmcli使用方法 nmcli的两个常用命令 nmcli connection 定义 两种状态 nmcli device 定义 四种状态 nmcli常用命令 查看ip&#xff08;类似于ifconfig、ip addr&a…

每周练习学习(一)1.1--nc的使用与系统命令执行

1.test_your_nc ----nc的使用与系统命令执行1 平台&#xff1a;buuctf 之前在攻防开学来考核的时候&#xff0c;遇到过一个nc的题&#xff0c;但自己完全不知道nc是什么意思&#xff0c;所以现在为了增强一点自己的知识面&#xff08;说的好听&#xff0c;也就是为了快期末…

4.8 Socket介绍 4.9字节序 4.10字节序转换函数

4.8 Socket介绍 所谓 socket&#xff08;套接字&#xff09;&#xff0c;就是对网络中不同主机上的应用进程之间进行双向通信的端点的抽象。一个套接字就是网络上进程通信的一端&#xff0c;提供了应用层进程利用网络协议交换数据的机制。从所处的地位来讲&#xff0c;套接字上…

使用EasyCode自定义模板,自动生成代码

首先创建spring boot项目&#xff0c;导入相关依赖是必须的#### 导入依赖&#xff1a; pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001…

设计模式(十八):行为型之观察者模式

设计模式系列文章 设计模式(一)&#xff1a;创建型之单例模式 设计模式(二、三)&#xff1a;创建型之工厂方法和抽象工厂模式 设计模式(四)&#xff1a;创建型之原型模式 设计模式(五)&#xff1a;创建型之建造者模式 设计模式(六)&#xff1a;结构型之代理模式 设计模式…

【RabbitMQ教程】第六章 —— RabbitMQ - 延迟队列

&#x1f4a7; 【 R a b b i t M Q 教程】第六章—— R a b b i t M Q − 延迟队列 \color{#FF1493}{【RabbitMQ教程】第六章 —— RabbitMQ - 延迟队列} 【RabbitMQ教程】第六章——RabbitMQ−延迟队列&#x1f4a7; &#x1f337; 仰望天空&#xff0c;妳我亦是行人…

数据提取概述

数据提取概述 一、响应内容的分类 在发送请求获取响应之后&#xff0c;可能存在多种不同类型的响应内容&#xff1b;而且很多时候&#xff0c;我们只需要响应内容中的一部分数据 结构化的响应内容 json字符串 可以使用re、json等模块来提取特定数据json字符串的例子如下图 x…

一.《UE5夜鸦》被动技能名字CALL和描述CALL

被动技能名字描述CALL 搜索名字寻找名字库的名字对象 1.搜索我们找名字,肯定是需要用CE搜索名字拉,由于是韩文,我们用翻译器截图获取韩文字符串 2.开始截图获取 3.我们用CE搜索字符串,这里注意是UTF-16勾上,找到了4个完全一样的结果, 我们修改确认哪一个才是真正技能库的名字 4…

[读论文]Referring Camouflaged Object Detection

摘要 In this paper, we consider the problem of referring camouflaged object detection (Ref-COD), a new task that aims to segment specified camouflaged objects based on some form of reference, e.g. , image, text. We first assemble a large-scale dataset, ca…

NLP——Translation 机器翻译

文章目录 为什么翻译任务困难Statistical Machine TranslationAlignment 对齐summary Neural Machine Translation如何训练 Neural MTloss 设定Trainingdecoding at Test TimeExposure BiasExhaustive Search DecodingBeam Search Decoding什么时候解码停止summary Attention M…

Linux 文件 io 的原子性与 O_APPEND 参数

转自&#xff1a;https://www.cnblogs.com/moonwalk/p/15642478.html 1. 文件 io 1.1 open() 系统调用 在进程/线程 struct task ---> struct files_struct 结构体中&#xff0c;添加一项新打开的文件描述符 fd&#xff0c;并指向文件表创建一个新的 struct file 即文件表…

Debezium系列之:为Debezium集群JMX页面增加监控,JMX页面出现异常时发送飞书告警,确保任务能够获取debezium集群指标

Debezium系列之:为Debezium集群JMX页面增加监控,JMX页面出现异常时发送飞书告警,确保任务能够获取debezium集群指标 一、需求背景二、相关技术博客三、监控JMX页面状态四、发送飞书告警五、定时执行脚本六、告警效果展示七、总结和延展一、需求背景 下游任务需要使用Debeziu…

【正项级数】敛散性判别

Hi&#xff01;&#x1f60a;&#x1f970;大家好呀&#xff01;欢迎阅读本篇文章正项级数敛散性判别。由于最近时间比较紧张&#xff0c;所以几乎没有使用公式编辑器&#xff0c;更多的内容多以图片形式呈现&#xff0c;希望本篇内容对你有帮助呀&#xff01; 可能对你有帮助的…

JavaSE进阶--网络编程

文章目录 前言一、网络编程二、通信1、两个重要的要素2、通信协议 三 、Socket四、基于TCP的网络编程1、单向通信1.1 服务端1.2 客户端 2、双向通信2.1 服务端2.2 客户端 3、传输对象3.1 服务端3.2 客户端 4、保持通信4.1 服务端4.2 客户端 五、基于UDP的网络编程1、单向通信1.…

深入理解深度学习——Transformer:解码器(Decoder)的多头注意力层(Multi-headAttention)

分类目录&#xff1a;《深入理解深度学习》总目录 相关文章&#xff1a; 注意力机制&#xff08;Attention Mechanism&#xff09;&#xff1a;基础知识 注意力机制&#xff08;Attention Mechanism&#xff09;&#xff1a;注意力汇聚与Nadaraya-Watson核回归 注意力机制&…

AI 绘画(1):生成一个图片的标准流程

文章目录 文章回顾感谢人员生成一个图片的标准流程前期准备&#xff0c;以文生图为例去C站下载你需要的绘画模型导入参数导入生成结果&#xff1f;可能是BUG事后处理 图生图如何高度贴合原图火柴人转角色 涂鸦局部重绘 Ai绘画公约 文章回顾 AI 绘画&#xff08;0&#xff09;&…

Fluent基于profile定义变量

1 概述 Profile中文可称呼为数据表&#xff0c;是Fluent中一种定义边界条件和体积域条件的方式。数据表主要用于将实验、第三方软件等其他数据源的物理场分布数据传递给Fluent。 Profile文件为CSV或PROF格式的文本文件&#xff0c;记录了物理场分布规律。 profile文件示意&…