Documente Academic
Documente Profesional
Documente Cultură
ÎNDRUMAR DE
LABORATOR
1
2
CUPRINS
LUCRAREA NR. 1.................................................................................................................................... 5
PERCEPTRONUL BINAR..................................................................................................................... 11
1. SCOPUL LUCRĂRII .............................................................................................................................. 11
2. NOŢIUNI GENERALE ........................................................................................................................... 11
2.1 Structura generală a perceptronului binar.................................................................................. 11
2.2 Algoritm de antrenare al perceptronului binar ........................................................................... 12
2.3 Funcţii Matlab........................................................................................................................... 13
PROBLEME PROPUSE .............................................................................................................................. 14
LUCRAREA NR. 3.................................................................................................................................. 17
SISTEME FUZZY................................................................................................................................... 31
1 SCOPUL LUCRĂRII ............................................................................................................................... 31
2 NOŢIUNI TEORETICE ........................................................................................................................... 31
2.1 Structura generală a unui sistem fuzzy........................................................................................ 31
2.2 Variabile, valori şi reguli lingvistice........................................................................................... 32
2.3 Proiectarea unui sistem fuzzy ..................................................................................................... 33
3. FUNCŢII MATLAB .............................................................................................................................. 34
PROBLEMĂ PROPUSE ............................................................................................................................. 36
3
4
Lucrarea nr. 1
1. Scopul lucrării
Familiarizarea studenţilor cu structura generală a unui neuron artificial.
Crearea primului neuron artificial utilizând funcţia Matlab newlin. Simularea
neuronului creat cu ajutorul funcţiei Matlab sim. Crearea unui perceptron cu funcţia
Matlab newp. Simularea perceptronului folosind diferite funcţii de activare.
2. Noţiuni teoretice
1 daca y 0
Fa ( y ) (2)
1 daca y 0
1 daca y 1
Fa ( y ) y daca y 1 (3)
1 daca y 1
1
Fa ( y ) (4)
1 ey
Figura 4. Funcţie de activare sigmoid
unipolară
- funcţia sigmoid bipolară (Figura 5):
2
Fa ( y) 1 (5)
1 ey
Figura 5. Funcţie de activare sigmoid
bipolară
- funcţia tangentă hiperbolică (Figura 6):
6
e y e y
Fa ( y ) tanh( y ) (6)
e y ey
Exemplul 1:
Listing program “lab11.m”
%-----------------------------------------------------------------
% simularea neuron artificial cu doua intrari si functie de
% activare tip treapta unitara
%-----------------------------------------------------------------
%vectorul de ponderi
w=[-0.8 %ponderea primei intrari
2 %ponderea celei de-a doua intrari
-0.15]; %ponderea intrarii de offset
for i=1:length(d),
%Calculul intrarii totale pentru fiecare set de intrari
y(i)=x(i,:)*w;
function [a]=treapta(y)
for i=1:length(y),
if y(i)>=0, a(i)=1;
else a(i)=0;
end
end
7
a=a';
Apelul funcţiei:
RNA = newp(PR,S,TF,LF)
unde:
PR – matrice de dimensiune Rx2 cu valorile minimă şi maximă pentru R intrări;
S – numărul de perceptroni;
TF – funcţia de activare, implicit = 'hardlim' (treaptă unitară);
LF – funcţia de învăţare, implicit = 'learnp';
RNA – reţeaua neuronală artificială creată, compusă din perceptroni binari.
Exemplul 2:
%-----------------------------------------------------------------
% Crearea unei RNA cu un perceptron binar (functie de activare tip
% treapta unitara) cu 2 intrari, valorile minima si maxima pentru
% intrari este: min=0; max=1.
%-----------------------------------------------------------------
% numarul de neuroni
S=1;
%functia de activare
TF='hardlim';
%functia de invatare
LF='learnp';
rna=newp(PR,S,TF,LF);
Observatii
1. Programul din acest exemplu poate fi redus la ultima linie
setând toate valorile dorite chiar în lista de argumente ale
functiei, fara a se mai apela la variabile suplimentare (valorile
pentru argumentele TF si LF fiind cele implicite pot fi omise din
lista de argumente ale functiei):
8
- sim – simulează o reţea neuronală artificială creată cu o funcţie Matlab (newlin,
newp, etc.). Va calcula pentru valorile prezentate la intrarea RNA ieşirile
corespunzătoare.
Exemplul 3
%-----------------------------------------------------------------
% Simularea RNA creata cu functia ‘newp’ din exemplul 2
%-----------------------------------------------------------------
%ponderile intrarilor
rna.IW{1,1}=[-0.8 2];
sim(rna,F)
Probleme propuse
1. Ţinând cont de Figura 1 şi utilizând relaţiile matematice (1)(6) să se scrie
un program în limbajul Matlab sau limbajul C pentru crearea şi simularea unei
9
reţele neuronale artificiale cu un singur neuron artificial cu două intrări. Setările
reţelei neuronale sunt:
- ponderile intrărilor: [-0.8 2.0];
- ponderea pentru intrarea de offset: -0.15;
- valorile intrărilor:
- prima intare: 0 1 0 1;
- a doua intrare: 0 0 1 1.
10
Lucrarea nr. 2
Perceptronul binar
1. Scopul lucrării
Familiarizarea studenţilor cu structura şi antrenarea perceptronului binar.
2. Noţiuni generale
11
Figura 2. Forma compactă de reprezentare a perceptronului binar
Scopul antrenării (învăţării) perceptronului binar este de a modifica ponderile
i (i=1n), în vederea realizării transformării dorită T(.):
T(x, ): {0,1}n {0,1}
(3)
unde:
- x - reprezintă vectorul intrărilor ,
- - reprezintă vectorul ponderilor.
În continuare se va prezenta algoritmul general de antrenare a unui
perceptron binar cu n intrări.
j 1
(4)
unde:
wj – ponderea de pe intrarea j a neuronului
n – numărul de intrări.
12
Se calculează ieşirea perceptronului:
p
a F y
(5)
unde F(.) este funcţia treaptă unitară.
Apelul funcţiei
[net,tr,Y,E] = train(net,P,T)
unde:
net – reţeaua neuronală ce se doreşte a fi antrenată;
P – matrice/vector cu date de intrare de antrenare;
T – vector cu date de ieşire de antrenare;
tr – o structură cu informaţii din timpul antrenării;
Y – ieşirea calculată de reţeaua neuronală;
E – vector eroare de învăţare;
Exemplul1:
%-----------------------------------------------------------------
% Invaţarea unui perceptron cu 2 intrari sa redea funcţia logică
% ŞI, valorile minima si maxima pentru intrari este: min=0; max=1.
%-----------------------------------------------------------------
13
clear;
clc;
%intrari dorite
%(2 intrari intr-o poarta logica)
x=[0 1 0 1 %valori pentru prima intrare
0 0 1 1]; %valori pentru a doua intrare
%vectorul de ponderi
w=[ 0.2 %ponderea primei intrari
1]' %ponderea celei de-a doua intrare
teta=-2.15 %ponderea intrarii de offset
Probleme propuse
14
Problema 3. Să se realizeze o reţea neuronală cu perceptroni binari, ajutorul
funcţiilor newp şi train din toolboxul nnet al mediului Matlab, pentru
recunoaşterea literelor A, B, …, Z. Literele se reprezintă pe o matrice 5x8 (Figura 1
şi Figura 2a). Numărul de ieşiri este egal cu nr. de litere care se doresc a fi învăţate.
- ieşirea {1,0,0,…,0} are semnificaţia că sa recunoscut litera A
- ieşirea {0,1,0,…,0} are semnificaţia că sa recunoscut litera B
- ieşirea {0,0,1,…,0} are semnificaţia că sa recunoscut litera C
…
- ieşirea {0,0,…,0,1} are semnificaţia că sa recunoscut litera Z
a) b)
Figura 2 – Exemple de litere ale alfabetului reprezentate pe o matrice de 5x8 celule:
a) litere corecte; b) litere eronate
15
Setul de ponderi ale intrarilor precum şi al ponderilor de offset se generează
aleator în intervalul [-0.5, 0.5] sau în intervalul [-1,1] folosind funcţia rand(.)
din mediul Matlab.
După finalizarea învăţarii, să se testeze calitatea învăţării folosind mai întâi
caracterele salvate corespunzător Figurii 1 în matricea ALFABET din fişierul
alfabet.mat, apoi se testează reţeaua de perceptroni binari folosind caracterele
salvate corespunzător Figurii 1 în matricea ALFABETERONAT din fişierul
litEronate.mat. Literele eronate sunt reprezentate în Figura 2b.
Să se comenteze rezultatele obţinute.
Funcţii ajutătoare:
- afisareAlfabet(matrice)- afişează toate literele salvate conform
Figurii 1 în liniile matricei matrice (ex. afisareAlfabet(ALFABET) va
afişa toate caracterele din matricea ALFABET);
- afisareLitera(vector) – afişează litera reprezentată conform Figurii 1
in vectorul vector (ex. afisareLitera(ALFABET(2,:)) determină
afişarea literei B);
- square(x,y,latime,inaltime,culoare) – afişează un dreptunghi la
coordonatele (x,y) de dimensiune latime x inaltime şi de culoare
culoare (‘w’-alb,‘r’-roşu). Funcţia este folosită de funcţiile de afişare
afisareAlfabet(.) şi afisareLitera(.).
- ALFABETRECUNOSCUT=generareAlfabetRNA(a_test,ALFABET) –
este folosită pentru a verifica recunoaşterea de către reţeaua de perceptroni
binari a unui set de litere eronate. Funcţia generează literele pe carele recunoaşte
reţeaua neuronală, dacă nu recunoaşte un caracter, linia respectivă a matricei de
ieşire are elementele setate pe zero.
16
Lucrarea nr. 3
1. Scopul lucrării
Familiarizarea studenţilor cu structura şi antrenarea reţelelor neuronale
artificiale (RNA) cu strat ascuns.
2. Noţiuni generale
17
Regula de învăţare folosită de acest algoritm este cunoscut în literatura de
specialitate sub numele de regula Delta generalizată sau Backpropagation.
18
2.3 Funcţii Matlab
Pentru crearea unei reţele neuronale artificiale toolbox-ul nnet al mediului
Matlab oferă funcţia newff al cărei apel este de forma:
rna=newff(x,d,structRNA,{Fa1,Fa2,…,Fan},funcAntr)
unde:
rna – structură ce descrie reţeau neuronală.
x – vetorul/matricea cu date de antrenare de intrare.
d – vectorul/matricea cu date de antrenare de ieşire.
structRNA – este un vector linie care are ca elemente numărul de neuroni pentru
fiecare strat (mai puţin stratul de intrare). De exemplu se doreşte
crearea unei RNA 2 straturi ascunse cu 5 neuroni în primul strat
ascuns 3 în al doilea strat ascuns şi 2 neuroni în stratul de ieşire
atunci structRNA=[5 3 2]. Dacă se doreşte crearea unei RNA
cu un singur strat ascuns si un singur neuron în stratul de ieşire
atunci este de ajuns ca în variabile structRNA să se pună ca
valoare doar numărul de neuroni din stratul ascuns, valoarea 1
pentru numărul de neuroni în stratul de ieşire este valoare implicită.
Fa1,Fa2,…,Fan – reprezintă funcţiile de activare ale neuronilor din straturile
RNA pornind de la primul strat ascuns până la stratul de ieşire.
Valorile pentru aceste variabile sunt nume de funcţii de
activare prezentate în Lucrarea nr.1.
funcAntr – indică regula de învăţare folosită pentru antrenarea RNA. Pentru a
indica regula Delta generalizată se foloseşte funcAntr=’traingd’.
Pentru antrenarea reţelei neuronale creată cu funcţia newff se utilizează
funcţia train prezentată în Lucrarea nr. 2.
Programul “lab4_1.m”
%date de intrare de antrenare
x= [-1 1 -1 1;
-1 -1 1 1];
%date de iesire de antrenare
d=[-1 1 1 -1];
%structura RNA:
19
% - 2 neuroni in stratul ascuns
% - 1 neuron in stratul de iesire
% pt. stratul de iesire 'newff' pune automat 1 neuron daca nu este
% specificat nr. de neur. in stratul de iesire
structuraRNA=2;
%creare RNA
% ‘logsig’- functia de activare tip sigmoid unipolara
% ‘purelin’- functia de activare tip liniara
rna=newff(x,d,structuraRNA,{'logsig','purelin'},'traingd');
%setare nr epoci
rna.trainParam.epochs=1;
e=10^(-3); %epsilon
rna.trainParam.goal = e;
gama=0.25; %rata de invatare
rna.trainParam.lr=gama;
a=sim(rna,x)
d
Probleme propuse
21
22
Lucrarea nr. 4
1 Scopul lucrării
Familiarizarea studenţilor cu structura, proiectarea şi utilizarea reţelelor
neuronale artificiale cu funcţii de activare radiale cunoscute în literatura de
specialitate sub denumirea de reţele neuronale artificiale RBF (Radial Basis
Functions).
2 Noţiuni teoretice
23
unde i1 este vectorul de ponderi asociate intrărilor neuronului i din stratul ascuns.
Din relaţia (3) se observă că intrarea totală a fiecărui neuron din stratul
ascuns este funcţia normă. Pentru cazul de faţă se consideră norma euclidiană, adică
1
x i ( x1 i11 ) 2 ( x2 i12 ) 2 ... ( xN iN
0
1
)20
(4)
unde
- N0 - numărul de neuroni din stratul de intrare;
- x [ x1 , x2 , ..., x N 0 ]T - vector de intrare;
24
eroarea de învăţare are o valoare mai mică decât valoarea maximă admisă (adică
răspunsul reţelei este satisfăcător). Dacă eroarea de învăţare a RNA pentru fiecare
vector de intrare de învăţare este mai mică decât err_max, atunci se consideră
finalizată construcţia RNA-RBF în caz contrar se adaugă un nou neuron pentru
vectorul de intrare de antrenare ce generează cea mai mare eroare. Procedura se
repetă până ce eroarea de învăţare a RNA-RBF pentru toţi vectorii de antrenare este
mai mică decât err_max sau s-a atins numărul maxim de neuroni.
Probleme propuse
Problema 1. Să se creeze şi să se antreneze folosind algoritmul de antrenare
prezentat în secţiunea 2.2, o RNA-RBF pentru a reda comportarea unei porţi logice
XOR cu două intrări. (Sugestii: să se construiască tabelul de adevăr echivalent al
porţii logice XOR folosind valori bipolare (-1 şi 1) în locul valorilor binare (0 şi 1);
să se utilizeze pentru neuronului din stratul de ieşire funcţia de activare liniară cu
limitare).
Problema 2. Utilizând datele de antrenare de intrare şi ieşire din fişierul
“datePr3.mat” să se creeze RNA-RBF cu ajutorul funcţiilor newrbe, newrb. Să
se testeze calitatea învăţării cu ajutorul datelor de test. Să se modifice valoarea
dispersiei funcţiilor de activare gaussiene. Să se interpreteze rezultatele obţinute.
25
26
Lucrarea nr. 5
1 Scopul lucrării
Familiarizarea studenţilor cu structura, proiectarea şi utilizarea reţelelor
neuronale tip memorie Hopfield discretă.
2 Noţiuni teoretice
a) b)
Figura 1 Arhitecturi de memorii asociative: a) arhitectura MAB autoasociativă cu un singur
strat; c) arhitectura memoriei Hopfield
Arhitectura memoriei Hopfield din Figura 1b prezintă următoarele diferenţe faţă de
arhitectura MAB autoasociativă din Figura 1a, şi anume:
- nu necesită prezenţă la nivelul fiecărui neuron a conexiunii inverse, de la ieşire
la intrare;
- prezenţa unei intrări externe Ii ( i 1, n ), ceea ce implică următoarea relaţie
pentru intrarea totală a fiecărui neuron
n
yi x jij I i , (1)
j 1
sau în forma vectorială, vectorul cu intrările totale ale neuronilor din stratul ascuns este dat de relaţia
y xI , (2)
unde x este vector (coloană) de date de intrare, I este vectorul (coloană)
intrărilor externe, iar este matricea de ponderi a cărei relaţie de calcul este
prezentată la sfârşitul acestei secţiuni;
- memoria Hopfield în forma s-a originală memorează vectori binari şi nu
bipolari, ca urmare funcţia de activare va genera valori binare şi este de tipul
funcţiei treaptă modificată conform relaţiei
1, dacă yi U i
ai (k 1) Fa ( yi ) ai (k ), dacă yi U i ; (3)
0, dacă yi U i
- pentru ca matricea de ponderi a memoriei Hopfield să fie calculată cu vectori
bipolari (vectori ce au elementele în mulţimea {-1,1}) ca şi în cazul MAB
27
autoasociativă atunci vectorii binari de intrare, notaţi cu vi ( i 1, n ), în reţeaua
neuronală vor fi transformaţi în vectori bipolari, notaţi cu xi ( i 1, n ), conform
relaţiei
x i 2 vi 1 , (4)
unde 1 este un vector ce are toate componentele egale cu valoarea 1 iar
dimensiunea vectorului este egală cu dimensiunea lui vi.
Utilizând relaţia (3) şi relaţia de calcul a matricei de ponderi a MAB autoasociativă
relaţia de calcul a matricei de ponderi a unei memorii Hopfield este
N N
xi x ti 2 vi 1 2 vi 1t , (5)
i 1 i 1
unde elementele de pe diagonala principală a matricei de ponderi au valoarea 0.
2.2 Procesarea în memoria Hopfield
Odată ce matricea de ponderi a fost construită, memoria Hopfield poate fi
folosită pentru a extrage informaţii. Dacă informaţia prezentată la intrarea memoriei
Hopfield este cunoscută doar parţial în avans sau este afectată de zgomot, memoria
este capabilă să completeze informaţia.
Pentru a extrage informaţie dintr-o memorie Hopfield, se efectuează
următorii paşi:
1. Se aplică un vector de date de intrare iniţial pe intrările Ii ( i 1, n ) ale neuronilor
memoriei;
2. Se actualizează ieşirile (se calculează activările) neuronilor;
3. Se propagă informaţia actualizată de la ieşiri spre intrările memoriei;
4. Se repetă paşii 2 şi 3 până când nu vor mai fi modificări în ieşirile memoriei.
Observaţie Intrările Ii se iau în considerare doar o singură data, şi anume, în primul
pas.
Problemă propusă
Utilizând relaţiile (1)(5) să se construiască o memorie Hopfield pentru
memorarea formelor prezentate în Figura 2. Se va considera valoarea 0 pentru toate
pragurile pragurile Ui din relaţia (2).
28
Pentru afişarea formelor se va utiliza funcţia afisareGr.m al cărei apel are
forma
afisareGr(vectorForma,nrCeluleLinie,dimX,dimY)
unde
vectorForma – reprezintă forma de intrare dorită, scrisa sub forma unui
vector linie;
nrCeluleLinie – reprezintă numărul de celule pe o linie afişata (pentru cazul
dimX, dimY – reprezintă dipensiunile careului plin sau gol folosit pentru
afişarea formelor (pentru formele din figurile 2 şi 3 s-au
utilizat dimX=dimY=10)
Formele de intrare de antrenare precum şi cele de test (prezentate în figurile 2
şi 3) se regăsesc în fişierul “VectoriAntrenareSiTest.m”
29
30
Lucrarea nr. 6
Sisteme fuzzy
1 Scopul lucrării
Familiarizarea studenţilor cu structura, proiectarea şi utilizarea sistemelor
fuzzy.
2 Noţiuni teoretice
Din Figura 1 se observă că un sistem fuzzy este format din patru blocuri
principale: blocul de fuzzyficare, blocul de decizie, baza de reguli şi blocul de
defuzzyficare.
Blocul de fuzzificare este responsabil de transformarea intrărilor crisp în
mulţimi fuzzy.
Baza de reguli conţine setul de reguli lingvistice de forma
DACĂ...ATUNCI... definite pe variabilele lingvistice fuzzy. Ea conţine informaţii
despre universul de discurs al variabilelor precum şi, informaţii despre mulţimile
fuzzy ataşate valorilor lingvistice ale variabilelor fuzzy.
Blocul de decizie este răspunzător de, determinarea influenţei fiecărei legi în
concluzia finală precum, şi de generarea concluziei finale a sistemului fuzzy.
Concluzia finală va fi o valoare fuzzy în cazul în care sistemul fuzzy are o singură
ieşire şi, va fi un vector de valori fuzzy, dacă sistemul fuzzy va avea mai multe
ieşiri (fiecare element al acestui vector va corespunde unei singure ieşiri a
sistemului fuzzy).
Blocul de defuzzificare are rolul de a converti concluzia fuzzy finală într-o
valoare reală (crisp) sau într-un vector de valori reale în funcţie de numărul de ieşiri
pe care le are sistemul fuzzy. În cazul unui regulator fuzzy valoarea/vectorul de
valori crisp obţinută/obţinut va reprezenta comanda/vectorul de comandă pentru
procesul condus.
31
2.2 Variabile, valori şi reguli lingvistice
Universul de discurs
Intrările sistemul fuzzy sunt notate cu xi ( i 1, n ), unde xi Xi, iar ieşirile sunt
notate cu yj ( j 1, m ), unde yj Yj. Intrările şi ieşirile sunt valori crisp (numere
reale) şi nu mulţimi fuzzy. Mulţimile Xi ( i 1, n ) respectiv Yj ( j 1, m ) reprezintă
domeniile de variaţie pentru variabilele xi respectiv yj. În literatura de specialitate
domeniul de variaţie al unei variabile mai poartă numele de universul de discurs al
variabilei respective. În practică, universul de discurs al unei variabile este
mulţimea numerelor reale dar din considerente tehnice el se restricţionează la
intervale continue finite.
Variabile lingvistice
După cum se va vedea mai târziu, în această secţiune, expertul uman va
utiliza o “descriere lingvistică” a regulilor ce vor forma baza de reguli. Din această
cauză, pentru descrierea intrărilor şi ieşirilor sistemului fuzzy, se vor utiliza
“variabile lingvistice”. O variabilă lingvistică ataşată unei intrări sau ieşiri a
sistemului fuzzy este o descriere simbolică (folosind cuvinte ale limbajului uman) a
ceea ce reprezintă valorile reale variabile în timp ce apar la intrarea/ieşirea
respectivă a sistemului fuzzy.
Pentru descrierea intrării xi a sistemului fuzzy din Figura 1 se va utiliza
variabila lingvistică notată cu ~xi iar, pentru ieşirea yj se va utiliza variabila
lingvistică notată cu ~y j .
Exemplu:
Pentru regulatorul fuzzy, utilizat de un sistem de reglare automată a iluminării pe suprafaţa unui
birou (planul de lucru), s-au ales ca intrări eroarea de reglare, notată cu e, şi variaţia erorii de
reglare, notată cu e. Pentru aceste două intrări sau ataşat variabilele lingvistice ~e = “eroarea de
reglare” şi ~e =“variaţia erorii de reglare”. Ieşirea regulatorului fuzzy este variaţia comenzii u.
~
Pentru ieşire s-a ataşat variabila lingvistică u = “variaţia comenzii”.
Exemplu:
Pentru cazul unui sistem de estimare a preţului unui laptop se consideră intrările: anul de
fabricaţie, notat cu a, şi dotările laptopului, notate cu d. Ieşirea sistemului fuzzy este preţul
laptopului notat cu p. Pentru aceste variabile de intrare/ieşire se pot ataşa variabilele lingvistice:
~
a~ = “anul de fabricaţie”, d = “dotări laptop” şi ~
p = “preţ laptop”.
Valori lingvistice
Simiar cu variabilele crisp xi şi yj, care iau diferite valori din domeniile de
variaţie Xi şi Yj, şi variabilele lingvistice ~xi şi ~y j vor lua diferite “valori lingvistice”
ce vor fi utilizate pentru a descrie caracteristicile variabilelor.
~
Se va nota cu X ik valoarea lingvistică k a variabilei lingvistice ~xi definită pe
domeniul X i . Dacă se consideră că există mai multe valori lingvistice definite pe
X i atunci variabila ~ xi va lua valori din mulţimea de valori lingvistice notată cu:
~ ~
X i X ik : k 1, 2,..., N i ,
unde Ni reprezintă numărul de valori lingvistice ale variabilei lingvistice ~xi .
~
În mod similar pentru variabilele lingvistice de ieşire notaţia Y jl semnifică
valoarea lingvistică l a variabilei lingvistice ~y j definită pe domeniul Yj. Dacă se
32
consideră că există mai multe valori lingvistice definite pe Yj atunci variabila ~y j va
lua valori din mulţimea de valori lingvistice notată cu:
~ ~
Y j {Y jl : l 1, 2, ..., M j } ,
unde Mj reprezintă numărul de valori lingvistice ale variabilei lingvistice ~y j .
Valorile lingvistice sunt în general termeni descriptivi cum sunt: “mare”,
“mic”, “mediu”, “lung”, “scurt”, “slab”, “pozitiv mediu”, “zero”, “negativ mare”.
Exemplu:
Se presupune că ~
x1 descrie variabila lingvistică “iluminare”. Astfel dacă se ataşează
~ ~ ~
valorile lingvistice X 11 =“slabă”, X 12 =“standard”, X 13 =“mare” atunci ~
x1 va avea valori în
~
~ ~ ~
mulţimea X 1 X 11 , X 12 , X 13 .
Exemplu:
În cazul sistemului fuzzy de estimare a preţului unui laptop considerăm că, lingvistic,
preţul laptopului poate fi caracterizat prin: “mic”, “rezonabil” şi “mare”. Astfel putem ataşa
~ ~ ~
valorile lingvistive: P1 = “mic”, P 2 = “rezonabil” şi P 3 = “mare”. În acest caz variabila
lingvistică ~
~
~ ~ ~
p va avea valori în mulţimea P P 1 , P 2 , P 3 . În practică, când numărul de valori
lingvistice ataşate unei variabile lingvistice este mic, se preferă notarea intuitivă a acestor valori,
pentru citirea mai uşoară de către expertul uman a tabelelor de reguli. Astfel în cazul acestui
exemplu cele trei valori lingvistice se pot nota: Mi = “mic”, R = “rezonabil” şi Ma = “mare”,
~
astfel mulţimea valorilor lingvistice este: P Mi, R, Ma .
Reguli lingvistice
“Funcţia” ce leagă intrările de ieşirile sistemului fuzzy este caracterizată de
un set de reguli de tipul condiţie→acţiune sau în forma modus ponens
(DACĂ...ATUNCI...)
DACĂ premiză ATUNCI consecinţă. (1)
De obicei, intrările sistemului fuzzy sunt asociate cu premize, iar ieşirile,
sunt asociate cu consecinţe. Aceste reguli DACĂ...ATUNCI... pot fi reprezentate în
multe forme. În continuare vor fi prezentate doar două forme standard:
- forma “multe-intrări multe-ieşiri” cunoscută în literatura de specialitate sub
denumirea de forma MIMO (Multi-Input Multi-Output)
~ ~ ~
DACĂ ~x1 este X 1j şi ~x2 este X 2k şi ... şi ~xn este X nl
~ ~ ~
ATUNCI ~y1 este Y1 p şi ~y2 este X 2r şi ... şi ~xm este X ms ; (2)
- forma “multe-intrări o singură -ieşire” cunoscută în literatura de
specialitate sub denumirea de forma MISO (Multi-Input Single-Output)
~ ~ ~
DACĂ ~x1 este X 1j şi ~x2 este X 2k şi ... şi ~xn este X nl
~
ATUNCI ~yq este Yq p . (3)
33
5. Stabilirea bazei de reguli a sistemului fuzzy;
6. Stabilirea conectorilor lingvistici între termenii lingvistici; stabilrea
operatorilor utilizaţi pentru evaluarea conexiunilor (stabilirea operatorilor
va determina modul de decizie al sistemului fuzzy);
7. Stabilirea metodei de defuzzyficare.
3. Funcţii Matlab
Pentru construirea rapidă a unui sistem fuzzy cu ajutorul toolbox-ului de
logică fuzzy a mediului Matlab se recomandă utilizarea intrefeţelor grafice utlizator
(prescurtare eng.GUI’s). Mediul Matlab oferă cinci unelte primare de tip GUI
utilizate pentru creare, editare şi observare a sistemelor fuzzy. Aceste interfeţe sunt
prezentate în Figura 2.
Figura 2 Cele cinci interfeţe utilizate pentru construirea, editarea şi vizualizarea unui sistem
fuzzy
34
Figura 3 Interfaţa principală a editorului sistemului fuzzy
Interfaţa şi semnificaţia elementelor componente ale editorului funcţiilor de
apartenţă sunt prezentate în Figura 4.
35
Figura 5 Interfaţa editorului de reguli
Problemă propuse
Să se construiască un sistem fuzzy pentru estimarea preţului unui laptop
având ca intrări anul de fabricaţie, notat cu a, şi dotările laptopului, notate cu d, iar
ca ieşire preţul laptopului notat cu p. Domeniul de variaţie al variabilei a este
intervalul [2005, 2009] unitatea de măsură fiind [an calendaristic], domeniul de
variaţie al variabilei d este intervalul [1,10] unitatea de măsură fiind [puncte].
Domeniul de variaţie al variabilei de ieşire p fiind [500, 4500] unitatea de măsură
fiind [lei]. Valorile lingvistice pentru: variabila a fiind {“vechi”, “actual”, “nou”},
pentru variabila d fiind {“slabe”, “acceptabile”, “bune”} iar pentru variabila p fiind
{“mic”, “mediu”, “mare”}. Să se stabilească şi să se editeze baza de reguli a
sistemului fuzzy. Să se verifice comportarea sistemului pentru diferite forme a
funcţiilor de aparteneţă ataşate valorilor lingvistice ale variabilelor lingvistice de
intrare şi ieşire a sistemului fuzzy lăsând funcţiile de decizie şi de defuzzyficare cele
implicite.
36