Inteligenta Artificiala
Inteligenta Artificiala (AI) poate fi considerata ca fiind acel domeniu al informaticii ce are ca obiectiv proiectarea sistemelor inzestrate cu proprietati pe care in mod obisnuit le asociem inteligentei umane: intelegerea limbajului, invatarea, rationamentul, rezolvarea problemelor, demonstrarea teoremelor, etc. Inteligenta Artificiala isi propune sa imite caracteristicile inteligentei umane cu ajutorul calculatoarelor electronice si al programelor inteligente, scopul final fiind comportamentul inteligent al calculatoarelor.
Sistemele de Inteligenta Artificiala sunt astazi pregatite sa memoreze cunoasterea din cele mai diverse domenii, daca omul, specialistul (expertul in domeniu) le-o pune la dispozitie si sa o redea la momentul oportun sau sa o utilizeze in momente specifice.
Cunoasterea sistemelor de Inteligenta Artificiala este depozitata intr-o baza de cunostinte care contine fapte, concepte proceduri si relatii. Aceasta cunoastere este organizata, inteligibila, si rapid utilizabila de catre sistem in rezolvarea problemelor si luarea deciziilor. O limita a cunoasterii acestor sisteme consta in faptul ca scopul sau il reprezinta un subiect particular sau un domeniu si deci nu are aceeasi cuprindere care poate fi asteptata de la un om. Totusi scopul unui sistem de Inteligenta Artificiala este relevant pentru domeniul respectiv.
Pe langa cunoastere, a doua componenta a Inteligentei Artificiale, este in legatura cu tehnicile si metodele utilizate pentru ca metodele sa gandeasca si sa rationeze pe baza cunoasterii.
Dotat cu astfel de trasaturi, un sistem inteligent poate face inferente si elabora concluzii, sfaturi solutii sau decizii in domeniul respectiv. Un sistem inteligent este capabil sa solutioneze probleme pentru care este nevoie de putere de calcul, memorare si regasire a cunostintelor, precum si un control al rationamentelor.
1.1.1 Rationamentul in Inteligenta Artificiala
De cate ori se face referire la rationament ne ducem cu gandul la logica, stiinta care studiaza procesele de rationament si sistemul de reguli si proceduri utilizate in rationamente.
In cazul Inteligentei Artificiale, in particular in cazul sistemelor expert, rationamentul cade in sarcina motorului inferential, dupa cum gandirea umana este realizata de creier.
Vom prezenta trei metode ale rationamentului:
deductia
inductia
abductia.
Deductia este un proces de ra 242b13c tionament, ea are in vedere obtinerea unei concluzii particulare prin aplicarea unor principii generale asupra unor cazuri particulare denumite instante.
Exemplu
Cunoastem faptul ca dobanda unui credit se calculeaza in functie de produsul dintre suma imprumutata, durata creditului si rata dobanzii. De aici, putem deduce ca dobanda este in functie de rata dobanzii si durata de utilizare a creditului.
Principiile generale nu pot fi in totalitate cuantificate sau acceptate. Pentru folosirea unui astfel de rationament deductiv trebuie sa se stabileasca o situatie in care se utilizeaza premise majore si premise minore.
Exemplu
Nu poate fi scos pe piata un autovehicul fara ca toate componentele sa fie testate calitativ.
Fapte initiale:
Premisa majora: Toate componentele trebuie testate calitativ.
Premisa minora: Cel putin o componenta n-a fost testata.
Fapt nou dedus
- Deductia: Autovehiculul nu poate fi scos pe piata.
In exemplul dat, concluzia este valida deoarece atat premisa majora cat si cea minora sunt adevarate.
In cazul in care o premisa majora este insotita de mai multe premise minore, este necesar ca toate premisele minore sa fie adevarate pentru ca deductia sa fie valida. Toate aceste cerinte constituie limita rationamentului deductiv. In realitate poate aparea si cazul in care premisele minore nu sunt toate adevarate in intregime. In astfel de cazuri deductia rezultata nu poate fi corecta.
Inductia este tot un proces de rationament. Ea utilizeaza fapte in vederea inferarii unor concluzii. In cazul inductiei, concluzia este de ordin general si premisele de ordin particular. In cazul deductiei, concluzia este inferata numai din fapte cunoscute.
Fapte initiale
Premisa 1: Bujiile defecte determina o functionare proasta a motorului.
Premisa 2: Alternatorul defect determina o functionare proasta a motorului.
Premisa 3 : Uleiul prost determina o functionare proasta a motorului.
Fapte finale
- Concluzia : Bujiile defecte, alternatorul stricat si uleiul prost sunt cauzele functionarii proaste a motorului.
Din exemplul de mai sus se poate vedea ca prima premisa nu induce concluzia in intregime. Pe masura ce sunt introduse mai multe premise, concluzia capata o consistenta mai mare. Concluzia este cu atat mai corecta, cu cat premisele sunt adevarate. Pentru ca acest lucru se intalneste de putine ori, in mod uzual, rationamentul inductiv trebuie sa tina cont de incertitudinea premiselor, in scopul obtinerii unor concluzii mai mult sau mai putin adevarate. Un lucru foarte important este acela ca, pe masura adaugarii unor fapte noi (premise), concluzia inferata se modifica.
Rationamentul inductiv este utilizat in mod curent de catre oameni, ei reusind sa infereze concluzii cu un anumit grad de certitudine, din doar cateva fapte.
Abductia reprezinta metoda a treia de strategie inferentiala pe care ne-am propus sa o dezvoltam. La randul sau, ea utilizeaza premise majore si premise minore, dar, spre deosebire de deductie, abductia nu este o forma naturala a inferentei.
Exemplu
Fapte initiale :
Premisa majora: Daca temperatura procesorului unui calculator este mai mare de 70oC, atunci calculatorul se opreste.
Premisa minora: S-a oprit calculatorul.
Fapte finale :
- Concluzia: Temperatura este de mai mare de 70oC.
Din acest exemplu rezulta ca pot fi si alte motive pentru care s-a oprit calculatorul: s-a oprit curentul, s-a ars sursa de alimentare, etc.
Cu toate ca abductia nu este o tehnica de inferenta valida, ea este uneori necesara, mai ales in sistemele expert de tip diagnostic, tocmai pentru ca poate genera explicatii posibile. Abductia trebuie utilizata cu foarte mare precautie deoarece poate infera concluzii nu tocmai adevarate.
Exemplu IF nu este curent la retea
THEN calculatorul nu porneste
Daca observam ca nu porneste calculatorul, nu putem trage neaparat concluzia ca nu este curent la retea. Desi aceasta ar putea fi o explicatie plauzibila nu poate fi si definitiva, iar din acest motiv trebuie sa identificam si alte cauze posibile ale nefunctionarii calculatorului.
Ca si concluzie, abductia actioneaza asemanator euristicii in sensul ca ea ofera un punct de plecare in rationamentele urmatoare, obligatorii intotdeauna.
Directii de dezvoltare ale Inteligentei Artificiale
Inca de la inceputul cercetarilor in Inteligenta Artificiala s-au putut observa doua directii fundamentale de dezvoltare.
Paradigma logico-simbolica constituie prima directie. Pe de-o parte s-a urmarit realizarea de masini capabile sa reproduca functiile cognitive ale mintii umane, pe de alta parte s-a incercat realizarea de programe care sa permita prelucrarea simbolica a informatiilor (cunostintelor) folosind metodele logicii. Aceasta presupune existenta unor mecanisme de reprezentare simbolica a cunostintelor si a unei baze de cunostinte unde sunt memorate faptele. Modele logice sunt apoi utilizate pentru deducerea unor cunostinte noi. Un exemplu il constituie demonstratorul automat de teoreme (1956) realizat de A. Newell si H.A. Simon. In cadrul acestei directii s-au realizat primele programe inteligente capabile de a substitui experienta unui specialist.
Paradigma conexionista, cea de-a doua directie are la baza ideea ca pornind de la modele ale activitatii neuronale se pot construi programe si implicit masini inteligente. In 1958 s-a realizat prima si cea mai simpla retea neuronala artificiala numita perceptron. In cazul acestor retele informatia nu mai este memorata in zone bine precizate, cum se intampla in cazul calculatoarelor standard, ci este memorata difuz in toata reteaua. O astfel de memorare se realizeaza prin stabilirea de valori corespunzatoare pentru ponderile conexiunilor sinaptice dintre neuronii retelei.
Aceste directii nu sunt in fapt atat de ermetic separate, o serie de metode, notiuni si rezultate circula intre ele. Se pot gandi sisteme ce combina o retea neuronala si un sistem expert.
In prezent se asista la reconturarea directiilor Inteligentei Artificiale. Calculul evolutiv (incluzand algoritmii genetici, strategiile evolutive si programarea evolutiva), sistemele inteligente bazate pe logica nuantata(fuzzy) si calculul neuronal definesc domeniul Inteligentei computationale (sau Calcul inteligent). Caracteristica principala a acestui domeniu este reprezentarea numerica a cunoasterii, care il diferentiaza net de Inteligenta Artificiala traditionala, bazata pe reprezentarea simbolica si inferente logice.
Acest Calcul inteligent poate fi considerat ca fiind domeniu al Inteligentei Artificiale caracterizat de:
reprezentarea numerica a cunoasterii;
adaptabilitate;
robustete, toleranta la erori;
viteza de prelucrare comparabila cu procesele cognitive umane;
rata de eroare optima.
O alta categorisire a directiilor de dezvoltare ale Inteligentei Artificiale se poate realiza in functie de domeniile urmarite. Dintre acestea cele mai importante sunt:
demonstrarea automata a teoremelor;
jocurile inteligente;
prelucrarea limbajului natural;
robotica;
imagini artificiale;
sistemele expert.
Primele doua directii s-au dezvoltat cu intensitate intre anii '50 si '60, iar interesul de cercetare in celelalte directii a scazut.
In 1956, Herbert Gelenter a construit un program care rezolva probleme de geometrie plana, iar in acelasi an s-a realizat programul LOGIC THEORIST al carui scop a fost de a demonstra toate teoremele cuprinse in cartea "Principia Mathematica" a lui Russel si Whitehead. Cu acest program au fost demonstrate 38 din cele 52 de teoreme care se afla in capitolul doi al lucrarii. Succesorul lui LOGIC THEORIST este sistemul GPS (General Problem Solver), elaborat in 1957 de catre Newell, Shaw si Simon. Sistemul GPS a fost scris in limbajul LISP, iar principiul sau de functionare se bazeaza pe parcurgerea starilor pornind de la o stare initiala spre starea finala prin utilizarea unor operatori, care trebuie sa satisfaca unele conditii pentru a fi aplicati la o stare data. GPS se bazeaza pe o strategie de cautare numita "inlantuire inapoi" care permite parcurgerea operatorilor de la starea initiala spre starea finala.
Aplicarea tehnicilor Inteligentei Artificiale la jocuri a avut ca efect cresterea nivelului de dezvoltare si aplicare a acestor tehnici in domenii diverse. Este cunoscut faptul ca, in prezent exista pe piata numeroase calculatoare cu jocuri instructive si educative pentru tineret, dar trebuie sa amintim ca performantele jocurilor de sah si backgammon sunt comparabile cu cele umane. Programul lui Arthur Samuel, bazat pe invatarea cu ajutorul jocurilor precedente, a avut un mare succes, iar programul CHESS CHAMPION MARK V a gasit solutii la problema pusa de sahistul Zagorutko in timp ce acesta se gandea la rezolvare. Campionul mondial la sah, Anatoly Karpov, s-a confruntat de nenumarate ori cu programul MEPHISTO III ale carui performante sunt semnificative. De asemenea, alte programe de jocuri au fost elaborate cu scop instructiv pentru a genera probleme si aici se poate aminti programul ID3.
Un grup de cercetatori si-a desfasurat activitatea in directia intelegerii elaborarii de programe si calculatoare capabile sa inteleaga si sa vorbeasca limbajul uman. Acest tip de programe este cunoscut sub denumirea de prelucrarea limbajului natural. Importanta si aplicatiile acestor programe este evidenta, pentru ca, chiar o simpla comunicare a expertilor si/sau specialistilor non informaticieni cu calculatoarele, produce mutatii infrastructurale si genereaza noi meserii si servicii.
Traducerea automata dintre doua limbi a fost unul dintre primele campuri de aplicare a cercetarilor in acest domeniu. La inceput s-a crezut ca cu ajutorul unui dictionar si a cuvintelor echivalente se poate realiza o traducere automata, dar mai tarziu s-a constatat ca problema este mult mai complicata. Desi in aceasta perioada scopurile cercetatorilor erau mult mai mari, ei au incercat sa realizeze un calculator care sa inteleaga textele pe care le foloseau. Principala dificultate pe care au intalnit-o a fost comunicarea dintre om si calculator. In prezent, pentru rezolvarea acestei probleme, se desfasoara o intensa munca de cercetare. La Universitatea din Hamburg se lucreaza pentru elaborarea sistemului HAMANS, iar la Universitatea din Cambridge se efectueaza cercetari pentru facilitarea accesului in comun la baze de date si in Japonia au fost deja realizate calculatoare din generatia a cincia si se lucreaza pentru realizarea calculatoarelor din generatia a sasea.
Cercetarile in directia imaginilor artificiale au o arie mare de raspandire in ultimul timp, si ofera posibilitatea calculatoarelor de a interpreta si prelucra informatiile vizuale. Unul dintre primele sisteme realizate este sistemul SEE, elaborat in 1965, destinat analizei obiectelor din imagini si determinarea pozitiilor acestora. Printre programele existente mai pot fi amintite: sistemul VISIONS care furnizeaza imagini artificiale, sistemul POPEYE care identifica formele si sistemul POLY care interpreteaza schitele inregistrate.
Un alt domeniu de cercetare legat de prelucrarea limbajului natural si imaginile artificiale este "robotica", al carui obiectiv principal este de a construi calculatoare capabile sa interactioneze cu lumea exterioara cu ajutorul proprietatilor senzoriale. Din punct de vedere practic toti robotii au fost proiectati pentru a lucra in spatii predeterminate, dar cercetarile recente au fost concentrate spre gasirea unor solutii care sa permita acestor mecanisme automate sa raspunda la stimuli externi si la situatii diferite prin inzestrarea acestora cu facilitati de mobilitate si flexibilitate.
1.1.3 Diferentele dintre programele inteligente si programele informatice conventionale
Programele inteligente se bazeaza pe reprezentarea simbolica si manipularea simbolurilor. In Inteligenta Artificiala un simbol este o litera, un cuvant sau un numar care se utilizeaza pentru reprezentarea obiectelor, proceselor, situatiilor si a relatiilor dintre ele. Prin utilizarea simbolurilor este posibila crearea unei baze de cunostinte care inmagazineaza fapte concepte si relatiile dintre ele.
Programele conventionale au la baza algoritmi, definiti pas cu pas si realizeaza solutionarea problemelor structurate.
Tabelul 1.1 - Sunt prezentate succint diferentele dintre programele inteligente si programele conventionale
Criteriul |
Programe I.A. |
Programe conventionale |
Natura prelucrarii |
In principal simbolica |
In principal numerica |
Natura intrarilor |
Pot fi incomplete |
Obligatoriu complete |
Cautarea |
In principal euristica |
Algoritmica |
Explicatii |
Ofera explicatii |
Uzual nu ofera |
Scopul principal |
Cunoasterea |
Date si informatii |
Structura |
Separarea cunoasterii de control |
Controlul este integrat cu datele si informatiile |
Natura iesirilor |
Pot fi incomplete |
Obligatoriu corecte si complete |
Intretinerea si actualizarea |
Relativ usoara datorita modularitatii cunoasterii |
Uzual dificila |
Hardware |
In principal PC-uri si statii de lucru |
Toate tipurile de calculatoare |
Capacitate de rationament |
DA |
NU |
1.2 Categorii de Sisteme Inteligente
In momentul de fata sistemele inteligente reprezinta tehnologia informationala cea mai inalta a zilelor noastre. Ele dispun de tehnici specifice inteligentei artificiale alcatuite din : retele neuronale; algoritmi genetici; sisteme expert; sisteme fuzzy (vagi); sisteme hibride.
Sistemele neuronale artificiale au aparut in anii '80 si ca metoda de reprezentare a cunoasterii au la baza metoda retelelor neuronale. Modelarea solutiilor problemelor se realizeaza prin instruirea neuronilor artificiali legati in retele. Acesti neuroni joaca rolul unor automate elementare incercand sa simuleze functionarea neuronilor biologici. Folosirea retelelor neuronale este preferata in cazul in care avem de a face cu foarte multe date, informatii si cunostinte empirice, in detrimentul realizarii unor algoritmi greoi, insuficient de rapizi si corecti in prelucrarea acestora.
A doua categorie de sisteme inteligente se bazeaza pe algoritmi genetici. Algoritmii genetici reprezinta un caz special de calcul evolutionist. Dezvoltarea algoritmilor genetici (AG) a fost initiata de John Holland. Functionarea acestora doreste sa imite comportamentul sistemelor biologice. Astfel, la baza algoritmilor genetici sta existenta unei populatii de solutii pentru o anumita problema. Dupa aceasta se urmareste obtinerea de generatii noi de solutii, mai performante decat primele.
Etapele algoritmului genetic sunt urmatoarele:
Crearea unor populatii de "membri" (solutii candidat la rezolvarea unei probleme);
Selectarea membrilor care s-au adaptat cel mai bine trebuintelor problemei de solutionat;
Reproducerea cu ajutorul operatorilor genetici de incrucisare, inversiune si mutatie, cu scopul de a obtine membri noi;
Evaluarea noilor membri;
Abandonarea populatiei vechi si inlocuirea acesteia cu o populatie mai buna din noua generatie(pasul 2).
Acest ciclu continua pana cand cea mai buna solutie a problemei respective a fost identificata.
Abandonarea
![]() |
![]() |
Figura 1.1 - Etapele algoritmului genetic
Algoritmii genetici pot fi utilizati ca instrumente pentru descoperirea unor cunostinte noi. Ei pot invata relatii si structuri complexe in cadrul seturilor de informatii si cunostinte incomplete, putandu-se adapta schimbarilor din mediul in care functioneaza.
Sistemele bazate pe logica fuzzy sunt mai flexibile, logica fuzzy permitand reprezentarea mult mai realista a fenomenelor care contin imprecizii si care in general sunt exprimate prin termeni vagi asociati unor variabile lingvistice, de exemplu "temperatura este mare" sau "temperatura este mica". In cadrul sistemelor expert, regulile de inferenta fuzzy specifica relatiile dintre variabilele fuzzy. Aceste reguli sunt construite de catre expertul in domeniul in care sistemul isi gaseste aplicabilitate.
Procesul de inferare (derivare) a concluziilor dintr-un set de reguli fuzzy este ceea ce numim rationament fuzzy. Spre deosebire de sistemele inteligente bazate pe reguli conventionale, in care numai o regula este executata ca urmare a adevarului premisei sale, in rationamentul fuzzy toate regulile din baza de reguli contribuie la solutia finala a problemei, indiferent daca premisele acestor reguli sunt total sau partial adevarate.
Sistemele fuzzy permit prelucrarea unor valori precise pentru controlul cunoasterii imprecise. Astfel se pot procesa termeni lingvistici imprecisi, cum ar fi: mic, mare, foarte mare, inalt, scund, tanar, batran, rapid, incet, scump, ieftin, cald, rece, etc.
O atentie sporita trebuie acordata conversiei datelor intre functiile membrilor din seturile fuzzy: fuzificare si defuzificare.
Bazele de cunostinte ale sistemelor fuzzy folosesc structuri de tip reguli, foarte usor de examinat, inteles si modificat. Un dezavantaj al acestor sisteme il constituie faptul ca functiile de apartenenta si regulile trebuie stabilite manual de catre un expert in domeniu. Sistemele bazate pe logica fuzzy nu sunt usor adaptabile la modificarile mediului in care functioneaza, iar noile reguli necesare trebuie elaborate tot manual.
Sistemele expert, in special sistemele expert bazate pe reguli de productie sunt cele mai bine organizate sisteme inteligente. Ele folosesc o cunoastere numita expertiza, provenita de la expertii umani, iar procesul de obtinere a acestor informatii se numeste achizitia cunoasterii. Pentru a construi baza de cunostinte este nevoie de mai multe interviuri cu expertul, ea constituind o componenta esentiala a sistemelor expert. Puterea de procesare a acestor sisteme consta in motorul inferential si sistemul de explicatii de care dispun.
Sistemele expert nu se pot instrui automat si nu au capacitatea de a invata ca celelalte sisteme inteligente, avand o adaptabilitate redusa la mediul de functionare.
Exista probleme care nu pot fi rezolvate cu ajutorul doar al unuia dintre tipurile de sisteme inteligente amintite mai sus. Astfel este nevoie de combinarea a cel putin a doua tipuri de sisteme inteligente.
In Tabelul 1.2 este prezentat punctajul acordat caracteristicilor sistemelor inteligente in functie de tipurile de sisteme.
Tabelul 1.2 - Tipuri de sisteme inteligente si caracteristicile lor
Caracte- ristici Tipuri |
Invatare |
Flexibilitate |
Adaptare |
Explicatia |
Descoperire |
Retele neuronale | |||||
Algoritmi genetici | |||||
Sisteme fuzzy | |||||
Sisteme expert |
Hibridizarea se refera la functiile realizate cu ajutorul altei tehnologii incorporate intr-un sistem inteligent dezvoltat cu o anumita tehnologie initiala, numita tehnologie de baza (retele neuronale, algoritmi genetici, sau sisteme expert). Spre exemplificare, sistemele hibride de tip fuzzy-neuronale sunt o combinatie a tehnologiei fuzzy, cu un punctaj slab (1) pentru caracteristica invatare, si a tehnologiei retelelor neuronale, care, pentru aceeasi caracteristica, are un punctaj ridicat (5).
Componentele acestor sisteme hibride comunica rezultatele una alteia astfel incat rezultatul final sa fie optim.
|