• Aucun résultat trouvé

Procédures de décision {

N/A
N/A
Protected

Academic year: 2022

Partager "Procédures de décision {"

Copied!
7
0
0

Texte intégral

(1)

Procédures de décision

Une histoire de mots !

Lorsqu’on travaille avec LTL, 𝐒 est vu comme un ensemble d’exécutions étiquetées:

ρ : q0 → q1 → … + ℓ: Q → 2AP 𝐒 = (Q, →, q0, ℓ)

∈ Qω

{

En fait, on n’utilise les noms des états que pour utiliser la fonction d’étiquetage L et obtenir les propositions atomiques associées à chaque état de ρ.

ρ + ℓ peuvent être vues comme une « trace », un mot infini sur l’alphabet 2AP.

Ex:

ρ: q0 → q1 → q0 → q1 → q0 → q1 → … et L(q0)={a}, L(q1)={b,c}

La trace est le mot {a}{b,c}{a}{b,c}{a}{b,c}{a}{b,c}{a}{b,c}{a}{b,c}…

Et les formules de LTL s’interprète presque de la même manière:

ρ ⊨ P ⟺ P ∈ ρ(0) remplace ρ ⊨ P ⟺ P ∈ L(ρ(0))

Une histoire de mots !

Donc 𝐒 est vu un ensemble de mots.

Donc 𝐒 est vu comme un langage → Traces(𝐒)

Exec: q0.q1ω ∪ q0.q2ω ∪ q0.q2+.q1ω

Langage des traces:

{a,b}.{b}ω ∪ {a,b}.{a}ω ∪ {a,b}.{a}+.{b}ω

q0

{a,b}

{b}

{a}

q1

q2

𝐒

Traces(𝐒) = 𝓛(𝒜𝐒)

{a,b} {b}

{a}

{a,b}

{a}

Un automate de mots infinis 𝒜𝐒: 𝐒 = (Q, →, q0, ℓ)

Une histoire de mots !

Une formule φ de LTL décrit une propriété le long d’un mot infini sur l’alphabet 2AP.

Les modèles de φ de LTL sont l’ensemble des mots où φ est vraie.

On note mod(φ) les modèles de φ de LTL.

mod(φ) est donc aussi un langage !

Donc mod(φ) = les mots infinis sur l’alphabet 2AP vérifiant φ.

(2)

Problèmes de vérification

Model-checking:

input: un modèle (STE) 𝐒 et une formule φ output: oui ssi 𝐒 ⊨ φ.

Satisfaisabilité:

input: une formule φ

output: oui ssi il existe un modèle 𝐒 t.q. 𝐒 ⊨ φ.

(+ 𝐒 si il existe !))

Synthèse de contrôleur:

input: un modèle partiel 𝐒 une formule φ output: un « controleur » 𝑪 t.q. 𝐒x𝑪 ⊨ φ.

Problèmes de vérification pour LTL

Quel lien entre Traces(𝐒) et mod(φ) ? 1) Traces(𝐒) ⊆ mod(φ)

2) Traces(𝐒) ∩ mod(φ) = ∅ 3) sinon

𝐒 ⊨ φ 𝐒 ⊨ ¬ φ

𝐒 ⊭ φ , 𝐒 ⊭ ¬φ

Rappel: 𝐒 ⊨ φ ⟺ ( ρ ⊨ φ ∀ ρ ∈ Exec(𝐒) ) mod(¬φ) = (2

AP

)

ω

\ mod(φ)

(2AP)ω = ens. de tous les mots infinis sur l’alphabet 2AP.

Construire les modèles de φ

Etant donnée φ, on sait construire un automate 𝒜φ qui reconnait les modèles de φ !

mod(φ) = 𝓛(𝒜φ)

Pourquoi chercher des automates ? Parce que nous disposons de nombreux outils pour les manipuler (union, intersection,

complément, inclusion, etc.) !

Satisfaisabilité de LTL

Comment tester si il existe un modèle pour φ ?

→ Tester mod(φ) est non vide.

C’est-à-dire tester si 𝓛(𝒜φ) ≠ ∅ ?

(3)

Model-checking de LTL

Comment tester si 𝐒 ⊨ φ ? Tester Traces(𝐒) ⊆ mod(φ) ?

Ou plutôt tester Traces(𝐒) ∩ mod(¬φ) = ∅ (donc tester si 𝓛(𝒜𝐒) ∩ 𝓛(𝒜¬φ) = ∅ )

car tester le vide est plus simple que tester l‘inclusion de deux langages, et faire l’intersection est facile.

C’est-à-dire tester si 𝓛(𝒜𝐒) ⊆ 𝓛(𝒜φ) ?

Satisfaisabilité et Model-checking de LTL

Les deux problèmes se ramènent donc aux deux questions suivantes:

- 𝓛(𝒜

φ

) ≠ ∅

- 𝓛(𝒜

𝐒

) ∩ 𝓛(𝒜

¬φ

) = ∅ ?

Tout repose sur les deux automates 𝒜

𝐒

et 𝒜

φ

(ou 𝒜

¬φ

).

𝒜

𝐒

ne pose pas de problème: il est facile à construire à partir de 𝐒.

Et 𝒜

φ

?

Construction de 𝒜

φ

- exemple φ = G (a F b)

{a,b}(a,b}{a,¬b}{a,¬b}{a,¬b}{¬a,¬b}{¬a,b}…

{¬a,-}

{-,b}

{a,¬b}

{-,¬b}

q

s

{-,b}

Objectif !

{ } {a,b} {b}

{a}

{a}, { }

q

s

{a,b}

{b}

ou

Construction de 𝒜

φ

- 1

Etant donnée une formule de LTL φ, on veut construire un automate 𝒜

φ

qui reconnait le langage mod(φ).

𝒜φ = (Q,q0,→,𝓕) sera un automate de Büchi généralisé.

kesako ?

Un automate de Büchi reconnait des mots infinis: un mot w est accepté si il existe un chemin dans l’automate dont l’étiquetage correspond à w et si le chemin passe infiniment souvent par un des états acceptants (un sous-ensemble de Q).

Dans un automate de Büchi généralisé, les états acceptants sont donnés par un ensemble de sou-ensemble 𝓕={𝓕1,…,𝓕k}: un

« bon » chemin doit passer infiniment souvent par un des états de chaque 𝓕i

(4)

Construction de 𝒜

φ

- 2

𝒜

φ

= (Q,Q

0

,→,𝓕)

Chaque état de Q sera associé (défini) par un sous-ensemble de sous-formules de φ.

idée de la construction: depuis un état associé à l’ensemble de sous-formules {𝜓1,…,𝜓n}, on reconnait des mots vérifiants chacune de ses sous-formules.

Comme 𝒜φ doit reconnaître les modèles de φ, l’ensemble des états initiaux Q0 contiendra tous les états de Q contenant la sous-formule φ…

Construction de 𝒜

φ

- 3

𝒜

φ

= (Q,Q

0

,→,𝓕)

Comment définir les états Q ? Quels ensembles de sous-formules de φ choisir ?

On va choisir des sous-ensembles cohérents (logiquement), maximaux et conforme à la sémantique de LTL.

Soit Sφ l’ensemble des sous-formules de φ et leur négation.

Exemple:

φ = a U (X b)

Sφ = {a, ¬a, b, ¬b, X b, ¬X b, a U (X b), ¬(a U (X b)) }

Construction de 𝒜

φ

- 4

𝒜

φ

= (Q,Q

0

,→,𝓕)

Comment définir les états Q ?

Les états q sont des sous-ensembles cohérents, maximaux et conforme à la sémantique de LTL…

Cohérents:

Si 𝜓1∧𝜓2 ∈ q, alors 𝜓1 et 𝜓2 sont dans q, si 𝜓1∨𝜓2 ∈ q, alors 𝜓1 ou 𝜓2

sont dans q, si 𝜓∈ q, alors ¬𝜓∉q.

Maximaux:

Dans tout état, pour chaque sous-formule 𝜓, on met soit 𝜓, soit ¬𝜓.

‣Conforme à la sémantique de LTL:

Dans tout état q, si la sous-formule 𝜓1U𝜓2 est présente, alors on a soit 𝜓1, soit 𝜓2 dans l’état q.

Si 𝜓1U𝜓2 ∈ Sφ, alors si 𝜓2 est dans un état q, 𝜓1U𝜓2 ∈ q Et les états initiaux sont ceux contenant φ.

Construction de 𝒜

φ

- 5

𝒜

φ

= (Q,Q

0

,→,𝓕)

Comment définir les états Q ?

Ce sont des sous-ensembles cohérents, maximaux et conforme à la sémantique de LTL…

Exemple:

φ = a U (b ∧ c)

Sφ = {a, ¬a, b, ¬b, c, ¬c, b∧c,¬(b∧c), a U (b∧c), ¬(a U (b∧c)) } q={a,¬b,c,¬(b∧ c),a U (b∧c)} ou

q’={a,¬b,c,¬(b∧ c),¬ (a U (b∧c))} sont ok ! Mais r={a,b,¬b,c,¬(b∧ c),a U (b∧c)}, r’= {a,b,c,¬(b∧c),a U (b∧c)} ou

r’’= {a,b,c,(b∧c),¬(a U (b∧c))} ne sont pas bien formés !

(5)

Construction de 𝒜

φ

- 6

𝒜

φ

= (Q,Q

0

,→,𝓕)

Comment définir les transitions de l’automate 𝒜φ ?

Exemple:

φ = a U (b ∧ c)

Sφ = {a, ¬a, b, ¬b, c, ¬c, b∧c,¬(b∧c), a U (b∧c), ¬(a U (b∧c)) } q={a,¬b,c,¬(b∧ c),a U (b∧c)}

q’={¬a,b,c,(b∧ c),(a U (b∧c))}

On a : q —- {a,c} ——> q’

On met une transition (q,σ,q’) ∈ Qx2APxQ si et seulement si:

-

σ = q ∩ AP (ie les prop. atomiques de q)

-

∀ X𝜓 ∈ Sφ, X𝜓 ∈ q ⟺ 𝜓 ∈ q’

-

∀ 𝜓1 U 𝜓2 ∈ Sφ, 𝜓1 U 𝜓2 ∈q ⟺ ( 𝜓2 ∈q ∨ (𝜓1 ∈q ∧ 𝜓1 U 𝜓2 ∈q’))

Construction de 𝒜

φ

- 7

𝒜

φ

= (Q,Q

0

,→,𝓕)

Comment définir les conditions d’acceptation 𝓕 ?

Pour chaque sous-formule 𝜓1U𝜓2, on a un ensemble 𝓕𝜓1U𝜓2 défini par:

𝓕

𝜓1U𝜓2

= { q ∈ Q | 𝜓

1

U𝜓

2

∉ q ∨ 𝜓

2

∈ q }

idée: un état contenant 𝜓1U𝜓2 doit reconnaître les modèles de 𝜓1U𝜓2 et donc visiter un jour un état contenant 𝜓2.

Pour en être sûr, on impose de visiter infiniment souvent des états contenant 𝜓2… ou infiniment souvent des états contenant ¬ 𝜓1U𝜓2… Dans les deux cas, on est sûr de ne pas attendre indéfiniment la satisfaction de 𝜓2.

𝒜

φ

et les modèles de φ

𝒜

φ

= (Q,Q

0

,→,𝓕)

Prenons un chemin dans 𝒜φ q1 → q2 → q3 → q4 → … étiqueté par le mot σ1 σ2 σ3 σ4 … de (2AP)ω

Alors on a:

∀ 𝜓∈q

i

, σ

i

σ

i+1

σ

i+2

… ⊨ 𝜓

Construction de 𝒜

φ

- exemple

𝒜

φ

= (Q,Q

0

,→,𝓕) φ = X a

S

φ

= {a, ¬a, Xa, ¬Xa } q

1

= {a,Xa},

q

2

= {a,¬Xa}

q

3

= {¬a,Xa}

q

4

= {¬a,¬Xa}

{a}{a}{¬a}… {¬a}{a}{a}… {a}{a}{a}…

{a,¬Xa}

{¬a,Xa} {¬a,¬Xa}

a

¬a a

¬a a

¬a a

¬a

{a,Xa}

(6)

Construction de 𝒜

φ

- exemple

𝒜

φ

= (Q,Q

0

,→,𝓕) φ = a U b

S

φ

= {a, ¬a, b, ¬b, aUb, ¬aUb } q

1

= {a,b,aUb},

q

2

= {¬a, b,aUb}

q

3

= {a,¬b, aUb}

q

4

= {¬a,¬b,¬aUb } q

5

= {a,¬b,¬aUb }

{a,¬b}{a,¬b}{a,b}…

état acceptant

a,b

a,¬b

¬a,¬b a,¬b

¬a,b

{a,b,aUb}

{¬a,b,aUb}

{a,¬b,aUb}

{¬a,¬b,¬aUb}

{a,¬b,¬aUb }

Construction de 𝒜

φ

- exemple

𝒜

φ

= (Q,Q

0

,→,𝓕) φ = G (a F b)

S

φ

= {a, ¬a, b, ¬b, Fb, ¬Fb, ¬a∨Fb, a∧¬Fb, φ,¬φ}

q

1

= {a,b,Fb,a

Fb,φ},

q

2

= {a,b,Fb,a

Fb,¬φ},

q

3

= {a,¬b,Fb,a

Fb,φ},

q

4

= {a,¬b,Fb,a

Fb,¬φ},

q

5

= {a,¬b,¬Fb,¬(a

Fb),¬φ},

q

6

= {¬a,b,Fb,a

Fb,φ},

q

7

= {¬a,b,Fb,a

Fb,¬φ},

q

8

= {¬a,¬b,Fb,a

Fb,φ},

q

9

= {¬a,¬b,Fb,a

Fb,¬φ},

q

10

= {¬a,¬b,¬Fb,a

Fb,φ},

q

11

= {¬a,¬b,¬Fb,a

Fb,¬φ}.

i : états initiaux f : états acceptant if

if

if f

f f

f i

i

Construction de 𝒜

φ

- exemple

𝒜

φ

= (Q,Q

0

,→,𝓕) φ = G (a F b)

On remarque ici que on ne peut jamais aller d’un état contenant φ à un état contenant ¬φ…

q

1

q

2

q

3

q

4

q

5

q

6

q

7

q

8

q

9

q

10

q

11

?

Construction de 𝒜

φ

- exemple

𝒜

φ

= (Q,Q

0

,→,𝓕) φ = G (a F b)

q1 = {a,b,Fb,a Fb,φ}, q3 = {a,¬b,Fb,a Fb,φ}, q6 = {¬a,b,Fb,a Fb,φ}, q8 = {¬a,¬b,Fb,a Fb,φ}, q10 = {¬a,¬b,¬Fb,a Fb,φ},

q

8

q

3

q

1

q

6

q

10

{a,b} {a,¬b}

{¬a,¬b}

{¬a,b} {¬a,¬b}

attente d’un b

état acceptant

{a,b}{a,b}{a,¬b}{a,¬b}{a,¬b}{¬a,¬b}{¬a,b}…

(7)

Construction de 𝒜

φ

- exemple φ = G (a F b)

{a,b}(a,b}{a,¬b}{a,¬b}{a,¬b}{¬a,¬b}{¬a,b}…

{¬a,-}

{-,b}

{¬a,¬b}

{a,¬b}

{-,¬b}

{¬a,¬b} q

s

r {-,b}

(version simplifiée)

Problèmes de vérification pour LTL

1)

𝐒 ⊨ φ ? Traces(𝐒) ⊆ mod(φ)

𝓛(𝒜

𝐒

) ∩ 𝓛(𝒜

¬φ

) = ∅ ?

2) 𝐒 ⊨ ¬ φ ? Traces(𝐒) ∩ mod(φ) = ∅

𝓛(𝒜

𝐒

) ∩ 𝓛(𝒜

φ

) = ∅ ?

3) Est-ce que φ est satisfaisable ?

𝓛(𝒜

φ

) ≠ ∅

Problèmes de vérification pour LTL

Tester si 𝐒 ⊨ φ ou si φ est satisfaisable sont des problèmes PSPACE-complet.

La taille de l’automate 𝒜

φ

est exponentiel dans |φ| !

Ces problèmes sont donc difficiles !

Références

Documents relatifs

Le compl´ ement d’un langage NP-complet n’est pas toujours dans NP (pensez CLIQUE: on peut v´ erifier en temps polynomial que le graphe G poss` ede une clique de taille au moins

Un premier morphisme sans carré d'un alphabet à A lettres sur un alphabet à 3 lettres a été donné par Bean, Ehrenfeucht et Me Nulty [1]. Voir aussi

Si il y a un prochain bond pour cette FEC et si il y a un bloc de contrôle aval pour cette FEC dont l’état est 'ÉTABLI', créer un nouveau bloc de contrôle amont et

Réalise le deuxième montage devant le professeur puis termine seul le troisième montage observation (comment brille la lampe 1 lorsqu’on ajoute un puis deux récepteurs ?) :.

Comme on l’a vu dans les exemples des normes classiques sur R d , on peut obtenir le r´ esultat de ce th´ eor` eme “` a la main” dans la plupart des cas concrets, mais c’est

‰ Une série de sélecteurs pour mettre en communication les opérateurs logiques, les entrées, les sorties et les mémoires. UNITE

Beauquier, Berstel,

Le problème de séparation par automate consiste à chercher l’existence, pour des langages S et T finis et un entier k donnés, un automate fini déterministe à k états qui accepte