paretolib: a python library for parameter synthesis · faster convergence than pre-dating similar...

36
Bâtiment IMAG, Université Grenoble Alpes 700, avenue centrale 38401 Saint Martin d’Hères, France http://www-verimag.imag.fr ParetoLib: A Python Library for Parameter Synthesis José-Ignacio Requeno Alexey Bakhirkin Nicolas Basset Oded Maler*

Upload: others

Post on 25-Jun-2020

7 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ParetoLib: A Python Library for Parameter Synthesis · Faster convergence than pre-dating similar algorithms Parallel computation in multi -core CPU’s Generic interface for domain

Bâtiment IMAG, Université Grenoble Alpes700, avenue centrale

38401 Saint Martin d’Hères, Francehttp://www-verimag.imag.fr

ParetoLib: A Python Library for Parameter

SynthesisJosé-Ignacio Requeno

Alexey BakhirkinNicolas Basset

Oded Maler*

Page 2: ParetoLib: A Python Library for Parameter Synthesis · Faster convergence than pre-dating similar algorithms Parallel computation in multi -core CPU’s Generic interface for domain

2/36

CONTEXT

Context

Page 3: ParetoLib: A Python Library for Parameter Synthesis · Faster convergence than pre-dating similar algorithms Parallel computation in multi -core CPU’s Generic interface for domain

3/36

CYBER-PHYSICAL SYSTEMS

© Antoine Heusse

■ Cyber-Physical Systems:► hardware/software interacting with the physical environment► computerized control systems► uncertain / changing environment (timing constraints)► large scale, distributed / networked

■ Criticality:► safety (absence of errors)► security (resistance to attacks)► certification

■ Validation & Verification:► hybrid: discrete + real-time systems

+

© Sancio83

Page 4: ParetoLib: A Python Library for Parameter Synthesis · Faster convergence than pre-dating similar algorithms Parallel computation in multi -core CPU’s Generic interface for domain

4/36

MONITORING

► Models are generally hybrid systems producing hybrid traces► Runtime verification (aka monitoring) analyses a single behavior at a

time

Page 5: ParetoLib: A Python Library for Parameter Synthesis · Faster convergence than pre-dating similar algorithms Parallel computation in multi -core CPU’s Generic interface for domain

5/36

MONITORING

► Models are generally hybrid systems producing hybrid traces► Runtime verification (aka monitoring) analyses a single behavior at a

time

Page 6: ParetoLib: A Python Library for Parameter Synthesis · Faster convergence than pre-dating similar algorithms Parallel computation in multi -core CPU’s Generic interface for domain

6/36

MOTIVATION

After 2s, the signal is never above 3

*Donzé, A.: On signal temporal logic. In: Legay, A., Bensalem, S. (eds.) RV 2013. LNCS, vol. 8174, pp. 382–383. Springer, Heidelberg (2013).

Page 7: ParetoLib: A Python Library for Parameter Synthesis · Faster convergence than pre-dating similar algorithms Parallel computation in multi -core CPU’s Generic interface for domain

7/36

STL EXAMPLE

After 2s, the signal is never above 3

Page 8: ParetoLib: A Python Library for Parameter Synthesis · Faster convergence than pre-dating similar algorithms Parallel computation in multi -core CPU’s Generic interface for domain

8/36

PROBLEM

Parameter Synthesis

Page 9: ParetoLib: A Python Library for Parameter Synthesis · Faster convergence than pre-dating similar algorithms Parallel computation in multi -core CPU’s Generic interface for domain

9/36

PARAMETER SYNTHESIS

Given a Parametric STL formula

𝝋𝝋(𝒑𝒑𝟏𝟏, … ,𝒑𝒑𝒏𝒏)

identify the valuations 𝒗𝒗(𝒑𝒑𝒊𝒊) such that

𝒙𝒙 ⊨ 𝝋𝝋(𝒗𝒗(𝒑𝒑𝟏𝟏), … ,𝒗𝒗(𝒑𝒑𝒏𝒏))

for each parameter 𝒑𝒑𝒊𝒊

Page 10: ParetoLib: A Python Library for Parameter Synthesis · Faster convergence than pre-dating similar algorithms Parallel computation in multi -core CPU’s Generic interface for domain

10/36

SIGNAL STABILIZATION

Always |x| > _ then after _ s, |x| settles under _ for _ s

Page 11: ParetoLib: A Python Library for Parameter Synthesis · Faster convergence than pre-dating similar algorithms Parallel computation in multi -core CPU’s Generic interface for domain

11/36

SIGNAL STABILIZATION

Always |x| > _ then after _ s, |x| settles under _ for _ s

Page 12: ParetoLib: A Python Library for Parameter Synthesis · Faster convergence than pre-dating similar algorithms Parallel computation in multi -core CPU’s Generic interface for domain

12/36

PARAMETER SYNTHESIS

■ Challenges► Multiple solutions: which one to chose?► Tightness implies to “optimize” the valuation 𝑣𝑣(𝑝𝑝𝑖𝑖) for each parameter 𝑝𝑝𝑖𝑖

■ The multi-criteria optimization problem can be greatly simplified if the formula is monotonic in each 𝒑𝒑𝒊𝒊► In case of monoticity, the border of the validity domain has the

structure of a Pareto front

Page 13: ParetoLib: A Python Library for Parameter Synthesis · Faster convergence than pre-dating similar algorithms Parallel computation in multi -core CPU’s Generic interface for domain

13/36

VALIDITY DOMAINS

► The validity domain 𝑿𝑿 of formula 𝝋𝝋 and signal 𝒙𝒙 is the set of valuations𝒗𝒗(𝒑𝒑𝒊𝒊) such that 𝒙𝒙 ⊨ 𝝋𝝋(𝒗𝒗(𝒑𝒑𝟏𝟏), … ,𝒗𝒗(𝒑𝒑𝒏𝒏)) for each parameter 𝒑𝒑𝒊𝒊

► In case of monoticity, the border of the validity domain has the structure of a Pareto front

𝑝𝑝1

𝑝𝑝2

Page 14: ParetoLib: A Python Library for Parameter Synthesis · Faster convergence than pre-dating similar algorithms Parallel computation in multi -core CPU’s Generic interface for domain

14/36

SIGNAL STABILIZATION

Always |x| > 0.5 then after 1s, |x| settles under 0.5 for 1.5 s

Page 15: ParetoLib: A Python Library for Parameter Synthesis · Faster convergence than pre-dating similar algorithms Parallel computation in multi -core CPU’s Generic interface for domain

15/36

PARETOLIB

ParetoLib

Page 16: ParetoLib: A Python Library for Parameter Synthesis · Faster convergence than pre-dating similar algorithms Parallel computation in multi -core CPU’s Generic interface for domain

16/36

PARETOLIB

■ Python library for solving multi-criteria optimization problems:► Faster convergence than pre-dating similar algorithms► Parallel computation in multi-core CPU’s► Generic interface for domain-specific decision procedures (Oracle)

■ Application to parameter synthesis:► Integration with Signal Temporal Logic runtime monitors► Experiments with parametric Signal Temporal Logic specifications

Page 17: ParetoLib: A Python Library for Parameter Synthesis · Faster convergence than pre-dating similar algorithms Parallel computation in multi -core CPU’s Generic interface for domain

17/36

PARETOLIB LIBRARY

Page 18: ParetoLib: A Python Library for Parameter Synthesis · Faster convergence than pre-dating similar algorithms Parallel computation in multi -core CPU’s Generic interface for domain

18/36

PARETOLIB LIBRARY

Page 19: ParetoLib: A Python Library for Parameter Synthesis · Faster convergence than pre-dating similar algorithms Parallel computation in multi -core CPU’s Generic interface for domain

19/36

PARETOLIB LIBRARY

Page 20: ParetoLib: A Python Library for Parameter Synthesis · Faster convergence than pre-dating similar algorithms Parallel computation in multi -core CPU’s Generic interface for domain

20/36

PARETOLIB LIBRARY

Page 21: ParetoLib: A Python Library for Parameter Synthesis · Faster convergence than pre-dating similar algorithms Parallel computation in multi -core CPU’s Generic interface for domain

21/36

PARETOLIB LIBRARY

Page 22: ParetoLib: A Python Library for Parameter Synthesis · Faster convergence than pre-dating similar algorithms Parallel computation in multi -core CPU’s Generic interface for domain

22/36

PARETOLIB LIBRARY

Page 23: ParetoLib: A Python Library for Parameter Synthesis · Faster convergence than pre-dating similar algorithms Parallel computation in multi -core CPU’s Generic interface for domain

23/36

PARETOLIB LIBRARY

Page 24: ParetoLib: A Python Library for Parameter Synthesis · Faster convergence than pre-dating similar algorithms Parallel computation in multi -core CPU’s Generic interface for domain

24/36

PARETOLIB LIBRARY

Page 25: ParetoLib: A Python Library for Parameter Synthesis · Faster convergence than pre-dating similar algorithms Parallel computation in multi -core CPU’s Generic interface for domain

25/36

PARETOLIB LIBRARY

Page 26: ParetoLib: A Python Library for Parameter Synthesis · Faster convergence than pre-dating similar algorithms Parallel computation in multi -core CPU’s Generic interface for domain

26/36

EXPERIMENTS

Experiments

Page 27: ParetoLib: A Python Library for Parameter Synthesis · Faster convergence than pre-dating similar algorithms Parallel computation in multi -core CPU’s Generic interface for domain

27/36

EXPERIMENTS

Always |x| > _ then after _ s, |x| settles under _ for _ s

Page 28: ParetoLib: A Python Library for Parameter Synthesis · Faster convergence than pre-dating similar algorithms Parallel computation in multi -core CPU’s Generic interface for domain

28/36

EXPERIMENTS

Always |x| > _ then after _ s, |x| settles under _ for _ s

Page 29: ParetoLib: A Python Library for Parameter Synthesis · Faster convergence than pre-dating similar algorithms Parallel computation in multi -core CPU’s Generic interface for domain

29/36

EXPERIMENTS

Always |x| > p2 then after p1 s, |x| settles under p2 indefinitely

𝜑𝜑 ≔ F 0,𝑝𝑝1 G 0,∞ (On 0,∞ Max 𝑥𝑥 − On 0,∞ Min 𝑥𝑥)) < 𝑝𝑝2

Page 30: ParetoLib: A Python Library for Parameter Synthesis · Faster convergence than pre-dating similar algorithms Parallel computation in multi -core CPU’s Generic interface for domain

30/36

EXPERIMENTS

Always |x| > p2 then after p1 s, |x| settles under p2 indefinitely

𝜑𝜑 ≔ F 0,𝑝𝑝1 G 0,∞ (On 0,∞ Max 𝑥𝑥 − On 0,∞ Min 𝑥𝑥)) < 𝑝𝑝2

Page 31: ParetoLib: A Python Library for Parameter Synthesis · Faster convergence than pre-dating similar algorithms Parallel computation in multi -core CPU’s Generic interface for domain

31/36

EXPERIMENTS

Always |x| > 0.25 then after 155 s, |x| settles under 0.25 indefinitely

𝜑𝜑 ≔ F 0,155 G 0,∞ (On 0,∞ Max 𝑥𝑥 − On 0,∞ Min 𝑥𝑥)) < 0.25

Page 32: ParetoLib: A Python Library for Parameter Synthesis · Faster convergence than pre-dating similar algorithms Parallel computation in multi -core CPU’s Generic interface for domain

32/36

EXPERIMENTS

Always |x| > 0.25 then after 155 s, |x| settles under 0.25 indefinitely

𝜑𝜑 ≔ F 0,155 G 0,∞ (On 0,∞ Max 𝑥𝑥 − On 0,∞ Min 𝑥𝑥)) < 0.25

Page 33: ParetoLib: A Python Library for Parameter Synthesis · Faster convergence than pre-dating similar algorithms Parallel computation in multi -core CPU’s Generic interface for domain

33/36

CONCLUSIONS

Conclusions

Page 34: ParetoLib: A Python Library for Parameter Synthesis · Faster convergence than pre-dating similar algorithms Parallel computation in multi -core CPU’s Generic interface for domain

34/36

CONCLUSIONS

■ Python library for solving multi-criteria optimization problems:► Faster convergence than pre-dating similar algorithms► Parallel computation in multi-core CPU’s► Generic interface for domain-specific decision procedures (Oracle)

■ Application to parameter synthesis:► Integration with Signal Temporal Logic runtime monitors► Experiments with parametric Signal Temporal Logic specifications

Page 35: ParetoLib: A Python Library for Parameter Synthesis · Faster convergence than pre-dating similar algorithms Parallel computation in multi -core CPU’s Generic interface for domain

35/36

FUTURE WORK

■ Python library for solving multi-criteria optimization problems:► Keep on improving the tool performance► Introduction of new features

■ Application to parameter synthesis:► Integration with new temporal logics

Page 36: ParetoLib: A Python Library for Parameter Synthesis · Faster convergence than pre-dating similar algorithms Parallel computation in multi -core CPU’s Generic interface for domain

36/36

THE END