Sunteți pe pagina 1din 90

Inteligența Artificială

Prelegeri –42(28) ore


Laborator –16 ore
Examen

Comentariu. Slidurile cu chenar fac referire la


cursurile deja studiate. Ele au fost incluse pentru a
facilita accesul on-line la informația necesară
înțelegirii ulteroare a textului.
Tema 1: Modelarea inteligenței umane

1. Obiectivele modelării intelectului uman.


Aspecte generale.
2. Modele cognitive. Programarea cognitivă.
3. Compartimentele inteligenței artificiale.
5. Modelarea intelectului uman. Perspective
Subiectul 1. Obiectivele modelării intelectului uman. Aspecte generale.

Creierul uman este un fenomen multi –


aspectual și include:
1. Sfera de întreținere a sistemelor vitale ale
organismului: circulația sangvină, sistemul digestiv,
metabolismul, sistemul nervos, activitatea cerebrală.
2. Sfera psihico-emotivă: sistemul limbic etc.
3. Sfera cognitivo-intelectuală : fenomene generate de
neocortexul creierului uman. Totalitatea acestor
fenomene formează Inteligența Umana (IU)
Pentru elaborarea Inteligenței Artificiale (IA) prezintă
interes aspectul cognitivo-intelectual al IU.
Obiective pentru studiu 1.1
1. Ce definește Inteligența Umană (IU)?
Enumerați criteriile de identificare a IU. Ce
evocă testul Turing al procesului de
cunoaștere? Ce este un model cognitiv al
procesului de cunoaștere? Prezentați exemple.
2. Ce aspecte cognitive ale IU modelează logica
(logica matematică), informatica, psihologia,
lingvistica (lingvistica matematică).
3. Există aspecte ale IU care nu pot fi modelate?
Prezentați argumentele pro și contra.
Subiectul 2. Modele cognitive. Programarea cognitivă

• Modelele cognitive se bazează pe științele cognitive,


(cognitive sciences) care împrumută o parte din metodele de studiu
din: psihologie, lingvistică, științe neuronale
etc. Modele cognitive simulează activitatea cognitivo - intelectuală
umană.

• Metoda de lucru provine din logică și informatică. Modelele


cognitive au la bază abstractizarea fenomenelor cognitive la nivel
simbolic. Neuronii reali sunt înlocuiți cu neuroni abstracți –
perceptronii, de exemplu.
• Procesele cognitive sunt redate de rețelele cognitive: neurale
(neuronale), semantice, de tranziție – formalisme ce modelează
fluxurile informatice. Fluxurile informatice înmagazinează datele,
informația și cunoștințele. Parcurgerea rețelei este echivalentă cu
derularea unui proces cognitiv.
Subiectul 2. Modele cognitive. Programarea cognitivă.
Procesele cognitive redate de fluxurile informatice
de pe rețelele cognitive reprezintă generarea „înțelegerii”
proceselor din lumea reală pe baza procesării datelor,
informației și a cunoștințelor. Aceste formalisme de
generare au un caracter lingvistic și sunt, în fapt, niște
gramatici.
• Datele reprezintă înregistrări (fixări) cantitativ-valorice ale
unor însușiri ale realității (Universului -U).
• Informația include agregări de date ce participă la luarea
unor decizii. Datele, deci, reprezintă părți ale conceptului de
informație. Dacă toate datele sunt indispensabile informației
pentru întregirea conținutului, atunci agregarea devine
compoziție.
Subiectul 2. Modele cognitive. Programarea cognitivă.
Exemple. „Ford”,, „$35000” –date;
<Procurare: „Ford”, Prețul: „$35000”, Livrare: „ 1 aprilie 2019”> -
informație;
• Cunoștințele sunt pachete de informație ce au o existență în
timp, pot fi transmise în calitate de idei, know-how etc.
Cunoștințele redau modul de utilizare a informației.
„Pentru a procura un auto trebuie de întreprins următoarele: 1. De
perfectat un contract de vânzare-procurare cu of firmă-auto….”.
Sunt adevărate (true) afirmațiile (Neil Flemming):
• o colecție de date nu este informație;
• o colecție de informație nu generează cunoștințe;
• o colecție de cunoștințe nu este înțelegere;
• înțelegerea unor fapte nu implică cunoașterea adevărului.
Subiectul 2. Modele cognitive. Programarea cognitivă.

Rezumat:
• Informația este evocarea unui subiect . Răspunde la
întrebările: ce?, cine?, când?, unde?
• Cunoașterea este practica, strategia, metoda,
abordarea și modul de utilizare a informației.
Răspunde la întrebarea: cum?
• Înțelegerea include arhetipul de acțiune. Răspunde la
întrebarea: de ce?
Subiectul 2. Modele cognitive. Programarea cognitivă.
• Programarea cognitivă a apărut ca reacție la
necesitatea de automatizare a proiectării unor
dispozitive (mașini) cu grad sporit de complexitate a
funcționării: robotica, experizarea etc. Progresul
realizat în informatică a permis elaborarea de soft
specializat pe modelarea unor activități inginerești de
proiectare.
***
Obiective de studiu 1.2

1. Ce este un model cognitiv? Prezentați


exemple.
2. Care sunt criteriile definitorii ale unui model
cognitiv?
3. Ce este un proces cognitiv redat de o rețea
computerizată?
4. Care este diferența dintre o rețea semantică
și o rețea neurală?
5. Ce este un perceptron?
Obiective de studiu 1.2 (continuare)
6. Ce reprezintă informația? Prezentați
exemple.
7. Ce sunt cunoștințele? Ce este o bază de
cunoștințe? Prezentați exemple.
8. Care este diferența dintre cunoștințe și
înțelegere?
Subiectul 3. Compartimentele inteligenței artificiale.
• Definiție. Totalitatea metodelor și abordărilor privind modelarea
unor aspecte ale Inteligenței Umane formează Inteligența
Artificială (IA).
• Lucrările în domeniul elaborării IA pot fi repartizate pe 4 direcții
globale:
1. Stocarea cunoștințelor utilizate în sistemele cognitive (IA) sub
forma unor baze de cunoștințe. Datele, informația și cunoștințele
permit asigurarea informațională a unor procese cognitive.
2. Elaborarea unor interfețe intelectuale pentru sistemele
informatice ( profesioniste).
3. Achiziția de cunoștințe în LN: sintaxa, semantica, pragmatica LN,
proiectarea unor lumi virtuale.
4. Elaborarea unor sisteme cognitive cu elemente de percepție
vizuală, acustică a datelor parvenite din mediul ambiant și
interpretarea lor inteligentă.
Obiective de studiu 1.3
1. Ce este o interfață intelectuală? Metode și
metodologii de elaborare a unor interfețe
intelectuale. Prezentați exemple.
2. Cum are loc achiziția de cunoștințe și stocarea lor
sub forma unor baze de cunoștințe?
3. Descrieți algoritmul percepției vizuale la ființele
umane. Prezentați exemple.
4. Descrieți algoritmul percepției auditive. Prezentați
exemple.
5. Definiți conceptul de „ intelect” pe baza inteligenței
Tema 2: Modele sintactico-semantice de redare
a proceselor cognitive. Pragmatica.
1. Modele de gândire. Metode matematice și euristice
de gândire. Gândirea semiotică. Sisteme de semne.
Limbaje naturale și formale.
2. Redarea proceselor cognitive: vocabularul,
recogniția cuvintelor. Algoritmul Rytter.
4. Modele sintactico-semantice de redare a proceselor
cognitive.
5. Problemele modelării pragmaticii a unui limbaj
Subiectul 1. Modele de gândire. Metode matematice și euristice de gândire. Gândirea semiotică. Sisteme de semne. Limbaje naturale și
formale.

• Gândirea reprezintă un proces informațional declanșat în creierul


factorului de decizie (ființă umană, agent fizic sau virtual, robot
etc.) la producerea unui eveniment (schimbarea stării de lucruri)
în mediul ambiant, situat în sfera sa de impact (accesibilitate).
• Procesul de gândire este ierarhic structurat pe 3 direcții:
1. Percepție – estimarea situației (stării de lucruri) din lumea
înconjurătoare.
2. Planificarea reacției la evenimentul produs – fixarea scopului
final al intervenției, asigurarea duratei finite a reacției, selectarea
mijloacelor de atingere a scopului, fracționarea scopul final în
sub-scopuri și declanșarea proceselor intermediare respective
fiecărui sub-scop.
3. Verificarea atingerii scopului final.
Subiectul 1. Modele de gândire. Metode matematice și euristice de gândire. Gândirea semiotică. Sisteme de semne. Limbaje naturale și
formale.

• Din cele spuse anterior, lumea înconjurătoare este „populată” de obiecte


care:
1. Au o realizare virtuală sau materială .
2. Au identitate, însușiri (proprietăți, atribute), care caracterizează obiectul și
formează „baza sa de date”.
3. Au un set de operații, care permit manipularea obiectului.
4. Au un set de stări, care caracterizează comportamentul (creare, eliminare,
activare).
Procesul de gândire, astfel definit, constă din elemente
decizionale de forma:
[O x [Sx T]] O, unde
O- set finit de obiecte, T- set de transformări (la general –funcționale)
ale obiectului, S- set de stări.
Subiectul 1. Modele de gândire. Metode matematice și euristice de gândire. Gândirea
semiotică. Sisteme de semne. Limbaje naturale și formale.
• Explicație.
1. Expresia de mai sus reprezintă un predicat de gradul 3.
2. Expresia [SxT] este un tabel: pe verticală – stările procesului de gândire,
iar pe orizontală- transformările aplicate obiectului.
3. Expresia [Ox[SxT]] este un tabel: pe verticală – obiectele, iar pe orizontală
transformările selectate din tabelul [SxT].
4. Rezultatul este redat de tabelul [Ox[SxT]] și este unul sau mai multe
obiecte.
5. Alegerea tranformării aplicate obiectului selectat se face conform unor
reguli anume proiectate pentru acest proces de gândire. Astfel de reguli se
numesc euristice.
6. Elaborarea setului de reguli euristice se face pe bază experienței în
domeniu, unor cunoștințe și înțelegeri acumulate.
7. Procesul de găndire bazat pe principii euristice nu poat garanta reușita cu
100%.
Subiectul 1. Modele de gândire. Metode matematice și euristice de gândire. Gândirea semiotică.
Sisteme de semne. Limbaje naturale și formale.
• Exemplu. Fie date 2 formule ale logicii propoziționale clasice:
1 2
R  (  P  Q )  ( Q  P )  R , unde
simbolurile de operații logice au sensul lor obișnuit, iar R, P, Q sunt
variabile de tip propozițional. Să se declanșeze un proces mental (de
gândire) care ar demonstra echivalența în sens sintactic al formulelor.
Explicație. Adică socotind formulele ca șiruri de simboluri să se
găsească un șir finit de transformări care ar translata prima formulă în
cea de a doua.
O abordare semanică ar presupune:
1. Construirea unei tabele de valori (true, false) pentru prima formulă,
apoi pentru fomula a doua.
2. Compararea tabelelor. Dacă sunt identice, atunci formulele sunt
semantic echivalente
Subiectul 1. Modele de gândire. Metode matematice și euristice de gândire. Gândirea semiotică. Sisteme de semne.
Limbaje naturale și formale.

4. Dacă formulele sunt echivalente atât în sens semantic, cât și în sens


sintactic, atunci formulele sunt echivalente în sens larg.
5. Este clar că pentru a obține echivalența în sens larg a formulelor
propoziționale efectuând doar transformările sintactice trebuie de ales astfel
de transformări care asigură la fiecare aplicație a transformării echivalența
semantică a formulelor intermediare.
6. Condiția formulată în p.5 poate fi asigurată doar dacă alegem în calitatea
de transformări axiomele logicii propoziționale.
Transformările (setul T)
T1. A  B  B  A; A  B  B  A
T2. A  B   B   A
T3. A  A  A ; A  A  A
T4.
A  (B  C)  ( A  B)  C; A  (B  C)  ( A  B)  C
T5.
A  B   ( A   B )
T6. A  B   A  B
Subiectul 1. Modele de gândire. Metode matematice și euristice de gândire. Gândirea semiotică. Sisteme de semne.
Limbaje naturale și formale.

• Legități euristice (transformări la nivel sintactic, setul S)


1. ∂V - includerea în expresie a unei variabile suplimentare care nu a fost
2. ∂N – variabila intră în expresiile confruntate cu un număr diferit de ori.
3. ∂T – una dintre expresii începe cu semnul negației.

4. ∂C – există inadvertențe între operațiile ce leagă două variabile.
5. ∂G - grupările asociative sunt diferite în expresiile comparate.
6. ∂P - diferă poziția componentelor (variabilelor)
Tabela [SxT] euristică. Se construiește pentru cazul concret, adică este euristică.
T1 T2 T3 T4 T5 T6
7. ∂V
8. ∂N x
9. ∂T x x x
10. ∂C x x
11. ∂G x
12. ∂P x x
Subiectul 1. Modele de gândire. Metode matematice și euristice de gândire. Gândirea semiotică. Sisteme de semne.
Limbaje naturale și formale.

1. Explicație. Semnul „x” la intersecția coloanei transformărilor cu coloana stărilor


înseamnă posibilitatea aplicării transformării la obiectul O. În dependență de obiect pot
fi disponibile mai multe transformări în una și aceeași stare.
2. Aspectul semantic al obiectului O se obține atunci când variabilelor A, B, C etc. le sunt
atribuite valori. În calitate de valori pot fi atribuite constante grafice, constante textuale
etc. În varianta prezentată (modelu propozițional , logica propozițională) vom utiliza
pentru interpretarea formulelor ce desemnează obiecte concrete propozițiile afirmative.
Exemplu. Fie date propozițiile A=„ Arborii au înverzit”, B=„ Primăvara a sosit”. În calitate de
formulă a fi interpretată vom lua axioma T6.
Interpretarea va fi: „Arborii au înverzit” „Primăvara a sosit” A  B  A  B

Analiza: Fie A =„true” , formula e adevărată deoarece este
axiomă,deci, B= „true” în mod necesar.
Analogic se deduce și partea a doua a echivalenței.
Exemplu. Să se testeze echivalența sintactică și semantică a expresiilor :
• expresiilor : R&( -PQ) și (QvP) &R

***********
Subiectul 1. Modele de gândire. Gândirea semiotică. Sisteme de semne.
Limbaje naturale și formale.
Teză: Procesele de gândire au un caracter semiotic. Procesele cognitive
sunt posibile doar în cadrul unui limbaj. Nu există procese de gândire în
afara unui limbaj
Definiția 1. Limbajul în sens larg reprezintă un sistem de semne, care permite
modelarea unor stări de lucruri ale lumii înconjurătoare (lumea reala,
realitatea).
Limbajele includ trei aspecte fundamentale:
1. Aspectul sintactic: sistem de reguli, care asigura combinarea semnelor –
gramatica limbajului.
2. Aspectul semantic: sistem de reguli, care fixează raportul intre semn si
lumea reala influențând sistemul de reguli sintactice.
3. Aspectul pragmatic: sistem de reguli,care definește contextul (modul) de
utilizare a limbajului.
Subiectul 1. Modele de gândire. Gândirea semiotică. Sisteme de semne. Limbaje naturale și formale.

Definiția 2. Un limbaj L în sens larg conține următoarele componente:


1. Vocabularul – o mulțime regulată construita pe baza unui alfabet A finit.
Elementele mulțimii se numesc uneori cuvinte.
2. Sintaxa – un set finit, bine definit, de reguli sintactice.
3. Semantica –un set finit, bine definit, de reguli de interpretare semantică
(atribuirea de valori elementelor sintactice ale limbajului).
4. Pragmatica – un set finit de reguli de utilizare a limbajului
5. Universul –o mulțime de submulțimi de valori care formează baza regulilor
de interpretare semantica.
Definiția de mai sus poate fi simbolic rescrisa astfel:
L=(V, SN, SM, U), unde V este vocabularul, SN- regulile sintactice, SM –
regulile semantice si U este universul de interpretare.
Definiția 2 definește atât limbajele naturale, cât și limbajele formale.

Vocabularul, sintaxa, semantica limbajelor vor fi evocate în


continuare.
*
Obiective de studiu 1.
1.Care sunt aspectele procesului de gândire ce pot fi modelate matematic și informatic?
2.Cum poate fi adaptată tehnologia obiect-orientată de proiectare a softului în informatică pentru modelarea
procesului de gândire?
3.Explicați sensul formulei de modelare a procesului de gândure:
[O x [Sx T]] O, unde O- set finit de obiecte, T- set transformări
ale obiectului, S- set de stări.
4.Ce este modelarea euristică și care este deosebirea ei de modelarea algoritmică ?
5.Ce este logica propozițională și care este sistemul de axiome?
6.Cum se interpretează sistemul de axiome la nivel semantic? Exemple.
7.Ce sunt echivalențele sintactice și semantice ale formulelor logicii propoziționale?
8.Care sunt principiile de modelare euristică a procesului de gândire folosind tabela [SxT] euristică?
9. Să se testeze echivalența sintactică și semantică a expresiilor :
expresiilor : R&( -PQ) și (QvP) &R

.
Obiective de studiu 1.

10. Ce reprezintă semiotica?


11. De ce procesul de gândire are un caractee semiotic? Explicați.
12. Ce este un limbaj semiotic, limbaj natural, limbaj formal?
13. Care sunt componentele unui limbaj?

********
Subiectul 2. Redarea proceselor cognitive: vocabularul, recogniția cuvintelor.
Algoritmul Rytter

Vocabularul: generarea cuvintelor


• Materialul folosit la articularea cuvintelor sunt caracterele – entități materiale
concrete. Numărul caracterelor utilizat este finit, iar mulțimea de caractere este
numită, de obicei, alfabet.
Pentru articularea cuvintelor pe baza alfabetului ales pentru definirea
vocabularului limbajului sunt necesare trei operații:

1. Concatenarea - alipirea caracterelor la dreapta sub forma unui sir de


caractere de lungime finita (numărul de caractere). Șirul de caractere, obținut
prin aplicarea repetata a operației de concatenare uneori este numit și cuvânt.
Prin extensiune, concatenarea poate genera mulțimi de șiruri de caractere
(cuvinte). Operația de concatenare poate fi redefinită pentru doua sau mai multe
șiruri de caractere, de exemplu p∙q, sau pq.

.
Subiectul 2. Redarea proceselor cognitive:acte de vorbire (speech acts),
vocabularul.

2. Reuniunea mulțimilor șirurilor de caractere, care are sensul obișnuit


din teoria mulțimilor, de exemplu, P U Q sau P + Q, P|Q, unde P si Q
sunt mulțimi de șiruri de caractere.
3. Iterația Clenee – R*=R0+R1+ …+ Rn+…,unde R2=R∙R, R0={ε} – mulțimea
cu șirul vid etc. R* obținuta astfel este mulțimea tuturor șirurilor de
caractere de lungime arbitrară. Lungimea unui șir este numărul de
caractere utilizate la formarea șirului. Șirul vid ε are lungimea 0.
Exemplu. Fie dată mulțimea M={0,1,2,3,4,5,6,7,8,9}. Să se obțină
iterația Clenee de gradele 0, 1, 2, 3. Este oare mulțimea M o mulțime
regulată?

2. Fie dată mulțimea N={0, 1, 2, a, b, c}. Să se proiecteze formula pentru


obținerea mulțimii Idn – mulțimea identificatorilor
peste mulțimea N.
Subiectul 2. Redarea proceselor cognitive:vocabularul, recognișia cuvintelor.
Algoritmul Rytter.

Definiția 3. Mulțimile șirurilor de caractere astfel produse sunt


numite mulțimi regulate.
• Expresiile regulate permit descrierea lexemelor (cuvintelor),
care formează limbajul L în forma sa operațională. Baza
expresiilor regulate sunt mulțimile regulate definite anterior.

*******
Subiectul 2. Redarea proceselor cognitive: vocabularul, recogniția cuvintelor. Algoritmul Rytter.

Definiția 4. Fie dat un alfabet Σ, meta – simbolurile: Ø, ε, •, |,* ,


(, ) peste care se definește expresia regulată E astfel:
1. Expresia E este atom peste Σ dacă este un caracter din
Σ U {ε,Ø} sau este (E’) , unde E’ este expresie regulată.
2. Expresia E este factor, dacă este atom sau este E’*, unde E’
este factor peste Σ.
3. Expresia E este termen, dacă este factor sau este E’ • E’’,
unde E’ este termen, iar E’’ este factor peste Σ.
4. Expresia E este expresie regulată, dacă este termen sau E’|E’,’
unde E’ – expresie regulată, iar E’’ este termen peste Σ.
Subiectul 2. Redarea proceselor cognitive: vocabularul, recogniția cuvintelor .
Algoritmul Rytter.
Explicație: Ø, •, ε
Caracterul Ø= { }, iar ε – caracterul (șirul) vid. Caracterul • poate fi
omis.
Definiția 5. Limbajul L(E) definit de expresia regulată E este:
1. L(a)={a}, L(ε)={ε}, L(Ø)= Ø.
2. L((E))= L(E)
3. L(E*)= L(E)*
4. L(E’ • E’)= L(E’)L(E’’)
5. L(E’|E’’) = L(E’) U L(E’’)
Exemplu. Să se prezinte ostensiv limbajele: L((1234)*), L((1|2)*).
Folosind conceptul de nume pentru expresiile regulate se poate
scrie:
<cifra>→ 0|1|2|3|4|5|6|7|8|9
<cifre>→ <cifra ><cifra>*
Subiectul 2. Redarea proceselor cognitive: vocabularul, recogniția cuvintelor. Algoritmul
Rytter.
* Vocabularul. Recogniția cuvintelor..
Procesul de generare a cuvintelor unui vocabular presupune, numaidecât,
existența unui proces invers, de identificare, a fiecărui cuvânt produs. În acest
sens, automatul cu stări finite determinist (AFD) reprezintă un model matematic
al unui dispozitiv, care poate identifica șirurile finite de caractere (cuvintele) ca
fiind corecte sau incorecte. Se mai poate afirma, că mulțimea de șiruri
identificate de AFD ca fiind corecte, adică acceptate, formează la rându-i un
limbaj. Mai mult, conform definiției 4, șirurile acestui limbaj au un caracter
regulat (mulțime regulată, expresie regulată).
Definiția 6. AFD este definit de următoarele componente:
1. A – mulțimea finită a caracterelor formatoare de șiruri finite –alfabetul.
2. S – mulțimea finită de stări.
3. s0 – starea inițială a automatului.
4. F - o submulțime finită a S, care accepta șirul analizat.
5. δ – o funcție bidimensionala de tranziție dintr-o stare in alta:
δ:SxA→S
Subiectul 2. Redarea proceselor cognitive: acte de vorbire (speech acts),
vocabularul, recogniția cuvintelor
• Exemplu. Fie dat alfabetul {a, b}. Să se verifice dacă șirul propus la intrarea AFD
conține 2 intrări consecutive ale lui b.
• intrare AFD Accept-”1”
• abba
• Respins - “0”

Forma grafică a AFD reprezintă o tabelă:


a b

1 1 2 1

2 E 1 0
J
Ff E E E 0
jjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjjkkLl’
Lk

A
Subiectul 2. Redarea proceselor cognitive: vocabularul, recogniția cuvintelor.
Algoritmul Rytter.

• AFD poate fi proiectat sub doua forme:


1. Acceptor - automatul analizează șirul propus pana la sfârșit,
chiar dacă la un moment devine, clar că analiza de mai
departe nu are sens - șirul e respins.
2. Procesor - automatul analizează șirul pană la prima eroare
depistată.
În exemplul 1 AFD este acceptor.
Exemplu. Să se proiecteze același AFD ca in exemplul 1, dar
fiind sub forma de procesor. a b ―|
1 1 2 A
2 R 1 R
Subiectul 2. Redarea proceselor cognitive: vocabularul, recogniția cuvintelor.
Algoritmul Rytter.

• Exemplul 3. Sa se construiască un AFD care ar identifica cuvintele SON si


SOLAR.
A S L N O R
1 S1 0
S1 O1,O2 0
O1 N 0
N 1
D 0
O2 L 0
L A 0
A R 0
R 1
Subiectul 2. Redarea proceselor cognitive: vocabularul, recogniția cuvintelor.
Algoritmul Rytter.
• Exemplul 3 este remarcabil prin faptul, că valoarea tranziției AFD nu este
univoca. Poate exista o submulțime de stări ca rezultat al tranziției și, deci,
tranziția este non - deterministă. Automatul se numește cu stări finite
non - determinist (AFN).
Definiția 5. Un automat AFD, pentru care : 1) există o submulțime de stări
Inițiale și 2) funcția de tranziție se definește astfel: δ: S x A→2 S , se numește
automat cu stări finite non - determinist (AFN).
Șirul de caractere este acceptat de către AFN, daca exista măcar un șir finit
de stări care accepta șirul propus automatului.
Automatul non - determinist nu are nimic cu probabilitatea. Este folosit ca un
mijloc de minimizare a numărului de stări utilizate la construirea
automatului. Reieșind din definiția funcției de tranziție, dacă AFN are n stări,
atunci AFD are 2n stări.
Teorema 1. Pentru orice AFN exista un AFD care acceptă aceleași șiruri de
caractere (fără demonstrare).
Subiectul 2. Redarea proceselor cognitive: vocabularul, recogniția cuvintelor.
Algoritmul Rytter

• Pentru a înțelege cum are loc procesul de construire a AFD pe baza


automatului AFN trebuie de analizat formula de tranziție:
δD(S,x)={s|s  δN(t,x) și t  S}
Exemplu 4. Construirea AFD pe baza AFN: AFN →AFD

A S L N O R
1 {s1,s2} 0
{s1,s2} {o1,o2 } 0
{o1,o2} L N 0
N 1
L A 0
A R 0
R 1
Subiectul 2. Redarea proceselor cognitive: vocabularul, recogniția cuvintelor.
Algoritmul Rytter.

• Aserțiune. Pentru orice expresie regulată E definită peste un


alfabet A există un AFN cu ε – tranziții încât L(E)=L(N).
Schema raționamentului: Metoda inducției matematice.
1. Se construiesc automatele pentru expresiile atomare:
Ø, ε, a
2. Pe baza p.1 se construiește AFN pentru expresia E’| E”.
3. Pe baza p.1 se construiește AFN pentru expresia E’ • E”
4. Pe baza p. 1 se construiește AFN pentru expresia E’*.
5. Se arată că automatele astfel construite acceptă limbajele
respective descrise de expresiile regulate.
Subiectul 2. Redarea proceselor cognitive: vocabularul, recogniția cuvintelor.
Algorimul Rytter.
Algoritmul de construire a AFN echivalent unei expresii regulate date
(algoritmul Rytter)
Raționament preliminar:
1) Pentru reprezentarea fiecărei operații | și * din expresia regulată în
automatul construit sunt necesare 2 stări.
2) Pentru reprezentarea (,) și • nu se introduc noi stări.
3) Pentru fiecare simbol din alfabet și pentru ε sunt necesare 2 stări.
4) Tabela de tranziție trebuie să aibă 2(n-m) rânduri, unde n este
numărul total de simboluri din expresia regulată, iar m numărul de
operații care nu produc stări.
5) Tabela de tranziție trebuie să aibă 3 coloane: 1- simbolul alfabetic,
2- nodul întâi și 3-nodul secund.
Dimensiunea tabelei de tranziție a automatului construit va fi: 6(n-m).
Subiectul 2. Redarea proceselor cognitive: vocabularul, recogniția cuvintelor.
Algoritmul Rytter.
Descrierea tranziției de la expresia regulată la automatul echivalent se
face în termenii unui arbore etichetat.
Pașii algoritmului:
Nodurile arborelui sunt etichetate cu simbolurile operațiilor, iar
frunzele sunt marcate de simbolurile alfabetului limbajului regulat.
1. Arborele este parcurs în pre - ordine începând cu rădăcina.
Nodurilor li se atribuie numerele 1,2,…,n-m. Nodurile produs sunt
omise.
2. Arborele mai este parcurs o dată și nodurilor li se atribuie câte un
cuplu (i,f) – starea inițială și starea finală pentru nod conform
regulii: n.i=2k-1 și n.f=2k, unde k este numărul atribuit nodului la
p.1 și dacă nodul este •, atunci n.i= s.i și n.f=d.f, unde s este nodul
subordonat – stânga, iar d – nodul subordonat - dreapta.
3. Se inițializează Tabela de tranziție pentru automat.
Subiectul 2. Redarea proceselor cognitive: acte de vorbire (speech acts),
vocabularul, recogniția cuvintelor
4. Se parcurge arborele a treia oară și se fac următoarele calcule:
•|: nod1[n.i]=s.i, nod2[n.i]=d.i, nod1[s.f]=n.f, nod2[d.f]= n.f
• : nod1[s.f]=d.i
*: nod1[n.i]= n.f, nod2[n.i]= s.i, nod1[s.f]= s.i, nod2[s.f]=n.f
“a”: sim [n.i]=‘a’, nod1[n.i]=n.f.
Exemplu. Pentru expresia regulată E =a*b| cd să se construiască
automatul echivalent.
Rezolvare.
Rezolvarea se va face în două etape:
• ER -> arbore de derivare -> AFN
Subiectul 2
• Etapa I. E=a*b |cd prioritatea: * = 3, • = 2, |= 1, ( = 0, ) =4.
\1
(1,2)
(3,8) • • (9,12) Pre-ordine

(3,4) *2 (7,8) b 4 c5 6d
(9,10) (11,12)

(5,6) a 3

P=12 Dimensiunea Tabelei de tranziție = 3x12


Subiectul 2
• Etapa II. Calcularea stărilor inițiale și finale ale AFN pentru fiecare
nod de pe arbore.
Convenții:
• n.i – starea inițială a nodului N.
• n.f – starea finală a nodului N.
• s.i – starea inițială a nodului subordonat stânga.
• s.f – starea finală a nodului subordonat stânga.
• d.i – starea inițială a nodului subordonat dreapta.
• d.f – starea finală a nodului subordonat dreapta.
• (n.i, n.f) – stările inițială și finală ale nodului N.
• (s.i, s.f) – stările inițială și finală ale nodului subordonat stânga.
• (d.i, d.f) – stările inițială și finală ale nodului subordonat dreapta.
Subiectul 2
• Etapa III: Tabela de tranziție a automatului AFN.

P simbol nod1 nod2


1 3 9
2 0 0
3 5 4
4 7 0
5 a 6 0
6 5 4
7 b 8
8 2 0
9 c 10 0
10 11 0
11 d 12 0
12 2 0
Obiective de studiu 2
1. Ce este o expresie regulată?
2. De ce expresiile regulate sunt determinante pentru construirea unor
dispozitive inteligente.
3. Care sunt regulile de formare a expresiei regulate( definiția 4)?
4. Ce este o mulțime regulată? Prezentați definiția cu explicații.
5. Ce este o gramatică regulată (automată)? Prezentați exemple.
6. Care este relația între un AFD(N) și o expresie regulată?
7. Agoritmul Rytter. Condițiile preliminare de proiectare.
8. Algoritmul Rytter. Proiectarea arborelui încărcat al expresiei regulate.
9. Algoritmul Rytter. Generarea unui AFD.
10. Algoritmul Rytter. Reducerea AFD-forma Rytter la forma clasică tabelară.
11. Cum am putea transforma algoritmul Rytter într-o prescripție de tip
euristic
********
TEMA 3: Modele sintactice de redare a proceselor
cognitive.

1. Gramatici formale și limbaje formale


1.1 Gramatici formale cu context independent
2. Descrierea mulțimilor regulate utilizând
gramaticile.
2.1 Gramatici liniare de dreapta.
3. Recogniția limbajelor CF. Automatul cu stivă
determinist.
Subiectul 1 . Gramatici formale și limbaje formale
• Gramaticile formale sunt o modalitate de a descrie a mulțimilor
de șiruri de caractere. Sunt anumite similitudini între gramatici și
expresii regulate,
Însă maniera în care descriu șirurile de caractere se deosebește. Acest
fapt permite exploatarea complementarității acestor formalisme.
Definiție generală. Gramatica în sens uzual desemnează un set bine -
definit de reguli (numite și reguli gramaticale) care permite scrierea
corectă a unor fraze lingvistice.
Limbajul, în care sunt formulate aceste reguli, ține de metalimbaj:
limbajul (poate fi și formalizat) utilizat pentru descrierea altui limbaj
( limbajul obiect). Pentru a înlătura confuziile posibile, adică unde este
vorba de metalimbaj și când se insistă pe limbajul - obiect, va fi
prezentată o notație specială.
Subiectul 3. Modele sintactice de redare a proceselor cognitive
Exemple. Metalimbaj: Limbaj:
<propoziție> ------------
<subiect> ------------
<predicat> arborează
<substantiv> drapel
<substantiv> președinte
<obiect> -------------
<adjectiv> tricolor
Regulile in metalimbaj:
1. <propoziție> → <subiect> <predicat> <obiect>
2. <subiect> → <substantiv> <adjectiv>
2’. <subiect> → <substantiv>
3. <obiect> → <substantiv> <adjectiv>
4. <predicat> → arborează
5. <substantiv> → președintele
6. <adjectiv> → tricolor
7. <substantiv> →drapel
Derivarea: <propoziție> => <subiect> <predicat> <obiect>
Subiectul 3. Modele sintactice de redare a proceselor cognitive
(Continuare)
• <subiect> <predicat> <obiect>  <substantiv> <predicat> <obiect> 
Președintele <predicat> <obiect> 
Președintele arborează <substantiv> <adjectiv> 
Președintele arborează drapelul <adjectiv> 
Președintele arborează drapelul tricolor
Arbore: <propoziție>

<subiect> <predicat> <obiect>

<substantiv> arborează <substantiv> <adjectiv>

Președintele drapelul tricolor


Arbore de derivare de stânga
Subiectul 1.1. Gramatici cu context independent (CF)

*
Definiția . O gramatică G este definită de componentele sale:
1. Mulțimea finită N a non-terminalelor.
2. Mulțimea finită T a terminalelor.
3. Mulțimea finită R de reguli de forma <A> →α, unde A N, iar α-
șir din terminale și non-terminale sau este șirul vid – ε.
4. Axioma - un non-terminal cu care începe orice derivare corectă.
Gramaticile definite astfel sunt supranumite și sentenționale cu
context independent - CF (Context Free).
Definiția . Relația de derivare cu o gramatică G notată =>G*
reprezintă un proces (lanț) cu caracter deductiv, care începe cu
axioma. Pașii procesului deductiv se obțin prin aplicarea de reguli din
mulțimea R: de fiecare data un singur non - terminal este înlocuit cu
partea dreapta a regulii ce are în stânga acest non-terminal. Procesul
ia sfârșit, când toate non-terminalele au fost eliminate.
Subiectul 3. Modele sintactice de redare a proceselor cognitive
Un singur pas al procesului deductiv este desemnat cu => G. Dacă
gramatica nu conține ε – reguli (partea lor dreaptă e vidă), atunci
procesul se notează - =>G+. Când nu există confuzie indexul G este
omis.
Definiția. Mulțimea L a tuturor șirurilor terminale obținute prin
derivare este supranumita limbaj formal generat de gramatica G cu
context independent (GCF). Se notează astfel:
L(G)={t|S=>G * t, t
 T*, S –axioma gramaticii}
Exemplul. Fie data gramatica G cu axioma S:
1. <S>→a<A><B>c
2. <S>→ε
3. <A>→c<S><B>
4. <A>→<A>b
5. <B>→b<B>
6. <B>→a
Subiectul 3. Modele sintactice de redare a proceselor cognitive
Definiție. Gramatica care asigura unicitatea arborelui de derivare
pentru orice șir terminal e numită gramatica univocă.

*********
Subiectul 2. Descrierea mulțimilor regulate utilizând gramaticile
*
• Metodele de descriere a mulțimilor regulate de șiruri finite de
caractere (AFD, AFN etc.) pot fi interpretate în termenii unor
gramatici CF. Interpretarea vizează forma regulilor gramaticilor CF,
anume:
Aserțiune . Orice mulțime regulată de șiruri finite de caractere
poate fi descrisa de o gramatica CF G cu regulile de forma <A> → t<B>
sau <A> →ε și invers, unde simbolul t este terminal. Acest tip de
gramatică se numește gramatică automată (GA).
Demonstrație. Fie data o mulțime regulată M descrisă de un AFD. Vom
construi gramatica CF corespunzătoare astfel:
1. Mulțimea terminala T a gramaticii G va fi mulțimea de intrare a
AFD.
Subiectul 3. Modele sintactice de redare a proceselor cognitive

2. Mulțimea non-terminalelor gramaticii G va fi mulțimea de stări a AFD.


3. Axioma gramaticii G va fi starea inițială a AFD.
4. Tranziția din starea A in B la citirea t va avea în G regula <A> → t<B>.
5. Daca S este starea de acceptare, atunci in G va fi inclusă regula <S> →ε

**********
Subiectul 2.1. Gramaticile liniare de dreapta (GLD).
*
Aceste gramatici descriu mulțimile regulate ca și gramaticile automate. Mai
mult, GLD pot fi reduse printr-o procedura algoritmică efectivă la GA.
Definiția . Gramatica CF o vom numi gramatică liniară de dreapta
(GLD),daca regulile gramaticii au forma:
<A>→ γ<B> sau <A>→ε, unde γ este un șir terminal.
Procedura de reducere a GLD la GA. Procedura are pașii următorii:
1. Regulile de forma <A>→ γ vor fi înlocuite cu:
<A>→ γ<Epsilon>
<Epsilon> → ε
2. Regulile de forma <A>→t1…tn<B> vor fi înlocuite cu:
<A>→t1<t2…tnB>

<ti…tnB>→ti<ti+1…tnB>

<tnB>→tn<B>
Subiectul 3. Modele sintactice de redare a proceselor cognitive
3. Regulile <A>→<B> și <B>→t vor fi înlocuite cu:
<A>→t
4. Regulile de forma <A>→<A> vor fi eliminate.
Exemplul . Fie data gramatica LD:
<A> →ab<B>
<B>→bc<B>
<B>→f<A>
<B>→c<A>
<A>→ε
Sa se obțină GA echivalentă și să se construiască AFD respectiv.
Exemplul . Se dă un fragment de program:
… Real var, …, var …..
1. Să se elaboreze gramatica CF care ar descrie lista de variabile.
2. Sa se construiască AFD care ar accepta fragmentul prezentat.
Subiectul 3. Recogniția limbajelor CF. Automatul cu stivă determinist
*
• Limbajele formale regulate (LFR) pot fi pe deplin descrise de AFD (AFN):
mulțimile șirurilor de caractere finite (LFR) sunt acceptate sau respinse de un
AFD. AFD folosește cu acest scop o memorie finită și fixată (nu poate fi
extinsă sau restrânsă în procesul de recunoaștere a limbajului). Memoria
unui AFD este formată de stările definite. Un limbaj de programare are o
structură mai complexa decât un LFR. De exemplu, folosirea perechilor de
paranteze nu poate fi procesata de un AFD: numărul de stări utilizate nu este
predictibil, ci depinde de numărul de paranteze deschise și închise, deci, este
variabil. Pentru gestionarea unor astfel de fenomene se propune un nou tip
de automat – automatul cu stivă determinist (ASD).
Definiția 18. Un ASD constă din:
1. Mulțimea finită de caractere - alfabetul A, care conține marcatorul: ―|
2. Mulțimea finită de caractere M pentru memoria extensibila – stiva cu
semnul Δ – marchează începutul stivei.
Subiectul 3. Modele sintactice de redare a proceselor cognitive
• Comentariu la definiție: Schema grafică a unui ASD
Intrarea – șirul de procesat (A)
1 0 0 0 1 1 1 0 0 ―|

D
Control
C
A

s B
A
Starea
Δ

Ieșirea Output Stiva


Subiectul 3 (continuare)

3. Mulțimea finită de stări S cu starea inițiala - s0.


4. Funcția de tranziție –δ:A x M x S →(a,m,s) – Unitatea de
Control (UC)
• În dependență de informația procesată UC asigură tranziția pe
baza:
1. Stării unității de control.
2. Simbolului din vârful stivei.
3. Simbolul de intrare analizat.
Tranziția dintr-o stare în altă stare rezidă în efectuarea unor
operații asupra stivei și a simbolului de intrare analizat.
Subiectul 3. Modele sintactice de redare a proceselor cognitive
Definiția. Tranziția este definită de următoarele clase de operații:
A. Operația cu starea:
State (s) – tranziția în starea s (starea s devine curentă).
B. Operațiile cu stiva:
Push down (u) - împinge în stivă simbolul u.
Pop up - extrage simbolul superior din stivă (conținutul stivei se
modifică).
SKIP: stiva rămâne intactă (neschimbată). Operația nu are imagine.
C. Operații cu șirul de intrare (analizat):
Shift - se analizează următorul simbol de intrare.
Hold - simbolul analizat rămâne simbol curent.

(continuare)
Subiectul 3. Modele sintactice de redare a proceselor cognitive
*Extensiunea operațiilor pentru ASD
1) Prima extensiunea ține de lucrul cu stiva – operația substituției multiple:
Subst(α) : extrage simbolul superior din stivă și împinge șirul α, format din
elementele M în stivă.
Exemplu. Fie dată tabela cu operația Subst:
Tabela cu operația extinsă Subst
0 1 ―|
V Pop Subst(UV) R
Hold Shift
U Pop R R
Shift
Δ R Subst(UV) A
Shift

Să se reconstituie gramatica inițială. Care sunt șirurile de caractere acceptate.


Subiectul 3. Modele sintactice de redare a proceselor cognitive
Construirea unui ASD pe baza unei gramatici CF poate fi prezentată sub forma
unei proceduri efective.
Procedura 1. (GCF ASD).
1. Mulțimea terminală T (GCF)  Mulțimea Input ASD+”―|”

2. Mulțimea N (GCF) + (T\ terminale –prima – poziție) Mulțimea Stiva +”Δ”
3. Reguli GCF forma: <A>→aα Subst(αinv), Shift
<A>→a Pop, Shift 

Pop, Shift, dacă stiva:a –input:a
4. stiva:Δ – input:―|, atunci - A 
5. Celulele tabelei ASD care nu au fost completate , atunci–R
Exemplul . 1) Fie data gramatica:
<A>→ab<B>
<A>→b<B>b<A>
<B>→d
<B>→c<B>

Să se obțină tabela de tranziție ASD pentru această gramatică.


Subiectul 3. Modele sintactice de redare a proceselor cognitive
Exemplu. Fie dată tabela de tranziție a unui ASD.

d b c ―|
<S> Subst(<A><S>) Subst(c<A>) R R
Shift Shift
<A> Subst(<A>) R Pop R
Shift Shift
c R R Pop R
Shift
Δ R R R A

Să se reconstituie gramatica echivalentă acestui ASD. Gramatica obținută e


unica posibilă?
Obiective de studiu 3.
TEMA 4. Modele sintactico-semantice de redare
a proceselor cognitive
1. Translatarea LCF. Formularea problemei.
2. Interpretarea semantică a șirurilor sintactice
cu o gramatică CF.
3. Interpretarea semantică a șirurilor sintactice
cu un automat cu stivă.
Subiectul 1. Translatarea LCF. Formularea problemei.
*
Automatul ASD poate funcționa și în regim de translatare. Cu acest scop
se atașează la Unitatea de Control un suport de ieșire (output) pe care se
va scrie traducerea (interpretarea) șirului analizat (vezi schema). Operația de
translatare este:
Output(α): scrie pe suportul de ieșire simbolurile șirului α.
Exemplul . Sa se translateze șirurile mulțimii A+, unde A={0, 1}, în șirurile
mulțimii {1m0n} și m, n sunt numărul de 1 respectiv 0 din șirul translatat. Să se
reconstituie gramatica inițială.
Tabela de translatare
0 1 ―|
Z Push(Z) Output(1) Pop
Shift Shift Output(0)
Hold
Δ Push(Z) Output(1) A
Shift Shift
Subiectul 4. Modele sintactico-semantice de redare a proceselor cognitive
Formularea problemei. Fie data expresia aritmetica: a+b*c și se
cere a fi calculată valoarea ei numerică. Pentru aceasta trebuie să
știm:
1) valorile lui a, b, c pe care le vom nota {a}, {b}, {c}, respectiv.
2) cum sunt executate operațiile + si *. “Procedurile “ le vom nota {+} și
{*}, respectiv.
3) luând în considerare p.1 si p.2 precum și prioritățile lui + și * putem
transcrie expresia astfel: a{a}+b{b}*c{c}{*}{+}.
4) simbolurile incluse în expresie { și } sunt acțiunile din mulțimea A.
5) Scriem într-un sir numai acțiunile obținem: {a}{b}{c}{*}{+}. Această
expresie ne sugerează ce trebuie sa facem pentru a calcula expresia:
a+b*c.
6) in p.5 omitem { și } și atunci obținem: abc*+ ―scrierea postfixă
poloneză (SPP) .
Subiectul 4. Modele sintactico-semantice de redare a proceselor cognitive
7) când scriem a+b*c intuim, de fapt, abc*+. Ultima expresie poate fi
considerată traducerea (translatarea) expresiei a+b*c.
8) forma obișnuită de scriere a expresiei a+b*c va fi numită infixă, iar
scrierea abc*+ ― postfixă.
Exemplul . Să se traducă expresia (a+b)*c+ e*f în scrierea postfixa.
Definiția . Gramatica G va fi numită gramatica scrierii postfixe
(GSP), dacă are forma:
<operand> →<operand><operand>+
<operand>→<operand><operand>*
<operand>→I
Exemplul Să se construiască pentru expresia (a+b)*c+e*f
scrierea SPP echivalentă. Folosind GSP de mai sus să se obțină
arborele de
derivare de stânga (dreapta).
Subiectul 4. Modele sintactico-semantice de redare a proceselor cognitive
Definiția . Gramatica CF de translatare (GCFT) include componentele:
1. Mulțimea de simboluri terminale T.
2. Mulțimea de acțiuni T’’ (acțiunile sunt încadrate în { și }.
3. Mulțimea de simboluri non-terminale N.
4. Axioma S.
5. Mulțimea de reguli de forma <A>→α, unde α este un sir format din
terminale, non-terminale și acțiuni.
Exemplul . Fie data gramatica de translatare:
<E>→<E>+<T>{+}
<E>→<T>
<T>→<T>*<P>{*}
<T>→<P>
<P>→(<E>)
<P>→a{a}
<P>→b{b}
<P>→c{c}
Subiectul 4. Modele sintactico-semantice de redare a proceselor cognitive
Să se construiască derivarea pentru expresia: a +(a+b)*c.
Rezolvare:
<E>  <E>+<T> {+} <T>+<T>{+}
 
<P>+<T>{+}  a{a}+<T>*<P>{*}
a{a}+<T>{+} 
{+} a{a}+<P>*<P>{*}{+}  

a{a}+(<E>)*<P>{*}{+} a{a}+(<E>+<T>{+})*<P>{*}{+} 

a{a}+(<T>+<T>{+})* <P>{*}{+} a{a}+(<P>+<T>{+})*<P>{*}{+} a{a}+ *
(a{a}+b{b}{+})*<P>{*}{+} 
a{a}+(a{a}+b{b}{+})*c{c}{*}{+}
Facem următoarele:
1. Pentru a obține translatarea extragem din rezultatul derivării acțiunile
respectând ordinea apariției: {a}{a}{b}{+}{c}{*}{+} ― rezultatul traducerii.
2. Omitem { și } și obținem : aab+c*+ ― scrierea postfixă ― asa gândim!
3. Rezultatul obținut poate fi interpretat ca semantica expresiei a+(a+b)*c
Sintaxa Semantica
deri
var e 
Subiectul 4. Modele sintactico-semantice de redare a proceselor cognitive

Pentru gramaticile CF de translatare (GCFt) poate fi propusă o procedură.


Procedura 2 (GCFt  ASDt).
1. Mulțimea terminală T (GCFt) -> Mulțimea Input ASDt+”―|”
2. Mulțimea N (GCF) + (T\ terminale 1- poziție)+ Mulțimea Stiva +”Δ”
Mulțimea (A\ acțiuni 1-poziție)
3. Regulile GCF forma: <A>→{ξ}a{ϕ}α Out(ξϕ), Subst(αinv), Shift
<A>→{ξ}a{ϕ} Out(ξϕ), Pop, Shift
4. Pop, Shift, daca stiva:a –input:a
5. stiva:Δ – input:―|, atunci - A
6. stiva:{x}, atunci- Out(x), Pop,Hold
7. Celulele tabelei ASD care nu au fost completate ,atunci – R
Subiectul 4. Modele sintactico-semantice de redare a proceselor cognitive

• Exemplul . 1) Fie data gramatica de translare:


<A> →{w}a{v}<S>{x}<B>
<S> → {z}
<B>→<T>c
<T>→b{y}
2) Sa se construiască tabela ASDt folosind regulile 1-7 Procedura 2. Care este
traducerea pentru un șir derivat obținut prin derivarea manuală?
Subiectul 4. Modele sintactico-semantice de redare a proceselor cognitive

Tabela si referințele

a b c ―| Referintele
<A> #1 R R R #1 Out(w,v),Subst(<B>{x}<S>),Shift
<S> R #2 R R #2 Out(z), Pop, Hold
<B> R #3 R R #3 Subst(c<T>), Hold
<T> R #4 R R #4 Out(y), Pop, Shift
c R R #5 R #5 Pop, Shift
Δ R R R A
{x} Out(x), Pop, Hold

Subiectul 4. Modele sintactico-semantice de redare a proceselor cognitive
3) Să se obțină configurațiile ASDt pentru un sir derivat de stânga a+b*c.
4) Care este traducerea șirului derivat.
pentru gramatica de translare:
SELECT(1)= FIRST(<T><Elist>)={id, (}
1.<E>→<T><Elist SELECT(2)= FIRST(+<T><Elist>)= {+}
• 2. <Elist>→+<T><Elist> {+} SELECT(3) = FOLLOW(<Elist>) = {) , ―|}
• 3.<Elist>→ε SELECT(4) = FIRST(<P><Tlist>) = {id,(}
SELECT(5) = FIRST(*<P><Tlist>)=…..
• 4. <T>→<P><Tlist> SELECT(6) = FOLLOW(<Tlist>)= {+, ), ―|}
• 5. <Tlist>→*<P><Tlist>{*} SELECT(7) = FIRST((<E>))= {(}
• 6. <Tlist>→ε SELECT(8) = FIRST(I)={id}
• 7. <P>→(<E>)
• 8. <P>→I {a}

Să se obțină tabela de tranziție a unui ASDt echivalent gramaticii.


. Folosind tabela de tranziție să se verifice corectitudinea expresiei:
a+b*(f+d)*c
Tema 3: Gramatici atributive și redarea
sintactico-semantică a proceselor cognitive

1. Redarea atributivă a semanticii proceselor cognitive.


Tipizarea atributelor.
2. Gramatici atributive. Procesarea semantică a
atributelor.
3. Procesarea descendentă a atributelor unei gramatici
atributive.
4. Procesarea descendentă a atributelor unei gramatici
atributive. L- gramatici. Construirea unor automate
L- atributive.
Subiectul 1. Redarea atributivă a semanticii proceselor cognitive. Tipizarea
atributelor.
• Gramaticile de translatare asigură translarea unui limbaj CF
într-un alt limbaj CF. Șirurile de simboluri a fi translate și
șirurile obținute ca rezultat al translatării sunt semantic
echivalente.
Definiție. Două șiruri s1L(G) și s2T*\Σ* sunt în relație de
translatare a.t.n.a când  Gt pentru care T=Σ  A, G este
gramatica portantă pentru Gt iar S=>*d  T*.
Gramaticile de translatare nu țin cont de interpretarea valorică a
simbolurilor, ci doar de clasa sa.
Pentru a încorpora și semantica în procesul de interpretare a
frazelor lingvistice, gramaticile de translatare au fost extinse cu
noțiunea de atribut.
Subiectul 1. Redarea atributivă a semanticii proceselor cognitive. Tipizarea
atributelor
• Exemplul I. Fie dată gramatica care generează structura sub
formă de arbore a expresiilor algebrice:
1. <E>→<E>+<T>{result}
2. <E>→<T>
3. <T>→<T>*<P>
4. <T>→<P>
5. <P>→(<E>)
6. <P>→a
7. <P>→b
8. <P>→c
Subiectul 1. Redarea atributivă a semanticii proceselor cognitive. Tipizarea
atributelor
• Arborele generat pentru expresia a +b*c este:

E {result62}
E6 + T56

T6 T7 * P8

P6 P7 c8

a6 b7
Subiectul 1. Redarea atributivă a semanticii proceselor cognitive. Tipizarea
atributelor
Concluzie
1. Arborele de derivare a unui șir de simboluri terminale cu o
gramatică CF poate folosit pentru atribuirea de valori șirului
derivat, dacă fiecărui nod al arborelui ( sub-arbore) de
derivare i se atribuie o valoare calculată conform unor reguli
precise asociate cu fiecare sub-arbore.
2. Deoarece sub-arborii sunt generați prin rescrierea regulilor
sintactice ale gramaticii, atunci regulile de atribuire a
valorilor trebuie asociate cu fiecare regulă sintactică a
gramaticii.
3. Pentru a exclude posibilele colizii vom denumi regulile
sintactice ale gramaticii – producții, iar regulile de calculare a
valorilor semantice - reguli.
Subiectul 1. Redarea atributivă a semanticii proceselor cognitive. Tipizarea atributelor

• Situația poate fi modelată de un Tabel sintactico-semantic:


• Sintaxa Semantica
1.<E>p→<E>q +<T> r {resultp } p < p+q

2. <E>p →<T>q p<q


3. <T>p →<T> q* <P>r p<q*r
4. <T> p→<P>q p<q
5. <P>p →(<E>q ) p< q
6. <P> p→aq p<q
7. <P> p→bq p<q
8. <P> p→cq p<q

• Indicii p și q sunt denumiți atribute. Toate non-terminalele


gramaticii au atribute, dar și terminalele.
• Atributele desemnează valorile dintr-un Univers-semantica.
Subiectul 2. Gramatici atributive. Procesarea sintactică a atributelor.

• Exemplul II. Fie dată gramatica LL(1):


1. E  I <R>
2. <R>  + I <R>
3. <R>  - I <R>
4. <R>  ε
Arborele de derivare pentru expresia a –b+c va fi:
E
I1 R
Tabela-simboluri - I2 R
nume valoare indice
+ I3 R
a 10 1
b 20 2
c 100 3 ε
Subiectul 2. Gramatici atributive. Procesarea sintactică a atributelor.

• Tabelul sintactico-semantic:
sintaxa semantica
1. E  I p1 <R>p2 p2<p1
2. <R> p1  + I q1<R>p2 p2<q1
3. <R> p1  - I q1 <R>p2 p2<q1
4. <R> r  ε
• Non- terminalul <R> are un singur atribut p, care parcurge
indicele (rândului) tabelei de simboluri. Valoarea inițială a lui
p este primul simbol analizat din expresia „a-b+c”, adică „a”.
• Desigur, nu vom efectua operațiile cerute, deoarece gramatica
descrie doar sintaxa. Următoarea tabelă reprezintă o
gramatică de translatare.
Subiectul 1. Redarea atributivă a semanticii proceselor cognitive. Tipizarea
atributelor
• Tabel sintactico-semantic (gr. de translatare)
sintaxa semantica

1. E  I p1 <R>p2 p2<p1

2. <R> p1  + I q1 {add p2,q2,r1} <R>r2 (r2, r1)<newT; p2<p1; q2<q1

3. <R> p1  - I q1{subtp2,q2,r1} <R>r2 (r2,r1)<newT;p2<p1; q2<q1

4. <R> r  ε

•Toate atributele sunt propagate pe arbore de sus în jos


Subiectul 2. Gramatici atributive. Procesarea sintactică a atributelor.

• Concluzie
1. Gramaticile CF pot atributive, de translatare și atributive de
translatare.
2. Atributele pot fi: atribute ascendente (de sinteză) și atribute
descendente (de moștenire). Cuvintele „ascendent” și
„descendent” se referă la metoda de procesare aplicată
arborelui de derivare: de jos-în-sus și de sus-în-jos, respectiv.
3. Efectiv, procesarea informației are loc ascendent, adică este
efectuată prin intermediul atributelor ascendente (AA), iar
datele a fi procesate parvin din exterior este mediată de
atributele descendente (AD). Atributele descendente trebuie
să aibă valori inițiale.
4. Non - terminalele pot avea atât AA cât și AD, terminale și
acțiunile incluse în {,} – doar AD.
Subiectul 3. Procesarea descendentă a atributelor unei gramatici atributive

Exemplul III. Fie dată gramatica de translatare.


1.<E>→<T> <Elist
• 2. <Elist>→+ <T> {+} <Elist>
• 3.<Elist>→ε
• 4. <T>→<P> <Tlist>
• 5. <Tlist>→*<P>{*}<Tlist>
• 6. <Tlist>→ε
• 7. <P>→(<E>)
• 8. <P>→I
Gramatica modelează o expresie regulată. O vom transforma
într-o gramatică atributivă de translatare.
Subiectul 3. Procesarea descendentă a atributelor unei gramatici
atributive
• Tabela atributelor
Element sintactic Tip atribut

<E>p p - AA

<T>p p - AA

<P>p p- AA

<Elist>p,q p- AD; q - AA

<Tlist>p,q p – AD; q- AA

{addp,q,r} p, q,r - AD

{mltp,q,r} p, q, r - AD

• Tabela prezintă atributele folosite: AD – atribute descendente,


AA – atribute ascendente
Subiectul 3. Procesarea descendentă a atributelor unei gramatici atributive

• Tabela sintactico-semantică
Sintaxa semantica
1.<E>t2→<T>p1 <Elist>p2,t1 p2<p1; t2<t1
2. <Elist>p1,t2 →+<T>q1 {addp2,q2,r1} <Elist>r2,t1 p2<p1;(r1,r2) < newT; t2<t1; q2<q1

3.<Elist>p1,p2 →ε p2<p1
4. <T>t2 →<P>p1 <Tlist>p2,t1 p2<p1; t2<t1
5. <Tlist>p1,t2 →*<P>q1 {mltp2,q2,r1}<Tlist>r2,t1 p2<p1; (r1,r2) <newT; q2<q1; t2<t1

6. <Tlist>p1,p2 →ε p2<p1
7. <P> p2→(<E> p1) p2<p1
8. <P>p2 →Ip1 p2<p1
Subiectul 4. Procesarea descendentă a atributelor unei gramatici atributive. L- gramatici. Construirea
unor automate L- atributive.

• Definiție. Gramatica atributivă de translare se numește L-


atributivă, dacă sunt întrunite următoarele proprietăți:
1. Pentru fiecare regulă semantică calculul unui atribut
descendent din partea dreaptă a unei producții a gramaticii,
este bazat sau pe atributele descendente din partea stângă
a producției , sau pe orice atribut din partea dreaptă a
producției situat la stânga atributului calculat.
2. Pentru fiecare regulă semantică calcului unui atribut
ascendent din partea stângă a producției este bazat sau pe
atribute descendente din partea stângă a producție, sau pe
orice atribut situat în partea dreaptă a producției.
3. Pentru orice atribut ascendent a unui simbol de acțiune
calculul valorii se bazează pe atributele descendente ale
acestui simbol.
Subiectul 4. Procesarea descendentă a atributelor unei gramatici atributive. L- gramatici. Construirea
unor automate L- atributive.

• Exemplu. 1) Fie dată o producție A BC a unei gramatici L-


atributive, atunci valorile atributelor se calculează astfel:
1. Atributele descendente pentru A
2. Atributele descendente pentru B.
3. Atributele ascendente pentru B.
4. Atributele descendente pentru C.
5. Atributele ascendente pentru C.
6. Atributele ascendente pentru A.
2) Fie AI1, S1, S2 - BI2 CI3,S3 . Să se proiecteze regulile semantice
pentru calcularea atributelor simbolurilor producției date.
Fie dată producția A - aR BS CI . Să se proiecteze regulile
semantice.
I… – atribute descendente, S… - atribute ascendente
Subiectul 4. Procesarea descendentă a atributelor unei gramatici atributive. L-
gramatici. Construirea unor automate L- atributive.
• Fie dată gramatica:
1. S  E
2. E  +E E
3. E  * E E
4. E  I
Să se transforme gramatica dată într-o gramatică:
5. Atributivă;
6. Atributivă de translatare;
7. L- atributivă de translatare;
4. Să se verifice propunând un șir de intrare.
Notă . Simbolurile de translare vor fi de forma: + -- {add I1,I2,S1 }, *
-- {mlp I1, I2,P1 } , {resultp }.
Subiect 4. Procesarea descendentă a atributelor unei gramatici atributive. L- gramatici.
Construirea unor automate L- atributive.

Sfârșit, 2019

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