SISTEME EXPERT
Data: 16-30 noiembrie 2005
I. Generalitati despre inteligenta artificiala
Inteligenta Artificiala (IA) este o ramura a stiintei promovata recent in universitati si laboratoare de cercetare. Astfel de tehnici au inceput sa fie promovate cu succes si in industrie. Se apreciaza ca in viitor tratarea problemelor ingineresti cu metode specifice inteligentei artificiale va creste considerabil. In plus, tehnicile dezvoltate pe baza programarii clasice dau rezultate corespunzatoare cand se utilizeaza in descrierea elementelor finite, la simularea circuitelor, prelucrarea problemelor algoritmice, nefiind adecvate la o serie de probleme ingineresti. Metodele ingineresti pot fi caracterizate prin „utilizarea algoritmilor euristici in scopul determinarii celei mai bune solutii intr-o situatie concreta data“.
Inteligenta artificiala este domeniul stiintei calculatoarelor care se ocupa cu studiul si crearea sistemelor si programelor de calcul care prezinta o forma inteligenta: sisteme care invata noi concepte, care pot rationa si deduce concepte utile intr-un domeniu al lumii inconjuratoare, sisteme care pot intelege limbajul natural sau percepe si intelege un peisaj, intr-un cuvant sisteme care necesita capacitati inteligente specifice omului.
Momentul de nastere al IA este, in general, legat de anul 1956, cand la reuniunea de la Darmouth College a fost prezentat programul de demonstrare a logicii propozitiilor Logic Theorist de catre Newell, Shaw si Simon. Termenul de inteligenta artificiala a fost inventat cam in acelasi an, de catre John McCarthy. Anii care au urmat lui 1956 au facut sa apara primele programe de demonstrare a teoremelor bazate pe logica propozitiilor.
Deceniul 1960 - 1970 a permis elaborarea principiilor majoritare in cercetarea arborescentelor si a unor idei de baza, care sunt utilizate si astazi in rezolvarea problemelor si a Sistemelor Expert.
Dupa anii 1970 preocuparile se deplaseaza de la programele si strategiile de cautare, spre cercetarea naturii cunostintelor. Multi cercetatori din domenii diferite (informatica, psihologie, filozofie, matematica) incearca sa determine natura si structura cunostintelor. Interesul lor se indreapta spre cunostintele cele mai complexe, adica spre cunostinte incerte, incomplete, polisemantice, imprecise si vagi (ale caror granite nu sunt precizate): intr-un cuvant, spre cunostinte din Lumea Reala.
Prin crearea bazelor teoretice ale sistemelor expert a fost posibila aparitia si dezvoltarea limbajelor de programare specializate, numite programe inteligente. Astfel, incepand cu anul 1959 a aparut primul limbaj de acest fel, numit LISP, elaborat de McCarthy, iar in 1962 a aparut primul manual LISP. Acest limbaj lucreaza doar cu doua entitati: atomii si listele, listele fiind structurate in arborescenta binara. Limbajul LISP nu face deosebire intre proceduri si date (permite adaugarea de reguli sau de cunostinte).
La inceputul anilor 1970 apare ideea de utilizare a logicii predicatelor in realizarea limbajelor de programare. Astfel, intre anii 1970 - 1975 apare un nou limbaj, bazat pe logica predicatelor de ordinul intai, elaborat de Colmerauer si Roussel. PROLOG are propria strategie de demonstrare si este un instrument puternic de elaborare pentru proiectantii si realizatorii de Sisteme Expert.
Dupa anul 1975 a avut loc o dezvoltare rapida a programelor bazate pe tehnicile de IA pentru diferite utilitati: Knowledge Acquisition System - KAS (1979), Expert (1979), Knowledge Engineering Environment - KEE (1983), Vp-Expert, C Language Integrated Production System - CLIPS (1984) etc.
Se pune intrebarea fireasca asupra caror zone stiintifice se extinde IA. In continuare se dau cateva exemple:
– vedere artificiala - care presupune recunoasterea formelor, identic cu vederea umana;
– robotica - focalizeaza producerea dispozitivelor mecanice capabile sa reproduca miscarea;
– prelucrarea vocii - care urmareste constituirea si sinteza vocii umane;
– prelucrarea in limbaj natural - intelegerea si vorbirea in limbajul natural;
– demonstrarea (producerea) teoremelor - in matematica si logica;
– General Problem Solving – rezolvarea unei clase generale de probleme exprimate in limbaje formale;
– recunoasterea formelor - recunoasterea si clasificarea diferitelor forme;
– teoria jocurilor;
– invatarea automata - masini ce acumuleaza cunostinte prin observarea exemplelor.
Investigatiile in domenii cum sunt recunoasterea formelor si prelucrarea vocii sunt domenii noi in IA. Nu trebuie sa surprinda faptul ca utilizarea in ultimii ani a sistemelor expert a fost asociata cu cercetarile de IA, deoarece structura si proprietatile sunt asociate de produsele IA: Sistemele expert beneficiaza de cercetarile ce au fost realizate in diferite zone ale IA.
In figura 1 se prezinta relatiile dintre sistemele expert si celelalte domenii ale IA. In prezent, sistemele expert sunt tot mai mult asociate direct cu modurile de rationare si cunostintele reprezentate. Sistemele expert sunt de fapt dezvoltari in noile campuri ale achizitiei de cunostinte ca forme specializate de invatare, in care cunostintele sunt achizitionate direct de la expert. Alte sisteme expert, ca tehnici de IA, includ explicatii, invatare inteligenta, planificare, rezolvarea problemelor distribuite, cercetari ce sunt adresate direct IA.
II. Arhitectura generala a sistemelor expert
In general, un „expert“ este o persoana care poseda cunostinte temeinice intr-un anumit domeniu, un specialist de inalta clasa, care poate efectua o expertiza asupra unei probleme.
Sistemele expert (SE) pot face parte dintr-o gama de instrumente indispensabile pentru realizarea de sisteme automate sau interactive capabile sa efectueze sarcini complexe.
SE constituie o clasa particulara de sisteme informatice, bazata pe inteligenta artificiala, avand ca scop reproducerea cu ajutorul calculatorului a cunostintelor si rationamentelor expertilor umani.
Un SE este un program care urmareste un grup de cunostinte pentru obtinerea in acelasi mod ca si expertii umani a rezultatelor despre activitati dificil de examinat. Principala caracteristica a SE este derivata din baza de cunostinte impreuna cu un algoritm de cautare specific metodei de rationare. Un SE trateaza cu succes probleme pentru care o solutie algoritmica clara nu exista sau pentru care implementarea algoritmica este ineficienta datorita complexitatii mari a acesteia.
Din punct de vedere functional, un SE este definit ca un program ce ofera cunostinte pentru obtinerea rezultatelor task-urilor dificile rezolvate uzual de expertii umani. Din punct de vedere structural si arhitectural, SE au urmatoarele caracteristici:
– sunt construite in general pentru focalizarea task-urilor cu gama limitata de aplicabilitate;
– exista o separare explicita intre cunostintele si metodele de rationare utilizate in vederea obtinerii unor concluzii pe baza cunostintelor;
– sunt capabile sa explice propriile actiuni si linii de judecata.
O caracteristica a SE este cea privind competenta acestora de a furniza explicatii asupra rationamentelor intreprinse pentru ajungerea la rezultat. Multitudinea problemelor determina si volumul deosebit de mare al bazei de cunostinte, insa un SE trebuie sa fie capabil sa rezolve in aceeasi masura si problemele ce sunt afectate de cunoasterea incerta si incompleta. In aceste situatii se pot utiliza cunostinte euristice ce permit gasirea solutiei potrivite fara ca aceasta sa fie neaparat solutia optima. Avand in vedere aceste caracteristici, structura SE poate fi grupata in jurul a trei module principale:
a) Baza de cunostinte, care este reprezentata ca o structura de date ce contine ansamblul cunostintelor specializate introduse de catre expertul uman. Cunostintele stocate in baza de cunostinte sunt in principal descriptii de obiecte in conjunctie cu relatiile dintre acestea. Baza de cunostinte face parte din sistemul cognitiv, cunoasterea fiind memorata intr-un spatiu special organizat.
b) Mecanismul de inferenta, care reprezinta noutatea SE. El preia cunostintele din baza de cunostinte ce sunt utilizate pentru construirea rationamentului. Mecanismul de inferenta urmareste o serie de obiective majore cum sunt: alege strategia de control in functie de problema curenta ce o are de rezolvat, elaboreaza planul de rezolvare a problemei dupa necesitate, executa comutarea de la o strategie de control la alta, executa actiunile prevazute in planul de rezolvare, constituie informatiile de control pentru mecanismele fundamentale ale mecanismului de inferenta. Cu toate ca in esenta mecanismul de inferenta este constituit dintr-un ansamblu de proceduri in sensul obisnuit al termenului, modul in care utilizeaza cunostintele nu este prevazut prin nici un program, acesta fiind conditionat de datele si cunostintele pe care le poseda.
c) Baza de fapte, care este reprezentata de o memorie auxiliara ce contine toate datele utilizatorului (faptele initiale ce descriu enuntul problemei de rezolvat) si rezultatele intermediare produse in cursul procedurii de deductie.
In afara de aceste module, un SE mai contine si o serie de module ce asigura comunicarea cu operatorul si expertul uman. Modulul de comunicatie este destinat furnizarii interfetelor specifice pentru utilizatorii SE si pentru achizitia de cunostinte. Interfata utilizator este cea care asigura dialogul dintre utilizator si sistem in limbaj cvasinatural prin translatarea limbajului intern. Modulul de achizitie a cunostintelor preia cunostintele specializate furnizate de expertul uman sau de inginerul de cunostinte intr-o forma care nu este specifica reprezentarii interne. Modulul de explicatii permite trasarea drumului urmat in rationare de catre sistemul rezolutiv si emiterea justificarilor pentru solutiile obtinute, evidentiindu-se in acest mod cauza greselilor sau motivul esecului.
In figura 2 este prezentata structura generala a unui SE ce inglobeaza modulele descrise anterior.
III. Sisteme expert folosite in electroenergetica
Complexitatea crescuta a SEN impune ca in procesul de conducere si exploatare a acestuia sa se utilizeze mijloace moderne de calcul dotate cu un software bine fundamentat matematic si amplu elaborat. Sunt insa destule cazuri cand experienta acumulata de expertii umani din domeniul conducerii si exploatarii SEN conduce la solutionarea mai rapida si mai eficienta a unor probleme care apar in activitatea practica. Se contureaza tendinta captarii si codificarii cunostintelor acestor experti umani in cadrul unor programe pentru calculator si cuplarea acestor programe orientate pe procesarea cunostintelor cu programele traditionale orientate pe procesare numerica.
In conceperea si introducerea SE in energetica trebuie avut in vedere permanent ca omul ramane principalul element de decizie, sistemele inteligente asistandu-l in aceasta activitate in situatii de rutina sau exceptionale pentru a-l elibera de anumite sarcini si pentru a-i da posibilitatea sa se concentreze pe acele activitati care implica in mod necesar elementul uman in alegerea si executarea actiunilor. In acest sens, sistemele inteligente trebuie considerate, pentru o perioada, ca auxiliare si nu ca alternative pentru functiile actuale ale dispecerilor.
Motivatia de a implementa tehnici de tip sistem expert in energetica rezulta in principal pentru problemele caracterizate de urmatoarele proprietati:
• Date inconsistente: acesta este cazul diagnozei si prelucrarii alarmelor, unde rolul sistemelor expert este de a extrage informatia utila dintr-o multitudine de date incomplete sau probabil conflictuale. In acest scop nu este disponibila inca nici o tehnica conventionala;
• Complexitatea structurii sistemului energetic: sistemul expert poate modela cunostintele specialistului uman pentru a ajuta la o rapida identificare a regiunilor slabe dintr-un sistem energetic;
• Natura combinatorie a solutiilor: un exemplu este restaurarea starii de functionare dupa o avarie in sistem, care necesita o strategie de cautare intr-o problema multidimensionala. In acest sens se construiesc scenarii ale starilor posibile si se cauta solutia in spatiul acestor stari;
• Multitudinea datelor achizitionate.
In conceperea si introducerea sistemelor expert in energetica trebuie avut in vedere permanent ca omul va ramane principalul element de decizie, sistemul expert asistandu-l in aceasta activitate in situatii exceptionale (incidente, avarii etc.) sau de rutina pentru a-l elibera de anumite sarcini si a-i da posibilitatea sa se concentreze pe acele activitati care implica in mod necesar elementul uman in alegerea si executarea actiunilor. Sistemul expert trebuie considerat ca un element auxiliar si nu ca o alternativa la functiile actuale ale dispecerilor.
Sistemele Expert, alaturi de Retelele Neuronale, Sistemele Fuzzy si Algoritmii Genetici, reprezinta unul dintre domeniile principale ale IA. In ultimii ani se constata o explozie a preocuparilor privind introducerea aplicatiilor sistemelor expert in energetica, in general, si in retelele electrice, in particular.