22
Cuprins: INTRODUCERE .......................................................................................................... 1 1. NOȚIUNI GENERALE DE INTELIGENȚĂ ARTIFICIALĂ ........................... 2 1.1 Istoricul Inteligenței Artificiale ..................................................................... 2 1.2 Definiții și obiectul de studiu al IA................................................................ 6 2. INTELIGENȚA ARTIFICIALĂ ȘI C++ ............................................................ 10 2.1 Dependența IA de limbajele de programare .............................................. 10 2.2 Aplicații 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

Teza de an la Informatica(C++ Builder)

  • Upload
    -

  • View
    26

  • Download
    0

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