Documente Academic
Documente Profesional
Documente Cultură
Interpretorul de reguli
NU
8utem s definim un sistem e!pert astfel: Un sistem expert este un sistem de producie capabil s reproduc raionamentele unui e!pert ntr9un domeniu precizat. eci, tot ce s9a afirmat la sistemele de producii este ade3rat i pentru sistemele e!pert. 8e tot parcursul acestei lucrrii 3om face referiri numai la sistemele e!pert. 5n literatura de specialitate sistemele e!pert se mai numesc i sisteme bazate pe cunotine, deoarece informaia pe care o dein i o manipuleaz este luat de la un e!pert uman. &lasificarea sistemelor e!pert se face n funcie de modul de reprezentare a cunotinelor. 5n prezent a3em sisteme e!pert n care cunotinele sunt reprezentate prin: reguli, reele semantice, grafuri conceptuale, cadre, scripturi, obiecte. &ea mai des ntlnit metod este metoda de reprezentare a cunotinelor prin reguli.
sinta!a sa definit formal, logica simbolic este mult mai simpl i mai potri3it procesri pe calculator dect limba6ul natural. 5n ciuda simpliti sale logica este destul de e!presi3 pentru a specifica orice care poate fi programat pe calculator. &el mai simplu limba6 de reprezentare a cunotinelor este logica propoziional sau algebra boolean, care a fost dez3oltat de ;eorge Boole n mi6locul secolului ,<. 5n logica propoziional propoziia poate fi reprezentat printr9o singur liter p. 'ceasta este cea mai simpl cale posibil de reprezentare a propoziiei dar nu poate reprezenta toate detaliile. 'ceast pierdere de detalii poate fi un a3anta6 n unele aplicaii unde principala preocupare nu este structura intern din propoziii ci modelul (forma) de implicare dintre ele. e e!emplu principala preocupare a sistemelor de mentenan a ade3rului este cum anume 3a afecta ade3rul sau falsul fiecrei propoziii dintr9o familie 3aloarea celorlalte. 8entru astfel de sisteme absena detaliilor suplimentare face ca logica propoziional s fie o alegere atracti3 de reprezentare. ac structura intern a propoziiei este important, propoziia poate fi mprit n pri mai mici care pot fi reprezentate separat. 'ristotel propune o mprire a propoziiei n dou pri: subiect i predicat. Urmtorul este silogismul pentru raionamentul despre "main#: if orice main are = roi and acia este o main then acia are = roi. 8remisa ma6or "orice main# este subiectul i "are = roi# este predicatul. &onectarea dintre cele dou premise este stabilit prin termenul "main# care este numit "termen de mi6loc#, el apare ca subiect n prima premis i predicat n cea de9a doua. 5mprirea propoziiei n subiect i predicat este un pas important. :a sfritul secolului ,< filozofii ;ottlob %rege i &(arles 7anders 8ierce dez3olt predicate logice sau "predicate calculus# ca i sistem logic ce poate e!prima o cantitate arbitrar de detalii. 'legerea predicatelor determin ce este reprezentati3. &onsiderm urmtoarele dou predicate i nelesul lor n englez: main (!) ! este o main number>f?(eels(!, n) 1umrul de roi al lui ! este n &u aceast alegere a predicatelor, propoziia "main# 3a putea fi reprezentat prin urmtoarea formul: ( x $(ma sin a ( x$ numberOfwheels ( x'&$% 7imbolul reprezint un cuantificator uni3ersal, iar implic (if9t(en). %ormula poate fi citit astfel: >ricare ar !, dac ! este main, atunci ! are = roi. 'li operatori utilizai n practic sunt: cuantificatorul e!istenial@ operatorul de con6uncie ('1 ) operatorul de dis6uncie (>$) A operatorul de negaie (1>0) +!emplu de mai sus sugereaz urmtoarele obser3aii: > propoziie e!primat n logica predicatelor este dificil de citit. ificultatea este cauzat n parte de cantitatea mare de detalii. :ogica singur este un limba6 e!trem de simplu, cu numai 6umtate din simbolurile de baz. &antitatea de detalii depinde de alegerea predicatelor.
este
operatorul de
8redicatele pot fi mprite n dou clase: predicate care depind de domeniu care sunt specifice unei aplicaii particulare, cum ar fi trucB(!), i predicate generale care sunt independente cum ar fi count(x, n), member(x, s), .a. %ormulele logice sunt statice, declaraii nesc(imbtoare, iar logica include reguli de inferen care pot genera formule noi din formule 3ec(i. &ele mai cunoscute reguli de inferen sunt numite: modus ponens modus tollens ei fiecare regul de inferen este simpl puterea lor 3ine din combinarea regulilor i e!ecuia lor repetat. +!ecuia repetat a lui modus ponens este denumit "for?ard c(aining# iar repetarea lui modus tollens este denumit "bacB?ard c(aining#. &onsiderm urmtorul lan de implicaii: p *' * r' r s% 5n procedeele "for?ard c(aining# direciile de implicare a3nd o afirmaie p, prima regul determin o nou afirmaie q, atunci q mpreun cu a doua regul produce r, n final r mpreun cu a treia regul produce s. $egulile n sisteme for?ard c(aining au de regul dou pri: un tipar care este testat cu ce3a din memoria de lucru i o aciune care este e!ecutat dac testarea tiparului reuete. 'cest tip de regul este numit regul de producie. &nd este e!ecutat regula tiparul din stnga este comparat cu anumite combinaii de elemente din memoria de lucru. ac combinaia reuete aciunea din dreapta este e!ecutat pentru a crea, terge sau e!ecuta elemente din memoria de lucru sau pentru a apela programe care s efectueze anumite calcule. "BacB?ard c(aining# merge n direcia opus: '3nd ~s, ultima regul produce ~r, atunci mpreun cu regula din mi6loc produce ~q i ~q mpreun cu prima regul produce ~p. 'ceste te(nici au fost implementate n limba6ul de interogare al bazei de date 7C:, n limba6ul bazat pe logic 8$>:>; i ntr9o 3arietate de programe de inteligen artificial numite sisteme e!pert. 5ncepnd din ,<DE uni3ersitile au folosit ca e!emplu n proiectare sisteme bazate pe reguli i sisteme bazate pe logic. 0ed 7(ortliffe (,<DF) implementeaz bacB?ard c(aining n sistemul GH&/1 pentru diagnosticul infeciilor bacteriene. $. Io?alsBi, G. +mden i '. &olmerauer au colaborat la dez3oltarea logic ntr9un limba6 a procedeului "bacB?ard c(aining# numit 8$>:>;. /deile din toate aceste abordri au influenat programatori de inteligen artificial, care le9au combinat cu cadrele, cu reelele semantice i cu sistemele orientate pe obiecte.
&
$,:
unde "rata inflaiei este ridicat# constituie premisa, iar "preul produselor crete# concluzia. 8resupunnd c baza de fapte conine premisa regulii atunci este dedus concluzia ce reprezint cel de9al doilea fapt. 8remisele unei reguli pot fi formate din mai multe fapte, legate prin conectorii logici i, sau, nu. 7 lum spre e!emplificare dou reguli destinate s e3alueze riscul unui proiect de in3estiii: $2: Dac climatul social este bun i cadrul 6uridic este stabil Atunci cadrul general este acceptabil. $J: Dac riscul de fezabilitate este important i cadrul general este acceptabil Atunci riscul global al proiectului este ridicat.
5n conte!tul reprezentat n figura ,.J9,, pe baza acestor reguli sistemul 3a formula concluzia Kriscul global al proiectului este ridicat.# $egulile sunt nregistrate n baza de reguli. >rdinea n care acestea sunt introduse i stocate n sistem este nesemnificati3. Un sistem e!pert este folosit ns pentru a sugera soluii la probleme concrete, particulare. $olul de a descrie problema de rezol3at re3ine faptelor. &um regulile sunt acti3e pe baza faptelor cunoscute, calitatea procesului de raionament este nemi6locit influenat de msura n care sunt disponibile toate faptele rele3ante. 5n funcie de domeniul concret n care se utilizeaz i de condiiile de e!ploatare, faptele pot fi introduse ntr9un 7+ prin una din urmtoarele ci: 8rin tastare la terminal, naintea declanrii procesului deducti3@ 5n cursul procesului deducti3, prin c(estionarea utilizatorului@ 8rin consultarea unei baze de date proprii sau aparinnd altor aplicaii informatice@ 8rin preluare direct de la di3eri senzori@
Fapte cunoscute Dac climatul social este bun i cadrul ,uridic este stabil atunci cadrul general este acceptabil Climatul social bun Concurena este puternic -iscul de fezabilitate este important Cadrul ,uridic este stabil Dac riscul de fezabilitate este important i cadrul general este acceptabil atunci riscul global al proiectului este ridicat Fapt nou (dedus) Cadrul general este acceptabil
pe ba a logicii predicatelor de ordinul nti, n care utilizarea 3ariabilelor n formularea faptelor i a regulilor este autorizat numai pentru subiecte. pe ba a logicii predicatelor de ordinul doi , n care utilizarea 3ariabilelor este permis att pentru subiecte ct i pentru predicate.
&u ct regulile au o form mai general de e!primat, cu att ele pot acoperi un ansamblu mai mare de situaii concrete. &reterea gradului de generalitate se obine prin utilizarea de 3ariabile n formularea regulilor. 7 considerm urmtoarele reguli: $,: Dac /onescu lucreaz la biroul financiar i 8opescu conduce biroul financiar atunci 8opescu este eful lui /onescu. $2: Dac 8aul lucreaz la biroul financiar i 8opescu conduce biroul financiar atunci 8opescu este eful lui 8aul.
$eformulnd aceste reguli astfel nct n locul persoanelor i al locurilor de munc s apar 3ariabile, se obine o regul general a crei aplicabilitate se e!tinde la toate persoanele, indiferent de compartimentul n care lucreaz. $J: Dac !ersoana"# lucreaz la $oc"munc i !ersoana"% conduce $oc"munc atunci !ersoana"% este eful lui !ersoana"#. 7tructura abstract a unei reguli este: Dac faptul"# (este ade3rat) i faptul"% (este ade3rat) ..... i faptul"m (este ade3rat) atunci faptul"n (este ade3rat). i se poate interpreta astfel: faptele #,%,&...m adevrate implic i faptul n adevrat. /mplicaia logic, ce n acest caz este de forma : dac ! atunci ' (8N*C) poate fi e!primat i ntr9o alt modalitate, ec(i3alent: ' dac !. 8rin aplicarea ei, se obin reguli a cror structur este: faptul"n (este ade3rat) Dac faptul"# (este ade3rat) i faptul"% (este ade3rat) ..... i faptul"m (este ade3rat). ac din punct de 3edere logic aceste dou formulri sunt ec(i3alente, ele sugereaz moduri diferite de utilizare ntr9un 7+. 'stfel, n primul caz, din faptele ,,2,J...m ade3rate, sistemul poate deduce c i faptul n este ade3rat. :und n considerare acest nou fapt, procesul poate fi reluat, pn la atingerea unei stri finale n care nici o nou deducie nu mai este posibil. 5n consecin, regulile de forma: Dac premise atunci conclu ie constituie reguli deductive. 5n cel de9al doilea caz, procesul are ca punct de pornire concluzia: pentru a stabili faptul"n, care de3ine scopul procesului, trebuie stabilite faptele ,,2,...m.
%iecare dintre acestea de3ine un nou scop pentru a crui stabilire se 3or declana noi procese similare, pn la confirmarea sau infirmarea lor i deci, i a scopului iniial. $egulile de forma: conclu ie dac premise constituie reguli inductive. 7pre e!emplu: Dac !ersoana"# lucreaz la $oc"munc i !ersoana"% conduce $oc"munc atunci !ersoana"% este eful lui !ersoana"#. constituie o regul deducti3. %orma ei inducti3 este: !ersoana"% este eful lui !ersoana"#. Dac !ersoana"# lucreaz la $oc"munc i !ersoana"% conduce $oc"munc
!. Funcionarea sistemelor expert bazate pe reguli 2.1. Etapele unui ciclu de baz al motorului de inferene
Gotorul de inferene numit i interpretorul de reguli este inima sistemului e!pert, deoarece utiliznd baza de cunotine, construiete dinamic raionamente alegnd regulile ce urmeaz s fie declanate i stabilind ordinea de nlnuire a acestora. /ndiferent de modul de raionament utilizat ciclul de baz al unui motor de inferene const n patru etape: selecia, filtra6ul, rezol3area conflictelor i e!ecuia propriu9zis (declanarea regulilor alese).
BA1A D2 -23U4I
BA1A D2 5A" 2
S242C6IA
-eguli posibile
5apte selecionate
(elecia e!trage din baza de reguli i din baza de fapte elementele care caracterizeaz subdomeniul de rezol3are a problemei. 'ceast faz este necesar atunci cnd baza de cunotine este destul de mare, ncercnd s acopere mai multe domenii ale cunoaterii. )iltrarea (pattern matc(ing) const n compararea premiselor regulilor selecionate anterior cu faptele ce caracterizeaz problema de rezol3at, pentru a determina submulimea regulilor aplicabile (declanabile). 5n urma acestei etape pot rezulta una, mai multe, sau nici o regul aplicabil. ac nu se obine nici o regul
aplicabil, rezult c suntem ntr9o situaie de eec, pe care 7+ trebuie s o e!plice sau n care, utilizatorul trebuie s rspund la o serie de ntrebri pe care i le pune 7+ n scopul completrii formulrii problemei. *e olvarea conflictelor este necesar atunci cnd din etapa de filtrare au rezultat mai multe reguli aplicabile i trebuie aleas una pentru a fi e!ecutat. 8rintre principalele criterii de alegere care pot fi utilizate n aceast etap amintim: prima regul din list, cea mai comple! regul (cel mai mare numr de fapte n premis) sau cea mai des utilizat. e aceast alegere depinde performana motorului de inferene, care 3a gsi mai rapid sau mai lent soluia problemei. +ste dificil de indicat unul sau altul dintre criterii deoarece aceast alegere depinde de conte!tul n care se gsete baza de cunotine n momentul respecti3. +xecuia regulii alese const n adugarea unuia sau mai multor fapte n baza de fapte. +ste posibil, de asemenea, ca n aceast etap s se fac apel la proceduri e!terne sau la ntrebri puse utilizatorului. 8entru rezol3area unei probleme, motorul de inferene e!ecut mai multe cicluri de baz i se oprete n funcie de modul de raionament utilizat.
1:
8entru e!emplificarea acestui raionament, 3om considera o baz de cunotine abstract format din < reguli: $,: Dac B i i + atunci % $2: Dac i ; atunci ' $J: Dac & i % atunci ' $=: Dac B atunci M $Q: Dac atunci + $F: Dac ' i M atunci P $D: Dac & atunci $R: Dac M i & atunci ' $<: Dac M i B atunci &onsiderm o problem ale crei date de intrare sunt faptele B i & iar scopul este P.
B'C -/ -9 -0 -9 -0 -9 -0 -9 -0 6 inferene -9 -0 -& B'C' 8 -/ B'C' 8' D -+ B'C' 8' D'2 -1 B'C' 8' D' 2' 5 -) B'C' 8' D' 2' 5'A -. B'C' 8' D' 2' 5'A' ;
Fig. !.!-)
5n figura 2.29, este prezentat graful de raionament deducti3 care folosete drept criteriu de alegere n etapa de rezol3are a conflictelor prima regul aplicabil n ordinea numerotrii.
11
B' C -/ -& B' C' 8 -/ -9 -/ -0 B' C' 8' A -. B' C' 8' A' ; -9 3 inferene
Fig. !.!-*
5n figura 2.292 este prezentat graful de raionament deducti3 n care se alege regula cea mai comple! (cu numrul cel mai mare de premise), iar n caz de egalitate se ia regula cu numrul cel mai mic. 7pre e!emplu, regula $R este preferat lui $D deoarece are dou premise, iar $D are una. 'rcele ntrerupte din figurile 2.29, i 2.292 corespund regulilor aplicabile ale cror premise se gsesc n baza de fapte, dar care nu au fost alese pentru e!ecuie (rezultatul etapei de filtrare). 'rcele continue corespund regulilor alese pentru e!ecuie. 7e obser3 de asemenea c n dreptung(iuri cum se mbogete baza de fapte dup fiecare ciclu de baz al motorului de inferene. >prirea algoritmului are loc n momentul n care n baza de fapte apare scopul urmrit P. &riteriul de alegere utilizat n etapa de rezol3are a conflictelor influeneaz performanele motorului de inferene, F inferene n figura 2.29, i J inferene n figura 2.292. $aionamentul deducti3 are dou mari a3anta6e, care n unele aplicaii sunt absolut necesare: d posibilitatea generrii tuturor soluiilor posibile@ mbogete la fiecare ciclu al motorului de inferene baza de fapte, ceea ce simplific deduciile ulterioare. 0otui acest mod de raionament prezint i unele incon3eniente, cum ar fi: baza de fapte trebuie s conin suficiente fapte iniiale pentru ca sistemul s poat atinge scopul urmrit (problema trebuie definit n detaliu)@ sunt declanate toate regulile aplicabile, c(iar dac unele nu prezint interes@ n unele situaii , cnd numrul de reguli i de fapte este foarte mare, iar scopul nu poate fi atins, e!ist riscul a6ungerii la o e!plozie combinatorie pri3ind numrul de cicluri de baz ale motorului de inferen@ nu este interacti3 n timpul inferenelor: ceea ce face ca n situaiile de eec n care numrul de fapte necunoscute se reduce la unul singur sau la un numr mai mic, utilizatorul s nu poat cunoate aceast situaie, n care ar putea inter3eni.
1#
$aionamentul inducti3 pleac de la un scop (o problem de rezol3at) pe care l descompune n subprobleme pn cnd obine probleme primiti3e (fapte do3edite sau interogabile). e aceea se spune c acest mod de raionament este diri6at de scop n sensul gsirii faptelor care permit atingerea acestuia (in3ers dect raionamentul deducti3). $egulile selecionate au n partea de concluzii (dreapta) scopul specificat iniial. 8remisele acestora 3or de3eni subscopuri ce urmeaz s fie demonstrate. 'cest proces se repet pn cnd toate subscopurile obinute sunt demonstrate sau n urma etapei de filtrare mulimea regulilor aplicabile este 3id (situaie de eec). Urmtoarea funcie, scris n pseudo98ascal, sc(ieaz structura unui simplu interpretor de reguli de aplicaie (motor de inferene) care folosete abordarea diri6at de scop. %U1&0/>1 3alidare (M : e!presie) : B>>:+'1@ T'$ rezultat : B>>:+'1@ B+;/1 rezultat: N %':7+@ Ucaut regula de baz pentru a identifica setul regulilor aplicabile 7 care au M pe partea dreapt@ /% 7 este gol 0P+1 ntreab utilizatorul pentru adugarea ctor3a reguli la 7@ OP/:+ (rezultat N %':7+) '1 (7 nu este gol) > B+;/1 selecteaz i scoate o regul $ din 7@ &:N partea de condiie a lui $@ /% & este ade3rat n baza de dat 0P+1 rezultat: N 0$U+ +:7+ /% & este fals n baza de date 0P+1 Unu se face nimic +:7+ /% 3alidare(&) este ade3rat 0P+1 rezultat: N 0$U+ +1 @ 3alidare: N rezultat +1 @ 5n scopul de a porni procesul, utilizatorul ntreab 3aloarea de ade3r a funciei "3alidare (+)#, unde + este o e!presie cum ar fi: #1 este di3izibil cu Q#. 8rimul lucru pe care sistemul l face este identificarea tuturor regulilor care au + n partea dreapt, asumnd substituiile potri3ite. 'cestea sunt regulile care 3or putea stabili 3aloarea de ade3r a lui + i sunt reguli aplicabile n aceast abordare. ac nu e!ist astfel de reguli, sistemul ntreab utilizatorul pentru a da ce3a informaii. ac e!ist mai multe reguli sistemul selecteaz una singur. &nd o regul este selectat, partea sa stng (adic partea de condiie) & este 3erificat n baza de date. ac & este ade3rat n baza de date (cu substituiile corespunztoare), atunci aceasta stabilete ade3rul lui + i procesul se poate termina cu succes. ac & este fals n baza de date, atunci $ nu poate fi folosit la stabilirea ade3rului lui + i alt regul este selectat din 7. ac & este necunoscut (adic nu este nici ade3rat nici fals), atunci este referit ca un "subSscop# i o ncercare de a stabili 3aloarea sa de ade3r este realizat prin apelul recursi3 al funciei de "3alidare# a3nd & ca i parametru. ac "3alidare(&)# este ade3rat, atunci regula $ este aplicabil, 3aloarea de ade3r a lui + este stabilit i procesul se poate termina cu succes. ac 3alidare(&) returneaz fals, atunci este selectat alt regul
1)
din 7. 5n acest fel procesul ruleaz napoi de la scop ncercnd s ating subS scopuri care pot ele nsui s stabileasc scopul. Un e!emplu de raionament inducti3: 8utem ilustra modul de lucru prin urmtorul e!emplu. 8resupunem c a3em un sistem de producie care conine urmtoarele reguli: $,: dac M este di3izibil cu ,2 atunci M este di3izibil cu F $2: dac M este di3izibil cu 2E atunci M este di3izibil cu ,E $J: dac M este di3izibil cu F atunci M este di3izibil cu 2 $=: dac M este di3izibil cu ,E atunci M este di3izibil cu Q 7e presupune, regulile $, pn la $= descrise anterior mpreun cu o baz de date coninnd regulile: 1 este di3izibil cu ,2 1 este di3izibil cu 2E. 7e cere s determinm dac "1 este di3izibil cu Q#. 5ncepem prin apelul funciei "3alidare (1 este di3izibil cu Q)#. +!ecuia apelului funciei ncepe prin cutarea regulii de baz, obinndu9se: 7 N V$=W 'dic, $= este singura regul cu XM este di3izibil cu QY pe partea dreapt. (se noteaz c partea dreapt a lui $= se poate face ec(i3alent la e!presia scopului prin substituia lui M cu 1). 8rocesul continu prin selectarea lui $= i generarea de subscop X1 este di3izibil cu ,EY prin substituirea lui M cu 1 n partea de condiie a lui $=. eoarece X1 este di3izibil cu ,EY nu este nici ade3rat nici fals n baza da date. %uncia "3alidare# este apelat recursi3 cu X1 este di3izibil cu ,EY ca i parametru. 'cest apel recursi3 ncepe cu identificarea urmtorului set al regulilor: 7Y N V$2W $2 este inclus n acest set deoarece are XM este di3izibil cu ,EY pe partea sa dreapt. 8rocesul continu prin selectarea $2 i generarea a noilor subSscopuri X1 este di3izibil cu 2EY. eoarece X1 este di3izibil cu 2EY este ade3rat n baza de date, apelul recursi3 se termin cu "3alidare (1 este di3izibil cu ,E)# N 0$U+. 5n acest fel, apelul iniial a funciei "3alidare# se poate termina acum cu 3aloare ade3rat. $emarcm faptul, c n sistemele diri6ate de scop utilizatorul nu necesit introducerea tuturor datelor iniiale (ca i cazul din e!emplu), dar poate atepta pn cnd sistemul cere date. 5n e!emplu de mai sus, n locul introducerii n baza de date a lui X1 este di3izibil cu ,2Y i X1 este di3izibil cu 2EY, utilizatorul poate atepta pn cnd sistemul deine X1 este di3izibil cu ,2Y sau X1 este di3izibil cu 2EY ca i subS scop. %uncia "3alidareY descris mai sus este simplificat n aa fel nct se presupune c prile de condiie a regulilor const din declaraii unice cum ar fi XM este di3izibil cu ,2Y. 5n multe aplicaii, condiiile 3or fi e!presii compuse cum ar fi urmtoarele reguli:
1&
/% &, '1
%uncia "3alidare# ar trebui s fie modificat pentru astfel de tip de reguli. Godificrile necesare ar fi: (a) 7c(imb "/% & este fals n baza de date# cu " /% (&, este fals) >$ (&2 este fals) >$ (&J este fals)Y. (b) 7c(imb " /% 3alidare (&) este ade3rat# cu " /% (3alidare(&,) este ade3rat) '1 ( 3alidare(&2) este ade3rat) '1 ( 3alidare(&J) este ade3rat)Y. '3anta6ul principal al raionamentului inducti3 este acela c nu caut date i nu aplic reguli care nu sunt rele3ante cu problema dat. Un al a3anta6 al acestui mod de raionament const n primul rnd ntr9un spaiu de memorie intern redus, deoarece arborele de cutare este adesea foarte mic. 5n al doilea rnd, timpul de gsire a soluiilor este mai scurt, deoarece cutarea se face numai pentru scopurile care au o ans de 3erificare. Unul din riscurile raionamentului inducti3 este acela al ciclrii: pentru a demonstra ' trebuie demonstrat B, pentru a demonstra B trebuie demonstrat '.
1+
selecteaz o regul diferit n faze succesi3e@ selecteaz prima regul aplicabil identificat@ regulile au 3alori care sunt folosite pentru a determina care dintre ele s fie selectat. &ac'trac'ing
ac o regul $ este selectat dintr9un set 7 de reguli aplicabile i este folosit (adic n raionamentul deducti3 este e!ecutat i n raionamentul inducti3 este folosit ca un subSscop), atunci una din cele dou situaii s9ar putea ntlni dup una sau mai multe etape: (a) sistemul a6unge la sfritul cutri, adic a6unge la o faz unde nu pot fi identificate noi reguli aplicabile@ (b) o cale este stabilit legnd starea iniial a problemei de scopul su. ac se ntmpl cazul (a), atunci ar fi folositor s se rentoarc la setul 7, probabil refecnd efectul selectrii $, i apoi s se selecteze o alt regul din 7 pentru folosirea acesteia n ncercarea de identificare a ci, procedeu numit bac'tra'ing. ac se ntmpl cazul (b) (i noi suntem interesai numai ntr9o singur soluie), atunci procesul se poate termina cu succes. ei, dac suntem interesai de mai multe soluii, ar fi folositoare posibilitatea de rentoarcere n maniera descris mai sus. e menionat faptul c dac strategia de rezol3are a conflictului se face prin selectarea unei singure reguli dintr9un set de reguli aplicabile i se ndeprteaz restul, atunci nu poate a3ea loc nici un fel de rentoarcere. 5n acest caz, n loc s acioneze pentru a diri6a cutarea n 3ederea gsirii unei soluii, strategia de rezol3are a conflictului determin soluia sau non9soluia problemei.
1.
&utarea n lime prezint dou caracteristici: (a) 0oate nodurile 3or fi parcurse, oferind destule resurse, c(iar dac una din ramuri poate fi infinit. (b) 8rima soluie gsit 3a fi soluia (sau una din soluii) cu cea mai scurt cale. 5n acest fel, cutarea n lime elimin problemele asociate cutrii n adncime. 0otui metoda poate a3ea costuri ridicate: la orice faz, toate nodurile din stnga i toate nodurile deasupra nodului parcurs, trebuiesc memorate.
> abordare euristic diri6at de date poate tra3ersa arborele astfel: 5n primul pas, $, i $2 3or fi singurele reguli aplicabile. eoarece $2 prezint o importan mai mare dect $,, aceasta este aplicat prima. 5n pasul urmtor se pot aplica $, sau $=. eoarece $= prezint o importan mai mare dect $,, aceasta este aplicat prima, etc.
1/
1odurilor care sunt tra3ersate sunt n general pstrate ntrSo list denumit "agend#. 1odul urmtor tra3ersat este ntotdeauna unul asociat cu importana cea mai mare. 7trategia de rezol3are a conflictului, strategia bacBtracBing i ordinea dez3oltrii spaiului problemei determin mpreun strategia de cutare folosit n rezol3area unei probleme. 7trategia de cutare controleaz felul n care problema este rezol3at.
10
19
7tructura este definit n cadrul urmtoarelor seciuni: omains &lauses 8redicates ;oal (opional) 5n seciunea domains se definesc anumite tipuri de date definite de utilizator. 5n 8rolog e!ist urmtoarele domenii standard: 9 integer ntregi definii pe 2 octei@ 9 real real definit pe = octei@ 9 s[mbol corespunztor numelor simbolice care cuprind ca subdomeniu domeniul standard string, delimitat ntre dou perec(i de g(ilimele duble@ 9 c(ar corespunztor domeniului caracter fiind definit de o 3aloare alfanumeric, i este definit ntre dou perec(i de g(ilimele:YaY. 5n seciunea clauses sunt specificate caracteristicile i relaiile e!istente ntre un set de obiecte. escrierea se face utiliznd sinta!a Porn, astfel nct propoziie n limba6 natural : # +ste albastru cerul# se 3a scrie esteLalbastru(cerul). 7tructura predicatelor care inter3in se 3a scrie n seciunea predicates. 8redicatul constituie, n 8rolog, ec(i3alentul structural al instruciunilor din alte limba6e de programare, a3nd ns un mod total diferit de interpretare. %orma sintactic general a unui predicat este: )predicat* \()argument* \,)argument*]^)^ Un predicat poate a3ea mai multe argumente. +!ist dou categorii de predicate: < definite de ctre programator@ < predefinite, care fac parte din limba6, spre e!emplu: read(), ?rite(), assert(), retract() etc. 5n 8rolog numele predicatelor se scrie ntotdeauna cu litere minuscule. 'rgumentele unui predicat sunt de trei tipuri: constante, 3ariabile i structuri. &onstantele reprezint 3alori specificate e!plicit. +!ist dou tipuri de constante: atomii i numerele. 'tomii sunt constante formate dintr9un ir de caractere. 'tomii se noteaz cu litere minuscule i nu pot conine spaii. ac un atom e format din mai multe cu3inte, acestea se pot e3idenia prin utilizarea semnului #L#. Un ir de cu3inte ntre apostrofuri 3a fi tratat drept atom. 0ot n aceast manier se pot scrie cu ma6uscule numele proprii. Tariabilele sunt argumente ale cror coninut se stabilete sau se modific n timpul prelucrrii. 5n 8rolog numele 3ariabilelor trebuie s nceap fie cu o liter ma6uscul, fie cu semnul de subliniere #L#. 7pre e!emplu, n fiecare din clauzele urmtoare, primul argument este o 3ariabil: lucreaza(8ersoana, birouLcontabilitate). cumpara(L, masina). 5n situaiile n care pentru o anumit prelucrare este suficient specificarea e!istenei unei 3ariabile fr s fie necesar utilizarea sa, ea poate fi notat drept variabil anonim. > 3ariabil anonim se simbolizeaz prin caracterul #L#. 7pre e!emplu, n predicatul urmtor primul argument este o 3ariabil anonim: lucreaza (L, locLmunca).
#:
1xemplu: &onstruii o baz de fapte care s specifice informaiile pri3ind numele i 3rsta unor copii: an are R ani. 8aul are ,E ani. /oan are < ani. 'na are R ani. 8redicatul care l utilizm 3a fi de forma: copil(nume, 3rsta) 7ec3ena de program scris n 8rolog 3a fi: domains nume N s[mbol 3arsta N integer predicates copil(nume, 3arsta) clauses copil(dan, R). copil(paul, ,E). copil(ion, <). copil(ana, R). 5ntrebarea: &ine are 3rsta de < ani _, poate fi pus astfel: copil(1ume, <). rezult 1umeN ion ac 3ariabila apare cu liter mare, poart denumirea de 3ariabil liber, n cursul procesului de cutare i se aloc 3alori care pot sau nu reprezenta soluii. 5n momentul primiri unei 3alori 3ariabila de3ine legat eliberarea ei urmnd a fi fcut la tiprirea soluiei. Tariabilele pot fi anonime, caz n care se definesc prin caracterul #L#. 5ntrebarea: +!ist cine3a cu 3rsta de ,E ani_, poate fi pus astfel: copil(L,,E). $ezultat: H+7.
#1
$: 1ume,Ndan 1ume,Nana
1ume2Nana 1ume2Ndan
##
#)
areLobligatii(M, H) :9 debitor(H, M). areLobligatii(M, H) :9 creditor(M,H). care au semnificaia: " dac M este debitorul lui H, atunci M are obligaii fa de H# i respecti3, " dac H este creditorul lui M, atunci M are obligaii fa de H#. areLobligatii(M, adi). $spuns: M N andrei areLobligatii(adi, M). $spuns: M N ion M N dan &um a obinut sistemul aceste rezultate _. +!ist dou reguli care permit stabilirea concluziei "areLobligatii#. 8entru prima cerere, aplicarea celei dinti reguli conduce la eec, deoarece nici o a!iom din baza de fapte nu pote fi pus n coresponden cu premisele. 7e ncearc deci aplicarea celei de a doua regul, ale crei premise pot fi 3erificate dac i se atribuie 3ariabilei M 3aloarea "andrei#. &ea de9 a doua cerere poate fi rezol3at prin aplicarea primei reguli, ale crei premise sunt confirmate de baza de fapte pentru dou 3alori diferite ale 3ariabilei M: "ion# i "dan#. 7 presupunem c dorim s aflm care sunt persoanele cu obligaii, fr s ne intereseze numele celor fa de care acetia au obligaii. %ormularea unei asemenea cereri se poate face utiliznd o 3ariabil anonim: areLobligatii(M, L). $spuns: M N adi M N adi M N paul M N andrei 'cest e!emplu permite s facem o obser3aie important: dei prima regul a oferit dou rezultate, e3aluarea a continuat i pentru cea de9a dou, care coninea la rndul ei concluzia cutat, astfel nct, n final, s9au obinut patru rspunsuri. +3aluarea regulilor i a faptelor se face conform urmtoarelor principii: 7copurile se e3aluaz de la stnga la dreapta, n ordinea n care sunt specificate@ &lauzele sunt e3aluate n ordinea n care apar n program@ &nd un scop satisface partea din stnga (concluzia) a unei reguli, premisele regulii de3in noi scopuri de stabilit i se trece imediat la 3erificarea lor@ Un scop se consider stabilit (confirmat) atunci cnd subscopurile care9i corespund sunt stabilite n totalitate ade3rate, adic e3aluarea lor ca propoziie compus returneaz rezultatul ade3rat.
#&
se amplaseaz un pointer pe a!ioma sau regula n cauz. 'cesta 3a fi utilizat pentru cutarea n continuare a unei noi soluii. 8ot apare dou cazuri: a) Baza de cunotine este format numai din a!iome. %iecare predicat din ntrebare este utilizat de la stnga spre dreapta. 5n momentul potri3iri toate predicatele care urmeaz motenesc sau primesc 3aloarea rezultat din potri3ire. ac la ni3elul unui predicat baza s9a e!pirat complet se ncepe e!plorarea de la nceputul bazei cu predicatul anterior. b) Baza este format din a!iome i reguli. ac unul din predicatele din ntrebare se poate unifica cu o regul, regula de3ine o ntrebare suplimentar care se aplic bazei de fapte care se trateaz similar cazului anterior. 5n urma e!plorrii se obine un spaiu se soluii din acest spaiu urmeaz s fie tiat sau selectat soluia care intereseaz la un moment dat. &um pentru o problem dat pot e!ista mai multe soluii posibile, dup gsirea unei soluii motorul de inferen trebuie s refac n sens in3ers o parte din
Nodul obiectiv (scop) re!obli"atii(#$%)
(1$ are=obligatii(8' >$ ?< debitor (>' 8$% (#$ are=obligatii(8' >$ ?< creditor (8'>$% ()$ debitor(ion' adi$% (&$ debitor (dan' adi$% (+$ creditor(paul' ion$% (.$ creditor(andrei' adi$%
drumul parcurs pentru a putea e!plora celelalte ci posibile de soluionare (bacBtracBing). 5n figura J.D9, unde este reprezentat arborele de cutare corespunztor scopului areLobligatii(M, H), se poate obser3a modul n care motorul de inferen a3anseaz i respecti3, re3ine la puncte de6a e!plorate, n cutarea tuturor soluiilor posibile. Gecanismul de bacBtracBing poate fi blocat n orice punct ales de ctre programator cu a6utorul predicatului cut, simbolizat prin caracterul 2. $ut este un predicat fr argumente. 5n propoziia n care apare interzice re3enirea, blocnd astfel cutarea de noi soluii. 7 modificm, pentru e!emplificare, cele dou reguli anterioare, introducnd acest predicat: areLobligatii(M, H) :9 debitor(H, M), a. areLobligatii(M, H) :9 creditor(M,H), a. i s analizm efectul su asupra modului n care se 3a parcurge arborele de cutare %ig. J.D92.
#+
2 6
4 &
up parcurgerea punctelor , i J, se ntlnete predicatul cut care bloc(eaz re3enirea, astfel nct se 3a obine un singur rezultat, cu toate c, n realitate e!ist patru cupluri de 3alori care stisfac scopul iniial. areLobligaii(M, H). $: M N adi H N ion 8redicatul cut este frec3ent utilizat n elaborarea de programe.
#.