Cours Critère de régularité d`un langage et langages irréguliers

publicité
Cours Critère de régularité d'un langage et langages irréguliers
Le pumping lemma ou lemme de l'itération ou encore dit du gonement ou bien de pompage aussi
appelé lemme de l'étoile est donne un condition nécessaire pour qu'un langage soit régulier. Il est dû
à un inconnu et c'est pourquoi on en sait pas comment l'appeler.
1
Exemple de rédaction d'une preuve de non régularité d'un langage
Tout langage régulier L vérie le critère de régularité CritReg(L ) suivant :
def
CritReg(L ) =
N
∃n ∈
il existe un rang n à partir duquel
∀w ∈ L
pour tout mot w de L
|w| ≥ n
de taille ≥ n
⇒
∃x, y, z ∈ Σ∗
on peut construire des mots x, y, z qui satisfont les contraintes :
w = x.y.z
∧ |x| + |y| ≤ n
∧ |y| > 0
∧ ∀k ∈ x.y k .z ∈ L
N
Interprétation de la formulation logique en terme de jeu :
Vous jouez avec les ∃ en choissisant les variables quantiées existentiellement pour essayer de satisfaire la formule ;
Votre adversaire joue avec les ∀ et choisit des valeurs quantiées universellement pour essayer de
falsier la formule.
Vous gagnez le jeu si vous arrivez à satisfaire le critère. Pour cela, il faut que :
def
CritReg(L ) =
N
∃n ∈ ,
vous choisissiez un n à partir duquel
∀w ∈ L ,
quel que soit le mot w choisi par votre adversaire
|w| ≥ n
de taille ≥ n
⇒
∃x, y, z ∈ Σ∗
vous réussissiez à choisir des mots x, y, z qui satisfont les contraintes :
w = x.y.z
∧ |x| + |y| ≤ n
∧ |y| > 0
∧ ∀k∈
de sorte que, quel que soit l'entier k choisi par votre adversaire
x.y k .z ∈ L
vous puissiez prouver que le mot x.y k .z est dans L .
N
Que dit ce critère ?
Regulier(L ) ⇒ CritReg(L )
Par conséquent, si on peut montrer ¬ CritReg(L ) alors on peut conclure que le langage L n'est pas
régulier.
Négation du critère de régularité
def
¬ CritReg(L ) =
∀n ∈
N
À tout rang n
1
∃w ∈ L
on peut construire un mot w de L (rq : w dépend de n)
|w| ≥ n
de taille ≥ n tel que
∧
∀x, y,z ∈ Σ∗
pour tous
 mots x, y, z
w = x.y.z
 ∧ |x| + |y| ≤ n  ⇒ ∃k ∈ , x.y k .z ∈
/L
∧ |y| > 0
N
Interprétation de la formulation logique en terme de jeu :
Vous jouez avec les ∃ en choissisant les variables quantiées existentiellement pour essayer de satisfaire la formule ;
Votre adversaire joue avec les ∀ et choisit des valeurs quantiées universellement pour essayer de
falsier la formule.
Vous gagnez le jeu si vous arrivez à satisfaire la négation du critère. Pour cela, il faut que :
def
¬ CritReg(L ) =
N
∀n ∈
Votre adversaire choisit un n
∃w ∈ L
Vous devez choisir un mot w de L (rq : w dépend de n)
|w| ≥ n
de taille ≥ n tel que :
∧
∀x, y,z ∈ Σ∗
quels que
 soient les mots x, y, z choisi par votre adversaire
w = x.y.z
 ∧ |x| + |y| ≤ n  respectant ces 3 contraintes,
∧ |y| > 0
N
⇒
∃k ∈ ,
vous savez choisir un k qui vous permet de monter que
x.y k .z ∈
/L
Remarque La dénition de ¬
CritReg(L ) s'obtient en appliquant les règles logiques suivantes :
¬ ∀x ∈ Eϕ
≡ ∃x ∈ E . . . . . . . .
¬ ∃x ∈ Eϕ
≡
¬ ϕ⇒ψ
...
x ∈ E. ¬ϕ
≡ ϕ ∧ ........
¬ ϕ ∧ ψ ∧ θ ∧ φ ≡ (ϕ ∧ ψ ∧ θ) ⇒ ¬φ
2
2
Application
def
Pour montrer que le langage L = {ap | p
c'est-à-dire
def
¬ CritReg(L ) =
...
n∈
...
N
On considère un n
w∈L
on doit
...
ie. . . .
un mot w de L ,
ie.
w=
......
avec p premier
≥n
les mots x, y, z (ie. quel que soit le choix des mots x, y, z )
les contraintes ci-dessous sont contradictoires
x, y, z ∈ Σ∗
.........................

w = x.y.z


 ∧ |x| + |y| ≤ n

¬
 ∧ |y| > 0

 ∧ ...k ∈

x.y k .z ∈ L
...
2) |w| = |aX .aY .aZ | =
w = aX .aY .aZ
ie.
X +Y
....
avec
x=
.......
,y =
.......
et
z=
.......
..........
>0
. . . . . . . . . . . . . . . . . . . . . . . . . . . . valeur de
X
k Z
ie. a .( . . . . . . . ) .a
Montrons la contradiction !
1) |w| ≥ n et |w| =
ie.
ie.
N
3) n ≥
} n'est pas régulier on montre ¬ CritReg(L ) ,
.............................
..........................
de taille ≥ n,
tel que
|w| ≥ n
∧
premier
∈ L ie. X +
k
on doit avoir
........
+Z
est un nombre . . . . . . . . . . . . . . . . . . . .
Récapitulons les contraintes :
est un nombre
....................
..............................
= p premier
..................
4) Y >
...
5) ∀k ∈
N
.....
+k×Y +
....
premier
Il faut choisir w en fonction de n an d'obtenir une contradiction.
Considérons la constrainte (5) et le cas k = p + 1 et montrons que X + (p + 1)Y + Z n'est pas premier,
c'est-à-dire montrons qu'il s'écrit comme produit de deux nombres > 1.
X + (p + 1)Y + Z = |X + {z
Y + Z} + pY = p(Y + 1) est un produit.
p
d'après (2)
Donc ce n'est pas premier à condition de montrer que les facteurs p et Y + 1 sont >
donc (a) Y + 1 >
...
et (b) p >
...
...
. Montrons
.
(preuve de a) D'après la contrainte (4) Y > 0 donc Y + 1 > . . . .
(preuve de b) D'après la contrainte (1) p ≥ n or n ∈
ie. n ≥ 0. Pour être sûr d'avoir p > 1 il faut
choisir p ≥ n + 1. On doit donc choisir w = ap avec p premier et p ≥ n + 1. Est-ce possible ?
N
Oui, on peut toujours trouver un tel p premier car l'ensemble des nombres premiers est
Conclusion
.............
.
Quels que soient l'entier n et les mots x, y, z on pourra toujours obtenir une contradiction
des contraintes en choississant w = ap avec p permier ≥ n + 1 et k = p + 1.
Donc le langage L = {ap | p premier} n'est pas régulier. Il ne peut pas être déni par un automate
d'états nis.
3
Téléchargement