Cours Théorie de Langag
Cours Théorie de Langag
Cours Théorie de Langag
1
Théorie des langages
Plan
I. Préliminaire
2
Théorie des langages
Chapitre 1
Préliminaire
• Pr. Saïd Ouatik El Alaoui
• [email protected]
• [email protected]
3
I. Préliminaire
I.1. Chaînes, alphabets et langages
-Définitions:
- Un symbole est une entité abstraite qui ne peut pas être
définie formellement comme les lettres, les chiffres…
- Un mot (ou encore une chaîne ) est une séquence finie de
symboles juxtaposés.
-Exemples :
- a, b, et c sont des symboles.
- ab et abc sont des chaînes (mots).
4
I. Préliminaire
I.1. Chaînes, alphabets et langages
5
I. Préliminaire
I.1 Chaînes, alphabets et langages
Exemple: si w=abcde alors
• w0=a, w1=ab, w2=abc, w3=abcd, w4=abcde sont tous les préfixes de w.
6
I. Préliminaire
I.1. Chaînes, alphabets et langages
Un préfixe (ou un suffixe) d’une chaîne est dit préfixe propre (ou suffixe propre)
s’il est différent de la chaîne elle-même.
• Définition: Concaténation
• La concaténation de deux chaînes w1 et w2 est la juxtaposition de deux chaînes,
ainsi la chaîne obtenue est formée par la première (w1) suivie de la deuxième (w2).
On note w1.w2
Exemple: si w1=abc, w2=xyzt alors w1.w2=abcxyzt
7
I. Préliminaire
I.1. Chaînes, alphabets et langages
Définition : Langage
• Notations :
• * est l’ensemble de toutes les chaînes formées à partir de l’alphabet
y compris .
• += *-{}
• L est un langage sur signifie que L *.
8
I. Préliminaire
I.1. Chaînes, alphabets et langages
• Exemples :
• et {} par définition sont des langages.
• ={a}, La={a, aa, aaa}
• ={a}, *={ , a, aa, aaa, …}
• si ={0, 1}, *={ , 0, 1, 00, 01, 11, 10, …}
L’ensemble des mots palindromes sur :
P={w*/ si w est lue de gauche à droite ou de droite à gauche le
résultat est le même}.
Exemples :
- est palindrome.
- w=abba est palindrome.
- w=01010 est palindrome. 9
I. Préliminaire
I.1. Chaînes, alphabets et langages
~
• wR est l’inverse de w, noté aussi w.
• wR est appelé le miroir de w.
• si w=wR alors w est palindrome.
Remarques:
11
I. Préliminaire
I. Chaînes, alphabets et langages
- Concaténation de langages :
Soit A un langage sur
• Généralisation :
• A0={}.
• Ai=Ai-1.A pour i>0 appelée Puissance de A
•A*=i≥0Ai, appelée fermeture de A (ou aussi fermeture de Kleene)
• A+=i≥1Ai appelé fermeture positive de A.
12
I. Préliminaire
I.1. Chaînes, alphabets et langages
- Cas particulier: On a *= i≥0 i
•Remarque : L+ s.s.s L
Propriétés:
• Soient u, v * On a :
u=v |u|=|v| et 1 i |u| on a: ui=vi
• Pour u * On a :
Si |u|=0 alors u=
Si |u|=r alors u=u1.u2.u3….ur avec ui .
Remarque : Les opérations habituelles sur les ensembles telles que l’union,
l’intersection et la complémentation sont applicables aux langages.
13
Théorie des langages
Chapitre 2
14
II. Automates Finis Déterministes (DFA)
II.1. Concept d’automate fini déterministe
Définition:
On appelle DFA un cinq_uplet M de la forme (, Q, ,q0, F) avec :
: Alphabet d’entrée.
Q: ensemble fini d’états.
q0Q état initial.
F Q ensemble des états finaux.
: Q → Q : fonction de transition.
- Exemple 1:
={a, b}
Q={q0, q1, q2}
q0 : état initial 15
II. Automates Finis Déterministes (DFA)
II.1. Concept d’automate fini déterministe
- Exemple 1: (suite)
b
a
q0 q1
b
a, b
a a b
q2 q0 q1 q0
q1 q2 q0
q2 q2 q2
• q2 est l’état final.
• La fonction de transition peut être représentée par un tableau de transition.
16
II. Automates Finis Déterministes (DFA)
II.2. Langage reconnu par un DFA
Extension de :
: Q * → Q
(q, w) → q’
(q, )=q
Si |w|>0 alors (q, w)= (q, xu)= ((q, x), u) avec x et u * .
17
II. Automates Finis Déterministes (DFA)
II.2. Langage reconnu par un DFA
Définition: Langage reconnu par un DFA
Soit M=(, Q, , q0, F) un DFA.
T(M)={w * / (q0, w) F}
Exemples:
(q0, ab)=(q1, b)=q0 ➔ abT(M).
aa T(M) car (q0, aa)F
Notation :
La fonction de transition est notée par * :
(q, w)=q*w
18
II. Automates Finis Déterministes (DFA)
II.2. Langage reconnu par un DFA
- Exemple 2: ={a, b}
a a
b
q0 q1
T(M)=?
19
II. Automates Finis Déterministes (DFA)
II.2. Langage reconnu par un DFA
T(M)= est l'ensemble des mots contenant un nombre pair de b
T(M)= {w * / | w|b pair}
| w|b : désigne le nombre d’occurrences de b dans le mot w.
Notation :
Reg(): est l’ensemble des langages réguliers sur .
20
II. Automates Finis Déterministes (DFA)
II.2. Langage reconnu par un DFA
• Exercice:
Soit ={a, b}
1) Montrer que * est régulier.
21
II. Automates Finis Déterministes (DFA)
II.2. Langage reconnu par un DFA
• Exercice:
Soit ={a, b}
1) Montrer que * est régulier.
a, b
q0
22
II. Automates Finis Déterministes (DFA)
II.2. Langage reconnu par un DFA
• Exercice:
Soit ={a, b}
1) Montrer que * est régulier.
a, b
q0
23
II. Automates Finis Déterministes (DFA)
II.2. Langage reconnu par un DFA
24
II. Automates Finis Déterministes (DFA)
II.3. Union et intersection de langages réguliers
Proposition :
Si L1 et L2 Reg() alors L1L2 et L1L2 Reg().
c.à.d: L’union et l’intersection de deux langages réguliers sont réguliers.
Exemple : ={a, b}
Soient M1 un DFA pour L1: l’ensemble des mots w tel que |w|a pair.
Soient M2 un DFA pour L2: l’ensemble des mots w tel que |w|b pair.
25
II. Automates Finis Déterministes (DFA)
II.3. Union et intersection de langages réguliers
- Exemple (suite):
b b
a
M1 q0 q1
a a
b
q0’ q1’
M2
b
26
II. Automates Finis Déterministes (DFA)
II.3. Union et intersection de langages réguliers
- Exemple (suite): Construction d’un DFA pour L1 L2.
a
q0,q0’ q1,q0’
a
b b b
b
a
q0 ,q1’ q1, q1’
27
II. Automates Finis Déterministes (DFA)
II.3. Union et intersection de langages réguliers
- Exemple (suite) : Construction d’un DFA pour L1 L2.
a
q0,q0’ q1,q0’
a
b b b
b
a
q0 ,q1’ q1, q1’
28
II. Automates Finis Déterministes (DFA)
II.3. Union et intersection de langages réguliers
- Exercice :
Soient deux DFAs M1 et M2 tels que:
M1=(, Q1, *, q0, F1) , L1=T(M1)
M2=(, Q2, *’, q0’, F2) , L2=T(M2)
1) Donner les règles de construction d’un DFA pour L1 L2.
2) Même question pour L1 L2.
3) Le complémentaire d’un langage régulier est-il régulier?
4) Déduire que L1-L2 est régulier.
29
II. Automates Finis Déterministes (DFA)
II.4. État puit
-Définition: état puit
M=(, Q, ,q0, F) un DFA. Un état q est dit état puit si w * on a: q*wF.
a
q0, q1
b a, b a, b
q2
q2 est un état puit
Exemple :
Soit ={a, b} un alphabet.
Donner un DFA reconnaissant l’ensemble des mots ne contenant pas ‘aa’.
30
II. Automates Finis Déterministes (DFA)
II.4. État puit
Exercice :
Soit ={0, 1} un alphabet.
Donner un DFA reconnaissant l’ensemble des mots ne contenant pas le
sous mot ‘00’.
31
II. Automates Finis Déterministes (DFA)
II.4. État puit
- Remarques:
• Un DFA peut avoir plusieurs états puits.
• Si L est régulier et R L. Alors R n’est pas forcément régulier.
Exercice :
Soit un DFA, M=( , Q, -, q0, F).
• Étant donné un mot w sur , donner un algorithme permettant
de tester si w est reconnu par M.
• Étant donné un état q, écrire un algorithme permettant de tester
si q est un état puits.
32