Sunteți pe pagina 1din 7

Cursul 5

5.1 METODE DE RECUNOAŞTERE SINTACTICE

Reprezentarea formelor prin şiruri de primitive

În abordarea sintactică a recunoaşterii formelor, este esenţială descompunerea formelor în


subforme sau primitive. Fiecare primitivă este interpretată ca simbol permis într-o anumită gramatică,
unde prin gramatică sunt înţelese, în linii mari, un set de reguli de sinteză pentru generarea
propoziţiilor din simboluri date. Fiecărei clase îi corespunde un limbaj generat cu o anumită gramatică:

C j ↔L(Gj ), jє{1,2,…, p}

Fiind dată o propoziţie (un şir de simboluri), ce reprezintă o formă imagine, problema care se
pune este de a decide în care limbaj descrierea acestei forme este o propoziţie validă. Forma este
atribuită în mod unic clasei C j dacă ea este o propoziţie din L(Gj) şi nu din alt limbaj.

Definiţie
Formal, o gramatică este definită ca un cuadruplu:

G =(N,Σ P, S ) ,
unde:
- N este mulţimea finită a neterminalelor sau variabilelor;
- Σ este mulţimea finită a terminalelor sau constantelor;
- N  =
- P este mulţimea finită a regulilor de formare (de generare, de rescriere sau de producere);
- S este simbolul de start, Sє N

Definiţie
Mulţimea N   = V se numeşte alfabetul gramaticii G. Se notează cu V* închiderea lui V,
adică mulţimea formată din toate propoziţiile cu simboluri din V, iar cu V +, mulţimea V* \{λ} unde λ
este şirul nul (propoziţie fără simboluri, de lungime nulă).
În cele ce urmează, se vor utiliza următoarele notaţii:
-literele mari - variabilele;
-literele mici de la începutul alfabetului - constantele;
-literele mici de la sfârşitul alfabetului - şirurile de constante;
-literele mici greceşti - şirurile mixte de variabile şi constante.
Mulţimea P constă din regulile de generare de forma α→β , unde αєV *N V * şi βєV, cu
interpretarea că α este înlocuit cu β (α trebuie să conţină cel puţin o variabilă).
Fie o gramatică G , şirurile ρ,δєV * şi regulile de formare din P: α→β . Se utilizează notaţia
   , pentru a indica faptul că şirul ρβδ derivă din şirul ραδ printr-o singură aplicare a regulii
de rescriere din G, α→β .
+
Simbolul  reprezintă o relaţie de derivare a gramaticii G, iar simbolul  indică una sau
mai multe utilizări ale relaţiei  .
Limbajul generat de G, notat L(G), este acea submulţime a lui Σ* (închiderea lui Σ) obţinută
din simbolul de start S prin aplicarea unui număr finit de reguli de generare:

+
L(G ) = {x / x  , S  x}

Altfel spus, o propoziţie conform gramaticii G este un şir peste alfabetul V derivat din simbolul de
start. Limbajul L(G) este o mulţime de propoziţii care constă doar din terminale.
Potrivit restricţiilor privitoare la regulile de formare, gramaticile pot fi de mai multe tipuri:
► Gramatică dependentă de context (sau de tipul 1) care are reguli de generare de forma θAδ→θρδ,
pentru θ,δ,ρєV *, AєN (adică variabila A poate fi înlocuită prin şirul ρ doar când A apare încadrată de
şirul θ la stânga şi de şirul δ la dreapta).
► Gramatică independentă de context (sau de tipul 2) care are reguli de generare de forma A→α
pentru AєN şi αєV . Variabila A poate fi înlocuită cu şirul α fără a ţine seama de contextul în care apare
A.
► Gramatică regulată (sau de tipul 3) care are reguli de generare de forma A→aB sau A→a, pentru
A,B є N, a єΣ.
► Gramatică nerestrictivă (sau de tipul 0) care nu are nici o restricţie în regulile de formare.
În recunoaşterea formelor de tip imagine, cele mai utilizate gramatici sunt: gramatica regulată
şi gramatica independentă de context.

Exemplu
Presupunem că obiectul (forma analizată) este o cheie mecanică (Fig. 1.b) şi este reprezentat
prin scheletul său (Fig. 6.10.c). Considerăm primitivele a, b, c din Fig. 1.a. Fie G(N,Σ,P,S) o gramatică
cu N = {A,B,S}, Σ = {a,b,c} şi regulile de formare:
1. S→ aA;
2. A→ bA;
3. A→ bB;
4. B → c,
unde constantele a, b, c sunt cele definite prin primitivele respective (Fig. 1.a). Pentru a descrie
obiectul, se aplică legea de formare 1, apoi se aplică legea 2 de două ori, urmată de o aplicare a legii 3
şi, în final o aplicare a legii 4:

S  aA  abA  abbA  abbbB  abbbc

Gramatica de mai sus are limbajul asociat:

L(G) ={ ab nc / n ≥ 1},

unde bn indică repetarea de n ori a simbolului b. Gramatica G este capabilă să genereze scheletul unei
chei mecanice de lungime nespecificată.

b b)

c a b b b c

c)
a)

Fig.1. Exemplu de descriere sintactică a unei chei mecanice:


a)constantele,b)forma iniţială, c)scheletul formei.

Exemplu
Fie clasa triunghiurilor echilaterale având laturile de 1 cm, 2 cm sau 3 cm (Fig. 2.a). Dacă
primitivele alese sunt cele din Fig.2.b, atunci limbajul care descrie această clasă este:

L = {a n b n c n / 1≤ n ≤3}
Cazul 1 : L = L(Gr ), unde:

Gr = (N,Σ,P,S) , N = {S,A1,B1,A2,B2,C2,A3,B3,C3,D3}, Σ = {a,b,c},


P: 1. S → aA1 ,
2. A1 → bB1,
3. B1 → c,
4. A1 → aA2,
5. A2 → bB2,
6. B2 → bC2,
7. C2 → cB1 ,
8. A2 → aA3,
9. A3 → bB3,
10.B3 → bC3,
11.C3 → bD3,
12.D3 → cC2
a b

a b a b

a b a b a b

c c c c c c
a b c
a) b)
Fig. 2. Exemplu de descriere sintactică a unui triunghi echilateral:
a) clasa de triunghiuri, b) constantele.

Cazul 2 : L = L(Gic), unde:

Gic = (N,Σ,P,S), N = {S,A1,B1,A2,B2,B3,C}, Σ = {a,b,c},


P: 1.S→ aA1C,
2.A1 → b,
3.A1 → aB2 C,
4.A1 → aA2 C,
5.A2 → aB3 C,
6.B3 → bB2 ,
7.B2 → bB1 ,
8.B1 → b,
9.C → c

Gramaticile prezentate anterior generează propoziţii care, prin definirea corespunzătoare a


primitivelor (constantelor), reprezintă forme. Se pot considera gramatici similare celor de şiruri care
generează direct forme. Ele sunt însă mai greu de manevrat decât gramaticile de şiruri.

Recunoaşterea structurilor sintactice.


Dispozitive de recunoaştere automată a formelor

Există o corespondenţă biunivocă între cele patru tipuri de gramatici generatoare de şiruri de
primitive şi patru tipuri de dispozitive de calcul, utilizate ca dispozitive automate de recunoaştere:
-gramatică de tip 0 ↔ maşina Turing
-gramatică de tip 1 ↔ automat liniar mărginit;
-gramatică de tip 2 ↔ automat cu stivă;
-gramatică de tip 3 ↔ automat finit.
Cel mai puternic dispozitiv de calcul este maşina Turing, iar cel mai slab este automatul finit.
În cele ce urmează, va fi prezentat automatul finit ca un dispozitiv de recunoaştere a formelor imagine
simple.
Un automat finit A f este definit ca un cvintuplu:

A f = ( Q, Σ ,δ , q0 ,F ) ,

unde Q este mulţimea finită, nevidă de stări, Σ este alfabetul finit de intrare, δ este regula de tranziţie a
stărilor de la mulţimea Q x Σ la mulţimea părţilor lui Q, P(Q). δ furnizează stările (starea) următoare
din starea prezentă şi din simbolul corespunzător din alfabetul de intrare. qo este starea iniţială din Q,
iar F este mulţimea stărilor finale (de multe ori conţinând un singur element), submulţime a lui Q.
Automatul finit este reprezentat grafic prin diagrama stărilor. În această diagramă, stările de
tranziţie şi cea iniţială sunt reprezentate prin cercuri, iar starea finală este reprezentată printr-un cerc
dublu. Cercurile sunt unite între ele prin arce orientate ce indică tranziţiile dintre stări. Fiecare arc este
etichetat cu simbolul din alfabetul de intrare care cauzează tranziţia corespunzătoare. Un şir w de
simboluri de intrare se spune că este acceptat sau recunoscut de către automatul finit dacă, pornind din
starea iniţială q0 , cu simbolul din stânga al şirului, parcurgând pas cu pas secvenţa de simboluri w,
simbolul din dreapta al şirului conduce automatul într-o stare finală (după ce au fost parcurse toate
simbolurile din şir). Automatul se opreşte după ce a fost baleiat întregul şir sau dacă o combinaţie
stare-intrare produce δ(q,a) = Φ şi, în acest ultim caz, automatul rejectează, de asemenea, şirul.

Exemplu
Fie automatul A f = (Q ,Σ δ,q0 ,F), unde Q = {q0, q1, q2}, Σ={a,b}, F={q0} şi regulile de
tranziţie a stărilor date de: δ(q0,a)={q2}, δ(q0,b)={q1}, δ(q1,a)={q2}, δ(q1,b)={q0}, δ(q2,a)={q0},
δ(q2,b)={q1}. Astfel, automatul A f , descris mai sus şi reprezentat graphic în Fig. 3 recunoaşte şirul w
= abbabb, dar nu recunoaşte (rejectează) şirul v = aabab.

q0 q1
b

a
a
a b
q2

Fig. 3. Diagrama de stări pentru un automat finit determinist.

Un automat finit se numeşte determinist dacă are proprietatea că δ este o funcţie, δ:QxΣ→Q.
În acest caz, nu există nici o pereche (q,a), astfel încât δ(q,a) = Φ, deci maşina poate baleia complet
orice şir de intrare. Astfel, automatul din Fig. 6.12 este determinist. Acest automat este realizabil
hardware cu bistabili şi porţi logice. Se poate arăta că, dat fiind un automat finit nedeterminist Af ,
există şi se poate determina un automat finit determinist echivalent Af’ (evident, cu mai multe stări),
care să recunoască aceleaşi forme (şiruri), adică: L(Af’)=L(Af).
Două automate finite deterministe A şi A’ se numesc echivalente dacă L(A) = L(A’).
Se poate demonstra că, oricare ar fi automatul finit determinist A, există un automat finit
determinist, echivalent, cu un număr minim de stări, Am, numit automat minimal şi el este unic (mai
puţin o renumerotare a stărilor).
Referitor la relaţia dintre o gramatică regulată şi un automat finit există următoarea teoremă:

Teoremă
Există o corespondenţă biunivocă între gramaticile regulate şi automatele finite. Cu alte
cuvinte, un limbaj este recunoscut de un automat finit dacă şi numai dacă el este generat de o
gramatică regulată.

Observaţie
Dată fiind o gramatică regulată, se poate construi un automat finit care să recunoască şirurile
de constante generate cu ajutorul regulilor din acea gramatică şi, reciproc, dat fiind un automat finit
care recunoaşte anumite şiruri de simboluri de intrare, se poate construi o gramatică al cărei limbaj să
fie constituit din şirurile respective.
Obţinerea automatului finit din gramatica regulată G(N,Σ,P,S) este simplă. Astfel, dacă
N={S,A1,A2,…,An}, atunci mulţimea Q va conţine n+2 stări: q0 = S, q1 = A1 , q2 = A2 ,…, qn = An şi qn+1
єF, starea finală. Mulţimea simbolurilor de intrare Σ este identică (notaţia se păstrează) cu mulţimea
constantelor din G. Relaţia δ este definită de cele două tipuri de legi de formare din G, şi anume:
1.Dacă A i→ bA j este în P, atunci δ(qi , b) conţine starea q j .
2.Dacă A i → b este în P atunci δ(qi ,b) conţine qn+1 .
Starea iniţială q0 se identifică cu simbolul de start S, iar mulţimea F conţine stare finală, introdusă
artificial qn+1.
Pe de altă parte, dat fiind automatul finit Af =(Q,Σ,δ,q0 ,F), obţinem gramatica regulată
corespunzătoare G(N,Σ,P,S), identificând N cu Q\F, S cu starea q0 şi considerând regulile de formare
din G obţinute astfel:
1. Dacă qj este în δ(qi ,b), atunci există o lege de formare A i → bA j în P.
2. Dacă o stare din F este în δ(qi ,b), atunci există în P o lege de formare Ai → b .

Exemplu
Automatul finit corespunzător cheii mecanice prezentate în exemplul anterior se obţine scriind
legile de formare în felul următor: S→ aA1 , A1 → bA1, A1 → bA2 , A2 → c. Atunci, automatul finit va
avea structura A =(Q,Σ ,δ , q0, F), unde Q ={q0,q1,q2,q3}, Σ={a,b,c}, F={q3} şi legile δ(qo,a)={q1},
δ(q1,b)={q1,q2}, δ(q2,c)={q3}. În rest, δ(q0,b)= δ(q0,c)= δ(q1,a)= δ(q1,c)= δ(q2,a)= δ(q2,b)= Φ unde Φ
indică faptul că nu există tranziţie. Un astfel de automat (Fig. 4) recunoaşte şiruri de primitive de tipul
abb…bc.

a
b
q0 q1

q3 q2
c

Fig. 4. Exemplu de automat finit pentru recunoaşterea


imaginii unei chei mecanice.

Se observă că acest automat finit nu este determinist.

Exemplu
Graful automatului finit asociat gramaticii regulate G , generate pentru descrierea clasei
triunghiurilor echilaterale, este descris în Fig.5, în care s-a stabilit următoarea corespondenţă între stări
şi variabile:
-starea iniţială: q0 ↔S ;
-stările de tranziţie: q1 ↔A1 , q2 ↔B1 , q3 ↔A2 , q4 ↔B2 , q5 ↔C2,
q6 ↔A3, q7 ↔ B3 , q8 ↔ C3 , q9 ↔D3;
-starea finală: q10 .
b b b
q6 q7 q8 q9

c
a

b b
q3 q4 q5

c
a

b c
q1 q2 q10

q0

Fig.5. Graful automatului finit pentru recunoaşterea triunghiurilor echilaterale utilizând gramatica Gr .

S-ar putea să vă placă și