Académique Documents
Professionnel Documents
Culture Documents
Cours Théorie de Langages NFA ER PR Ouatik
Cours Théorie de Langages NFA ER PR Ouatik
Chapitre 3
1
III. Automates Finis Non déterministes (NFA)
III.1. Définitions
Définition :
Un automate fini non déterministe M est un cinq-uplet (∑ , Q , δ , q0 , F) avec :
∑ : un alphabet
Q : l’ensemble d’états
q0 : l’état initial
F : ensemble des états finaux F Q
δ : Q ∑ → 2Q (2Q = l’ensemble des parties de Q)
Remarques :
• ∑, Q, q0, F sont définis de la même manière qu’un DFA, la seule différence est la
fonction de transition.
• δ (q,x) = q*x = { q’ Q / il existe une transition de q vers q’ par le symbole x }
2
III. Automates Finis Non déterministes (NFA)
III.2 Exemple d’un NFA
- Exemple : q1
a
b
q0 b
a q2
a a
q4 b q3
q0*a = {q1,q3}
q0*b = {q2}
q3*a=
3
III. Automates Finis Non déterministes (NFA)
III.2. Exemple d’un NFA
Remarque : un DFA est un cas particulier de NFA.
Extensions de * :
• 2Q ∑ → 2Q
Q’ Q , Q’ *x = { q’*x / q’ Q’ }
• 2Q ∑* → 2Q
Q’ 2Q : Q’ * ε = Q’
Q’*xu = (Q’*x) * u (où : x ∑ et u ∑*)
{q0}*aba = (q0*a)*ba = {q1, q3}*ba = ({q1, q3}*b)*a = {q0, q4}*a = {q1, q3, q0}
{q0}*baa = {q2}*aa = {q0}*a = {q1, q3}
4
III. Automates Finis Non déterministes (NFA)
III.3. Langage reconnu par un NFA
Définition : Langage reconnu par un NFA
Soit M= (∑ , Q , * , q0 , F) un NFA
T(M) = {w ∑* / q0*wF}
Exemple :
q0*aba = {q1, q3, q0} ➔ aba T(M)
baa T(M) car q0*baa F =
Proposition :
Le langage reconnu par un NFA est régulier.
5
III. Automates Finis Non déterministes (NFA)
III.4. Passage d’un NFA vers un DFA
- Règles de construction : Passage d’un NFA vers un DFA
6
+ a b
{q0}
7
+ a b
{q1, q3}
8
+ a b
{q2} {q0}
9
+ a b
{q2} {q0}
F=
10
+ a b
{q2}=C {q0}
F=
11
12
13
15
Chapitre 4 :
Expressions régulières
16
Définition :
Soit un alphabet. Les expressions régulières définies sur et les ensembles
qu’elles dénotent sont définis inductivement comme suit:
• l’expression vide est une expression régulière qui dénote l’ensemble vide
• ε est une expression régulière qui dénote {ε}
• si a alors a est une expression régulière qui dénote {a}
• si r et s sont des expressions régulières qui dénotent respectivement les
langages R et S, alors (r+s), rs et r* sont des expressions régulières dénotant
respectivement R S, R.S et R*.
Notation:
ER() : l’ensemble des expressions régulières sur .
17
Exemple 1 :
= {a,b}
ε , a , b , ab , a+b , (a+b)* sont des expressions régulières.
Exemple 2 :
= {0,1}
- (0+1)* ER( ), elle dénote *.
- (0+1)*00(0+1)* ER( ), elle dénote l’ensemble des mots contenant deux ‘0’
consécutifs.
18
Remarque :
Toute expression régulière dénote une partie de *
Exemple : ={a, b}
L : ER( ) → 2 *
→ ={}
ε→{ε}
x →{x} , x
L (r+s) = L (r) L (s)
L (rs) = L (r). L (s)
L (r*) = (L (r))*
19
Proposition :
Soient A, B et Z ER( ).
Z=ZA+B s.s.s. Z=BA* (si ε A)
Exercice : ={a, b}
Montrer que:
• a*={}+aa*
• a*a=aa*
• (b+aa*b)+(b+aa*b)(a+ba*b)*(a+ba*b)=a*b(a+ba*b)*
Proposition :
A tout DFA on peut associer une expression régulière.
20
Exemple :
a a
q0 q1 q2
b b
Z1= {a, aba, aab,………}
Z0 = {ε, ab,abab……….}
Z2={aa, abaa, aaba, …….}
21
Remarque :
• On a: ε Z0 car q0*ε = q0
• L’expression régulière n’est pas unique.
22