2 / 47
Cuprins
1 Automate finite
2 Expresii regulate
3 / 47
Automate finite
4 / 47
Automate finite
5 / 47
Automate finite
Exemplu
a b
start A B C F
a
b a
b b a b
a
b
D E G
b
6 / 47
Limbaj acceptat
Exemplu
abab este acceptat, dar abba nu este acceptat.
7 / 47
Semiinel
4 0·a=a·0=0
8 / 47
Prezentări matriciale
9 / 47
Prezentări matriciale concrete
10 / 47
Prezentări matriciale concrete
11 / 47
Prezentări matriciale concrete
Exemplu
Fie A NFA-ul de mai jos:
q1 a q2 a q3
start a
12 / 47
Prezentări matriciale concrete
2 Dacă ı̂n 1 se adaugă restricţia că ı̂n D, ı̂n fiecare linie fiecare literă
apare exact o dată, obţinem prezentări corespunzătoare DFA-urilor
3 Dacă 1 se relaxează acceptând apariţia lui 1 ı̂n D, atunci se obţin
prezentări care corespund automatelor finite nedeterministe cu
mişcări vide
4 Dacă relaxăm 1 admiţând sume finite de cuvinte (nu numai litere)
ca elemente ı̂n D şi C , iar B are un unic 1, altfel 0, obţinem
prezentări matriciale care modelează gramaticile regulate.
13 / 47
Limbaj acceptat
Teoremă
→ A B
Fie A un NFA şi M = prezentarea concretă pentru A.
n C D
Atunci L(M) (i.e., A + B · D ∗ · C ) coincide cu limbajul L(A) acceptat de
A ı̂n sens uzual.
Dem:
Fie
D = D 1 = (dij1 )ij
Dk = D| · .{z . . · D} = (dijk )ij
de k ori
D ∗ = (dij∗ )ij
14 / 47
Limbaj acceptat
Dem: (cont.)
Atunci
dij1 =
P
a1
{a1 |i −→j}
a1 este suma literelor care dau tranziţii de la i la j
15 / 47
Limbaj acceptat
Dem: (cont.)
Deci dij∗ = {w |i −→j}
P
w w conţine cuvintele pentru care există un drum ı̂n
automat de la i la j (de lungime arbitrară).
Înmulţind cu B şi C selectăm din D ∗ cuvintele pentru care există drumuri
de la stări iniţiale la stări finale.
Deci, L(A) = B · D ∗ · C = A + B · D ∗ · C = L(M).
16 / 47
Prezentări matriciale concrete
Exemplu
Fie A NFA-ul de mai jos:
q1 a q2 a q3
start a
17 / 47
Prezentări matriciale concrete
Exemplu (cont.)
0 1 0 0
1 0 a 0
Prezentarea matricială a lui A este M =
0 0 0 a .
1 0 0 a
Avem
0 0 a2 0 0 a3
D 2 = 0 0 a2 D 3 = 0 0 a3
2
0 0 a 0 0 a3
1 a a2 + a3 + . . .
D ∗ = 0 1 a + a2 + a3 + . . .
2 3
0 0 1 + a + a + a + ...
1 a a≥2
1
L(M) = A + BD ∗ C = [1 0 0] 0 1 a≥1 0 = 1 + a≥2 = L(A)
0 0 a≥0 1
18 / 47
Prezentări matriciale similare
→ Ai Bi
Două prezentări matriciale Mi = , pentru i = 1, 2,
ni Ci Di
sunt similare via o relaţie ρ ⊆ [n1] × [n2], notat M1 →ρ M2 , dacă
M1 · (I1 ∗ ρ) = (I1 ∗ ρ) · M2
A 0
Cum A ∗ B este , pe componente, similaritatea ı̂nseamnă
0 B
A1 B1 ρ A2 B2
= ,
C1 D1 ρ ρC2 ρD2
deci se reduce la
A1 = A2 , B1 ρ = B2 , C1 = ρC2 , D1 ρ = ρD2
19 / 47
Prezentări matriciale similare
Teoremă
Similaritatea conservă limbajul (ı̂n cazul prezentărilor concrete), adică
dacă M1 →ρ M2 , atunci L(M1 ) = L(M2 ).
Dem.:
Exerciţiu!
20 / 47
De la NFA-uri la DFA-uri
21 / 47
De la NFA-uri la DFA-uri
Exemplu
b
{q2 } {q1 , q2 } a, b
start
22 / 47
De la NFA-uri la DFA-uri
Teoremă
Fie A un NFA. Există un DFA D(A) şi o relaţie ρ astfel ı̂ncât
D(A) →ρ A.
Dem.:
→ A B
Fie reprezentarea matricială a lui A. Automatul D(A)
n C D
are reprezentarea matricială
→ Ā B̄
2n C̄ D̄
stările sunt elemente ı̂n [2n ] identificate cu submulţimi s ⊆ [n]
componentele matricii D(A) sunt definite astfel:
Ā = A
1 pentru t = tin , unde tin = {j | bj = 1}, altfel 0
b̄t = P
c̄s = {i|i∈s} ci
a a
a ∈ d¯st (ori s −→ t in D̄) dacă t = {j | ex.i ∈ s cu i −→ j in D}
23 / 47
De la NFA-uri la DFA-uri
Dem.: (cont.)
Considerăm relaţia ρ ⊆ [2n ] × [n] definită prin
(s, j) ∈ ρ ddacă j ∈ s.
24 / 47
De la NFA-uri la DFA-uri
Exemplu
b
{q2 } {q1 , q2 } a, b
start
25 / 47
De la NFA-uri la DFA-uri
Exemplu (cont.)
0 1 1
Reprezentarea matricială a lui A este: 0 a a+b
1 b b
Notăm ∅, {1}, {2}, {1, 2} cu 1, 2, 3, 4, respectiv.
Atunci reprezentarea matricială a lui D(A) este
0 0 0 0 1
0 0
0 0 0 0 0 1 0
0 0 0 b a ρ=
0 1
1 0 0 0 b
1 1
1 0 0 0 a+b
Se observă că:
0 1 1
0 0 0
1 0 1 0
D(A) = 0 a a+b = A
0 ρ 0 ρ
1 b b
1 a+b a+b
26 / 47
De la NFA-uri la DFA-uri
Corolar
L(A) = L(D(A)), deci orice NFA este echivalent cu un DFA.
27 / 47
Expresii regulate
28 / 47
Expresii regulate
Expresii regulate:
1 0, 1 şi a(∈ V ) sunt expresii regulate
2 dacă E , F sunt expresii regulate, atunci E + F , E · F şi E ∗ sunt
expresii regulate
3 toate expresiile regulate se obţin aplicând 1) şi 2) de un număr finit
de ori
29 / 47
Algebră regulată
30 / 47
Algebră regulată
distributivitate
a · (b + c) = (a · b) + (a · c), (a + b) · c = (a · c) + (b · c)
31 / 47
Algebră regulată
32 / 47
Algebră regulată
33 / 47
Matrici de limbaje ca teorii Kleene
Propoziţie
Axiomele de mai sus sunt valide ı̂n cazul matricilor de limbaje
Dem. (schiţă)
Se verifică toate axiomele prin calcul direct.
34 / 47
De la NFA la expresii regulate
→ A B
Fie A un NFA cu reprezentarea matricială .
n C D
Atunci L(A) = A + BD ∗ C , dar . . . aceasta nu este o expresie regulată!
Operaţia de stelare se aplică unei matrici.
Problema se reduce la a exprima D ∗ folosind stelare doar pe
componentele lui D.
35 / 47
Stelare de matrici ı̂n teorii Conway
36 / 47
Stelare de matrici ı̂n teorii Conway
Dem:
1. Avem:
∗
a b 1
a b )∗
= (
0 0 0
1 0 1 1
)∗
=P + ( a b a b
0 1 0 0
∗ ∗
1+a a a b
=
0 1
∗ ∗
a a b
=P1
0 1
2. Analog, ∗
0 0 1 0
=
c d d ∗c d∗
37 / 47
Stelare de matrici ı̂n teorii Conway
Dem: (cont.)
3. În final,
∗
a b a b 0 0 ∗
= ( + )
c d 0 0 c d
∗ ∗
a b 0 0 a b
=S1 ( )∗
0 0 c d 0 0
∗ ∗
a a∗ b
0 0
=
0 1 ca∗ ca∗ b + d
∗
a a∗ b
1 0
=
0 1 wca∗ w
∗
a + a∗ bwca∗ a∗ bw
=
wca∗ w
38 / 47
De la NFA la expresii regulate
Dem:
→ A B
Fie A un NFA cu reprezentarea matricială .
n C D
Atunci L(A) = A + BD ∗ C .
39 / 47
De la NFA la expresii regulate
Dem: (cont.)
Din teorema de mai sus, D ∗ se scrie ca o matrice de expresii
regulate
Dacă π este o permutare, atunci (π −1 Aπ)∗ = π −1 A∗ π (din P2)
Deci extensia stelării de la componente la matrici nu depinde de
ordinea de descompunere aleasă.
40 / 47
De la expresii regulate la NFA
Dem:
0 B
Pentru M = , notăm L(M) = BD ∗ C .
C D
Funcţia de normalizare N (de la expresii regulate la prezentări matriciale)
se defineşte inductiv astfel:
41 / 47
De la expresii regulate la NFA
Dem: (cont.)
0 1
N(0) =
0 0
0 1
N(1) =
1 0
0 1 0
N(a) = 0 0 a
1 0 0
42 / 47
De la expresii regulate la NFA
Dem: (cont.)
0 Bi
Sumă: dacă N(Ei ) = , pentru i = 1, 2, atunci
Ci Di
0 B1 B2
N(E1 + E2 ) = C1 D1 0
C2 0 D2
0 Bi
Produs: dacă N(Ei ) = , pentru i = 1, 2, atunci
Ci Di
0 B1 B1 C1 B2
N(E1 · E2 ) = C1 B2 C2 D1 D1 C1 B2
C2 0 D2
43 / 47
De la expresii regulate la NFA
Dem: (cont.)
0 B
Stelare: dacă N(E ) = , atunci
C D
0 B 1
N(E ∗ ) = (CB)∗ C (CB)∗ D 0
1 0 0
44 / 47
De la expresii regulate la NFA
Dem: (cont.)
Arătăm, prin inducţie, că definiţia este corectă, anume L(N(E )) = |E |.
În primul rând, L(N(f )) = f = |f |, pentru f ∈ {0, 1}.
Apoi,
∗
0 a 0
L(N(a)) = 0+ 1 0
0 0 1
1 a 0
= 0+ 1 0
0 1 1
= 0 + a = a = |a|
45 / 47
De la expresii regulate la NFA
Dem: (cont.)
Pentru sumă avem:
D1 0 ∗ C1
L(N(E1 + E2 )) = 0 + B2 B1
0 D2 C2
∗
D1 0 C1
= B1 B2
0 D2∗ C2
∗ ∗
= B1 D1 C1 + B2 D2 C2
= L(N(E1 )) + L(N(E2 )) = |E1 | + |E2 | = |E1 + E2 |
46 / 47
Pe săptămâna viitoare!
47 / 47