Automates à réels - Département informatique de l`ENS Cachan

publicité
Automates à réels
Définitions & notations.
Soit A un ensemble fini. On note A⋆ l'ensemble des mots finis (ou suites finies) sur A et ε le
mot vide. Soient u, v ∈ A∗ : on note uv le mot obtenu en concaténant u et v. Étant donné un mot
u et un entier n on note un le mot obtenu en concaténant n copies de u (avec la convention que
u0 = ε).
Un automate à réels est un automate comme un autre, mais disposant d'un compteur, au départ
initialisé à 0. Chaque transition de l'automate peut décider de changer la valeur du compteur, en
lui ajoutant une valeur λ. L'automate ne connaît à aucun moment la valeur du compteur mais peut
seulement la modifier.
Formellement, un automate à réels est un quintuplet A = (Q, Σ, q0 , QF , T ) où
— Q est un ensemble fini, dit ensemble d'états ; q0 ∈ Q est appelé état initial ; QF ⊆ Q est
l'ensemble d'états finaux ;
— Σ est l'alphabet fini ;
— T ⊆ Q × (Σ ∪ {ε}) × Q × R est un ensemble fini appelé ensemble des transitions (notez
que l'on s'autorise des transitions silencieuses étiquetées par ε).
Un premier exemple d'automate à réels est représenté ci-dessous. L'état initial q0 est repéré par
une flèche entrante et les états finaux sont doublement entourés.
a, −π
a, π
.
c, 0
b, 17
Une configuration est un élément de Q × R. La configuration initiale de l'automate A est (q0 , 0).
Les configurations finales sont celles de la forme (q, 0) avec q ∈ QF .
a
On dit que (q, x) −
→ (q ′ , x′ ) s'il existe dans T une transition de la forme (q, a, q ′ , λ) avec
x′ = x + λ.
w
On dit que (q, x) −
→ (q ′ , x′ ) si l'on peut écrire w = w1 . . . wk avec wi ∈ Σ ∪ {ε} et s'il
existe q1 . . . qk+1 et x1 . . . xk+1 tels que q1 = q, x1 = x, qk+1 = q ′ , xk+1 = x′ et pour tout i,
wi
(qi , xi ) −→
(qi+1 , xi+1 ).
Enfin, le langage reconnu par A est défini par
w
L(A) = {w | ∃q ∈ QF , (q0 , 0) −
→ (q, 0)}
On dit que L est R-reconnaissable s'il existe un automate à réels tel que L(A) = L.
Question 1.
(a) Vérifiez sur l'exemple que aacaa ∈ L(A) mais que aacab ̸∈ L(A) et abcaa ̸∈ L(A).
(b) Décrire L(A).
Si w est un mot on note |w|a le nombre d'occurrences de a dans w.
Question 2.
Construire pour chacun des langages suivants un automate qui le reconnaît :
L1 = {w ∈ {a, b}⋆ : |w|a = |w|b }
L2 = {w ∈ {a, b, c}⋆ : |w|a = |w|b = |w|c }
L3 = {a, b}⋆ \ L1 = {w ∈ {a, b}⋆ : |w|a ̸= |w|b }
Question 3.
Montrer que les langages R-reconnaissables sont stables par union.
Un automate A est dit déterministe s'il ne contient aucune transition étiquetée par ε et que pour
toute lettre a et tout état q, il existe au plus un q ′ et un λ tel que (q, a, q ′ , λ) ∈ T .
Question 4. Montrer que le langage L4 ci-dessous est R-reconnaissable, mais pas par un automate
déterministe. On pourra raisonner par l'absurde et raisonner sur le mot an bn cn où n est plus grand
que le nombre d'états d'un automate déterministe reconnaissant L4 .
L4 = {w ∈ {a, b, c}⋆ : |w|a = |w|b ou |w|b = |w|c }
Question 5. Montrer que le complémentaire de L1 est R-reconnaissable mais qu'il n'est pas reconnaissable par un automate déterministe.
Si A est un automate, on appelle dim A la dimension du Q-espace vectoriel engendré par tous les
coefficients λ apparaissant dans T . Dans l'exemple, on a donc dim A = 2.
Question 6. Montrer que tout automate déterministe A reconnaissant L2 et qui a un seul état
vérifie dim A ≥ 2.
Question 7.
Montrer que les langages R-reconnaissables sont stables par intersection.
Question 8. Montrer que si L et son complémentaire sont reconnus par un automate déterministe,
alors L est rationnel.
Correction
Question 1.
L(A) = {an can |n ≥ 0}.
Question 2. Le deuxième automate utilise le fait que π et 1 sont linéairement indépendants. Dans
le troisième automate, l'état du milieu est initial. .
Indication. Pour L3 , commencer par faire le langage des mots qui ont plus de a que de b
a, π
a, π + 1
.
.
b, −π
c, −1
b, 1
a, 0
Question 3.
a, 1
ε, 1
a, −1
b, −π
.
ε, 1
b, −1
b, 0
Utiliser la construction classique avec ε-transitions
Question 4. Il est R reconnaissable par la question précédente. Prenons un automate déterministe
qui le reconnaît.
.
Indication. Partir du mot an bn cn où n est plus grand que le nombre d'états de l'automate
Ce mot est accepté. Comme n est grand, on boucle dans les b, il existe donc i et j différents
(avec i < j < n) tels que an bi et an bj conduisent au même état. On ajoute pour passer de an bi
à an bj une certaine quantité λb . Comme les mot an bi cn et an bj cn sont tous les deux acceptés on a
nécessairement λb = 0 (c'est là qu'on utilise vraiment le déterminisme). De même, lors de l'exécution, on boucle aussi dans les c, donc il existe i′ et j ′ différents (avec i′ < j ′ < n) tels que la lecture
′
′
de an bn ci et an bn cj nous conduisent dans le même état. Pour la même raison on a λc = 0. Mais
′
′
alors le mot an bn−(j−i) cn+(j −i ) est aussi accepté ce qui conduit à une contradiction.
Question 5. Le complémentaire de L1 est L3 .
On raisonne par l'absurde et on considère le mot an b2n où n = (k + 5)! (par exemple) où k
dénote le nombre d'états d'un automate déterministe reconnaissant le complémentaire de L1 . Et
on utilise le même raisonnement qu'à la question précédente on montre l'existence de deux entiers
p, q < k tel que an+pi b2n+qj ∈ L3 pour tous couples (i, j).
Mais en prenant i et j tels que pi = n + qj, on a une contradiction. (prendre j = p et voir que
le terme de droite est bien divisible par p, donc qu'on peut définir i).
Question 6. Comme il n'y a qu'un seul état, la preuve est simple. Quand on lit an bk cl , le réel
obtenu à la fin est nλa + kλb + cλc et il doit vérifier :
— Pour tout n , nλa + nλb + nλc = 0
— Pour tout triplet i, j, k non simultanément égaux, iλa + jλb + kλc ̸= 0
En particulier, λa + λb + λc = 0 et aucun des trois λi n'est nul. Sans perte de généralités disons
que λa > 0 et λb < 0. Mais comme dim A < 2, λa et λb sont liés, par exemple par pλa = −qλb
avec p, q positifs distincts. Mais alors pλa + qλb + 0λc = 0 donc ap bq accepté, une contradiction.
Question 7. Faire le produit cartésien des deux automates. La difficulté est qu'il faut commencer
par supposer qu'ils travaillent sur des ensembles de coefficients linéairement indépendants, donc
— Se rendre compte qu'en remplaçant les coefficients λ dans un automate par d'autres coefficients β mais qui vérifient les mêmes relations sur Q, alors on ne change pas le fonctionnement de l'automate.
— Utiliser ensuite le fait que R est un Q espace vectoriel de dimension infinie.
Question 8. Soient A1 et A2 deux automates déterministes qui reconnaissent L et son complémentaire, sur des ensembles d'états respectifs Q1 et Q2 .
On construit un automate sur Q1 × Q2 × {1, 2}. L'idée est que l'on est dans l'état (q1 , q2 , i)
après avoir lu un mot u si et seulement si l'automate A1 est dans l'état q1 après avoir lu u, idem pour
A2 , et que le mot u est accepté par l'automate Ai
L'état initial est (q0A1 , q0A2 , i) où i = 1 si q0A1 est final dans A1 , et i = 2 sinon.
Ensuite, il y a une transition de (q1 , q2 , i) à (q1′ , q2′ , j) si :
— Il y a une transition de qp à qp′ dans l'automate Ap :
— Si i = 1 : Si q1′ est acceptant et que la transition de q1 à q1′ porte la valeur λ = 0, alors j = 1.
Sinon j = 2
— Même raisonnement si i = 2.
En prenant comme états acceptants les états où i = 1 on obtient un automate pour L.
Téléchargement