Sunteți pe pagina 1din 11

1.

NOIUNI DE INTELIGEN ARTIFICIAL


1.1. Definiii ale inteligenei artificiale
Inteligena artificial (IA) reprezint un domeniu al informaticii care urmrete
realizarea unor sisteme care s reproduc (s imite) caracteristicile inteligenei umane:
nelegerea limbajului, nvarea, raionamentul, rezolvarea problemelor, recunoaterea
formelor etc. Ea se afl la confluena mai multor tiine: informatica, tiinele
cognitive, logica, neurotiinele etc.
Inteligena natural este definit [1] ca fiind capacitatea de a nva sau nelege
din experien, abilitatea de a achiziiona i memora cunotine, capacitatea de a
rspunde rapid i eficient la probleme noi, utilizarea facultii de a raiona. Altfel
spus, inteligena poate fi definit ca abilitatea de a achiziiona cunotine i de a le
utiliza folosind gndirea i raionamentul.
n ceea ce privete inteligena artificial exist o multitudine de definiii, dintre
care o parte vor fi trecute n revist mai jos, toate concurnd ns spre ideea de a
nzestra mainile cu ceea ce la oameni se numete inteligen.
Iat cteva dintre cale mai cunoscute definiii ale IA:
$ IA este legat de automatizarea activitilor pe care noi le asociem cu gndirea
uman, activiti cum ar fi rezolvarea problemelor, luarea deciziilor, nvarea
(Bellman, 1978) [6].
$ IA este legat de efortul de a face calculatoarele s gndeasc, de a nzestra
mainile cu minte, n sensul cel mai literal (Hangeland, 1985) [6].
$ IA este studiul proceselor de calcul ce fac posibile percepia, raionamentul i
aciune (Winston, 1992) [6].
$ Sistemele inteligente sunt acele sisteme care gndesc raional i acioneaz
raional (Russel i Norvig, 1995) [1].
O alt abordare interesant a inteligenei n general i a cele artificiale n
particular este prezentat n referina [13]:
Se poate defini inteligena ca o msur a succesului unei entiti de a-i atinge
obiectivele prin interaciune cu mediul su. Consecinele acestei definiii sunt:
A. Comportamentul inteligent poate fi observat doar n prezena unui mediu;
B. Pentru a msura inteligena trebuie s existe scopuri i o scal pentru a
determina ct de bine sunt acestea atinse;
C. Aceast definiie permite existena mainilor inteligente;
D. Abilitatea de a etala inteligen depinde de interaciunea cu mediul i de
mecanismele interne ale sistemului n cauz.
Din cele expuse mai sus rezult o serie de elemente comune dar i de deosebiri n
definirea IA de ctre diveri cercettori.
Problema poate fi simplificat dac se d o definiie operaional a unui sistem
inteligent: cum trebuie s se comporte un sistem pentru a fi considerat inteligent.
Aceast definiie a fost dat de Alan Turing care a conceput n 1950 celebrul test ce-i
poart numele. Testul Turing este urmtorul [6]: se consider un joc de imitaie, la
care particip trei juctori. Juctorul A este un brbat iar juctorul B este o femeie.
Juctorul C (judectorul) comunic printr-un sistem de teleimprimare cu A i B, fr
s-i poat vede pe acetia. Juctorul C trebuie s decid, prin ntrebri adresate

celorlali doi, care este brbat i care este femeie. Scopul lui A este s-i faciliteze lui C
o identificare corect pe cnd scopul lui B este s provoace o identificare eronat.
Dac n locul unui brbat i a unei femei se pun un om i o main, aceasta poate fi
considerat inteligent dac C nu poate decide care este omul i care este maina. O
alt variant const n nlocuirea lui C cu un sistem artificial i dac acesta face corect
identificarea femeii i a brbatului, se spune c este un sistem inteligent.
Elementele caracteristice ale IA, puse n eviden de definiiile de mai sus pot fi i
mai mult reliefate prin comparaie cu informatica convenional:
Tabelul 1.1. Comparaie ntre IA i programele convenionale. Sursa [1], pag. 14.
Criteriul
Programe de IA
Programe convenionale
Natura prelucrrii

n principal simbolic

n principal numeric

Natura intrrilor

Pot fi incomplete

Obligatoriu complete

Cutarea

n principal euristic

Algoritmic

Explicaii

Ofer explicaii

Uzual nu ofer explicaii

Scopul principal

Cunoaterea

Date i informaii

Structura

Separarea cunoaterii de control

Controlul este integrat cu


datele i informaiile

Natura ieirilor

Pot fi incomplete

Obligatoriu corecte i
complete

ntreinerea i
actualizarea

Relativ uoar datorit


modularitii cunoaterii

Uzual dificil

Hardware

n principal PC-uri i staii de


lucru

Toate tipurile de
calculatoare

Capacitate de
raionament

Da

Nu

n aceeai idee a evidenierii particularitilor IA, referina [3] mparte informatica


clasic n patru domenii:
Tabelul 1.2. Domeniile informaticii clasice. Sursa [3], pag. 2.
Limbajul
Domeniul informaticii
Msurarea performanei
folosit

Obiectele
manipulate

Informatic tiinific FORTAN

FLOPS (floating point


operation per second)

numere reale

Informatic de
gestiune

COBOL

IPS (instructions per


second)

iruri de caractere i
numere ntregi

Informatic n timp
real

ADA

DEBIT n BPS (bits per


second) i timpi
de comutare de context

evenimente

Domeniul informaticii

Limbajul
folosit

Obiectele
manipulate

Msurarea performanei

Informatic tiinific FORTAN

FLOPS (floating point


operation per second)

numere reale

Informatic simbolic LISP


(inteligen
PROLOG
artificial)

LIPS (logical inferences per concepte


second)

1.2. Scurt istoric al IA


Primele elemente de IA pot fi semnalate nc din Egiptul antic, dar preocuprile
constante de studiere a inteligenei umane i de realizare a unor sisteme inteligente au
aprut dup al doilea rzboi mondial. Momentul naterii IA este considerat anul 1956
cnd a fost folosit pentru prima oar i termenul Artificial Intelligency. Tabelul 1.3
ilustreaz principalele jaloane istorice ale IA.
Tabelul 1.3. Istoria inteligenei artificiale. Sursa [1], pag.15.
ANUL
EVENIMENTUL
3000-2778 IC
200 IC
1930 DC

S-a realizat n Egipt primul sistem expert pe hrtie de papirus cu


aplicaie n chirurgie.
n China s-au realizat automate i orchestre mecanice.
Se utilizeaz un analizor diferenial n reglarea tirurilor artileriei.

1936

Alan Turing prezint o main capabil s soluioneze orice problem


din matematici cu ajutorul unui alfabet i unui set de reguli.

1943

McCulloch i Pitts propun arhitecturi de reele neuronale pentru


inteligen artificial

1950

Isaac Asimov prezint trei legi ale roboticii.

1951

UNIVAC I - Primul calculator electronic introdus pe pia, conceput


de Eckert i Mauchly.

1951

Marvin Minsky a construit primul calculator neuronal SNARK.

1955

Allen Newell, J.C. Shaw i Herbert Simon au realizat primul limbaj de


programare n inteligena artificial IPL 11 (Information Proccesing
Language 11).

1956

Newell, Shaw i Simon creeaz programul numit Logic Theorist care


n 1957 devine General Problem Solver. Se folosesc tehnici recursive
pentru soluionarea problemelor matematice n logica propoziiilor.

1956

La colocviul de la Darthmouth College din New Hampshire (SUA) se


lanseaz termenul de inteligen artificial de ctre John McCarthy
acceptat unanim pentru a desemna o nou tiin i tehnologi.
Nathaniel Rochester prezint primul sistem neuronal realizat cu
calculatorul electronic.

ANUL

EVENIMENTUL

1957

Apare o descriere a PERCEPTRON-ului I, model care are capacitatea


de a recunoate formele, de ctre F. Rossenblatt cu sistemele
neuronale.

1959

Apare limbajul LISP, primul utilizat pe scar larg n inteligena


artificial (John McCarthy).

1965

ncepe 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 pacienii.

1967

S-a creat primul laborator de inteligen artificial la M.I.T. (SUA).

1967

ncep lucrrile la INTERNIST, primul sistem expert pentru diagnostic


medical, de ctre A. Pople i J. Myers, n prezent denumit
CADUCEUS, funcional din 1982.

1968

Apar reele semantice i modelul memoriei asociative de Quillian.

1970

Apare limbajul PROLOG realizat de Alain Colmerauer i Roussel


(Frana).

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 expertiz geologic (Duda & Hart).

1977

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

1978

Este lansat PROSPECTOR, un sistem expert pentru localizarea


zcmintelor geologice de R.O. Duda i colegii si.

1979

Algoritmul Rete pentru accelerarea execuiei SEBR (Forgy).

Sfritul anilor Se nfiineaz primele firme specializate n inteligena artificial care


70 i
ncep s comercializeze sisteme expert.
nceputul
anilor 80

1980

Sistemul expert XCON de la Digital Equipment Corporation pentru


configurarea calculatoarelor.

1980

Mainile LISP (Symbolics, LMI).

1981

Kazuhiro Fuchi anun proiectul japonez A cincia generaie

1982

John Hopfield resusciteaz reelele neuronale.

1983

KEE-shell (Intellicorp).

1985

CLIPS-shell (NASA).

1988

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

ANUL

EVENIMENTUL

n anii 80

Se nfiineaz programul ESPRIT (European Strategic Program for


Research in Information Technology) pentru Comunitatea European.

Sfritul anilor Crete numrul firmelor i sistemelor expert comercializate, al


80 i
sistemelor neuronale, roboilor etc.
nceputul
anilor 90
1990 i
urmtorii

Cercetri n domeniul agenilor inteligeni ncorporai n medii reale


(Newell, Laird, Rosenbloom).

1992

MARVEL - sistem expert n timp real care monitorizeaz zborurilor


spaiale.

1994

PEGASUS - program inteligent pentru recunoaterea vorbirii.

1997

Calculatorul IBM Deep Blue l nvinge pe campionul mondial la ah


Garry Kasparov!

2000

Roboi interactivi (animale) devin disponibili comercial (ex. AIBO


realizat de Sony). MIT realizeaz robotul Kismet, capabil s exprime
emoii. Robotul Nomad de la Carnegie Mellon exploreaz zone
ndeprtate din Antarctica i localizeaz meteorii.

2002

Se experimenteaz un prototip de avion-robot proiectat pentru misiuni


de lupt.

1.3. Componentele Inteligenei Artificiale


Aa cum s-a putut vedea n seciunile anterioare, IA ca tiin are o vrst relativ
mic i acest lucru se manifest i printr-o oarecare neclaritate a frontierelor sale.
Figura 1.1. prezint sintetic un punct de vedere asupra componentelor IA. n sintez,
se pot face urmtoarele afirmaii [3]:
IA simuleaz raionamentele de gndire ale creierului uman prin intermediul
unor reguli de raionament aplicate succesiv prin intermediul unui sistem de calcul i
a unui nou mod de programare de tip declarativ ce utilizeaz conceptele de reguli,
fapte i motoare de inferen (MI). Apare astfel un nou domeniu al informaticii informatica simbolic - caracterizat prin limbaje specializate (LIPS, PROLOG) i
concepte specifice.
$

$
$

Domeniile (componentele) clasice ale IA sunt:


interfeele, ce asigur:
- percepia vizual;
- imagine pe calculator;
- tratarea automat a cuvintelor;
raionamentele, cuprind:
- sisteme expert;
- demonstrarea teoremelor;
instrumentele, conin:
- baze de cunotine;

- reprezentarea cunotinelor;
- maini specializate / maini LISP.
De asemenea, la intersecia acestor domenii, IA mai conine:
- traducerea automat;
- nelegerea limbajelor naturale;
- metodologie-ajutor n programare;
- baze de date deductive.
1.4. Aplicaii ale IA
Componentele IA ilustrate n fig. 1.1. sugereaz i principalele domenii de
aplicaie ale IA [1]:
$ Rezolvitoare generale de probleme
$ Sisteme expert
$ Prelucrarea limbajului natural
$ Recunoaterea formelor
$ Robotica
$ nvmntul asistat de calculator
n capitolul 2 se vor prezenta mai multe aplicaii ale inteligenei artificiale n
domeniul economic i al gestiunii.

Interfee
. Percepie vizual
. Imagini pe
calculator
. Tastarea automat
a cuvintelor

.Traducere
automat
. Inelegerea
limbajelor
naturale

Raionament
Logic
. sisteme expert
. demonstrarea
teoremelor

Ajutor n
programare
. Baze de
date
deductive

. Baze de cunosinte
. Reprezentarea cuvintelor
. Limbaje specializate
. Maini specializate / maini
LISP
Instrumente

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


Aceste aplicaii ale IA sunt realizate cu ajutorul sistemelor inteligente care se
bazeaz pe una din cele dou abordri fundamentale:
$ Prelucrarea simbolic a informaiilor (cunotinelor);
$ Paradigma conexionist (abordarea neuronal).
Abordarea logico-simbolic a condus la realizarea unor programe inteligente, din
categoria rezolvitoarelor generale de probleme i sisteme expert.
Abordarea neuronal, foarte activ n momentul de fa pornete de la simularea
neuronal (hardware) a creierului uman. S-au obinut rezultate remarcabile n
recunoaterea formelor, recunoaterea vorbirii etc.
Principalele tipuri de sisteme inteligente, realizate pornind de la una din abordrile
de mai sus sunt [1]:
$ Sistemele neuronale artificiale. Sunt bazate pe paradigma conexionist i au
aplicaii, n aproape toate domeniile vieii sociale.
$ Sistemele inteligente bazate pe algoritmi genetici. Funcionarea lor este
inspirat din biologie, n sensul c n timp se ncurajeaz soluiile candidat
capabile s rezolve o problem i se penalizeaz soluii care eueaz (similar
cu evoluia biologic).

$ Sistemele fuzzy. Sunt sisteme bazate pe logica nuanat i s-au dovedit


performante n aplicaii de control i de recunoatere a structurilor. Sistemele
fuzzy pot prelucra incertitudinea i imprecizia.
$ Sistemele expert reprezint unul dintre succesele IA i se caracterizeaz prin
faptul c rezolv probleme complexe la nivelul de performan al experilor
umani.
$ Sisteme inteligente hibride sunt sisteme ce implic cooperarea dou sau mai
multe tehnologii din cele de mai sus. Astfel exist sisteme neuro-fuzzy,
sisteme expert fuzzy etc.
1.5. Rezolvarea problemelor de IA
Tabelele 1.1 i 1.2 din seciunea 1.1. au pus n eviden trsturile particulare
eseniale ale IA. n cele ce urmeaz vom prezenta concis i alte elemente caracteristice
ale acestui domeniu: metodele de rezolvare a problemelor de IA.
n primul rnd s ncercm s precizm care sunt clasele de probleme ce fac
obiectul IA. n general o problem poate fi rezolvat prin urmtoarele tehnici [9]:
a) utilizarea unei formule explicite. Exemplu:
n (n 1)
S n 1 2 . . . n
2
b) utilizarea unei expresii pentru modul de calcul (formul de recuren):

n 1

n, S

c) construirea soluiei prin enumerare sau prin ncercare - eroare. n general, n


cazul rezolvrii algoritmice a unei probleme se definete complexitatea algoritmului
ca fiind numrul de operaii de efectuat, n funcie de dimensiunea intrrii (n
exemplele precedente, n funcie de n).
n cazul n care complexitatea este mrginit de o expresie polinomial de gradul
K, se spune c problema este polinomial (n exemplul 1 complexitatea este O(0) n
exemplul 2 este O(n). Problemele pentru care nu se cunoate un algoritm polinomial
se numesc probleme NP (not polynomial) i o categorie aparte de astfel de probleme
se numesc NP complete.
n general clasa problemelor de IA este cea a problemelor complexe care fie nu au
o soluie cunoscut fie soluiile cunoscute sunt prea complicate (ex. probleme NP)
1.5.1. Specificarea problemelor de IA
Problemele sunt puse adesea sub forma unui enun informal n limbaj natural.
Pentru a rezolva problema cu ajutorul unui calculator este necesar s se emit
specificaiile problemei [4]:
Enun Enun formalizat Soluia
Descrierea formal a unei probleme necesit urmtoarele [3]:
1. Definirea unui spaiu al strilor problemei care s conin toate
configuraiile posibile.
2. Specificarea uneia sau mai multor stri din spaiul strilor din care procesul
de rezolvare s poat porni (stri iniiale).

3. Specificarea uneia sau mai multor stri care pot fi acceptate ca soluii (stri
scop sau stri finale).
4. Specificarea unei mulimi de reguli care descriu aciunile permise
(operatorii permii).
5. Specificarea unei strategii de control care s decid ce aciune trebuie
efectuat n fiecare stare.
Exist mai multe tipuri de enunuri:
1. Enunuri de tip 1 pentru probleme de tip combinatoriu;
2. Enunuri de tip 2 pentru probleme cu operatori de schimbare de stare;
3. Enunuri de tip 3 cu operatori de decompoziie a problemei;
Rezolvare unor probleme dificile conduce uneori la acceptarea unei soluii care nu
este optim. O astfel de strategie de control care nu garanteaz cea mai bun soluie ci
o soluie foarte bun poate folosi cunoaterea euristic despre problem.
O euristic este o regul empiric, o simplificare sau orice alt mecanism care
limiteaz drastic cutarea soluiei n spaii mari de probleme [1].
1.5.2. Rezolvarea problemelor
Rezolvarea unei probleme const n gsirea unui drum n spaiu strilor dintr-o
stare iniial ntr-o stare final. Este un proces de cutare n care se folosesc reguli i o
strategie de control.
n IA cutarea are dou semnificaii majore:
cutarea unui drum spre scop;
cutarea unei soluii (este un caz mai general implicnd cutarea ntr-un spaiu
mai mare de soluii posibile).
O modalitate convenabil de structurare a sistemelor inteligente n scopul realizrii
procesului de cutare o constituie sistemul de reguli de producere (producie).
Un sistem de producie const n urmtoarele componente [6]:
a) O baz de fapte ce constituie informaia necesar pentru o sarcin particular;
b) O mulime de reguli (operatori) de tipul condiii, aciune (c, a). Regulile de
producie acioneaz asupra bazei de date, modificnd-o;
c) O strategie de control - care specific n ce ordine se aplic regulile.
Principalele diferene dintre sistemele de producie i programele informatice
clasice (procedurale) sunt:
$ toate regulile au acces la baza de fapte. Nici o dat nu este legat n mod
special de o anumit regul;
$ regulile nu se apeleaz una pe alta, comunicarea dintre ele fcndu-se prin
intermediul bazei de fapte;
$ n cazul programelor convenionale orice modificare n baza de cunotine
poate antrena schimbri mari n structura programelor;
$ n cazul sistemelor de producie, baza de fapte fiind separat de baza de reguli
i de mecanismul de control, se pot face modificri n oricare dintre ele, fr a
le afecta pe celelalte.
1.5.3. Strategii de control

Prin strategia de control se nelege selectarea, filtrarea regulilor ce vor fi aplicate


i nregistrarea istoricului aciunilor deja desfurate. Strategiile de control pot fi:
$ strategii irevocabile - la care aplicarea unei reguli conduce la excluderea ei n
viitor;
$ strategii cu revenire (prin ncercri succesive) n care se poate reveni la
alegerea unei reguli.
Strategiile de control pot fi reprezentate convenabil prin grafuri (grafe) sau arbori.
Un arbore care pstreaz urmele diferitelor reguli aplicate i ale strilor rezultate se
numete arbore de cutare. Starea sau strile iniiale reprezint nodul rdcin al
arborelui. Aplicarea unei reguli asupra unui nod conduce la apariia unui succesor al
acestui nod. Aplicarea regulii se reprezint printr-un arc ntre nodul printe i
succesorul su. Construirea arborelui nceteaz cnd se atinge o stare final.
Cutarea ntr-un arbore se poate face n lrgime (cnd pentru un nod se genereaz
toi succesorii) sau n profunzime (cnd se avanseaz n adncime alegnd cte o
singur ramur din fiecare nod).
1.5.4.Cutarea euristic
Unele probleme conduc, n cutarea soluiei optime, la un numr foarte mare de
pai (explozie combinatorial). n aceste cazuri se renun la cutarea soluiei optime
n favoarea unei soluii bune sau foarte bune. O astfel de strategie se numete euristic.
Termenul vine din grecete (heuristikein = a descoperi) i desemneaz studiul
metodelor i regulilor descoperirii i inveniei. O metod euristic este o tehnic de
mbuntire a eficienei cutrii, eventual sacrificnd cerine de completitudine.
n general o euristic este o regul euristic, o strategie, o simplificare ce limiteaz
semnificativ cutarea soluiei n spaii mari de probleme [6].
Folosirea euristicilor se bazeaz i pe faptul c n realitate de puine ori este
necesar o soluie optim, de multe ori fiind suficient o soluie satisfctoare.
Rezult c informatica simbolic manipuleaz baze de fapte (BF), baze de reguli
(BR), baze de cunotine (BC) i motoare de inferene (MI). BF conine faptele privite
ca structuri de date complexe ce reprezint un anumit sens. BR posed multitudinea
regulilor aplicabile faptelor pe baza crora se construiete soluia problemei abordate.
Dac acceptm ideea potrivit creia cunotinele sunt operatori elementari de
transformare a faptelor, atunci BC regrupeaz cunotine relative la un domeniu
specific utilizate pentru obinerea unei soluii (denumit scop sau int) prin activarea
unui MI ce activeaz BC i constituie mecanismul de raionament n scopul cercetrii
soluiei pentru problema abordat.
1.6. Sisteme informatice bazate pe cunotine
Aa cum am ncercat s evideniem n seciunile precedente, inteligena artificial
ncearc s realizeze sisteme care s emuleze capacitatea omului de a rezolva
probleme complexe i a condus la apariia unor noi tipuri de sisteme informatice.
Astfel de sisteme informatice care surprind capacitatea unui expert uman de a rezolva
probleme ntr-un domeniu specific folosind baze de cunotine poart numele de
sisteme informatice bazate pe cunotine (SIBC) iar de proiectarea i implementarea
acestor sisteme se ocup ingineria cunoaterii [20]. Apariia acestor sisteme a fcut

10

necesar cooperarea specialitilor din domeniul abordat (experii) cu inginerii de


cunotine sau cognoticienii (fig. 1.2).

Informaii

nelegera nevoilor
utilizatorilor

Experien
ntrebri, probleme

Inginerul de
cunotine

Expertul n
domeniu
Rspunsuri, soluii,
explicaii, euristici

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


n vederea utilizrii prin program, cunoaterea este memorat sub forma unor
piese de cunoatere, ce descriu fapte, fenomene, procese, evenimente, obiecte cu
nsuiri dintr-o parte a lumii reale ce constituie domeniul de competen al
programului. Un domeniu concret poate avea ntre 50000 i 100000 de piese de
cunoatere specifice

11