Instrument Software Pentru Achizitia de Cunostinte Si Evaluarea de Expresii Fuzzy
Introducere
Este cunoscut faptul că pentru a putea rezolva o problemă într-un anumit context este nevoie de cunoștințe care să descrie contextul respectiv. Aceste informații ce descriu contextul, furnizează atât elemente referitoare la datele problemei, cât și metode de rezolvare corespunzătoare folosind un raționament adecvat și totodată, furnizează informații despre natura soluțiilor ce vor fi obținute în urma aplicării unei metode.
Dacă acest cuantum de cunoștințe poate fi reprezentat având la bază o anumită structură, atunci se poate spune că există o bază de cunoștințe, mai mult, dacă se poate face o reprezentare a acestor cunoștințe sub formă digitizată, atunci se pot căuta metode automatizate care, aplicate pe această structură să poată genera soluții posibile pentru anumite probleme ce se pot identifica în contextul respectiv.
Un alt aspect legat de această problemă îl reprezintă natura cunoștințelor ce compun baza de cunoștințe. Dacă aceste cunoștințe sunt exprimate într-un limbaj mai puțin formal, cum este limbajul natural, atunci aceste cunoștințe sunt incerte, imprecise, pot avea semnificații diferite în contexte diferite ș.a.m.d., acestea reprezentând unele dintre caracteristicile cunoștințelor fuzzy. Aceste cunoștințe sunt specifice contextelor în care este dificil a face o cuantificare a elementelor ce se vehiculează ca informații, și sunt folosite tocmai pentru a putea face o reprezentare a informațiilor într-un formalism bine definit – logica fuzzy, în așa fel încât, aceste cunoștințe să poată fi folosite drept suport pentru raționamente automatizate în sistemele de inteligență artificială.
Aplicația de față, se dorește a fi un instrument util pentru achiziția de cunoștințe și evaluarea de expresii fuzzy. Necesitatea acestor instrumente s-a făcut simțită din momentul în care s-au pus bazele automatizării raționamentului, odată cu apariția conceptului de Inteligență Artificială. Una din orientările în inteligența artificială, o reprezintă dezvoltarea sistemelor bazate pe cunoștințe exprimate în limbaj natural. Evident, este problema instrumentului de achiziție de cunoștințe ca acestea să fie preluate de la expert, apoi să fie reprezentate printr-o bază de cunoștințe având o anumită structură, cu scopul de a servi sistemului în așa fel încât să poată fi aplicat un anumit tip de raționament în vederea rezolvării unui anumit tip de probleme.
Acest instrument comportă două aspecte din punct de vedere funcțional: un aspect ce se referă la achiziția de cunoștințe fuzzy în scopul de a constitui o bază de cunoștințe corespunzătoare unui anumit context, iar al doilea aspect se referă la posibilitatea ca pe baza cunoștințelor achiziționate de la expert, să poată fi construite expresii in care apar termeni ce denotă imprecizia cu scopul de a evalua gradul de adevăr al acestor expresii comparabil cu cel pe care-l are acea expresie în contextul respectiv.
Așadar, aceste instrumente vin în ajutorul constructorilor de sisteme de inteligență artificială ca și modele de instrumente (module) de achiziție de cunoștințe pentru automatizarea procesului de achiziție, proces în urma căruia va rezulta baza de cunoștințe corespunzătoare pe care se pot aplica funcții pentru regăsirea și actualizarea informațiilor în cadrul modulului de achiziție cât și pentru aplicarea de raționamente în cadrul sintetizării bazei de cunoștințe.
Ca și utilizare în afara unui sistem, instrumentul de față oferă posibilitatea experților de a crea baze de cunoștințe fuzzy corespunzătoare unui anumit context, pe care să le stocheze pe suporturi magnetice în vederea folosirii ulterioare cu scopul de a actualiza datele sau, odată ce bazele de cunoștințe au fost create, atât expertul cât și un utilizator ne-expert, să poată construi expresii fuzzy pe baza elementelor definite, pentru a evalua gradul de adevăr al expresiilor construite folosind elemente definite într-un anumit context elemente ce se află în baza de cunoștințe corespunzătoare contextului.
Aplicația este așadar structurată pe două module, unul corespunzător procesului de achiziție de cunoștințe în care sunt puse la dispoziția utilizatorului instrumente pentru definirea elementelor ce compun baza de cunoștințe, iar al doilea modul conține instrumente pentru construirea de expresii fuzzy și evaluarea gradului de adevăr corespunzător acestora.
Conform cerințelor, sistemul trebuie să rezolve cele două probleme: de achiziție de cunoștințe și evaluare de expresii fuzzy, utilizând o interfață cu utilizatorul intuitivă, instrumentul trebuind să fie ușor de utilizat.
1.1. Structura aplicației
În conformitate cu aceste cerințe, structura aplicației este cea din figura 1.1.1.
Figura 1.1.1. Structura aplicației
Așa cum s-a specificat, unul din demersurile inițiate în construirea acestui instrument are drept scop achiziția de cunoștințe. Acest proces constă în preluarea de la expert a elementelor ce definesc baza de cunoștințe împreună cu proprietățile specifice acestor elemente așa cum sunt ele descrise de logica fuzzy. Odată preluate, aceste elemente se constituie într-o structură de date care să corespundă specificului unei baze de cunoștințe. În plus, aceste cunoștințe corespund unui context în care apare aspectul de incertitudine în cunoștințele folosite pentru a descrie acest context. De aici, conceptul de bază de cunoștințe fuzzy (FKB).
Așadar constituirea unei baze de cunoștințe se face corespunzător unui anumit context, fiecare context fiind definit într-o bază de cunoștințe existând posibilitatea ca în orice moment instrumentul să poată fi conectat la o anumită bază de cunoștințe pentru a fi actualizată sau pentru a putea fi construite și evaluate expresii.
În ce privește problema construirii și evaluării expresiilor, aceasta presupune conectarea la o bază de cunoștințe constituită apriori, apoi, cu ajutorul constructorului de expresii, se vor construi aceste expresii având la bază elemente definite în baza de cunoștințe, iar pentru fiecare expresie, se va evalua gradul de adevăr asociat, conform proprietăților elementelor ce intră în componența expresiei, așa cum au fost ele definite în procesul de achiziție.
1.2. Baza de cunoștințe fuzzy – FKB
Așa cum se observă și din figura 1.1.1. (structura aplicației), elementul principal în jurul căruia se axează întreaga aplicație îl reprezintă baza de cunoștințe fuzzy. Aceasta este constituită din elemente necesare reprezentării cunoștințelor așa cum sunt ele descrise de logica fuzzy [Zad65]: domenii, domenii lingvistice, mulțimi fuzzy, numere fuzzy, modificatori lingvistici, operatori și cuantificatori fuzzy.
1.2.1. Domenii / Domenii lingvistice
Studiile făcute asupra situațiilor întâlnite în exprimarea în limbaj natural, au scos în evidență anumite aspecte ce scot în evidență elemente referitoare la posibilitățile de a defini și clasifica termenii lingvistici funcție de conceptele la care se referă, modul în care afectează aceștia sensul unei expresii cât și înțelesul ce se atribuie unei anumite construcții lingvistice pe baza acestor elemente.
S-au făcut remarcate în primul rând aspecte în ceea ce privește domeniul la care se referă anumiți termeni lingvistici. Acesta comportă două aspecte:
poate fi vorba de un domeniu preluat ca și concept din matematică și se referă la un interval de valori reale cuprins între anumite limite sau o mulțime (evident finită) de elemente ca și interval discret de valori numerice (Ex.: valori ale temperaturii apei [0, 100] ca și domeniu continuu, sau domeniul de valori pentru reprezentarea vârstei [0, 12] ca și domeniu discret pentru un context ce se referă la vârsta pacienților unui spital de copii;
un alt aspect îl reprezintă domeniul văzut ca și domeniu discret definit de elemente ca și termeni lingvistici, ca de exemplu, domeniul pentru reprezentarea culorii tenului = {blond, brunet, roșcat}.
După cum s-a putut observa din exemplele date anterior, unui domeniu de definiție îi corespunde un termen lingvistic (ex.: temperatura, vârsta, tenul). Aici domeniile corespund conceptelor de domenii lingvistice sau variabile lingvistice. Corespunzător unei variabile lingvistice, se definește domeniul valorilor posibile (așa cum s-a specificat mai sus) ca și domeniu de discurs pentru variabila lingvistică respectivă. Luând ca exemplu domeniul de discurs corespunzător temperaturii apei, expresia temperatura este scăzută ocupă o secțiune din universul de discurs al variabilei lingvistice și este o mulțime fuzzy.
1.2.2. Mulțimi fuzzy
Dacă se consideră de exemplu mulțimea fuzzy corespunzătoare oamenilor tineri, teoria mulțimilor clasice ar delimita foarte strict marginile acestei mulțimi și ar atribui fiecărui membru ce aparține mulțimii valoarea 1, și tuturor membrilor ce nu aparțin mulțimii valoarea 0; această mulțime este o mulțime crisp. De exemplu, membrii mulțimii ar corespunde persoanelor cu vârsta mai mică decât 10. Folosind această interpretare strictă, la a unsprezecea aniversare a persoanelor copilăria acestora dispare dintr-o dată.
Logica fuzzy permite o interpretare mai rezonabilă pentru oameni tineri folosind o mulțime fuzzy. O mulțime fuzzy permite asocierea de valori de apartenență (valori reale din intervalul [0, 1]) ceea ce reflectă o corespondență mai naturală cu mulțimea. De exemplu, dacă vârsta unei persoane este 5, am putea asocia o valoare de apartenență de 1, sau pentru o persoană cu vârsta de 13 ani, am putea asocia o valoare de apartenență de 0,1. Modul în care poate fi reprezentată mulțimea oamenilor tineri în cele două cazuri (crisp și fuzzy), poate fi observată în figura 1.2.2.1.
Figura 1.2.2.1. Mulțimile fuzzy și crisp pentru oameni tineri.
Corespunzător unei mulțimi fuzzy este termenul lingvistic asociat acesteia (Ex.: temperatura scăzută) , în acest caz, termenul scăzută reprezentând valoarea fuzzy asociată mulțimii.
Un alt concept legat de relația dintre domeniul de discurs și mulțimile fuzzy definite pe acel domeniu îl reprezintă conceptul de submulțimi fuzzy. În literatura de specialitate, totalitatea mulțimilor definite pe un anumit domeniu de discurs sunt referite ca submulțimi fuzzy.
1.2.3. Numere fuzzy
În secțiunea anterioară se prezintă modul în care se poate modela cantitativ informația incertă folosind mulțimi fuzzy. În limbaj natural apar însă situații in care sunt folosite expresii ce introduc incertitudinea in sensul unei incercari de a aprecia o măsură in vecinătatea alteia despre care se cunoaște a fi certă. Aceste expresii sunt de forma in jur de…, aproape…, putin peste… și o reprezentare a lor se poate face atribuind cuantificatorului o valoare procentuală.
Urmărind această reprezentare, numărul fuzzy in jur de poate fi reprezentat ca în figura 1.2.3.1.
Figura 1.2.3.1. Numărul fuzzy în jur de.
Așa cum se observă din figură, numărul fuzzy în jur de, este reprezentat ca afectând pe domeniu într-o măsură de 25%, atât la stânga cât și la dreapta valorii de referință (valorii certe). Folosind această reprezentare, numărul fuyz in jur de, pe domeniul vârsta definit ca fiind continuu finit ([0, 100]) va avea un suport de 50 ani.
Așa cum se observă, numerele fuzzy au o reprezentare grafică conică, de aici se observă că nucleul acestora (zona în care gradul de certitudine este maxim) este reprezentată printr-un punct. Considerând expresia in jur de 10 ani, interpretarea gradului de certitudine pentru o vârstă in jur de 10 ani reflectă faptul că dacă vârsta este 10 ani, atunci gradul de certitudine este maxim (1), pentru orice altă valoare a vârstei mai mică sau mai mare de 10 ani vom obține ca grad de certitudine orice valoare reală din intervalul [0, 1).
1.2.4. Modificatori lingvistici
Până în acest punct au fost descrise concepte pentru a reprezenta cunoștințele imprecise ce apar în limbaj natural. În conversație insă, oamenii nu folosesc doar cunoștințe imprecise, ci mai mult, pot chiar afecta gradul de imprecizie al unei expresii folosind adverbe cum ar fi foarte, extrem de, nemaipomenit de,cum se observă din figură, numărul fuzzy în jur de, este reprezentat ca afectând pe domeniu într-o măsură de 25%, atât la stânga cât și la dreapta valorii de referință (valorii certe). Folosind această reprezentare, numărul fuyz in jur de, pe domeniul vârsta definit ca fiind continuu finit ([0, 100]) va avea un suport de 50 ani.
Așa cum se observă, numerele fuzzy au o reprezentare grafică conică, de aici se observă că nucleul acestora (zona în care gradul de certitudine este maxim) este reprezentată printr-un punct. Considerând expresia in jur de 10 ani, interpretarea gradului de certitudine pentru o vârstă in jur de 10 ani reflectă faptul că dacă vârsta este 10 ani, atunci gradul de certitudine este maxim (1), pentru orice altă valoare a vârstei mai mică sau mai mare de 10 ani vom obține ca grad de certitudine orice valoare reală din intervalul [0, 1).
1.2.4. Modificatori lingvistici
Până în acest punct au fost descrise concepte pentru a reprezenta cunoștințele imprecise ce apar în limbaj natural. În conversație insă, oamenii nu folosesc doar cunoștințe imprecise, ci mai mult, pot chiar afecta gradul de imprecizie al unei expresii folosind adverbe cum ar fi foarte, extrem de, nemaipomenit de, s.a.m.d. Acestea sunt cunoscute in terminologia lgicii fuzzy ca modificatori lingvistici.
Modificatorii lingvistici afectează mulțimea fuzzy căreia i se aplică, în sensul de constrângere a suportului și formei / funcției de apartenență a mulțimii fuzzy. Astfel, pentru o aceeași expresie am putea avea o valoare a gradului de apartenență la o mulțime fuzzy, însă aplicând unul dintre modificatorii lingvistici, acel grad de apartenență se va schimba, posibilitatea fiind ca acesta să scadă sau cel putin să rămână același.
Un exemplu de aplicare a unui modificator lingvistic asupra unei mulțimi fuzzy este reprezentat in figura 1.2.4.1.
Figura 1.2.4.1. Reprezentarea grafică a mulțimii fuzzy oameni tineri după ce i-a fost aplicat modificatorul lingvistic foarte derivând în mulțimea fuzzy oameni foarte tineri.
După cum se observă, atât nucleul cât și zona de incertitudine s-au redus în urma aplicării modificatorului lingvistic foarte. S-a făcut referire la zona de incertitudine deoarece o particularitate a aplicării modificatorilor lingvistici este aceea că ei nu pot fi folosiți decât pentru a modifica mulțimi fuzzy ce se află la extremitățile domeniului de definiție, cum ar fi: tânăr – foarte tânăr, bătrân – foarte bătrân, o expresiie de genul foarte adult fiind inexistentă.
1.2.5. Operatori și cuantificatori
Deoarece dezvoltarea acestui instrument nu presupune managementul operatorilor și/sau cuantificatorilor lingvistici, aceștia nu vor face pe larg, obiectul acestei documentații. Cateva explicații în legatură cu aceste concepte ar fi următoarele:
operatorii sunt de fapt aceiași (ca și variabile lingvistice) de aceea nu depind direct de context și sunt reprezentați de cuvinte precum non, și, sau și se aplică uneia sau mai multor mulțimi fuzzy (operatori unari sau binari) cu scopul de a reuni, intersecta, reprezenta complementa unei mulțimi fuzzy.
cuantificatorii lingvistici sunt concepte ce definesc un număr de elemente de același tip și sunt reprezentați de expresii precum câțiva, majoritatea, ș.a.m.d.
Acestea fiind trecute în revistă, se poate trece mai departe la conceperea sistemului. Capitolul următor se ocupă cu descrierea modului în care sistemul a fost conceput pentru a putea răspunde cerințelor.
1.3. Baze de cunoștințe de context
O facilitate pe care aplicația trebuie să o prezinte este posibilitatea de a administra mai multe baze de cunoștințe corespunzătoare diferitelor contexte de lucru.
Aplicația va prezenta o caracteristică ce va consta în posiblitatea de a se conecta la diferite baze de cunoștințe funcție de contextul în care se dorește a se lucra, fiecărui context fiindu-i corespunzător o instanță FKB.
Conectarea se va face în condițiile în care accesul la baza de cunoștințe va fi efectuat în așa fel încât să fie posibilă atât actualizarea acesteia cât și construirea și evaluarea de expresii corespunzător cunoștințelor achiziționate.
Principial, o bază de cunoștințe va conține un anumit număr (nedefinit și nelimitat) de domenii de definiție, mulțimi fuzzy, numere fuzzy și modificatori lingvistici, respectând specificul proprietăților și regulile descrise de logica fuzzy.
În rezolvarea problemei de achiziție de cunoștințe și evaluare de expresii fuzzy se identifică probleme legate de modul de reprezentare a conceptelor specifice elementelor utilizate și procesele ce se desfășoară cu scopul de a asigura metodele de specificare, modelare și reprezentare, regăsire și interpretare a acestor elemente.
2.1. Modelarea sistemului
Așa cum s-au identificat elementele in procesul de analiza (vezi secțiunea 1.1), în sistem se identifică două mari entități: baza de cunoștințe fuzzy (FKB) și instrumentul de achiziție de cunoștințe și evaluare de expresii fuzzy(FKAEE).
Fiecare dintre cele două entități sunt constituite la rândul lor din subclase / subsisteme, fiecare dintre ele cu proprietățile și funcțiile sale. Pentru o descriere a acestor entități împreună cu subclasele constituente și relațiile / interacțiunile dintre ele, se va face o suclasificare după cum urmează: se va descrie mai întâi structura și relațiile dintre cele două entități majore, apoi se va face o descriere detaliată a fiecărei entități în parte, cu specificarea claselor, subclaselor și subsistemelor componente, cât și structura, funcțiile, relațiile și modul în care acestea interacționează pentru a atinge scopul acestui sistem.
Descrierea acestora se va face în continuare utilizând metodologia OMT, incepând cu descrierea modelului obiectelor, continuând cu descrierea aspectelor dependente de timp ale sistemului (modelul dinamic) și terminând cu descrierea transformărilor valorilor datelor în cadrul sistemului reprezentate cu ajutorul modelului funcțional [Nov99a].
2.1.1. Modelul obiectelor
Așa cum am spus-o deja, reprezentarea se va face gradual, de la suprafață în adâncime, de la entități la clase, subclase și subsisteme, începând cu descrierea celor două entități primare identificate (FKB și FKAEE). Așadar, la nivel de entități, clase și subclase, modelul este cel din figura 2.1.1.1.
Figura 2.1.1.1. Modelul obiectelor la nivel de entități. (M.A. – modul de administrare)
Așadar, fiecărei clase de obiecte aparținând entității FKB, îi corespunde un subsistem aparținând entității FKAEE. Așa cum se observă din diagramă, fiecare subsistem aparținând entității FKAEE se ocupă cu administrarea instanțelor clasei corespunzătoare din FKB. Totodată, totalitatea subsistemelor din FKAEE ce se ocupă cu administrarea claselor corespunzătoare, compun subsistemul FKA (descris in figura 1.1.1. – Achiziție de cunoștințe fuzzy)
Un subsistem distinct aparținând FKAEE, este cel ce se ocupă de construirea și evaluarea expresiilor fuzzy (FEE). Acesta utilizează întreaga baza de cunoștințe, deoarece expresiile sunt construite și evaluate pe baza cunoștințelor deja existente in FKB, acest subsistem utilizând întreaga bază de cunoștințe pentru a-și atinge scopul pentru care a fost proiectat.
Relațiile dintre cele două entități majore (FKB și FKAEE), sunt cele descrise in diagramă, iar cele dintre clasele, subclasele și subsistemele acestor entități vor fi descrise in cele ce urmează.
Înainte de a trece la prezentarea diagramei de obiecte corespunzătoare FKB, este de menționat faptul că aceste obiecte au doar rolul de a stoca informații (obiecte pasive), alterarea valorilor atributelor acestora fiind principalul scop al obiectelor componente ale FKA. În aceeași ordine de idei, interacțiunea dintre entitățile din FKB este asigurată atât de obiectele din FKA cât mai ales, la nivel de procesare a informației stocată cu ajutorul obiectelor din FKB pentru a atinge cel de-al doilea obiectiv al acestui instrument (vezi cerințele sistemului), de către obiectele din FEE.
Așadar, diagrama obiectelor pentru cele două entități majore ce se disting în sistem, sunt cele din figurile 2.1.1.2 și 2.1.1.3, pentru FKB și respectiv FKAEE.
Figura 2.1.1.2. Modelul obiectelor pentru FKB (baza de cunoștințe fuzzy)
Așa cum am specificat mai sus, obiectele din FKB sunt instanțe ale unor clase proiectate pentru a stoca date, schimbul de informații în sistem fiind dezvoltat de către obiectele din FKAEE.
Figura 2.1.1.3. Modelul obiectelor pentru FKAEE (instrumentul de achiziție de cunoștințe și evaluare de expresii fuzzy)
Spre deosebire de obiectele din subsistemul FKB, cele din FKAEE prezintă clase de obiecte ce le inglobează pe cele din FKB ca și atribute, metodele corespunzătoare acestor clase având drept scop managementul acestor instanțe (crearea, alterarea atributelor, distrugerea – FKA) sau doar procesarea informației stocate în atributele acestor instanțe – FEE.
O particularitate a obietelor din FKAEE este faptul ca vor fi statice. Pentru fiecare clasă de obiecte din FKB, este nevoie doar de o singura instanță din FKAEE pentru a administra mulțimea de instanțe ale unei clase din FKB, existente la un moment dat în sistem. În aceeași ordine de idei, entitățile din FKB vor fi considerate în continuare structuri de date.
2.1.2. Modelul dinamic
Pentru a reprezenta stările sistemului și tranziția acestuia de la o stare la alta datorită evenimentelor ce apar în sistem, voi descrie în continuare o serie de diagrame ale succesiunii de evenimente și stări.
Modelul dinamic pentru acest instrument prezintă interacțiunea dintre utilizator și instanțele FKB și FKAEE, și anume, scenariile posibile în sistem și fluxul de evenimente ce pot apare de la utilizator la FKAEE și de la FKAEE la FKB.
Scenariile ce pot fi identificate în sistem, se pot și ele grupa în clase de scenarii. În funcție de particularitățile acestora, se pot identifica scenarii ce privesc accesul la baza de cunoștințe (figura 2.1.2.1): scenarii pentru achiziția de cunoștințe, scenarii pentru modificarea sau vizualizarea (atributelor) unei entități existente în baza de cunoștințe, scenarii pentru ștergerea unei entități din baza de cunoștințe; scenarii pentru construirea unei expresii fuzzy pentru a fi evaluată; scenarii pentru procesarea informațiilor din baza de cunoștințe și evaluarea expresiilor fuzzy (figura 2.1.2.2).
Figura 2.1.2.1. Succesiunea evenimentelor pentru actualizarea bazei de cunoștințe.
Figura 2.1.2.2. Succesiunea evenimentelor pentru construirea și evaluarea expresiilor.
O alta clasă de scenarii este cea care descrie operațiile legate de managementul instanțelor FKB (sistemul trebuie să dispună de operații pentru managementul mai multor baze de cunoștințe, depinzând de contextul pentru care acestea vor fi create), dealtfel se disting scenarii pentru a oferi ajutor utilizatorului în folosirea instrumentului și de a oferi informații cu privire la operațiile posibile la un moment dat în sistem. Acestea din urmă pot fi clasificate ca scenarii de asistență.
Deoarece am spcificat faptul că obiectele din FKB sunt considerate structuri de date (obiecte pasive), doar obiectele din FKAEE vor cunoaște diferite stări funcție de evenimentele ce se declanșează în sistem. Diagrama de stare pentru întregul sistem (FKAEE) este cea din figura 2.1.2.3.
Figura 2.1.2.3. Diagrama de stări cu condiții a sistemului.
Modelul dinamic pentru actualizarea bazei de cunoștine este reprezentat de diagrama din figura 2.1.2.4. Acest model este valabil pentru totalitatea operațiilor efectuate asupra FKB.
Figura 2.1.2.4. Diagrama de stări cu condiții a subsistemului FKA.
2.1.3. Modelul funcțional
Modelul se structurează în jurul procesării fluxurilor de date ce pot apărea: între utilizator și instrument (figura 2.1.3.1.) sau între diferitele subsisteme existente în structura aplicației și utilizator (figura 2.1.3.2.).
Figura 2.1.3.1. Intrări și ieșiri pentru sistem.
Figura 2.1.3.2. Intrări și ieșiri pentru sistem și subsisteme.
În detaliu, pentru cazul actualizării bazei de cunoștințe, diagrama de flux este cea din figura 2.1.3.3.
Figura 2.1.3.3. Diagrama generală a fluxului de date pentru actualizarea FKB.
În aceeași ordine de idei, diagrama generală a fluxului de date pentru construirea și evaluarea expresiilor fuzzy este cea din figura 2.1.3.4.
Figura 2.1.3.4. Diagrama generală a fluxului de date pentru construirea și evaluarea expresiilor.
2.2. Proiectarea sistemului
Așa cum s-a identificat încă din etapa de analiză, entitățile majore ce se disting în sistem sunt: baza de cunoștințe fuzzy (FKB) pe de o parte și instrumentul de achiziție de cunoștințe și evaluare de expresii pe de altă parte. În același timp, în cadrul instrumentului în sine, se dinsting două subsisteme, și anume: subsistemul ce se ocupă cu achiziția de cunoștințe (administrarea bazei de cunoștințe – FKA) și subsistemul ce se ocupă cu construirea și evaluarea expresiilor (FEE).
Modul în care aceste subsisteme interacționează este cel din figura 2.2.1.
Figura 2.2.1. Diagrama generală a fluxului de date între entități (subsisteme).
2.2.1. Subsistemul FKB
În acest caz, s-a ales ca baza de cunoștințe (FKB – Fuzzy Knowledge Base) să fie independentă de sistemul propriu-zis datorită caracteristicii sistemului de a se conecta la diferite baze de cunoștințe, însă conectarea la bazele de cunoștințe, modurile de acces, sunt administrate individual, de aceea s-a ales izolarea acesteia ca un subsistem în sine. FKB este o entitate structurată ca o mulțime de instanțe ale următoarelor clase de obiecte pasive: domenii de definiție (continui sau discrete), mulțimi fuzzy (continui sau discrete), numere fuzzy, modificatori lingvistici, fiecare dintre aceste clase cu proprietățile corespunzătoare, interdependența dintre acestea fiind cea deja specificată (vezi secțiunea 1.2.).
O secțiune prin sistem, cu privire la structura bazei de cunoștințe este cea din figura 2.2.1.1.
Figura 2.2.1.1. Diagrama relațiilor între entitățile componente ale subsistemului FKB.
2.2.2. Subsistemul FKA
Subsistemul FKA (Fuzzy Knowledge Acquisition) se ocupă cu administrarea entităților încapsulate în FKB, fiecare clasă de instanțe din FKB fiind administrată de o entitate a subsistemului FKA. Urmărind același raționament, subsistemul FKA poate fi si el împărțit în subsisteme, fiecare având funcții determinate, de serviciile fiecăruia depinzând într-o oarecare măsură funcționalitatea unuia sau mai multor subsisteme de pe același nivel al ierarhiei.
Structura internă a subsistemului FKA este descrisă în figura 2.2.2.1.
Figura 2.2.2.1. Structura subsistemului FKA.
2.2.3. Subsistemul FEE
Subsistemul FEE (Fuzzy Expression Evaluator) se ocupă cu construirea și evaluarea expresiilor fuzzy. Acesta folosește baza de cunoștințe pentru a asista la construirea expresiilor fuzzy iar apoi la evaluarea acestora, ambele procese fiind dependente de compoziția bazei de cunoștințe la momentul respectiv.
Structura subsistemului FEE este reprezentată în figura 2.2.3.1.
Figura 2.2.3.1. Structura subsistemului FEE.
Pentru rezolvarea problemei de achiziție de cunoștințe și evaluare de expresii fuzzy, s-a ales mediul de dezvoltare Visual Basic. Toate elementele ce vor urma, vor fi descrise în conformitate cu standardul pus de acest mediu de dezvoltare.
Conform cerințelor unei aplicații dezvoltate într-un mediu vizual cu specific de administrare de date, printre mediile adiționale necesare dezvoltării se mai numără medii de management de baze de date, de creare de elemente de asistență / ajutor în lucrul cu aplicația, uneori fiind necesare tehnici de programare la nivel de software de bază pentru a mări viteza execuției aplicației acolo unde este nevoie.
Etapele dezvoltării aplicației vor respecta aceeași gradualitate așa cum a fost specificat și în faza de proiectare, plecând de la baza de cunoștințe și continuând cu achiziția de cunoștințe și terminând cu evaluarea expresiilor fuzzy.
3.1. Implementarea bazei de cunoștințe fuzzy – FKB
Pentru implementarea claselor de obiectelor pasive din FKB se va folosi o bază de date relațională, caz în care sunt acoperite problemele legate atât de reprezentarea proprietăților fiecărei clase în parte cât și cele legate de regulile de relaționare a acestor entități, și nu în ultimul rând, regulile de conservare a coerenței datelor și a accesului la date.
Totodată, folosirea unei baze de date ca și bază de cunoștințe asigură portabilitatea acesteia și independența față de mediul în care aceasta va fi utilizată, atât timp cât se va păstra utilitatea, se va ține cont de structura acesteia și interpretarea datelor va fi corespunzătoare.
Pentru implementarea bazei de cunoștințe s-a ales mediul de management de baze de date Microsoft Access, oferind facilități atât în proiectarea propriu-zisă a bazei de date cât și în ce privește relaționarea entităților și specificarea rolulilor, regulilor și asocierilor împreună cu proprietățile acestora.
Elementele componente ale bazei de date sunt cele prezentate în figura 3.1.1.
Figura 3.1.1. Structura bazei de cunoștințe ca bază de date.
Fiecare dintre aceste elemente sunt reprezentate în baza de date printr-o tabelă (figura 3.1.2).
(a)
(b)
(c)
(d)
(e)
(f)
(g)
Figura 3.1.2. Structura tabelei Domenii (a – Domenii, b – Domenii discrete, c – Modificatori, d – Mulțimi, e – Mulțimi continui, f – Mulțimi discrete, g – Numre fuzzy).
Relațiile dintre aceste tabele sunt definite folosind propriul mediu de proiectare și sunt reprezentate în figura 3.1.3.
Figura 3.1.2. Diagrama Entitate – Relație pentru baza de cunoștințe FKB.
Un amănunt important considerat în implementare este faptul că această bază de date va fi salvată într-un fișier cu extensia CKB (Context Knowledge Base) tehnică prin care se va face conexiunea între instrument și o anumită bază de cunoștințe de context la un moment dat.
Un alt aspect îl prezintă modul în care se execută actualizările bazei de date, acesta fiind implementat folosind limbajul SQL, comunicarea cu baza de date fiind la nivel de conexiune, efectuată cu ajutorul obiectelor puse la dispoziție de librăriile de acces la date (DataAccessObject Library v2.5). Obiectele utilizate în acest caz sunt instanțe ale claselor Connection și RecordSet, împreună cu colecțiile de obiecte de tip Field și Rows.
3.2. Implementarea subsistemului FKAEE
Așa cum s-a specificat deja, instrumentul propriu-zis de management al bazei de cunoștințe este constituit din două subsisteme FKA și FEE, subsistemul de achiziție de cunoștințe și respectiv de evaluare de expresii (totodată construire de expresii).
O caracteristică general valabilă tuturor modulelor componente ale subsistemelor FKA și FEE este faptul că toate au fost dezvoltate având la bază clasa Window, diferențele dintre acestea constând în diferențele dintre valorile atributelor acestor instanțe, totodată, fiecare dintre acestea au o utilitate bine determinată.
Fereasta principală a aplicației și modulul de bază de la care se face legătura către celelalte module de management* a bazei de cunoștințe este cea din figura 3.2.1 (puteți dealtfel consulta Anexa A – Manualul utilizatorului).
Figura 3.2.1. Fereastra principală a aplicației.
Tot o caracteristică generală o constituie faptul că oriunde este nevoie de a se introduce informații, au fost folosite controale de tip TextBox, sau TextArea (după caz), acolo unde era nevoie doar de afișat informații se folosesc controale de tip Label, în cazul listelor de opțiuni s-au folosit fie controale de tip ComboBox sau controale RadioButton, în cazul opțiunilor multiple s-au folosit controale CheckBox, iar dacă este vorba despre liste pentru prezentarea unui volum mai mare de informații s-au folosit controale de tip ListView. Acolo unde este vorba de inițierea unei activități se folosesc controale de tip CommandButton. Toate aceste controale aparțin librăriei Microsoft Forms v2.0 (FM20.DLL – librărie ActiveX).
Așa cum s-a mai spus, fiecare modul are la bază o „fereastră” (obiect din clasa Window), fiecare dintre acestea implementând anumite funcții cu caracter general (de inițializare a mediului utilizatorului, de prezentare a informațiilor cerute, de salvare a datelor introduse, de afișare a informației de ajutor pentru utilizator, de închidere a modulului și intoarcerea la modulul precedent) sau cu caracter mai putin general (de extindere pentru afișarea de informații suplimentare, procesarea de informații corespunzătoare instanțelor din FKB pe care le administrează, s.a.m.d.)
3.2.1. Implementarea subsistemului FKA
Așa cum s-a descris deja, subsistemul de achiziție de cunoștințe este compus din modulele de administrare a bazei de cunoștințe: domenii de definiție (continui și/sau discrete), mulțimi fuzzy (continui sau discrete), numere fuzzy și modificatori lingvistici. Fiecăreia dintre acestea îi corespunde un modul ce poate deriva după caz pentru a satisface necesarul de informație ce se administrează.
Pentru modulul de management al domeniilor de definiție, fereastra principală în starea inițială este cea din figura 3.2.1.1.
Figura 3.2.1.1. Fereastra principală a modulului de administrare a domeniilor.
Pentru cazul în care se dorește vizualizarea proprietăților unui anumite domeniu de definiție ales din listă, fereastra principală se va extinde, devenind cea din figura 3.2.1.2.
Figura 3.2.1.2. Fereastra principală extinsă a modulului de administrare a domeniilor.
O particularitate aici o reprezintă cazul în care se dorește vizualizarea mulțimilor definite deja pe domeniul curent ales, caz în care fereastra modulului se va extinde iarăși, fiind cea din figura 3.2.1.3,
Figura 3.2.1.3. Fereastra principală extinsă a modulului de administrare a domeniilor.
sau posibilitatea în care sunt afișate atât proprietățile domeniului respectiv cât și mulțimile definite pe domeniul curent ales din listă (figura 3.2.1.4.).
Figura 3.2.1.4. Fereastra principală extinsă a modulului de administrare a domeniilor.
Pentru cazul în care domeniul este unul discret, există un modul anexă care se ocupă de administrarea elementelor discrete ale domeniului respectiv, ca în figura 3.2.1.5.
Figura 3.2.1.5. Fereastra principală extinsă pentru elementele discrete ale domeniilor.
În același mod funcționează modulul pentru administrarea mulțimilor fuzzy, aici fiind folosite trei ferestre: principală, pentru mulțimi continui și pentru mulțimi discrete, acestea fiind reprezentate în figura 3.2.1.6. a, b și c.
Figura 3.2.1.6.a) Fereastra principală a modulului de administrare a mulțimilor fuzzy.
Figura 3.2.1.6.b) Fereastra modulului pentru proprietățile mulțimilor fuzzy continui.
Figura 3.2.1.6.c) Fereastra modulului pentru proprietățile mulțimilor fuzzy discrete.
Pentru managementul numerelor fuzzy, fereastra principală (și singura în acest caz) este cea din figura 3.2.1.7.
Figura 3.2.1.7. Fereastra modulului pentru administrarea numerelor fuzzy.
Pentru managementul modificatorilor lingvistici, fereastra modulului este cea din figura 3.2.1.8.
Figura 3.2.1.8. Fereastra modulului pentru administrarea modificatorilor lingvistici.
3.2.2. Implementarea subsistemului FEE
Subsistemul pentru construirea și evaluarea expresiilor fuzzy, constă din două module pentru cele două cazuri de evaluare de expresii: aflarea valorii de adevăr pentru o expresie fuzzy și calculul gradului de apartenență a unui element la o mulțime fuzzy.
Pentru aflarea valorii de adevăr a unei expresii fuzzy, există cele două posibilități de construire a acestei expresii: folosind mulțimi (eventual și modificatori lingvistici) sau folosind numere fuzzy.
Pentru calculul gradului de apartenență a unui element la o mulțime fuzzy, se calculează dealtfel și gradul de apartenență a elementului la mulțimile cărora li se aplică modificatorii lingvistici (acolo unde este posibil), rezultând o listă de mulțimi cu modificatori lingvistici și gradele de apartenență corespunzătoare.
Pentru construirea expresiilor se folosește o tehnică ce utilizează metode de excludere a variantelor nepermise, implementate folosind controale DropdownCombo, starea unui control determinând starea celorlalte din lanțul de construire a expresiilor fuzzy, așa cum se prezintă în figura 3.2.2.1.
Figura 3.2.2.1. Fereastra modulului pentru construirea și evaluarea valorilor de adevăr a unei expresii fuzzy (cazul mulțimilor fuzzy).
Un exemplu pentru calculul gradului de apartenență la mulțimile din baza de cunoștințe este cel din figura 3.2.2.2.
Figura 3.2.2.2. Fereastra modulului pentru construirea și evaluarea gradelor de apartenență.
3.3. Implementarea funcțiilor speciale
Între funcțiile speciale pe care aplicația le oferă se numără: managementul mai multor baze de cunoștințe (permite crearea de baze de cunoștințe pentru fiecare context în parte).
3.3.1. Implementarea managementului bazelor multiple de cunoștințe
Pentru conectarea la diverse baze de cunoștințe de context, instrumentul pune la dispoziție cele trei funcții de bază: inițializarea contextului, salvarea acestuia sau deschiderea unei baze de cunoștințe de context definite apriori (încărcarea acesteia în memorie).
Aceste funcții sunt accesibile din fereastra principală a aplicației folosind butoanele din figura 3.3.1.1.
Figura 3.3.1.1. Fereastra modulului pentru construirea și evaluarea gradelor de apartenență.
O caracteristică a aplicației în cazul lucrului cu baze de cunoștințe multiple este faptul că memorează accesul la ultimele trei baze de cunoștințe cu care s-a lucrat, făcându-le accesibile din meniul popup ca în figura 3.3.1.2.
Figura 3.3.1.2. Accesul direct la ultimele baze de cunoștințe cu care s-a lucrat.
3.3.2. Implementarea subsistemului de asistență / ajutor
Se găsesc dezvoltate în aplicație trei tipuri de asistență în lucul cu modulele aplicației: ajutor on-line clasic implementat utilizând tipul de help CHM (Compiled HTML), ajutor de tip „enhanced tooltip” și ajutor de tip „spoken quick-tip” implementat folosind tehnologia Microsoft MSAgent v2.0.
În fiecare modul al aplicației este posibilă obținerea de informații suplimentare în lucrul cu modulul respectiv folosind cele trei metode de asistență. Pentru asistența clasică de tip „on-line help” este necesar să acționați butonul de ajutor din bara de unelte a ferestrelor modulelor principale sau oriunde se găsește semnul de ajutor, ca în figura 3.3.2.1.
Figura 3.3.2.1. Accesarea subsistemului de asistență în modulelel aplicației.
O altă posibilitate de a obține asistență sub formă de informații utile rapide în lucrul cu modulele aplicației, este să configurați aplicația să folosească unul dintre cele două posibilități de asistență: „enhanced tooltip” sau „spoken quick-tip” care este un gen de asistență creată folosind un personaj ca cele din pachetul Microsoft Office, cu specificarea că cel folosit aici (personajul Merlin) vă spune ceea ce reprezintă obiectul grafic asupra căruia rămâneți cu cursorul mouse-ului pentru o perioadă de timp mai mare de 3 secunde. Configurarea aplicației se face folosind modulul de Setări a cărei interfață cu utilizatorul este cea din figura 3.3.2.2.
Figura 3.3.2.2. Configurarea reacției aplicației la evenimente generate de utilizator.
Un exemplu de situație în care s-a ales modelul „enhanced tooltip” este reprezentat în figura 3.3.2.3. Acest model constă în afișarea unei ferestre personalizate cu un mesaj de text explicativ corespunzător contextului utilizatorului.
Figura 3.3.2.3. Exemplu de „tooltip”.
Un exemplu de situație în care s-a ales modelul asistentului este reprezentat în figura 3.3.2.4. Asistentul va fi disponibil numai dacă suportul pentru acesta a fost instalat în prealabil pe sistemul pe care rulează aplicația.
Figura 3.3.2.3. Exemplu de utilizare a asistentului.
3.4. Tehnici și tehnologii avansate
Între elementele avansate de dezvoltare se numără atât instrumente software profesionale cât și tehnici cu acces direct la funcțiile software-ului de bază (în acest caz, sistemul de operare Windows al Microsoft Corporation).
Astfel, pentru dezvoltarea bazei de cunoștințe (ca bază de date) s-a folosit mediul Microsoft Access, componentă a pachetului software Microsoft Office al firmei Microsoft Corporation. Acesta a permis atât construirea în întregime bazei de cunoștințe împreună cu toate elementele specifice unei baze de date relaționale (relații și proprietățile acestora, dependențe, reguli de asigurare a securității bazei de date și a coerenței datelor memorate). În plus, mediul oferă posibilitatea de a defini într-o manieră avansată schemele dependențelor și a relațiilor dintre tabelele bazei de date.
Pentru dezvoltarea propriu-zisă a modulelor aplicației s-au folosit tehnicile puse la dispoziție de mediul de dezvoltare Visual Basic, componentă software a pachetului de dezvoltare Microsoft Studio v6.0 al companiei Microsoft Corporation. Acest mediu oferă o gamă de facilități în ce privește interconectarea, importul, exportul de obiecte între diferite medii de dezvoltare, utilizând concepte precum: clase de obiecte, obiecte ActiveX (servere de obiecte, librării dinamice DLL, obiecte pentru accesul la baze de date), controale vizuale extinse pentru o flexibilitate avansată în operarea aplicației. Datorită caracterului vizual al mediului de operare a aplicației, aceasta se dezvoltă pe baza interacțiunii avansate cu utilizatorul, controlul acesteia fiind dezvoltat ca răspuns la evenimentele rezultate în urma interacțiunii cu utilizatorul, reacțiile și comportamentul fiind orientate conform evenimentelor. Aplicația are așadar un comportament dirijat de evenimente secvențiale.
Pentru implementarea procedurilor avansate, s-a folosit Windows API (Advanced Programming Interface) ce oferă accesul direct la funcțiile sistemului de operare (pentru implementarea subsistemului de asistență de tip „tooltip” și „spoken quick-tip”). Cazuri în care a fost necesară implementarea de tehnici de management run-time al obiectelor.
Pentru implementarea tipului de asistență clasic („on-line help”) a fost folosit mediul de dezvoltare HTML Help componentă a pachetului software RoboHELP Office al firmei Blue Sky Software Corporation.
În continuare sunt prezentate câteva exemple de funcții dezvoltate ca ți tehnici avansate de implementare.
Figura 3.4.1. Verificarea existenței suportului pentru Agentul Microsoft v2.0.
Figura 3.4.2. Implementarea subsistemului de asistență „enhanced tooltip”.
Figura 3.4.3. Implementarea subsistemului de asistență („enhanced tooltip” și „spoken quick-tip”.
Studiul instrumentului software în ce privește elementele de calitate este un proces important în dezvoltarea de software competitiv și de calitate.
Dealtfel, un stadiu deosebit de important este testarea produsului înainte de a fi livrat beneficiarului pentru a fi utilizat.
Un alt aspect deosebit de important este considerarea faptului că produsul software dezvoltat trebuie să permită alterări ulterioare în sensul extinderii sale (adăugării de noi module, aducerii la zi a tehnicilor și tehnologiilor utilizate, reutilizării parțiale sau în întregime a acestuia).
4.1. Testarea aplicației în condiții anormale
Din studiul contextului de lucru al aplicației, au reieșit următoarele situații care ar putea fi catalogate ca anormale în lucrul cu aplicația: situația datelor eronate, situații de terminare involuntară a aplicației datorită factorilor externi. De specificat este faptul că un control intrinsec a fost dezvoltat în aplicație pentru a asigura securitatea și coerența datelor din baza de date.
În continuare sunt exemplificate situații anormale și reacția aplicației în aceste situații.
Figura 4.1.1. Reacție în cazul introducerii de date eronate.
Figura 4.1.2. Reacție în cazul introducerii de date eronate.
Exceptând situațiile anormale, pentru asigurarea securității datelor se întâlnesc situații în care utilizatorul trebuie interogat în legătură cu intențiile sale în operarea aplicației.
Figura 4.1.3. Dubla verificare în cazul unei operații cu urmări deosebite.
Figura 4.1.4. Interogarea utilizatorului în legătură cu intențiile sale.
4.2. Evaluare
Dintre elementele folosite în evaluarea aplicației se numără: clasificarea produsului ca și grad de complexitate, analiza elementelor de interfață cu utilizatorul, validitatea, integritatea și alte elemente caracteristice unui studiu de calitate.
4.2.1. Clasificarea aplicației
Aplicația se distinge ca fiind de complexitate medie cu un număr de 6586 linii de cod, dezvoltată de un programator de-a lungul a circa 7 luni, cu interacțiuni simple cu alte sisteme, și un total de 17 module. Considerând un alt criteriu de clasificare, programul face parte din categoria programelor S, funcția sa fiind complet definită prin specificații.
4.2.2. Studiul caracteristicilor de calitate
În ce privește caracteristicile de calitate, aplicația se distinge printr-o interfață cu utilizatorul foarte intuitivă, ușor accesibilă, compusă din elemente vizuale cum ar fi: butoane de comenzi, liste de opțiuni, liste pentru rapoarte detaliate, zone de text, butoane radio, casete „check-box”, etichete (figura 4.2.2.1.).
Figura 4.2.2.1. Dubla verificare în cazul unei operații deosebite.
În ce privește validitatea aplicației, aceasta rezolvă toate problemele specificate.
Integritatea acesteia este asigurată de caracteristicile tehnologiilor folosite în dezvoltare: datele sunt protejate de sistemul de protecție asigurat de mediul Microsoft Access, protecția codului fiind asigurată de particularitățile mediului de dezvoltare Visual Studio și de faptul că acesta este compilat și transformat în cod executabil (568KB), utilizatorul neavând acces la sursele acestuia, accesul la date fiind asigurat prin funcțiile aplicației.
Fiabilitatea este asigurată de sistemul de protecție în situații anormale implementat în aplicație.
4.3. Mentenanță
Printre elementele caracteristice în acest sens se numără: faptul că aplicația este dezvoltată într-un limbaj ce implementează tehnicile de dezvoltare orientate pe obiect, compatibilitatea aplicației este asigurată de compatibilitatea versiunilor mediilor de dezvoltare folosite pentru a crea aplicația, interconectivitatea este dealtfel asigurată de funcțiile mediilor de dezvoltare folosite.
Extinderea aplicației este asigurată prin tehnicile add-on fiind complet compatibilă cu acestea, interconectivitate prin obiecte ActiveX, adăugarea de noi clase, module, cu acces direct la resursele globale ale aplicației (variabile, librării de funcții, obiecte cu acces global).
Acest ghid corespunde implementării sistemului de asistență pus la dispoziție odată cu aplicația și descrie pașii pe care trebuie să-i urmeze utilizatorul acestui instrument pentru a putea folosi instrumentul în scopul pentru care a fost creat.
Modul de utilizare este prezentat gradual urmărind succesiunea pașilor ce trebuiesc parcurși, cu descrierea posibilităților, opțiunilor și atenționarea în anumite situații cu privire la consistența datelor preluate de la utilizator.
Cuprins
Achizitie de cunostinte si evaluare de expresii fuzzy
Inca din momentul in care s-au pus bazele Inteligentei Artificiale, o atentie deosebita a fost acordata modelelor de reprezentare si metodelor de procesare a limbajului natural.
Unul dintre principiile de baza in automatizarea rationamentului presupune existenta unei baze de cunostinte reprezentate sub o anumita forma pentru a defini in mod efectiv un context corespunzator unei probleme.
Aplicatia de fata, isi propune sa fie un instrument util unui inginer de cunostinte pentru a putea crea o baza de cunostinte fuzzy in scopul definirii in mod efectiv un anumit context. Mai mult, aplicatia pune la dispozitia utilizatorului un instrument de construire de expresii fuzzy pentru care se poate evalua gradul de adevar (in sensul corespondentelor dintre cunostintele reprezentate si efectul utilizarii acestora in cadrul unor expresii in limbaj natural).
Pentru aceasta, aplicatia dispune de o serie de elemente ce permit definirea unui context impreuna cu toate elemetele necesare construirii unei baze de cunostinte corespunzatoare contextului in cauza.
Elementele principale sunt usor accesibile prin intermediul optiunilor sistemului si a barei de unelte ce face legaturile catre modulele implementate pentru a putea atinge scopul propus.
Pentru a va asista in operarea modulelor aplicatiei, au fost dezvoltate o serie de elemente specifice: explicatiile sub forma de ‘tooltip/quicktip’, cat si cele oferite de sistemul de ajutor. Pentru asistenta suplimentara, folositi butonul situat pe bara de unelte a fiecarui modul.
Tudorel Mirel LAZAR, mai 2001.
Achizitie de cunostinte si evaluare de expresii fuzzy
Versiunea 1.1
(C) copyright 2000 – 2001
Optiunile aplicatiei
Meniul ofera in primul rand posibilitatea administrarii bazelor de cunostinte corespunzatoare contextelor multiple ce pot fi pastrate in locuri diferite pe suporti de stocare diferiti.
Acesta va ofera posibilitatea sa initializati contextul pentru a crea baza de cunostinte pentru un nou context, sa salvati sau sa incarcati o baza de cunostinte cu scopul de adauga noi elemente sau de a le modifica pe cele deja existente.
Aveti deci posibilitatea sa:
Creati un context nou (initializarea bazei de cunostinte) prin apasarea butonului .
Incarcati o baza de cunostinte deja creata si salvata pe un suport de memorie prin apasarea butonului si alegerea optiunii 'Incarca contextul…' sau prin alegerea unuia dintre cele disponibile ca acces rapid.
Salvati baza de cunostinte corespunzatoare contextului curent prin apasarea butonului .
Parasiti aplicatia apasand din bara de titlu a aplicatiei sau din bara de unelte principala a aplicatiei.
Minimizati fereastra aplicatiei apasand din bara de titlu a aplicatiei.
Observati faptul ca aplicatia va memora legaturile catre ultimele trei baze de cunostinte cu care s-a lucrat, alegand una dintre legaturi corespunzatoare numelui bazei de cunostinte din meniul popup obtinut prin apasarea din stanga barei de unelte principale a aplicatie (langa bara verticala de titlu).
In plus, aveti acces catre sistemul de ajutor / asistenta pus la dispozitie odata cu aplicatia ( in bara principala) si la informatiile referitoare la aplicatie prin submeniul 'Help' – 'Despre'.
Optiuni de ajutor in operare
Aici aveti posibilitatea sa modificati anumite elemente legate de comportamentul aplicatiei in operare. Dintre aceste elemente se regasesc:
Sunete Specifica aplicatiei daca se vor folosi sunete in operarea elementelor vizuale ale aplicatiei (click-uri).
QuickTip Specifica aplicatiei daca in operare se vor folosi mesaje 'tips' pentru a oferi un ajutor minimal in operarea modulelor
Asistentul Miscrosoft Specifica daca se va folosi ca ajutor in operare, Asistentul Microsoft MSAgent. Acesta consta in aparitia unui asistent ca cel folosit in pachetul Microsoft Office, un personaj ce dicteaza mesajul de ajutor in lucrul cu aplicatia.
Observatie: Aceasta optiune este activa doar daca pachetul MSAgent este preinstalat in sistem. In aceasta versiune a aplicatiei, acest pachet nu este furnizat. Pentru a instala pachetul, vizitati site-ul Microsoft la adresa http://msdn.microsoft.com/msagent/.
Pentru a putea folosi aceasta optiune aveti nevoie de pachetul de baza MSAgent (versiunea 2.0 sau una mai actuala: MSAgent.exe, spchcpl.exe, actcnc.exe, TV_Enua.exe), pachetul Text-To-Speech (cu suport pentru limba italiana deoarece suportul pentru limba romana nu este disponibil cel putin deocamdata: AgtX0410.exe, lhttsiti.exe) si personajul Merlin (Merlin.exe)
Proprietati ale contextului
Aici aveti posibilitatea sa specificati cateva detalii in ce priveste contextul pentru care creati baza de date. Aceste detalii au doar caracter informativ si vor fi stocate in baza de cunostinte insa nu vor afecta executia aplicatiei.
Aceste detalii se refera la:
nume – un nume (identificator) dat contextului ca reprezentand un anumit domeniu;
descriere – o descriere a contextului in cateva cuvinte;
note/observatii – reprezinta anumite note si/sau observatii pe care doriti sa le faceti vis-a-vis de baza de cunostinte.
Pentru a salva modificarile apasati butonul Salveaza si Inchide.
Modulele aplicatiei
Modulele corespund fiecare unei etape in construirea bazei de cunostinte, accesul la aceste module facandu-se prin intermediul barei de unelte a ferestrei principale a aplicatiei.
De aici aveti posibilitatea sa accesati urmatoarele module:
Domenii apasand butonul .
Multimi fuzzy apasand butonul .
Numere fuzzy apasand butonul .
Modificatori lingvistici apasand butonul .
Cuantificatorii si Operatorii nu fac obiectul administrarii bazei de cunostinte deoarece nu depind de context ci de limbaj si nu afecteaza in mod direct o multime fuzzy.
Evaluarea expresiilor este posibila in modulul accesibil apasand butonul .
Descrierea contextului in sensul specificarii unor date referitoare la un nume dat contextului, anumite particularitati, note si observatii este accesibila apasand butonul .
O serie de elemente legate de comportamentul sistemului in operare, se pot defini in sectiunea .
Sistemul de Ajutor este accesibil apasand butonul .
Parasirea aplicatiei este posibila apasand butonul .
De aici, in functie de intentia dumnevoastra, veti fi ghidat in aplicatie prin intermediul elementelor vizuale usor de utilizat.
Domenii
Aplicatia pe care o folositi, defineste domeniile ca si suporturi pentru reprezentarea multimilor fuzzy necesare descrierii realului ce se doreste a fi modelat in contextul curent.
Aceste domenii pot fi definite atribuind valori proprietatilor ce descriu identificatorul domeniului asa cum va fi el definit si ulterior folosit in context, unitatea de masura a valorilor ‘continute’ in domeniu, tipul domeniului (infinit, finit sau discret) cat si limitele sale absolute (sau de referinta) – limite ce descriu intervalul din care domeniul (infinit sau finit dar nu si discret) ia valori.
Asadar, a defini un domeniu consta in a furniza valori corespunzatoare proprietatilor acestuia:
Numele (identificatorul) domeniului reprezinta un sir de caractere (max.25 caractere) ce va identifica (d.p.d.v. lexical) domeniul ce se vrea definit. Acest identificator va fi folosit ulterior in aplicatie pentru a face referire la domeniul respectiv (Ex. Multimea fuzzy joasa definita pe domeniul temperatura.).
Unitatea de masura reprezinta un sir de caractere (max.25) ce vor fi folosite pentru a specifica masura pentru valorile reprezentate de domeniul respectiv (Ex. Pentru domeniul temperatura, unitatea de masura poate fi grade.).
Tipul domeniului poate fi infinit, finit sau discret. Acestea reprezinta faptul ca valorile domeniului pot fi: reale, oarecare, dintr-un interval nedefinit (ale carui limite nu se cunosc) – domenii infinite (Ex. temperatura – intr-un context general); apartinand unui interval ale carui limite sunt cunoscute si foarte bine specificate – domenii finite (Ex. temperatura corpului uman – intr-un context medical) sau discrete – domenii discrete (Ex. gustul – poate lua doar valorile: dulce, amar, acru, sarat, etc.). Observati faptul ca un domeniu discret este neaparat un domeniu finit.
Limitele (inferioara si superioara) ale intervalului (real) in care domeniul este definit. Aceste limite sunt de referinta pentru domenii infinite, absolute pentru domenii finite sau nedefinite pentru domenii discrete. Observati faptul ca aceste limite se pot specifica drept valori apartinand multimii numerelor reale.
Modulul aplicatiei in care puteti defini domenii va pune la dispozitie instrumente pentru specificarea tuturor acestor proprietati caracteristice atat pentru a defini noi domenii cat si pentru a efectua modificari ale proprietatilor domeniilor deja definite si altele.
Pentru alte informatii referitoare la modalitatile in care pot fi administrate aceste domenii vedeti Lucrul cu domenii.
Lucrul cu domenii
Pentru lucrul cu domenii aveti la dispozitie modulul care se refera la administrarea acestora pentru baza de cunostinte corespunzatoare contextului de lucru curent.
In acest modul va sta la dispozitie bara de unelte corespunzatoare, ce va pune la dispozitie operatiunile de creare/definire a unui nou context, vizualizare/modificare a valorilor corespunzatoare proprietatilor unui domeniu, de stergere a unui domeniu, vizualizarea multimilor definite pe un anumit domeniu, s.a.m.d.
Bara de unelte a modulului are urmatoarea alcatuire, in ordinea functiilor pe care le pune la dispozitie:
Crearea/Definirea unui nou domeniu se poate face apasand butonul . La apasarea acestui buton, fereastra modulului se va extinde oferind posibilitatea de a specifica valorile corespunzatoare proprietatilor domeniului ce se vrea definit. Dupa definirea tuturor acestor valori se poate apasa butonul ‘Salveaza’ pentru a salva modificarile facute sau se poate oricand renunta la aceste modificari apasand butonul ‘Renunta’.
Vizualizarea/Modificarea valorilor corespunzatoare proprietatilor domeniului se poate face apasand butonul . Acesta permite (ca si in cazul crearii domeniului) extinderea ferestrei modulului permitand vizualizarea (eventual modificarea) valorilor proprietatilor ce definesc domeniul ales. Observati faptul ca in cazul in care sunt definite multimi pe domeniul ales din lista, nu veti avea posibilitatea sa modificati valorile tuturor proprietatilor domeniului ci numai acelor proprietati ce se refera la Nume si Unitate de masura.
Stergerea unui domeniu este posibila apasand butonul . In acest caz, veti fi interogat in vederea confirmarii efectuarii actiunii, caz in care, raspunzand afirmativ veti opta pentru stergerea efectiva a datelor referitoare la domeniul respectiv, cat si a multimilor definite pana in acel moment pe domeniul ales. Odata sters, un domeniu poate fi eventual redefinit (afirmatie valabila si in ce priveste eventualele multimi ce au ca suport de reprezentare domeniul respectiv).
Apasarea butonului va oferi explicatii suplimentare referitoare la domenii cat si la modul de utilizare al acestora in contextul in care sunt definite.
Apasand butonul aveti posibilitatea sa vizualizati multimile definite pe domeniul ales din lista. In aceasta situatie, fereastra modulului se va extinde pentru a afisa lista cu multimile ce au ca suport de reprezentare domeniul respectiv.
Butonul ofera accesul la modulul ce administreaza valorile discrete ale domeniului (discret si el) ales din lista. Veti observa faptul ca aceasta optiune va fi valida doar pentru acele domenii ce sunt definite ca fiind domenii discrete. Din momentul in care ati ales aceasta optiune, veti avea posibilitatea sa definiti valorile discrete corespunzatoare unui domeniu discret. Controlul va fi preluat de modulul ce permite adaugarea, modificarea, stergerea elementelor ce definesc un domeniu discret, revenirea in modulul de administrare a domeniilor fiind posibila abia dupa ce veti inchide fereastra modulului pentru lucrul cu elementele discrete ale domeniului.
Elemente discrete ale domeniilor
Modulul pune la dispozitie mijloacele necesare pentru a defini elementele ce definesc domeniile discrete. Lucrul cu aceste elemente este foarte simplu, acesta constand doar in enumerarea acestor elemente.
Bara de unelte ofera urmatoarele posibilitati:
Adaugarea unui element nou este posibila apasand butonul . Fereastra modulului se va extinde oferind posibilitatea specificarii elementului respectiv. Pentru a salva datele, apasati butonul ‘Salveaza’, iar pentru a renunta la modificarile facute apasati oricand butonul ‘Renunta’.
Modificarea/Vizualizarea unui element ales din lista, apasati butonul . In aceasta situatie, va este permisa modificarea elementului respectiv.
Stergerea unui element este posibila apasand butonul . In acest moment vi se va cere confirmarea stergerii, caz in care, raspunzand afirmativ veti pierde informatia corespunzatoare elementului ca si componenta a domeniului discret respectiv, cat si elementul corespunzator definit pentru o multime fuzzy care-l foloseste pentru a se defini.
Apasarea butonului determina aparitia acestui dialog de ajutor.
Multimi fuzzy
Multimile fuzzy sunt reprezentate in limbajul natural termeni ce pot avea valori arbitrare uneori. In exemplul “Temperatura este joasa”, nu se cunoaste exact care este valoarea temperaturii insa, daca este vorba de temperatura apei, putem presupune faptul ca aceasta ar putea fi intre 0 si 10 grade de exemplu. Totusi, afirmatia “Daca temperatura apei este 12 grade, atunci are temperatura este joasa.” poate avea un anumit grad de adevar corespunzator interpretarii afirmatiei in contextul in care aceasta a fost emisa.
Ceea ce ramane de facut in acest caz este sa se reprezinte sub o forma automatizata (digitala) informatia corespunzatoare interpretarii unei anumite valori lingvistice pentru acesti termeni ce pot avea interpretari diferite in functie de context.
De aceasta reprezentare se ocupa in continuare modulul de lucru cu multimi fuzzy ce va permite definirea multimilor fuzzy prin intermediul functiei de apartenenta corespunzatoare ce va specifica felul in care sunt dispuse valorile ce acopera aria de reprezentare a unei multimi fuzzy cat si corespondenta dintre aceste valori si gradul lor de apartenenta la multimea fuzzy in cauza.
Lucrul cu multimi fuzzy
Acest modul va ofera posibilitatea definirii multimilor fuzzy prin intermediul caracteristicilor acestora ce se refera la domeniul de discurs, valoarea lingvistica si functia de apartenenta corespunzatoare.
Pentru aceasta, aveti puse la dispozitie mai intai, elemente ce va permit o administrare facila a multimilor fuzzy definite pe anumite domenii. De aici aveti posibilitatea sa definiti o multime noua, sa vizualizati / modificati proprietatile unei multimi,
In administrarea multimilor fuzzy aveti urmatoarele posibilitati:
Crearea/Definirea unei multimi este posibila apasand butonul . De aici veti fi ghidat in definirea elementelor caracteristice unei multimi fuzzy. Observati faptul ca butonul este accesibil numai in situatia in care ati ales din lista cu domenii definite in contextul curent, domeniul pe care vreti sa definiti noua multime.
Vizualizarea/Modificarea proprietatilor unei multimi fuzzy este posibila apasand butonul . Si aici veti fi ghidat catre sectiunea ce se ocupa de specificarea proprietatilor unei multimi fuzzy.
Stergerea unei multimi fuzzy impreuna cu toate proprietatile asociate este posibila apasand butonul .
Alte detalii in legatura cu modul in care se definesc proprietatile unei multimi fuzzy veti afla in cadul modulului Definirea proprietatilor multimilor fuzzy.
Definirea proprietatilor multimilor fuzzy
Aceasta sectiune este foarte importanta constand in specificarea elementelor definitorii pentru o multime fuzzy fie ea discreta sau continua. Observati faptul ca definirea unei multimi fuzzy pe un domeniu discret presupune definirea unei multimi discrete, asa cum definirea unei multimi pe un domeniu continuu presupune definirea unei multimi continui.
Sectiunea I. Definirea multimilor fuzzy continui
Aceasta consta in definirea functiei de apartenenta a multimii fuzzy prin specificarea corespondentei valoare-grad sub o forma foarte accesibila, forma reprezentarii grafice. Aveti posibilitatea sa:
Specificati un nume multimii fuzzy pe care doriti sa o definiti
Specificati punctele de ghidare corespunzatoare reprezentarii multimii fuzzy. Aceasta se face specificand punct cu punct apasand butonul . Pentru a sterge toate punctele definite in grafic apasati butonul . Pentru a modifica ‘coordonatele’ corespunzatoare unui punct aveti doua posibilitati:
– alegeti punctul facand click pe acesta in grafic sau dublu-click pe corespondentul sau din lista cu punctele definite, apoi cu drag and drop il puteti muta oriunde pe grafic;
– dupa ce ati ales punctul, puteti specifica ‘coordonatele’ (corespondenta valoare-grad) in casetele text ‘Valoare’ si ‘Grad’ dupa care apasati butonul ‘Muta’.
Pentru a sterge un singur punct din grafic, apasati click dreapta pe punctul respectiv.
Pentru a salva proprietatile multimii asa cum au fost ele definite, apasati oricand butonul ‘Salveaza’. Pentru a renunta, apasati butonul ‘Renunta’.
Sectiunea II. Definirea multimilor fuzzy discrete
Aceasta consta in definirea elementelor discrete ale multimii impreuna cu gradul de apartenenta corespunzator. Pentru aceasta, se vor alege dintre valorile discrete ale domeniului, acele valori ce privesc multimea curenta, se vor specifica gradele de apartenenta corespunzatoare si se vor salva pentru a putea fi folosite in constituirea bazei de cunostinte.
In acest scop, mecanismul este urmatorul:
Se alege o valoare din lista cu valori discrete disponibile apasand dublu-click;
Se specifica gradul de apartenenta corespunzator valorii alese (o valoare reala din intervalul [0,1]);
Se apasa butonul pentru adaugarea elementului impreuna cu gradul corespunzator in multimea definita.
Pentru salvarea multimii astfel definite apasati butonul ‘Salveaza’. Pentru abandon in definirea multimii fuzzy apasati butonul ‘Renunta’.
Numere fuzzy
In limbajul natural, numerele fuzzy sunt termeni ce specifica o valoare aproximativa mai mica, in jurul sau mai mare fata de o anumita valoare aleasa ca referinta (Ex. ‘temperatura in jur de 10 grade’).
Problema care se pune este definirea acestor termeni in sensul valorii pe care vor sa o reprezinte sub forma procentuala fata de valoarea aleasa ca referinta, impreuna cu modul in care afecteaza (simetria) ce poate fi la stanga – ‘aproape’, la dreapta – ‘putin peste’, sau si la stanga si la dreapta – ‘in jur de’.
Specificarea modului in care afecteaza un numar fuzzy impreuna cu valoarea ce da masura in care afecteaza, este posibila in cadrul modulului de administrare a acestor termeni, modalitatile de specificare a acestor elemente fiind detaliate in Lucrul cu numere fuzzy.
Lucrul cu numere fuzzy
In cadrul acestui modul va sunt puse la dispozitie elemente specifice definirii proprietatilor numerelor fuzzy precum si o reprezentare grafica asupra modului in care acestea afecteaza in limbaj natural.
Pentru administrarea numerelor fuzzy aveti la dispozitie bara cu unelte ce ofera urmatoarele posibilitati:
Crearea/Definirea unui numar fuzzy este posibila apasand butonul .
Vizualizarea/Modificarea proprietatilor unui numar fuzzy este posibila apasand butonul .
Stergerea unui numar fuzzy se face apasand butonul .
Ajutorul oferit in lucrul cu Numere fuzzy este la dispozitia dumneavoastra prin apasarea butonului .
Pentru definirea proprietatilor numerelor fuzzy aveti la dispozitie urmatoarele posibilitati:
Specificarea unui nume corespunzator numarului fuzzy, nume ce se refera la termenul asa cum apare el in limbaj natural (Ex. aproape, in jur de, putin peste);
Specificarea valorii procentuale corespunzatoare masurii de reprezentare a numarului fuzzy.
Specificarea simetriei corespunzatoare numarului fuzzy (Ex. la stanga, la stanga si la dreapta, la dreapta);
Vizualizarea reprezentarii grafice corespunzatoare modului in care afecteaza numarul fuzzy conform proprietatilor definite.
Salvarea datelor corespunzatoare se face apasand butonul ‘Salveaza’, renuntarea fiin oricand posibila prin apasarea butonului ’Renunta’.
Modificatori lingvistici
Modificatorii lingvistici sunt folositi pentru a modifica gradul de imprecizie reprezentat printr-o multime fuzzy.
In limbaj natural, oamenii pot modifica gradul de ambiguitate al unui enunt (propozitie) folosind adverbe precum nemaipomenit de, extrem de, foarte. Un adverb este un cuvant ce modifica un verb, un adjectiv, un alt adverb sau toata propozitia. Daca se doreste construirea unei expresii de tipul: “Temperatura este foarte scazuta.”, modificatorul lingvistic foarte trebuie reprezentat in baza de cunostinte respectand ordinea in care acesta afecteaza (modifica) o multime fuzzy in raport cu modificatorii existenti.
Pentru a afla modul de lucru cu modificatorii lingvistici vedeti Lucrul cu modificatori lingvistici.
Lucrul cu modificatori lingvistici
Pentru a reprezenta si administra modificatorii lingvistici din baza de cunostinte, in modulul aplicatie care se refera la acestia aveti la dispozitie bara de unelte prin intermediul butoanelor careia se pot adauga noi modificatori, se pot modifica cei existenti si se pot sterge modificatorii deja existenti.
Aceasta bara de unelte prezinta urmatoarele optiuni:
Crearea unui modificator lingvistic este posibila prin apasarea butonului . In acest moment, fereastra modulului se va extinde pentru a permite introducerea modificatorului in forma folosita in limbaj natural. Pentru a adauga modificatorul la baza de cunostinte, este nevoie sa apasati butonul ’Salveaza’. Daca doriti anularea comenzii, apasati oricand butonul ‘Renunta’.
Proprietatile unui modificator lingvistic sunt accesibile apasand butonul . De aici aveti posibilitatea sa modificati proprietatile modificatorului ales din lista, proprietati care se refera in acest caz doar la ‘numele’ modificatorului.
Stergerea modificatorului ales se face apasand butonul dupa care vi se va cere confirmarea stergerii. Daca doriti sa-l stergeti va trebui sa raspundeti afirmativ si modificatorul va fi sters din baza de cunostinte.
Apasarea butonului va afisa acest dialog de ajutor.
O importanta deosebita in acest modul se va acorda ordinii modificatorilor in lista deoarece, aceasta ordine va da taria cu care modificatorii vor afecta multimile fuzzy asupra carora actioneaza. Aceasta ordine este de la cel mai putin puternic (pe prima pozitie) la cel mai puternic (pe ultima pozitie). Aceasta ordine este indicata in modul prin figura si poate fi oricand schimbata folosind butoanele si care vor urca respectiv cobori modificatorul ales din lista crescand sau reducand gradul in care va actiona asupra multimii fuzzy.
Construirea si evaluarea expresiilor
In acest modul se ofera posibilitatea evaluarii expresiilor fuzzy construite cu ajutorul cunostintelor furnizate sub forma domeniilor, multimilor, numerelor fuzzy, modificatorilor lingvistici, s.a.m.d.
Aici se disting doua situatii:
Evaluarea gradului de apartenenta a unei valori din domeniu la o multime fuzzy in functie de o expresie fuzzy specificata (construita);
Evaluarea gradelor de apartenenta a unei valori din domeniu la multimile definite pe domeniul respectiv.
In primul caz, se construieste o expresie fuzzy avand la dispozitie ca prima posibilitate domeniul, modificatorul lingvistic, multimea fuzzy si valoarea pentru care se evalueaza gradul de apartenenta. Se alege pentru fiecare dintre aceste categorii optiunea/valoarea corespunzatoare urmarind expresia astfel construita.
Cea de-a doua posibilitate este sa se construiasca o expresie avand la dispozitie domeniul, numarul fuzzy si valoarea pentru care se vrea evaluat gradul MAXIM de apartenenta. Alegand optiunile pentru domeniu, numar fuzzy si valoare, se va construi o expresie care va putea fi apoi evaluata pentru a calcula gradul MAXIM de apartenenta.
Observati faptul ca daca ati ales sa folositi un modificator fuzzy (prima posibilitate aici) nu veti putea avea acces la numerele fuzzy (cea de-a doua posibilitate). Daca doriti totusi sa folositi cea de-a doua modalitate de a construi o expresie fuzzy, va trebui sa alegeti dintre modificatorii lingvistici acea optiune care reprezinta un modificator ‘vid’ (lipsa unui modificator – prima optiune din lista) caz in care veti avea acces la numerele fuzzy. Aceeasi situatie o veti intalni cand veti alege sa folositi un numar fuzzy pentru a construi o expresie, caz in care nu veti putea folosi modificatorii lingvistici si multimile fuzzy. Revenirea se poate face alegand numarul fuzzy ‘vid’.
Pentru ajutor in ce priveste modalitatea de evaluare vedeti Grade de apartenenta.
In cel de-al doilea caz, se va alege un domeniu si o valoare corespunzatoare pentru a construi o expresie de evaluat. Expresia astfel construita va fi verificata pentru toate multimile definite pe domeniul respectiv aplicand (acolo unde este posibil) toti modificatorii lingvistici definiti in contextul curent.
Pentru ajutor in ce priveste modalitatea de evaluare vedeti Multimi si grade de apartenenta.
Grade de apartenenta
Evaluarea gradului de apartenenta a unei valori la o multime fuzzy (‘modificata’ sau nu) consta in calculul punctului de ordonata (de pe graficul de reprezentare a multimii) corespunzator abscisei reprezentate de valoarea specificata in expresia fuzzy de evaluat.
Daca expresia fuzzy construita este una corecta (ceea ce este foarte posibil datorita constructorului de expresii), veti avea posibilitatea sa evaluati acea expresie apasand butonul ‘Evalueaza’. Dupa ce acest grad a fost calculat, el va fi intors ca reprezentand gradul de apartenenta a valorii specificate la multimea (modificata sau nu) corespunzatoare folosita in construirea expresiei.
Observati faptul ca veti fi avertizati ca, pentru cazul in care domeniul este unul finit, nu puteti specifica o valoare in afara domeniului. Limitele inferioara respectiv superioara va vor fi specificate in cazul in care veti introduce o valoare nepermisa.
Pentru cazul in care domeniul este infinit, puteti specifica o valoare in afara limitelor de referinta ale domeniului insa, gradul de apartenenta va fi evaluat functie de multimile definite la extremitatile domeniului (acele multimi asupra carora se pot aplica modificatori).
Multimi si grade de apartenenta
Pentru acest caz, veti putea construi o expresie folosind un domeniu si o valoare corespunzatoare, evaluarea constand in verificarea gradului de apartenenta a acelei valori pentru toate multimile definite pe domeniul respectiv.
Mai mult, acolo unde este posibil (pentru multimile definite la extremitatile domeniului), se vor aplica toti modificatorii lingvistici definiti in contextul curent, evaluandu-se gradul de apartenenta pentru multimea nou creata (modificata).
Rezultatul evaluarii gradelor de apartenenta corespunzator combinatiilor modificator-multime va vor fi raportate in lista cu rezultatele evaluarii in ordinea descrescatoare a gradelor se apartenenta rezultate in urma evaluarii.
Observati ca nu veti putea specifica o valoare in afara limitelor domeniului daca acesta este unul finit. Limitele domeniului va vor fi specificate in momentul in care veti incerca sa introduceti o valoare nepermisa.
Index
A
Achizitie de cunostinte si evaluare de expresii fuzzy ii
C
Construirea si evaluarea expresiilor xviii
D
Definirea proprietatilor multimilor fuzzy xii
Domenii vi
E
Elemente discrete ale domeniilor ix
G
Grade de apartenenta xix
L
Lucrul cu domenii vii
Lucrul cu modificatori lingvistrici xvii
Lucrul cu multimi fuzzy xi
Lucrul cu numere fuzzy xv
M
Meniul aplicatiei iii
Modificatori lingvistici xvi
Modulele aplicatiei v
Multimi fuzzy x
Multimi si grade de apartenenta xx
N
Numere fuzzy xiv
Bibliografie
1. Cornelia Istode NOVAC – Inginerie Software, Ed. Tehnică, București, 1999
2. L. A. ZADEH – Fuzzy sets, 1965.
3. Tudorie, C. – Baze de date, Universitatea „Dunărea de Jos” din Galați, 1994
4. Bockmann C. J., Klander L., Tang Lingyan – Visual Basic Programmer’s Library, Jamsa Press, 1998
5. Walnum C. – Windows 98-Programming Secrets, IDG Books Worldwide, 1999
6. Petzold C. – Programming Windows 95, Microsoft Press, 1996
7. Luers T. – Essential Oracle 7, SAMS Publishing, 1995
8. MSDN Library Visual Studio v6.0 Release
9. RoboHELP HTML 2000 – Copyright Blue Sky Software Corporation, 1997-1999
10. About – The Human Internet: Visual Basic, http://visualbasic.about.com/
11. MSDN Online Web Workshop – Microsoft Agent, http://msdn.microsoft.com/
12. The Microsoft Agent Ring, http://www.msagentring.org/
13. Microsoft Visual Basic Home Page, http://msdn.microsoft.com/vbasic/
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: Instrument Software Pentru Achizitia de Cunostinte Si Evaluarea de Expresii Fuzzy (ID: 149109)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
