Documente Academic
Documente Profesional
Documente Cultură
Introducere
Inteligenţa artificială (IA) s-a născut în urmă cu aproximativ 50 de ani, ca domeniu ştiinţific
care încearcă construirea de maşini inteligente şi modelizarea inteligenţei umane. Acest domeniu al
stiintei calculatoarelor a evoluat rapid in ultimii ani de la stadiul cercetarilor de laborator la acela al
aplicatiilor practice in diverse domenii de activitate. Inteligenţa artificială a devenit o tehnologie
remarcabilă care oferă soluţii în toate domeniile de activitate.
În ultimii ani, un nou curent ia amploare în inteligenţa artificială şi în ştiinţele cognitive. Este
vorba despre raţionamentul bazat pa cazuri (RBC), subdomeniu ce are drept scop invăţarea şi
raţionarea în inteligenţa artificială.
Raţionamentul bazat pe cazuri poate fi definit ca fiind procesul rezolvării noilor probleme pe
baza soluţiilor unor probleme anterioare similare. S-au adus argumente că raţionamentul bazat pe
cazuri nu reprezintă doar o metodă puternică pentru raţionamentul calculatoarelor, ci şi un
comportament pătrunzător în rezolvarea problemelor umane de zi cu zi. Sau, mult mai radical, s-a
susţinut că orice raţionament este bazat pe experienţe anterioare sau acceptat de alegerea prezentă -
teoria prototipului- explorată în ştiinţa cognitivă umană.
Raţionamentul bazat pe cazuri se bazează pe faptul intuitiv că problemele noi sunt deseori
similare celor întâlnite anterior şi, prin urmare, soluţiile determinate în trecut pot fi folosite în
situaţia actuală. RBC este o tehnologie robustă şi nu necesită obţinerea multor informaţii. În aplicaţii
complexe cum sunt planificarea şi proiectarea nu e suficient să se facă apel la cazurile asemănătoare,
ci acestea trebuie adaptate pentru a forma o nouă soluţie.
Rationamentul bazat pe cazuri este aplicat în probleme de clasificare(de exemplu,
determinarea tipului unui organism în funcţie de atributele observate şi stabilirea necesităţii sau nu a
tratamentului împotriva cancerului, având în vedere cazurile anterioare). RBC poate fi aplicat, de
asemenea, în probleme de proiectare, de exemplu aranjarea optimală a componentelor într-un
cuptor. Cea mai importantă aplicaţie a RBC sunt helpdesk-urile. Operatorul poate introduce
descrierea problemei clientului în sistemul RBC, şi va obţine din baza de date a companiei soluţiile
anterioare care se mulează pe această problemă (de exemplu, clientul poate descrie tipul de
problemă apărută la unul din PC-urile cumpărate de la firma respectivă).
Tehnicile RBC pot fi aplicate unor seturi de date numeroase şi complexe. Datele sunt
considerate cazuri şi pot fi descrise de zeci, chiar sute de atribute. Un atribut va fi scopul căutării şi
RBC va încerca să împartă datele cu acurateţe maximă. Factorii cei mai importanţi în acest tip de
raţionament bazat pe cazuri sunt cantitatea de date disponibile sistemului şi existenţa unor
proprietăţi particulare ale datelor.
1
Scurt istoric
Ideea folosirii raţionamentului bazat pe cazuri a rezultat din studiul de cercetare în domeniul
ştiinţei cognitive al lui Roger Schank şi al studenţilor săi ([Schank and Abelson.1977];
[Schank.1982]; [Kolodner.1983]; [Hammond-1989]). Totul a plecat de la dorinţa de a înţelege cum
oamenii îşi amintesc şi cum le sunt amintite anumite informaţii. Ulterior s-a certificat că oamenii
rezolvă probleme amintindu-şi cum au rezolvat probleme similare în trecut [Watson-1998]. Alte
abordări ale domeniului RBC au fost făcute prin studiul raţionamentului analogic [Gentner- 83], şi
prin teoriile formării conceptului, rezolvării de probleme şi învăţarea din experienţă în cadrul
filozofiei şi psihologiei ([Wittgenstein-53, Tulving-72, Smith-81]). De exemplu, Wittgenstein a
observat că ’conceptele naturale’ (concepte ce fac parte din natură, cum ar fi pasăre, portocaliu,
scaun, maşină, etc) sunt polimorfice. Adică, instanţele lor pot fi clasificate în multe feluri, şi nu este
posibil să se dea o definiţie clasică (în termenii trăsăturilor necesare şi suficiente) pentru astfel de
concepte. O rezolvare a acestei probleme este reprezentarea extensivă a unui concept, definindu-l
prin seturile de instanţe sau cazuri. În RBC principala sursă de cunoştinţe este o memorie în care se
stochează diferite cazuri. Soluţiile pentru diferite probleme sunt obţinute aducând în prim plan
cazurile similare din memorie şi adaptându-le problemei curente. O definiţie clasică a RBC dată de
Riesbeck şi Schank (1989) este următoarea:
Un rezolvitor ce foloseşte raţionamentul bazat pe cazuri rezolvă probleme folosind sau
adaptând soluţiile problemelor mai vechi. .
Primul sistem care s-a putut numi sistem RBC a fost CYRUS, dezvoltat de Janet Kolodner în
1983, la Universitatea Yale. Acest sistem era bazat pe modelul de memorie dinamică a lui Schank şi
pe teoria MOP (Memory Organization Packets) de rezolvare şi învăţare a problemelor [Schank-82].
Practic, era un sistem ce răspundea la întrebări având cunoştinţe despre numeroasele călătorii şi
întâlniri de afaceri ale fostului secretar de stat al US, Cyrus Vance. Modelul de memorie folosit în
acest sistem a stat la baza altor sisteme RBC : MEDIATOR [Simpson-85], PERSUADER [Sycara-
88], CHEF [Hammond-89], JULIA [Hinrichs-92], CASEY [Koton-89].
Un alt set de modele pentru RBC au fost realizate de Bruce Porter şi grupul acestuia la
Universitatea din Texas, Austin în 1986, dezvoltând astfel sistemul PROTOS (s-a pus accent pe
integrarea domeniului general de cunoştinţe şi cazului specific de cunoştinţe într-o structură de
reprezentare unificată). În 1981 Branting a dezvoltat GREBE, o aplicaţie în domeniul dreptului.
Alte sisteme RBC sunt HYPO [Ashley-90], CABARET ( [Skalak-92], sistem bazat pe cazuri
şi pe reguli), CASEY ([Koton-89], o combinaţie de raţionament bazat pe cazuri şi raţionament bazat
pe modele).
În Europa, cercetarea în domeniul RBC a început mai târziu decât în US. Lucrările în acest
domeniu au fost legate de sisteme-expert şi de achiziţionarea cunoaşterii mai mult decât în US.
Printre primele lucrări a fost sistemul MOLTKE pentru diagnostic tehnic complex, realizat de către
Michael Richter, Klaus Dieter Althoff şi alţii la Universitatea din Kaiserslautern. Enric Plaza şi
Ramon Lopez de Mantaras au dezvoltat un sistem de învăţare pentru începători pentru diagnostic
medical bazat pe cazuri (90). Alte sisteme sunt REFINER al lui Sunil Sharma, sistemul IULIAN
pentru revizuirea teoriei, sistemul CREEK (bazat pe cazuri şi domeniul general de cunoştinţe),
proiectul EVENTS.
2
Figura 1 : Sistemul IULIAN
În Japonia, interesul în acest domeniu este orientat spre latura programării paralele în RBC
[Kitano-93].
Studiul RBC este bazat pe două observaţii legate de problemele lumii reale. De aceea merită
să ne amintim şi să refolosim raţionamentul din trecut. Prin urmare, raţionamentul bazat pe cazuri
este o strategie de raţionament eficientă (Leake, 1996).
1. probleme similare tind sa aibă soluţii similare;
similaritatea descrierii similaritatea soluţiilor
problemelor problemelor
2. tipurile de probleme apărute tind să reapară în timp.
Modelul general al unui proces RBC este cunoscut ca ciclul-RBC. Acest ciclu se realizează,
de obicei, în patru paşi (cunoscuţi ca cei patru ’R’) :
1. Redobândirea/ restabilirea : Fiind dată o problemă scop, se redobândesc cazurile relevante
din memorie pentru rezolvarea acesteia. Un caz constă dintr-o problemă, soluţia ei, şi observaţiile
despre cum s-a ajuns la soluţia respectivă. Acest pas începe cu descrierea problemei şi ia sfârşit la
găsirea celei mai bune potriviri cu o soluţie mai veche.
2. Refolosirea soluţiei : Se realizează legătura între soluţia cazului anterior şi problema
curentă. Se identifică diferenţele între cazul trecut şi prezent şi se identifică partea din vechiul caz ce
poate fi transferată noului caz. Acest lucru ar putea implica adaptarea soluţiei pentru a corespunde
noii probleme.
3. Revizuirea soluţiei : Având corespondenţa între soluţia anterioară si situaţia actuală, se
testează noua soluţie în lumea reală (simulare) si, dacă este necesar, se modifică.
4. Reţinerea soluţiei : După ce soluţia a fost adaptată cu succes noii probleme, se stochează
experienţa ca un nou caz în memorie. Aceasta implică faptul că se va decide ce informaţie se va
reţine şi în ce formă şi cum se va indexa cazul pentru o viitoare folosire.
3
Figura 2: Modelul general Case-Based Reasoning (Aamodt and Plaza 1994)
Descrierea unui sistem poate fi făcută din trei perspective : după task-uri, după metode şi
după modelele de cunoştinţe ale domeniului. Task-urile sunt date de scopurile sistemului şi un task
este realizat aplicând una sau mai multe metode. Pentru ca o metodă să poată duce la bun sfârşit un
task, are nevoie de informaţii despre domeniul general al aplicaţiei cât şi despre problema curentă şi
contextul acesteia.
Figura de mai jos prezintă structura de task-uri şi metode : task-urile sunt scrise cu litere
îngroşate, iar metodele cu caractere italice. Legăturile dintre nodurile-task se numesc descompunere
de taskuri (parte a relaţiilor), direcţia legăturii fiind îndreptată în jos. Task-ul din vârf este rezolvarea
problemei şi învăţarea din experienţe, şi metoda cu care se rezolvă task-ul este RBC. Astfel, se
împarte task-ul nivelului superior în cele patru task-uri RBC corespunzătoare proceselor RBC :
redobândirea, refolosirea, revizuirea şi retinerea. Task-ul de redobândire este la rândul său
4
partiţionat în task-urile : identificare, căutare (pentru a găsi un set de cazuri trecute), potrivire
iniţială şi selectare (a celui mai apropiat caz). Task-ul de refolosire este partiţionat în task-urile:
copiere şi adaptare, cel de revizuire este partiţionat în task-urile : evaluare soluţie şi reparare
greşeli, iar task-ul de reţinere este partiţionat în task-urile : integrare, indexare şi extragere.
5
punct de vedere utilizând cazurile precedente. Aşadar, în fiecare tip de sistem RBC un caz poate
reprezenta ceva diferit( cazurile pot reprezenta oameni, obiecte, situaţii, diagnostice, planuri sau
reguli etc.).
În multe aplicaţii practice, cazurile sunt de obicei reprezentate ca două seturi de atribute
nestructurate: perechile de valori care reprezintă problema şi caracteristicile soluţiei găsite.
De exemplu, într -un sistem medical RBC al cărui scop este diagnosticarea pacienţilor, un
caz poate reprezenta întreaga istorie medicală a pacientului sau poate fi limitat la o singură vizită la
doctor. În cea de-a doua situaţie, cazul poate fi reprezentat de un set de simptome şi diagnosticul dat.
Eventual poate include şi o reţetă sau un tratament. În situaţia în care cazul reprezintă o persoană,
este utilizat un model mult mai complex, reţinându-se şi evoluţia pacientului şi schimbarea
simptomelor de la o vizită la alta. Oricum este mai greu să se găsească şi să se utilizeze cazurile în
situaţia în care cazul reprezintă o persoană atunci când, de exemplu, se caută un set particular de
simptome pentru a obţine un diagnostic sau un tratament. Alternativ, dacă un caz este reprezentat de
o simplă vizită la medic, incluzând doar simptomele din acel moment şi diagnosticul pentru aceste
simptome, atunci schimbarea simptomelor pacientului va lipsi, cu toate că aceasta putea fi un indiciu
foarte important în rezolvarea problemelor viitoare.
Selectarea unei scheme potrivite pentru reprezentarea cazurilor este esenţială deoarece
aceasta asigură structura pe baza căreia întregul sistem RBC va fi construit.
Probabil cea mai importantă şi cea mai populară metodă tradiţională de reprezentare a
cazurilor este utilizarea bazelor de date relaţionale. Acest mod de reprezentare este simplu şi
flexibil, fiind adoptat în mare măsură în foarte multe sisteme ce utilizează raţionamentul bazat pe
cazuri. Fiecare obiect( sau caz) este reprezentat de un rând într-o tabelă relaţională, tabelă în care
coloanele sunt utilizate pentru a defini atributele( sau câmpurile) fiecărui obiect. Pornind de la
aceasta, tabela relaţională se poate divide în două mari părţi: o parte reprezentând descrierea
problemei şi o parte reprezentând soluţia. În situaţia în care un caz are legătură( raporturi) cu alte
obiecte sau în situaţia în care un caz poate fi spart în mai multe subcazuri se poate dezvolta o reţea
între tabele. Acest mod de reprezentare reduce redundanţa cazurilor la fel de bine precum valorifică
eficienţa revizuirii cazurilor.
O altă metodă tradiţională de reprezentare a cazurilor este constituită de metoda orientată
obiect. Avantajul acestei metode provine din abilitatea reprezentării cazurilor în mod compact, cât şi
din reutilizarea softului asociat.
O a treia metodă este reprezentată de tehnica bazată pe logica predicatelor. Din punct de
vedere matematic, un predicat înseamnă o relaţie între obiecte. Oricum, în raţionamentul bazat pe
cazuri termenul de predicat este utilizat de obicei pentru a reprezenta o relaţie între o regulă de
producţie şi anumite fapte( IF condiţie THEN acţiune). Prin urmare, putem interpreta un caz ca
fiind, de fapt, o colecţie de fapte şi predicate. Unul dintre principalele avantaje ale utilizării
predicatelor este acela că permite încorporarea multor reguli de producţie, care pot fi foarte eficiente
în anumite părţi ale aplicaţiilor cum ar fi descoperirea greşelilor în cadrul sistemelor pentru
diagnostic. În orice caz, metoda bazată pe logica predicatelor are şi un mare neajuns: recuperarea
informaţiilor din predicate cu scopul de a compara similititudinile între cazuri nu se realizează
întotdeauna atât de uşor, pe când în cadrul celorlalte metode pentru realizarea acestui lucru nu se
depune nici un efort deosebit.
Cu toate că aceste metode prezentate mai sus sunt folositoare reprezentării şi indexării
cazurilor, în foarte multe situaţii practice atunci când specificăm un caz este foarte dificil să
precizăm cu exactitate valorile efective ale caracteristicilor. Această incertitudine poate fi cauzată de
informaţii incomplete, de date care lipsesc, anumite suprapuneri ale datelor sau pur şi simplu
datorită ignoranţei utilizatorului. De aceea, pentru a face cazurile mai expresive în ‘abordarea’
anumitor situaţii au fost introduse anumite tehnici soft de reprezentare a cunoştinţelor.
6
Astefel, în majoritatea cazurilor, reprezentarea cunoştinţelor se realizeaza cu ajutorul
termenilor fuzzy.
Teoria mulţimilor fuzzy este cea mai generală teorie a incompletitudinii formulată până în
prezent. Logica fuzzy oferă posibilitatea de a reprezenta şi raţiona cu cunoştinţe comune, formulate
în mod obişnuit şi de aceea şi-a găsit aplicabilitatea în numeroase domenii. Termenii şi regulile vagi
pot fi reprezentate şi manipulate cu ajutorul calculatorului, caracteristică foarte valoroasă în
domeniul ingineriei bazelor de cunoştinţe, unde cunoştinţele experţilor sunt formulate de obicei în
limbaj obişnuit. Logica fuzzy are o valoare deosebită şi în aplicaţiile de control automat unde este
dificil sau imposibil de dezvoltat un sistem de control tradiţional. Un tip incipient de logică fuzzy a
apărut încă din 1920, propus de matematicianul polonez Jan Lukasiewicz (inventatorul notaţiei
poloneze). Sistemul său permitea extinderea valorii de adevăr a unei propoziţii la toate numerele
reale din intervalul [0,1]. Un număr din acest interval era interpretat drept posibilitatea ca propoziţia
considerată să fie adevărată sau falsă. Aceste cercetări au dus la apariţia teoriei posibilităţii, o
tehnică de raţionament în condiţii de inexactitate. În 1965, Lotfi Zadeh a extins teoria posibilităţii
într-un sistem formal de logică matematică. De asemenea, a adus în discuţie modalităţile de lucru cu
termeni nuanţaţi ai limbajului natural. Aceast instrument de reprezentare şi manipulare a termenilor
nuanţaţi se numeşte logica fuzzy. Logica tradiţională consideră că un obiect poate aparţine sau nu
unei mulţimi. Logica fuzzy permite o interpretare mai flexibilă a noţiunii de apartenenţă. Astfel, mai
multe obiecte pot aparţine unei mulţimi în grade diferite. De exemplu, dacă avem în vedere
mulţimea oamenilor tineri un copil de 10 ani e cu siguranţă tânăr, în timp ce o persoană de 60 de ani
cu siguranţă nu. Dar un om de 30 de ani? Sau de 40? În acest caz, putem afirma că persoana de 30
de ani aparţine mulţimii respective într-o măsură mai mare decât cea de 40.
Fie X universul discursului, cu elemente notate x. O mulţime fuzzy A a universului de discurs
X este caracterizată de o funcţie de apartenenţă μA(x) care asociază fiecărui element x un grad de
apartenenţă la mulţimea A:
μA(x) : X →[0,1]
Pentru a reprezenta o mulţime fuzzy, trebuie să-i definim mai întâi funcţia de apartenenţă. În
acest caz, o mulţime fuzzy A este complet definită de mulţimea tuplelor:
A= {(x, μA(x))/ x є X}
Pe un univers de discurs pot fi definite mai multe submulţimi fuzzy. De exemplu, pentru
universul vârstelor unor persoane, putem defini submulţimile oamenilor tineri, bătrâni sau de vârstă
mijlocie. Aceste submulţimi se pot intersecta (este chiar recomandat acest fapt). Aceeaşi persoană
aparţine submulţimii oamenilor tineri cu un grad de 70%, submulţimii oamenilor de vârstă mijlocie
cu un grad de 90% şi submulţimii oamenilor bătrâni cu un grad de 30%.
Un termen lingvistic este de fapt o expresie în limbaj natural sau un cuvânt care exprimă
imprecizia unui atribut precum venit, vârstă, înălţime, securitate etc. În general, într-o anumită
aplicaţie, numarul de termeni lingvistici pentru fiecare atribut dintr-un caz este egal cu 5: negative
big( NB), negative small( NS), zero( ZE), positive small( PS) şi positive big( PB). Funcţiile de
apartenenţă pot fi exprimate în diverse moduri: trapezoid, Gaussian sau stil clopot. Deocamdată, cel
mai utilizat mod pentru reprezentarea funcţiei de apartenenţă este cel în formă de triunghi. Un
număr fuzzy este în general formulat ca o expresie lingvistică care reflectă apropierea de un număr
real, de exmplu ‘ în jur de 30’. Numerele fuzzy sunt reprezentate cu ajutorul seturilor fuzzy definite
cu ajutorul ecuaţiilor amintite mai sus.
7
Figura 4 – Functii fuzzy de apartenenţă
Indexarea cazurilor se referă la asignarea unor indecşi fiecărui caz pentru comparaţia şi
revizuirea ulterioară. Alegerea indecşilor este importantă pentru activarea revizuirii cazului potrivit
la momentul potrivit. Indecşii trebuie să fie previzibili.Aceasta înseamnă că un index ar trebui să
reflecte importanţa caracteristicilor unui caz şi atributele care influenţează rezultatul şi, în acelaşi
timp, să descrie circumstanţele în care cazul poate fi utilizat pentru o viitoare revizuire. Indecşii ar
trebui să fie suficient de abstracţi pentru a permite revizuirea în toate circumstanţele în care un caz
poate fi folositor, dar nu foarte abstracţi. Când indecşii unui caz sunt prea abstracţi, cazul poate fi
reutilizat în prea multe situaţii sau prea mult efort este necesar pentru a potrivi cazurile.
Indexarea cazurilor se poate realiza făcându-se apel la modelul bayesian sau prin intermediul
reţelelor neuronale sau prin intermediul arborilor de ’aranjare’ ( R-trees, adică range trees). Dintre
acestea se va prezenta în continuare modelul bayesian.
Modelul bayesian se bazează pe formula lui Bayes. În cazul în care mulţimea {A1, A2, …,
An} reprezintă o desfăşurare a evenimentului sigur 1, iar X este un eveniment compatibil cu cel puţin
un eveniment din desfăşurare, atunci se poate determina probabilitatea de realizare a evenimentului
X ( adică P(X) ).
P(X)= Σk P(Ak)*P(X/Ak)
1
Se numeşte desfăşurare a evenimentului sigur Ω o mulţime de evenimente A1, A2, …, An cu proprietatea că sunt
incompatibile două câte două, adică Ai ∩ Aj = Ф, oricare ar fi i ≠ j, i,j є {1, 2, ..., n}, iar adunarea lor dă evenimentul
sigur Ω ( ΣAi=1).
8
de maşină i se potriveşte cumpărătorului actual. Să presupunem că actualul cumpărător este tânăr,
doreşte o maşină la un preţ mediu, fără pretenţii legate de cai putere ( cai putere – comun),
capacitate medie a rezervorului.
Fie memoria de cazuri :
Pentru indexarea cazurilor voi utiliza formula lui Bayes astfel: fie A1,A2 şi A3 cele 3 tipuri
de maşini. Cazul actual este X ce are atributele (x1,x2,x3,x4), unde x1=’tânăr’, x2=’mediu’,
x3=’comun’, x4=’mediu’. Atunci soluţia este X’ є Aj, j={1,2,3} dacă P(Aj/X’) = max(P(Ai/X’)).
P(X’/Ai)=Π P(xj/Ai), unde xj reprezinta unul din cele 4 atribute( varsta, pret, cai putere si
capacitate rezervor).
Paşii ce trebuie urmaţi sunt următorii :
9
P(x4/A1)=P( capacitate rezervor=’mediu’/ recomandare=’tip1’)= 3/6= 1/2
P(x1/A2)=P( vârstă=’tânăr’/ recomandare=’tip2’)= 2/7
P(x2/A2)=P( preţ=’mediu’/ recomandare=’tip2’)= 3/7
P(x3/A2)=P( cai putere=’comun’/ recomandare=’tip2’)= 4/7
P(x4/A2)=P( capacitate rezervor=’mediu’/ recomandare=’tip2’)=4/7
P(x1/A3)=P( vârstă=’tânăr’/ recomandare=’tip3’)= 1/2
P(x2/A3)=P( preţ=’mediu’/ recomandare=’tip3’)= 1/2
P(x3/A3)=P( cai putere=’comun’/ recomandare=’tip3’)=0/2=0
P(x4/A3)=P( capacitate rezervor=’mediu’/ recomandare=’tip3’)= 2/2= 1
P(X/Ai)=Πj P(xj/Ai)
Maximul dintre acestea este 0.018, aşadar cumpărătorului actual i se va recomanda o maşină
de tipul 2.
În cadrul revizuirii cazurilor, trebuie avut în vedere găsirea unei funcţii pentru a calcula
distanţa între cazul curent şi cazul găsit în memoria de cazuri. Cele mai întâlnite astfel de funcţii
distanţă sunt: distanţa Manhattan şi distanţa GBF( Generalized Bell Function).
Pentru două puncte într-un spaţiu N- dimensional, distanţa Manhattan este definită ca fiind
ponderea sumei dintre valorile absolute ale diferenţelor pentru fiecare dimensiune. În cadrul
raţionamentului bazat pe cazuri, fiecare caz poate fi considerat un punct şi fiecare atribut poate fi
considerat o dimensiune a spaţiului. Aşadar, putem defini distanţa Manhattan între două cazuri c1 şi
c2 astfel:
c1(k) reprezintă valoarea atributului k pentru cazul c1, c2(k) reprezintă valoarea atributului k pentru
cazul c2, w(k) reprezintă ponderea atributului k, iar n reprezintă numărul total de atribute.
10
Distanţa GBF este utilizată pentru a favoriza valorile care sunt similare. Diferitele forme ale
funcţiei clopot sunt definite în jurul fiecărui atribut din cazul curent, iar distanţa pe care o are
valoarea cazului cel mai apropiat faţă de curba clopotului este utilizată ca fiind distanţa între cele
două atribute (and the distance that the neighbor case’s value falls on the Bell curve is used as the distance between
those two attributes). Valorile absolute ale distanţelor sunt apoi însumate pentru toate atributele pentru a
se constitui distanţa totală între cele două cazuri. Putem defini distanţa GBF astfel:
, unde
c1(k), c2(k) şi w(k) au aceeaşi semnificaţie ca şi în cazul distanţei Manhattan. Parametrii a şi b sunt
utilizaţi pentru a controla aspectul funcţiei clopot.
Aceste funcţii distanţă se pot utiliza în cazurile în care atributele au valoare numerică. Pentru
atributele non- numerice, distanţa poate fi considerată 0 pentru o potrivire exactă şi 1 în caz de
nepotrivire. Indiferent de natura lor, componentele atributelor ne permit să asignăm ponderi pentru
acestea, având în vedere faptul că un atribut poate fi mai important decât altul în stabilirea
similarităţii între cazuri.
Calcularea distanţei între componente indică cât de similare sunt cazurile vecine faţă de
cazul curent, pe baza acesteia sistemul RBC fiind capabil să ia o decizie finală în ceea ce priveşte
cazul curent.
Adaptarea cazurilor
Primul pas în rezolvarea problemelor utilizând un sistem RBC este constituit de regăsirea
celor mai asemănătoare cazuri din memoria de cazuri. Luând în considerare faptul că probleme
similare au soluţii similare, cazurile regăsite sunt utilizate pentru a dobândi soluţia pentru noua
problemă. De obicei, soluţiile trecute necesită ajustări pentru a se potrivi noii soluţii. Procesul de
’fixare’ a soluţiei vechi ( cea existentă deja în baza de cazuri) poartă denumirea de adaptare a
cazului.
Dintre formele tradiţionale de adaptare se pot enumera:
reinstanţierea ( reinstantiation) este cea mai simplă formă de adaptare, în care soluţia
problemei curente este pur şi simplu copiată din cazul regăsit în memoria de cazuri şi folosită
în mod direct, fără modificări. Avantajul acestei metode este constituit de costul redus pentru
implementare, cât şi de oferirea unui răspuns rapid utilizatorului.
substituţia înlocuieşte părţi din atributele vechii soluţii care sunt invalide pentru că intră în
conflict sau sunt în contradicţie cu cerinţele noii probleme. De exemplu, în diagnosticul
medical, anumite medicamente prescrise în trecut pot fi înlocuite cu altele mai eficiente
pentru noi tipuri de boli. Esistă două tipuri de substituţie: bazată pe constrângeri şi bazată pe
feedback. Paşii ce trebuie urmaţi în cazul substiuirii prin constrângere sunt : regăsirea celui
mai similar caz din memoria de cazuri, determinarea unor abuzuri de constrângere,
substituirea componentelor ‘abuzate’ făcânduâ-se apel la cunoştinţele semantice predefinite,
executarea substituirii şi executarea altor ajustări dacă este necesar. În cazul substituirii
bazate pe feedback trebuie urmaţi următorii paşi: regăsirea celui mai similar caz din memoria
de cazuri, colectarea feedback-ului din partea utilizatorului în ceea ce priveşte vechea soluţie,
analizarea efectului, iar în cazul în care soluţia eşuează- determinarea cauzei eşecului, şi în
11
cele din urmă, executarea substituţiei în concordanţă cu feedeback-ul primit şi executarea
altor ajustări dacă este necesar.
transformarea este utilizată atunci când substituirea nici unui atribut similar nu este valabilă.
O constrângere descrie sau defineşte proprietăţile unei componente ale soluţiei, adică
specifică ce proprietăţi ar trebui să aibă sau să nu aibă soluţia. Pentru a identifica
constrângerile, trebuie să fie disponiblie cunoştinţe predefinite de către experţi sau anumite
euristici. În cazul utilizării acestei metode de adaptare, trebuie urmaţi următorii paşi:
regăsirea celui mai similar caz din memoria de cazuri, repararea vechii soluţii prin
verificarea structurii semantice pentru substituţiile disponibile, iar în cazul în care nici o
substituţie nu este permisă, transformarea vechii soluţii prin înlocuirea unor părţi ale sale cu
anumite componente adecvate şi în cele din urmă adăugarea noii soluţii la structura
semantică pentru o viitoare reutilizare.
12
generalizarea explicaţiei (introducerea variabilelor în arborele de dovezi) şi apoi construirea unei
reguli noi pornind de la explicaţia generală.
Paşi de urmat în EBL :
- învăţarea regulilor cât mai general posibile
- învăţarea regulilor care se vor folosi cel mai probabil
- renunţarea la regulile nefolosite (pentru a nu încetini sistemul)
Întreţinerea calitativă
Scopul întreţinerii calitative este de a asigura în principal cele 3 caracteristici ale unui sistem
RBC: corectitudinea, consistenţa şi completitudinea.
Corectitudinea unui sistem RBC constă în abilitatea sistemului de a ’rezolva’ nedumeririle
în furnizarea problemelor( adică dacă sistemul RBC a fost corect construit). De exemplu, în
problemele de clasificare cum ar fi diagnosticul medical în care rezultatele analizelor lipsesc sau
sunt incomplete, un nou caz este ajustat în contrast cu cel din memoria de cazuri pentru a determina
eticheta corectă. Oricum, determinarea corectitudinii unui sistem RBC este dependentă de aplicaţie
şi domeniul ales.
Consistenţa unui sistem RBC implică calitatea sa de a avea grijă ca soluţiile sunt în conflict
sau contrazic aceeaşi problemă. În general, un sistem RBC este considerat a fi inconsistent dacă
conţine unul sau mai multe din următoarele tipuri de cazuri în memoria sa de cazuri: redundanţă,
conflict, cazuri care se exclud reciproc, date eronate sau cazuri inactive( dead cases – cazuri pentru
care întodeauna funcţia de similaritate va returna valoarea 0 datorită faptului că lipsesc atribute
esenţiale sau date introduse sunt complet eronate). Inconsistenţele sunt anomalii care sunt
considerate a fi erori posibile. Detectarea şi analizarea acestor posibile erori sunt cruciale în
construirea şi întreţinerea unui sistem RBC.
Completitudinea unui sistem RBC se referă la puterea de acţiune a sa asupra spaţiului
problemei în atingerea scopului domeniului( adică sistemul RBC conţine toate cazurile esenţiale
care pot fi utilizate pentru a genera soluţiile pentru toate cazurile curente posibile). În procesul de
construire a unui sistem RBC, cazurile sunt colectate în mod incremental şi completitudinea unei
memorii de cazuri se dezvoltă în timp. Oricum, adăugarea de cazuri nu perfecţionează în mod
obligatoriu completitudinea unei memorii de cazuri; de aceea identificarea cazurilor esenţiale
precum şi a celor incomplete devine sarcina principală în construirea unui sistem RBC
compresenhiv cu o completitudine satisfăcătoare.
Întreţinerea cantitativă
13
- controlarea dimensiunii memoriei de cazuri. În multe aplicaţii ale raţionamentului bazat pe
cazuri, memoria de cazuri creşte foarte repede, iar acest fapt conduce la ineficienţă în cadrul
procesului de regăsire a cazurilor similare. Doar adăugând mai multe cazuri pentru rezolvarea
problemelor nu garantează că soluţia găsită va fi mai bună. Pe de altă parte, ştergând prea multe
cazuri poate reduce competenţa unui sistem RBC. Soluţia pemtru evitarea astfelor de probleme
consă în reţinerea unui număr minim de cazuri astfel încât competenţa sistemului să nu fie afectată.
- revizuirea structurii indecşilor asociaţi cazurilor. Structura reprezentării şi indexării
cazurilor trebuie verificată şi îmbunătăţită în mod periodic potrivit schimbărilor intervenite
(descrieri diferite ale cazurilor sau modificarea regulilor de clasificare).
- colectarea statisticilor de performanţă. Pentru planificarea calendaristică( scheduling) şi
identificarea activităţilor folositoare pentru întreţinere, trebuie să fie colectaţi anumiţi indici de
performanţă, cum ar fi costul revizuirii şi frecvenţa de acces a cazurilor. De exemplu, cazurile cu o
frecvenţă de acces foarte mare pot fi stocate astfel încât să se poată avea un acces mai rapid la ele.
- detectarea cazurilor irelevante. Acestea sunt cazurile care nu mai au valoare pentru sistem
în sensul că soluţiile propuse de aceste cazuri nu mai sunt valide.
- ştergerea cazurilor incomplete. Cazurile cu anumite informaţii lipsă sunt foarte des întâlnite
în cadrul sistemelor RBC deoarece cazurile sunt de obiecei înregistrate de diferite persoane şi de la
diferite surse.
- colectarea feedback-ului din partea utilizatorului.
Raţionament legal
JUDGE reprezintă un model pentru pedepsirea criminalităţii. Programul începe cu un set
simplu de strategii de luare a sentinţelor şi apoi începe să readucă din memorie cazuri mai vechi
pentru a da noile sentinţe. JUDGE judecă crima, asasinatul şi cazurile de atac la persoană. Această
aplicaţie are cinci faze de operare : interpretare, redobândire, analiză diferenţială, aplicare şi
modificare, generalizare. JUDGE foloseşte baza de date pentru a păstra un model consistent de luare
a sentinţelor.
GREBE (Generator de Explicaţii Recursive Bazate pe Exemplare) foloseşte cunoştinţele sub
formă de generalizări şi exemplarele categoriei pentru a clasifica noile cazuri. Baza de date conţine
reguli şi câteva cazuri reprezentative în legătură cu legile texane despre violarea drepturilor
muncitorilor ce se află în afara spaţiului de lucru.
KICS (Yang & Robertson, 94) este realizat în domeniul regulilor de construcţie. Sistemul
acumulează cazuri de interpretare a regulilor folosite la stabilirea precedentelor. Aceste precedente
pot fi folosite când se revizuiesc regulile şi dau informaţii relevante pentru ca experţii să poată
interpreta şi decide în cazurile viitoare.
Explicarea anomaliilor
SWALE (Kass, 86) este un explicator creativ bazat pe cazuri. Are o librărie de cazuri pentru
a explica de ce oamenii şi animalele mor.
Diagnostic
PROTOS a fost dezvoltat în domeniul audiologiei clinice. A învăţat să clasifice bolile de auz
din descrierea simptomelor pacienţilor, din istoricul medical şi din rezultatele testelor. Sistemul a
fost instruit pe 200 de cazuri din 24 de categorii diferite de boli. După instruire, PROTOS a dat
rezultate sigure în procent de 100%.
14
CASCADE (Simoudis, 92) este un sistem ce stabileşte cauzele de defectare ale sistemelor de
operare VMS şi sugerează o soluţie. Deşi este doar un sistem de redobândire şi sugerare, asistă cu
succes recuperarea sistemului după defectare.
CASEY( Koton, 89) este un sistem pentru diagnosticarea bolilor de inimă. Ca date de intrare
foloseşte simptomele pacientului şi produce o reţea cauzală a stărilor interne posibile care pot
conduce la simptomele specifice acestor boli. Când apare un nou caz, sistemul CASEY încearcă să
găsească cazurile în care pacienţii prezintă simptome similare, nu neapărat identice. Dacă noul caz
se potriveşte, atunci sistemul CASEY adaptează diagnosticul regăsit având în vedere şi diferenţele
între simptomele vevhiului caz şi cele ale noului caz.
PAKAR( Watson şi Abdullah, 94) este un sistem care identifică cauzele posibile în defectele
de construcţie şi sugerează anumite remedii. Dezvoltat în RBC-Express sub MS Windows, PAKAR
este capabil să combine informaţii text cu metode de design computerizat pentru a se consulta în
privinţa posibilelor cauze pentru defectele respective şi a oferi potenţiale soluţii.
Design
CYCLOPS (Navichandra, 89) este un sistem ce rezolvă probleme de design în domeniul
peisajelor. Are ca scop găsirea problemelor posibile a apărea atunci când se proiectează noi condiţii
de acomodare.
ARCHIE (Pearce, 92) este implementat folosind ReMind şi ajută arhitecţii în designul
conceptual de grad înalt. Oferă acces la designurile birourilor clădirilor create de alţi arhitecţi şi
indică factorii ce ar trebui luaţi în considerare la rezolvarea unei probleme date. Fiecare caz în
ARCHIE conţine mai multe tipuri de informaţie : scopurile operaţiei de design, planurile de design,
în ce măsură au fost atinse scopurile propuse, constrângeri şi lecţii ce trebuie învăţate din cazul
respectiv.
Planificare
TOTLEC (Costas & Kashyap, 93) a fost dezvoltat să rezolve problemele complexe de
planificare din faza de fabricare cum ar fi detectarea erorilor din faza de design, avertizarea şi
sfătuirea utilizatorului în legătură cu designurile ce nu pot fi fabricate. Cazurile sale sunt stocate
într-o memorie organizată dinamic. Foloseşte o paradigmă de planificare ierarhică bazată pe cazuri,
o indexare complexă a cazurilor şi o redobândire a cazurilor incrementală în trei faze bazată pe
similaritate.
Instruire
DECIDER (Farrel, 87) este un sistem ce ajută studenţii să înţeleagă sau să rezolve o
problemă pedagogică prin selectarea şi prezentarea cazului celui mai potrivit dintr-o bază de date.
Aplicaţii comerciale
Fiind un domeniu recent apărut, raţionamentul bazat pe cazuri nu are încă multe aplicaţii.Se
vor prezenta câteva aplicaţii pentru a ilustra cum se pot realiza cu metodele RBC sisteme de decizie
bazate pe cunoştinţe.
Primul sistem din acest domeniu a fost dezvoltat la Lockheed, Palo Alto (CLAVIER).
Principala problemă a fost optimizarea încărcării autoclavului pentru tratamentul cu căldură al
materialelor componente. Autoclavul este un cuptor de convecţie, unde se tratează părţi componente
ale avioanelor pentru a căpăta proprietăţile necesare. Materiale diferite necesită proceduri diferite de
încălzire şi răcire, iar task-ul este de a încărca cuptorul cu o încărcătură optimă, de exemplu
selectarea părţilor ce pot fi tratate împreună şi distribuirea lor în cuptor astfel încât să aibă
caracteristica de încălzire corespunzătoare. Întotdeauna vor fi mai multe piese decât pot încăpea în
cuptor la o încălzire. Cunoştinţele necesare efectuării acestui task le-au avut doar câteva persoane cu
experienţă. Nu există nici o teorie elaborată în acest sens şi foarte puţine scheme pentru a face
această repartizare, aşa că este important să se reţină experienţa din situaţiile cu sau fără succes
15
precedente. Motivaţia pentru dezvoltarea acestei aplicaţii a fost aceea de a putea reţine cazurile
anterioare relevante. Mai mult, un sistem pe bază de decizii ar da posibilitatea şi persoanelor fără
experienţă să facă această muncă şi ar ajuta la instruirea noului personal. Dezvoltarea sistemului a
început în 1987 şi a putut fi folosit din toamna anului 1990. Sistemul actual poate configura o
singură încărcare şi un sistem care să se ocupe de mai multe încărcări este deocamdată în faza de
test. Strategia de dezvoltare a aplicaţiei a fost să menţină un nivel de risc scăzut şi să includă
funcţionalităţi şi soluţii mai avansate pe măsură ce s-a acumulat experienţă în timp.
Cea de-a doua aplicaţie a fost dezvoltată la General Dynamics, Electric Boat Division. În
timpul construirii navelor o problemă ce apare frecvent este selectarea echipamentului mecanic
adecvat şi potrivirea acestuia cu scopul dorit. Majoritatea acestor probleme se pot rezolva cu
proceduri standard, dar unele sunt mai dificile şi apar mai rar. Aceste ultime tipuri de probleme-
cunoscute ca ’non-conformiste’- se repetă în timp şi din cauză că nu există proceduri obişnuite de
rezolvare, se consumă multe resurse. General Dynamics a dorit să vadă dacă un instrument de
decizii bazat pe cunoştinţe ar putea reduce costul acestor probleme. Domeniul de aplicare ales a fost
selectarea şi adaptarea valvelor pentru sistemele cu ţevi încorporate la bord. Dezvoltarea primului
sistem a început în 1986, folosindu-se o abordare bazată pe reguli.Testarea sistemului pe probleme
reale a dat iniţial rezultate bune, dar în curând au apărut probleme de distrugere a ţevilor la presiune
şi de menţinere a cunoştinţelor. În 1988 a fost făcut un studiu de fezabilitate folosind metode bazate
pe cazuri în locul celor bazate pe reguli şi s-a realizat un prototip de sistem RBC. Testele au dat
rezultate optimiste şi astfel s-a creat un sistem operaţional în 1990. Baza de reguli a fost folosită în
structurarea cunoştinţelor de caz şi în popularea bazei iniţiale de cazuri. În toamna anului 1991
sistemul a fost folosit cu succes în trei din patru departamente de construcţie mecanică. S-a făcut o
estimare cantitativă a reducerii costurilor : dezvoltarea sistemului bazat pe reguli a durat 5 ani, ca şi
sistemul RBC (2 ani pentru studiu şi experimente şi 3 ani pentru realizarea prototipului şi a
sistemului operaţional). Costurile totale au fost de 750.000$. În perioada decembrie 90- septembrie
91 au fost rezolvate 20.000 de probleme non-conformiste. Reducerea costurilor, în comparaţie cu
cele de la metodele manuale anterioare, a fost de 10% ceea ce a dus la economisirea a 240.000$ în
mai puţin de un an.
Există şi alte aplicaţii în faza de test sau care se folosesc curent. Un tip de aplicaţie care se
dezvoltă rapid este ’help desk systems’ . În aceste sisteme de ajutor pentru birou indexarea RBC şi
metodele de redobândire sunt folosite pentru a redobândi cazuri ce sunt văzute apoi ca părţi de
informaţie pentru utilizator în loc de surse de cunoştinţe pentru raţionament. Un astfel de sistem
poate fi un pas înainte spre un sistem RBC mult mai matur.
RBC-Express, produs de Inference Corporation, este poate unul din cele mai de succes
softuri RBC de până acum. Acest soft este conceput special pentru help-deskuri. Help deskurile
pentru clienţi au devenit o trăsătură comună a zilelor noastre, şi managerii acestor servicii se lovesc
de probleme asemănătoare :
• pentru ca angajaţii să lucreze cu help deskurile, aceştia au nevoie de instruire
• instruirea necesită timp şi bani
• să lucrezi cu un help desk nu e un job atât de bun, aşa că angajaţii renunţă des
Help deskurile trebuie să se ocupe de erorile pe care designerii şi inginerii nu le-au prevăzut
şi care, prin urmare, nu sunt în modelul de bază. RBC-Express aplică cu succes ciclul RBC asupra
help deskurilor şi este în prezent liderul pe piaţă pentru help deskurile bazate pe cunoştinţe. Softul
are o structură simplă şi foloseşte metoda vecinilor celor mai apropiaţi pentru redobândirea
cazurilor. Un exemplu de caz din RBC-Express care se ocupă de erorile date de o imprimantă cu
laser este următorul :
16
Ink cartridge is damaged, causing black stains.
DESCRIPTION
Stains appear as small, round, black dots that
occur on front or back of page.
Sometimes wide inconsistent stains appear.
QUESTIONS
Are you having print quality problems?
ANSWER : Yes
SCORING : (-)
What does the print quality look like?...
ANSWER : Black Stains
SCORING : (default)
Does cleaning the printer with cleaning paper
remove problem?
ANSWER : No
SCORING : (default)
ACTIONS
Check toner cartridge and replace if it is low in toner or damaged...
BROWSE TEXT
CREATION 29/7/91 14:19:22
LAST_UPDATE 29/7/91 14:19:22
LAST_USED 29/7/91 14:19:22
STATUS ACTIVE
END CASE
Un alt domeniu în care raţionamentul bazat pe cazuri este tot mai implicat este şi domeniul
muzical. Primul sistem implementat în acest sens a aparţinut lui Arcos, Lopez de Mantaras şi Serra
[1998] care a câştigat premiul Best Paper Award la conferinţa internaţională de muzică
computerizată. Acest sistem RBC, numit SaxEx, este capabil să sintetizeze expresivitatea unui
cântăreţ la saxofon în interpretarea baladelor jazz având la bază reprezentarea performnţelor umane.
Tentativa precedentă, de a realiza un raţionament bazat pe reguli pentru realizarea unui astfel de
sistem, a eşuat datorită problemelor întâmpinate în reprezentarea unor parametri expresivi( precum
rubato sau dinamic) pentru că este mult prea dificil să se găsească suficiente reguli generale pentru a
captura varietatea acestor stiluri. Cu ajutorul raţionamentului bazat pe cazuri autorii acestui sistem
au demonstrat că este posibil ‘controlarea’ celor mai importanţi cinci parametri expresivi: dinamic,
rubato, vibrato, articularea şi atacarea notelor. Pentru a face acest lucru, SaxEx utilizează o memorie
de cazuri ce conţine exemple din performanţele umane, analizate cu ajutorul tehnicilor de modelare
spectrală şi a unui puternic fundal de cunoştinţe muzicale. Fiecare notă este analizată, determinând-
se rolul său în secvenţa muzicală , apoi se caută în memoria de cazuri note cu rol similar, iar în final
se transformă nota muzicală astfel încât proprietăţile expresive( dinamic, rubato, vibrator, articulare
şi atac) să se potrivească celei mai similare note regăsite în memoria de cazuri. Pentru maximizarea
performanţelor, cazurile nu conţin doar informaţii despre fiecare notă muzicală, ci şi cunoştinţe
despre întreaga secvenţă muzicală.
17