X Informatique MP 2013 — Corrigé

publicité
c Éditions H&K
Publié dans les Annales des Concours
1/17
X Informatique MP 2013 — Corrigé
Ce corrigé est proposé par Guillaume Batog (Professeur en CPGE) ; il a été relu
par Benjamin Monmege (ENS Cachan) et Vincent Puyhaubert (Professeur en CPGE).
En logique propositionnelle, on décrit la syntaxe des formules construites à partir
d’un ensemble de variables et à l’aide des connecteurs logiques ¬, ∨, ∧. Puis on définit
la sémantique de ces formules à l’aide d’une relation de satisfiabilité d’une valuation
des variables sur une formule. Dans la logique temporelle présentée dans ce problème,
on ajoute des connecteurs temporels X (juste après), G (désormais), F (un jour)
et U (jusqu’à) dont la sémantique est précisée par une relation de satisfiabilité d’un
mot u sur une formule ϕ. Ce sujet a pour objectif d’étudier les langages de mots
reconnus par une formule de cette logique. Il est composé de 4 parties, qu’il est
préférable de traiter dans l’ordre.
• La première partie, préliminaire, permet de se familiariser avec la logique temporelle. Elle doit être traitée assez rapidement mais avec rigueur car les questions, faciles en apparence, recèlent des cas particuliers cachés.
• Dans la deuxième partie, on transforme toute formule en une formule normalisée
(sans connecteurs F et G) qui lui est logiquement équivalente (c’est-à-dire ayant
le même langage de mots). Puis on écrit une fonction vérifiant si un mot satisfait
une formule normalisée. L’algorithmique sous-jacente consiste simplement à
parcourir des arbres représentant les formules. La dernière question, portant
sur une étude de complexité, est la plus ardue du problème.
• La troisième partie présente une méthode plus efficace pour vérifier si un mot
satisfait une formule. On montre en fin de partie qu’elle peut être vue comme
l’exécution d’un mot sur un automate, qui peut être construit à partir de
la formule.
• La quatrième partie débute par deux questions classiques sur les automates.
Elles apportent une aide précieuse pour écrire ensuite une fonction décidant si
une formule est satisfiable (c’est-à-dire si son langage de mots est non vide).
Pour traiter cette question, il est nécessaire d’avoir bien compris les ressorts de
la troisième partie. Enfin, la dernière question, indépendante de tout le reste,
propose un exemple de langage rationnel qui n’est pas un langage de mots
satisfaisant une formule de la logique temporelle.
Outre que les notions abordées sont nouvelles aux concours, la difficulté de ce
sujet tient au fait qu’il est impossible de traiter les questions de programmation
sans avoir réussi à répondre aux questions théoriques qui les précèdent, excepté pour
les fonctions faciles qui ne rapportaient que peu de points. L’intrication (naturelle)
entre logique et automates en fait un sujet intéressant pour qui souhaite avoir un
aperçu d’un domaine d’étude de l’informatique théorique appliquée à la vérification
de programmes.
Téléchargé gratuitement sur www.Doc-Solus.fr .
c Éditions H&K
Publié dans les Annales des Concours
2/17
Indications
Partie I
3 Rappelons que la formule VRAI n’est vraie que pour les positions de mot.
5 Une lettre b d’un tel mot est toujours suivie de la lettre a sauf s’il s’agit de la
dernière lettre du mot.
7 Écrire la sémantique de u |= ϕUψ et distinguer les cas j = 0 et j 6= 0 puis i = 0
et i 6= 0 dans la définition donnée par l’énoncé. Le but est de faire apparaître
(u, 1) |= ϕUψ.
Partie II
9 Utiliser l’opérateur U.
10 Trouver un lien entre F et G
11 La fonction veriteN s’appuie sur les règles sémantiques de l’énoncé et sur l’équivalence logique de la question 7.
Montrer la terminaison de la fonction par récurrence forte sur (n, k), élément
de N∗ × N muni de l’ordre lexicographique, où n désigne la taille de la formule en
argument et k le nombre de lettres du mot à partir de la position donnée.
Pour obtenir la complexité de la fonction, poser T(ϕ, k) le nombre d’appels récursifs pour une formule ϕ, un mot u et une position |u| − k puis établir l’inégalité
de récurrence
i
k h
P
T(ϕ, k) 6 2 +
T(ϕ1 , j) + T(ϕ2 , j)
j=1
où ϕ1 et ϕ2 sont les sous-formules (éventuellement vides) du connecteur à la
k
racine de ϕ. Enfin, montrer que T(ϕ, k) 6 λk |ϕ| avec λk indépendant de ϕ
à déterminer.
Partie III
13 Démontrer la propriété par induction structurelle sur la formule ϕ.
14 Effectuer la mise à jour de bas en haut en suivant les règles obtenues au cours de
la question 13.
17 Considérer maj comme la fonction de transition d’un automate.
Partie IV
20 Montrer que le plus petit mot reconnu par un automate à n états (reconnaissant
un langage non vide) est de taille au plus n − 1.
21 Implémenter l’algorithme de la question 19 en utilisant l’automate décrit à la
question 17.
22 Démontrer par induction structurelle sur ϕ que toute formule ϕ appartient à un
ensemble V(N) ou F(N) avec N ∈ N∗ où
V(N) = {ϕ | ∀ n > N an |= ϕ}
et
F(N) = {ϕ | ∀ n > N an 6|= ϕ}
Téléchargé gratuitement sur www.Doc-Solus.fr .
c Éditions H&K
Publié dans les Annales des Concours
3/17
I. Préliminaires
1 Notons P(x) la propriété de la question (x).
• P(a) est vraie car le mot u n’est constitué que des lettres a et b à partir de la
position 4.
• P(b) est fausse car elle équivaut à la propriété (u, 3) |= G(pa ∨ pc ) qui est
fausse puisque a4 = b ∈
/ {a, c}.
• P(c) est vraie car P(a) est vraie.
• P(d) est vraie car a3 = c et toutes les lettres précédant a3 sont a ou b.
2 Un mot u possède une lettre x si et seulement si u |= Fpx . Ainsi,
Le mot u contient un a suivi plus tard d’un b si et seulement si u |= F(pa ∧ Fpb ).
D’autres formules peuvent être trouvées pour cette question et les suivantes.
Elles sont « logiquement équivalentes » entre elles (cf. question 7). Celle proposée ici a l’avantage de la concision.
3 Excepté dans le cas où l’entier i ne correspond pas à une position du mot u,
la formule VRAI est toujours satisfaite par (u, i), d’où
i = |u| − 1
i = |u| − 1
Ainsi,
et i + 1 > |u|
⇐⇒
i 6 |u| − 1
⇐⇒
(u, i) |= VRAI et (u, i + 1) 6|= VRAI
(u, i) |= VRAI ∧ ¬X(VRAI)
⇐⇒
Fin = VRAI ∧ ¬X(VRAI)
4 Puisque le mot u satisfait la formule Fin uniquement à la dernière position,
u se termine par un a si et seulement si u |= F(pa ∧ Fin).
5 Décrivons un mot u de (ab)+ :
• la première lettre est un a, soit u |= pa ;
• la dernière lettre est un b, soit u |= F(pb ∧ Fin) (question 4) ;
• pour tout i tel que 0 6 i 6 |u| − 1,
◦ ai vaut a ou b, soit (u, i) |= pa ∨ pb ;
◦ si ai = a alors ai+1 = b, soit (u, i) |= (¬pa ) ∨ Xpb ;
◦ si ai = b et ai n’est pas la dernière lettre de u, alors ai+1 = a, soit
(u, i) |= ¬(pb ∧ ¬Fin) ∨ Xpa .
Finalement, u ∈ (ab)+ si et seulement si u |= ϕ avec
ϕ = pa ∧ F(pb ∧ Fin) ∧ G (pa ∨ pb ) ∧ (¬pa ) ∨ Xpb ∧ (¬pb ) ∨ Fin ∨ Xpa
Téléchargé gratuitement sur www.Doc-Solus.fr .
c Éditions H&K
4/17
Publié dans les Annales des Concours
6 Un mot u satisfait la formule ϕ si, et seulement si, il existe j 6 |u|−1 (opérateur F)
tel que :
• la lettre aj est un a (formule pa ) ;
• le suffixe aj+1 . . . a|u|−1 ne contient pas la lettre a (formule X(G(¬pa ))) ;
• le suffixe aj . . . a|u|−1 contient le motif bc (formule F(pb ∧ Xpc )).
L’automate suivant reconnaît le langage Lϕ :
a, b, c
b, c
a
b, c
b
c
7 Soit u un mot de longueur n ∈ N. Montrons la propriété
u |= ϕUψ
⇐⇒
u |= ψ ∨ ϕ ∧ (X(ϕUψ))
Puisque le mot vide ne satisfait aucune formule, cette propriété est vraie pour le mot
vide. Considérons un mot u non vide (n > 1). Par définition,
u |= ϕUψ
⇐⇒
∃j 6 n
(u, j) |= ψ
et ∀ i < j
(u, i) |= ϕ
Distinguons les cas j = 0 et j > 1 :
u |= ϕUψ
⇐⇒
(u, 0) |= ψ
ou
∃1 6 j 6 n
(u, j) |= ψ
et
∀i < j
Distinguons les cas i = 0 et i > 1 :
∀i < j
d’où
(u, i) |= ϕ
u |= ϕUψ
(u, i) |= ϕ
(u, 0) |= ϕ et ∀ 1 6 i < j (u, i) |= ϕ
u |= ψ ou
u |= ϕ et ∃ 1 6 j 6 n
(u, j) |= ψ et ∀ 1 6 i < j (u, i) |= ϕ
⇐⇒
⇐⇒
On reconnaît la sémantique de ϕUψ à partir de la position 1 du mot u :
u |= ϕUψ ⇐⇒ u |= ψ ou
u |= ϕ et (u, 1) |= ϕUψ
soit
u |= ϕUψ ⇐⇒ u |= ψ ∨ ϕ ∧ (X(ϕUψ))
pour tout mot u. Autrement dit,
ϕUψ ≡ ψ ∨ ϕ ∧ (X(ϕUψ))
Une paraphrase du type « un mot u satisfait ϕUψ si, et seulement si, il satisfait ψ ou s’il satisfait ϕ et si le suffixe de u obtenu en supprimant sa
première lettre satisfait ϕUψ » est une justification sans doute insuffisante
à un concours comme l’X.
Téléchargé gratuitement sur www.Doc-Solus.fr .
Téléchargement