Documente Academic
Documente Profesional
Documente Cultură
Curs 1
Introducere, istoric, definitii, clasificari
Curs2
Inteligenta = aptitudinea de a sesiza anumite raporturi intre obiecte si fenomene. Sesizare
senzoriala (la animale) datorata reflexelor conditionale sau intelectuala (la om) unde intervine
limbajul natural si conceptele.
Ex: Nu este neaparat senzorial faptul ca interpretez ca o temperatura este mare.
Modul in care un individ reactioneaza depinde de modul in care sunt definite conceptele
persoanei respective.
Conform lui Findler ---- Un sistem are propietatea de inteligenta daca se poate adapta la noi
situatii, daca are capacitatea de a produce rationamente, de a intelege legaturile dintre fapte si
de a descoperi alte intelesuri pentru a cunoaste sensul adevarat al unui text. Un astfel de
sistem ar trebui sa fie capabil sa invete.
Un sistem nu este inteligent daca i-am inglobat un algoritm. Utilizez doar cunostinte.
Trebuie sa descopar algoritmul pentru rezolvarea unei probleme
Inteligenta unui program nu o putem defini ca o metrica, deci este intotdeauna relativa (Nu
putem spune ca prog X este mai inteligent decat prog Y) Fiecare program se adreseaza unui
anumit domeniu.
Definire probleme
O problema are 3 parti:
* Ipoteza - date initiale
* Concluzie - ceea ce ar trebui sa obtin
* Proces - sirul de rationamente aplicate pentru a ajunge de la ipoteza la concluzie - astfel
nu mai am o problema ci am un fapt
Putem avea si probleme la care nu putem gasi un proces care sa ne duca la concluzie.
Daca cele 3 componente sunt cunoscute - avem un fapt (Daca aplic P ipotezei I, obtin C)
1. IPX - Care este concluzia aplicarii procesului P asupra ipotezei I. Aceasta este problema
tipica de prelucrare de date, de care se ocupa intotdeauna programarea clasica.
2. XPC - Care este ipoteza asupra careia daca aplic procesul P obtin concluzia C?
3. IXC - Descoperiti procesul aplicat ipotezei pentru a obtine concluzia. Este o problema
creativa - aceasta este o formulare din zona IA.
Subdomenii IA
1) Reprezentarea cunostintelor si rationarea cu acestea - se gaseste in toate celelalte
subdomenii.
2) Vederea artificiala. Initial a fost recunoasterea formelor - sa disting o forma fata de alta
forma (utilizata in zona de productie pentru a detecta conturul pieselor). Recunoasterea
formelor s-a dezvoltat atat de mult incat s-a ajuns la distingerea multor detalii. Detectez
culori, forme, caracteristici. Ex: recunoasterea emotiilor persoanelor.
Clasificarea cunoasterii
* Dupa modul de achizitie
# Apriori (universal valabile, nu pot sa le neg, stau la baza unui anumit domeniu, sunt
independente de sistemul senzorial) (ex. legile fizicii)
# Aposteriori (dobandite prin experienta) Validarea/invalidarea lor este un rezultat al
experientei. Vaccin pentru Covid-19 este aposteriori.
* Dupa continut
# Cunoastere procedurala - o reteta, un parcurs, o inlantuire prin care se ajunge la un
anumit rezultat. In limbajul respectiv am inclus si modul prin care se inlantuie. Conteaza si
ordinea
# Cunoastere declarativa - De a asigna valori de adevar pentru un anumit enunt (Este
adevarat sau fals)
# Cunoastere tacita - Dobandita neconditionat - abilitate - ex: abilitatea de patinaj. Este
un dat mostenit - talent
Discutii limbaje
LISP este procedural dar este utilizat in IA pentru ca se poate face procesare simbolica
Declarative - se precizeaza ce trebuie obtinut, nu se precizeaza cum trebuie obtinut
In programarea logica, programul este compus din fapte, reguli si scop. Executia verifica daca
scopul este adevarat
Programarea bazata pe reguli este legata de evolutia sistemelor expert
Programarea bazata pe cadre este mai rar utilizata. Se preteaza la piese de cunoastere
sterotipe.
Curs 3
Inginer de cunostinte - Extrage cunostintele de la experti in domeniu si le formalizeaza astfel
incat sa le poata transmite mecanismului de achizitie cunostinte. Nu este simplu. Presupune
diverse metode de extragere. Inginerul de cunostinte "fura" cunostinte de la inginerul uman
Mecanismul de achizitie de cunostinte - ii permite expertului sa gestioneze baza de cunostinte
Baza de fapte - Intervine atunci cand se face lansarea in executie a sistemului. Faptele sunt
pastrate in memorie temporara. Initial faptele sunt cunostintele initiale, dar pe parcurs se
adauga alte fapte care au fost deduse prin utilizarea pieselor de cunoastere. Se mai numeste
baza de contexte pentru ca pastreaza contextul initial, dupa obtinerea piesei, se obtine alt
context, etc.
Mecanismul de inferenta
Algoritm generic de control. Reactioneaza indiferent de continutul bazei. Dar modelul de
reprezentare trebuie sa fie conform.
Determina momentul in care o piesa de cunoastere este lansata in executie.
La un moment dat exista posibilitatea ca mai multe piese sa fie aplicabile.
Secventa de operatii intre inceperea si terminarea programului este determinata in mod
automat de catre mecanismul de inferenta care tine cont de anumite date.
Aceest mecanism implementeaza o strategie de parcurgere a arborilor si a grafurilor
Logica matematica
Elimina ambiguitatile din limbajul natural pentru a obtine un cadru riguros pentru
rationamente.
Judecatile umane se exprima prin enunturi, in SBC acestea sunt faptele si regulile de baza ale
bazei de cunostinte
Enunt - formatiune lingvistica (utilizam un anumit limbaj) declarativa, cu inteles, compusa
din subiect sau subiecte si partea predicativa. Partea predicativa defineste o relatie.
Subiect poate fi precizat (instantiat) sau nu (anonim).
Propozitie = enunt cu toate subiectele instantiate (Deci nicio variabila)
Predicat = enunt ce are cel putin un subiect neinstantiat
Variabila - subiect neinstantiat dintr-un predicat
Aritate = numarul subiectelor neinstantiate dintr-un predicat (Ex: persoana X are trei copii ->
aritate 1)
Propozitia este un predicat cu aritate 0
Enunturile compuse sunt formalizate in logica folosind operatori logici (conective logice si
cuantificatori)
Operatiile logice. Sunt suficiente negatia si conjunctia sau negatia si disjunctia. Cu toate
acstea, pentru a avea claritate se folosesc toate operatiile. (negatia - 7 intors) (conjunctia - v
intors), (disjunctia- v) (implicatia -> ) si echivalenta (egal cu 3 linii)
Tip similitudine
Abstractizarea fundamentala pe care sunt construite limbajele.
Se noteaza cu sigma
Sig = <I, J, K, teta, phi)
I = multimea de indexare a familiilor de relatii (un sistem relational intre subiecte cu diverse
aritati). Multimea relatiilor pe care le construim in acest tip de similitudini. O relatie e
evaluata prin valoarea sa de adevar, nu produce o valoare in domeniul de definitie.
J = multimea de indexare a famililor de functii (mult simbolulilor) . Functia are un rezultat in
domeniul de definitie.
K = multimea de indexare pentru elem distincte (mult elem distincte)
Repet: aritate = cate variabile avem
Teta:I -> N = aplicatia de aritate a familiilor de relatii
phi:J -> N= aplicatia de aritate a familiilor de functii (nr de argumente al unei functii)
Deci cand discutam de orice limbaj formal pornim de la un set de simboluri primitive, avem
un set de simboluri functionale, unul de relationale. Problema care se va pune este sa avem
structura semantica.
N = set de simboluri
<= e simbol relational ( obtin A sau F)
+, * si functie succesor (s) sunt simboluri functionale ( obtin valoare) . S este o functie
generatoare.
iar 0 e multimea elementelor distincte de la care se porneste.
Dpdv al aritatii, <= are aritate binara, + si * e tot binara, la succesor e unara.
Cand vine vorba de limbaj natural si limbaj formal – de ex in limba romana, chiar daca
concatenam mai multe cuvinte = aplicam un simbol functional pe mai multi termeni, si vom
obtine tot un termen, asta nu inseamna ca va avea si semantica = ca va avea sens.]
Echivalentul frazelor din limbajele naturale = formule in limbaje formale.
F1 si F2 sunt formule => oricum am aplica relatiile negare, implica etc etc, obtinem tot o
formula. (ca la propozitii/fraze)
variabila libera = o variabila care nu e nici instantiata nici prefixata de ceva. Daca x e o variab
libera intr o formula F, atunci prefixarea ei cu un cuantificator obtine tot o formula.
Aplicarea unei teoreme in matematica e o inferenta. Daca ipoteza e adevarata, atunci enuntul
aferent concluziei e adevarat.
Daca premisa e falsa nu inseamna neaparat ca si concluzia e falsa ca s ar putea sa fie
adevarata daca aplicam alte reguli. E posibil sa obtin aceeasi concluzie si prin acceptarea unor
alte premise.
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 printre concluzile altora se numeste lant
inferential - au o anumita ordine.
UN lant inferential = o succesiune de inferente logice care se fac intr-o anumita ordine. Aplic
o inferenta, obtin o concluzie, care poate e o premisa pe care aplic alta inferenta etc. Desi pe
fiecare ramura am o anumita succesiune, pot exista mai multe ramuri de unde sa ajung la
aceeasi concluzie. Deci se genereaza un graf. Important e ca acest lant de inferente sa fie
cel mai scurt.
Tipuri de formule
* Tautologii - formule ce au tot timpul valoarea adevarat indiferent de valoarea de adevar a
propozitiilor componente
* Contradictorii - formule ce au intotdeauna 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 elementelor componente
CURS5
Entitati PROLOG
* 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 be baza
faptelor deja cunoscute
* Scop(intrebare) despre obiecte si relatiile dintre ele la care programul raspunde luand in
considerare faptele si regulile existente. Raspunsul poate fi afirmativ sau negativ.
* Variabilele sunt obiecte generice ca argumente ale predicatelor. O variabila este legata
(instantiata) daca exista un obiect asociat ei sau neinstantiata (libera, anonima), in caz contrar.
* Conventie - variabile - incepe cu litera mare sau incepe cu _ sau este _
# -constante - incep cu litera mica
Tipuri de date
* Char
* String
* Integer
* Real
* File - nume de fisier
* Symbol - un nume tratat ca atom fara se se poata actiona asupra sa
Pot fi definite si tipuri utilizator cum sunt listele ([1,2,3]) - elemente separate prin virgula.
Toate elementele unei liste sunt de acelasi tip si pot contine liste.
Componente PROLOG
Orice program incearca sa verifice un scop final prin descompunerea in subscopuri ce se vor
verifica
Componente standard
* DOMAINS - defineste variabilele si le asociaza anumite tipuri de date. Scopul nu este de
a le utiliza in program ci de a specifica logica unui predicat. Pot fi folosite pentru a face
programul mai usor de inteles
* GOAL - specificarea unui scop - fereastra aia de jos din prolog. 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.
! - este folosit pentru a opri masina Prolog sa urmareasca predicatul test pe celelalte ramuri.
Pentru ca masina se uita la toate celelalte clauze.
Daca inversez clauzele obtin incorect mereu iar daca valoarea e 1, intra si in clauza 2 si imi
scrie si corect.
Switch
Do - While
aici nu era – la !
Liste
header + tail
Reguli in CLIPS:
- nu exista doua reguli cu acelasi nume
Deci la programele prolog avem o abordare putin diferita de abordarea clasica, uzuala.
( backtracking)
La clips fiecare regula e independenta, ordinea e complet aleatoare. SI la clips sunt in acelasi
loc regulile si faptele dar sunt stocate diferit.
Cut = cand am intrat pe o anumita clauza, executa clauza dar nu mai verifica si alte clauze in
continuare. E un break gen.
Daca am avea test(1) :- !, predicat1. Inseamna ca o sa opreasca, si apoi face predicat1. Dar
daca puneam de ex conditie, ! Atunci daca nu era adevarata conditia nici nu ajungea la cut. Pe
scurt, cut afecteaza doar ce e dupa el in celelalte clauze, dar se poate si sa nu se ajunga la el
deloc.
Aici de ex, daca X<10 ajunge la cut, altfel se opreste acolo si intra pe toate celalalte.
CURS 6
Modele de reprezentare
Exista o diferenta intre cunostinte ( o serie de afirmatii) si modul de reprezentare al
cunostintelor (modelul).
Se parcurg doua etape:
-acumulare de cunostinte ( intr-o forma care de obicei e specifica limbajului natural)
- codificarea cunostintelor
Primitive semantice = in matematica axiome. Noi dorim sa fie cat mai putine. Numarul
primitivelor trebuie sa fie mai mic decat cel al elementelor modelate.
Primitivele sutn independente intre ele.
Ex2.