Documente noi - cercetari, esee, comentariu, compunere, document
Documente categorii

Inteligenta artificiala - notiuni de inteligenta artificiala

INTELIGENTA ARTIFICIALA - NOTIUNI DE INTELIGENTA ARTIFICIALA


1.1. Definitii ale inteligentei artificiale

Inteligenta artificiala (IA) reprezinta un domeniu al informaticii care urmareste realizarea unor sisteme care sa reproduca (sa imite) caracteristicile inteligentei umane: intelegerea limbajului, invatarea, rationamentul, rezolvarea problemelor, recunoasterea formelor etc. Ea se afla la confluenta mai multor stiinte: informatica, stiintele cognitive, logica, neurostiintele etc.

Inteligenta naturala este definita [1] ca fiind "capacitatea de a invata sau intelege din experienta, abilitatea de a achizitiona si memora cunostinte, capacitatea de a raspunde rapid si eficient la probleme noi, utilizarea facultatii de a rationa". Altfel spus, inteligenta poate fi definita ca abilitatea de a achizitiona cunostinte si de a le utiliza folosind gandirea si rationamentul.



In ceea ce priveste inteligenta artificiala exista o multitudine de definitii, dintre care o parte vor fi trecute in revista mai jos, toate concurand insa spre ideea de a inzestra masinile cu ceea ce la oameni se numeste inteligenta.

Iata cateva dintre cale mai cunoscute definitii ale IA:

IA este legata de automatizarea activitatilor pe care noi le asociem cu gandirea umana, activitati cum ar fi rezolvarea problemelor, luarea deciziilor, invatarea (Bellman, 1978) [6].

IA este legata de efortul de a face calculatoarele sa gandeasca, de a inzestra masinile cu minte, in sensul cel mai literal (Hangeland, 1985) [6].

IA este studiul proceselor de calcul ce fac posibile perceptia, rationamentul si actiune (Winston, 1992) [6].

Sistemele inteligente sunt acele sisteme care gandesc rational si actioneaza rational (Russel si Norvig, 1995) [1].

O alta abordare interesanta a inteligentei in general si a cele artificiale in particular este prezentata in referinta [13]:

Se poate defini inteligenta ca o masura a succesului unei entitati de a-si atinge obiectivele prin interactiune cu mediul sau. Consecintele acestei definitii sunt:

A. Comportamentul inteligent poate fi observat doar in prezenta unui mediu;

B. Pentru a masura inteligenta trebuie sa existe scopuri si o scala pentru a determina cat de bine sunt acestea atinse;

C. Aceasta definitie permite existenta masinilor inteligente;

D. Abilitatea de a "etala " inteligenta depinde de interactiunea cu mediul si de mecanismele interne ale sistemului in cauza.

Din cele expuse mai sus rezulta o serie de elemente comune dar si de deosebiri in definirea IA de catre diversi cercetatori.

Problema poate fi simplificata daca se da o definitie operationala a unui sistem inteligent: cum trebuie sa se comporte un sistem pentru a fi considerat inteligent. Aceasta definitie a fost data de Alan Turing care a conceput in 1950 celebrul test ce-i poarta numele. Testul Turing este urmatorul [6]: se considera un "joc de imitatie", la care participa trei jucatori. Jucatorul A este un barbat iar jucatorul B este o femeie. Jucatorul C (judecatorul) comunica printr-un sistem de teleimprimare cu A si B, fara sa-i poata vede pe acestia. Jucatorul C trebuie sa decida, prin intrebari adresate celorlalti doi, care este barbat si care este femeie. Scopul lui A este sa-i faciliteze lui C o identificare corecta pe cand scopul lui B este sa provoace o identificare eronata. Daca in locul unui barbat si a unei femei se pun un om si o masina, aceasta poate fi considerata inteligenta daca C nu poate decide care este omul si care este masina. O alta varianta consta in inlocuirea lui C cu un sistem artificial si daca acesta face corect identificarea femeii si a barbatului, se spune ca este un sistem inteligent.

Elementele caracteristice ale IA, puse in evidenta de definitiile de mai sus pot fi si mai mult reliefate prin comparatie cu informatica conventionala:

Tabelul 1.1. Comparatie intre IA si programele conventionale. Sursa [1], pag. 14.

Criteriul

Programe de IA

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 explicatii

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

In aceeasi idee a evidentierii particularitatilor IA, referinta [3] imparte informatica clasica in patru domenii:

Tabelul 1.2. Domeniile informaticii clasice. Sursa [3], pag. 2.

Domeniul informaticii

Limbajul folosit

Masurarea performantei

Obiectele manipulate

Informatica stiintifica

FORTAN

FLOPS (floating point operation per second)

numere reale

Informatica de gestiune

COBOL

IPS (instructions per second)

siruri de caractere si numere intregi

Informatica in timp real

ADA

DEBIT in BPS (bits per second) si timpi

de comutare de context

evenimente

Informatica simbolica ("inteligenta artificiala")

LISP

PROLOG

LIPS (logical inferences per second)

concepte


1.2. Scurt istoric al IA



Primele elemente de IA pot fi semnalate inca din Egiptul antic, dar preocuparile constante de studiere a inteligentei umane si de realizare a unor sisteme inteligente au aparut dupa al doilea razboi mondial. Momentul nasterii IA este considerat anul 1956 cand a fost folosit pentru prima oara si termenul Artificial Intelligency. Tabelul 1.3 ilustreaza principalele jaloane istorice ale IA.

Tabelul 1.3. Istoria inteligentei artificiale. Sursa [1], pag.15.

ANUL

EVENIMENTUL

3000-2778 IC

S-a realizat in Egipt primul sistem expert pe hartie de papirus cu aplicatie in chirurgie.

200 IC

In China s-au realizat automate si orchestre mecanice.

1930 DC

Se utilizeaza un analizor diferential in reglarea tirurilor artileriei.

1936

Alan Turing prezinta o masina capabila sa solutioneze orice problema din matematici cu ajutorul unui alfabet si unui set de reguli.

1943

McCulloch si Pitts propun  arhitecturi de retele neuronale pentru inteligenta artificiala

1950

Isaac Asimov prezinta trei legi ale roboticii.

1951

UNIVAC I - Primul calculator electronic introdus pe piata, conceput de Eckert si Mauchly.

1951

Marvin Minsky a construit primul calculator neuronal SNARK.

1955

Allen Newell, J.C. Shaw si Herbert Simon au realizat primul limbaj de programare in inteligenta artificiala IPL 11 (Information Proccesing Language 11).

1956

Newell, Shaw si Simon creeaza programul numit Logic Theorist care in 1957 devine General Problem Solver. Se folosesc tehnici recursive pentru solutionarea problemelor matematice in logica propozitiilor.

1956

La colocviul de la Darthmouth College din New Hampshire (SUA) se lanseaza termenul de "inteligenta artificiala" de catre John McCarthy acceptat unanim pentru a desemna o noua stiinta si tehnologi.

Nathaniel Rochester prezinta primul sistem neuronal realizat cu calculatorul electronic.

1957

Apare o descriere a PERCEPTRON-ului I, model care are capacitatea de a recunoaste formele, de catre F. Rossenblatt cu sistemele neuronale.

1959

Apare limbajul LISP, primul utilizat pe scara larga in inteligenta artificiala (John McCarthy).

1965

Incepe proiectul DENDRAL, primul sistem expert, destinat analizei structurilor moleculare (B. Buchanan, E. Feigenbaum, J. Lederberg). Logica Fuzzy-Zadeh.

1966

Apare ELIZA - un program inteligent "psihanalist" (J. Weizenbaum) care interoga pacientii.

1967

S-a creat primul laborator de inteligenta artificiala la M.I.T. (SUA).

1967

Incep lucrarile la INTERNIST, primul sistem expert pentru diagnostic medical, de catre A. Pople si J. Myers, in prezent denumit CADUCEUS, functional din 1982.

1968

Apar retele semantice si modelul memoriei asociative de Quillian.

1970

Apare limbajul PROLOG realizat de Alain Colmerauer si Roussel (Franta).

1973

Sistemul expert MYCIN pentru diagnostic medical.

1974

Apare primul robot controlat de calculatorul electronic.

1975

Tehnica Frames (cadre) de M. Minsky.

1976

PROSPECTOR - pentru expertiza geologica (Duda & Hart).

1977

OPS-shell utilizat in realizarea lui XCON/R1 (Forgy).

1978

Este lansat PROSPECTOR, un sistem expert pentru localizarea zacamintelor geologice de R.O. Duda si colegii sai.

1979

Algoritmul Rete pentru accelerarea executiei SEBR (Forgy).

Sfarsitul anilor '70 si inceputul anilor '80

Se infiinteaza primele firme specializate in inteligenta artificiala care incep sa comercializeze sisteme expert.

1980

Sistemul expert XCON de la Digital Equipment Corporation pentru configurarea calculatoarelor.

1980

Masinile LISP (Symbolics, LMI).

1981

Kazuhiro Fuchi anunta proiectul japonez " A cincia generatie"

1982

John Hopfield resusciteaza retelele neuronale.

1983

KEE-shell (Intellicorp).

1985

CLIPS-shell (NASA).

1988

Piata sistemelor expert era deja de circa 400 milioane dolari SUA.

In anii '80

Se infiinteaza programul ESPRIT (European Strategic Program for Research in Information Technology) pentru Comunitatea Europeana.



Sfarsitul anilor '80 si inceputul anilor '90

Creste numarul firmelor si sistemelor expert comercializate, al sistemelor neuronale, robotilor etc.

1990 si urmatorii

Cercetari in domeniul agentilor inteligenti incorporati in medii reale (Newell, Laird, Rosenbloom).

1992

MARVEL - sistem expert in timp real care monitorizeaza zborurilor spatiale.

1994

PEGASUS - program inteligent pentru recunoasterea vorbirii.

1997

Calculatorul IBM Deep Blue il invinge pe campionul mondial la sah Garry Kasparov!

2000

Roboti interactivi (animale) devin disponibili comercial (ex. AIBO realizat de Sony). MIT realizeaza robotul Kismet, capabil sa exprime emotii. Robotul Nomad de la Carnegie Mellon exploreaza zone indepartate din Antarctica si localizeaza meteoriti.

2002

Se experimenteaza un prototip de avion-robot proiectat pentru  misiuni de lupta.


1.3. Componentele Inteligentei Artificiale

Asa cum s-a putut vedea in sectiunile anterioare, IA ca stiinta are o varsta relativ mica si acest lucru se manifesta si printr-o oarecare neclaritate a frontierelor sale. Figura 1.1. prezinta sintetic un punct de vedere asupra componentelor IA. In sinteza, se pot face urmatoarele afirmatii [3]:

IA simuleaza rationamentele de gandire ale creierului uman prin intermediul unor reguli de rationament aplicate succesiv prin intermediul unui sistem de calcul si a unui nou mod de programare de tip declarativ ce utilizeaza conceptele de reguli, fapte si motoare de inferenta (MI). Apare astfel un nou domeniu al informaticii - informatica simbolica - caracterizat prin limbaje specializate (LIPS, PROLOG) si  concepte specifice.

Domeniile (componentele) clasice ale IA sunt:

interfetele, ce asigura:

- perceptia vizuala;

- imagine pe calculator;

- tratarea automata a cuvintelor;


rationamentele, cuprind:

- sisteme expert;

- demonstrarea teoremelor;

instrumentele, contin:

- baze de cunostinte;

- reprezentarea cunostintelor;

- masini specializate / masini LISP.

De asemenea, la intersectia acestor domenii, IA mai contine:

- traducerea automata;

- intelegerea limbajelor naturale;

- metodologie-ajutor in programare;

- baze de date deductive.


1.4. Aplicatii ale IA

Componentele IA ilustrate in fig. 1.1. sugereaza si principalele domenii de aplicatie ale IA [1]:

Rezolvitoare generale de probleme

Sisteme expert

Prelucrarea limbajului natural

Recunoasterea formelor

Robotica

Invatamantul asistat de calculator

In capitolul 2 se vor prezenta mai multe aplicatii ale inteligentei artificiale in domeniul economic si al gestiunii.


Fig. 1.1. Componentele Inteligentei Artificiale. Sursa [3], pag. 3.

Aceste aplicatii ale IA sunt realizate cu ajutorul sistemelor inteligente care se bazeaza pe una din cele doua abordari fundamentale:

Prelucrarea simbolica a informatiilor (cunostintelor);

Paradigma conexionista (abordarea neuronala).

Abordarea logico-simbolica a condus la realizarea unor programe inteligente, din categoria rezolvitoarelor generale de probleme si sisteme expert.

Abordarea neuronala, foarte activa in momentul de fata porneste de la simularea neuronala ("hardware") a creierului uman. S-au obtinut rezultate remarcabile in recunoasterea formelor, recunoasterea vorbirii etc.

Principalele tipuri de sisteme inteligente, realizate pornind de la una din abordarile de mai sus sunt [1]:

Sistemele neuronale artificiale. Sunt bazate pe paradigma conexionista si au aplicatii, in aproape toate domeniile vietii sociale.

Sistemele inteligente bazate pe algoritmi genetici. Functionarea lor este inspirata din biologie, in sensul ca in timp se incurajeaza solutiile candidat capabile sa rezolve o problema si se penalizeaza solutii care esueaza (similar cu evolutia biologica).

Sistemele fuzzy. Sunt sisteme bazate pe logica nuantata si s-au dovedit performante in aplicatii de control si de recunoastere a structurilor. Sistemele fuzzy pot prelucra incertitudinea si imprecizia.

Sistemele expert reprezinta unul dintre succesele IA si se caracterizeaza prin faptul ca rezolva probleme complexe la nivelul de performanta al expertilor umani.

Sisteme inteligente hibride sunt sisteme ce implica cooperarea doua sau mai multe tehnologii din cele de mai sus. Astfel exista sisteme neuro-fuzzy, sisteme expert fuzzy etc.


1.5. Rezolvarea problemelor de IA

Tabelele 1.1 si 1.2 din sectiunea 1.1. au pus in evidenta trasaturile particulare esentiale ale IA. In cele ce urmeaza vom prezenta concis si alte elemente caracteristice ale acestui domeniu: metodele de rezolvare a problemelor de IA.

In primul rand sa incercam sa precizam care sunt clasele de probleme ce fac obiectul IA. In general o problema poate fi rezolvata prin urmatoarele tehnici [9]:

a) utilizarea unei formule explicite. Exemplu:


b) utilizarea unei expresii pentru modul de calcul (formula de recurenta):


c) construirea solutiei prin enumerare sau prin incercare - eroare. In general, in cazul rezolvarii algoritmice a unei probleme se defineste complexitatea algoritmului ca fiind numarul de operatii de efectuat, in functie de dimensiunea intrarii (in exemplele precedente, in functie de n).

In cazul in care complexitatea este marginita de o expresie polinomiala de gradul K, se spune ca problema este polinomiala (In exemplul 1 complexitatea este O(0) in exemplul 2 este O(n). Problemele pentru care nu se cunoaste un algoritm polinomial se numesc probleme NP (not polynomial) si o categorie aparte de astfel de probleme se numesc NP complete.

In general clasa problemelor de IA este cea a problemelor complexe care fie nu au o solutie cunoscuta fie solutiile cunoscute sunt prea complicate (ex. probleme NP)




1.5.1. Specificarea problemelor de IA

Problemele sunt puse adesea sub forma unui enunt informal in limbaj natural. Pentru a rezolva problema cu ajutorul unui calculator este necesar sa se emita specificatiile problemei [4]:

Enunt Enunt formalizat Solutia

Descrierea formala a unei probleme necesita urmatoarele [3]:

1.   Definirea unui spatiu al starilor problemei care sa contina toate configuratiile posibile.

2.   Specificarea uneia sau mai multor stari din spatiul starilor din care procesul de rezolvare sa poata porni (stari initiale).         

3.   Specificarea uneia sau mai multor stari care pot fi acceptate ca solutii (stari scop sau stari finale).

4.   Specificarea unei multimi de reguli care descriu actiunile permise (operatorii permisi).

5.   Specificarea unei strategii de control care sa decida ce actiune trebuie efectuata in fiecare stare.

Exista mai multe tipuri de enunturi:

1. Enunturi de tip 1 pentru probleme de tip combinatoriu;

2. Enunturi de tip 2 pentru probleme cu operatori de schimbare de stare;

3. Enunturi de tip 3 cu operatori de decompozitie a problemei;

Rezolvare unor probleme dificile conduce uneori la acceptarea unei solutii care nu este optima. O astfel de strategie de control care nu garanteaza cea mai buna solutie ci o solutie foarte buna poate folosi cunoasterea euristica despre problema.

O euristica este o regula empirica, o simplificare sau orice alt mecanism care limiteaza drastic cautarea solutiei in spatii mari de probleme [1].


1.5.2. Rezolvarea problemelor

Rezolvarea unei probleme consta in gasirea unui drum in spatiu starilor dintr-o stare initiala intr-o stare finala. Este un proces de cautare in care se folosesc reguli si o strategie de control.

In IA cautarea are doua semnificatii majore:

cautarea unui drum spre scop;

cautarea unei solutii (este un caz mai general implicand cautarea intr-un spatiu mai mare de solutii posibile).

O modalitate convenabila de structurare a sistemelor inteligente in scopul realizarii procesului de cautare o constituie sistemul de reguli de producere (productie).

Un sistem de productie consta in urmatoarele componente [6]:

a) O baza de fapte ce constituie informatia necesara pentru o sarcina particulara;

b) O multime de reguli (operatori) de tipul conditii, actiune (c, a). Regulile de productie actioneaza asupra bazei de date, modificand-o;

c) O strategie de control - care specifica in ce ordine se aplica regulile.

Principalele diferente dintre sistemele de productie si programele informatice clasice (procedurale) sunt:

toate regulile au acces la baza de fapte. Nici o data nu este legata in mod special de o anumita regula;

regulile nu se apeleaza una pe alta, comunicarea dintre ele facandu-se prin intermediul bazei de fapte;

in cazul programelor conventionale orice modificare in baza de cunostinte poate antrena schimbari mari in structura programelor;

in cazul sistemelor de productie, baza de fapte fiind separata de baza de reguli si de mecanismul de control, se pot face modificari in oricare dintre ele, fara a le afecta pe celelalte.


1.5.3. Strategii de control

Prin strategia de control se intelege selectarea, filtrarea regulilor ce vor fi aplicate si inregistrarea istoricului actiunilor deja desfasurate. Strategiile de control pot fi:

strategii irevocabile - la care aplicarea unei reguli conduce la excluderea ei in viitor;

strategii cu revenire (prin incercari succesive) in care se poate reveni la alegerea unei reguli.

Strategiile de control pot fi reprezentate convenabil prin grafuri (grafe) sau arbori.

Un arbore care pastreaza urmele diferitelor reguli aplicate si ale starilor rezultate se numeste arbore de cautare. Starea sau starile initiale reprezinta nodul radacina al arborelui. Aplicarea unei reguli asupra unui nod conduce la aparitia unui succesor al acestui nod. Aplicarea regulii se reprezinta printr-un arc intre nodul parinte si succesorul sau. Construirea arborelui inceteaza cand se atinge o stare finala.

Cautarea intr-un arbore se poate face in largime (cand pentru un nod se genereaza toti succesorii) sau in profunzime (cand se avanseaza in adancime alegand cate o singura ramura din fiecare nod).


1.5.4.Cautarea euristica

Unele probleme conduc, in cautarea solutiei optime, la un numar foarte mare de pasi (explozie combinatoriala). In aceste cazuri se renunta la cautarea solutiei optime in favoarea unei solutii bune sau foarte bune. O astfel de strategie se numeste euristica. Termenul vine din greceste (heuristikein = a descoperi) si desemneaza studiul metodelor si regulilor descoperirii si inventiei. O metoda euristica este o tehnica de imbunatatire a eficientei cautarii, eventual sacrificand cerinte de completitudine.

In general o euristica este o regula euristica, o strategie, o simplificare ce limiteaza semnificativ cautarea solutiei in spatii mari de probleme [6].

Folosirea euristicilor se bazeaza si pe faptul ca in realitate de putine ori este necesara o solutie optima, de multe ori fiind suficienta o solutie satisfacatoare.

Rezulta ca informatica simbolica manipuleaza baze de fapte (BF), baze de reguli (BR), baze de cunostinte (BC) si motoare de inferente (MI). BF contine faptele privite ca structuri de date complexe ce reprezinta un anumit sens. BR poseda multitudinea regulilor aplicabile faptelor pe baza carora se construieste solutia problemei abordate. Daca acceptam ideea potrivit careia cunostintele sunt operatori elementari de transformare a faptelor, atunci BC regrupeaza cunostinte relative la un domeniu specific utilizate pentru obtinerea unei solutii (denumita scop sau tinta) prin activarea unui MI ce activeaza BC si constituie mecanismul de rationament in scopul cercetarii solutiei pentru problema abordata.


1.6. Sisteme informatice bazate pe cunostinte

Asa cum am incercat sa evidentiem in sectiunile precedente, inteligenta artificiala incearca sa realizeze sisteme care sa emuleze capacitatea omului de a rezolva probleme complexe si a condus la aparitia unor noi tipuri de sisteme informatice. Astfel de sisteme informatice care surprind capacitatea unui expert uman de a rezolva probleme intr-un domeniu specific folosind baze de cunostinte poarta numele de sisteme informatice bazate pe cunostinte (SIBC) iar de proiectarea si implementarea acestor sisteme se ocupa ingineria cunoasterii [20]. Aparitia acestor sisteme a facut necesara cooperarea specialistilor din domeniul abordat (expertii) cu inginerii de cunostinte sau cognoticienii (fig. 1.2).

Fig. 1.2. Rolul inginerului de cunostinte. Sursa:[20]


In vederea utilizarii prin program, cunoasterea este memorata sub forma unor piese de cunoastere, ce descriu fapte, fenomene, procese, evenimente, obiecte cu insusiri dintr-o parte a lumii reale ce constituie domeniul de competenta al programului. Un domeniu concret poate avea intre 50000 si 100000 de piese de cunoastere specifice


biologie

botanica






Upload!

Trimite cercetarea ta!
Trimite si tu un document!
NU trimiteti referate, proiecte sau alte forme de lucrari stiintifice, lucrari pentru examenele de evaluare pe parcursul anilor de studiu, precum si lucrari de finalizare a studiilor universitare de licenta, masterat si/sau de doctorat. Aceste documente nu vor fi publicate.