Creeaza.com - informatii profesionale despre


Cunostinta va deschide lumea intelepciunii - Referate profesionale unice
Acasa » scoala » informatica
SISTEME INFORMATICE PENTRU ASISTAREA DECIZIEI

SISTEME INFORMATICE PENTRU ASISTAREA DECIZIEI


UNIVERSITATEA PETROL-GAZE DIN PLOIESTI

DEPARTAMENTUL PENTRU INVATAMANT CU FRECVENTA REDUSA SI LA DISTANTA

SISTEME INFORMATICE PENTRU ASISTAREA DECIZIEI



Introducere

Calculatorul este un instrument care a aparut din dorinta omului de a crea unelte care sa inteleaga dispozitiile primite si sa le execute fara interventia directa a omului.

Ideea a aparut cu mult timp in urma, instrumentele care sa inteleaga si sa execute fiind initial apanajul vrajitorilor pentru ca, incepand cu epoca Renasterii, aceasta sa devina o preocupare a oamenilor de stiinta. Deoarece nu se putea realiza direct un asemenea dispozitiv, datorita problemelor tehnologice, eforturile s-au canalizat asupra rezolvarii problemelor de calcul matematic, in secolele XVIII - XIX existand multe incercari de a construi dispozitive de calcul din ce in ce mai complexe.

Finalitatea acestor eforturi a constat in masinile de calcul electromecanice, care functionau cu cartele si permiteau efectuarea unui numar redus de operatii prestabilite.

Aparitia calculatorului electronic a permis cresterea vitezei de lucru a acestor dispozitive, dar a condus si la aparitia calculatorului programabil, care putea efectua operatii din cele mai diferite, schimband doar programul utilizat.

Totodata, incercarile de a realiza dispozitive cu inteligenta proprie au continuat, cautandu-se solutii noi, dezvoltate pentru calculatoare electronice.

Astfel a aparut o directie particulara de dezvoltare a informaticii si anume inteligenta artificiala. Aceasta incearca sa rezolve problemele intr-un mod asemanator celui in care lucreaza creierul uman.

Daca in informatica asa-zis clasica rezolvarea problemelor se face prin prelucrarea algoritmica (problema se descompune in pasi elementari aranjati in ordinea necesara si care se prelucreaza succesiv pana la rezolvarea problemei) in cazul inteligentei artificiale se cauta o adaptare a modului de rezolvare a problemelor de catre creierul uman (modul natural) la modul de rezolvare al calculatorului.

Inteligenta este o caracteristica a oricarei fiinte sau sistem si depinde de modul cum acestea prelucreaza informatia.

Inteligenta artificiala este o replica a celei naturale, avand un anumit nivel de implementare in sistemele tehnice.

Spre deosebire de prelucrarea algoritmica unde se utilizeaza "datele" problemei, prelucrarea inteligenta foloseste ca elemente fundamentale cunostintele, reprezentand corelatiile logice si semantice dintre fapte prin intermediul regulilor de rationament. Rezulta ca aplicatiile specifice inteligentei artificiale sunt mult mai puternic specializate decat cele clasice, deoarece cunostintele depind de domeniul de activitate pe care il definesc, astfel ca nu pot exista aplicatii de inteligenta artificiala utilizabile in toate domeniile.

Din punct de vedere conceptual, inteligenta artificiala se defineste pe baza unor atribute considerate esentiale pentru un sistem inteligent. Dintre acestea se accepta ca atribute generale pentru sistemele inteligente urmatoarele:

autonomie functionala;

autoconservare;

autodiagnoza;

autoorganizare;

capacitate de decizie;

optimalitate;

Sistemele inteligente se considera ca pot fi impartite in urmatoarele categorii:

sisteme care gandesc intr-un mod identic cu omul;

sisteme care gandesc rational;

sisteme care actioneaza asemanator cu omul;

sisteme care actioneaza rational.

Se considera ca gandirea este un proces mental desfasurat in creierul uman, iar inteligenta este o masura a proceselor de gandire.

In masura in care se poate considera ca actiunea este rezultatul unui proces de gandire este evident ca sistemele care actioneaza inteligent reprezinta o clasa mai cuprinzatoare, care le include si pe cele care gandesc.

Conventional s-au stabilit mai multe niveluri sau grade de inteligenta care caracterizeaza sistemele inteligente:

primul nivel (minim) presupune capacitatea sistemului de a recunoaste mediul in care evolueaza, de a elabora decizii si de a executa comenzi;

al doilea nivel consta in recunosterea evenimentelor complexe sau a obietelor (formelor), reprezentarea acestora in modele (baze de cunostinte) si elaborarea strategiilor de actiune;

al treilea nivel (nivelul superior) se refera la capacitatea de perceptie si intelegere, de a alege rational si la abilitatea de a actiona optim in toate circumstantele.

In prezent, nivelul superior corespunde doar fiintelor umane, nefiind inca atins de catre sistemele de calcul.

Din punct de vedere istoric, termenul de inteligenta artificiala a fost utilizat pentru prima data in 1956 de catre cercetatorul american Mc Carthy de la MIT (Massachusetts Institute of Technology) care a elaborat si limbajul LISP. O lunga perioada cercetarea in domeniul inteligentei artificiale a avut mai mult un caracter fundamental si mai putin caracter aplicativ. Aceasta si datorita capacitatii reduse a sistemelor de calcul in ceea ce priveste procesarea cunostintelor complexe.

In anii `60 a fost introdusa utilizarea logicii propozitiilor cu variabile si retelele semantice ca metode de reprezentare a cunostintelor. In anii `70 au fost introduse regulile de productie, programarea logica (a aparut limbajul Prolog) si limbajele orientate pe obiect. Aplicatiile comercializabile in domeniul IA au aparut prin anii `80, in principal Sisteme Expert.

2. Sisteme Expert

Problemele care pot fi rezolvate cu ajutorul aplicatiilor software de inteligenta artificiala apartin unei game largi de domenii, cum sunt: prelucrarea limbajului natural, recunoasterea formelor, robotica, retele neuronale, etc.

Sistemele expert reprezinta o categorie de aplicatii pentru inteligenta artificiala cu cele mai variate implementari.

2.1. Definire si caracteristici

Sistemele expert sunt sisteme de programe care utilizeaza tehnicile specifice inteligentei artificiale pentru a inmagazina cunostintele expertilor umani dintr-un domeniu de activitate bine definit si pentru a le utiliza in rezolvarea altor probleme din acelasi domeniu.

Prelucrarea inteligenta a cunostintelor in scopul rezolvarii problemelor se bazeaza pe rationamentul artificial care imita rationamentul natural, efectuat de creierul uman. In orice domeniu de activitate exista probleme complexe, cu grad ridicat de dificultate, care pot fi rezolvate doar de catre experti umani, formati ca specialisti in urma unei vaste experiente in domeniul respectiv.

Deoarece un expert uman intr-un anumit domeniu de activitate se formeaza intr-o perioada lunga de timp, cu cheltuieli si eforturi substantiale, pastrarea si multiplicarea experientei acestora cu ajutorul sistemelor expert devine o necesitate.

Un expert uman recunoaste, defineste si rezolva probleme din domeniul sau de expertiza, avand capacitatea de a depasi aspecte precum: complexitatea, incompletitudinea, inconsistenta, confuzia si aprecierile vagi.

In general, un expert uman actioneaza intr-o clasa de probleme slab structurate, pentru care nu se pot defini algoritmi de rezolvare.

Tinand cont de experienta acumulata in domeniul sau de expertiza, expertul uman trebuie sa treaca problema din sfera expertizei in sfera cunostintelor comune de specialitate, adica sa aduca probleme la stadiul in care lucrurile sunt cat mai simple, complete, precise, consistente si clare [ ].

Un sistem expert care incearca sa imite expertul uman, trebuie sa posede urmatoarele caracteristici:

cunostintele utilizate sunt independente de mecanismul de rationament utilizat; acestea se introduc in sistem pe masura achizitionarii lor, fara a respecta o anumita ordine; cunostintele nu depind unele de altele, iar modificarea unui element nu influenteaza modul de rationament.

cunostintele folosite de un sistem expert sunt in general de natura simbolica spre deosebire de programarea clasica ce utilizeaza in principal date numerice;

sistemul expert utilizeaza cunostinte dintr-un anumit domeniu, avand posibilitatea sa ofere solutii pentru probleme diferite din domeniul respectiv, in timp ce in programarea clasica un program rezolva o singura categorie de probleme;

mecanismul de rationament impune abordarea declarativa a problemelor prin specificarea cunostintelor care vor fi exploatate, spre deosebire de programarea clasica in care se precizeaza explicit operatiile de prelucrare efectuate asupra datelor;

sistemul expert trebuie sa fie capabil sa explice rationamentele efectuate si sa argumenteze solutiile obtinute intr-un mod asemanator expertului uman;

sistemele expert trebuie sa manevreze un volum mare de cunostinte din care sunt inexacte si incomplete.

Sistemele expert se utilizeaza in domenii in care informatiile sunt preponderent calitative (educatie, medicina, juridic, politic), astfel ca sunt greu de transpus in algoritmi pentru programarea clasica. Astazi, sistemele expert au inceput sa fie utilizate si in domenii mai bine formalizate pentru anumite activitati care se pot realiza mai usor si mai precis prin prelucrare simbolica (proiectare asistata de calculator, sisteme informatice de mediu, etc).

Sistemele expert pot fi utilizate ca sisteme independente sau pot fi integrate ca subsisteme in sisteme informatice mai mari.

Sistemele expert se adreseaza unei game extrem de largi de domenii, cum sunt:

sistemele expert pentru diagnosticare (medicala sau a sistemelor tehnice);

sistemele expert pentru reparatii;

sistemele expert pentru instruire;

sistemele expert pentru interpretare/analiza;

sistemele expert pentru prognoza;

sistemele expert pentru proiectare si planificare;

sistemele expert pentru monitorizare si control;

sistemele expert pentru asistarea deciziilor;

Dintre acestea, sistemele expert pentru asistarea deciziilor, numite si SIAD (Sistem Interactiv pentru Asistarea Deciziilor), reprezinta o categorie de sisteme expert care pot fi integrate mai usor din punct de vedere functional.

Un SIAD este un sistem informatic ce utilizeaza cunostintele dintr-un anumit domeniu de activitate pentru a ajuta decidentul in rezolvarea problemelor slab structurate (greu de algoritmizat si programat).

Elementele prin care se caracterizeaza un SIAD sunt:

interactivitate la nivel inalt;

cautarea solutiilor presupune actiuni complexe: manipulare de date, cautare de informatii, modelare, calcule;

procedurile utilizate la un moment dat nu sunt cunoscute apriori, acestea depinzand de datele initiale ale problemei sau de rezultatele intermediare obtinute;

se folosesc multe criterii de decizie care depind de utilizatori si pot fi uneori conflictuale;

experienta, intuitia, judecatile si preferintele decidentului sunt esentiale;

timpul de raspuns pentru obtinerea unei solutii satisfacatoare este limitat.

2.2. Structura unui sistem expert

Un sistem expert poate avea o structura mai mult sau mai putin complexa, in functie de scopul pentru care a fost realizat si de modul de utilizare (independent sau integrat in alt sistem informatic).

Indiferent insa de complexitatea lui, orice sistem expert are in componenta sa urmatoarele elemente fundamentale: baza de cunostinte, motorul de inferente si modulul explicativ.

Structura unui sistem expert este prezentata in figura urmatoare.


Fig. 1. Structura unui Sistem Expert

Baza de cunostinte contine ansamblul cunostintelor de specialitate dintr-un anumit domeniu, utilizate de catre sistemul expert.

O baza de cunostinte contine cunostintele reprezentate printr-o metoda formalizata, astfel incat aceste cunostinte sa poata fi prelucrate cu ajutorul calculatorului. Exista mai multe metode de reprezentare a cunostintelor, cele mai importante pentru un sistem expert fiind urmatoarele: reguli de productie, retele semantice, cadre si obiecte.

Crearea unei baze de cunostinte se realizeaza prin preluarea cunostintelor de specialitate de la expertul uman de catre inginerul de cunostinte (sau cognitician), modelarea lor in conformitate cu cerintele metodei de reprezentare, introducerea lor in baza si validarea acestora. Acest process se desfasoara iterative si presupune multe teste pe parcursul carora chiar expertul uman poate fi pus in dificultate pentru a-si argumenta optiunile.

Cunostintele din baza de cunostinte refleta la modul general obiecte ale lumii reale si relatiile existente intre acestea.

Spre deosebire de baza de cunostinte, baza de fapte contine formularea unei probleme concrete care urmeaza sa fie rezolvata precum si faptele rezultate in urma rationamentelor efectuate de motorul de inferente.

Cunostintele descriu rezolvarea unei clase de probleme, iar faptele descriu asertiuni de instantiere a unei probleme concrete din clasa respectiva.

Elementul care realizeaza propriu-zis rationamentul este motorul de inferente. Acesta, pornind de la faptele ce constituie elemente de intrare pentru problema data activeaza cunostintele corespunzatoare din baza de cunostinte construind rationamente care conduc la fapte noi acestea constituind in final solutia cautata.

Practic, motorul de inferente este un program ce implementeaza diversi algoritmi de rationament si care funtioneaza independent de continutul unei anumite baze de cunostinte. Rezulta ca, acelasi motor de inferente poate fi folosit pentru a construi o multitudine de sisteme expert.

Modulul de achizitie a cunostintelor transforma cunostintele din forma prezentata de cognitician in forma sub care vor fi memorate pe un suport de memorie. De asemenea, modulul de achizitie de cunostinte este si o interfata de comunicare cu baze de date sau cu alte sisteme de programe.

Interfata cu utilizatorul permite dialogul utilizatorului cu sistemul expert in sensul specificarii datelor de intrare si al prezentarii rezultatelor problemei de rezolvat.

Modulul explicativ are rolul de a prezenta sub o forma cat mai accesibila (de preferat in limbaj natural) justificarea rationamentelor efectuate de motorul de inferente si totodata intrebarile la care trebuie sa raspunda utilizatorul.

Am vazut ca domeniile in care se pot utilize sisteme expert sunt foarte variate. Primele sisteme expert au fost realizate in domeniul diagnosticului medical (Mycin) si al sintezei substantelor chimice (Dendral). Ulterior, sistemele expert au fost utilizate in diagnosticarea sistemelor de calcul complexe.

In domeniul economic, sistemele expert se pot utiliza la diverse activitati, cum sunt: analiza si planificarea financiara a firmei, gestiunea trezoreriei, alegerea variantei optime de finantare a investitiilor etc.

Un domeniu in care ponderea sistemelor expert aflate in exploatare este insemnata este cel bancar. Printre cele mai utilizate sisteme expert in acest domeniu sunt cele pentru recomandari in plasamentul creditelor tinand seama de factori cum sunt: profilul de activitate al clientului, patrimonial acestuia, portofoliul de clienti, lichiditatile acestuia etc. Conform [ ], in S.U.A. un asemenea sistem expert a fost utilizat cu bune rezultate in depistarea fraudelor si a cererilor de credit suspecte. Important de retinut este faptul ca, lucrand in paralel, solutiile date de sistemul expert au fost identice in proportie de 95 % cu solutiile oferite de experti umani.

O alta aplicatie a sistemelor expert in domeniul economic este in cadrul burselor de marfuri si de valori.

3. Reprezentarea cunostintelor

Pentru ca un sistem expert sa poata functiona trebuie ca baza de cunostinte sa fie populata corespunzator. Calitatea solutiilor furnizate de catre un sistem expert depind direct de calitatea si volumul cunostintelor de care dispune sistemul.

Pentru ca un calculator sa poata manevra cunostinte acestea trebuie sa fie stocate intr-o forma unitara pe care calculatorul sa o poata intelege si prelucra. Acest lucru a condus la necesitatea elaborarii unor metode formale pentru reprezentarea cunostintelor.

Cunoasterea are la baza trei concepte fundamentale si anume: faptele, care sunt informatii primare ce descriu elementele domeniului considerat, regulile care descriu modul in care pot fi utilizate faptele si strategiile de ratinament sau metodele euristice de rationament care exprima modul in care se pot folosi regulile.

Crearea unui formalism de reprezentare si integrarea cunostintelor in acest formalism genereaza o serie de probleme specifice care tin de diferentele mari ce apar in statutut informatiilor prelucrate. Acestea pot fi statice sau dinamice (in sensul ca nu pot sau pot fi modificate), certe sau incerte, valide sau perimate etc.

Pentru un anumit domeniu, cunostintele specifice sunt, in majoritatea cazurilor, incomplete, deoarece fie sunt omise de catre expertul uman fie datorita faptului ca sunt dificil de transmis sau de formulat. Aceasta inseamna ca rationamentul unui sistem expert se desfasoara in conditii de incertitudine.

Exista multiple forme de reprezentare a cunostintelor in continuare fiind prezentate doua tipuri de metode: reprezentari bazate pe logica formala si reprezentari bazate pe partajarea proprietatilor (numite si reprezentari succesorale).

3.1. Reprezentarea cunostintelor prin reguli de productie

Logica formala a aparut din necesitatea de a modela rationamentul uman dar este utila si pentru reprezentarea cunostintelor deoarece formalismul logic este lipsit de ambiguitati si permite descrierea realitatii prin formulari concise.

In logica formala, cunostintele sunt reprezentate sub forma de propozitii, predicate si expresii de calcul logic. Metodele de reprezentare folosesc pentru acestea regulile de productie, cu sau fara variabile.

Propozitiile reprezinta, in logica formala, asertiuni (enunturi) care pot fi doar adevarate sau false.

Spre exemplu:

Fiecare om are un nume.

Cainele este un animal biped.

reprezinta propozitii logice, prima fiind adevarata iar a doua falsa.

Propozitiile de mai sus sunt propozitii elementare deoarece exprima o realitate simpla. Pentru a modela realitati complexe si pentru a se putea efectua rationamente sunt necesare propozitii compuse.

Pentru realizarea de propozitii compuse se folosesc propozitii simple legate cu ajutorul conectorilor logici: SI, SAU si NU (AND, OR, NOT).

Propozitiile compuse pot fi si ele doar adevarate sau doar false.

Determinarea gradului de adevar al unei propozitii compuse se realizeaza pe baza regulilor de compunere specifice fiecarui conector logic in parte.

Astfel:

pentru conectorul SI avem regula: propozitia compusa A SI B (unde A respective B sunt propozitii logice simple) este adevarata numai daca ambele propozitii sunt simultan adevarate, in caz contrar (una adevarata si alta falsa) propozitia compusa este falsa;

pentru conectorul SAU avem regula: propozitia compusa A SAU B este adevarata daca fie A, fie B, fie ambele sunt adevarate si este falsa atunci cand atat A cat si B sunt false;

pentru conectorul NU avem regula: propozitia NU(A) este adevarata atunci cad A este falsa si invers.

Deoarece o propozitie compusa se poate forma prin compunerea mai multor propozitii legate intre ele cu conectori logici si, deoarece aceste propozitii pot fi la randul lor propozitii compuse, trebuie sa existe o ordine in care se vor evalua conectorii respective.

Ordinea in care se evalueaza conectorii logici este urmatoarea: NU, SI, SAU. Ordinea de executare se poate modifica intr-o propozitie compusa cu ajutorul parantezelor.

In afara de conectorii logici, pentru realizarea propozitiilor compuse se mai pot folosi relatii de implicare si echivalenta.

O relatie de implicare este de forma: daca A (este adevarat) atunci (si) B (este adevarat).

Echivalenta are forma urmatoare: A (este adevarat) daca si numai daca B (este adevarat).

Gradul de adevar al relatiei de implicare si al celei de echivalenta se determina cu regula din tabelul de mai jos.

A

B

A SI B

A SAU B

NU A

daca A atunci B

A B

A

A

A

A

F

A

A

A

F

F

A

F

F

F

F

A

F

A

A

A

F

F

F

F

F

A

A

A

O expresie logica ce reprezinta o propozitie elementara sau compusa este numita si formula de calcul propozitional si poate fi definita astfel:

1. O propozitie elementara este o formula

2. Daca A este o formula atunci si NU(A) este tot formula

3. Daca A si B sunt formule atunci expresiile urmatoare sunt formule:

(A SI B)

(A SAU B)

(daca A atunci B)

4. Toate formulele posibile pot fi generate aplicand in mod repetat primele trei reguli.

Regulile de productie constituie o modalitate de reprezentare a cunostintelor bazata pe logica propozitiilor, in care atat faptele cat si regulile pot contine numai entitati invariabile (constante). Deoarece aceasta solutie induce clar o limitare a solutiilor s-a trecut la reprezentarea bazata pe logica predicatelor. In logica predicatelor se utilizeaza entitati generice cum sunt: copil, persoana, cont etc., care asigura un grad ridicat de generalitate pentru modelul de reprezentare a cunostintelor prin reguli de productie.

Un predicat este o propozitie logica de forma:

A este economist.

B este cont de debit.

Aceste formulari sunt generale si se pot particularize prin inlocuirea variabilelor A si B cu valori concrete. De exemplu, daca A="Ionescu" atunci predicatul anterior devine:

Ionescu este economist.

Dar A poate lua si alte valori astfel ca putem vorbi despre reguli de productie cu variabile.

Reprezentarea cunostintelor prin reguli de productie foloseste doua tipuri de structuri: fapte si reguli.

Faptele sunt asertiuni (enunturi) care descriu un anumit aspect al realitatii (un anumit domeniu) si formeaza componente elementare ale cunoasterii. Ansamblul faptelor stocate in sistem formeaza baza de fapte.

Dar faptele singure nu permit deducerea de noi cunostinte astfel ca sunt necesare regulile care sa specifice legaturile dintre fapte de la care se poate porni pentru a se face noi deductii.

Forma generala a unei reguli este urmatoarea:

Daca <premise>

Atunci <concluzie>

unde atat premisele cat si concluzia sunt fapte.

Modul in care se interpreteaza o regula de productie este urmatorul: daca premisele enuntate in regula sunt adevarate, adica daca faptele care le compun sunt verificate in baza de fapte, atunci si faptul sau faptele cuprinse in concluzie sunt adevarate si pot fi adaugate la baza de fapte.

In functie de domeniul de utilizare al sistemului expert si de conditiile de exploatare,faptele fi introduse in sistemul expert intr-unul din urmatoarele moduri :

prin tastare de la terminal, inaintea declansarii procesului de rationament;

in cursul procesului de rationament, prin chestionarea utilizatorului ;

prin consultarea unei baze de date proprii sau apartinand altor aplicatii software ;

prin preluare directa de la diversi senzori.

De remarcat ca faptele se pot clasifica in doua categorii. O prima categorie este formata din faptele care descriu concepte generale, trasaturi sau configuratii structurale definitorii pentru un anumit domeniu al cunoasterii. Acestea raman, de regula neschimbate sau se modifica foarte rar.

O a doua categorie este formata din faptele care descriu o anumita problema particulara care trebuie rezolvata. Acestea depind strict de problema definita si se modifica odata cu aceasta.

Spunem ca faptele din prima categorie sunt permanente si sunt stocate in baza de fapte. Ele descriu fondul general, comun, de cunostinte aferente domeniului de expertiza al sistemului expert.

Faptele din a doua categorie spunem ca sunt temporare si sunt stocate in spatiul de lucru al sistemului expert. Acelasi statut il au si faptele noi, deduse in procesul de rationament prin activarea regulilor. Ele constituie cunostinte aferente contextului specific al  problemei respective si nu se stocheaza permanent in baza de fapte chiar daca, pe parcursul unei sesiuni de lucru cu sistemul expert, ele pot fi luate in considerare de rationamentele ulterioare aparitiei lor.

Regulile de productie se formeaza conectand impreuna doua sau mai multe fapte prin implicatie logica. Din aceasta perspectiva, structura abstracta a unei reguli este urmatoarea:

DACA faptul-1 este adevarat

si faptul-2 este adevarat

:

:

si faptul-N este adevarat

ATUNCI

faptul-M este adevarat

Regulile care respecta aceasta formulare se numesc deductive deoarece rationamentul care se poate realiza este deductiv, adica din faptele 1, 2, .., N se poate deduce ca faptul M este adevarat.

In acest caz, rationamentul se desfasoara luand in considerare noul fapt pana cand se atinge starea finala in care nici o deductie nu mai este posibila.

Dar regula prezentata mai sus poate fi formulata si invers.

faptul-M este adevarat

DACA faptul-1 este adevarat

si faptul-2 este adevarat

:

si faptul-N este adevarat

In acest caz procesul de rationament are ca punct de pornire concluzia urmatoare : pentru a stabili daca faptul-M (care devine scopul procesului) este adevarat trebuie stabilit daca faptele 1, 2, ..,N sunt adevarate. Fiecare dintre aceste fapte devine un scop nou pentru un nou proces de rationament, astfel ca se vor declansa N procese similare pana la confirmarea sau infirmarea lor si deci si a scopului initial.

Daca, in cazul regulilor deductive, procesul de rationament consta dintr-o secventa de deuctii succesive de informatii, in acest caz el este centrat pe stabilirea (sau pe confirmarea) unui scop. In concluzie, regulile de forma :

concluzie

DACA

premise

se numesc reguli inductive.

In continuare este prezentat un exemplu de regula exprimata atat deductiv cat si inductiv.

DACA persoana_2 este tatal lui Persoana_1

SI persoana _3 este tatal lui Persona_2

ATUNCI Persoana_3 este bunicul lui Persoana_1

este o regula deductiva. Forma ei inductiva este prezentata in continuare:

Persoana_3 este bunicul lui Persoana_1

DACA Persoana_2 este tatal lui Persoana_1

SI Persoana_3 este tatal lui Persoana_2

3.2. Metareguli

Regulile prezentate pana acum specifica modul in care pt fi utilizate anumite fapte pentru a deduce sau a stabili alte fapte. Dar intr-un sistem expert regulile se pot utiliza si pentru a dirija si control modul in care se utilizeaza alte reguli.

Regulile de acest tip, al caror rol este de a gestiona modul in care actioneaza alte reguli, se numesc metareguli. Cu ajutorul lor se pot implementa intr-un sistem expert diferite strategii de rationament. Cunostintele pe care le reprezinta constituie si ele metacunostinte.

In continuare este prezentat un exemplu de metaregula:

R1. DACA operatie = "ridicare din cont"

SI

Sold ≤ 50.000

ATUNCI declanseaza R2

ALTFEL declanseaza R3

R2. DACAoperatie = "ridicare din cont"

ATUNCI Mesaj_avertizare "Soldul s-a redus periculos"

R3. DACA sold >

SI

Suma_ridicata_din_cont≤3.000

ATUNCI Sold = Sold- Suma_ ridicata_din_cont

3.3. Reguli si fapte incerte

Regulile si faptele prezentate pana acum se presupune ca exprima cunostinte in totalitate certe.

In practica sunt greu de gasit asemenea situatii ideale. Marea majoritate a analizelor si deciziilor implica, inevitabil, un anumit grad de incertitudine. Mai mult decat atat, insasi specificul domeniului de activitate reflectat in baza de cunostinte a sistemului expert influenteaza gradul de certitudine al acestor cunostinte deoarece exista domenii in care opereaza, in mod implicit, cu un grad mai mare de incertitudine decat in altele. Spre exemplu, faptele si regulile necesare pentru diagnosticarea unei instalatii industriale se deosebesc foarte mult, acest punct de vedere, de cele care pot fi utilizate pentru gestiunea unui portofoliu de actiuni.

Pe langa nivelul de certitudine sau incertitudine specific unui anumit domeniu de activitate practica intr-un sistem expert mai poate apare un grad particular de incertitudine datorat absentei unor informatii (informatie incompleta).

Cea mai simpla solutie, care nu este obligatoriu si cea mai nesatisfacatoare, consta in a introduce incertitudinea sau aproximatia chiar in exprimarea cunostintelor. Spre exemplu, se poate apela la formulari de tipul: " cresterea preturilor este moderata " sau " cresterea preturilor este probabila". O regula construita in aceasta maniera poate fi, spre exemplu:

Daca  incasarile probabile sunt mediocre

si  nivelul investitiilor este ridicat

atunci  rentabilitatea fondurilor proprii este scazuta

Solutiile de acest tip sunt insa inacceptabile sau insuficiente in multe cazuri, ceea ce a facut sa se caute si alte modalitati de reprezentare si tratare a incertitudinii. Una dintre tehnicile cele mai folosite in acest domeniu consta in a atribui elementelor din baza de cunostinte - fapte sau reguli - un coeficient destinat sa exprime gradul de siguranta al acestora, denumit coeficient de certitudine (QC). Acest coeficient poate lua valori cuprinse intre 0 si 100. Zero corespund evalorii fals, iar 100 corespunde valorii adevarat din logica binara.Daca, spre exemplu, QC al unui fapt este 60, inseamna ca faptul respectiv este cert in proportie de 60%. Coeficientii de certitudine nu sunt probabilitati nici din punct de vedere conceptual si nici matematic si , in consecinta, gradul de certitudine al tuturor elementelor intr-un context dat nu trebuie sa dea o suma egala cu 100.

Tratarea incertitudinii presupune, in aceste conditii, atat evaluarea gradului de incertitudine al faptelor de baza, cat si combinarea valorilor QC pentru evaluarea gradului de incertitudine al faptelor compuse si a celor deduse prin aplicarea regulilor.

Coeficientii de certitudine ai faptelor compuse se determina, in functie de tipul conectorilor logici, pe baza relatiilor urmatoare:

QC(A sau B) = minim(QC(A), QC(B))

QC(A si B) = maxim(QC(A), QC(B))

QC(nu A) =100-QC(A)

Unde QC(A) si QC(B) desemneaza QC ai faptelor A si B. Spre exemplu, daca QC(Rata inflatiei este ridicata) =80 si QC(Cererea de credite creste) =60, atunci:

QC(Rata inflatiei este ridicata SI Cererea de credite creste) =60

QC(Rata inflatiei este ridicata

SAU Cererea de credite creste) =80

QC(NU Rata inflatiei este ridicata) =20

Regulile pot avea la randul lor coeficenti de certitudine, care exprima cat de certa este concluzia dedusa pe baza premiselor lor. Spre exemplu, in regula urmatoare:

R31. QC = 75

Daca  rata inflatiei este ridicata

si cererea de credite creste

atunci rata dobanzii creste

gradul de certitudine al concluziei "rata dobanzii creste" deduse din cele doua premise este de 75%.

Presupunand cazul general:

R.       QC =c

Daca  premise

atunci concluzie

si avand in vedere ca si premisele pot avea la radul lor QC, coeficentul de certitudine al concluziei este stabilit cu relatia:

QC(concluzie)=QC(premise) x c/100

Pentru exemplul anterior, valorile corespunzatoare sunt:

QC(Rata dobanzii creste)=QC( Rata inflatiei este ridicata)

SI Cererea de credite creste)x75/100

=60x75/100=45

Exista situatii in care aceeasi concluzie poate fi dedusa din mai multe reguli diferite. Pentru a obtine QC al unei asemenea concluzii, este necesar sa se combine coeficientii returnati de fiecare regula care o cuprinde. Presupunand ca QC(R1) si QC(R2) reprezinta coeficentii aceleiasi concluzii deduse prin regulile R1 si R2, atunci coeficientul sau combinat de certitudine se obtine cu relatia:

QC(R1, R2) = QC(R1) +QC(R2)-(QC)R1)xQC(R2)/100)

Coeficientii de certitudine atribuiti regulilor si faptelor influenteaza considerabil rezultatele, asa cum s-a putut constata si din exemplul anterior. Din aceasta cauza, este deosebit de important ca ei sa fie corect evaluati in practica, ceea ce nu este intotdeauna simplu sau evident.

Chiar daca expertul uman recurge la aprecieri de tipul "mai bun" sau "mai sigur" in selectia si formularea concluziilor sale, aceste aprecieri nu primesc, de regula, o expresie numerica. De asemenea, in unele domenii de activitate , insasi ideea de a exprima gradul de certitudine prin coeficienti poate parea total inadecvata. Pentru a ajuta expertul sa depaseasca asemenea dificultati , au fost propuse mai multe tehnici de definire indirecta a coeficientilor de certitudine.


Una dintre acestea consta in fixarea gradului de certitudine a unei cunostinte prin plasarea sa grafica pe o scala ale carei extremitati corespund acestei pozitii, se calculeaza cu usurinta QC corespunzator.

O alta tehnica frecvent folosita consta in a-i care expertului sa dispuna faptele si regulile in ordinea descrescatoare a gradului de incredere pe care-l prezinta. Pozitia ocupata intr-o asemenea enumerare poate fi apoi evaluata numeric sub forma de QC.

4. Etapele unui ciclu de baza al motorului de inferente

Motorul de inferente este inima SE deoarece, utilizand baza de cunostinte, construieste dinamic rationamente alegand regulile ce urmeaza sa fie declansate si stabilind ordinea de inlantuire a acestora. Indiferent de modul de rationament utilizat, ciclul de baza al unui motor de inferente comporta patru etape: selectia, filtrajul, rezolvarea conflictelor si executia propriu-zisa (declansarea regulilor alese)

Selectia extrage din baza de reguli si din baza de fapte elementele care caracterizeaza subdomeniul de rezolvare a problemei, altfel spus, se constituie o partitie a bazei de cunostinte, care va scurta timpul de cautare pentru etapele urmatoare. Aceasta faza este necesara atunci cand baza de cunostinte este destul de mare, incercand sa acopere mai multe domenii ale cunoasterii.

Filtrajul (pattern matcing) consta in compararea premiselor regulilor selectionate anterior cu faptele ce caracterizeaza problema de rezolvat, pentru a determina submultimea regulilor declansabile. Daca nu se obtine nici o regula declansabila, rezulta ca suntem intr-o situatie de esesc, pe care SE trebuie sa o explice sau in care, utilizatorul trebuie sa raspunda la o serie de intrebari pe care i le pune SE in scopul completarii formularii problemei.

Rezolvarea conflictelor este necesara atunci cand din etapa de filtraj au rezultat mai multe reguli declansabile si trebuie aleasa una pentru a fi executata. Printre principalele criterii de alegere care pot fi utilizate in aceasta etapa amintim prima regula din lista, cea mai complexa regula(cel mai mare numar de fapte in premisa) sau cea mai des utilizata.

De calitatea acestei alegeri depind performantele motorului de inferente, care va gasi mai rapid sau mai lent solutia problemei. Este dificil de indicat unul sau altul dintre criterii, deoarece aceasta alegere depinde de contextul in care se gaseste baza de cunostinte in momentul respectiv.

Executia regulii alese consta in adaugarea unuia sau mai multor fapte in baza de fapte. Este posibil , de asemenea, ca in aceata etapa sa se faca apel la proceduri externe(acces la baze de date sau la procesoare de tabele) sau la intrebari puse utilizatorului.

Pentru rezolvarea unei probleme, motorul de inferente executa mai multe cicluri de baza si se opreste in funtie de modul de rationament utilizat.

4.1. Moduri de rationament

Motorul de inferente poate folosi trei moduri de rationament :

deductiv(inainte), dirijat de fapte

inductiv(inapoi), dirijat de scop

mixt

4.1.1. Rationamentul deductiv

In acest mod de rationament, motorul de inferenta pleaca de la fapte si cauta un anumit scop(obiectiv). Etapa de filtraj consta in extragerea din baza de cunostinte a regulilor care au in partea de premise numai fapte aflate in formularea problemei(datele de intrare). In urma etapei de rezolvare a conflictelor, se alege o singura regula(dupa cum s-a vazut in 4.1) care va fi executata . Procesul se reia pana cand se atinge scopul propus sau nu mai exista nici o regula aplicabila(situatie de esec). Etapele acestui mod de rationament pot fi sistematizate in algoritmului urmator:

Introducere fapte initiale si scopul urmarit:

INCEPUT

Etapa de filtraj

Determinarea regulilor declansabile (aplicabile)

ATATA TIMP CAT multimea regulilor declansabile

nu este vida sau scopul nu a fost atins

EXECUTA

Etapa de rezolvare conflicte

Aplicarea regulii alese

Modificarea regulilor declansabile

SF-EXECUTA

SF-ATATA-TIMP

SFARSIT

Pentru exemplificarea acestui mod de rationament, vom considera o baza de cunostinte abstracta formulata din 9 reguli:

R1. Daca B si D si E  atunci F

R2 Daca D si G  atunci A

R3. Daca C si F  atunci A

R4.Daca B  atunci X

R5.Daca D  atunci E

R6. Daca A si X  atunci H

R7. Daca C  atunci D

R8. Daca Xsi C  atunci A

R9. Daca X si B  atunci D

Consideram problema ale carei date de intrare sunt faptele B si C, iar scopul este H. In figura 4.2.a. este prezentat graful de rationament deductiv care foloseste drept criteriu de alegere in etapa de rezolvare a conflictelor prima regula aplicabila in ordinea numerotarii. In figura 4.2 b. Este prezentat graful de rationament deductiv in care se alege regula cea mai complexa(cu numarul cel mai mare de premise), iar in caz de egalitate se ia regula cu numarul cel mai mic. Spre exemplu, regula R8 este preferata lui R7.

Rationamentul deductiv aduce doua mari avantaje , care in unele aplicatii sunt absolut necesare:

da posibilitatea generarii tuturor solutiilor posibile

imbogateste la fiecare ciclu al motorului de inferente baza de fapte, ceea ce simplifica deductiile ulterioare

Totusi, acest mod de rationament prezinta si unele inconveniente, cum ar fi:

baza de fapte trebuie sa contina suficiente fapte initiale, pentru ca sistemul sa poata atinge scopul urmarit (problema trebuie definita in detaliu);

sunt declansate toate regulile aplicabile, chiar daca unele nu prezinta interes

in unele situatii, cand numarul de reguli si de fapte este foarte mare, iar scopul nu poate fi atins , exista riscul ajungerii la o explozie combinatorie privind numarul de cicluri de baza ale motorului de inferente

nu este interactiv in timpul inferentelor: ceea ce face ca in situatiile de esec in care numarul de fapte necunoscute se reduce la unul singur(sau un numar mic), utilizatorul sa nu poata cunoaste aceasta situatie, in care ar putea interveni.

Legat de ultimul incovenient, putem face o clasificare a faptelor vehiculate de un SE in fapte cunoscute si necunoscute. Cele necunoscute sunt de doua tipuri: deductibile (in urma aplicarii unor reguli din baza de cunostinte, acestea figurand in partea de concluzii a regulilor) si interogabile (urmand sa primeasca valori in timpul procesului de deductie). O problema importanta care se cere a fi rezolvata, este aceea de a stabili intr-un anumit moment al procesului de deductie si un anumit context al bazei de cunostinte, care dintre faptele interogabile vor fi solicitate utilizatorului pentru a iesi dintr-un anumit impas la care a ajuns.

4.1.2. Rationamentul inductiv

Rationamentul inductiv pleaca de la un scop( o problema de rezolvat) pe care il descompune in subprobleme pana cand obtine probleme primitive(fapte dovedite sau interogabile). De aceea se spune ca acest mod de rationament este dirijat de scop in sensul gasirii faptelor care prmit atingerea acestuia(invers decat rasionamentul deductiv).

Regulile selectionate sunt acelea care au in partea de concluzii(dreapta) scopul specificat initial. Premisele acestora vor deveni subscopuri ce urmeaza sa fie demonstrate. Acest proces se repeta pana cand toate subscopurile obtinute sunt demonstarte sau in urma etapei de filtraj multimea regulilo declansabile este vida(situatie de esec). Sistematizand aceste etape, obtinem algoritmul urmator.

Introducere scop

INCEPUT

Etapa de filtraj

Determinarea regulilor declansabile(aplicabile)

DACA multimea regulilor declansabile este vida

ATUNCI chestioneaza utilizatorul

ALTFE X ALTFEL

ATATA TIMP CAT scopul nu a fost demonstrat si

exista reguli declansabile

EXECUTA

Etapa de rezolvare conflicte

Etapa de executie a regulii alese

Retine premisele regulii alese (subscopuri)

DACA un scop nu este rezolvat

ATUNCI reia de la inceput

SF- DACA

SF-EXECUTA

SF-ATATA-TIMP

SF-DACA

SFARSIT

4.1.3. Rationamentul mixt

Rationamentul mixt icearca sa realizeze compromisuri intre avantajele si dezavantajele celor douaa moduri de rationament de baza: deductiv si indusctiv. Principiul general al acestui mod de rationament este urmatorul:se fixeaza un scop, se determina faptele deductibile, se aplica mai intai rationamnetl inductiv, care va solicita utilizatorul pentru specificarea vslorilor unor fapte necunoscute, dar interogabile si apoi se aplica rationamentul deductiv pentru a deduce tot ce este posibil s.a.m.d. Sistematizand aceste etape, obtinem algortimul de mai jos.

Parametru de apel: SCOPUL

INCEPUT

ATATA TIMP CAT scopul este necunoscut si este deductibil

EXECUTA retionamnetl inductiv cu eventuale cereri de interogare

EXECUTA rationamentul deductiv

Determina faptele deductibile

SF-ATATA TIMP

Daca scopul este cunoscut

ATUNCI afiseaza scopul

ALTFEL afiseaza ESEC

SF-DACA

SFARSIT





Politica de confidentialitate


creeaza logo.com Copyright © 2024 - Toate drepturile rezervate.
Toate documentele au caracter informativ cu scop educational.