【论文精读】时序逻辑推理之参数学习 Parametric Identification of Temporal Properties

前言:每天看文献总是不知道该写点什么好,不记录点东西读了就忘,就随时补充记录在博客里吧。(希望导师能够看到知道我没在摸鱼)

主要参考文献:
Asarin, E., Donzé, A., Maler, O., & Nickovic, D. (2012). Parametric Identification of Temporal Properties. In Runtime Verification (pp. 147–160).https://doi.org/10.1007/978-3-642-29860-8_12

概览

根据STL公式模板推理出满足dense-time real-valued信号的可行参数空间,即可行域的推导。文中提供了两种方法:

  1. 量词消去法 quantifier elimination
  2. 自适应(“暴力”)搜索法

流水账笔记

1 Introduction

首先对背景进行了介绍,系统设计中通常使用某种量化指标对系统的performance进行评估,及使用量化方法作用于动态系统的trace(有时候又称:信号、波形、轨迹)。因此设计评估方法的同时也反映了工程师对系统表现的期望。

本文进行相反的工作,已知信号来得到评价期望(specification)。即,用原文的话来说:

Given a PSTL formula, find the range of parameters that render the formula satisfied by a given set of traces.

2 Parametric Signal Temporal Logic

定义了几个重要的概念:

PSTL:

包含参数的STL

parameter valuation:

赋值,将PSTL变为STL

polarity π ( p , φ ) \pi(p,\varphi) π(p,φ) :

φ \varphi φ中的参数 p p p变大,信号是更容易满足 φ \varphi φ还是更难满足 φ \varphi φ,更容易为正

validity domain:

可行域,在这个空间中的参数都能够使信号满足公式 φ \varphi φ

3 Computing Validity Domains

介绍计算可行域的计算流程

3.1 Semilinear Validity Domains

这里为什么要定义一个semilinear的概念并不是太懂,原文是这样定义的:

A subset of the parameter space is semilinear if it can be written as a Boolean combination of linear inequalities on the corresponding variables.

即,半线性可行域可以用有关不同变量的不等式的线性组合表示。

接着证明了以下Proposition:

For every PSTL formula φ \varphi φ and piecewise-linear signal x x x, the validity domain D ( x , φ ) D(x,\varphi) D(x,φ) is semilinear.

可行域计算步骤
得到采样信号
采样点间进行线性插值
得到分段线性信号
分层计算

用以上方法得到的可行域是不等式的布尔运算组合(可以理解为在时间上分段的不等式),如

选取最优参数

得到可行域后,我们得到的是个超曲面(多维的区间),曲面上的点都是可用的参数组合。这时,我们会想要得到optimal valuation,由于前面的假设,每个参数的polarity都是非负即正,这里选择边界的点作为最优解。边界可以看做是Pareto front,所得到的参数是tightest。

Tightness vs. robustness

这就引出了时序逻辑的两个向对概念:tightness和robustness. 我是这样理解的:
Tightness可译为极限度,表示极性为正(负)的参数的参数减小(增大),信号更容易违反公式的程度。
Robustness可以为鲁棒度,表示参数的变化不容易导致公式被违反的程度。
可以理解为,越靠边界上的点,tightness越大,robustness越小;越靠里面的点,tightness越小,robustness越大。

3.2 Example

案例复现

案例中要求解的STL如下
φ = ⋄ [ 0 , s 2 ] □ [ 0 , s 1 ] ( x < p ) \varphi=\diamond_{[0,s_2]} \square_{[0,s_1]}(x<p) φ=[0,s2][0,s1](x<p)
给出的信号为有5个点,通过线性插值分成了四段:
x ( t ) = { 2 t 0 ≤ t < 2 8 − 2 t 2 ≤ t < 4 2 t − 8 4 ≤ t < 5 12 − 2 t 5 ≤ t < 6 x(t)=\left\{ \begin{aligned} 2t && 0\leq t \lt2 \\ 8-2t && 2 \leq t \lt 4 \\ 2t-8 && 4 \leq t \lt 5 \\ 12-2t && 5 \leq t \lt 6 \\ \end{aligned} \right. x(t)=2t82t2t8122t0t<22t<44t<55t<6信号x(t)
接着按照子公式的层级,从内向外进行可行域的迭代:
这是子公式 φ 1 = ( x < p ) \varphi_1=(x<p) φ1=(x<p)的可行域 V 1 V_1 V1, 可以通过 x ( t ) x(t) x(t)的表达式直接得出:
可行域V1
接下来怎么得到子公式 φ 2 \varphi_2 φ2的有效域 V 2 V_2 V2呢?首先,我们要处理掉 □ [ 0 , s 1 ] \square_{[0,s_1]} [0,s1]这个universal quantifier, 通过量词消去将其转化为全称量词“ ∀ \forall ”:
V 2 = d ( x , φ 2 ) = d ( x , □ [ 0 , s 1 ] φ 1 ) = { ( t , p , s 1 ) ∣ ∀ t ′ ∈ [ t , t + s 1 ] ∩ [ 0 , 6 ) , ( t ′ , p , s 1 ) ∈ V 1 } V_2=d(x,\varphi_2) \\ =d(x,\square_{[0,s_1]}\varphi_1) \\ =\{(t,p,s_1)|\forall t'\in [t,t+s_1] \cap [0,6),(t',p,s_1)\in V_1\} \\ V2=d(x,φ2)=d(x,[0,s1]φ1)={(t,p,s1)t[t,t+s1][0,6),(t,p,s1)V1}

可以通过画数轴来理解一下上式:数轴
对于[0,6]区间内的任意长度为 s 1 s_1 s1的区间,该区间内都存在一点 t ′ t' t,使得子公式 φ 1 \varphi_1 φ1成立。

复杂度分析

如果笔算此时的可行域 V 2 V_2 V2的话,我们会发现,由于可行域 V 1 V_1 V1分成了四段,那么 t t t可以取4种情况, t ′ t' t则可以取5种情况(可以大于6),组合下来就是20种情况。

计算的复杂度取决于分段的段数,也就是最初采样点的个数。如果有n+1个采样点,那么信号就被分成了n段,则需要分 n × ( n + 1 ) n\times(n+1) n×(n+1)中情况,复杂度直接爆炸。

同理,下文中的 V 3 V_3 V3也可以通过类似的方法用存在量词“ ∃ \exist ”消去always量词“ ⋄ \diamond ”:
V 3 = d ( x , ⋄ [ 0 , s 2 ] φ 2 ) = { ( t , p , s 1 , s 2 ) ∣ ∃ t ′ ∈ [ t , t + s 2 ] ∩ [ 0 , 6 ) , ( t ′ , p , s 1 , s 2 ) ∈ V 2 } V_3=d(x,\diamond_{[0,s_2]}\varphi_2)\\ =\{(t,p,s_1,s_2)|\exist t'\in[t,t+s_2]\cap[0,6), (t',p,s_1,s_2)\in V_2 \} V3=d(x,[0,s2]φ2)={(t,p,s1,s2)t[t,t+s2][0,6),(t,p,s1,s2)V2}

3.3 Experimental Results

问题理解

φ s t : □ ( ( x ≥ p ) → ⋄ [ 0 , s 2 ] □ [ 0 , s 1 ] ( x < p ) ) \varphi_{st}: \square((x\geq p) \rightarrow \diamond_{[0,s_2]} \square_{[0,s_1]}(x<p)) φst:((xp)[0,s2][0,s1](x<p))
上式反映的是稳定特性,要求信号一旦超过设定的阈值 p p p,则系统控制应该能够在 s 2 s_2 s2时间内把信号拉回阈值内,并且拉回去之后,信号能够稳定在阈值内至少 s 1 s_1 s1时间。

计算工具

这里使用了Redlog这个软件。因为数据量稍微大一点,手算就不现实了。

计算结果

得到的结果就是计算时间实在是太长了,才取128个点,第二级的计算时间就超过了10分钟(这里*是指10min time-out)。

这里提到了Fourier-Motzkin quantifier elimination,有空再补充吧。

表格中的description size的解释如下
The size of the solution corresponds to the number of linear inequalities used for its representation.
实验结果

4 Approximating Validity Domains

由于上面的方法实在是太慢了,于是又提出了一种基于智能搜索的算法。

下面这一句话怎么理解呢?

For every point ( u , v ) (u, v) (u,v) in the parameter space we can pose a query concerning its membership in D ( x , φ ) D(x, φ) D(x,φ) by constructing the STL formula φ ( u , v ) φ(u,v) φ(u,v) and checking whether x ⊨ φ ( u , v ) x\models φ(u,v) xφ(u,v).

用人话就是说:对于参数空间的每一个点,我们都可以带进STL公式试试看,这组参数是否在可行域 D ( x , φ ) D(x,\varphi) D(x,φ)内。

Monotonic Validity Domain

又出现了新名词——单调可行域
单调可行域定义
人话:我探究的变量是 P = ( p 1 , . . . , p i , . . . , p g + h ) P=(p_1,...,p_i,...,p_{g+h}) P=(p1,...,pi,...,pg+h),假设已经得到一组在可行域中的参数 V V V,如果这一组参数中有一个参数 v i v_i vi的极性为正(负),则增大(减小) v i v_i vi,这组参数仍然在可行域 V V V内。(忘记polarity的定义可以点击大纲回去看一看)

坐标变换

接下来,为了统一讨论,对于负极性的变量,通过“ p ′ = − p p'=-p p=p”坐标变换将所有参数的极性都统一为正极性,即 p p p增大,robustness增大。这样的话,可行域就是边界的上半部分的参数空间。

寻找Pareto前沿

从可行域外的点出发,尝试更大的参数组合,直到找到满足条件的最小值——临界面上的某个点。在多参数优化问题中,这个临界面被称为Pareto前沿,借一张图示意。
Pareto前沿
注意由于可行域的定义中取的是“ < \lt <”符号,所以这里得到的可行域是不包括边界的,需要找一个在可行域内无限接近于边界的点( ϵ \epsilon ϵ-approximation)。
搜索示意
从上图可以看出,分界是处于 D + D_+ D+ D − D_- D之前的,所以这里采取了类似我们中学学过的二分法逐步逼近边缘,因此我愿将这个方法成为暴力搜索法。(文中用的词是“adaptive”,但我没看出体现)

复杂度分析

容易想象,当变量一多,搜索的复杂度也是爆炸的,但是在编程上比第一种方法要容易实现的多。并且,至少不再制约于信号样本的规模了,应用范围就大了很多。

4.1 Experimental Results

这里使用BREACH对计算结果进行了评估,计算了公式的准确性。

关于BREACH,这篇文献进行了详细介绍:
Donzé A. (2010) Breach, A Toolbox for Verification and Parameter Synthesis of Hybrid Systems. In: Touili T., Cook B., Jackson P. (eds) Computer Aided Verification. CAV 2010. Lecture Notes in Computer Science, vol 6174. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-14295-6_17

得到的结果就是暴力搜索法速度快、可行性高,但是其准确性不如量词消去法。但是,可以通过增加搜索次数,牺牲计算时间来达到任意实际精度。

在这里插入图片描述
上面的实验结果颇具疑惑性,本来还以为是学习公式所画的时间,结果仔细一看是针对不同的input大小和公式模板,进行搜索算法运行一个循环(satisfaction query)赋值试错所花费的时间。

5 Discussion

后期工作

  • 增加公式模板复杂度以及input规模
  • 程序化、泛化量词消去法的算法
  • 参考下面两篇文章提高量词消去法的计算效率

[1] Monniaux, D.: A Quantifier Elimination Algorithm for Linear Real Arithmetic. In:
Cervesato, I., Veith, H., Voronkov, A. (eds.) LPAR 2008. LNCS (LNAI), vol. 5330, pp. 243–257. Springer, Heidelberg (2008)
[2] Monniaux, D.: Automatic modular abstractions for linear constraints. In: POPL 2009, pp.
140–151. ACM (2009)

  • 探讨polarity不连续、无单调性的情况
  • 探讨tightness和robustness间的trade-off
  • 公式模板的学习
  • 探索工程应用

思考与记录

作为时序逻辑学习与推理的元老级文献,这篇文章中提出的方法可以说是比较intuitive的,计算效率不能得到有效保障,阅读下一篇文献的目的应为找到更高效的计算方法。

高效的STL参数学习方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值