Capitolul 4
Modelul regulilor de productie
Modelul regulilor de productie este deosebit de important in inteligenta artificiala deoarece acest model a jucat un rol semnificativ in evolutia sistemelor bazate pe cunostinte, de la stadiul de produse ale laboratoarelor de cercetare la acela al produselor comerciale, cu aplicabilitate directa. Regulile de productie isi au originea in sistemele de productie propuse de E. Post, in 1943, ca mecanism computational general. In modelul regulilor de productie cunostintele sint reprezentate sub forma unor instructiuni conditionale exprimate intr-un limbaj intuitiv, apropiat de cel natural. Desi din punct de vedere formal, regulile de productie provin din modelul computational propus de Post, forma de exprimare a cunostintelor utilizind reguli precede cu mult aparitia calculatoarelor. Jaynes [1976] descrie o colectie de 20 00030 000 de tablite babiloniene, dintre care aproximativ 20% contin o multime de reguli de productie, numite omenuri, pentru indrumarea activitatii de zi cu zi. Aceste reguli au fost catalogate inca din anul 650 I.C. si aveau o forma asemanatoare celei din sistemele bazate pe reguli din inteligenta artificiala, de exemplu:
"Daca un cal intra in casa unui om si musca acel om, atunci proprietarul casei va muri si casa lui se va prabusi."
"Daca un om calca, din neatentie, o sopirla si o omoara, atunci el va triumfa asupra unui adversar al sau."
Modelul regulilor de productie a fost utilizat in inteligenta artificiala pentru prima oara in sistemele DENDRAL [Buchanan,Feigenbaum,1978;Lindsay,s.a.,1980] si MYCIN [Buchanan, Shortliffe,1984]. Aceste sisteme au fost prezentate pe scurt in Capitolul 1, iar sistemul MYCIN va fi discutat pe larg in Capitolul 7. Sistemele bazate pe reguli de productie au stat la baza dezvoltarii unui numar de sisteme dedicate bazate pe cunostinte, in care sintaxa regulilor era construita astfel incit sa permita exprimarea usoara a cunostintelor unui domeniu particular. Ulterior, din aceste sisteme s-au dezvoltat sisteme bazate pe reguli independente de domeniu, deci sisteme cadru de dezvoltare a sistemelor expert, cum ar fi OPS5 [Cooper,Wogrin,1988], EMYCIN [van Melle,s.a.,1984], sistemele M1 si K1 ale firmei Tecknowledge, sistemul PCPlus al firmei Texas Instruments, si altele.
4.1 Reprezentarea cunostintelor sub forma regulilor de productie
Pina in acest moment, discutia despre modelele de reprezentare a cunostintelor s-a concentrat asupra formalismului logic. Din acest motiv, ca punct de plecare al modelului bazat pe reguli se va folosi logica cu predicate.
In capitolul anterior reprezentarea logica a fost prezentata ca o forma declarativa de reprezentare a cunostintelor. O reprezentare declarativa este o reprezentare in care cunostintele sint specificate prin descrierea lor, fara a indica modul in care ele vor fi utilizate. Pentru a utiliza o reprezentare declarativa, aceasta trebuie completata cu metode care specifica cum vor fi utilizate cunostintele reprezentarii. De exemplu, pentru a rezolva o problema particulara, o multime de asertiuni logice poate fi combinata cu un demonstrator automat de teoreme bazat pe strategia rezolutiei. Exista insa si un alt mod in care asertiunile logice (de o anumita forma) pot fi interpretate, respectiv ca un program si nu ca date ale unui program. In aceasta perspectiva, implicatiile logice definesc cai de rationament, iar formulele atomice reprezinta punctele de oprire ale rationamentului. Aceste cai de rationament definesc posibilele cai de executie ale unui program intr-o maniera apropiata de structura de control traditionala "if-then-else". Cu alte cuvinte, asertiunile logice de o anumita forma pot fi vazute ca o modalitate de reprezentare procedurala. O reprezentare procedurala este o reprezentare in care cunostintele de control necesare rezolvarii problemei sint inglobate in insasi reprezentarea data. Pentru a utiliza reprezentarea procedurala in rezolvarea problemei, trebuie sa existe un interpretor care urmareste specificatiile de control incluse in reprezentare. Limbajul Prolog, prezentat in Capitolul 11, este un exemplu de astfel de abordare, in care forma particulara a asertiunilor este aceea a clauzelor Horn. Limbajele bazate pe reguli de productie sint un alt exemplu de reprezentare procedurala a cunostintelor, cu o forma particulara a asertiunilor logice care va fi prezentata in continuare.
Multe dintre cunostintele problemelor ce trebuie rezolvate cu ajutorul programelor de inteligenta artificiala sint exprimate sub forma de implicatie. Exprimarea acestor cunostinte in logica cu predicate de ordinul I si transformarea formulelor logice in forma clauzala duce uneori la pierderea unor informatii de control pretioase continute in forma directa a implicatiei. De exemplu, forma clauzala este logic echivalenta cu oricare din urmatoarele implicatii: , , , , , etc. Fiecare din aceste implicatii, insa, contine si informatie de control extralogica, specifica implicatiei, informatie care nu apare in forma clauzala. De multe ori este preferabil sa se utilizeze in rezolvarea problemei implicatiile in forma lor originala, sub forma regulilor de productie. Utilizarea implicatiilor sub forma de reguli de productie intr-un sistem de rezolvare a problemelor poate creste eficienta sistemului prin eliminarea multiplicarilor introduse de transformarea implicatiilor in forma clauzala.
Intr-un model de reprezentare bazat pe reguli de productie, cunostintele despre problema sint reprezentate prin doua tipuri de entitati: reguli si fapte. Regulile sint cunostintele reprezentate de implicatii si exprima cunostinte generale despre domeniul problemei de rezolvat. Faptele sint asertiuni unitare si reprezinta cunostintele specifice care descriu un caz particular, i.e. o instanta a problemei de rezolvat.
Regulile de productie sint formate din doua componente: partea stinga a regulii, prescurtat din limba engleza LHS, numita si antecedent, premisa, conditie sau situatie, si partea dreapta a regulii, prescurtat din limba engleza RHS, numita si consecinta, concluzie, actiune sau raspuns. Legatura logica intre partea stinga si partea dreapta a regulii este implicatia, in sensul ca adevarul partii stingi determina adevarul partii drepte a regulii, deci . Pornind de la structura de control decizionala "if-then" comuna limbajelor de programare, cele mai multe limbaje bazate pe reguli folosesc cuvintele cheie if then (uneori when do), in romaneste daca atunci, pentru a marca partea stinga, respectiv partea dreapta a regulii.
Exemple:
R1: daca Coco zboara
si Coco are pene
atunci Coco este pasare.
R2: daca pacientul are temperatura mare
si tipul organismului este gram-pozitiv
si pacientul are gitul uscat
atunci organismul este streptococ
R3: daca masina nu porneste
si farurile nu se aprind
atunci bateria este consumata
sau bornele bateriei nu fac contact
R4: daca temperatura > 95o C
atunci deschide valva de protectie
Semnificatia unei reguli de productie este urmatoarea: daca premisa poate fi satisfacuta intr-un context dat, atunci consecinta poate fi satisfacuta in acel context. Daca partea dreapta a regulii defineste o concluzie, efectul satisfacerii premisei este inferarea acelei concluzii (exemplele R1, R2 si R3), iar daca partea dreapta a regulii defineste o actiune, efectul satisfacerii premisei este executia acelei actiuni (exemplul R4). O inferenta in reprezentarea bazata pe reguli consta in aplicarea unei astfel de reguli. Exista diverse forme sintactice pentru exprimarea regulilor de productie, in functie de limbajul de reprezentare a cunostintelor ales. In general, partea stinga a regulii este o conjunctie de conditii, iar partea dreapta a regulii este o conjunctie sau disjunctie de actiuni sau concluzii. De exemplu:
daca I1 si I2 si I3
atunci C1 si C2
daca I1 si I2 si I3 si I4
atunci C1 sau C2 si C3
Fiecare regula reprezinta o unitate de cunostinte despre un anumit domeniu de expertiza. O multime de reguli poate corespunde unui lant de inferente care duc de la faptele cunoscute initial la concluzii necunoscute, concluzii care reprezinta rezolvarea unei probleme.
Faptele, cealalta forma de reprezentare a cunostintelor in modelul regulilor de productie, au o forma care permite identificarea ipotezelor de satisfacut din reguli. Spre deosebire de reguli, care sint imperative si dinamice, faptele sint statice si inactive. Urmatoarele enunturi sint exemple de fapte posibile intr-o baza de cunostinte:
Coco zboara.
Ilie are temperatura mare.
Tipul organismului o1 este gram-pozitiv.
Masina1 nu porneste.
Se poate observa legatura existenta intre modelul regulilor de productie si logica cu predicate de ordinul I. Regulile R1R3 din exemplele enuntate anterior pot avea urmatoarea formulare logica.
Regula R4 este mai dificil de exprimat in calculul cu predicate deoarece concluzia ei implica o actiune. Din punct de vedere logic, faptele pot fi vazute ca formule atomice; de exemplu faptele anterioare pot fi exprimate in formalismul logic astfel:
Formularea regulilor si a faptelor din exemplele date s-a facut in limbaj natural. Cele mai multe limbaje bazate pe reguli de productie au o sintaxa fixa care, desi apropiata de limbajul natural, defineste un limbaj independent de context. Utilizind o astfel de sintaxa, exemplele de reguli R2R4 vor fi de fapt exprimate intr-un posibil limbaj de reprezentare astfel:
R2': daca Temperatura-Pacient = mare
si Tip-Organism = gram-pozitiv
si GitUscat-Pacient
atunci Identitate-Organism = streptococ
R3': daca NuPorneste-Masina
si NuAprinde-Masina = far
atunci Stare-Baterie = consumata
sau Borne-Baterie = fara-contact
R4': daca
atunci DeschideValva
Se observa ca atit conditiile din partea stinga a regulilor, cit si concluzia (sau actiunile) din partea dreapta a regulilor pot contine entitati echivalente cu variabilele din calculul cu predicate. Unele dintre sistemele care folosesc reprezentarea bazata pe reguli de productie, cum ar fi sistemul MYCIN, permit existenta a doua forme alternative pentru reguli si fapte: o forma apropiata de limbajul natural pentru interfata cu utilizatorul si o forma interna, in care regulile sint exprimate intr-un limbaj apropiat unui limbaj de programare, deci avind o sintaxa fixa.
Multe din sistemele bazate pe reguli extind reprezentarea stricta sub forma de reguli si fapte cu o structurare a cunostintelor referite de acestea. Universul problemei este descris prin obiecte si atributele asociate care le definesc, iar regulile de productie si faptele refera aceste obiecte, atribute si valorile lor. In exemplele de reguli R2'R3' se poate presupune, de exemplu, ca exita obiectul Pacient, cu atributele Temperatura si GitUscat, obiectul Organism cu atributele Tip1 si Identitate, obiectul Masina cu atributele NuPorneste, NuAprinde si obiectul Baterie cu atributele Stare si Borne. Aceasta extindere reprezinta de fapt introducerea in modelul pur al regulilor de productie a unor elemente particulare reprezentarii structurate a cunostintelor, model ce va fi descris in Capitolul 6.
Sintaxa deschisa a limbajelor bazate pe reguli permite proiectantilor mult mai multe libertati decit calculul cu predicate de ordinul I. In plus, pot apare actiuni asociate consecintelor regulilor, actiuni care pot consta fie in executia unor proceduri sau functii externe, fie in comanda sau executia unor actiuni. Modelul regulilor permite, de asemenea, o mare flexibilitate la nivelul structurii de control, asa cum se va vedea in Sectiunea 4.3. Pe linga aspectele mentionate, utilizarea regulilor de productie aduce urmatoarele avantaje din punct de vedere al modelarii cunostintelor in sistem [Hayes-Roth,s.a.,1983]:
separarea cunostintelor generale despre problema de datele specifice unei instante a problemei de rezolvat
partitionarea cunostintelor in unitati de cunostinte independente, facilitind astfel dezvoltarea incrementala a bazei de cunostinte
posibilitatea mentinerii a doua forme de expresie a regulilor: o forma interna sistemului, adecvata procesului de rezolvare si o forma externa, apropiata limbajului natural, pentru interfata utilizatorului cu sistemul.
Dostları ilə paylaş: |