Curs 3
2017-18
Curs 3
Definiţie 1
Un automat finit cu ǫ-tranziţii este un 5-uplu A = (Q, Σ, δ, q0 , F ), unde:
Observaţie:
A este automat nedeterminist, dacă δ(q, ǫ) = ∅, ∀q ∈ Q
A este automat determinist, dacă, ı̂n plus:
|δ(q, a)| = 1, ∀q ∈ Q, ∀a ∈ Σ
Limbajul acceptat
Definiţie 2
Limbajul acceptat (recunoscut) de automatul cu ǫ-tranziţii
A = (Q, Σ, δ, q0 , F ) este mulţimea :
Q ′ = 2Q
q0′ = Cl(q0 )
δ ′ (S, a) = Cl(δ(S, a)) S ∈ Q′, a ∈ Σ
S ∈ F ′ ⇔ S ∩ F 6= ∅
Au loc:
δ ′ (q0′ , w) = δ̂(q0 , w), ∀w ∈ Σ∗
L(A′ ) = L(A)
LFAC (2017-18) Curs 3 8 / 31
Automate finite cu ǫ-tranziţii
Curs 3
Stări accesibile
Stări inseparabile
∀w ∈ Σ∗ : δ(q1 , w) ∈ F ⇔ δ(q2 , w) ∈ F
Stări inseparabile
∀w ∈ Σ∗ : δ(q1 , w) ∈ F ⇔ δ(q2 , w) ∈ F
Stări inseparabile
∀w ∈ Σ∗ : δ(q1 , w) ∈ F ⇔ δ(q2 , w) ∈ F
Exemplu
Automat minimal
Observaţii:
Relatia ρ este relaţie de echivalenţă.
∃a ∈ Σ : δ(p, a) sep δ(q, a) =⇒ p sep q.
Automat minimal
Observaţii:
Relatia ρ este relaţie de echivalenţă.
∃a ∈ Σ : δ(p, a) sep δ(q, a) =⇒ p sep q.
Teorema 2
Fie A un automat determinist cu toate stările accesibile. Daca toate
stările din A sunt separabile ı̂n raport cu F, atunci nu există un alt
automat A′ cu număr mai mic de stări şi L(A) = L(A′ ).
Automatul minimal
Q/ρ = {[q]|q ∈ Q}
Exemplu
Automatul minimal
Teorema 3
Fie automatul determinist A, cu toate stările accesibile. Automatul Aρ
construit ca mai sus este automatul cu număr minim de stări care
acceptă limbajul L(A).
Tablou separabil[qi , qj ]:
separabil[qi , qj ] = 1 ddacă qi sep qj (separabil[qi , qj ] = 0 ddacă
qi ρqj )
lista[p, r ] : (p 6= r )
lista[p, r ] : (p 6= r )
//initializarea tablourilor,
se marchează perechile F × (Q − F ) si (Q − F ) × F
1.for (i=0; i<=n-1; i++)
2. for (j=i+1,j<=n; j++) {
3. lista[qi,qj]=∅;
4. if ((qi ∈ F && qj 6∈ F ) || (qi 6∈ F && qj ∈ F ))
5. separabil[qi,qj]=1;
6. else
7. separabil[qi,qj]=0;
8. }
Exemplu
Exemplu
Exemplu
Exemplu
Exemplu
Exemplu
Corectitudinea algoritmului
Teorema 4
Algoritmul se termină ı̂ntotdeauna şi ı̂n final se obţine, pentru orice
două stări qi şi qj , 0 ≤ i < j ≤ n: separabil[qi , qj ] = 1 ddacă qi sep qj
Corectitudinea algoritmului
Teorema 4
Algoritmul se termină ı̂ntotdeauna şi ı̂n final se obţine, pentru orice
două stări qi şi qj , 0 ≤ i < j ≤ n: separabil[qi , qj ] = 1 ddacă qi sep qj
separabil[qi , qj ] = 1.
Corectitudinea algoritmului
Teorema 4
Algoritmul se termină ı̂ntotdeauna şi ı̂n final se obţine, pentru orice
două stări qi şi qj , 0 ≤ i < j ≤ n: separabil[qi , qj ] = 1 ddacă qi sep qj
Curs 3