Limbaje de Programare Utilizate în Inteligenta Artificială

Cuprins referat

Introducere 3
Reprezentarea cunostintelor 4
Limbaje de programare in inteligenta artificiala 5
Limbajul CLIPS 6
Limbajul PROLOG 8
Limbajul LISP 9
Tipuri de date in LISP 12
Constructiile limbajului 13
Bibliografie 14


Extras din referat

INTRODUCERE
Obiectul inteligentei artificiale este obtinerea de artefacte care sa se comporte inteligent, similar unui om. Cateva exemple binecunoscute de astfel de artefacte sunt robotii antropomorfi, programele de jucat sah, calculatoarele care pot dialoga intr-un limbaj similar celui uman, programele de traducere automata sau de regasire a textelor relevante pe Internet.
In functie de ideea fundamentala acceptata, in inteligenta artificiala sunt doua abordari (nu neaparat antagoniste). Abordarea conexionista se bazeaza pe ideea ca inteligenta este "emergenta" retelelor neuronale deosebit de complexe. Pe de alta parte, abordarea simbolica, bazata pe asa numita ipoteza a sistemelor simbolice fizice a lui H. Simon si A. Newell (Stefik 1995), considera ca orice sistem inteligent (natural sau artificial) este un sistem fizic de prelucrare a simbolurilor.
Fiecare din cele doua abordari are realizari si limite. De exemplu, retelele neuronale artificiale au fost folosite cu succes in recunoasterea imaginilor sau a vocilor. Ele au limitari insa in intelegerea limbajului uman, problemele sintaxei si a semanticii combinationale, a compozitionalitati fiind foarte greu de tratat (Fodor 1988). Un exemplu al lui Jerry Fodor se refera la exprimarea "racheta antiracheta" (Anderson et al., 1990b, pag. 601), care este imediat inteleasa de oamenii care nu au mai auzit-o, fapt foarte greu de explicat prin simple asociatii (conform modelului ABC- Asociationism, Behaviorism, Conexionism, care sta la baza retelelor neuronale artificiale (Dennett 1998 pag. 103).
Intelegerea exprimarii de mai sus poate fi foarte usor explicata prin abordarea simbolica, in care se postuleaza existenta unui "limbaj al gandirii" (Anderson et al. 1990a, pag. 600). Avantajul reprezentarii simbolice este foarte bine exprimat si de Daniel C. Dennett (Op. cit. pag.152):
"Simbolurile, spre deosebire de nodurile tesute in retelele conexioniste, sunt mobile; ele pot fi manipulate; ele pot forma structuri mai mari, in care contributia lor la sensul intregului poate fi o functie definita, generabila, a structurii - a structurii sintactice - a partilor."
In abordarile simbolice de inteligenta artificiala, prelucrarile sunt efectuate de un program care manipuleaza cunostinte dintr-o asa numita baza de cunostinte. Programele de calcul, in acest caz, sunt denumite sisteme bazate pe cunostinte, caracteristica lor definitorie fiind ca exista o separare neta intre baza de cunostinte (care poate fi dezvoltata incremental in timp sau chiar total inlocuita cu alta) si un mecanism de efectuat rationamente. Una din cele mai grele probleme ale dezvoltarii unui astfel de sistem este construirea bazei de cunostinte, asa numita achizitie de cunostinte.
Bazele de cunostinte pot deveni nebanuit de mari. De exemplu, pentru intelegerea unor propozitii in limbajul uman este necesar un volum nebanuit de mare de cunostinte de "bun simt", pe care le stie si un copil de cativa ani dar care sunt foarte greu de introdus intr-un program. Astfel, intelegerea instantanee de catre noi a propozitiei "Am vazut Statuia Libertatii zburand deasupra New-York-ului!" in sensul ca vorbitorul zbura (si nu statuia), este foarte greu de realizat de calculator (pentru ca ar trebui sa stie, de exemplu, ca statuile nu zboara).
In inteligenta artificiala exista divergente de opinii referitoare la mai multe probleme esentiale. Dupa parerea noastra, aceste dispute sunt datorate catorva aspecte esentiale care pun sub semnul intrebarii posibilitatea realizarii de roboti cu "viata psihica" sau constiinta, elemente determinante in considerarea unui robot ca fiind egal omului.
REPREZENTAREA CUNOSTINTELOR
Notiunea de "cunoastere" poate fi definita in variate moduri. Spre deosebire de informatie, notiune centrala in informatica (de unde si termenul de IT - "information technology" - "tehnologia informatiilor"), cunoasterea era, in acest domeniu, pana de curand, specifica doar subdomeniului inteligentei artificiale. In acest context, cunoasterea are o semnificatie bine precizata. Conform definitiei lui Alan Newell, unul din pionierii si teoreticienii inteligentei artificiale, cunoasterea este ceea ce poate fi atribuit unui agent uman sau artificial (un program de calculator autonom care interactioneaza cu mediul sau inconjurator) astfel incat comportarea sa sa poata fi catalogata drept rationala (Newell 1982). In consecinta, am putea spune ca societatea cunoasterii este populata cu agenti (din care multi sunt agenti artificiali, adica programe de calculator) care actioneaza rational. O observatie importanta in acest sens este ca o comportare rationala este o comportare predictibila (cu conotatie pozitiva, de situare intr-un mecanism), ducand la posibilitatea cooperarii intre agenti in vederea atingerii unor scopuri comune. Cunoasterea adauga la informatie un inteles, asociaza o actiune.
Totodata, la mijlocul anilor '70, la circa doua decenii de cercetari in inteligenta artificiala, s-a ajuns la concluzia ca reprezentarea si prelucrarea cunostintelor este esentiala in asigurarea inteligentei.
Tot Newell in lucrarea "Nivelul cunostintelor" (Newell 1982), postuleaza ca, in universul stiintei calculatoarelor, exista un nivel separat, al cunostintelor, situat deasupra nivelului programelor (denumit si nivelul simbolic), nivel care, la randul lui este situat deasupra celor specifice "hardware"-ului ("transferul intre registrii, circuitele logice, circuitele si dispozitivele). Trecerea la noul nivel, al cunostintelor, este noutatea adusa si de societatea cunostintelor fata de cea a informatiei.
Dupa postularea noului nivel, Alan Newel trece la caracterizarea acestuia. La acest nivel sunt identificate scopuri, actiuni si corpuri de cunostinte. Prin corespondenta, consideram ca societatea cunoasterii trebuie sa fie definita in termeni de scopuri, actiuni si corpuri de cunostinte. Aceleasi elemente se regasesc si la agentii artificiali inteligenti. Corpurile (bazele) de cunostinte sau ontologiile sunt definitorii pentru aplicatiile bazate pe cunostinte.
In contextul programelor de calculator "clasice", cunostintele sunt, in cea mai mare majoritate, incorporate implicit in program. Multe din ele sunt inglobate in teoriile matematice care stau la baza programelor. Alte cunostinte sunt implicite in algoritmii implementati sau in constructiile scrise in limbajul de programare.
Orice program de calculator inglobeaza o cantitate de cunostinte referitoare la problema de rezolvat si la domeniul caruia apartine acea problema. Pentru exemplificare sa consideram cazul unui program de sortare (ordonare) a unei secvente de numere memorate intr-un vector. Analizand un program pentru rezolvarea acestei probleme din perspectiva cunostintelor implicate, se pot face urmatoarele precizari:
- Programul inglobeaza cunostinte referitoare la faptul ca, pentru a sorta niste numere (sau, in general, chei sau elemente), o abordare posibila este de a compara cheile intre ele si a le interschimba pentru a le aduce la locul lor in secventa finala.
- Algoritmul (scenariul) de sortare, care a stat la baza programului, este obtinut ca o consecinta a cunostintelor referitoare la schemele posibile de rezolvare a unei probleme. In particular, de exemplu, algoritmul particular de sortare prin interclasare este o consecinta a ideei ca o abordare utila in multe cazuri este de a descompune problema initiala in subprobleme mai simple care apoi sunt recompuse in solutia finala ("divide et impera").
- Algoritmul foloseste cunostinte procedurale de genul ca, pentru a schimba doua elemente intre ele, metoda uzuala este de a folosi o variabila temporara si de a face o permutare circulara intre valorile celor doua elemente si a variabilei temporare.
- Implementarea algoritmului intr-un anumit limbaj implica, in plus, cunostinte asupra respectivului limbaj.


Fisiere in arhiva (1):

  • Limbaje de Programare Utilizate in Inteligenta Artificiala.doc

Imagini din acest referat

Ne pare rau, pe moment serviciile de acces la documente sunt suspendate.


Hopa sus!