• Aucun résultat trouvé

Théorie des Langages Formels Chapitre 6 : Langages non reconnaissables

N/A
N/A
Protected

Academic year: 2022

Partager "Théorie des Langages Formels Chapitre 6 : Langages non reconnaissables"

Copied!
14
0
0

Texte intégral

(1)

Théorie des Langages Formels

Chapitre 6 : Langages non reconnaissables

Florence Levé

Florence.Leve@u-picardie.fr

Année 2014-2015

1/14

(2)

Introduction

Comment savoir si un langage est reconnaissable ?

I Selon la manière dont est décrit le langage la réponse n’est pas toujours aisée

I voire pas toujours décidable – un problème est ditdécidable s’il existe un algorithme pour le résoudre.

2/14

(3)

Exemple classique

Le langage L = {a

n

b

n

| n ≥ 0} défini sur l’alphabet {a, b}

n’est pas reconnaissable.

3/14

(4)

Preuve : méthode 1

On peut utiliser prouver que L n’est pas reconnaissable en montrant que L possède une infinité de résiduels.

(a

i

)

−1

L = {a

n−i

b

n

}

Pour n ≥ 0, on remarque que b

n

∈ (a

n

)

−1

L pour n et pour tout m 6= n, b

n

6∈ (a

m

)

−1

L. Par conséquent, les langages résiduels (a

n

)

−1

L pour n ≥ 0 sont tous différents. Donc L a une infinité de résiduels et d’après le Corollaire 5.4 (page 24), L n’est pas reconnaissable.

4/14

(5)

Outils de preuve

Notation pour simplifier l’écriture des preuves suivantes : Étant donné un automate Aut =< A, Q , D, F , δ >, nous noterons δ

l’ensemble des triplets (q, u, q

0

) ∈ Q × A

× Q tels qu’il existe un chemin dans Aut étiqueté par le mot u, partant de l’état q et arrivant en l’état q

0

.

5/14

(6)

Outils de preuve

Rappels :

1.

Un mot u est reconnu par Aut si et seulement si il existe un état initial d et un état final f tels que (d , u, f ) ∈ δ

.

2.

Si (q

1

, u, q

2

) ∈ δ

et (q

2

, v , q

3

) ∈ δ

alors (q

1

, uv , q

3

) ∈ δ

.

3.

Si q

1

∈ D, q

3

∈ F , (q

1

, u, q

2

) ∈ δ

, (q

2

, v , q

2

) ∈ δ

et

(q

2

, w , q

3

) ∈ δ

alors uv

w est un sous-ensemble du langage reconnu par Aut .

6/14

(7)

Outils de preuve

Principe de Dirichlet, principe du trou de pigeon, principe des tiroirs, principe des boites :

I Simobjets sont associés chacun à une valeur choisie parmin valeurs possibles et sim>n, alors deux objets au moins sont associés à la même valeur.

7/14

(8)

Preuve : méthode 2

Supposons qu’il y ait un automate (fini déterministe) qui reconnaisse le langage L = {a

n

b

n

| n ≥ 0}. Soit n son nombre d’états. En particulier le mot a

n

b

n

est reconnu par l’automate.

Notons q

0

l’état initial et q

i

(1 ≤ i ≤ n) l’état tel que

(q

0

, a

i

, q

i

) ∈ δ

(

(i.e. l’état dans lequel on arrive après avoir "lu" le mot ai le long du chemin reconnaissant anbn

).

Utilisons le Principe de Dirichlet : parmi les n + 1 états q

0

, q

1

, . . . , q

n

, deux au moins sont égaux : soit l, k des entiers tels que 0 ≤ k < l ≤ n et q

l

= q

k

.

Alors (q

0

, a

k

, q

k

) ∈ δ

, (q

k

, a

l−k

, q

l

) ∈ δ

, (q

l

, a

n−l)

b

n

, f ) ∈ δ

sont des chemins dans l’automate avec f un état terminal.

Mais alors a

k

a

n−l

b

n

= a

n−l+k

b

n

est reconnu par l’automate : une contradiction (

L’automate ne doit reconnaître que des mots dans L

). Donc L n’est pas reconnaissable.

(Autre exemple de contradiction : akal−kal−kan−lbn =an+l−kbn est reconnu par l’automate.)

8/14

(9)

Remarque

La méthode précédente est la méthode utilisée pour démontrer le lemme de l’étoile (en fait il en existe plusieurs versions plus ou moins puissantes, plus ou moins facile à utiliser... en particulier, il existe des théorèmes de l’étoile qui sont des caractérisations)

9/14

(10)

Outil de preuve : Lemme de l’étoile

Lemme de l’étoile, lemme d’itération, lemme d’Ogden, pumping lemma

Soit A un alphabet. Soit L un langage sur A. Si L est

reconnaissable alors il existe un entier N > 0 tel que, pour tous mots u, x

1

, . . . , x

N

, v avec les x

i

mots non vides, si

ux

1

. . . x

N

v ∈ L alors il existe des mots y , z et un mot non vide t tel que x

1

. . . x

N

= ytz et uyt

zv ⊆ L.

Preuve du lemme de l’étoile :

Si L = ∅ alors L ∈ Rec (A

) et L vérifie la propriété pour N = 1 par vacuité.

Si L 6= ∅, on utilise le même principe que dans la méthode 2.

10/14

(11)

Preuve : méthode 3

Appliquons le lemme de l’étoile pour montrer que le langage L = {a

n

b

n

| n ≥ 0} defini sur l’alphabet {a, b} n’est pas reconnaissable.

Supposons qu’il le soit. Soit N entier pour lequel le lemme de l’étoile est vérifié. Soit u = ε, x

1

= x

2

= . . . = x

N

= a, v = b

N

. D’après le lemme de l’étoile, il existe des mots y , t 6= ε, z tels a

N

= ytz , et yt

zb

N

⊆ L. On peut voir que y = a

|y|

, t = a

|t|

, z = a

|z|

. Alors le mot a

|y|+|z|

b

N

= a

N−|t|

b

N

appartient à L : une contradiction.

11/14

(12)

Propriétés de clôture

Dans certains cas, les techniques précédentes sont difficilement utilisables.

Une solution est d’utiliser les propriétés de clôture de la famille des ensembles reconnaissables.

En particulier, il est assez fréquent d’utiliser le fait que le complémentaire d’un langage reconnaissable ou que

l’intersection de deux langages reconnnaissables est un langage reconnaissable. Mais cela n’est pas restrictif.

12/14

(13)

Preuve : méthode 4

Soit L = {u ∈ {a, b}

| |u |

a

= |u|

b

}.

Soit X = {a

n

b

n

| n ≥ 0}.

L ∩ a

b

= X

On sait que le langage a

b

est un langage reconnaissable.

Si L est reconnaissable, l’intersection de deux langages reconnaissables étant un langage reconnaissable, l’ensemble X serait un langage reconnaissable, or on a prouvé précédemment que c’est faux : on a une contradiction.

Donc L n’est pas reconnaissable.

13/14

(14)

Propriétés de clôtures : rappels et compléments

L’union, le produit et l’intersection de deux langages reconnaissables sont des langages reconnaissables.

Le complémentaire et l’étoile d’un langage reconnaissable sont reconnaissables.

L’ensemble des facteurs des mots d’un langage reconnaissable est reconnaissable.

L’ensemble des préfixes des mots d’un langage reconnaissable est reconnaissable.

L’ensemble des suffixes des mots d’un langage reconnaissable.

est reconnaissable

L’ensemble des mots miroirs des mots d’un langage reconnaissable est reconnaissable.

(Le mot miroir d’un mot u est le mot, noté ˜ u, obtenu en lisant u à l’envers)

14/14

Références

Documents relatifs

Remarque : on peut toutefois montrer qu’une grammaire donnée est ambiguë en donnant un mot engendré par cette grammaire admettant deux arbres de dérivations distincts.....

Objectifs S’initier aux fondements théoriques des langages de programmation, en particulier aux langages formels, à la théorie des automates ainsi qu’`a

Par conséquent, si x, u, et y sont les mots représentés par la figure précédente, tous les mots de la forme xu*y sont accepté par l’automate et font partie du langage Autrement

• Pouvoir programmer un analyseur syntaxique récursif pour une grammaire donnée. • Connaître les fondements d’un générateur d’analyseur syntaxique LL tel

Les 6 chiffres de son code sont écrits dans le même ordre que les lettres de son prénom.. Trouver le

[r]

de jongleurs que de

Il résulte en particulier du théorème de Kleene que l'ensemble des langages rationnels de A est fermé pour les opérations booléennes finies et pour le quotient à gauche (resp.