Upload
-
View
26
Download
0
Tags:
Embed Size (px)
DESCRIPTION
Teza de an la Informatica(C++ Builder) By Pirlog Irina
Citation preview
Cuprins:
INTRODUCERE .......................................................................................................... 1
1. NOIUNI GENERALE DE INTELIGEN ARTIFICIAL ........................... 2
1.1 Istoricul Inteligenei Artificiale ..................................................................... 2
1.2 Definiii i obiectul de studiu al IA ................................................................ 6
2. INTELIGENA ARTIFICIAL I C++ ............................................................ 10
2.1 Dependena IA de limbajele de programare .............................................. 10
2.2 Aplicaii ale IA dezvoltate de C++ ................................................................. 15
3. COMUNICAREA CALCULATOR-OM ........................................................... 17
3.1 Modul de functionare a programului ............................................................ 17
3.2 Rezultatele dialogurilor calculator-om ......................................................... 18
CONCLUZIE
BIBLIOGRAFIE
ANEXE
2
INTRODUCERE
Dezvoltarea spectaculoas a calculatoarelor n ultimii treizeci de ani a permis cercetrilor
n domeniu s ncerce utilizarea calculatoarelor pentru rezolvarea unor probleme din ce n ce mai
dificile, din ce n ce mai apropiate de complexitatea problemelor soluionate de om. Pe masur ce
problemele de vitez i capacitate de memorare au fost rezolvate la nivelul tehnologiei construciei
calculatoarelor, limitarea utilizrii tehnicii de calcul n locul expertului uman se datoreaz mai ales
incapacitii oamenilor de a instrui i programa adecvat calculatoarele. Incercarea extinderii
utilizarii calculatoarelor la tot ceea ce poate fi soluionat de om a dus la apariia unui nou domeniu
al stiinei calculatoarelor: inteligena artificial.
Inteligena artificial este un domeniu nou care a evoluat rapid n ultimii ani de la stadiul
cercetrilor de laborator la acela al unui domeniu cu multiple sfere de aplicaii. La ora actual exist
un ntreg arsenal de tehnici care permit construirea programelor i sistemelor de inteligen
artificial, multe dintre aceste sisteme fiind produse comerciale aplicate cu succes n diverse
domenii. n ultimii 20 de ani cercetrile de inteligen artificial au demonstrat c inteligena
implic mai mult dect capacitatea de a raiona. Un program poate simula un comportament
inteligent numai dac conine o cantitate semnificativ de cunotine. Cunotinele ntr-un program
de inteligen artificial includ logica cu predicate, regulile de producie, reelele semantice i
unitile. [1]
1. NOIUNI GENERALE DE INTELIGEN ARTIFICIAL
1.1 Istoricul Inteligenei Artificiale
Una din preocuprile constante ale fiinei umane a fost imaginarea unor modaliti care s
simplifice diverse aspecte ale vieii cotidiene. Inveniile inginereti, de natur mecanic, i-au
propus mereu maximizarea perfomanelor i minimizarea efortului uman, ns prezena factorului
uman a fost o condiie sine qua non a rezolvrii oricrei probleme. Abia n secolul al XX-lea s-a
pus cu adevrat problema automatizrii unor procese i transformarea poziiei omului din efectuant
n supervizor. Cu toate acestea, urme ale preocuprilor pentru inteligen artificial se pot ntlni
nc din antichitate. Primul sistem expert se consider a fi un papirus egiptean, datnd din mileniul
III .Hr., care consta n 48 de observaii asupra diagnosticrii i tratrii rnilor la cap. Cunotinele
3
erau organizate sub form de reguli: dac exist un anumit simptom, atunci se recomand un anumit
tratament. Trebuie menionat c aceast realizare se bazeaz pe o alt invenie extraordinar a
omului, scrisul, prin intermediul cruia obiectele fizice ale lumii reale pot fi reprezentate i
manipulate n mod simbolic.
n secolul IV .Hr., Aristotel descoper logica silogistic , primul sistem formal de
raionament deductiv. Aceasta a avut o influen uria asupra dezvoltrii tiinifice ulterioare a
societii umane. Noi cunotine puteau fi adugate la fondul de cunoatere existent prin
demonstrarea de teoreme. Sunt consacrate cele trei Principii ale gndirii: al identitii (A este A),
al noncontradiciei (A nu poate fi simultan B i non-B) i al terului exclus (A este sau B sau non-
B). Trebuie menionat c acest model nu reflect exact procesul raionamentului uman, fapt
amendat de apariia noilor tipuri de logic din secolul al XX-lea, mai apropiate de deducia natural,
sau de raionamentul bunului sim.
n secolul al XVII-lea, Blaise Pascal realizeaz un calculator mecanic, capabil s realizeze
adunri i scderi. Maina a fost perfecionat apoi de Gottfried Wilhelm Leibnitz, astfel nct s
realizeze nmuliri i mpriri. Calculatorul nu s-a bucurat de mare succes; Leibnitz a rmas
cunoscut n special ca inventatorul analizei matematice, dei la vremea respectiv nu era la fel de
celebru, fiind eclipsat de Newton. (Anexa 1)
La nceputul secolulului al XX-lea, este menionat pentru prima dat o main capabil s
ndeplineasc sarcini n locul omului. n 1920, scriitorul ceh Karel apek public piesa de teatru
R.U.R. ( Rosumovy Univerzln Roboti Roboii universali ai lui Rosum ), n care apare termenul
robot, adoptat pe plan internaional dup traducerea n limba englez. n ceh, cuvntul nseamn
muncitor, servitor i a fost propus de fapt de fratele scriitorului, Josef. n 1928, John von
Neumann (nscut n Budapesta, cu numele Jonos) propune teorema minimax, fundamental n
teoria jocurilor, care specific faptul c orice joc de sum zero cu doi juctori poate fi jucat raional,
cu o strategie optim. Cea mai cunoscut realizare a sa este arhitectura secvenial pentru
calculatoarele electronice. Von Neumann a colaborat la dezvoltarea primelor calculatoare n Statele
Unite. n 1945, la Universitatea Pennsylvannia, a fost construit ENIAC. Totui, primul calculator
funcional programabil, numit Z3, a fost produs n Germania, n 1941, de ctre Konrad Zuse.
Calculatorul a fost distrus n 1944 n timpul celui de-al doilea rzboi mondial i a fost reconstruit
mai trziu, ca pies de muzeu. n 1948, la Universitatea Manchester din Marea Britanie s-a realizat
Mark I , primul calculator valorificat din punct de vedere comercial. Acesta a fost i primul
4
calculator care a scris scrisori de dragoste. Calculatoarele menionate se bazau pe tehnologia
tubului vidat (a lmpii electronice).
n 1943, Warren McCulloch i Walter Pitts propun o arhitectur inteligent bazat pe reele
neuronale artificiale, care ncearc s simuleze funcionarea creierului organismelor vii. Ca element
distinctiv de logica simbolic explicit, n acest abordare cunotinele sunt nmagazinate de
conexiunile dintre neuroni. Reelele neuronale sunt sisteme paralele, distribuite, cu o capacitate de a
nva. Dup ase ani, n 1949, Donald Hebb formuleaz o lege de baz pentru nvarea neuronal:
conexiunile dintre neuronii care se activeaz simultan se ntrete, iar cele dintre neuronii care se
activeaz n contratimp slbesc. n 1958, Frank Rosenblatt propune un model practic al acestei
paradigme, i anume Perceptronul.
n 1956 are loc conferina de la Dartmouth College, organizat de John McCarthy, pentru a
dezbate modalitile n care calculatoarele pot fi fcute s se comporte inteligent. Unii cercettori
erau interesai de mbuntirea capacitii de rezolvare a problemelor (de demonstrarea teoremelor,
de jocuri, adic de activitile care necesit un raionament). Alii erau interesai de recunoaterea
modelelor sau de prelucrarea limbajului natural. Aici s-a lansat termenul de Inteligen Artificial
Dei la vremea ei conferina nu a fost considerat un succes, n anii care au urmat au aprut tot mai
multe laboratoare de cercetare a domeniului IA.
n acelai an, Alan Newell i Herbert Simon propun un program care simuleaz
raionamentul uman, General Problem Solver, bazat pe logica predicativ. Erau evidente acum cele
dou direcii de cercetare: maniera logico-simbolic i cea conexionist. Prima dintre ele va avea
ns prevalen pn la mijlocul anilor 80. Tot McCarthy inventeaz n 1959, la MIT AI Lab,
limbajul LISP, destinat programrii declarative. Demn de menionat este faptul c acest limbaj, cu
unele modificri, se folosete i azi, dup aproape 50 de ani. Din punct de vedere tehnologic, apare
acum tranzistorul, un evident proges avnd n vedere c un tranzistor nlocuia cam 40 de lmpi
electronice.
n 1962 apar primii roboi industriali. n 1965, se evideniaz proiectul Dendral, primul
sistem expert destinat analizei chimice spectroscopice a structurii moleculare. Sistemul a fost
coordonat de Edward Feigenbaum i laureatul premiului Nobel, geneticianul Joshua Lederberg. Tot
n 1965, Lotfi Zahed (nscut n Azerbaidjan) pune bazele logicii fuzzy, care contrazice principiul
terului exclus. Teoria a fost ntmpinat cu scepticism i chiar ostilitate, ns succesul aplicaiilor
sale practice ulterioare a fost de necontestat. Un an mai trziu, Joseph Weizenbaum i Kenneth
Colby creaz programul Eliza, psihologul computerizat, care se va dovedi probabil cel mai celebru
5
program de IA creat vreodat. El converseaz n limbaj natural, analizeaz frazele interlocutorului
pentru a extrage cuvinte-cheie i apoi afieaz o replic, selectat dintr-o mulime de variante
predefinite. n multe situaii, conversaia este fluent, iar unii pacieni chiar s-au ataat emoional
de program, spre disperarea cercettorilor.
n aceast perioad are loc un nou salt tehnologic, dnd startul generaiei a treia de
calculatoare, bazat pe circuitele integrate (sau chipurile semiconductoare). Trebuie remarcat c de
la inventarea lor, numrul de tranzistoare de pe un chip s-a dublat la fiecare doi ani. n 1967 apare
primul program de ah care nvinge un juctor profesionist: MacHack, inventat de Richard
Greenblatt. Dup un an, Ross Quillian propune reprezentarea cunoaterii prin reele semantice.
n 1969, lucrarea Perceptronii a lui Marvin Minsky determin ntreruperea finanrilor
pentru studiul reelelor neuronale. n studiu se arat limitele reelelor neuronale cu un singur strat,
care de exemplu nu puteau s aproximeze funcia binar XOR, deoarece valorile acesteia nu sunt
liniar separabile. n 1970, a luat fiin limbajul Prolog, ca rezultat al cercetrilor lui Alain
Colmerauer, de la Universitatea din Marsilia, legate de formalizarea logic, ca baz a unui limbaj
pentru prelucrarea limbajului natural. Prolog este cel mai utilizat limbaj de programare logic i
declarativ i este intens utilizat pentru dezvoltarea aplicaiilor de IA, fiind un instrument eficient de
construire a sistemelor expert. n acelai an, Edward Shortlife propune la Universitatea Stanford
sistemul Mycin, unul din cele mai renumite sisteme expert. Acesta era construit pentru a sugera
diagnostice medicale, ns muli medici nu erau siguri de diagnosticul pus de calculator. De aceea,
s-a adugat modulul Teiresias, care, rspunznd la comanda why, putea justifica rspunsul prin
afiarea regulilor urmate i a concluziilor.
n 1973, John Holland public o lucrare n care introduce noiunea de algoritm genetic.
Doi ani mai trziu, Marvin Minsky propune reprezentarea cunoaterii prin cadre. nceputul anilor
70 aduce i o nou etap tehnologic, cea a microprocesoarelor, care determin apariia generaiei
a patra de calculatoare, care continu pn n prezent. Aa-numitele circuite integrate monolitice
conin milioane de tranzistoare pe un singur chip. Cercetrile n domeniul reelelor neuronale sunt
revigorate la mijlocul anilor 80, cnd devine cunoscut algoritmul delta generalizat (sau back-
propagation), imaginat n mod independent de Paul Werbos (1974), David Parker (1985) i James
McClelland i David Rumelhart (1986). Acesta este cel mai bun algoritm de antrenare cunoscut
pn n prezent i permite utilizarea pe scar larg a reelelor neuronale ntr-o multitudine de
aplicaii. n 1985, apare un nou limbaj de programare declarativ, Clips, propus de NASA. n 1987,
Minsky, n lucrarea Societatea minii, descrie teoretic mintea uman ca o colecie de ageni
6
cooperani, care interacioneaz. La nceputul anilor 90, Gerry Tesauro demonstreaz c nvarea
cu ntrire este suficient de puternic pentru a face un program care nva singur s nving juctori
profesioniti. Programul su este un joc de table, numit TD-Gammon, bazat pe teoria diferenelor
temporale pentru calcularea recompenselor la diferite momente de timp. n aceeai perioad, se
dezvolt paradigma rezolvrii inteligente distribuite a problemelor, prin intermediul agenilor.
Rodney Brooks imagineaz o arhitectur reactiv pentru ageni, care se constituie ntr-o
alternativ la abordarea logic clasic. Tot Brooks coordoneaz la MIT Cog Project, care aduce un
mare proges n tentativa de a construi un robot umanoid. n 1997, Deep Blue l cnvinge pe Garry
Kasparov, campionul mondial de ah la acea vreme. Tot n acelai an, are loc primul campionat de
fotbal cu roboi. La sfritul anilor 90, tehnici de IA sunt folosite de programele de cutare pe
Internet pentru extragerea de cunotine. Alte proiecte interesante, dezvoltate n aceast perioad,
sunt aa-numitele Camera inteligent sau Agenii emoionali.
n 2000, se construiesc deja animale de cas robotizate (robot-pets) interactive, cu mare
succes comercial, campionii n acest domeniu fiind firmele japoneze. Cynthia Breazeal coordoneaz
proiectul Kismet, care ncearc construirea unui robot cu o fa care exprim sentimente. Se
nregistreaz un proges i n sectorul mainilor inteligente autonome. Robotul Nomad exploreaz
regiuni ndeprtate din Antarctica n cutare de fragmente de meteorii. Se dezvolt roboi care s
poat transmite imagini de pe suprafaa planetei Marte i se cerceteaz posibilitile de cretere a
autonomiei vehiculelor spaiale.
Se preconizeaz c n jurul anilor 2030, calculatoarele vor egala din punctul de vedere al
complexitii i puterii de procesare capacitile omului. Numai viitorul va dovedi temeiul
previziunile optimiste sau sumbre din crile i filmele de anticipaie, care prezint androizi utili
speciei umane, sau dimpotriv, maini care ncearc s o distrug.
1.2 Definiii i obiectul de studiu al IA
Este greu de dat o definiie precis a domeniului inteligenei artificiale. n general, se
consider c obiectul su de studiu se refer la modalitile prin care poate fi imitat inteligena
uman cu ajutorul calculatoarelor electronice i a unor programe performante. Totui, nici
inteligena uman nu este o noiune clarificat pe deplin. Psihologul Howard Gardner identific
apte tipuri de inteligen:
7
Inteligena lingvistic se refer la capacitatea i plcerea de a citi, scrie, povesti sau rezolva
cuvinte ncruciate;
Inteligena logico-matematic presupune descoperirea modelelor, categoriilor i relaiilor i se
manifest de exemplu n rezolvarea problemelor aritmetice sau n jocurile de strategie;
Inteligena spaial se refer la posibilitatea de a gndi n imagini i la uurina rezolvrii
unor probleme geometrice spaiale; de exemplu gsirea drumului ntr-un labirint, talentul de a
desena sau de a construi figuri din cuburi Lego;
Inteligena corporal-kinestezic implic o mare sensibilitate n identificarea i prelucrarea
senzaiilor fizice, de exemplu simirea ritmului unui dans;
Inteligena muzical presupune existena urechii muzicale, adic a posibilitii de a percepe
i distinge sunete care par la fel altor persoane;
Inteligena interpersonal este dovedit de spiritul de conductor, de uurina comunicrii i
de existena empatiei, adic a capacitii de a nelege sentimentele altora;
Inteligena intrapersonal reflect o bun cunoatere a propriilor sentimente i posibiliti.
Testele de inteligen clasice cuprind de obicei ntrebri referitoare la primele trei tipuri.
Pentru o evaluare ct mai complet i exact a inteligenei unei persoane sunt necesare testri mult
mai laborioase. Rezumnd, putem spune c, n general, inteligena uman este capacitatea de a
nva uor i bine, de a sesiza ceea ce este esenial, de a rezolva situaii i probleme noi pe baza
experienei acumulate anterior.
IA este domeniul de studiu care i propune s explice i s modeleze comportamentul
inteligent n termenii proceselor de calcul. Ea nu este o tiin pur sau o nou disciplin
inginereasc, ci are o clar natur de interdisciplinaritate, care implic tiina calculatoarelor,
matematic, psihologia proceselor cognitive etc. Din punct de vedere ingineresc, IA se ocup cu
generarea reprezentrilor procedurilor care n mod automat i autonom permit rezolvarea
problemelor rezolvate pn acum numai de oameni. Obiectivul IA este abordarea inteligenei ca pe
un calcul posibil de efectuat, fezabil. Comunitatea tiinific nu a ajuns nc la un acord n privina
definirii acestui domeniu. O definiie operaional a inteligenei este testul Turing. Se nlocuiete
astfel ntrebarea pot mainile s gndeasc? cu problema dac se pot comporta similar cu
oamenii ntr-un context bine definit. Testul const ntr-o conversaie la distan (de exemplu, pe
chat) ntre un om i un calculator. La sfritul testului, calculatorul se consider inteligent cnd omul
8
nu poate spune dac a dialogat cu un alt om sau cu o main. De aici se desprind cteva caliti
implicite ale unui sistem inteligent:
prelucrarea limbajului natural;
posibilitatea de reprezentrii cunoaterii, a informaiilor apriori i a celor cptate n
timpul dialogului;
raionamentul automat, pentru utilizarea informaiilor n rspunsuri, concluzii sau
pentru construirea de ntrebri proprii;
nvarea, pentru adaptarea la noile circumstane.
Patrick Winston considera c IA este studiul ideilor care permit calculatoarelor s efectueze
lucrurile care fac oamenii s par inteligeni. El mai sugereaz c IA este studiul proceselor
computaionale care fac posibile percepia, raionamentul i aciunea. Marvin Minsky a iniiat
ipoteza conform creia inteligena nu este un singur lucru, ci o colecie de strategii, iar IA este
tiina identificrii concrete a acestor strategii i a modului n care se ncadreaz ntr-un tot coerent.
Elaine Rich afirma c IA este domeniul care studiaz cum se execut cu calculatoare electronice
sarcini pentru care omul este astzi cel mai bun. n consecin, inteligena artificial poate fi
descris drept acel domeniu al informaticii care se ocup cu proiectarea i construirea sistemelor
capabile s realizeze funcii ale intelectului uman, cum ar fi nvarea din experien, nelegerea
limbajului natural sau utilizarea unui raionament pentru rezolvarea problemelor. Mai scurt,
domeniul poate fi considerat partea computaional a capacitii de a atinge scopuri.
Este evident faptul c este mai uor de exprimat ce trebuie s fac mainile
inteligente dect descrierea a ceea ce trebuie s fie ele. Structura arhitectural a calculatoarelor
electronice rmne nc foarte diferit de structura sistemelor biologice, i aceast diferen se
regsete i n tipurile de performane ale acestora. Recunoaterea limbajului, de exemplu, nu este
asociat neaprat cu inteligena unui om, de vreme ce marea majoritate a oamenilor sunt capabili s
realizeze acest lucru. Totui aceast problem este nc greu de realizat computaional. Reciproc,
calculele aritmetice foarte complexe sunt rezolvate uor de calculatoare, ns cu dificultate de ctre
oameni. Cele mai importante caracteristici comportamentului inteligent sunt urmtoarele:
flexibilitatea disponibilitatea de adaptare la condiii noi;
feed-back (reacia) posibilitatea de a compara rezultatele aciunilor cu ateptrile i
apoi modificarea corespunztoare a aciunilor;
9
memoria pentru nmagazinarea informaiilor n vederea utilizrii ulterioare.
n figura 1.1 se prezint un model simplificat al circuitului informaional n care este
implicat psihicul uman, n cazul apariiei unui stimul din mediul extern i reaciei la acesta. Orice
stimul conduce n blocul de acumulare la conturarea unei baze de cunotine, astfel nct dup
conturarea personalitii, la maturizare, reaciile la stimulii externi sunt ponderate prin intermediul
blocului de autorizare, inndu-se cont de regulile de comportament, de reguli morale etc.Dei
modelul pune n eviden nite blocuri, pentru a marca nite aciuni, n psihicul uman nu se poate
face ntotdeauna o delimitare precis a regiunilor care realizeaz respectivele funcii. Acest model
este important n vederea realizrii unor maini inteligente care s poat imita comportamentul
oamenilor.
Figura 1.1. Selecia aciunilor inteligente prin feed-back
Domenii de cercetare i aplicatii a IA :
Raionamentul logic se bazeaz pe teoria logico-matematic clasic i analizeaz
modul n care noi cunotine pot fi derivate din altele existente n mod deductiv;
Reprezentarea cunoaterii este un domeniu fundamental, deoarece studiaz
modalitile n care cunotinele din lumea real pot fi exprimate i simbolizate n vederea
manipulrii computaionale;
Reelele neuronale se bazeaz pe analogiile cu modul de organizare a sistemului
nervos uman pentru nmagazinarea implicit a cunotinelor i pentru realizarea unor
procese de nvare i generalizare n condiii de informaii incomplete sau afectate de
zgomote;
10
Teoria jocurilor studiaz strategiile pe care trebuie s le urmeze ntr-o confruntare cu
reguli bine definite participani ale cror interese nu coincid;
Percepia cerceteaz reprezentarea ntr-o form accesibil computaional a stimulilor
care provoac reacii la nivelul organelor senzoriale umane; cele mai studiate sunt percepia
vizual i cea auditiv;
Programarea genetic studiaz modul n care soluia unei probleme poate fi gsit
prin mecanisme inspirate din procesele de evoluie biologice;
nvarea automat se ocup de studiul procedeelor care determin nvarea prin
interaciunea continu cu mediul de execuie;
Agenii cerceteaz comportamentul unor entiti autonome (programe, roboi )
distribuite logic sau spaial i n interaciune.
n strns legtur cu aceste domenii de cercetare, putem meniona cteva ramuri n care
inteligena artificial i gsete cu succes aplicaiile:
Rezolvarea general a problemelor, care caut soluii bazate n special pe raionament
logic;
Sisteme expert, care nmagazineaz cunotine specializate, provenite de la experi
umani;
Prelucrarea limbajului natural;
Recunoaterea textului (OCR) sau vocii;
Robotic;
Educaie, nvarea asistat de calculator;
Ingineria programrii, programe de tip wizard, generatoare de cod, pe baza opiunilor
programatorilor.
2. INTELIGENA ARTIFICIAL I C++
2.1 Dependena IA de limbajele de programare
Incercarea de a simula comportamentul inteligent uman a dus la investigarea unor alte tipuri
de probleme, probleme care implica un grad nalt de expertiz umana, cum ar fi diagnosticul
medical, managementul, proiectarea si rezolvarea problemelor ingineresti generale. Aceste
probleme necesita modelarea unor cantiti mari de informaii, informaii greu de formalizat, cum ar
fi experiena i intuiia. Sistemele expert, rezultat direct al acestor cercetri, snt acum mult utilizate
n domeniile amintite.
11
O direcie a cercetrilor de inteligen artificial a fost aceea a rezolvrii problemelor
banale, cotidiene, care necesit cunostine de bun simt. Aceste probleme includ rationamentul
despre obiecte fizice i relaiile ntre ele, i raionamentul despre aciuni i consecinele acestora.
Oricine tie, de exemplu, c un obiect nu poate sa fie simultan n dou locuri diferite sau ca nu
trebuie sa dea drumul unui pahar din mina deoarece poate s cad i s se sparg. Aceste
comportamente pot fi greu caracterizate ca necesitind inteligent i, totui, ele snt cele mai greu de
modelat ntr-un program. Cunotinele de bun sim snt la ndemna oricrui om dar ele trebuie
reprezentate explicit ntr-un program, iar volumul lor este impresionant. Surprinzator, cercetrile de
inteligen artificial au avut rezultate cu mult mai bune n domenii ca rezolvarea problemelor
formale dificile cum ar fi jocurile, demonstrarea teoremelor, sau a problemelor care necesita
expertiza umana ntr-un anumit domeniu, dect n domeniile care necesit cunotine de bun sim. S-
a reuit construirea unui program care s demonstreze teoreme matematice complicate i care s
descopere chiar concepte matematice noi, dar nu s-a reuit construirea unui program care s tie tot
ceea ce stie un copil de doi ani.[1]
In final, multe cercetri n domeniul inteligenei artificiale s-au orientat spre imitarea altor
capaciti umane cum ar limbajul, vzul, auzul. Percepia i recunoaterea imaginilor, nelegerea
limbajului vorbit sau scris, sinteza limbajului natural i a vocii snt probleme deosebit de
provocatoare care implic att algoritmi sofisticai de prelucrare ct i dispozitive tehnice
complicate.Inteligena artificial s-a organizat astfel ntr-un numr de subdomenii care, dei au n
comun aceleai principii de reprezentare a informaiei i aceleai tehnici de rezolvare a problemelor,
s-au concentrat pe diverse aplicaii.
O discutie precis despre natura, specificul i modalitile de rezolvare a problemelor de
inteligen artificial trebuie s considere urmatoarele patru ntreri importante:
Este posibil simularea comportamentului inteligent pe calculator?
La ce nivel se incearc modelarea comportamentului inteligent?
Care este criteriul pe baz caruia se apreciaz inteligena unui program?
Care snt reprezentrile i tehnicile utilizate n rezolvarea problemelor de
inteligen artificial?
n limitele definiiilor anterioare ale domeniului, raspunsul la prima ntrebare poate fi
conjectura lui McCarthy sau ipoteza lui Newell i Simon. John McCarthy, una dintre personalitile
celebre ale inteligenei artificiale, a facut urmatoarea conjectur:
12
"Orice aspect al nvarii sau orice alt caracteristic a inteligenei umane poate fi descris
suficient de precis astfel ncit o main s o poat simula."
Cel mai celebru criteriu de apreciere a inteligentei unui program, deci criteriul care ar putea
raspunde la intrebarea 3, este testul Turing. In 1950, Alan Turing (1912-1954), celebru
matematician britanic si unul dintre intemeietorii stiintei calculatoarelor, a propus un test pentru a
determina daca o masina poate avea sau nu un comportament inteligent. n articolul sau
"Computing Machinery and Intelligence", Turing a pus pentru prima oara problema posibilitatii
simulrii gndirii umane cu ajutorul calculatorului. n acelai articol, Turing descrie i testul care,
afirm el, poate discerne ntre o comportare inteligent i una neinteligent.[1]
Testul Turing consta n principiu din urmatorul experiment. Un om comunica prin
intermediul unui terminal al calculatorului cu alte doua terminale, situate in camere invecinate,
punnd ntrebri i obinnd rspunsuri. Rspunsurile snt date de o persoana la unul din cele doua
terminale ascunse celui de la care se intreaba si de un program la celalalt terminal. Daca persoana
care intreaba nu poate stabili n urma dialogului care este terminalul de unde i-a raspuns omul i
care este cel de la care i-a raspuns programul atunci programul are o comportare inteligent.
Programul poate fi astfel facut nct sa ncerce s pcleasc pe cel care ntreab. De exemplu, daca
programul este ntrebat ct fac 12.120*32.425, se asteapt cteva minute pna se primeste rspunsul.
Problema cea mai importanta ridicata de realizarea unui program care s treac un astfel de test este
cantitatea de informaie necesar programului innd cont de spectrul larg al ntrebarilor posibil de
pus, cit i de faptul ca acestea sint puse n limbaj natural. [1]
Pna la ora actual nici un program nu a reuit s treac testul Turing. Cu toate acestea,
testul Turing sugereaz o masura a performanelor unui program dac se considera domenii
restrinse ale discursului. De exemplu, un program de jucat sah poate ajunge s aib performane
similare cu cele ale unui maestru iar oponentul sa nu tie daca joac sah cu o persoana sau cu un
program. In alte domenii este posibil s se compare performanele rezolvrii unei probleme de ctre
un program cu cele ale unui expert n domeniu, att din punct de vedere al calitii soluiei cit i din
punct de vedere al vitezei de rezolvare.Testul Turing este nsa vulnerabil, n ciuda armului lui
intelectual, din mai multe motive. n primul rnd testul verific numai capacitatile pur simbolice de
rezolvare a problemelor, nelund n considerare aspecte cum ar fi percepia sau dexteritatea
manual. Pe de alt parte exist posibila obiecie ca acest test impune ca inteligena masinilor s
modeleze inteligena umana. Unii cercettori susin c inteligena masinilor este o forma diferita de
inteligen i ca este o greseal s ncercm a o evalua n termenii inteligenei umane. Se dorete
13
oare construirea unei maini capabile s simuleze activitatea social a unui om i care s fie la fel de
lent ca acesta n efectuarea calculelor matematice? Toate aceste ntrebri rmn pentru moment
fr un rspuns definitiv, unele depaind cu mult sfera inteligenei artificiale. [1]
ncepnd din 1960 apar primele programe de inteligen artificial. A. L. Samuel dezvolta n
1961 un program de jucat sah care si mbuntea performanele dup fiecare partid jucat. n
1962 i 1963 A. Newell si H. Simon construiesc programul "General Problem Solver" (GPS) pe
care ncearca s-l aplice n rezolvarea mai multor probleme, cum ar fi planificarea aciunilor sau
manipularea simbolic a expresiilor logice. n 1965 J. A. Robinson introduce rezoluia ca metoda
simpl i eficient de demonstrare automat a teoremelor. Tot n 1965 ncepe la Stanford
University construirea primului sistem expert, DENDRAL, de ctre J. Lederberg si E. Feigenbaum.
DENDRAL [Lindsay,s.a.,1980] era un sistem expert capabil s sintetizeze structura moleculelor
organice pe baza formulelor chimice i a spectogramelor de masa. In 1968 C. Engleman, de la
Massachusetts Institute for Technology, incepe dezvoltarea limbajului MACSYMA destinat
rezolvarii simbolice a ecuaiilor.
n acelai timp apare necesitatea existenei unor limbaje de programare mai puternice,
capabile s exprime la nivel simbolic informaiile necesare programelor de inteligen artificial. Se
dezvolt astfel o noua filozofie a programrii, programarea descriptiv sau declarativ n care
rezolvarea unei probleme se face pe baza descrierii universului problemei n termenii obiectelor,
atributelor i a relaiilor existente ntre acestea. n scopul creterii eficienei activitii de
programare simbolica se dezvolta astfel o noua clasa de limbaje: limbajele declarative. Limbajele
funcionale, limbajele logice i limbajele orientate pe obiecte snt exemple de astfel de limbaje.
Limbajul Lisp (LISt Processing) a fost creat de John McCarthy in 1959. Limbajul Lisp
[Siklossy,1977;Norvig,1992] este un limbaj functional destinat prelucrrii simbolice a informaiei,
cu o sintax simpl, cu tipuri de date simple i gestiunea dinamic a memoriei. Limbajul Lisp a fost
i este considerat limbajul preferential al inteligenei artificiale. Limbajul Prolog (PROgrammation
et LOGique) a fost inventat de Alain Colmerauer la universitatea Marseille-Aix in 1972. Limbajul
Prolog [Clocksin,Mellish,1981;Sterling,Shapiro,1986] este cel mai rspindit limbaj de programare .
O alta categorie de limbaje care au contribuit la dezvoltarea rezolvarii problemelor de inteligenta
artificial este aceea a limbajelor orientate pe obiecte. Smalltalk [Goldberg,Robson,1983] este
limbajul reprezentativ pentru acest tip de programare i caracteristici ale limbajelor orientate pe
obiecte au fost incluse i n limbajele procedurale de nivel nalt.
14
Studiile i cercetrile de nceput n inteligena artificial s-au orientat mai ales spre
ncercarea de a construi sisteme generale, bazate pe metode de inferen puternice, care ncercau s
funcioneze i n cazul unor cunotine limitate despre domeniul problemei. Exemple de astfel de
sisteme snt programele de jucat sah, "The Logic Theorist", GPS si altele din perioada anilor '60. n
scurt timp s-a dovedit c ipoteza conform creia un program care conine metode de rezolvare
puternice dar generale, i care se bazeaz n rezolvarea problemelor numai pe viteza de calcul a
mainii, nu era capabil s rezolve decit probleme foarte simple. De ndat ce un astfel de sistem
trebuia s rezolve probleme reale, complexe, explozia combinaional implicat de soluionarea
problemelor fcea ca programul s devin inefectiv.
n urma acestor rezultate, la inceputul anilor '70 s-a produs o modificare fundamentala n
modul de abordare i dezvoltare a sistemelor de inteligen artificial. Cercettorii au ajuns la
concluzia c realizarea unui sistem inteligent capabil s rezolve probleme reale, complexe, necesit
un volum substanial de cunotine specifice domeniului. n legatur cu aceast idee a fost frecvent
citat maxima lui Francis Bacon: "Scientia et potentia in idem coincidunt." Perspectiva importanei
cuntinelor n programele de inteligen artificial este susinut i de observaia ca un specialist
ntr-un anumit domeniu nu poate lucra performant n alte domenii, orict de puternica ar fi
capacitatea lui de rationament. Descoperirea rolului cunotintelor specifice domeniului n
rezolvarea unei probleme dificile a generat o noua concepie a sistemelor de inteligen artificial:
sistemele bazate pe cunotine. Eduard Feigenbaum [1977] a rezumat aceast noua concepie ntr-o
lucrare prezentata la "The International Joint Conference on Artificial Intelligence" in 1977. El a
pus n evident faptul c adevrata putere de rezolvare a unui program este determinat n primul
rnd de cantitatea de cunotinte pe care o poseda i numai n al doilea rind de modalitatile de
raionament general utilizate.
Din acest motiv o parte important a cercetrilor de inteligen artificial din ultimele doua
decade s-au orientat spre dezvoltarea metodelor i instrumentelor de modelare a cunotinelor .
Prima etapa a fost marcat de evoluia limbajelor generale de inteligena artificiala, cum ar fi Lisp si
Prolog. A doua etapa a marcat dezvoltarea de sisteme expert dedicate, specializate ntr-un anumit
domeniu, care aveau propiul lor limbaj de reprezentare a cunotinelor. Din aceste limbaje
specializate au evoluat limbaje de reprezentare a cunotintelor independente de domeniu, numite i
limbaje de nivel foarte nalt. Aceste limbaje, n general tot limbaje declarative, permit exprimarea
modulara a cunotintelor n forme mult apropiate de limbajul natural. Dei aceste limbaje snt
independente de domeniu, reprezentarea cunotinelor i metodele de raionament incorporate
favorizeaz utilizarea fiecrui limbaj pentru o anumit clas de probleme, facnd dificil sau
15
aproape imposibil utilizarea limbajului pentru probleme cu alte caracteristici. n jurul acestor
limbaje de nivel foarte nalt s-au dezvoltat medii de programare care au condus la apariia
sistemelor cadru de dezvoltare a sistemelor bazate pe cunotine. Limbajele de programare ale
inteligenei artificiale au jucat un rol important n dezvoltarea cercetrilor din domeniu. De multe
ori, idei i tehnici noi au fost nsoite de un nou limbaj care susinea n mod natural aceste idei i
tehnici. Exist la ora actuala un peisaj complex i baroc al limbajelor de inteligen artificial i a
mediilor de dezvoltare a sistemelor bazate pe cunotine. Dintre acestea cele care s-au impus n
ultimul timp snt mai ales KEE [Kikes,Kehler,1985; Filman,s.a.,1992; Filman,1992] si OPS5
[Cooper,Wogrin,1988]. (Anexa 2)
La ora actuala inteligena artificial a incetat s mai fie apanajul unui numar restrins de
iniiai i s fie practicat numai n universiti sau institute de cercetare. Exist numeroase sisteme
comerciale de inteligen artificiala i aplicaii funcionale construite pe baza tehnicilor de
inteligen artificial. Aceste aplicaii devin din ce in ce mai frecvent pri ale unor sisteme
complexe care includ multe componente de programare clasic. Din acest motiv, mediile de
dezvoltare ale sistemelor bazate pe cunotine existente la ora actual au componente de interfa
cu limbaje de programare de nivel nalt, sisteme de gestiune a bazelor de date, etc. In plus, anumite
aplicaii de inteligent artificiala snt dezvoltate n limbaje cum ar fi C sau Ada. Metodele de
reprezentare a informaiei i tehnicile de rezolvare a problemelor descoperite de inteligena
artificial au depasit sfera stricta a domeniului si au fost incluse n numeroase alte aplicaii
complexe.[4]
2.2 Aplicaii ale IA dezvoltate de C++
n anul 1970, doi programatori, Brian Kerninghan si Dennis Ritchie, au creat limbajul C.
Principalul scop pentru care a fost realizat acest limbaj este rescrierea sistemului de operare UNIX,
pentru a-l face portabil pe toate platformele existente. Marele avantaj al limbajului C este acela de a
fi extrem de flexibil si de a permite att programarea la nivel nalt ct i la nivel sczut. C-ul este un
limbaj procedural, asadar un program scris n C ncepe de obicei cu definirea structurilor de date,
apoi definirea funciilor pentru lucrul cu aceste structuri.[3]
Creterea complexitii programelor a dus la necesitatea elaborrii unor alte tipuri de
limbaje. Astfel, destinate inteligenei artificiale, au aparut limbajele care au la baza noiunea de
"cadru" i cele care pleaca de la ideea de "actor". Primele implementeaz operii asupra
unor modele de entiti; celelalte presupun faptul c obiectele nu sunt simple elemente pasive
16
asupra crora se fac anumite prelucrri, ci, dimpotriv, c menirea acestor obiecte const n a realiza
prelucrrile asupra lor nile.De aici a pornit ideea de a grupa structurile de date cu operaiile care
prelucreaz respectivele date. Astfel s-a nascut noiunea de obiect sau clasa. Proiectarea de
programe utiliznd clase se numete programare orientata pe obiecte (OOP).[3]
Primele limbaje orientate pe obiecte au fost SIMULA (1965) i SIMULA-2 (1967). n anii '70
a aparut i celebrul limbaj SMALLTALK. Cel mai mare dezavantaj al lor a fost faptul ca au aparut ca
limbaje de sine statatoare, avnd o rspandire relativ redus. Din acest motiv, puin programatori
erau dispui n acea vreme s renune la limbajele consacrate doar pentru a lucra obiectual.
n anul 1980, Bjarne Stroustrup a conceput limbajul "C with Classes". Acest limbaj a dus la
imbunatatirea C-ului prin adaugarea unor noi faciliti, printre care i lucrul cu clase. n vara 1983,
C-with-classes a patruns i n lumea academic i a instituiilor de cercetare. Astfel, acest limbaj a
putut s evolueze datorit experientei acumulate de catre utilizatorii si. Denumirea final a acestui
limbaj a fost C++.[3]
O versiune de primul meu program n C++ (fiierul hello.cpp) arat astfel:
// Programul merge numai in C++
#include
#include
void main()
{
clrscr();
cout > c; // se ateapt apsarea unei taste i Enter
}
Prima linie din acest program este o form suplimentar de a scrie comentariile n C++
fa de C. Comentariul nou ncepe cu caracterele // i tinde spre sfritul liniei. Comentariul de
acest tip poate ncepe din orice poziie a liniei, dup cum este artat n acest mic program.
Fiierul antet este inclus pentru conectarea bibliotecii standard din C++ de
intrare/ieire, fiind n opoziie bibliotecii din C care se conecteaz cu ajutorul fiierului
antet.
17
cout este streamul standard de ieire, provine de la ConsolOUTput, corespunde streamului stdout
din C. Aa c expresia cout > c citete n variabila c un caracter din streamul standard de intrare. i
dac n acest stream nu este niciun caracter, programul se oprete n ateptare pn ce un caracter
oarecare nu va fi introdus.n principiu, toate posibilitile limbajului C s-au pstrat i n limbajul
C++ .[4]
Succesul extraordinar pe care l are limbajul C++ a fost asigurat de faptul c a extins cel mai
popular limbaj al momentului, C. Programele scrise n C functioneaz i n C++, si ele pot fi
transformate n C++ cu eforturi minime.Cea mai recent etapa n evoluia acestui limbaj o
reprezinta limbajul JAVA, realizat de firma SUN, care nu este altceva decat un limbaj C++ putin
modificat i extins. Interesant este urmatoare afirmaie a lui Stroupstrup: "utilizatorii au nceput s
foloseasca C++ nainte ca specialtii s aiba timpul necesar s-i instruiasc pentru a-l folosi cu
randament maxim". Intr-adevar, s-a constatat ca mare parte dintre compilatoarele de C++ existente
nu sunt folosite decat pentru dezvoltarea de software structurat, si nu orientat pe obiecte (altfel spus,
se lucreaza n C pe un compilator de C++).Programatorii au descoperit ulterior ca aplicatiile
orientate pe obiecte sunt mai usor si mai rapid de scris, si nu in ultimul rand mai usor de inteles.
(Anexa 3) [4]
3. COMUNICAREA CALCULATOR-OM
3.1 Modul de funcionare a programului
Programul reprezint un dialog obinuit ntre un operator moldcell, n cazul nostru acesta
este calculatorul, i clientul acestei companii. Clientul adreseaz ntrebri, probleme referitoare la
serviciile mobile la care calculatorul rspunde, dnd sfaturi sau indicii de rezolvare a problemei
date.
Programul a fost realizat n C++Builder, toate ntrebrile i rspunsurile sunt n baza de date
care este conectat la proiectul respectiv. Baza de date conine 2 tabele: dialog i raspuns, n aceste
tabele este introdus toat informaia necesar pentru a forma un dialog ntre system i client.
Fiecare ntrebare are un id la fel ca rspunsurile care funcioneaz n concordan unele cu altele. n
proiect se adreseaz de 2 ori la baza de date.
18
Scrim textul i apsm ok , iniial poziia de start (poz) este 1 deci de fiecare data
programul se ncepe cu valoarea 1(poz = 1), se executa un SELECT din tabelul "raspuns" n care
se caut dac este asa rspuns care sa scris cu id-ul la ntrebarea data (id fiind deja nsui
parametrul "poz"). Dac se gsete rspunsul n tabel atunci se scrie id_intreb (id la intrebarea
care va urma mai departe). Dac nu gsete atunci se ea "parent_ras" din tabelul "dialog" ca id
ntrebare care va urma. Cunoscnduse id la urmatoarea ntrebare se mai face un SELECT din
tabelul "dialog" cu id care a fost gsit mai sus, se d ntrebarea care a fost gasit cu id dat. Astfel
de fiecare dat cnd se apas butonul "ok " se ndeplinesc toi paii descrii mai sus.
3.2 Rezultatele dialogurilor calculator-om
Programului au fost adresate cele mai frecvente intrebri ale clienilor, o ntrebare are mai
multe forme de rspuns de aceea i dialogurile sunt puin mai diferite.
Exemplu 1:
19
Exemplu 2:
Exemplu 3:
20
Exemplu 4:
21
Concluzie:
Inteligena artificial este un domeniu care mereu o s tind spre prefeciune n realizrile
sale, deoarece el tinde spre constuirea unei copii a raiunii omeneti care este ntr-un permanent
progres. E uor s coordonezi cu un calculator atunci cnd merge vorba de probleme care au n final
doar un singur rspuns, ns cnd merge vorba de raiune, unde rezultatul nu poate fi constant atunci
calculatorului i este necesar o cantitate foarte mare de informaie pentru a da un rspuns
asemntor cu acel al omului. ns chiar i cu o cantitate de informaie destul de voluminoas nu
poate fi garantat 100 % c calculatorul va reaciona ca omul. ntr-un mod oarecare savanii ncearca
sa nsufleeasca un program, toate acestea ncercri au dus la decoperiri mari n domeniul
tehnologiilor ceea ce ne-au uurat nou, oamenilor, viaa. Limbajul cel mai eficient de coordonare i
comunicare cu un calculator nu este altul dect limbajul de programare. Au fost realizate din trecut
pn n prezent o mulime de limbaje de programe, limbajul C++ este unul din ele i se poate spune
c cu cea mai mare experien n domeniul su. El a evoluat pe parcursul anilor, i-a perfecionat
posibilitile devenid un model sigur pe baza cruia au fost realizate limbaje noi de programare
cum ar fi Prolog, Java, C++Builder.
22
Bibliografie:
1. Elemente de Inteligenta Artificial, Adina Magda Florea, Bucureti 1993
2. Totul despre C i C++, Dr. Kris Jamsa, Lars Klander, Bucureti 1999
3. Programarea calculatoarelor. tiina nvarii unui limbaj de programare, Roca
Ion Gh., Bucureti 2003
4. Programarea calculatoarelor II, Minea Marius, 2003
5. M-P Gleizes, P Glize Les systemes multi-experts, Editura Hermes, 1990
6. THE C++ PROGRAMMING LANGUAGE, BJARNE STROUSTRUP,
ADDISON-WESLEY, PUBLISHING COMPANY 1986
7. C#, Schildth Herbert, Teora 2002
8. Inteligena artificial, Florin Leon
(http://florinleon.byethost24.com/curs_ia.htm)
9. Inteligena artificial, Ctlin Stoean (http://inf.ucv.ro/~cstoean)
http://florinleon.byethost24.com/curs_ia.htm