Sunteți pe pagina 1din 199

Sisteme bazate pe cunostinte

Prof. dr. ing. Dorin Carstoiu

1
Obiectiv
• Obiectivul principal al cursului este
prezentarea problematicii specifice sistemelor
bazate pe cunostinte – sisteme expert.
• Sunt prezentate principalele tehnici de
reprezentarea cunostintelor si stocarea lor in
baze de cunostinte, precum si strategii de
efectuare a rationamentelor.

2
Aplicatii
• Modele de reprezentarea cunostintelor
• Dezvoltarea de sisteme bazate pe cunostinte in
Prolog
• Dezvoltarea de sisteme bazate pe cunostinte in
Clips-fuzzyClips.
• Formularea de probleme specifice activitatii
curente a cursantilor ce pot fi rezolvate folosind
aceste sisteme

3
Evaluare
Evaluarea cunostintelor are doua componente:
• Evaluare pe parcurs (laborator, teme de casa) 50 puncte
• Evaluare prin lucrari 50 puncte.
Pentru calificativul final la fiecare din cele doua componente
trebuie obtinut minim 50% din punctaj.

4
Introducere, istoric, definitii, clasificari

5
Istoric
• 1956 – conferinta la Dartmount College se pune problema
masinii de calcul inteligente
• John Mc Carthy introduce conceptul Inteligenta Artificiala (IA)
care se desprinde de stiinta calculatoarelor devenind un
domeniu independent
• Newell, Shaw si Simon au descris primul program în care
calculatorul era utilizat ca procesor simbolic, “Logical Theorist”;
• Se creaza limbajul IPL (Information Processing Language),
limbaj capabil sa modeleze procesarea informatiilor de mintea
umana.
• Apare LISt Processing (LISP), limbaj dezvoltat de John Mc
Carty
6
Cercetari anterioare
• formalizarea matematica a unor legi ale logicii Boole (1847);
• dezvoltare calcul cu predicate de ordinul intai, Frege (1879);
• dezvoltarea unor metode formale de efectuare a
rationamentelor (Whitehead, Russell, Tarski si Kleene in jurul
anului 1950);
• elementele despre calculabilitate (Church si Turing), legatura
intre formalizarea rationamentului si stiinta calculatoarelor.
Turing este considerat parintele IA
• studiul lui Chomsky asupra teoriei gramaticilor generative
(1957), baza pentru prelucrarea limbajului natural.

7
Repere istorice (1)
• crearea modelului perceptronului (neuronul artificial),
Rosenblatt 1958 marcheaza inceputul pentru retelele
neuronale;
• dezvoltarea limbajului LISP (John Mc Carthy 1958);
• Logica fuzzy (Zadeh 1965);
• stabilirea principiului rezolutiei, sta la baza demonstrarii
automate a teoremelor (Robinson 1965);
• Retele semantice pentru reprezentarea cunoasterii (Quillian
1968);
8
Repere istorice (2)
• Aparitia limbajul PROLOG (PROgrammation en LOGique) 1970;
• Aparitie reguli de productie ca mijloc pentru reprezentarea
cunoasterii si de modelare a capacitatii umane de a rezolva
probleme;
• Introducerea cadrelor (frame) de catre Minsky in 1975 pentru
reprezentarea unor situatii stereotipe;
• Aparitia limbajul Smalltalk (1976) considerat un prim limbaj
orientat pe obiecte;
• Dezvoltarea algoritmului RETE (Forgy 1979) utilizat de multe
sisteme expert (SE), ca de ex: CLIPS
9
Primele aplicatii
• DENDRAL (1965), realizat de Feigenbaum, un SE pentru
domeniul chimiei organice;
• HEARSAY (1970) SE folosit in intelegerea vorbirii;
• MYCIN (1976) SE in domeniul medical cu importanta
deosebita in evolutia sistemelor bazate pe cunostinte (SBC)
prin prisma efectuarii de rationamente in conditii de
incertitudine;
• PROSPECTOR (1976) SE in domeniul prospectiunilor geologice;
• R1/XCON (1981) SE pentru configurarea sistemelor de calcul.

10
Definitii (1)
• Inteligenta - aptitudinea de a sesiza anumite raporturi
existente intre obiecte si fenomene. Sesizare senzoriala (la
animale) datorata reflexelor conditionate, sau intelectuala (la
om) unde intervin limbajul si conceptele
• Findler arata ca “un sistem este considerat a avea
proprietatea de inteligenta, daca se poate adapta singur la noi
situatii, are capacitatea de a rationa, adica de a intelege
legaturile dintre fapte, de a descoperi întelesuri si de a
recunoaste adevarul”. De asemenea, un sistem inteligent
poate sa invete, cu alte cuvinte sa-si imbunatateasca nivelul
performantelor pe baza experientei”

11
Definitii (2)
• Dupa Barr IA este un domeniu al stiintei calculatoarelor care are ca
obiectiv conceperea sistemelor de calcul inteligente, adica a acelor
sisteme care sa manifeste proprietati pe care in mod obisnuit le
asociem inteligentei in comportamentul uman (intelegere a
limbajului, invatare, rezolvare de probleme). IA poate fi privita ca o
modalitate de a simula comportamentul inteligent pe diferite
sisteme tehnice.
• Interactiunea cu exteriorul include perceptia situatiei prin organele
senzoriale, efectuarea de rationamente care determina deciziile de
actiune, rationamente ce se pot baza pe modelul “intern” al lumii
exterioare

12
Exemplificare
• Concluzie: Necesitatea
introducerii in sistemul de
calcul a modelului lumii
Lumea
reale, numit model de interioara
reprezentare a
cunoasterii, de unde a Perceptie
Lumea
derivat reprezentarea Rationament exterioara
cunoasterii. Actiune

13
Inteligenta unui program
• Inteligenta unui program poate fi dedusa numai din
comportarea acestuia
• Inteligenta unui program este intotdeauna relativa
• Comportarea inteligenta a unui program trebuie sa se
manifeste in situatii cat mai frecvente si mai variate.
• Pentru a putea aprecia inteligenta unui program trebuie sa
masuram complexitatea sarcinii de intrare

14
Programare clasica IA (1)
Definitie. IA este o ramura a stiintei calculatoarelor ce studiaza realizarea
unor tehnici de programare performante, care sa permita rezolvarea unor
sarcini complexe in situatia in care un algoritm de rezolvare nu este
cunoscut.

Programare clasica Program de IA


Problema
Intrari

Baza Baza de
Algoritm Euristica
de date cunostinte

Iesiri Solutie

15
Programare clasica IA (2)
• Daca la programarea clasica baza de date contine informatii
despre algoritmul folosit in baza de cunostinte sunt memorate
pe langa fapte si relatii dintre acestea, dar si reguli prin care
se prefigureaza ce se va intampla cu lumea exterioara in cazul
unei actiuni.
• In locul algoritmului determinist in programarea clasica, apare
in IA o metoda euristica prin care se ghideaza obtinerea
solutiei. Algoritmii euristici pot determina solutii in situatii in
care nu se cunoaste un algoritm de rezolvare sau este
ineficient de implementat.

16
Definire probleme
Daca notam Ipoteza (I), Proces (P), Concluzie (C) o problema
presupune ca una dintre componente este necunoscuta (o notam
X).
• IPX care este concluzia aplicarii procedului P asupra ipotezei I.
Problema tipica de prelucrare de date (programare clasica)
• XPC care este ipoteza la care aplicand procesul P se obtine concluzia
C. Problema rezolvabila daca P este bijectiv, adica X=P-1(C).
• IXC descoperiti procesul aplicat ipotezei I pentru a obtine concluzia
C. Singura problema creativa (program de IA).
Pot exista si probleme incomplet formulate IXY (aplica ceea ce sti
asupra ipotezei I si vezi ce concluzie poti obtine)
17
Subdomenii IA
• Reprezentarea cunostintelor si rationarea cu acestea
• Vederea artificiala dezvoltata pe baza cercetarilor matematice
de recunoasterea formelor
• Reproducerea miscarii
• Intelegere limbaj natural (a nu fi confundat cu intelegerea
vorbirii)
• Demonstrarea automata a teoremelor
• Sisteme cu autoinstruire

18
Clasificarea cunoasterii (1)
• Dupa modul de achizitie:
– apriori (independente de sistemul sensorial). Cunostinte
universal valabile ce nu pot fi negate (ex. legile fizicii)
– aposteriori (dobandita prin experinta). Validitatea sau
invaliditatea este o consecinta a experientei.
• Dupa gradul de generalitate
– Semnale (nivel baza) contin date utile dar si zgomote
– Datele – elemente ce pot avea interes potential
– Informatii – elemente cu interes precis (pot fi obtinute din
date)
19
Clasificarea cunoasterii (2)
– Cunostinte – informatii specializate
– Metacunostinte – cunostinte despre cunostinte obtinute
prin rafinare (ex: ordinea de rezolvare a scopurilor)
• Dupa continut
– Cunoastere procedurala – cum se ajunge la un anumit
rezultat (reteta)
– Cunoastere declarativa – asignarea valorii adevarat sau fals
pentru un enunt
– Cunoastere tacita – dobandita neconditionat (ex: abilitatea
de a bricola, patinaj)
20
Exemplu continut cunoastere
Sa presupunem ca semnalul primit de un sistem este urmatorul sir de
caractere
17707283658E736975046E6561943D31102C351261746EA3, care
contine date dar si zgmote. Acest semnal este procesat prin
partajarea in grupe de cate 2 caractere si eliminarea celor mai mici
decat 20 si mai mari de 80. Se obtine sirul cu urmatoarele date: 70
72 65 73 69 75 6E 65 61 3D 31 2C 35 61 74 6E. Daca fiecare grup
este asimilat ca fiind caracterul ASCII se obtine informatia
presiunea=1,5atm. Daca formulam o regula de rationament pentru
informatia obtinuta se obtine o cunostinta. Daca presiunea este mai
mica decat 2 atm, atunci porneste compresorul.

21
Limbaje si tehnici de programare
• Limbaje procedurale (procesare in secventa)
– Imperative (Fortran, Pascal, C)
– Functionale (LISP)
• Limbaje neprocedurale
– Declarative
• Orientate pe obiecte (C++)
• Logice (Prolog)
• Bazate pe reguli (OPS5, Exsys, Clips)
• Bazate pe cadre (Gold Works, KEE)
– Nondeclarative (retele neuronale)
22
Discutii limbaje, tehnici (1)
• Chiar daca LISP este utilizat in IA datorita caracteristicilor sale
de procesare simbolica in sistemele bazate pe cunostinte sunt
utilizate limbaje neprocedurale.
• In tehnicile declarative se precizeaza ce trebuie obtinut, nu
cum trebuie obtinut (sistemul gaseste o solutie)
• Progmarea orientata pe obiecte este in acelasi timp
declarativa si imperativa.
• In programarea logica programul este compus din declaratii
(fapte), reguli si un scop. Executia verifica daca scopul este
adevarat, algoritmul de control este implementat in
compilatorul sau interpretorul limbajului.
23
Discutii limbaje, tehnici (2)
• Progrmarea bazata pe reguli se utilizeaza pentru dezvoltarea
sistemelor expert (SE).
• Programarea bazata pe cadre, rar utilizata ca o combinatie
intre programarea orientata obiecte cu cea bazata pe reguli.
• Retelele neuronale au corespondent in cunostintele tacite.
Modelul creierului uman, o retea cu numar mare de neuroni.

24
SBC, sistem expert (SE)
• Un SBC este un program de calculator care utilizeaza
cunostinte si proceduri de rationament pentru a rezolva
probleme.
• Un SE este un sistem software care pe baza cunostintelor
inmagazinate provenind de la un expert poate rezolva
probleme dificile dintr-un anumit domeniu, problema pentru
care obtinerea unei solutii necesita un expert uman.
• Expert – persoana ce detine cunostinte deosebite intr-un
anumit domeniu.
• Expertiza – capacitatea unui expert de a evalua obiectiv un
domeniu

25
Structura generala si componentele sistemelor
bazate pe cunostinte

1
Structura de principiu SBC
Cunostinte initiale Baza de
(fapte) cunostinte
Utilizator
(rezultate) Mecanism
(motor) de
inferenta

• Baza de cunostinte – pastreaza cunostintele din domeniul de


expertiza
• Mecanismul de inferenta – implementeaza elementele de
control pentru rularea programului si utilizarea cunostintelor
2
Structura detaliu SBC

Expert
Baza de Mecanism de
cunostinte inferenta
cunostinte
Mecanism

utilizator
Interfata
achizitie

Inginer de
Utilizator
cunostinte

Baza Modul de
de fapte explicare

3
Explicatii componente (1)
• Inginerul de cunostinte extrage prin diverse tehnici
cunostintele de la expert si le formalizeaza adecvat limbajului
de reprezentare utilizat
• Mecanismul de achizitie cunostinte este un utilitar care ajuta
inginerul de cunostinte la crearea si gestionarea bazei de
cunostinte (adaugare/stergere cunostinte, modificare
cunostinte, asignare ordine)
• Baza de cunostinte – stocata in memorie permanenta
compusa din piese de cunoastere (fapte, reguli,
metacunostinte)

4
Explicatii componente (2)
• Baza de fapte – stocata in memorie temporara, pastreaza faptele
initiale introduse de utilizator si contextul curent al rezolvarii
problemei (alte fapte demonstrate)
• Mecanismul de inferenta – implementeaza elementele de
control pentru rularea programului, implementat ca program
procedural
• Modul de explicare – utilitar care furnizeaza utilizatorului piesele
de cunoastere utilizate, de ce are nevoie de fapte la anumite
momente ale executiei, justifica rationamentul efectuat
• Interfata utilizator – faciliteaza interactiunea dintre utilizator si
sistem
5
Observatii
• Sistemul esential este compus din:
– baza de cunostinte (BC)
– baza de fapte (BF)
– mecanism de inferenta (MI)
• Aceste componente sunt obligatorii la orice implementare
• Celelalte sunt module auxiliare si pot lipsi, functie de
implementare si specificul sistemului
• Baza de cunostinte se modifica la intervale mari de timp
(cunostintele evolueaza lent)

6
Avantaje utilizare SBC
• Poate opera cu un volum mare de cunostinte si produce
rezultate in timpi rezonabili
• Disponibilitate mare, expertiza prezenta intr-o multime de
locatii, nu este afectata de factori de stres
• Pot fi folosite in medii periculoase pentru expertul uman
• Asigura perenitatea cunostintelor, nu se pierde expertiza prin
migrarea personalului
• Rezolva probleme pentru care nu este cunoscut un algoritm

7
SBC, programare traditionala
• La programarea clasica algoritmul este inglobat in cod. Pentru
modificarea algoritmului trebuie modificat codul programului
• SBC face separarea intre cunostinte si controlul algoritmului de rulare
• Adaugarea de noi cunostinte nu presupune modificarea algoritmului
de rulare, ci duce doar la modificarea rezultatelor.
• Comparatia cu indivizii umani: inteligenta este nativa, cunostintele se
dobandesc.
• Este usor de actualizat fara o interventie in cod
• Ordinea cunostintelor in baza de cunostinte nu influenteaza rezultatul
• Orice formula in programarea clasica este fie adevarata fie falsa. In SBC
formulele pot fi nedecidabile sau decidabile cu valorile adevarat sau
fals.
8
Ce poate contine BC?
• Constante cu diverse tipuri de date (temperatura absoluta,
numele unei persone etc)
• Variabile – reprezentate de date achizitionate prin diverse
mijloace (senzori, introduse de operator, provenite de la alte
sisteme etc)
• Diverse relatii intre obiecte (distanta dintre doua localitati,
relatii de rudenie etc)
• Reguli specifice domeniului (legea lui Ohm, convergenta unui
sir, relatia dintre simptome si diagnostic etc)
• Reguli euristice obtinute pe baza experientei in domeniu
(generarea de energie electrica functie de consum)
9
Mecanismul de inferenta
• Contine un algoritm de control generic, acelasi indiferent de
continutul bazei de cunostinte
• Determina momentul in care o piesa de cunoastere este
utilizata
• Secventa de operatii intre inceperea si terminarea
programului nu este dictata de programator, ci determinata
de cunostintele initiale
• Algoritmul generic de control implementeaza strategii de
parcurgere a arborilor sau grafurilor generati dinamic.

10
Cand se recomanda SBC
• Atunci cand nu exista o solutie algoritmica sau este dificil de obtinut
(probleme nestructurate)
• Atunci cand exista cunostintele necesare rezolvarii problemelor in
domeniul de competenta
• Exista personal calificat si poate fi utilizata cunoasterea dobandita
• Cunoasterea despre rezolvarea problemei este euristica si incerta
(nu poate fi gasit un model sau modelul se schimba frecvent)
• Prelucrarile necesare sunt de tip simbolic nu numeric. Pentru
procesari numerice de anvergura se poate apela la programe
externe

11
Sarcini de lucru (studiu)
• Caracterizati subdomeniile IA si justificati apartenenta la domeniu.
• Creati exemple de reguli de cunoastere si reguli de metacunoastere. Justificati
diferentele dintre ele
• Dati exemple de cunostinte declarative, procedurale si tacite. Dati exemple de
situatii in care tehnicile de programare procedurale, declarative si
nondeclarative se pot aplica eficient
• Identificati cateva probleme din activitatea curenta la locul de munca a caror
rezolvare ar putea fi realizata cu SBC. Evaluati avantajele fata de programarea
traditionala
• Dati exemplu de o problema de tip nestructurat.
• Cum percepeti diagnoza medicala din perspectiva SBC? Justificati raspunsul.
• Caracterizati componentele unui SBC
12
Logica matematica, limbale formale

1
Logica matematica (1)
• Logica matematica elimina ambiguitatile din limbaj pentru a
obtine un cadru riguros pentru rationamente
• Judecatile umane se exprima prin enunturi, in SBC acestea sunt
faptele si regulile bazei de cunostinte.
• Enunt – formatiune lingvistica declarativa, cu inteles, compusa din
subiect sau subiecte si partea predicativa.
• Subiectul poate fi precizat (instantiat) sau nu (anonim). (ex: x este
numar prim)
• Propozitie – enunt cu toate subiectele instantiate
• Predicat – enunt cu cel putin un subiect neinstantiat
2
Logica matematica (2)
• Variabila – subiect neinstantiat dintr-un predicat
• Aritate – numarul subiectelor neinstantiate dintr-un predicat
(persoana x are 3 copii este predicat cu aritate 1)
• Obs: Propozitia este un predicat cu aritate 0.
• Enunturile compuse sunt formalizate in logica folosind
operatorii logici (conective logice si cuantificatori).
• Operatii logice. Sunt suficiente negatia si conjunctia sau
negatia si disjunctia. Cu toate acestea pentru claritate in
majoritatea cazurilor se folosesc toate operatiile (negatia (7),
conjunctia (ʌ ), disjunctia(v), implicatia(->) si echivalenta(≡).
• Cuantificatori: existential si universal ( )

3
Tip similitudine
Tip de similitudine (abstractizare fundamentala pe care sunt
construite limbajele)
• in care:
• I – multimea de indexare a familiilor de relatii
• J – multimea de indexare a familiilor de functii
• K – multimea de indexare pentru elemente distincte
• aplicatia de aritate a familiilor de relatii, cu N multimea
numerelor naturale
• aplicatia de aritate a familiilor de functii, cu N multimea
numerelor naturale
4
Structura L
Structura avand tipul de similitadine σ este un cavdruplu cu
format din:
• Multimea A denumita si suportul sau universul
• Familia astfel incat pentru fiecare este o relatie pe A cu
aritatea
• Familia astfel incat pentru fiecare este o functie pe A cu
aritatea
• O submultime a lui A, denumita si multimea elementelor
distincte din A
• Daca I=Ø, adica structura nu contine simboluri relationale se numeste
algebra

5
Structura L
• Daca J=Ø, adica structura nu contine simboluri functionale,
structura se numeste sistem relational
• Un limbaj de ordinul intai este constituit din simboluri
primitive, termeni, formule atomice, formule
Exemplu. Structura o aritmetica in N:
•  simbol relational binar
• +,* simboluri functionale binare
• S, simbol functional susccesor s(x)=x+1
• 0, constanta 0

6
Limbaj natural, limbaj formal (1)
Pentru formarea cuvintelor in limbaje naturale sunt folosite o
serie de reguli. Similar pentru formarea termenilor:
• Orice variabila este un termen
• Orice simbol de constanta individuala este un termen
• Daca sunt termeni, iar f un simbol functional
n-ar este tot un termen
• Aplicarea repetata a regulilor de mai sus de un numar finit de
ori produce tot un termen

7
Limbaj natural, limbaj formal (2)
• Propozitii in limbaj natural, formule atomice in limbaje formale
– Daca R este un simbol relational si sunt
termeni, este o formula atomica.
• Fraze in limbaj natural, formule in limbaj formal
– Orice formula atomica este o formula
– Daca sunt formule si
sunt formule
– Daca x este o variabila libera si F o formula, atunci
sunt formule
• Aplicarea repetata a regulilor de mai sus de un numar finit de
ori produce o formula 8
Substitutia
• Daca A este o formula si variabile ce apar in
formula, A se scrie , iar o substitutie δ este
vazuta ca o lista finita de perechi cuprinzand asociatii ale altor
variabile, astfel .
• Daca este o formula, aplicarea substitutiei
este notata δA si se realizeaza prin inlocuirea fiecarei aparitii
libere a variabilei in A prin .
• Notam domeniul substututiei si
multimea inlocuitorilor substitutiei.

9
Valori de adevar formule
• In semantica oricarui limbaj, oricarei formule i se asociaza o semnificatie si o
valoare de adevar
• O expresie este valida daca valoarea sa de adevar este totdeauna adevarat
indiferent de valorile de adevar ale componentelor sale
• O expresie este consistenta daca valoarea sa de adevar nu este intotdeauna
falsa
• O expresie este invalida daca valoarea sa de adevar nu este intotdeauna
adevarat
• Daca valoarea de adevar a unei expresii este totdeauna fals ea se numeste
inconsistenta
• Expresiile care au valoare adevarat sau fals functie de valorile de adevar ale
formulelor atomice se numesc contingente

10
Clasificare formule
Valida Invalida

Intotdeauna Nu intotdeauna adevarat Intotdeauna


adevarat Nu intotdeauna fals fals

Consistenta Inconsistenta
Contingenta

• Axiomele – formule cu statut de permanenta validitate


• Axiomele sunt independente (nu pot fi obtinute din altele prin
regulile limbajului)
11
Inferente, lant inferential
• Regulile de inferenta sunt metode prin care se determina
consecintele unor presupuneri despre formule sau enunturi
• Inferenta – operatia prin care pe baza acceptarii unui numar finit de
enunturi numite premise se trece la acceptarea unui alt enunt
numit concluzie. Premisele formeaza conditia suficienta a concluziei
chiar daca concluzia se poate obtine si din alte premise
• Prin inferenta valoarea de adevar a premisei se transfera concluziei
• O teorie pentru care s-au definit axiome si reguli de inferenta este o
teorie axiomatic deductiva
• Un sir de inferente in care premisele unora se gasesc printe
concluziile altora se numeste lant inferential
12
Teoria inferentelor logice (1)
• In programele inteligente sistemul axiomatic si
inferential trebuie sa coexiste
• Cea mai uzuala modalitate de reprezentare a
regulilor de inferenta foloseste forma clauzala
• Premisa complexa consecinta unica
– Daca atunci B
– B daca

13
Teoria inferentelor logice (2)
• Premisa si concluzie complexa
– Daca atunci
– daca
• Forma generala in care
s-au inlocuit conjunctiva si disjunctia cu virgule iar sunt
variabile.
• Clauza Horn provine dintr-o implicatie de forma
sau in scriere inversa sau

14
Teoria inferentelor logice (3)
Daca P si Q sunt doua enunturi, atunci:
• Negatia lui Q, notata (7Q) afirma ca Q nu are loc
• Conjunctia lui P si Q, notata (P ʌ Q), afirma ca P si Q are loc
• Disjunctia lui P si Q, notata (PvQ), afirma ca fie P, fie Q are loc
• Implicatia: P implica Q se noteaza prin (P=>Q), afirma ca daca
P are loc atunci sigur Q are loc
• Echivalenta lui P si Q, notat (P≡Q) afirma ca P si Q au loc in
acelasi timp.
• Cuantificatorii pot fi utilizati doar prin atasarea la variabile ale
predicatelor si permit formarea de enunturi compuse
15
Teoria inferentelor logice (4)
• Daca un predicat P cu variabila x afirma ca obiectul instantiat
la variabila x are proprietatea prin enuntul  (x)P(x), se
intelege ca in clasa de obiecte din care face parte x macar un
obiect are proprietatea a
• Similar  (x)P(x) afirma ca orice obiect al clasei din care face
parte x are proprietatea a.
• O informatie are valoare de adevar ce se inscrie in diferite
scale. Logica binara opereaza cu valorile extreme
adevarat/fals, logica fuzzy este multivalenta reprezentata de o
functie continua.

16
Limbajul calculului propozitional (1)
• Se ocupa de compunerea propozitiilor si studiul valorilor de
adevar a expresiilor rezultate.
• Limbajul calculului propozitional este un limbaj formal spre
deosebire de limbajul natural
• Elemente definitorii: alfabet (set finit de simboluri), sintaxa
(modul de combinare a simbolurilor din alfabet), semantica
(semnificatia combinatiilor obtinute respectand sintaxa)
• Alfabetul contine variabile propozitionale, conective logice si
semne de grupare.

17
Limbajul calculului propozitional (2)
• Pentru formarea formulelor se dau regulile:
– Daca a si b sunt propozitii atunci a, b, 7a, 7b, avb, aʌb, a=>b, a≡b sunt formule
atomice ale calculului propozitional;
– Orice formula atomica este o formula;
– Daca F1 si F2 sunt formule 7F1, 7F2, F1vF2, F1ʌF2, F1=>F2, F1≡F2 sunt formule
– Orice formula inclusa intre paranteze este o formula
• Tipuri de formule
– Tautologii – formule ce au tot timpul valoarea adevarat indiferent de valoarea
de adevar a propozitiilor componenter
– Contradictii – formule ce au totdeauna valoarea fals indiferent de valoarea de
adevar a propozitiilor componente
– Formule variabile – formule ale caror valori de adevar sunt dependente de
valoarea de adevar a propozitiilor componente.
18
Validitate, deductibilitate
• Asertarea validitatii unei formule ╞A indica faptul ca A este valida
indiferent de valorile de adevar ale propozitiilor atomice
componente
• Consecinta validitatii A╞ B indica faptul ca B este o consecinta
valida a formulei A, B este adevarat peste tot unde A este
adevarat
• Asertarea deductibilitatii unei formule├ A semnifica faptul ca A
este deductibila din axiome prin aplicarea regulilor de inferenta
• Consecinta deductibilitatiii A├B arata ca B este deductibila din A,
adica B se obtine ca o secventa de formule intre care se gaseste A

19
Limbajul calculului cu predicate (1)
• Limbajul calculului propozitional nu intra in topica propozitiei
pentru modelarea propozitiilor variabile si nu permite utilizarea
calificatorilor.
• Alfabetul calculului cu predicate este format din:
– Multimea variabilelor individuale, pe scurt variabile (x,y,z,…)
– Multimea variabilelor functionale, pe scurt functii. Variabilele
functionale de aritate 0 se numesc si constante, celelalte au
aritatea egala cu numarul de argumente

20
Limbajul calculului cu predicate (2)
– Multimea variabilelor predicative, pe scurt predicate.
Predicatele cu aritate 0 sunt numite si variabile
propozitonale, celelalte au aritatea egala cu numarul de
locuri
– Conective logice si cuantificatori
– Simboluri auxiliare (paranteze de grupare, virgula)
• Argumentele unui predicat, invocate in locurile acestuia pot fi
termeni, dar nu pot fi alte predicate, formand calculul cu
predicate de ordinul intai
• O implementare foarte populara a limbajului calculului cu
predicate de ordinul intai este limbajul Prolog
21
Limbaje de programare logica
Principii PROLOG

1
PROLOG, caracteristici
• Limbaj de programare logica
• Implementeaza calculul cu predicate de ordinul intai
• Strategie de control inapoi, bazata pe scop
• Baza de cunostinte Prolog este formata din clauze
• O clauza Prolog este scrisa in forma S :-S1,S2,..., Sn in care S si
Si sunt predicate iar virgula este interpretata ca si conjunctie
logica sau : disjunctie logica
• Interpretare: Pentru a demonstra S trebuie demonstrate
subproblemele S1,S2, ....., Sn
• Pot exista clauze ce au doar membrul stang. Acestea poarta
denumirea de fapte (aserteaza predicatul ca adevarat).
2
Entitati PROLOG
Programul Prolog contine urmatoarele entitati:
• Fapte despre obiecte si relatiile dintre acestea. Ex: parinte (ion,
vasile), carte(sbc).
• Reguli despre obiecte si relatiile dintre ele, care permit deducerea
altor fapte pe baza celor cunoscute
• Scopuri (intrebari) despre obiecte si relatiile dintre ele la care
programul raspunde luand in consideratie faptele si regulile
existente. Raspunsul poate fi afirmativ (yes) sau negativ (no).
• Variabile obiecte generice ca argumente ale predicatelor. O
variabila este legata (instantiata) daca exista un obiect asociat ei
sau neinstantiata (libera, anonima) altfel.
Conventie: argumentele variabile incep cu litera mare sau sunt egale cu
simbolul “_”, iar constantele incep cu litera mica.

3
Tipuri de date
Fiecare loc al unui predicat de biblioteca sau definit de utilizator are
asociat un anumit tip de data (domeniu) asociat
Tipuri de date standard:
• Char - caracter. Ex: ‘a’, ‘1’
• String – sir de caractere fara lungime precizata. “abcf”
• Integer – numar intreg. 123
• Real – numar real. 135,63
• File – nume de fisier
• Symbol – un nume (ex: abc) tratat ca atom fara sa se poata actiona
asupra sa
Pot fi definite si tipuri utilizator cum sunt listele ([1,2,3]) elementele
sunt separate prin virgula. Toate elementele unei liste sunt de
acelasi tip si pot contine chiar liste.

4
Componente Prolog
Orice program Prolog incearca sa verifice un scop final prin
descompunerea in subscopuri ce se vor verifica.
Componente standard:
• DOMAINS – defineste variabile si asociaza tipuri de date
pentru declararea predicatelor. In program pot fi utilizate
variabile ce nu sunt declarate.
• GOAL – specificarea unui scop. Daca lipseste la rulare se cere
precizarea scopului. Punctul de intrare intr-un program Prolog
este dat de clauza care are scopul in membrul stang.

5
• CLAUSES – sectiune ce contine fapte si clauze fiind considerat
corpul programului Prolog. Membrul drept al clauzei este o
conjunctie sau disjunctie de predicate, unele dintre ele necesitand
executia altei clauze in care predicatul este membru stang.
Important
• Predicatele din membrul drept se separa prin virgula interpretata
ca operator logic ‘SI’, : interpretat ‘SAU”. Pot exista paranteze
• de grupare
• :- semn cheie care separa cei doi membrii (if)
• O clauza se incheie cu punct
• Variabilele incep cu litera mare. Daca incep cu litera mica sunt
considerate constante symbol
6
Paralela programare clasica – logica (1)
Cu toate ca in Prolog nu sunt structuri de control acestea pot fi
realizate prin modul in care se scriu clauzele:
• Structura IF...THEN...ELSE
//PREDICARES
//test(integer)
//CLAUSES
test(1):-!, write(“Corect”).
test(_):-write(“Incorect”).
! – este un predicat predefinit cu rolul de a opri masina Prolog sa
urmareasca predicatul test pe celelalte ramuri
_ - variabila universala, asimilata cu orice valoare
7
Paralela programare clasica – logica (2)
• Structura SWITCH CASE
//PREDICATES
//test(integer)
//CLAUSES
test(1):-!, predicat1.
test(2):-!, predicat2.
......
test(20):-!, predicat20.
test(_):-write(“text de iesire”).
Daca argumentul predicatului test este 1,2...,20 se intra pe una
din clauze, altfel scrie textul de iesire
8
Paralela programare clasica – logica (3)
• Structura DO...WHILE
//PREDICARES
//do_while(integer)
//CLAUSES
do_while(X):-X<10,-!, XX=X+1, predicat,
do_while(XX).
do_while(10).
Se apeleaza recursiv predicatul do_while(x) atata timp cat
conditia X<10 este indeplinita, iar pentru X=10 predicatul este
adevarat.

9
Program Prolog simplu
//DOMAINS
//parinte, copil = symbol
//PREDICATES
//descendent(copil, parinte)
//frate(symbol, symbol)
//var(symbol, symbol)
//CLAUSES
//fapte
descendent(vasile,ion).
descendent(ana,ion).
descendent (maria,ana).
descendent(mihai,vasile).
//reguli
frate(X,Y):-descendent(X,Z), descendent(Y,Z).
var(X,Y):-descendent(X,Z),descendent(Y,U),frate(Z,U).

10
Precizare scop
Scopul poate fi specificat ca orice predicat din membrul stang.
• descendent(ana,ion) Ana este descendenta lui ion?
• descendent(ana,X) Al cui descendent este ana?
• descendent(X,ion) Cine sunt descendentii lui ion?
• descendent(X,Y) Care sunt perechile parinte copil?
• frate (X,Y) sau orice combinatie de variabila cu
constanta sau doua constante
• var(X,Y) sau orice combinatie de variabila cu constanta
sau doua constante
Exercitiu: Extindeti ca alte legaturi de rudenie

11
Exemple
Calcul Z=XmodY cu predicatul modulo(X,Y,Z)
modulo(X,Y,X):-X<Y.
modulo(X,Y,Z):-X>=Y,X1=X-
Y,modulo(X1,Y,Z).
Calcul celui mai mare divizor comun a doua numere X,Y conform
algoritmului lui Euclid utilizand modulo. Cmmdc(X,Y,Z)
cmmdc(X,0,X).
cmmdc(X,Y,C):-modulo(X,Y,Z),
cmmdc(Y,Z,C).
Pentru a functiona corect scopul modulo(X,Y,Z) si pentru Y=0 se
va adauga la predicatul modulo si faptul modulo(X,0,X).
12
Liste in Prolog
• Structura de date reprezentata de o secventa ordonata cu nici
unul sau mai multe elemente de acelasi tip
• Lista fara nici un element poarta denumirea de lista vida [].
• In structura listei se evidentiaza doua componente:
– Primul element este numit header
– Celelalte elemente sunt o lista numita si tail
• Exemple:
– [a|[]] lista cu un singur element
– [a|[b,c]] lista cu trei elemente
– [a|[b|[c]]] lista cu trei elemente in care s-a evidentiat
headerul
13
Exemple procesare liste
Testarea apartenentei unui element la o lista
• Introducem predicatul membru(Elem,Lista) in care Elem este
elementul cautat in lista si Elem si Lista sunt de acelasi tip
membru(Prim,[Prim|_]).
membru(Prim,[_|Rest]):-membru(Prim,Rest).
Concatenarea a doua liste
• Introducem predicatul concat(Lista1,Lista2,ListaRez)
concat([],L,L).
concat([Prim|Rest1],L2,[Prim|Rest3]:-
concat(Rest1,L2,Rest3).
Rulati exemplele si comentati executia programului
14
Baza de date dinamice in Prolog (1)
• Manipuleaza doua tipuri de baze de date: statica si dinamica
• Baza de date dinamica este manipulata cu predicate
predefinite sau predicate utilizator
• Ex: Findall(argument_variabil,predicat,lista de iesire) cu
program complet
DOMAINS
lista=string*
PREDICATES
fise_pacient(string,integer,string)
write_list(lista)
run
15
Baza de date dinamice in Prolog (2)
GOAL
run.
CLAUSES
fise_pacient(“ion”,27,”gripa”).
% alte asignari fise_pacient
run:-write(“Introduceti varsta”),
readint(X), findall(Nume,
fisa_pacient(Nume,X,_),L),
write_list(L).
write_list([]).
write_list([H|T]):-write(H), nl,
write_list(T).
16
Baza de date dinamice in Prolog (3)
• Predicate de scriere. In sectiunea DATABASE se va specifica
predicatul ce defineste structura inregistrarii
asserta(inregistrare) – scrie la inceputul bazei de
date
assertz(inregistrare) – scrie la sfarsitul bazei de
date
• Predicate de stergere
retract(inregistrare) – sterge prima inregistrare
din baza de date.
Retract(_) sterge prima inregistrare din orice baza de date
Retract(nume_database(_,_,..,_)) sterge prima inregistrare din baza de date cu
numele specificat

17
Baza de date statica (tip fisier)
• Un fisier are fie un nume simbolic fie nume complet ce
precizeaza intreaga cale.
Predicate:
• consult(nume_complet) adauga fisier la BD activa
• deletefile(nume_complet) stergere fisier
• openappend(nume_simbolic, nume_complet) deschidere
fisier pentru a adauga
• openread(nume_simbolic, nume_complet) citire
• openmodify(nume_simbolic, nume_complet) modificare
• openwrite(nume_simbolic, nume_complet) fisier nou
• closefile(nume_simbolic) inchidere fisier
18
Reguli de productie
CLIPS

19
Caracteristici
• Este un mediu integrat pentru dezvoltare de programe ce
sunt interpretate
• Motorul de inferenta integrat implementeaza o strategie de
control inainte
• Model de reprezentare bazat pe reguli, dar are si un modul
pentru programare orientata obiecte
• Dezvoltarea unui program presupune dezvoltarea bazei de
fapte si a bazei de cunoastinte
• Are extensie pentru logica fuzzy, cunoscuta ca fuzzyClips

20
Manipulare fapte in Clips (1)
• Faptele sunt indexate avand asociat indexul de ordine (f-numar)
• Pentru a pune date in lista de fapte avem comanda assert. Ex:
(assert(ion)) la care sistemul raspunde cu <Fact-n>, unde
n este indexul faptului
• Un fapt poate acea un singur camp sau mai multe campuri.
• Pentru campurile fara nume ordinea este importanta. De exemplu
(Ion, Vasile) interpretat ca Vasile este fiul lui Ion, iar (Vasile, Ion) ca
Ion este fiul lui Vasile.
• Pentru clarificare se poate utiliza descrierea relatiei ca in exemplul
cu 3 campuri (performanta-determinata viteza set-de-instructiuni)

21
Manipulare fapte in Clips (2)
• O multime de tipuri de date pentru campuri sunt disponibile:
float, integer, symbol, string, external-address, fact-address,
instance-name, instance-address.
• Campurile in fapte sunt ordonate si doua fapte ce difera prin
ordine sunt diferite.
• Sistemul nu pastreaza fapte identice
• Toate faptele pot fi sterse prin (clear)
• Orice fapt poate fi sters cu referire la indexul sau:
• (retract n) sterge faptul de la indexul n
• (retract 2 6) sterge faptele cu index intre 2 si 6,
inclusiv

22
Reguli in Clips (1)
• Definirea unei reguli
(defrule nume_regula (partea de premisa)
=>(partea de concluzie))
(defrule vreme “prognoza” ;header
(presiunea-este in-crestere) ;premisa
=> ;implica
(assert(va-ploua))) ;actiune
• Nu pot exista 2 reguli cu acelasi nume in sistem
• Cand se introdice o regula cu acelasi nume, o suprainscrie pe
cea veche

23
Reguli in Clips (2)
Forma generala
(defrule nume_regula “comentariu optional”
(patern_1) ;Partea stanga a regulii
(patern_2) ;pana la =>
..........
(patern_n)
=>
(actiune_1) ;Partea dreapta
........... ;Actiunile nu intorc valori dar
(actiune_m)) ;produc efecte (assert, retract)
24
Reguli in Clips (3)
• Daca toate paternurile regulii se potrivesc faptelor regula este
activata si pusa in agenda
• Pentru a verifica ce se gaseste in agenda se va utiliza
comanda (agenda)
• De multe ori dorim sa vedem o regula si putem utiliza
comanda (pdefrule nume_regula) avand ca efect
afisarea regulii
• Regulile introduse pot fi stocate folosind comanda simpla
(save “nume.clp”), clp este extensia specifica Clips
• Daca nu se cunoaste numele comanda (rules) afisaza
toate regulile cunoscute
25
Linkuri utile
• Prolog user manual http://www.probp.com/download/manual.pdf
• Clips User Guide
http://clipsrules.sourceforge.net/documentation/v630/ug.pdf
• Clips Reference Manual
http://clipsrules.sourceforge.net/documentation/v630/bpg.pdf
• Introduction to Clips
http://www.comp.rgu.ac.uk/staff/smc/teaching/clips/tutorial/node2.html
• Advances Clips Reference Manual
http://www.scribd.com/doc/23179/CLIPS-reference-manual-advanced

26
Reprezentarea cunoasterii

1
Modele de reprezentare
• Sistemele bazate pe cunostinte (SBC) folosesc modele de
reprezentare a cunoasterii
• Este diferenta intre cunostinte si modul de reprezentare a
acestora in SBC
• Modul de reprezentare are implicatii asupra performantelor
(timp de raspuns, resurse folosite)
• Se parcurg doua etape:
– acumularea de cunostinte
– codificarea cunostintelor

2
Acumularea de cunostinte
• Acumularea de cunostinte. Aceasta presupune pe langa
achizitia de noi cunostinte si clasificarea lor pentru a fi
regasite atunci cand sunt relevante. Procesele de observare a
realitatii, invatare, abstractizare si achizitie au fost foarte
mult dezvoltate incat au devenit subdomenii SBC.
Elementele cu semnificatie poarta denumirea de piese de
cunoastere. Tipuri de piese:
• Concept (variabila predicativa/functionala) - ce condenseaza
rezultatele abstractizarii si specifica criteriile de apartenenta a
obiectelor la clase.
• Instanta (constanta) – materializata prin obiecte individuale

3
Codificarea cunostintelor
• Codificarea cunostintelor – dezvoltarea de programe care sa
codifice si sa proceseze piesele de cunoastere. Cu toate ca
poate fi realizata codificarea si prin programare clasica, apar
noi necesitati privind gasirea pieselor de cunoastere in baza,
efectuarea de rationamente. Ca urmare intre structurile ce
reprezinta o piesa de cunoastere sunt necesare legaturi prin
care sa fie usor regasite piesele de cunoastere inrudite.
• Cu toate ca etapele de acumulare si codificare par a fi
secventiale, dezvoltarea oricarui SBC presupune un proces
iterativ in care etapele se repeta de mai multe ori.

4
Caracteristici model reprezentare
• Modelul de reprezentare furnizeaza o metoda de codificare utilizata in
realizarea bazei de cunostinte. Caracteristici:
• Expresivitate – capacitatea de a descrie obiectele si proprietatile lor esentiale
• Claritate – relatiile dintre obiecte sunt clar explicitate
• Completitudine – reprezentare completa si concisa fara detalii nesemnificative
• Independent de context si neambiguu semantic, nu trebuie sa fie dependent
de context cum se intampla uzual in limbajele naturale
• Eficienta – din punctual de vedere al gestionarii bazei (adaugare, stergere,
organizare piese de cunoastere) si al executiei rationamentelor.
• Modelul este definit prin conventii sintactice (alfabetul reprezentarii si
combinarea simbolurilor alfabetului) si semantice (intelesul combinarii
simbolurilor alfabetului)
5
Detalii model reprezentare (1)
• Stabilirea pieselor de cunoastere. Precizarea conceptelor si instantelor
ce vor fi modelate
• Aspecte ontologice (trasaturi generale). Semantica modelului depinde
de ontologia modelului.
• Modelul include ontologie generala si o ontologie specifica. Exemplu:
intr-un model pentru medicina, relatiile de apartenenta intre obiectele
acestui univers corespunde ontologiei generale, pe cand folosirea EKG
este un aspect ce corespunde unei ontologii specifice.
• Expresivitatea metodei de reprezentare influenteaza posibilitatile
ontologice. Astfel, prin calcul propozitional putem modela existenta sau
inexistenta unui obiect, pe cand prin calculul cu predicate putem
modela si relatiile dintre obiecte.
6
Detalii model reprezentare (2)
• Din punctul de vedere al teoriei cunoasterii (epistemologic), modelul
exprima modul de interpretare a cunoasterii pentru elementele admise
in ontologii. In logica binara un fapt este adevarat sau fals, in logica fuzzy
valorile corespund unui interval.
• Primitive semantice – elemente utilizate ce nu pot fi definite in cadrul
sistemului. La calculul cu predicate primitivele semantice corespund
variabilelor predicative si a celor functionale folosite. Primitivele se
definesc prin ele insele.
• Exista o controversa intre numarul primitivelor semantice pentru un caz
general, Wilson 7, Filmore 11, dupa altii pot ajunge la 100.
• Alegerea unui nivel de granularitate al reprezentarii (primitive
reprezentationale). Argumente pro si contra nivelului de detaliere.
7
Alegerea primitivelor reprezentationale
• Grad de granularitate adecvat universului modelat, competenta
SBC si eficienta implementarii
• Numarul primitivelor finit si mai mic decat numarul elementelor
de interes modelate
• Setul de primitive sa permita modelarea tuturor elementelor si
distingerea corecta a tuturor sensurilor
• Primitivele sunt independente in sensul ca nici o primitiva nu
poate fi definita prin alte primitive

8
Reprezentarea in limbaje de ordinul intai
• Este derivata din logica matematica prin care piesele de
cunoastere sunt descrise de formule in calculul cu predicate cu
sintaxa si semantica din logica matematica.
• Avantaje:
– Regulile de inferenta sunt regulile de deductie din calculul cu predicate
– Rationamente computationale clare (demonstrarea automata a
teoremelor)
– Faptele deduse sunt garantate
• Dezavantaj: dificultatea de gasire a trasaturilor relevante ale
pieselor de cunoastere

9
Etape reprezentare calcul cu predicate
• Captarea piesei de cunoastere exprimata in limbaj natural
• Descompunerea acesteia in propozitii (asertiuni)
• Legarea propozitiilor prin conective logice
• Exprimarea fiecarei asertiuni printr-un predicat cu numar de
locuri finit (aritate) in care sunt incluse variabile individuale
(obiecte neprecizate sau anonime) sau constante (instante)

10
Exemplu de reprezentare
Sa se reprezinte in limbajul calculului cu predicate de ordinul intai
urmatoarele asertiuni exprimate in limbaj natural:
• A1 – “Automobilul este compus din sistem de rulare, sistem de
comanda, sistem de propulsie, sistem de franare”
• A2 – “Motorul functioneaza daca are combustibil in rezervor si
cheia de contact este in pozitia inchis”
• A3 – “Automobilul se deplaseaza daca viteza sa este diferita de
zero”

11
Descomponerea in propozitii
• A1 este o asertiune in forma in care este prezentata. Deci
• A21 – Motorul functioneaza, A22 – Are combustibil in rezervor,
A23 – Cheia de contact este in pozitia inchis. Se obtine formula

• A31 – Automobilul se deplaseaza, A32 – Viteza este diferita de


zero. Se obtine formula
• Asertiunile pot fi privite ca variabile propozitionale, dar in mod
obisnuit vor fi inlocuite cu formule ale calculului cu predicate.

12
Reprezentarea predicativa (1)
• Enunturile au structura subiect/subiecte, respectiv parte predicativa
• Partea predicativa este reprezentata printr-un simbol de predicat,
locurile sale fiind ocupate de subiecte
• Surprinderea cu ajutorul cuantificatorilor a modificarii valorilor de
adevar datorate componentelor care isi modifica valoarea
• A1 se poate exprima cu ajutorul predicatului
ESTE_COMPUS(obiect_compus, componenta_1, componenta_2,
componenta_3, componenta_4) , iar instantierea pentru cazul de fata ce
determina interpretarea predicatului ca fiind adevarat va fi:
ESTE_COMPUS (automobil, sistem de rulare, sistem de comanda, sistem
de propulsie, sistem de franare).

13
Reprezentarea predicativa (2)
O astfel de reprezentare are cel putin doua dezavantaje: in
rationamente nu avem nevoie simultan de toate componentele si
la o eventuala rafinare a cunoasterii prin adaugarea de noi
componente va trebui schimbat predicatul. Pot fi reformulate
asertiunile in forma logic echivalenta de conjunctie de predicate.
Daca folosim predicatul de aritate doi
ESTE_COMPONENTA(obiect_compus, componenta), instantierea
in exemplul considerat devine

14
Reprezentarea predicativa (3)
• Pentru A2, descompusa in A21, A22 si A23 vom folosi predicatele:
FUNCTIONEAZA(x), ARE(y,z), POZITIE(u,v) si instantierea produce:

• Pentru A3, descompusa in A31 si A32 vom folosi predicatele:


SE DEPLASEAZA(x), DIFERIT(y,z) si instantierea produce

15
Observatii (1)
• La folosirea oricarui predicat trebuie fixata semantica sa pentru o
corecta interpretare a acestuia.
• Functie de instantierea argumentelor si semantica predicatului
acesta va fi interpretat fie ca adevarat, fie fals.
• In exemplul de mai sus argumentele predicatelor au fost substituite
cu instante individuale (constante in logica).
• O descriere generala pentru A1 porneste de la idea ca intreaga clasa
a obiectelor automobil sunt formate din aceleasi componente si vom
introduce in model predicatul AUTOMOBIL(x), predicat adevarat la
orice inlocuire a lui x cu o instanta a conceptului.

16
Observatii (2)
Se obtine astfel:

• Pe langa aceasta in baza de cunostinte va mai exista predicatul


care afirma ca un anumit obiect este automobil, de ex:

• In situatia in care nu toate elementele unei multimi satisfac o


proprietate dar cel putin un element satisface proprietatea se va
modela utilizand cuantificatorul existential
17
Observatii (3)
• Gasirea unui model adecvat necesita experienta
• Subiectele in modelarea logica nu sunt aceleasi cu cele
gramaticale. In functie de instantierea lor vor fi variabile
functionale de aritate zero (constante) sau variabile individuale.
• Subiectele pot deveni variabile predicative, ex subiectul
“automobil”
• Este necesara identificarea actiunilor, relatiilor in care subiectele
sunt implicate, iar operatiile logice se determina dupa anumite
cuvinte ale limbajului natural (“si”, “cat si”, “daca”, “atunci”,
“cand”, “sau”), dar in multe cazuri aceste cuvinte lipsesc

18
Exemplu (1)
Sa se reprezinte in limbajul calculului cu predicate proverbul:
“Cine se scoala de dimineata ajunge departe”.
• La o prima analiza se deduce ca proverbul se aplica
persoanelor care fac parte din clasa oamenilor si proverbul se
poate reformula in “Orice om care se scoala de dimineata
ajunge departe”.
• Deducem ca subiectul se refera la cei care apartin clasei
oamenilor, adica se refera la o intreaga multime. Se va modela
printr-o variabila predicativa de aritate 1 OM(x).
• Subiectul este implicat in doua relatii prin faptul ca se scoala
de dimineata si ca ajunge departe.
19
Exemplu (2)
• Vom modela faptul ca subiectul se scoala de dimineata,
introducem o variabila predicativa de aritate 2 SE-SCOALA(x,
dimineata).
• Pentru a modela faptul ca subiectul ajunge departe,
introducem o noua variabila predicativa de aritate 2
AJUNGE(x, departe).
• Asertiunea are o semnificatie calitativa pe care o surprindem
folosind cuantificatorul universal
• Se obtine formula

20
SBC, calcul cu predicate (1)
• Baza de fapte contine asertiuni ce au modelul calculului cu
predicate prezentat
• Este necesara gasirea modelului logic pentru elementele din baza
de cunostinte ce constituie reguli
• O regula este de forma , in care S reprezinta formula din
membrul stang sau premisa si D formula din membrul drept sau
concluzia.
• Mecanismul inferential daca in baza de fapte exista faptele pentru
care T(S) este adevarat. Am notat cu T() functia de evaluare a valorii
de adevar a unei formule. Aceasta se va face prin suprapunerea
faptelor peste formulele atomice ale membrului stang.
21
SBC, calcul cu predicate (2)
• Daca T(S) este adevarat pe baza regulilor de deductie sunt
puse in executie actiunile cuprinse in D, aceasta fiind o
consecinta logica a lui S
• Toate faptele din baza de fapte sunt considerate ca formule
interpretate ca adevarate si regula de deductie modus ponens
este aplicabila cand un fapt sau un grup sunt identice cu
subformule reprezentand partea de conditie a reguli.
• Logic, o regula poate fi reprezentata intr-o multime de forme
echivalente. Un SBC nu este capabil sa testeze toate formele
echivalente ale regulii.

22
Exemplu rezolvare
• Rezolvarea unei probleme presupune modificarea unei stari
initiale data intr-o stare numita si stare obiectiv
• Daca reprezentam starea prin calcul cu predicate si aplicam
operatori pentru trecerea in alta stare, fiecare operator are
preconditii de aplicare si o descriere a modului in care se
modifica starea. Exemplificare pentru asezarea cuburilor

23
Reprezentare (1)
Starea initiala: PE_MASA(B), PE(C,B), PE(D,C), PE(A,D), CLEAR(A)
Starea obiectiv: PE_MASA(D), PE(C,D), PE(B,C), PE(A,B), CLEAR(A)
Operatori:
1. UNSTACK(X): ia cubul X din varful unei stive si il pune pe masa
• Preconditii: PE(X,Y), CLEAR(X)
• Delete list (lista predicatelor care devin false): PE(X,Y)
• Add list (lista predicatelor care devin adevarate): CLEAR(Y),
PE_MASA(X)

24
Reprezentare (2)
2. STACK(X): ia cubul X de pe masa si il pune in varful unei stive
• Preconditii: PE_MASA(X), CLEAR(X), CLEAR(Y)
• Delete list: PE_MASA(X), CLEAR(Y)
• Add list: PE(X,Y)
3. MOVE(X,Y): ia cubul X din varful unei stive si in pune in varful
altei stive
• Preconditii: PE(X,Z), CLEAR(X), CLEAR(Y)
• Delete list: PE(X,Z), CLEAR(Y)
• Add list: PE(X,Y), CLEAR(Z)

25
Reprezentarea prin reguli de productie
• Model curent utilizat in SE, evolutia sa fiind strans legata de SE.
• Reprezentarea cunoasterii prin reguli de productie este mult influentata
de efectuarea rationamentelor
• Regulile de productie isi au originea in sistemele care pornesc de la un
context initial caruia i se aplica o serie de transformari successive,
similar cu gramaticile formale sau automatele finite.
• Partea de conditie mai este numita si parte contextuala si indica
contextul in care regula este aplicabila, iar partea de actiune se numeste
si parte transformationala pentru ca aceasta determina modificarea
contextului
• Separarea neta intre cunostinte (baza de cunoastinte) si rationament
(mecanism de inferenta)
26
Structura regula productie (1)
• Sintactic este asemanatoare cu instructiune IF… THEN din
programarea clasica
• Momentul in care se declansaza piesa de cunoastere nu depinde
de locul in care este plasata in program cum este la programarea
traditionala.
• Ordinea faptelor si a pieselor de cunoastere nu are nici o
importanta, ele sunt declansate de mecanismul de control al
motorului de inferenta.
• Model de reprezentare ce asigura lizibilitate ridicata

27
Structura regula productie (2)
• Efectuarea inferentelor este facuta de un mecanism independent
cu grad mare de generalitate
• Cunostintele expertului uman sunt mai usor de transpus in reguli
decat in formule ale calculului cu predicate
• Foarte utile in modelarea cunostintelor care refera perechi
situatie – actiune
• Fiecare regula este modulara si independenta, dar la cresterea
complexitatii cunostintele nu mai sunt total independente si
trebuiesc urmarite corelatiile dintre ele, pentru a asigura
consistenta bazei de cunostinte

28
Implementarea sistemelor bazate pe reguli
• Componentele uzuale unui sistem expert: baza de fapte, baza de reguli,
motorul de inferenta
• Cunoasterea asupra problemei este transpusa intr-un grup de reguli ce
vor fi codificate
• Se stabilesc faptele initiale (descrierea starii initiale a problemei) si se
transpun in conformitate cu sintaxa limbajului utilizat
• Se rafineaza cunostintele si se verifica consistenta bazei
• La orice moment pot fi adaugate noi piese de cunoastere fara a
interveni asupra motorului de inferenta
• Pot fi utilizate medii software care pun la dispozitie motoare de
inferenta gata construite (EXSYS, CONVID, CLIPS pentru control inainte,
PROLOG pentru control inapoi)
29
Interpretarea sistemelor de productii
• Corespondenta – selectarea regulilor ce satisfac partea de
conditie
• Rezolvarea conflictelor – alegerea din multimea regulilor ce
satisfac partea de conditie a unei reguli ce va fi aplicata
• Executie – executia partii actiune a regulii selectate
• Actualizare context – adaugarea la context a rezultatelor partii
actiune a regulii lansata in executie
• Oprirea mecanismului interpretativ – daca actiunea specifica
acest lucru sau solutia a fost gasita

30
Formalizare sisteme productii
Un sistem de productii este definit ca SP=<K,P, σ, ω, ps> in care:
• K multimea de cunostinte factuale cunoscuta de sistem
numita si contexte
• P multimea regulilor de productie din baza de cunostinte,
numita si multimea productiilor
• σ functia succesor la indeplinirea cu succes a conditiei, σ :P->P
• ω functia succesor in caz de esec a conditiei, ω: P->P
• ps productia initiala sau productia de start de la care porneste
procesul de selectare

31
Strategii
Orice strategie este determinata de modul de definire a functiilor
σ si ω si a productiei de start ps
Fie K=(k1,k2,...kn) si P=(p1,p2,...pm)
Exhaustiv
σ(pi) = ω(pi) = pi+1 pentru 1<=i<=m-1
σ(pm) = ω(pm) = λ (productia vida) ps=p1
Markov
σ(pi) = p1 pentru 1<=i<=m
ω(pi) = pi+1 pentru 1<=i<=m-1, ω(pm) = λ si ps=p1

32
Metode de cresterea performantelor
Selectarea productiei ce va fi lansata in executie este un proces
consumator de timp ce duce la diminuarea performantelor.
Metode posibile de cresterea performantelor:
• Organizarea contextului pentru explorare partiala
• Organizarea bazei de cunostinte astfel incat sa fie favorizate
productiile adecvate problemei de rezolvat (prin introducerea
de prioritati pentru reguli sau ordonarea pieselor de
cunoastere pentru favorizarea strategiei Markov)
• Utilizarea de metacunostinte care sa specifice pentru tipul de
context regulile favorizate (duce la rationamente stereotipe)
33
Organizare baza de cunostinte (1)
O metoda de organizare a unei baze de cunostinte este si cea
bazata pe castig informational. Porneste de la algoritmul ID3
propus de Rose Quinlian.
Un exemplu este cel de generare a regulilor de clasificare pe
baza unui set de exemple.
Daca notam cu t1,t2,t3 teste care dupa executie intorc valori in
domenii cunoscute, de ex: (t1a,t1b,t1c), (t2a,t2b,t2c), (t3a,t3b) si cu
d1 si d2 clase de defecte, exemplele se scriu:
t1a,t2b,t3a:d1
t1a,t2a,t3c:d2 .....
34
Organizare baza de cunostinte (2)
Daca exemplul se citeste: daca t1 intoarce t1a, t2 t2b si t3 t3a atunci
defectul apartine clasei d1. Se obtin astfel mai multi arbori de
decizie corecti, dar cu adancimi diferite functie de organizarea
nodurilor.
Data o colectie de exemple si concluziile d1, d2, .... dn, cantitatea de
informatie din setul de exemple este data de relatia:
C   Pd1 * log2 ( Pd1 )  Pd 2 * log2 ( Pd 2 )  ...  Pdn * log2 ( Pdn )
Unde Pdi reprezinta probabilitatea de aparitie a defectului di pe
setul colectiei de exemple, calculat ca di/n
Un test ti imparte dupa valorile sale colectia de exemple in n1
obiecte cu valoarea t1a, n2 cu t1b, ... .
35
Organizare baza de cunostinte (3)
Daca notam cu n numarul initial de exemple se obtine castigul de
informatie dat de alegerea testului ti pentru formarea nodului de
decizie ca fiind C-C(ti), cu
n1 n2 nk
C (ti )  ( ) * C1  ( ) * C2  ....  ( ) * Ck
n n n
In care Ci reprezinta cantitatea de informatie din fiecare dintre
clasele de exemple partitionate dupa un atribut (test).
Se va alege ca atribut initial de decizie acel atribut pentru care
valoarea C-C(ti) este maxima si apoi susccesiv pana la ultimul
test relevant.

36
Exemplu (1)
Fie colectia organizata dupa rezultatele testului t1:
t1a,t2c,t3b:d2 t1b,t2c,t3a:d1
t1a,t2b,t3a:d1 t1b,t2a,t3a:d2
t1a,t2a,t3a:d2 t1b,t2c,t3b:d2
t1a,t2c,t3a:d1
2 2 3 3
t1a,t2a,t3b:d2 C1   log2  log2  0,971
5 5 5 5
3 3 5 5 1 1 2 2
C   log2  log2  0,954 C2   log2  log2  0,918
8 8 8 8 3 3 3 3
5 3
C (t1 )  * 0,971  * 0,918  0,951 C  C (t1 )  0,003
8 8

37
Exemplu (2)
Organizan colectia de exemple dupa rezultatele testului t2:
t2a,t1a,t3a:d2 t2b,t1a,t3a:d1 t2c,t1a,t3b:d2
t2a,t1a,t3b:d2 t2c,t1a,t3a:d1
t2a,t1b,t3a:d2 t2c,t1b,t3a:d1
3 3
C1   log2  0,000
t2c,t1b,t3b:d2
3 3 2 2 2 2
1 1 C3   log2  log2  0,500
C2   log 2  0,000 4 4 4 4
1 1
3 1 4 C  C (t1 )  0,704
C (t1 )  * 0  * 0  * 0,500  0,250
8 8 8
38
Concluzii
• Se observa ca C-C(t2)>C-C(t1), adica testul t2 are castig
informational mai mare decat t1
• Acest rezultat arata ca testul t2 trebuie sa fie favorizat fata de t1
• Aceleasi calcule vor fi facute si pentru testul t3. Din analiza
colectiei de exemple rezulta ca dupa executia testului t2 in situatia
in care acesta intorce t2c este suficienta executia testului t3
pentru a trage concluzia d1 sau d2
• Nu este necesara executia si a testului t1 pentru clasificarea
defectului
• In acest mod baza de cunostine se organizeaza dupa castigul
informational si simplifica mecanismul interpretativ
39
Inconsistenta sistemelor de productii (1)
• Un sistem de productii este inconsistent daca pornind de la o baza
de fapte initiala se poate obtine validarea si invalidarea unei
expresii.
Exemplu:
• BF (constructie=rezistenta, cutie=aspectoasa,
conectare=puternica)
• Sistemul de productii:
P1: IF (constructie=rezistenta AND cutie=aspectoasa)
THEN (confectie=aluminiu)
P2: IF (cutie=aspectoasa) THEN (surub = cap ingropat)
P3: IF (conectare=puternica)THEN (surub= NOT(cap ingropat))

40
Inconsistenta sistemelor de productii (2)
• Se observa ca baza de fapte initiala (constructie=rezistenta,
cutie=aspectoasa, conectare=puternica) este consistenta
• Aplicarea regulilor produce prin derivare urmatoarea baza de
fapte (constructie=rezistenta, cutie=aspectoasa,
conectare=puternica, confectie=aluminiu, surub=cap ingropat,
surub=NOT(cap ingropat))
• Am obtinut concluzii contadictorii adica adevarat si fals pentru
aceeasi expresie
Obs: O astfel de situatie este rezolvata la rationarea cu incertitudini

41
Reprezentarea cunoasterii prin modele structurale
• Modelele structurale se dovedesc utile pentru: clasificare, limbaj
natural, planificarea activitatilor
• Au pornit de la baze de date relationale in care se pun in evidenta
relatiile intre entitati, astfel ca se asigura accesul la obiectele
inrudinte
• Adaptate la tipuri specializate de inferente, chiar daca se pierde
generalitatea se castiga in eficienta
• Implementari:
– Retele semantice
– Cadre (frame)

42
Retele semantice
• Introduse de Quillian in 1968, avand la baza caracterul asociativ al memoriei
umane
• O retea semantica este un graf orientat etichetat (nodurile si arcele sunt
etichete)
• Etichetele nodurilor: concepte, instante, valori, proceduri
• Arcele sunt etichetate cu relatiile dintre noduri. Spre exemplu un nod
concept leaga un nod instanta printr-un arc este o (este un) – relatie de
apartenenta, un concept generic indica un concept prin arcul etichetat
subset – relatie de incluziune.
• Nodurile de nivel superior sunt asociate conceptelor generice, iar cele de
baza sunt instante
• Arcele se mai numesc si primitive taxonomice intrucat corespund unei
clasificari

43
Exemplu

Student
Este un subset
Ion Om
Este un subset
Programator
Este o
Meserie

• Ion este un student. Ion este un programator.


• Studentul este om. Programatorul este om
• Concluzia: Ion este om. Nu se poate deduce Ion este o meserie.
44
Ierarhie de concepte
Concept
generic

Concept
intensiune nivel inferior extensiune
90
90
90
90

Instanta

Toate conceptele de nivel inferior mostenesc proprietatile celor de


nivel superior si ca urmare ajuta la efectuarea rationamentelor.
45
Modelarea evenimentelor
• Introducerea unui nod dedicat pentru eveniment din care pleaca arce catre
elementele implicate in eveniment
• Legaturi (relatii) cauzale, denumire provenita de la cazurile gramaticale, functie
de rolul avut la eveniment
• Relatii cauzale des folosite:
– Actiune – specifica actiunea desfasurata in timpul evenimentului (verb)
– Agent – actorul evenimentului, autorul actiunii, identic cu subiectul din
punct de vedere gramatical
– Obiect – elementul afectat de activitatea agentului
– Receptor – elementul caruia i se atribuie actiunea sau obiectul implicat in
actiune
– Instrument – entitatea folosita de agent la realizarea actiunii
• Functie de univers pot fi luate in consideratie si alte relatii cauzale: scop, timp,
durata, loc etc.
46
Exemplu
Retea asertionala modelata in jurul unui eveniment
• “Ospatarul aduce cafeaua clientului”

Aduce

actiune

Client Receptor Eveniment 1 Obiect Cafeaua

Agent

Ospatarul

47
Retea semantica structurala, retea
evenimentiala
• Atentie la diferenta dintre nodurile unei retele semantice
structurale si cele ale unei retele asertionale (in reteaua
asertionala se preiau in rationament toate nodurile si arcele din
jurul unui nod eveniment).
• Nodurile retelei semantice structurale sunt noduri individuale,
nodurile retelei evenimentiala sunt noduri propozitionale.
• Reteaua structurala reprezinta relatii binare, reteaua asertionala
relatii n-are.

48
Modelarea operatorilor logici si a cuantificatorilor
• Operatia de implicatie poate fi modelata prin arcul Preconditie care leaga
evenimentele corespunzatoare subformulelor
• Pentru operatii conjunctie sau disjunctie se introduce un nod auxiliar din care
pleaca arcele catre termenii aflati in conjunctie/disjunctie prin arcele Argument.
Nodul specializat va fi legat de restul retelei printr-un arc ce defineste tipul
nodului
• Un arc Subset corespunde unei formule cuantificata universal. Similar, o
proprietate atasata unui concept introduce cuantificarea universala.
• Poate fi echivalata, nu fara dificultati, o retea semantica cu un model in calculul
cu predicate de ordinal intai
• Cuantificatorul existential este subinteles pentru partea de retea semantica
evenimentiala si se poate pune in corespondenta un cuantificator existential cu
un nod instanta al retelei semantice
49
Inferente in retele semantice (1)
• O inferenta in retea semantica inseamna gasirea unui algoritm
care avand la intrare numele unui nod si numele unei proprietati
obtine la iesire rapunsul da si valoarea proprietatii, sau raspunsul
nu altfel.
• Inferenta prin mecanismul de potrivire (pattern matching). Se
construieste un fragment de retea ce contine noduri sau arce
neprecizate de acelasi tip cu o parte a retelei care modeleaza baza
de cunostinte si pe baza unui proces de potrivire rezulta atribuirea
de valori pentru elementele neprecizate.
• Presupunand ca intr-o retea avem un fragment care specifica
Operatorul apasa butonul start care a fost modelata ca in figura.
50
Inferente in retele semantice (2)

Butonul
Apasa actiune Eveniment 7 Obiect
Start

Agent

Operatorul

51
Inferente in retele semantice (3)
• Raspunsul la intrebarea “Cine apasa butomul Start?” se obtine
construind fragmentul de retea

Butonul
Apasa actiune Eveniment ? Obiect
Start

Agent

Prin suprapunere se deduce ca este Evenimentul 7 si


agentul este operatorul.
52
Reprezentarea prin cadre
• Modelul a fost introdus de Minsky pornind de la faptul ca la
rezolvarea unor probeme sunt folosite tipare acumulate
• Are caracter stereotip in sensul ca reprezinta caracteristici
obisnuite ale obiectelor si relatiilor
• Organizare structurata, fac parte din aceeasi categorie cu retelele
semantice si au elemente comune
• Cadrele reprezinta colectii de obiecte ce au atasate caracteristici si
intre obiecte avem legaturi
• Structura unui cadru nu este rigida, poate fi modificata prin
interventia demonilor asociati cadrului

53
Descriere cadre
• Cadru - structura identificata printr-o eticheta (nume cadru)
• Contine perechi caracteristica (atribut, proprietate) – valoare (slot value).
O caracteristica se refera la o relatie de apartenenta/incluziune, dar si la
alte proprietati
Pentru cadrul din exemplul urmator:
• Presupune ca in baza se gaseste si un cadru mijloc de transport si in
acest mod se produce mostenirea proprietatilor
• Daca o proprieatate nu este mostenita va fi specificata explicit in cadrul
care defineste obiectul ce apartine clasei. Valoarea unei proprietati
pentru o entitate este cea mai apropiata entitatii
• In cadre sunt atasate fatete pentru calculul valorilor caracteristicilor.
Valoarea poate fi precizata explicit sau cu ajutorul fatetelor.

54
Exemplu cadru
• Nume cadru: automobil
Subset Mijloc de transport
Producator If-added:
verificare_producator
Tip_automobil Default: sedan
Clasa_automobil Default: ardere_interna
Capacitate_cilindrica Default:1600
Putere Default: 100
If-needed: Calcul_putere
Siguranta Default: 4
Programare_calculator_de_bord If-added: versiune
If-removed: actualizare
55
Fatete
• Default – valoarea asteptata pentru o caracteristica
• If-needed - la aparitia unei probleme la folosirea fatetei default se executa o
procedura care pe baza informatiilor din baza poate determina valoarea
caracteristicii
• If-added – activata la introducerea valorii caracteristicii la care este atasata
• If-removed – activata la indepartarea valorii caracteristicii
• Procedurile atasate fatetelor cadrelor se numesc demoni si intra in executie la
momentul corespunzator. Este o programare orientata pe evenimente pentru ca
demonii se activeaza la evenimentele care determina modificarea caracteristicilor.
• Valorile caracteristicilor se obtin prin mostenire, valoarea implicita sau declansarea
demonilor ce modifica valorile.
• Cadrele imbina cunoasterea declarativa (continutul initial obtinut prin mostenire) si
procedurala prin demoni

56
Cadre pentru instante
Nume cadru: Dacia_logan Este_un Automobil
Producator Dacia Mioveni
Tip_automobil Berlina
Tractiune Fata
Putere 85
• Fiind o instanta in locul caracteristicii Subset are caracteristica Este_un
• Unele dintre caracteristici sunt omise pentru ca sunt mostenite
• Are organizare ierarhica, la nivel superior sunt cadrele corespunzatoare
conceptelor generice, la nivel inferior cele instanta
• Conexiunile intre cadrele din baza de cunostinte creaza o retea in care
nodurile sunt reprezentate de cadre, iar arcele de valori ale caracteristicilor ce
sunt nume ale altor cadre
57
Scenarii
• Utilizate pentru a reprezenta evenimente. Este un caz particular
de cadre
• Un scenariu este o structura ce descrie o secventa de
evenimente
• Numele scenariului identifica structura ce contine perechi
caracteristica valoare
• Se prezinta un exemplu de scenariu “desfasurare prezentare
lucrare stiintifica”

58
Exemplu scenariu
Tip Sesiune conferinta
Agenti Default: {prezentator, public_asistent}
If-nedded: public_interesat
Obiecte Sala_conferinta
Preconditii {lucrare_acceptata, programare_sustinere, prezentare}
Rezultate Default: prezentare neclara
If-nedded: intrebari prezentatorului
Scena 1 Pregatirea mijlocelor tehnice pentru prezentare
Scena 2 Deschiderea sesiunii de catre moderator
Scena 3 Invitarea prezentatorului
Scena 4 Default: Prezentatorul prezinta lucrarea
If-nedded: If(prezentare = neclara) then esec
59
Caracteristici
• Tip – categoria din care face parte evenimentul, similar cu subset de la retele
semantice
• Agenti – precizeaza cine executa actiunile
• Obiecte – alte entitati implicate in actiune, dar care nu sunt initiatori
• Preconditii – conditiile ce trebuie indeplinite pentru ca evenimentul sa poata
avea loc
• Rezultate – ce se vor valida dupa producerea evenimentului
• Scena – secventa ordonata cronologic pentru desfasurarea evenimentului.
Poate referi un alt scenariu
• Un scenariu poate include si alte fatete
• Demonii reprezinta procedurile care sunt invocate pentru rezolvarea situatiilor
care se abat de la desfasurarea obisnuita
• Similar cu un cadru, dar caracteristicile scena sunt ordonate cronologic
60
Sarcini de lucru (1)
• Ce este un model de reprezentare a cunoasterii? Caracteristici.
• Care sunt caracteristicile primitivelor reprezentationale?
• Ce intelegeti prin sintaxa si semantica unui model de reprezentarea
cunoasterii?
• Discutati comparativ primitive semantice, primitive reprezentationale
• Cum vedeti ierarhia concept – instanta? Asemanari, deosebiri
• Exemplificati universuri care se preteaza la reprezentare prin retele
semantic, cadre, reguli de productie
• De ce este suficienta in partea de conditie a sistemelor bazate pe reguli de
productie conjunctia?
• Primitive semantic pentru modelul cadru, scenariu
• Cum se modeleaza cuantificatorii intr-o retea semantica?

61
Sarcini de lucru (2)
• Rolul fatetelor in cadre si retele semantice.
• Precizati diferentele dintre o retea semantica structurala si una asertionala.
• Care este rolul demonilor in cadre?
• Cum aplicati mecanismul de potrivire in retele semantice si in sisteme de
reguli de productie?
• Construiti un model bazat pe cadre pentru senzori de temperatura
• Construiti un scenariu pentru evenimentele ora_curs, ora_laborator
• Construiti prin modele adecvate de reprezentarea cunoasterii, clasificari ale
tipurilor de microprocesoare cunoscute sau tipuri de roboti
• Ce model de reprezentare preferati in rezolvarea unei probleme de
diagnoza?

62
Sisteme rezolutive

1
Caracterizare sisteme rezolutive
• Sistemul rezolutiv este acea parte a unui SBC care utilizeaza
piesele de cunoastere pentru realizarea rationamentelor
• Implementeaza un mecanism generic de control al utilizarii
pieselor de cunoastere
• Cautarea unei solutii presupune construirea si parcurgerea de
arbori sau grafuri
• Arborii/grafurile nu sunt cunoscute aprioric ci construite dinamic
la utilizarea pieselor de cunoastere
• Un sistem rezolutiv implementeaza o strategie de control in
scopul gasirii unei solutii.

2
Fazele sistemului rezolutiv

3
Explicatii (1)
• Faza de selectie – Se extrage din baza de cunostinte piesele de
cunoastere specifice formularii problemei. Piesele extrase
formeaza multimea selectata (MS). Are sens numai daca baza
contine metacunostinte.
• Faza de filtrare – Din MS se extrag piesele de cunoastere ce au
premisa adevarata, adica expresiile din premisa se gasesc in baza
de fapte . Se obtine multimea candidata (MC) care se mai
numeste si multime conflictuala intrucat contine candidatii la
executie.
• Faza de eliminare conflicte – determina din multimea candidata
piesa de cunoastere ce va fi lansata in executie
4
Explicatii (2)
• Faza le lansare in executie – piesa selectata este lansata in
executie si concluziile sale sunt adaugate in baza de fapte,
modificand contextul curent al problemei.
Obs:
• Baza de fapte contine initial ipoteza
• Daca MC este vida nu poate continua procesul neavand piese
aplicabile
• Dupa fiecare lansare in executie a unei piese de cunoatere
multimea candidata se modifica intrucat pot fi si alte piese de
cunoastere aplicabile la noul context

5
Strategia de control inainte
Strategia de control inainte, numita si
strategie dirijata de date porneste de
la ipoteza si aplica succesiv piesele de
cunoastere aplicabile pana la gasirea
solutiei sau pana cand multimea
candidata devine vida.
Tranzitia de la un context la altul este
rezultatul aplicatii unei piese de
cunoastere
Starea finala poate sau nu sa satisfaca
obiectivul
6
Exemplu control inainte
• Se da baza de cunostinte
R1: If B,D,E Then F
R2: If D,G Then A Baza de fapte initiala contine
ca adevarate faptele B si C
R3: If C,F Then A
R4: If B Then X
Se cere demonstrarea obiectivului H
R5: If D Then E
R6: If A,X Then H Vom aplica in prima faza o strategie
R7: If C Then D prin care se lanseaza in executie prima
R8: If X,C Then A piesa de cunoastere valida
R9: If X,B Then D

7
Aplicarea regulilor

Daca favorizam regulile ce au mai multe expresii in premisa obtinem

8
Strategia de control inapoi
Strategia de control inapoi mai
poarta si denumirea de strategie
dirijata de scop sau obiectiv. La
lansarea in executie se precizeaza
ce trebuie demonstrat, problema
este descompusa in subprobleme
ce vor trebui rezolvate. O astfel de
strategie genereaza arbori/grafuri
SI/SAU.
Problema este rezolvata cand toate
subscopurile au fost demonstrate
9
Exemplu control inapoi
• Se da baza de cunostinte
R1: F if B,D,E
R2: A if D,G
R3: A if C,F
R4: X if B
R5: E if D
R6: H if A,X
R7: D if C
R8: A if X,C
R9: D if X,B
10
Cautarea solutiei in arbori/grafuri obisnuiti
• Metodele sunt specifice strategiilor de control inainte
• In IA arborii sunt reprezentati cu radacina in sus
• Metodele de cautare se impart in:
– Metode neinformale, dar sistematice – metode ce nu iau in
consideratie costul aplicarii operatorilor de tranzitie intre noduri
• Cautare in largime
• Cautarea in adancime
– Metode informale
• Cautare optimala
• Cautare pe baza apropierii se solutie (gradient)
• Algoritm A, A*
11
Notatii
Pentru implementarea metodelor de cautare in arbori/grafuri vom
folosi notatiile:
• Open_list – lista nodurilor atinse dar neevaluate din punctul de
vedere al satisfacerii obiectivului
• Closed_list – lista nodurilor evaluate
• Informatiile din cele doua liste asigura gasirea unui drum intre
starea initiala si starea obiectiv, daca acesta exista
• Structura de date aferenta unui nod contine intotdeauna un
pointer catre parintele sau
• Un nod este nod frunza daca nu are nici un nod fiu
12
Cautarea in largime
Pseudocod algoritm cautare largime:
Initializare stare initiala, stare obiectiv
Open_list={nod_start}
Closed_list=Ø
while (open_list≠Ø) {
n=prim_nod(open_list)
remove(n, open_list)
add(n, closed_list)
if(obiectiv(n)) exit(succes) //testeza potrivire obiectiv
expand(n) // genereaza toate nodurile fiu ni
append(ni,open_list) }
exit(esec)

13
Exemplu cautare in largime
Presupunem ca aplicarea
pieselor de cunoastere din
baza pornind de la starea
initiala (S) creaza arborele
din figura.
Interpretare:
• In starea S sunt aplicabile 3
piese de cunoastere care
determina tranzitarea in starile
A, B, C
• Starea G indeplineste obiectivul
14
Continut liste pe pasi
Pas Open_list Closed_list Stare
1 {S} Ø
2 {A,B,C} {S}
3 {B,C,D,G} {S,A}
4 {C,D,G} {S,A,B}
5 {D,G,F,H} {S,A,B,C}
6 {G,F,H} {S,A,B,C,D}
7 {F,H} {S,A,B,C,D,G} G este extras si indeplineste
obiectivul

15
Cautarea in adancime
Pseudocod algoritm cautare in adancime:
Initializare stare initiala, stare obiectiv
Open_list={nod_start}
Closed_list=Ø
while (open_list≠Ø) {
n=prim_nod(open_list)
remove(n, open_list)
add(n, closed_list)
if(obiectiv(n)) exit(succes) //testeza potrivire obiectiv
expand(n) // genereaza toate nodurile fiu ni
add_prim(ni,open_list) }
exit(esec)

16
Exemplu cautare in adancime
• In graful din figura avem
doua noduri ce satisfac
conditiile de obiectiv.
• Algoritmul de cautare in
adancime va gasi drumul de
la nodul de start la
obiectivul G1.
• Se observa ca exista un alt
drum intre nodul de start si
obiectivul G2 in care sunt
implicate mai putine
inferente
17
Continut liste pe pasi
Pas Open_list Closed_list Stare
1 {S} Ø
2 {A,B,C} {S}
3 {D,E,B,C,} {S,A}
4 {I,G1,E,B,C} {S,A,D}
5 {G1,E,B,C} {S,A,D,I}
6 {E,B,C} {S,A,D,I} G1 este extras si indeplineste
obiectivul

18
Cautarea cand se cunoaste costul
• De multe ori pot fi stabilite metrici prin care se evalueaza costul
sau eficienta atingerii obiectivului
• Daca metrica se defineste ca un cost se urmareste minimizarea si
respectiv maximizarea pentru eficienta. Vom folosi costul.
• Fie n un nod al unui drum. Definim f (n)  g (n)  h(n)
In care:
• f(n) reprezinta costul drumului de la nodul de start la obiectiv
• g(n) costul drumului de la nodul de start la nodul n
• h(n) estimarea costului drumului de la nodul n la obiectiv. H(n)
poate fi mai mare sau mai mic decat costul real
19
Cautarea optimala
• Se bazeaza doar pe costul drumului parcurs, adica componenta
g(n).
• O tranzitie in arbore de la un nod n la un nod fiu n1 incarca costul
cu c(n,n1), adica executia piesei de cunoastere ce produce
tranzitia
• Ca urmare g(n1)=g(n)+c(n,n1)
• Metoda este foarte utila atunci cand strategia de control creaza
un graf
• In exemplele urmatoare ilustram aplicarea cautarii optimale atat
in arbori cat si in grafuri. In paranteza la fiecare nod se va nota
costul drumului

20
Cautarea optimala (algoritm)
Initializare stare initiala, stare obiectiv
Open_list={nod_start(0)}
Closed_list=Ø
while (open_list≠Ø) {
n=prim_nod(open_list)
remove(n, open_list)
add(n, closed_list)
if(obiectiv(n)) exit(succes) //testeza potrivire obiectiv
expand(n) // genereaza toate nodurile fiu ni
calculeaza g(ni) // g(ni)=g(n)+c(n,ni)
add(ni,open_list)
ordonare(open_list,crescator)}
exit(esec)
21
Exemplu cautare optimala in arbori
• Arborele din figura contine mai multe noduri ce indeplinesc
conditiile de obiectiv.
• Se pune problema daca algoritmul gaseste drumul avand cel
mai mic cost

22
Desfasurare cautare
Pas Open_list Closed_list
1 {S(0)} Ø
2 {A(2),C(3),B(6)} {S(0)}
3 {C(3),E(5),B(6),D(6)} {S(0),A(2)}
4 {H(4),E(5),F(5),B(6),D(6)} {S(0),A(2),C(3)}
5 {E(5),F(5),B(6),D(6)} {S(0),A(2),C(3),H(4)}
6 {F(5),B(6),D(6)} {S(0),A(2),C(3),H(4)}
7 {B(6),G3(6),D(6)} {S(0),A(2),C(3),H(4),F(5)}
8 {G3(6),D(6),G2(13)} {S(0),A(2),C(3),H(4),F(5),B(6)}
9 {D(6),G2(13)} * s-a obtinut drumul (S,C,F,G3)

23
Exemplu cautare in graf

24
Desfasurare cautare
Pas Open_list Closed_list
1 {S(0)} Ø
2 {A(2), B(3)} {S(0)}
3 {B(3),C(5),G1(8)} {S(0), A(2)}
4 {C(4),D(6),G1(8)} {S(0), A(2),B(3)} a fost reactualizat costul
pentru nodul C si pointerul catre parinte
5 {D(6),E(6), G2(6),G1(8)} {S(0), A(2),B(3),C(4)}
6 {E(6), G2(6),G1(8)} {S(0), A(2),B(3),C(4),D(6)}
7 {G2(6),G1(8)} {S(0), A(2),B(3),C(4),D(6),E(6)}
8 G2 obiectiv

25
Concluzii cautare optimala
• Daca in arbore sau graf exista un drum de la nodul de start la un
nod care indeplineste conditiile de obiectiv algoritmul de cautare
optimala gaseste un astfel de drum
• Daca in arbore sau graf exista mai multe drumuri intre nodul de
start si noduri care indeplinesc conditia de obiectiv, algoritmul de
cautare optimala gaseste drumul optim (cel mai mic cost sau cea
mai ridicata eficienta)
• In grafuri un nod se poate gasi in open_list inainte de a fi gasit cel
mai bun drum pana la el. Atunci cand se gaseste un drum mai bun
se actualizeaza costul si pointerul catre parinte.
• Exercitiu: Demonstrati ca algoritmul gaseste drumul de cost minim

26
Cautare cand costul poate fi predictat
• Metoda se bazeaza pe estimarea costului pana la un obiectiv
• Se recomanda ca la fiecare stare (nod) sa se aleaga operatorul
care ne apropie cel mai mult de obiectiv
• Este similar cu metodele de gradient maxim pentru atingerea
unui extrem
• Poate gasi un extrem local fara sa atinga extremul global
• Nu se poate aplica decat la probleme la care poate fi estimat
costul pana la atingerea unui obiectiv
• Costul real poate fi mai mare decat cel obtinut prin aplicarea
algoritmului
27
Exemplu
• O problema obisnuita in
aceasta categorie este
problema traversarii unui
labirint
• Functia de distanta fata de
obiectiv h(n)=K(|xi-xj|+|yi-
yj|) daca privim labirintul
intr-un sistem de
coordonate

28
Calcul distanta nod fata de obiectiv
h(S)=K(|xg-xs|+|yg-ys|)= 6K, h(A)=K(|xg-xa|+|yg-ya|)= 5K
Similar h(B)=4K, h(E)=4K, h(D)=3K, h(F)=3K, h(C)=2K si h(H)=2K.
• Se pleaca din nodul de start (S) si trebuie ajuns la G pe
muchiile existente astfel incat la fiecare tranzitie sa se apropie
cat mai mult de obiectiv. Daca o tranzitie creste distanta fata
de obiectiv algoritmul esueaza.
• In exemplu succesiunea este:
S(6)->A(5)->B(4)->C(2) esec, pentru ca singurul nod in care putem
tranzita din C este la nodul F care ne indeparteaza de obiectiv
avand cost F(3)

29
Cel mai bun prim operator
• O solutie de rezolvare posibila in situatia in care operatorul
aplicat departeaza de obiectiv este cea de a alege operatorul
care indeparteaza cel mai putin de obiectiv (aplicarea
operatorului cel mai promitator)
• In exemplul anterior solutia este data de succesiunea:
• S(6)->A(5)->B(4)->C(2)->F(3)->G(0)
• Se observa ca prin tranzitia din nodul C in nodul F ne departam
de obiectiv

30
Algoritm A
Initializare stare initiala, stare obiectiv
Open_list={nod_start(0)}
Closed_list=Ø
while (open_list≠Ø) {
n=prim_nod(open_list)
remove(n, open_list)
add(n, closed_list)
if(obiectiv(n)) exit(succes) //testeza potrivire obiectiv
expand(n) // genereaza toate nodurile fiu ni
calculeaza f(ni) // f(ni)=f(n)+c(n,ni)-h(n)+h(ni)
if(niЄopen_list and f(ni_new)<f(ni_old)) f(ni)=f(ni_new)
if(niЄclosed_list and f(ni_new)<f(ni_old))
{add(ni,open_list
f(ni)=f(ni_new)
remove (ni,closed_list)}
if(not(niЄopen_list)) add(ni,open_list)
ordonare(open_list,crescator)}
exit(esec)
31
Caracteristici algoritm A
• Daca h(n)=0 se comporta la fel cu
cautarea optimala
• Estimatia h(n) este ilustrata la nod
• Algoritmul nu garanteaza faptul ca
gaseste drumul de cost optim, datorita
estimatiei de cost pentru h(n) ca in fig.
f(A) =2+3=5; f(B)=3+4=7. La expandarea
nodului A se gaseste nodul G cu
f(G)=f(A)-h(A)+c(A,G)+h(G)=5-3+4+0=6
Dar drumul prin nodul B are costul 5.
32
Exemplu

33
Cativa pasi
Pas Open_list Closed_list
1 {S(7)} Ø
2 {A(8), B(9)} {S(7)}
3 {D(8),B(9),C(10)} {S(7), A(8)}
4 {B(9),C(10),H(10),I(10)} {S(7), A(8),D(8)}
5 {D(7), C(10),H(10),I(10),E(10)} {S(7), A(8),B(9)}
6 {H(9),I(9),C(10),E(10)} {S(7), A(8),B(9),D(7)}

Am vazut migrarea nodului D din closed_list in open_list si


cazul in care a fost actualizat costul unui nod din open_list
34
Graf cu complexitate ridicata
Numarul pasilor intr-
un graf complet
conectat este
limitat superior la
2n
Sa vedem
comportamentul
pentru graful din
figura. In tabel
nodurile din
closed list sunt
marcate cu *

35
Evolutia cautarii in graf
S (f(n)) A (f(n)) B (f(n)) C (f(n)) D (f(n)) G (f(n))
20
20* 12 13 14 15
20* 12* 13 14 15 29
20* 11 13* 14 15 29
20* 11* 13* 14 15 28
20* 10 11 14* 15 28
20* 10* 11 14* 15 27
20* 9 11* 14* 15 27
20* 9* 11* 14* 15 26
20* 8 9 10 15* 26

36
Cautarea pe baza de set prin limitare
S A B C D G fm
0+20 0
0+20* 11+1 9+4 6+8 1+14 20
0+20* 7+1 5+4 2+8 1+14* 20
0+20* 5+1 3+4 2+8* 1+14* 20
0+20* 4+1 3+4* 2+8* 1+14* 20
0+20* 4+1* 3+4* 2+8* 1+14* 22+0 20
0+20* 4+1* 3+4* 2+8* 1+14* 22+0* 22

Valoarea functiei de cost fm este limitata la extragerea primului nod


la 20. Se expandeaza nodurile care au cost mai mic decat 20 in
ordinea data de componenta g(n), nu de costul total. Complexitate n 2
37
Cautarea solutiei cu matricea de costuri
• Metoda tipica pentru rezolvarea problemei comis voiajor
Caracteristici:
• Graful este complet conectat
• Nodul de start este identic cu nodul obiectiv
• Nu este permisa revenirea la un nod deja atins
• Traseul gasit pleaca din nodul de start, atinge toate nodurile
grafului si se incheie in nodul de start
• Legaturile dintre noduri sunt muchii nu arce, pot fi parcurse in
orice directie.

38
Exemplu
• Graful are structura din
figura
• Pe arcele ce leaga
nodurile au fost atasate
costurile
• Se construieste matricea
de costuri (matrice
patrata cu numar linii
egal cu numarul
nodurilor, simetrica fata
de diagonala principala)
39
Matricea de costuri
S A B C D E
S N 6 4 3 8 5
A 6 N 12 2 11 8
B 4 12 N 6 10 9
K=
C 3 2 6 N 5 7
D 8 11 10 5 N 4
E 5 8 9 7 4 N

Am notat cu N o valoare foarte mare care elimina un traseu

40
Matricea redusa pe linii
S A B C D E
S N 3 1 0 5 2 3
A 4 N 10 0 9 6 2
B 0 8 N 2 6 5 4
Kr =
C 1 0 4 N 3 5 2
D 4 7 6 1 N 0 4
E 1 4 5 3 0 N 4

Matricea redusa se obtine astfel


• Se scade din fiecare element al liniei minimul liniei
•Se scade apoi din fiecare element al coloanei minimul coloanei
•Costul acumulat este suma minimelor cost(K)=19+cost(Kr)
41
Matricea redusa pe coloane
S A B C D E
S N 3 0 0 5 2
A 4 N 9 0 9 6
B 0 8 N 2 6 5
Kr’ =
C 1 0 3 N 3 5
D 4 7 5 1 N 0
E 1 4 4 3 0 N
0 0 1 0 0 0

Similar Cost(K)=20+cost(Kr’). La acest moment stim ca


pentru parcurgerea grafului costul este cel putin 20.
42
Alegerea primei ramificatii
• Suntem in nodul S. Alegem un traseu ce nu incarca costul,
adica acesta este 0.
• Poate fi ales fie traseul S,B fie S,C. Avem prima ramificare.
• Presupunem ca am ales S,B
• Se elimina linia marcata cu S si coloana marcata cu B
• Obtinem o noua matrice K1 in care pentru traseul B,S vom
pune valoarea foarte mare N ca sa nu revenim la nodul S

43
Reluarea pasilor de reducere matrice
S A C D E
A 4-1(3) N 0 9 6 0
B N 8-2(6) 2-2(0) 6-2(4) 5-2(3) 2
C 1-1(0) 0 N 3 5 0
K1r’ =
D 4-1(3) 7 1 N 0 0
E 1-1(0) 4 3 0 N 0

1 0 0 0 0

Se obtine Cost(K)=23+cost(K1r’). Din nodul B singurul traseu


ce nu incarca costul este B,C. Se continua pana cand matricea
are ordinul 1.
44
Rezolvarea problemelor prin decompozitie

45
Rezolvarea problemelor prin decompozitie (1)
• Este specifica strategiilor de control inapoi, pornind de la scop
• Spatiul starilor este reprezentat prin arbori/grafuri SI/SAU
Exemplu: BC contine reguli de formare propozitii
R1 PROPOZITIE->SUBIECT(SUB), PREDICAT(PRED)
R2 SUB->PRONUME (PRON)
R3 SUB->NUME PREDICATIV (NP)
R4 PRED->VERB(V), NP
R5 NP->ARTICOL NEHOTARAT (DET), SUBSTANTIV(S)
R6 PRON->he
R7 V->saw
R8 DET->a
R9 S->dog
R10 S->cat
46
Rezolvarea problemelor prin decompozitie (2)
• Primele 5 specifica reguli gramaticale
• Ultimele 5 asociaza categoriilor gramaticale simboluri
terminale
• Atunci cand in membrul drept avem expresii separate prin
virgula se intelege o conjunctie de epresii
• Doua reguli ce au acelasi membru stang indica o disjunctie
• Daca analizam prima regula cu scopul formarii unei propozitii,
ea este descompusa in doua subprobleme ce trebuiesc
rezolvate (SUB, PRED) ce se regasesc ca subscopuri ale altor
reguli
• Graful rezolvent este ilustrat in figura urmatoare
47
Rezolvarea problemelor prin decompozitie (3)

Se observa ca sunt
6 propoizitii valide ce
pot fi realizate cu
nodurile frunza
repectand graful

48
Cautarea in grafuri SI/SAU
• Nu se cauta un drum intre starea initiala si obiectiv
• Se cauta un graf (subgraf) rezolvent
• Procesul gasirii solutiei se dezvolta progresiv
• Un graf ce constituie o solutie se numeste graf rezolvent
• Pana sa obtina solutia un graf este numit graf candidat
• Daca toate nodurile fiu ale unui nod SI sunt SOLVED, atunci nodul
SI va fi marcat SOLVED (altfel UNSOLVED)
• Daca cel putin un nod fiu al unui nod SAU este SOLVED atunci
nodul SAU este SOLVED (altfel UNSOLVED).
• Evaluarea unui graf se face de la nodurile frunza si se propaga
pana la radacina.
• Un nod SAU produce atatea grafuri cati fii are.
49
Cautarea in adancime in grafuri SI/SAU
Initializeaza open_list cu un graf candidat
format din nodul de start
while(true) {
if(open_list=Ø) exit(fail)
p=prim_graf(open_list)
if(solved(p)) exit(succes)
remove(p,open_list)
expand(p) // expandeaza nodurile frunza ale
//grafului generand un alt graf sau mai
//multe daca nodul este SAU (grafuri pi)
append(pi,open_list)
}
50
Exemplu cautare adancime SI/SAU

51
Continut 6 pasi open_list

52
Alte metode de cautare in grafuri SI/SAU
• Cu unele adaptari pot fi aplicate si metode de cautare
optimala
• Daca pentru noduri avem estimata departarea fata de
demonstrarea scopului
– Pentru nodurile SI valoarea functiei de cost este suma
costurilor nodurilor fiu
– Pentru nodurile SAU valoarea functiei de cost este egala cu
cea a unui nod fiu la care se poate adauga costul
descompunerii.
• Cu aceste precizari algoritmul este asemanator cautarii
optimale , dar open_list contine grafuri nu liste de noduri
53

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