Documente Academic
Documente Profesional
Documente Cultură
MASTER
Sisteme electromecanice complexe
1. DESPRE continut
APROFUNDAREA unor tematici de la ciclul de licenţă:
- Algoritmi de control specifici sistemelor discrete;
- Aplicaţii pe model.
APROFUNDAREA unor aplicaţii complexe de control inteligent (algoritmi pentru sisteme cu eşantionare,
fuzzy, neuro-fuzzy):
1 2
Ştiinţe ale
complexităţii -
disciplinele noi
care abordează
sistemele complexe
(Scarlat E.,
Chiriţă N., 2005)
3 4
1
4/27/2019
5 6
De ce ?
Determinism
TIMP !
7 8
2
4/27/2019
Problemă
Eficienţa
Timp
240 =1.099 * 1012
15min
1s 230 =1073741824
Soluţii?
Număr
1ns puncte
1 kM (s)
G M (s)
s 1 s Tem U(s)
G ( s)
GP ( z 1 ) GEX 0GM ( z 1 ) (1 z 1 ) Z M
Algoritmi numerici s
Y ( z 1 )
R( z 1 )
GDb ( z 1 )
Y ( z 1 )
GEX 0GM ( z 1 ) 1 1
R( z )
G M (s)
Z k M k 1
1 1 1
Z
s s 1 M
1 z 1 T
s 1 e em z 1
T
Tem
11 12
3
4/27/2019
T
1 a1p z 1 a 2p z 2
1 e Tem z G P (z 1 ) k1p
b 0p b1p z 1 b 2p z 2
G P (z 1 ) k M T
1
1 e Tem
z T
Tem
1 1 1 z 1 k1p k M Tem ; a1p T / Tem 1 e
R (z ) Y(z )
1 z 1 1 z 1
T T
Tem T
T a 2p 1 T / T em e e em
1 e T em z 1
G Db ( z 1)
1
kM T T
1 e T em (1 z 1) Tem T
b0p 1; b1p 1 e T em
2p e
;b
13 14
T T
Tem T
b2 1 e T / Tem e em
p 0 p1 z 1 ... p n z n
G Db (z 1 )
q 0 q1 z 1 ... q n z n
a 0 a 1 z 1 ... a n z n
G P (z 1 )
b 0 b1 z 1 ... b n z n
T
1 1 e Tem
q 1 uk
G Db (q 1 )
kM
T
1
k
(1 e ) (1 q )
Tem
T
1 e T em
u k u k 1 k k 1 u k 1 λ 0 ε k λ1 ε k 1
T T
Tem k M (1 e T em )
k M (1 e )
15 16
4
4/27/2019
17 18
19 20
5
4/27/2019
21 22
23 24
6
4/27/2019
25 26
27 28
7
4/27/2019
29 30
31 32
8
4/27/2019
Ipotezele preliminare:
Din eşantioanele:
- se dispune de Gf (z-1), incluzând şi EX0, sub forma:
y1, ..., yr, cu yi yj , în conformitate cu aspectul răspunsului indicial, iar yr+i =1,
G(z-1) = B(z-1) / A(z-1) · z-N ; N 0;
i N
B/A este o funcţie raţională proprie; Yd(z-1) = y1· z-1 + y2· z-2 +… + yr· z-r + z-(r+1) + z-(r+2) +…
n =[t/T] timpul mort al părţii fixate în multiplii de T.
Yd fiind stabil (poli subunitari z<1), seria geometrică, la limită, are o sumă finită:
- referinţa este treaptă unitate: R(z-1) =1/(1-z-1);
Yd(z-1) = y1· z-1 + y2· z-2 +… + yr· z-r + z-(r+1) / (1- z-1)
- mărimile sistemice ale buclei automate discrete sunt în prealabil normate.
Yd(z-1) = [ y1· z-1 + (y2- y1)· z-2 +… + (yr- yr+1)· z-r + (1- yr) · z-(r+1) ] / (1- z-1)
Se alege secvenţa infinită a eşantioanelor răspunsului indicial dorit de la ieşirea sistemului
automat (conform unor indici de calitate ai regimului tranzitoriu şi staţionar). Yd(z-1) = Q(z-1 ) / (1- z-1)
4/27/2019 33 4/27/2019 34
Yd(z-1) = z-N · [yN+1· z--1 + (yN+2- yN+1)· z-2 + … + (yr- yr+1)· z-(r-N) + (1- yr) · z-(r-N+1) ] / (1- z-1) =
4/27/2019 35 4/27/2019 36
9
SAAC 47
PC1 este folosit pentru dezvoltarea programelor iar PC2 con ine un analizor logic
pentru urm rirea func ion rii. Sursa de alimentare a motorului prime te o referin
numeric pe 8 bi i de la un port numeric al microcontrolerului 80C552 (Philips).
Viteza este determinat din informa ia de pozi ie:
5k 5k 1 24 k div 3N k
6k = = c vit 3N k (2.192)
T N i/r T
k div: coeficient de divizare / multiplicare al impulsurilor de la encoder
T: perioada de e antionare
Nk: num rul de impulsuri de pozi ie contorizate pe durata T
cvit: coeficient de vitez .
O analiz de detaliu asupra corel rii (optime) a tuturor elementelor (formate,
caracteristici ale interfe ei, parametri hardware i software) - [16] - relev
posibilitatea lucrului cu cvit [rad/sec / imp. / T] unitar.
48 SAAC
Structura bloc de reglare a pozi iei este redat în fig. 2.17a. Referin a pentru
pozi ie se impune prin num rul de impulsuri ale traductorului de deplasare
(encoder) – N* . Eroarea de pozi ie este amplificat de regulatorul de pozi ie de tip
P, furnizând prescrierea pentru bucla de vitez – *. Eroarea de vitez este
prelucrat de regulatorul PI al buclei de vitez care furnizeaz la ie ire comanda c
pentru elementul de execu ie (servomotorul de pozi ionare).
Fig. 2.17b precizeaz elementele concrete ale structurii implementate, cu
m rimile prelucrate în timp real. Z-1 este blocul care formeaz valoarea anterioar
(cu un pas de e antionare) a unei m rimi, valoare care trebuie memorat de
algoritmul de reglare. BPC este un bloc (software) de prelucrare a comenzii
elaborate de algoritm, rezultând comanda efectiv trimis la EE: ckout. SCN este o
surs cu referin (comand ) numeric , M este motorul iar TP reprezint
traductorul de pozi ie.
Blocul principal de prelucrare din fig. 2.17b cumuleaz prelucr rile celor 2 bucle
de reglare, pe baza rela iilor care urmeaz . Intervin:
kp : amplificarea buclei de pozi ie;
kp , Ti: parametrii regulatorului PI de vitez .
6*k = k p5 B 5k = k p5 (N *5 N 5k ) (2.193)
1 C(s)
G R6 (s) = k p6 1+ = (2.194)
s Ti E 6 (s)
Rezult :
k p6 T
c k = c k 1 + k p6 (B 6k B 6k 1 ) + B 6k (2.195)
Ti
B 6k = k p5 B 5k c vit 3N k (2.196)
Înlocuind, se ob ine:
k p5 k p6 T k p5 c sp T
ck = ck 1 + B 5k 3N k +
Ti Ti
+ k p6 c sp 3N k 1 k p5 (k p6 + c sp ) 3N k (2.197)
c k = c k 1 + A 3N k 1 + B 3N k + C B 5k (2.198)
A = k p6 c sp
c sp T
B= k p6 k p5 c sp +
Ti
k p6 k p5 T
C =
Ti
1 R
Pentru cuplul de sarcin s-a utilizat un bloc tip tabel de valori care
genereaz Ms(s) în func ie de vitez . Referin a aplicat este de tip treapt . Blocul
denumit “Trad. vit. soft” determin viteza în unit i SI cu rel. (2.192). Modulul
STOPek suprim orice comand în momentul în care s-a sesizat c eroarea de
pozi ie (principalul parametru de proces urm rit) a devenit nul . Referin a i
informa ia de la encoder sunt e antionate cu perioada de e antionare T = 2, 456 ms;
aceast valoare corespunde unui optim multicriterial i va fi utilizat la
implement ri on-line. Modulul de frânare diminueaz efectul iner iei de dup
suprimarea comenzii (la vitez redus ) printr-o frânare dinamic cu indusul
scurtcircuitat. Fig. 2.19 red structura celorlalte blocuri de prelucrare principale. Pi
SAAC 51
de timp real. Blocurile de cuantificare Q1–Q3 s-au introdus pentru operarea numai
cu numere întregi, similar cu aritmetica microcontrolerului care va lucra on-line.
Modelul sursei de alimentare a elementului de execu ie are urm toarele
caracteristici:
- transform informa ia (semnalul) de comand din gama 0 – 148 D în
tensiune în plaja 0 – 12 V cc. Aceast scalare ine seama de sursa real care
va fi utilizat on-line, care acoper intervalul 0 – 24 Vcc la o referin
numeric pe 8 bi i.
- dac regulatorul genereaz o comand inferioar unui prag de sensibilitate
la limita de mi care pentru motor, formeaz la ie ire o tensiune corespunz -
toare acestui prag;
- reduce cu o valoare fix (2 V cc) tensiunea de la ie ire. Prin aceasta se ia în
considerare faptul c datorit limitei inferioare nenule a sursei fizice, situat
deasupra pragului de sensibilitate al motorului, a fost necesar introducerea
unor diode în serie cu indusul servomotorului de pozi ionare.
- limiteaz prin satura ie nivelul la ie ire.
Rezultatele simul rii pentru o referin de 5000 impulsuri encoder (2 rota ii
complete) sunt redate de fig. 2.20 – 2.21. Fig. 2.20 prezint componentele comenzii
calculate dup rel. (2.198). Este remarcabil simetria (cu opozi ie a semnului) a
termenilor ck1 – ck2. Aceasta face ca termenul ck3 (componenta integral ) s aib
un rol foarte important, de i amplitudinea sa este redus comparativ cu a celorlal i
doi termeni. De asemenea se observ suprapunerea practic a graficelor notate ck,
ck-1, ceea ce semnific absen a unor salturi ale comenzii pe o perioad de
e antionare i – totodat – valoarea foarte mic a duratei T în raport cu intervalul
analizat. U oara diferen dintre cele 2 grafice se sesizeaz prin aspectul de grafic
unic cu linie înt rit . Operarea cu numere întregi se eviden iaz prin varia ia în
mici trepte a componentelor respective. Limitele de varia ie ale acestora arat o
for are ini ial accentuat , deasupra nivelului de satura ie din modelul sursei. În
zona final a cursei, comanda rezultat î i schimb semnul, tendin a fiind de
frânare accentuat . Ambele aspecte dovedesc o acordare bun a buclelor.
Fig. 2.21 red varia ia m rimilor macroscopice caracteristice sistemului de
pozi ionare: eroare de pozi ie, vitez i tensiune de alimentare a motorului. Timpul
pe abcis este marcat în num r de perioade de e antionare. Practic pozi ionarea se
termin în cca 1 sec., ceea ce revine la o vitez medie global de 120 rot / min –
pu in sub jum tate din viteza nominal . For area comenzii, evident i în graficele
vitezei i tensiunii ar putea fi mai accentuat dar eroarea de pozi ionare ar cre te.
Vârful de vitez la aproape 500 rot / min este admisibil, de i nN = 300 rot / min,
având în vedere c tura ia maxim (la gol) este de aproape 700 rot / min. Sunt
vizibile pragul de vitez de apropiere (cu valoare constant de aprox. 40 rot / min)
i frânarea de dup suprimarea comenzii. Dup for area ini ial a comenzii, efortul
buclelor este relevat prin riplul comenzii în zona intermediar .
SAAC 53
Aplica iile care urmeaz se refer la utilizarea unor controlere Dead – Beat
pentru comanda unor sisteme de ac ionare cu motor de c.c. cu model liniar de
ordinul I. În fig. 2.22 este analizat un sistem de pozi ionare. Partea fixat discret
are func ia de transfer:
1
G f (z 1 ) = k M k S K TR (1 z 1 ) S (2.200)
s 2 (1 + TM )
TM: constanta electromecanic de timp a motorului (50 ms);
k: amplific rile pentru motor, surs i traductor
Func ia de transfer rezultat prin calcul pentru regulatorul Dead – Beat este cea
înscris în blocul cu acela i nume. Pentru extrapolator, e antionor i calculele de
discretizare s-a utilizat perioada de e antionare T = 2,456 ms. Satura ia care
precede sursa intervine firesc prin capacitatea maxim a convertorului numeric-
analogic care la cap t de scal genereaz referin a sursei pentru tensiunea nominal
a motorului. Se ob ine o pozi ionare de calitate în aproape 4 x TM, dar contribu ia
regulatorului dup for area ini ial este minim .
Fig. 2.22 Model i rezultatele simul rii buclei Deat – Beat de pozi ie
SAAC 55
În fig. 2.23 este prezentat o bucl Dead – Beat de vitez . Perioada de e antionare
s-a redus la 1 ms iar pragul de satura ie pentru tensiunea de alimentare s-a fixat la
125 % din valoarea tensiunii nominale a motorului. Prezen a lui împiedic
scurtarea regimului tranzitoriu pân la limita teoretic , pornirea sistemului durând
cam 1,5 x TM. Se constat un suprareglaj de circa 10 %.
a regimului tranzitoriu, cu atât mai mult cu cât se face sim it mai pregnant iner ia
electromagnetic , neluat în considerare prin func ia de transfer. Chiar la un motor
cu rotor disc cu constanta electromagnetic de 0,2 ms, influien a inductivit ii
devine prezent la perioade de e antionare sub 1 ms .
Tabelul 2.3
Caracteristici PIC 16C71X 710 71 711 715
Memorie program EPROM (x 14) 512 1K 1K 2K
Memorie de date (x 8) 36 36 68 128
Reset la sc derea tensiunii (BOR) Da - Da Da
Verificare paritate memorie program (PER) - - - Da
58 SAAC
Schema bloc
MCLR VDD,VSS
14 OSC/xx
WDT
Mag. Progr. POR
EPROM CC
POT
CPU DI & C BOR
OST Mag. date 1
PC LIFO 8
Mag. Date 2 8
FSR
RAM A/D TIMER 0 PORT B PORT A
Într-o arhitectur tip Harvard, programele i datele sunt accesate din memorii
separate prin magistrale distincte. Instruc iunile folosesc coduri pe 14 bi i, deci ele
sunt aduse spre prelucrare într-un singur ciclu. Tehnica pipe-line, prin
suprapunerea etapelor de aducere (fetch) i execu ie, face ca toate instruc iunile
(mai pu in cele cu ramifica ii) s fie decodificate i executate într-un singur ciclu
ma in .
Fi ierele de registre i memoria de date sunt adresabile direct sau indirect.
Toate fi ierele de registre speciale (SFR) sunt mapate în memoria RAM. Unitatea
logic i aritmetic din CPU realizeaz opera iile aritmetice (adunare, sc dere,
deplasare bi i) i logice de baz între operanzi din fi ierul de lucru - W - i din
oricare alt registru. Procesorul este caracterizat printr-un set ortogonal (simetric) de
instruc iuni, fiind posibil operarea în acela i mod cu oricare registru, f r
preferin e. Se lucreaz în cod complement de 2. Rezultatele opera iilor afecteaz
urm toarele flag-uri: C (Carry), DC (Digit carry), Z (Zero) din registrul STATUS.
Un ciclu ma in dureaz 4 perioade de tact ale oscilatorului extern, frecven a
acestuia divizat cu 4 fiind disponibil la pinul OSC2.
Organizarea memoriei
PC < 12 : 0 >
13
STIVA nivel 1
STATUS (adresa 03 h, 83 h)
INTCON (adresa 0B h, 8B h)
Con ine valid ri i flag-uri pentru dep ire timer, schimb ri la portul B i
pinul de întrerupere extern .
Porturile
Portul A
Portul B
Timerul 0
Schema bloc a acestui timer este cea din fig. 2.35. Este un - timer /
num r tor pe 8 bi i, citibil i inscriptibil, cu prescaler programabil . Se poate
selecta clock intern sau extern La dep irea FF h – 00 h se genereaz întrerupere.
Bus date
8
Pin Fosc/4 0 PSout PSout
RA4/T0CKI
0
1 Sincronizare
cu clock intern TMR0
Prescaler 1
programabil 2 cicluri întârziere
T0SE
3 Setare flag
întrerupere
T0CS PS2, PS1, PS0 PSA T0IF la dep ire
În modul timer, setat prin activarea bitului /T0CS, modulul este incrementat
SAAC 63
la fiecare ciclu instruc iune – 4 x Tck. La modul de num rare, TMR0 este
incrementat la fiecare front descendent de la RA4 / T0CKI (dac T0SE este setat)
sau la fiecare front ascendent (dac T0SE este resetat). Prescalerul este utilizat ori
de TMR0 ori de WDT, în func ie de bitul PSE (la tergerea lui, asignarea este
pentru timer). Prescalerul nu este citibil sau inscriptibil.
La dep irea FF h – 00 h, este setat fanionul de întrerupere T0IF.
Întreruperea poate fi mascat dac bitul T0IE este ters. Fanionul T0IF trebuie ters
în rutina de serviciu a întreruperii. Aceasta nu poate reactiva procesorul din starea
SLEEP dac timerul a fost oprit.
Sistemul de întreruperi
Reset.
Intrarea în regim de putere redus este realizat prin instruc iunea SLEEP.
WDT – dac este validat – va fi ters, continuând s func ioneze. Bitul /PD este
ters, bitul /TO este setat iar driverul oscilatorului este deconectat. Porturile I/O î i
men in valorile. Revenirea din SLEEP se realizeaz prin:
- Reset extern la pinul /MCLR;
- Reactivarea WDT (dac acesta a fost validat);
- Întrerupere la pinul INT, schimbare la portul B sau întreruperi ale perifericelor
(TMR1, A/D cu tact RC).
Protejarea codului
normale dar sunt citibile i inscriptibile în timpul program rii / verific rii.
13 8 7 6 0
OPCODE d f
Alte instruc iuni sunt de tipul cu operare pe bit. În acest caz, b desemneaz
bitul afectat opera iei iar f constituie localizarea bitului. Format:
13 10 987 6 0
OPCODE b f
General:
13 8 7 0
OPCODE k
13 11 10 0
OPCODE k
Toate instruc iunile se efectueaz într-un ciclu instruc iune (4 x Tck), mai
pu in în cazul când testele de condi ii sunt adev rate, sau când PC este modificat
de c tre instruc iune. În aceste cazuri, execu ia dureaz 2 cicluri instruc iune.
Setul de instruc iuni este redat în tab. 2.4.
Instruc;iuni pe octet
Instruc;iuni pe bit
c k +1 = f ( N k , B 5k , c k ) (2.208)
Fig. 2.36 Prelucr rile în timp real pentru algoritmul de control a pozi iei
mov aeklb,aekl
mov aekhb,aekh
; TASK 1 : stergere T2OV pentru relansare timer T esant.
; TASK 2 : inregistare eroare de pozitie
; TASK 3 : formare imagine viteza (8 biti, in SI) - traductor soft
; TASK 4: înregistrare vitez
; TASK 5 : calcul termen ck1
; TASK 6 : calcul termen comanda ck2
; TASK 7 : calcul termen comanda ck3
; TASK 8 : calcul final comanda
; TASK 9 : procesare comanda calculata
; TASK 10 : inregistrare comanda realizata si test nedepasire zona rezervata
; TASK 11 : reactualizare locatii algoritm: k trece in k-1pentru comanda si er. poz.
Fig. 2.39 ilustreaz foarte conving tor derularea temporal a activit ilor on-
line din sistemul de reglare a pozi iei, inclusiv întreruperea RT2 (PROC) de c tre
INT0. Nota ia canalelor de la analizorul logic:
SPER: marcaj perioada de e antionare ARITH: rutine aritmetice
PULSE: impulsurile de la traductor SCON: opera iile pentru bucla
INT0: rutina de întrerupere hardware de vitez
PROC: prelucr rile din RT2 SAVES: salv ri de date
Rutinele aritmetice utilizate se ferer la:
- adunare cu semn pe 16 bi i;
- împ r ire cu semn 16 bi i la 8 bi i cu rezultat pe 16 bi i.
Schema bloc din fig. 2.41 red elementele constructive esen iale al DSP
controlerului C24x. În afara spa iului pentru date i adrese, cu magistralele lor
distincte, exist un al 3-lea spa iu i o magistral dedicat : pentru intr ri / ie iri
(I/O). Bus-ul interfe ei externe, permite utilizarea / selec ia unui mare num r de
periferice. Aceast magistral fiind mapat în zona de date i interfa at cu
magistrala de date printr-un modul sistem, toate instruc iunile care opereaz în
spa iul datelor, opereaz de asemenea asupra registrelor perifericelor.
Separarea zonelor de memorie i posibilitatea transferurilor pe magistrale
distincte fac posibile prelucr ri paralele. De exemplu, în acela i ciclu ma in , se
poate realiza o multiplicare, adunarea unui produs anterior la acumulator i
generarea unei noi adrese.
DARAM semnific memorie RAM cu acces dual (Dual – Access RAM).
Magistralele de date i de programe sunt divizate în 6 magistrale interne, dup cum
urmeaz :
Magistrala pentru adrese externe, în:
PAB – magistrala adreselor program, vehiculeaz adrese atât pentru citire
cât i pentru scriere în memoria program;
DRAB – magistrala adreselor pentru citire date, vehiculeaz adrese
pentru citiri din memoria de date;
DWAB - magistrala adreselor pentru scriere date, vehiculeaz adrese pentru
scrieri în memoria de date.
Magistrala pentru date externe, în:
PRDB – magistrala pentru citire program, vehiculeaz codul
instruc iunilor, operanzi imedia i de la memoria program la CPU;
DRDB – magistrala pentru citire date, vehiculeaz datele din memoria de
date spre CALU i unitatea aritmetic cu registre auxiliare;
DWEB – magistrala pentru scrierea datelor, vehiculeaz' date atât spre
memoria de date cât >i pentru cea de programe.
Existen a unor magistrale distincte DRAB i DWAB permite ca CPU s
poat scrie i s citeasc date în acela i ciclu ma in . Fiecare modul figurat în
schema bloc are un spa iu de adrese corespunz tor. Pentru diferi i membri ai
familiei C24x, inserarea unor blocuri periferice implic utilizarea uneia sau mai
multor zone desemnate ca ”disponibile”. Configurarea modului de lucu pentru
nucleu sau periferice se realizeaz prin intermediul a 67 de registre programabile
de câte 16 bi i.
SAAC 77
CPU, prin structura i modul de lucru, este în primul rând o unitate puternic de
calcul. Multiplicarea cu rezultat pe 32 de bi i într-un singur ciclu ma in face
posibil implementarea comod a unor algoritmi de convolu ie, corelare i filtrare
numeric . Tot CPU con ine logica de generare a adreselor de date i de program.
ARAU lucreaz în paralel cu CALU.
Memoria este divizat în 4 zone selectabile:
- memoria program (64 kwords), con inând instruc iunile care urmeaz s fie
executate sau date necesare în timpul execu iei programului;
- memoria datelor locale (64 kw), re inând datele folosite de instruc iuni;
- memoria datelor globale (32 kw) care administreaz date în comun cu alte blocuri
sau serve te ca spa iu de date suplimentar;
- spa iul I/O (64 kw) pentru interfa area cu periferice externe, con inând de
asemenea registre on-chip.
Relativ la tipul memoriilor alocate acestor zone, intervine o oarecare
flexibilitate software i hardware. Astfel, prin bitul CNF din registrul ST1,
DARAM poate fi configurat în totalitate ca zon de date (CNF =0) sau, o parte este
zon de date iar alta de programe (CNF =1). Selectare memoriei program între
intern i extern revine unui semnal la pin i tot hardware se prescrie un spa iu de
adrese pentru memoria de date / program fie în interior fie în exterior.
Execu;ia programului este de tip pipeline, cu 4 etape care se pot suprapune:
aducere instruc iune, decodificare instruc iune, aducere operand i execu ie
instruc iune. A a rezult posibilitatea realiz rii instruc iunilor într-un singur ciclu
ma in : pe durata a 4 cicluri se prelucreaz (în stadii diferite) 4 instruc iuni. Stiva
are 8 nivele i anumite instruc iuni pot beneficia de o microstiv (1 nivel) auxiliar .
Func;iile sistem sunt:
- transferul dintre magistrala de date a CPU i magistrala perifericelor (care poate
lucra cu un tact mai lent), monitorizat de modulul sistem; exist i blocuri – de
exemplu managerul de evenimente – conectate direct la magistrala CPU.
- configur ri / status prin registrele programabile;
- controlul întreruperilor;
- controlul modurilor de putere redus , în num r de 4.
Întreruperile, în num r total de 31, pot fi software sau hardware, acestea
din urm externe sau interne. O întrerupere este fie mascabil fie nemascabil . Cele
mascabile au 10 nivele de prioritate. În afara acestora exist un indice de prioritate
global .
Resetarea procesorului se face automat în situa iile:
- interven ie WDT;
- reset software;
- ini ializare la conectare surs de alimentare;
- VDD în afara plajei admise;
- adres ilegal ;
- semnal la pinul Reset.
SAAC 79
Modulele periferice
Programarea procesorului
3
TMS 320F240
2
+
10
Program monitor
Motor +
Bloc Encoder +
m sur Hall
Memorie
Extern
D/P
32 kcuv.
Parametri mi care
Generator referin
Fig. 2.46 con ine înregistr rile pentru varia ia m rimilor caracteristice în
cazul tahogramei dreptunghiulare la func ionare în gol (a.) i respectiv în sarcin
(b.). Fig. 2.47 red detalii pentru intervalele de pornire i respectiv oprire ale
aceleia i tahograme. * este reprezentat cu linie continu sub ire, cu linie
continu groas , i* cu linie întrerupt sub ire i i cu linie întrerupt groas .
Parametrii buclelor de reglare sunt:
Bucla de vitez : Bucla de curent:
KP = 975 KP = 0,233
KI = 138 KI = 0,18
T = 1 ms T = 0,1 ms
Marcajul valorilor de vitez se face pe ordonat în stânga, în pulsuri encoder
/ timp iar a celor pentru curent în dreapta. Marcajul timpului se face în milisecunde.
Diferen ele a. – b. nu sunt sesizabile pe palierul stabilizat al vitezei. La pornire,
sarcina atenueaz micile oscila ii dar la oprire efectul este aproape contrar datorit
iner iei mecanice asociate sarcinii. Înregistr rile de la fig. 2.47 se refer la
func ionarea în sarcin . Se poate evalua durata regimurilor respective: cca 20 ms.
Constanta mecanic proprie a motorului este de 8,6 ms.
Fig. 2.48 ilustreaz evolu ia sistemului la comanda dup a doua tahograma,
în gol (a.) i respectiv în sarcin (b).
În fig. 2.48 c. s-au modificat perioadele de e antionare la jum tate pentru
cazul tahogramei cu reversare, la aceea i parametri PI. Este evident comportarea
mai proast , de i e antion rile sunt cu frecven mai ridicat . Cauza este dat de
faptul c T se constituie ca un parametru de acordare suplimentar, valori (chiar
foarte mici) neadecvate putând duce i la instabilitate.
SAAC 85
B 5n max
B 5n k = B 5 k (2.279)
N*
c vit 3B 5n max
3B 5n k = 3N k (2.280)
L max
Valorile normate maxime se iau de obicei 10. Fig. 2.59 prezint modelul
pentru bucla fuzzy de reglare a pozi iei pentru sistemul de ac ionare men ionat.
Mul imile vagi utilizate pentru intr rile i ie irea regulatorului fuzzy sunt
prezentate în fig. 2.60. Ie irea se va furniza direct în unit i DAC -ului (convertorul
numeric-analogic) care formeaz referin a sursei de alimentare a motorului.
Modelul i simularea lui au în vedere un sistem i condi ii reale de lucru.
Semnifica ia nota iilor este:
- az: aproape zero; - medie;
- fmic : foarte mic ; - mare;
- mic ; - fmare: foarte mare.
- rmic : relativ mic ;
Prin normare, intr rile s-au încadrat în gamele standard [-10, +10].
Controlerul fuzzy este un bloc predefinit, configurat cu FUZZY din FUZZY
TOOLBOX - [35], func ionarea lui fiind deteminat de un fi ier asociat. S-a
anticipat algoritmul de conducere în timp real prin utilizarea acelea i perioade de
e antionare la blocul z-1, a parametrilor motorului din experimentul fizic i prin
suprimarea comenzii fuzzy la eroare de pozi ie nul . De asemenea, mul imile vagi
pentru comand s-au definit pe gama de numere întregi cu care urmeaz s lucreze
microcontrolerul, inând seama de caracteristicile sursei de tensiune comandat
numeric i particularit i ale montajului. O astfel de particularitate este, de ex.,
folosirea unui grup de diode în serie cu indusul motorului pentru c tensiunea
minim a sursei este de câ iva vol i iar pragul de sensibilitate la mi care din repaus
pentru motor este de câteva sute de milivol i. Tabela de reguli s-a stabilit inând
cont de semnifica ia fizic a variabilelor i cu ajutorul unor simul ri pe modele de
reglare continui. Aceste reguli sunt:
1. If (eroare is az) and (var.eroare is az) then (comanda is az)
2. If (eroare is az) and (var.eroare is fmica) then (comanda is az)
SAAC 89
x * xm y * ym
j = 1+ ; i = 1+ (2.281)
rx ry
xm, ym: valori minime pentru x i y;
rx, rz: cuantele de modificare ale intr rilor
Indec ii j i i definesc pozi ional în mod univoc comanda memorat în LUT.
92 SAAC
- prezen a unui palier de vitez redus pentru pozi ionare precis , ob inut
printr-o component non-fuzzy datorat controlerului de prag. Înaintea
acestei zone, forma tensiunii de alimentare a motorului reproduce varia ia
comenzii preluate din LUT.
- o evolu ie corect a indec ilor de linie i coloan pentru LUT (între 1 i 11),
cu valori finale corespunz toare erorii de pozi ie nule i vitezei nule.
S-a adoptat valoarea T = 2,456 ms, ideal din motivele men ionate la 2.1.5.
Se mai men ioneaz faptul c acordarea buclei fuzzy s-a realizat în principal prin
modificarea regulilor vagi referitoare la segmentul final al pozi ion rii i mai pu in
prin ajustarea seturilor de mul imi vagi.
Modele i simul rile lor au fost deosebit de utile pentru implement ri on line
– [18], [19] – sub aspectul optimiz rii calculelor i al acord rii buclelor de reglare.
.
$/*25,0,1(&219(1ğ,21$/,
Un suport teoretic valoros care tratează incompletitudinea este teoria mulţimilor fuzzy.
Un tip incipient de logică fuzzy a apărut încă din 1920, propus de matematicianul
polonez Jan Łukasiewicz (inventatorul notaţiei poloneze). Sistemul său permitea extinderea
valorii de adevăr a unei propoziţii la toate numerele reale din intervalul [0,1]. Un număr din
acest interval era interpretat drept posibilitatea ca propoziţia considerată să fie adevărată sau
falsă. Aceste cercetări au dus la apariţia teoriei posibilităţii, o tehnică de raţionament în condiţii
de inexactitate.
În 1965, Lotfi Zadeh [15] a extins teoria posibilităţii într-un sistem formal de logică
matematică. De asemenea, a adus în discuţie modalităţile de lucru cu termeni nuanţaţi ai
limbajului natural. Aceast instrument de reprezentare şi manipulare a termenilor nuanţaţi se
numeşte logica fuzzy. Logica tradiţională consideră că un obiect poate aparţine sau nu unei
mulţimi. Logica fuzzy permite o interpretare mai flexibilă a noţiunii de apartenenţă. Astfel, mai
multe obiecte pot aparţine unei mulţimi în grade diferite. De exemplu, dacă avem în vedere
mulţimea oamenilor tineri. Un copil de 10 ani e cu siguranţă tânăr, în timp ce o persoană de 60
de ani cu siguranţă nu. Dar un om de 30 de ani? Sau de 40? În acest caz, putem afirma că
persoana de 30 de ani aparţine mulţimii respective într-o măsură mai mare decât cea de 40.
µ A ( x) : X → [0,1] (1.1)
Pentru a reprezenta o mulţime fuzzy, trebuie să-i definim mai întâi funcţia de
apartenenţă. În acest caz, o mulţime fuzzy A este complet definită de mulţimea tuplelor:
A = {( x, µ A ( x)) | x ∈ X } (1.2)
Dacă X este o mulţime finită X = {x1, ... , xn}, atunci se foloseşte de multe ori notaţia:
n
A = µ1 / x1 + ... + µ n / xn = ∑ µi / xi (1.3)
i =1
A( x) = ∫ a / x (1.4)
x
Înălţimea lui A se defineşte drept cea mai mare valoare a funcţiei de apartenenţă:
O submulţime fuzzy A a lui X este normală dacă h(A) = 1, adică ∃x ∈ X astfel încât
µ A ( x) = 1 . În caz contrar, A este subnormală.
Se numeşte nucleul lui A submulţimea lui X ale cărei elemente au grade de apartenenţă
unitare în A:
n(A) = {x ∈ X | µ A ( x) = 1} . (1.7)
µ A ( x) ≤ µ B ( x), ∀x ∈ X . (1.8)
A = B ⇔ µ A ( x) = µ B ( x), ∀x ∈ X . (1.9)
Fie A o submulţime fuzzy a lui X şi α ∈ [0,1] . Se numeşte tăietură-α (engl. α-cut) a lui
µ A mulţimea:
[ µ ]α = {x ∈ X | µ A ≥ α } (1.10)
c−x
1− α , c −α ≤ x ≤ c
x−c
µ A ( x, c, α , β ) = 1 − ,c< x≤c+β (1.11)
β
0, altfel
c −α + x c + β − x
µ A ( x, c,α , β ) = max min , , 0 (1.12)
α β
c−x
1 − , c −α ≤ x ≤ c
α
1, c < x ≤ d
µ A ( x, c, d , α , β ) = x−d (1.14)
1− ,d <x≤d+β
β
0, altfel
c −α + x d +β − x
µ A ( x, c, d ,α , β ) = max min , 1, , 0 (1.15)
α β
O altă funcţie de apartenenţă foarte utilizată este funcţia Bell generalizată. Pentru un
cvasi-număr fuzzy A cu centrul c. Fie a = [ µ A ] 0,5 şi q ∈ X astfel încât µ A (q ) = 0,5 . Dacă panta
lui µ A în q este m = b 2a > 0 , atunci:
1
µ A ( x, c, a , b ) = 2b
(1.16)
x−c
1+
a
1
µ A ( x, c, a , m ) = 4 ma
(1.17)
x−c
1+
a
M1 − x
L l , x ≤ M 1
x − M2
µ A = R , x ≥ M 2 (1.18)
r
1, M 1 < x < M 2
O funcţie de apartenenţă monoton crescătoare des întâlnită este cea sigmoidă. Fie
c ∈ X astfel încât µ A (c) = 0,5 şi panta lui µ A în c este m = a 4 . Atunci:
1
µ A ( x, c , a ) = −a( x −c)
(1.19)
1+ e
1
µ A ( x, c, m) = − 4m( x −c)
(1.20)
1+ e
După cum am menţionat, mulţimile fuzzy pot reprezenta în mod cantitativ termeni lingvistici
vagi. În vorbirea curentă, oamenii folosesc o serie de adverbe pentru nuanţarea acestora,
precum „foarte”, „aproape”, „oarecum” etc. Teoria mulţimilor fuzzy face posibilă
reprezentarea lor cu ajutorul unor restrictori (engl. hedge, gard viu, restricţie în general), care
modifică matematic funcţia de apartenenţă a mulţimii fuzzy considerată.
Dilatarea („oarecum”) dilată elementele fuzzy prin mărirea valorilor de apartenenţă ale
elementelor cu grade de apartenenţă mici: µ DIL ( A) ( x) = µ A ( x) .
10
11
µ A ( x) = 1 − µ A ( x), ∀x ∈ X
C (1.23)
În general, aceste operaţii pot fi definite cu ajutorul unor funcţii numite norme
triunghiulare sau t-norme.
O funcţie T : [0,1]2 → [0,1] se numeşte t-normă dacă respectă:
• x ≤ u , y ≤ v ⇒ T ( x, y ) ≤ T (u , v) (monotonia);
• T ( x, y ) = T ( y , x ) (comutativitatea);
• T (T ( x, y ), z ) = T ( x, T ( y, z )) (asociativitatea);
• T (0, 0) = 0, T ( x,1) = x (condiţiile de limită).
O funcţie S : [0,1]2 → [0,1] se numeşte t-conormă dacă şi numai dacă este comutativă,
asociativă, monoton nedescrescătoare în raport cu ambele argumente şi satisface condiţiile de
limită S ( x, 0) = x, S (1,1) = 1 .
Funcţia S ( x, y ) = 1 − T (1 − x, 1 − y ) se numeşte t-conorma duală a lui T.
µ A∩ B ( x) = T ( µ A ( x), µ B ( x)), ∀x ∈ X
µ A∪ B ( x) = S ( µ A ( x), µ B ( x)), ∀x ∈ X . (1.24)
Funcţiile T şi S pot avea diverse forme, însă t-normele cele mai utilizate în aplicaţii sunt
următoarele:
(λx − 1)(λ y − 1)
Tλ ( x, y ) = log λ 1 + , λ ∈ (0, ∞) − {1}
λ −1
Sλ ( x, y ) = 1 − Tλ (1 − x, 1 − y ) (1.28)
12
x + y − 1 + λxy
Tλ ( x, y ) = max , 0 , λ ∈ (−1, ∞)
1+ λ
λxy
S λ ( x, y ) = min x + y − , 1 (1.29)
1+ λ
x, y = 1 x, y = 0
T−1 ( x, y ) = y, x = 1 , S −1 ( x, y ) = y, x = 0 (1.30)
0, altfel 1, altfel
În logica fuzzy şi raţionamentul aproximativ, cea mai importantă regulă de inferenţă este
Modus Ponens generalizat. În logica clasică, această regulă de inferenţă era de forma
( p ∧ ( p → q )) → q , adică:
De exemplu: „Premisă: Dacă presiunea este mare, atunci volumul este mic. Fapt:
Presiunea este foarte mare. Consecinţă: Volumul este foarte mic.”. „Presiunea” şi „volumul”
sunt variabile lingvistice, iar „mare” şi „mic” sunt valori lingvistice, caracterizate de funcţii de
apartenenţă.
Dacă A' = A şi B' = B, regula se reduce la Modus Ponens clasic.
Matricea A → B deseori se notează cu M şi se numeşte memorie asociativă fuzzy [7].
Procesul de inferenţă fuzzy este văzut ca o mapare a unei mulţimi fuzzy într-o altă mulţime
fuzzy. M are semnificaţia unei matrici de posibilităţi condiţionate ale elementelor din A şi B:
13
• Łukasiewicz: µ A→ B = min(1 − µ A + µ B , 1) ;
• Kleene-Dienes: µ A→ B = max(1 − µ A , µ B ) ;
• Zadeh: µ A→ B = max(1 − µ A , min( µ A , µ B )) ;
1, µ ≤ µ B
• Gödel: µ A→ B = A ;
µ B , µ A > µ B
1, µ A = 0
µ
• Goguen: µ A→ B = ;
min(1, B ), µ A ≠ 0
µA
• Reichenbach: µ A→ B = 1 − µ A + µ A ⋅ µ B .
De cele mai multe ori, se preferă pentru implicaţie operatorul minim, adică:
mij = min(ai , b j ) sau produs: mij = ai ⋅ b j .
În primul caz, submulţimea indusă în B, B' se calculează astfel: b j = max(min(ai' , mij )) .
i
Avem de-a face aici cu regula max-min, din care rezultă o mulţime ce reprezintă o variantă
„retezată” a lui B, la înălţimea fixată de A'.
În cel de-al doilea caz, regula max-produs, B' se calculează cu: b j = max(ai' ⋅ mij ) ,
i
rezultând o mulţime care este o variantă scalată a lui B.
14
∑ x ⋅ µ (x ) i A i
y= i
(1.34)
∑ µ (x )i
A i
y= ∫ x ⋅ µ ( x) dxA
(1.35)
∫ µ ( x) dx
A
O altă abordare a procesului de inferenţă fuzzy a fost concepută de Takagi şi Sugeno [15]. În
acest caz, regula generală de inferenţă are următoarea formă:
15
∑w r ⋅ f r ( x1 ,..., xn )
y= r =1
k
(1.37)
∑w
r =1
r
Vom avea:
z1 = p1 ⋅ x + q1 ⋅ y + r1
z2 = p2 ⋅ x + q2 ⋅ y + r2 (1.39)
w1 ⋅ z1 + w2 ⋅ z 2
z= . (1.40)
w1 + w2
16
Referinţe
17
18
Reţele neuronale
2.1. Noţiuni fundamentale
2.2. Caracteristici ale reţelelor neuronale
2.2.1. Modelul neuronului
2.2.2. Arhitectura reţelei
2.2.3. Algoritmi de antrenare
2.2.3.1. Algoritmul back-propagation
2.2.3.2. Metode de accelerare a învăţării
2.2.3.3. Învăţarea cu întărire
2.2.3.4. Învăţarea hebbiană
2.2.3.5. Algoritmul Kohonen
2.3. Concluzii
19
Neuronii nu se ating în mod direct, ci sunt separaţi prin spaţii numite sinapse. Acestea
sunt unităţi structurale şi funcţionale elementare care mediază interacţiunile dintre neuroni.
Tipul cel mai răspândit de sinapsă este sinapsa chimică, ce operează astfel: un proces
presinaptic eliberează o substanţă transmiţătoare, care difuzează peste joncţiunea sinaptică
dintre neuroni şi apoi acţionează asupra unui proces postsinaptic. Astfel o sinapsă converteşte
un semnal electric presinaptic într-un semnal chimic (ioni de sodiu şi potasiu) şi apoi din nou
într-un semnal electric postsinaptic.
În descrierile tradiţionale ale organizării neuronale, se consideră că o sinapsă este o
conexiune simplă care poate impune excitare sau inhibare, dar nu ambele, neuronului receptor.
Ambele efecte sunt locale; ele se propagă pe o distanţă mică în corpul celulei şi sunt însumate
la nivelul axonului. Dacă suma potenţialelor de excitare depăşeşte un anumit prag, atunci
neuronul este activat şi transmite un impuls mai departe.
În mod analog funcţionează şi o reţea neuronală artificială. În cea mai general formă a
sa, o reţea neuronală este o maşină proiectată pentru a modela felul în care creierul rezolvă o
anumită problemă sau execută o funcţie cu un anumit scop; reţeaua este de obicei implementată
folosindu-se componente electronice sau simulată prin software pe un calculator digital.
Simon Haykin [8] consideră că o reţea neuronală este un procesor masiv paralel,
distribuit, care are o tendinţă naturală de a înmagazina cunoştinţe experimentale şi de a le face
disponibile pentru utilizare. Ea se aseamănă cu creierul în două privinţe:
• Cunoştinţele sunt căpătate de reţea printr-un proces de învăţare;
• Cunoştinţele sunt depozitate nu în unităţile de procesare (neuroni), ci în conexiunile
interneuronale, cunoscute drept ponderi sinaptice.
20
Datorită acestor trăsături ale prelucrării informaţiei reţelele neuronale pot rezolva
probleme complexe care sunt dificil de abordat prin metode clasice. Cu toate acestea,
cercetătorii recunosc că mai au un drum lung de parcurs până vor ajunge să construiască un
calculator care să imite creierul omenesc. „Inteligenţa” la care au ajuns în prezent cele mai
sofisticate reţele neuronale este sub nivelul unui copil de ciţiva ani. Cu toate acestea nu trebuie
minimizată sau ignorată importanţa reţelelor neuronale artificiale şi este posibil ca pe viitor, cu
ajutorul lor să ajungem la o cunoaştere mai aprofundată a fenomenelor ce au loc in creierul
uman. Ceea ce recomandă reţelele neuronale artificiale este raportul favorabil performanţă –
complexitate, aflat într-o continuă creştere şi care este mult mai mare decât cel al sistemelor de
inteligenţă artificială implementate prin alte tehnologii.
Din punct de vedere structural, reţelele neuronale se caracterizează prin trei elemente:
modelul neuronului, arhitectura reţelei şi algoritmul de antrenare folosit.
21
n
y = f ∑ wi xi − θ (2.1)
i =1
22
Neuronul Adaline propus de Widrow şi Hoff [27] avea tot o funcţie de activare prag, cu
− 1, s < 0
valorile –1 şi 1: f( s ) = .
1, s ≥ 0
23
Principala limitare a acestor funcţii de activare este faptul că prin intermediul lor nu se
pot rezolva decât probleme liniar separabile. Să presupunem că există două clase de obiecte şi
dorim ca reţeaua să ne indice corect apartenenţa unei anumite instanţe la una din clase:
{ } { }
C1 = x k | y k = 0 şi C 2 = x k | y k = 1 . Dacă există un vectori de ponderi potrivit, atunci:
s < 0, ∀x ∈ C1
s > 0, ∀x ∈ C 2
Un exemplu foarte simplu în acest sens este efectuarea unei operaţii binare elementare
(şi, sau):
24
De aceea, tipurile de reţele utilizate în prezent dispun de mai multe straturi de neuroni
cu funcţii de activare neliniare, cum ar fi funcţiile sigmoide. Avem astfel funcţia sigmoidă
1
unipolară (funcţia logistică): f( s ) =
1 + e −s
2 1 − e−s
sau funcţia sigmoidă bipolară (tangenta hiperbolică): f( s ) = −1 = .
1 + e −s 1 + e −s
25
Din punct de vedere al arhitecturii, reţelele neuronale artificiale se clasifică în două mari grupe:
O reţea neuronală feed-forward simplă constă din aranjarea unui grup de neuroni
într-un singur strat:
Aceasta are N intrări şi K ieşiri. Fiecare intrare se aplică tuturor celor K neuroni.
Vectorul de ieşire va rezulta din aplicarea funcţiei de activare produsului scalar al matricei
ponderilor W cu vectorul de intrare X:
S = W T ⋅ X ⇒ Y = f ( S ) = f (W T ⋅ X ) (2.2)
26
Există câteva structuri de reţele neuronale artificiale consacrate şi foarte des utilizate,
deoarece au oferit rezultate încurajatoare în diverse aplicaţii :
27
Algoritmul back-propagation [26, 19] este cel mai cunoscut şi utilizat algoritm de învăţare
supervizată. Numit şi algoritmul delta generalizat, el se bazează pe minimizarea diferenţei
dintre ieşirea dorită şi ieşirea reală, prin metoda gradientului descendent.
Gradientul ne spune cum variază o funcţie în diferite direcţii. Ideea algoritmului este
găsirea minimului funcţiei de eroare în raport cu ponderile conexiunilor. În continuare se vor
prezenta paşii algoritmului, pentru o reţea cu un singur strat ascuns şi o singură unitate de
ieşire.
28
{(x , y ), ... , (x
1 1 K
)}
, yK ,
( )
unde x k = x1k , ..., x nk , y k ∈ şi k = 1, ... , K
Metoda Momentum
Metoda Momentum a fost prezentată de către Rumelhart, Hinton şi Williams [20] şi propune
adăugarea unui termen la ajustarea ponderilor. Acest termen este proporţional cu ultima
modificare a ponderii. Adică valorile cu care se ajustează ponderile sunt memorate şi
influenţează în mod direct toate ajustările ulterioare.
29
δe
δw k = η ⋅ + α ⋅ δw k −1 , (2.5)
δw k
unde δw k este este valoarea gradienţilor cu care se ajustează ponderile w în pasul k al unei
epoci de antrenare, iar e este funcţia de eroare pătratică medie.
Experimental, valoarea constantei α s-a stabilit la valoarea 0,9. Tot experimental s-a
demonstrat că această metodă este benefică numai în unele probleme, pe cînd în altele
micşorează performanţele algoritmului de propagare înapoi.
O variaţie a metodei Momentum este următoarea:
w k = w k −1 + η ⋅ δw k (2.6)
δe
δw k = α ⋅ δw k −1 + (1 − α ) ⋅ , (2.7)
δw k
1 1
F ( x) = − + (2.8)
2 1 + e−x
Această metodă este o tehnică simplă de accelerare a învăţării, propusă de Silva şi Almeida
[21, 22] şi constă în utilizarea unei rate de învăţare individuale pentru fiecare pondere şi
adaptarea acestor parametri în fiecare iteraţie, în funcţie de semnele succesive ale gradienţilor:
Valori tipice care funcţionează bine în cele mai multe situaţii sunt: u = 1.2 şi d = 0.8.
În cadrul învăţării, se realizează de fapt determinarea cît mai fidelă a minimului funcţiei
de eroare pătratică medie, considerată ca o funcţie de mai multe variabile, adică de ponderi.
30
• Măreşte viteza de învăţare, reţeaua ajungînd să înveţe repede, într-un număr mic de
epoci;
• Măreşte gradul de învăţare, reţeaua ajungînd la performanţe bune (la terminarea
atenuării reţelei, punctul stării curente este aproape de cel corespunzător minimului
global).
31
t
∂rk
∆wt = η (rt +1 − rt ) ∑ λt −k , (2.9)
k =1 ∂W
unde η este rata de învăţare, rt este recompensa estimată la momentul t, t reprezintă momentul
∂r
dinaintea unei mutări iar t + 1 momentul de după mutare, k este gradientul recompenselor
∂W
în spaţiul ponderilor iar W reprezintă vectorul tuturor ponderilor la momentul t.
După cum am amintit, învăţarea nesupervizată are ca scop clusterizarea datelor de intrare,
adică gruparea obiectelor similare şi separarea celor diferite, în lipsa unor informaţii a priori în
acest sens. De cele mai multe ori, reţelele neuronale care utilizează acestă paradigmă de
învăţare sunt foarte simple, cu un singur strat. Neexistând un instructor, reţeaua trebuie să se
auto-organizeze în conformitate cu unele reguli interne ca răspuns la stimulii din mediul extern.
Una din cele mai plauzibile legi de învăţare din punct de vedere biologic poartă numele
de învăţare hebbiană, după numele neurofiziologului Donald Hebb [9]. Ideea centrală este
modificarea ponderii unei conexiuni proporţional cu produsul intrării şi ieşirii conexiunii
respective:
∆wi = η y xi , (2.10)
unde η este rata de învăţare, y reprezintă ieşirea conexiunii iar xi este o intrare a acesteia.
Una din problemele învăţării hebbiene este faptul că ponderile pot creşte nelimitat dacă
intrarea nu este normalizată corespunzător, iar învăţarea nu se termină niciodată. O normalizare
foarte eficientă a regulii lui Hebb a fost propusă de E. Oja [17]:
∆wi = η y ( xi − y wi ) (2.11)
32
∆wij = η yi x j − ∑ yi wkj , (2.12)
k
unde:
yi = ∑ wij x j , i = 1, …, M (2.13)
j
desemnează neuronul „învingător”, ale cărui ponderi sunt cele mai bune aproximări ale intrării
curente x.
Algoritmul poate fi sintetizat în următorii paşi:
33
Reţeaua poate fi antrenată numai dacă clasele sunt liniar separabile de hiperplane care
trec prin origine. Pentru a asigura separabilitatea acestora, învăţarea se poate face cu un număr
excesiv de mare de neuroni. În timpul antrenării, unii neuroni nu-şi vor dezvolta ponderile sau
acestea vor evolua în mod haotic. Ei nu vor fi luaţi în consideraţie la final. Ponderile celorlalţi
neuroni se vor stabiliza la valorile care indică clusterele.
2.3. Concluzii
Reţelele neuronale îşi dovedesc în principal utilitatea în rezolvarea unor probleme dificile, cum
sunt cele de estimare, identificare şi predicţie, sau de optimizare complexă. Datorită
independenţei efectuării operaţiilor din interiorul componentelor faţă de celelalte componente
din sistem, modelele conexioniste au un potenţial mare de paralelism.
Modul de memorare şi procesare a datelor diferenţiază reţelele neuronale artificiale de
programele clasice, care urmează instrucţiunile într-o ordine secvenţială predefinită, iar
informaţia este memorată în zone bine definite. Datorită capacităţii lor de a rezolva probleme
complexe pe baza unei mulţimi consistente de exemple, sistemele conexioniste au un spectru
larg de aplicabilitate: de la sisteme de recunoaştere de forme (caractere, semnături, etc.) sau de
semnale sonore, până la sisteme pentru controlul unor procese complexe, cum ar fi sistemele de
auto-reglare sau piloţii automaţi.
În acest capitol au fost prezentate caracteristicile principale ale unei reţele neuronale
artificiale. Mai întâi au fost precizate asemănările şi deosebirile dintre reţelele neuronale şi un
sistem nervos biologic, insistându-se asupra capacităţii unei reţele neuronale de a învăţa şi
înmagazina cunoştinţe, pe baza unui proces de ajustări ale ponderilor conexiunilor dintre
neuroni. Apoi au fost amintite diverse tipuri de neuroni, cu anumite funcţii de activare, precum
şi arhitecturile cele mai cunoscute de reţele. În continuare, au fost descrişi unii algoritmi de
antrenare pentru diverse tipuri de învăţare: învăţarea supervizată (algoritmul back-propagation,
cu variantele Momentum şi rată de învăţare variabilă), învăţarea cu întărire (metoda
diferenţelor temporale), învăţarea nesupervizată (învăţarea hebbiană şi algoritmul Kohonen).
34
35
36
Termenul Soft Computing a fost introdus de Lotfi Zadeh, cu scopul de a „exploata toleranţa la
imprecizie, incertitudine şi adevăr parţial pentru a dobândi flexibilitate, robusteţe, costuri
scăzute ale soluţiilor şi o legătură mai bună cu realitatea” [16].
Această caracteristică îl face să difere fundamental de computing-ul convenţional
(hard), caracterizat tocmai de lipsa impreciziei şi a adevărurilor parţiale. Ţinta finală ar fi de
fapt egalarea şi chiar depăşirea performanţelor minţii umane.
Soft computing-ul se caracterizează printr-un parteneriat al mai multor domenii, dintre
care cele mai importante sunt reţelele neuronale, algoritmii genetici, logica fuzzy şi
raţionamentele probabilistice. Relaţiile dintre aceste componente sunt prezentate în figura 3.1.
Având la bază modelul gândirii umane, soft computing-ul grupează aceste domenii,
aflate nu într-o relaţie de tip concurenţial ci una de complementaritate, în care fiecare partener
contribuie cu avantajele şi tehnicile proprii la soluţionarea unor probleme imposibil de rezolvat
în alt mod. Astfel, reţelele neuronale au capacitatea de a învăţa şi de a se adapta, logica fuzzy
oferă posibilitatea aproximării, în timp ce algoritmii genetici pot realiza o căutare sistematizată
a soluţiei optime.
37
Fiecare tehnică inteligentă are unele proprietăţi computaţionale tipice (de exemplu, capacitatea
de a învăţa, explicarea deciziilor) care îi conferă aplicabilitatea pentru anumite probleme şi
prezintă dezavantaje în rezolvarea altora. De exemplu, reţelele neuronale au avantajul
recunoaşterii modelelor, însă nu pot explica satisfăcător modul în care au ajuns la o concluzie.
Dimpotrivă, sistemele fuzzy pot raţiona cu informaţii imprecise şi îşi pot explica raţionamentul,
dar nu pot achiziţiona automat regulile pe care le utilizează pentru luarea deciziilor.
Aceste limitări au fost principalul motiv pentru care s-a încercat crearea de sisteme
inteligente hibride, în care două sau mai multe tehnici pot fi combinate pentru a depăşi
dezavantajele tehnicilor individuale.
Modelarea cu reguli fuzzy, de tip dacă-atunci, este în general potrivită pentru
modelarea calitativă. Totuşi, în multe situaţii, datorită incompletitudinii cunoaşterii, inerente
unor situaţii reale, această abordare se dovedeşte insuficientă. De aceea se face apel la unele
metode conexioniste, cum ar fi reţelele neuronale. Sistemele neuro-fuzzy sunt astfel capabile să
înveţe din exemple, să generalizeze pe baza cunoştinţelor acumulate şi, pe baza datelor primite,
să sintetizeze cunoştinţe în forma regulilor fuzzy.
În ultimii ani, sistemele neuronale hibride au suscitat un deosebit interes. Această
abordare s-a dovedit încununată de succes în diferite domenii, precum diagnoza
echipamentelor industriale, robotica sau controlul proceselor dinamice. Motivul principal al
studierii sistemelor neuronale hibride este crearea de sisteme de reprezentare subsimbolică, în
special a reţelelor neuro-fuzzy. Din punctul de vedere al ştiinţelor cognitive, reprezentarea
neuronală oferă avantajul omogenităţii, a capacităţii de învăţare prin exemple şi a generalizării,
precum şi efectuarea de sarcini distribuite, în medii cu date incomplete sau afectate de
zgomote. Din punctul de vedere al sistemelor bazate pe cunoştinţe, reprezentările simbolice au
avantajul interpretării umane, al controlului explicit şi al abstractizării cunoaşterii.
În inteligenţa artificială, procedeul tradiţional este prelucrarea simbolică. În modelele
conexioniste însă, accentul cade pe posibilităţile de învăţare. Combinarea celor două abordări
este subiectul de cercetare în sistemele hibride, cum ar fi sistemele neuro-fuzzy. Modelele
conexioniste sunt instrumente puternice de prelucrare a cunoştinţelor, eficiente mai ales în
situaţii în care percepţia şi reacţia sunt fundamentale şi unde regulile explicite nu pot fi aplicate
în mod natural sau direct. Totuşi, învăţarea prin exemple nu este o soluţie generală, în multe
situaţii entităţile inteligente se bazează pe reguli formulate anterior de experţi.
Cele două abordări pot fi utilizate în mod complementar. Aceasta este premisa creării
de sisteme hibride inteligente, care combină trăsături conexioniste (neuronale) şi simbolice
(fuzzy). În astfel de sisteme, mai întâi se introduc informaţii simbolice în reţeaua neuronală,
apoi se folosesc exemplele de instruire pentru rafinarea cunoştinţelor iniţiale. În final, se
procesează rezultatul pentru un set de intrări şi, prin metode specifice, se extrag informaţii
simbolice din reţeaua antrenată.
Din momentul în care sistemele fuzzy au fost puse în practică în aplicaţiile industriale,
proiectanţii şi-au dat seama de dificultăţile care surveneau în mod inerent. Problema găsirii
funcţiilor membre potrivite este de multe ori o chestiune de generare de valori şi îndepărtarea
celor eronate. Aceste soluţii sunt greu de găsit, mai ales într-un proces industrial dinamic. De
aceea s-a ivit ideea aplicării algoritmilor de învăţare sistemelor fuzzy, ceea ce a determinat
apariţia controllerelor fuzzy adaptabile sau cu auto-organizare.
38
39
O reţea neuronală fuzzy (engl. „fuzzy neural network”, FNN) reprezintă o reţea neuronală care
dispune de capacitatea de a prelucra informaţii fuzzy.
Într-o astfel de reţea, semnalele de intrare şi/sau ponderile conexiunilor şi/sau ieşirile
sunt submulţimi fuzzy sau mulţimi de valori de apartenenţă la mulţimi fuzzy. De obicei, se
utilizează ca modele termeni lingvistici precum „mic”, „mediu”, „mare”, numere sau intervale
fuzzy [10]. Structura acestui tip de sistem este următoarea [9]:
40
Scopul perceptronului fuzzy nu este fuzzyficarea integrală a unei reţele neuronale de tip
perceptron şi nici modelarea unui sistem de inferenţă bazat pe logica fuzzy. Se observă că
numai ponderile, net input-urile şi funcţiile de activare ale unităţilor de ieşire sunt reprezentate
ca mulţimi fuzzy. Perceptronul fuzzy prezentat mai sus este asemănător cu perceptronul clasic,
utilizat pentru aproximări de funcţii. Avantajul său este posibilitatea de a asocia termeni
41
• Pasul 1: Se alege un model p din setul de antrenare care nu a mai fost ales în cadrul
epocii curente de antrenare. Se propagă vectorul de intrare i ( p ) ;
• Pasul 2: Se calculează diferenţele δ u pentru toate unităţile u ∈U 2 U U 3 :
2
t u( p ) − ou( p )
γ
max o ( p ) − min ou( p )
u u
Eroarea fuzzy Eu( p ) = 1 − e u
, unde γ este un factor de scalare.
∆( p )l j ,k = σ l ⋅ δ uk ⋅ (c j ,k − l j ,k )
∆( p )c j ,k = σ c ⋅ δ uk ⋅ (rj ,k − l j ,k )
∆( p ) rj ,k = σ r ⋅ δ uk ⋅ (rj ,k − c j ,k )
∆( p )li , j = −ηl ⋅ δ u j ⋅ (c j ,k − li , j )
∆( p )ci , j = ηc ⋅ δ u j ⋅ (aui − ci , j )
∆( p ) ri , j = η r ⋅ δ u j ⋅ (ri , j − c j ,k )
42
Un sistem fuzzy neuronal (engl. „neural fuzzy system”, NFS) este un sistem fuzzy prevăzut cu
o reţea neuronală pentru dezvoltarea unor caracteristici precum flexibilitate, viteză şi
adaptabilitate.
Schema bloc funcţională a unui astfel de sistem este prezentată în figura 3.3.
Cunoaşterea de tip expert este convertită mai întâi într-o formă simbolică (1) şi apoi
utilizată pentru iniţializarea reţelei neuronale (2). În continuare, reţeaua este antrenată pe baza
intrărilor şi ieşirilor unui sistem real (3). Cunoştinţele obţinute din reţeaua neuronală (4) sunt
prelucrate apoi într-o manieră fuzzy pentru determinarea unor reguli de inferenţă fuzzy,
comunicate în final expertului (5).
Pentru a înţelege mai bine funcţionarea sa, vom considera un exemplu. Sistemul poate
fi văzut ca un doctor căruia i se predau mai întâi noţiuni medicale teoretice în sala de curs. El
va folosi aceste cunoştinţe generale pentru a înţelege mai apoi ce se întâmplă când i se prezintă
cazuri şi operaţii reale. În final, va fi el însuşi capabil să pună în practică cele învăţate.
Aceste sisteme sunt potrivite în special pentru achiziţia de cunoştinţe şi învăţare. Ele
pot realiza procesul de inferenţă fuzzy cu ajutorul ponderilor conexiunilor reţelei care
corespund parametrilor raţionamentului. Folosind algoritmi de învăţare cum ar fi
back-propagation, aceste sisteme pot identifica reguli fuzzy, pentru ca apoi să înveţe funcţiile
de apartenenţă ale inferenţelor. Un sistem fuzzy neuronal ar trebui, teoretic, să poată învăţa şi
reguli lingvistice sau să optimizeze regulile deja existente. Există aici trei posibilităţi [11]:
43
Acestea sunt cele mai studiate sisteme hibride la ora actuală. Sistemele hibride neuro-fuzzy sunt
o combinaţie de reţele neuronale şi logică fuzzy în care ambele tehnici joacă un rol cheie:
logica fuzzy asigură structura în care poate fi exploatată capacitatea de învăţare a reţelelor
neuronale.
Unii autori consideră că un sistem neuro-fuzzy este definit de următoarele caracteristici
[12]:
• este un sistem fuzzy antrenat printr-un algoritm de învăţare (euristic), derivat din
tehnicile specifice reţelelor neuronale;
• poate fi reprezentat printr-o arhitectură de reţea neuronală feed-forward;
• poate fi oricând interpretat în termenii regulilor fuzzy dacă-atunci;
• procedura de antrenare ia în calcul semantica modelului fuzzy pentru a conserva
interpretabilitatea sa lingvistică;
• poate realiza (cazuri speciale) de aproximare funcţională.
În acest domeniu au fost propuse mai multe modalităţi de combinare a celor două
tehnici [2]. În primul rând, reţelele neuronale pot fi utilizate pentru generarea şi reglarea
funcţiilor de apartenenţă a sistemului fuzzy:
Sistemele neuro-fuzzy pot avea arhitecturi de tip serie sau paralel. În figura 3.5 se
prezintă un sistem neuro-fuzzy în care reţeaua neuronală joacă rolul de preprocesare.
44
Reţeaua neuronală reglează ieşirea sistemului fuzzy pe baza a ceea ce a învăţat despre
preferinţele personale ale utilizatorului din ajustările anterioare pe care acesta le-a efectuat.
Sistemele neuro-fuzzy se bucură de apreciere în mai multe domenii. Un exemplu
notabil este cel al controlului automat, în special aplicaţiile aeronautice şi aerospaţiale, în care
pilotul automat trebuie să simuleze capacitatea umană de a raţiona în diverse situaţii [15]. Alt
exemplu este cel al recunoaşterii trăsăturilor faciale [8]. Trăsăturile sunt identificate şi
fuzzyficate pentru a le scădea sensibilitatea faţă de variaţiile inerente care apar chiar în cazul
aceleiaşi persoane. Aceste caracteristici fuzzyficate sunt apoi introduse într-o reţea neuronală
care implementează procesul propriu-zis de recunoaştere.
45
Sistemul de Inferenţă Fuzzy bazat pe Reţele Adaptive, realizat de J.S.R. Jang [6],
implementează un sistem de inferenţă fuzzy bazat pe modelul Takagi-Sugeno, prezentat în
paragraful 1.5.2. Arhitectura ANFIS este structurată pe 5 straturi:
Primul strat realizează fuzzyficarea datelor de intrare, adică converteşte intrările stricte
x şi y în valori ale funcţiilor de apartenenţă fuzzy corespunzătoare nodurilor. De exemplu,
ieşirea nodului A1 va fi: O1A1 = µ A1 ( x) . Analog, ieşirea nodului B2 va fi: OB1 2 = µ B2 ( x) . Pentru
acest model se folosesc în general funcţii de apartenenţă Bell generalizate (relaţia 1.16) sau
gaussiene (relaţia 1.13), care au avantajul că sunt continue şi diferenţiabile.
În al doilea strat (stratul de reguli), se multiplică semnalele de intrare:
Oi = wi = µ Ai ( x) ⋅ µ Bi ( y ), i = 1,2. La ieşire se poate aplica şi o t-normă asupra produsului.
2
Ieşirile nodurilor din acest strat semnifică puterile de aprindere (engl. „firing strengths”) ale
regulilor corespunzătoare.
În al treilea strat se face normalizarea puterilor de aprindere, astfel încât suma acestora
să fie 1. Normalizarea este foarte simplă, fiecare semnal de intrare se divide cu suma totală a
w1
intrărilor: Oi3 = wi = . Ieşirile se numesc puteri de aprindere normalizate ale regulilor.
w1 + w2
Al patrulea strat este un strat de defuzzyficare. Aici se aplică modelul Takagi-Sugeno,
se calculează un polinom de ordin întâi (o funcţie liniară) de variabilele de intrare şi apoi
rezultatul este ponderat cu puterile de aprindere normalizate calculate anterior:
Oi4 = w1 ⋅ f1 = w1 ⋅ ( pi ⋅ x + qi ⋅ y + ri ). Constantele pi, qi şi ri sunt parametrii concluzivi ai
sistemului de inferenţă.
Ultimul strat este format dintr-un singur neuron sumator, care calculează suma ieşirilor
din straturile de defuzzyficare şi produce ieşirea din sistemul ANFIS: O = O 5 = ∑ Oi4 .
i
Învăţarea într-un sistem ANFIS se bazează pe o schemă hibridă. Mai întâi, utilizatorul
decide numărul de reguli şi modul lor de interacţiune, construind astfel cunoştinţele integrate
a-priori despre structura soluţiei. Funcţiile de apartenenţă trebuie iniţializate astfel încât să
împartă cât mai egal universul discursului şi să aibă suficiente suprapuneri. În pasul „înainte”
al antrenării, se calculează ieşirile neuronilor până în stratul 4 iar parametrii concluzivi
(coeficienţii funcţiei liniare) sunt calculaţi prin metoda celor mai mici pătrate. În pasul
46
3.4. Concluzii
Sistemele fuzzy şi reţelele neuronale sunt estimatori numerici şi în acelaşi timp sisteme
dinamice, care prezintă capacitatea de a dezvolta inteligenţa agenţilor care acţionează în medii
nesigure, imprecise şi afectate de zgomot. Este şi dezideratul domeniului soft computing-ului,
care încearcă simularea performanţelor minţii umane prin combinarea unor tehnici precum
reţelele neuronale, sistemele fuzzy şi algoritmii genetici.
Relaţia dintre reţelele neuronale şi cunoştinţele lingvistice este bidirecţională. De aceea,
sistemele de clasificare bazate pe reţele neuronale pot fi antrenate cu date numerice şi
cunoştinţe lingvistice, iar sistemele de clasificare fuzzy bazate pe reguli pot fi proiectate cu
ajutorul cunoştinţelor lingvistice şi a regulilor fuzzy extrase din reţele neuronale.
Logica fuzzy şi modelele conexioniste au necesităţi contrastante din punctul de vedere
al aplicaţiilor practice. Sistemele fuzzy sunt potrivite atunci când există suficientă cunoaştere
de tip expert. Reţelele neuronale sunt adecvate dacă există există suficiente date disponibile sau
măsurabile. Sistemele fuzzy conduc la o abordare calitativ-simbolică, pe când reţelele
neuronale se pretează mai ales la o abordare cantitativ-numerică.
Combinarea sistemelor fuzzy cu reţelele neuronale conduce la reducerea şi chiar
eliminarea dezavantajelor individuale ale celor două tehnici. În acelaşi tip, prin diverse
modalităţi de hibridizare, se pot pune în valoare avantajele incontestabile ale acestora:
capacitatea de învăţare a reţelelor neuronale şi reprezentarea explicită, simbolică a
cunoştinţelor prin intermediul sistemelor fuzzy.
Reţelele neuronale fuzzy menţin proprietăţile de bază ale reţelelor neuronale, la care se
adaugă fuzzyficarea unora din elementele lor caracteristice pentru a putea prelucra informaţii
fuzzy. Pentru concretizare, au fost descrise structura şi algoritmul de învăţare ale unui
perceptron fuzzy.
Sistemele fuzzy neuronale încearcă ajustarea regulilor din sistemul fuzzy prin metode
tipice reţelelor neuronale, fără a-şi pierde caracteristicile esenţiale (fuzzyficarea,
defuzzyficarea, motorul de inferenţă şi fundamentul logicii fuzzy).
În abordarea hibridă neuro-fuzzy, atât tehnicile fuzzy cât şi cele conexioniste joacă un
rol cheie, fiecare îndeplinind funcţii diferite în sistem, potrivite naturii sale. În această categorie
intră Sistemul de Inferenţă Fuzzy bazat pe Reţele Adaptive (ANFIS).
47
48
4.1 Generalităţi
Algoritmii genetici fac parte din categoria algoritmilor de calcul evoluţionist şi sunt inspiraţi de teoria
lui Darwin asupra evoluţiei. Idea calculului evoluţionist a fost introdusă în 1960 de I. Rechenberg în
lucrarea intitulată “Evolution strategies”.
Algoritmii genetici au fost aplicaţi cu succes într-o varietate de aplicaţii care necesită optimizarea
globală a soluţiei. Ei se referă la un model introdus şi analizat de J. Holland în 1975 şi sunt proceduri
adaptive care găsesc soluţia problemei pe baza unui mecanism de selecţie naturală şi evoluţie genetică.
Algoritmul este des folosit pentru probleme în care găsirea soluţiei optime nu este uşoară sau cel
puţin ineficientă datorită caracteristicilor căutării probabilistice. Algoritmii genetici codifică o
soluţie posibilă la o problemă specifică într-o singură structură de date numită „cromozom” şi
aplică operatori genetici la aceste structuri astfel încât să menţină informaţiile critice.
Algoritmii genetici pornesc de la o mulţime iniţială de soluţii (de obicei aleasă aleator) numită în
literatură „populaţie”. În această populaţie fiecare individ este numit „cromozom” şi reprezintă o
soluţie posibilă a problemei. În aproape toate cazurile cromozomul este un şir de simboluri (de obicei
reprezentat ca un şir de biţi). Aceşti cromozomi evoluează pe durata iteraţiilor succesive numite
generaţii. În fiecare generaţie, cromozomii sunt evaluaţi utilizând unele măsuri de adecvare /potrivire
(fitness).
Pentru crearea următoarei populaţii cei mai buni cromozomi din generaţia (populaţia) curentă sunt
selectaţi iar noii cromozomi sunt formaţi folosind unul dintre cei trei operatori genetici esenţiali:
selecţia, crossover (încrucişare) şi mutaţia.
Selecţia asigură că anumiţi cromozomi din generaţia curentă sunt copiaţi în acord cu valoarea funcţiei
lor de potrivire în noua generaţie ceea ce înseamnă că cromozomii cu o importanţă mare au o
probabilitate mare să contribuie la formarea noii generaţii. Crossover este un alt operator genetic care
reprezintă procesul prin care pe baza a doi cromozomi din populaţia curentă sunt formaţi doi
cromozomi pentru populaţia următoare. Mutaţia este procesul prin care un cromozom din populaţia
curentă este modificat şi salvat în noua populaţie.
49
Algoritmi genetici
Algoritmii genetici au două componente principale care depind de problema abordată: codificarea
problemei şi funcţia de evaluare (de fitness). Cromozomii care reprezintă codificarea problemei
trebuie într-o oarecare măsură să conţină informaţiile despre soluţia problemei şi depind foarte mult
de problemă. Există mai multe codificări, care au fost utilizate cu succes cum ar fi codificarea binară
(cromozomul este format din şiruri de 0 sau 1 care reprezintă binar soluţia problemei) sau codificarea
prin valoare (cromozomul este format dintr-un şir de valori vector întregi sau reale care pe ansamblu
reprezintă soluţia problemei). De exemplu un cromozom poate avea următoare formă (reprezentat
prin valoare):
Funcţia de evaluare numită şi funcţia de „fitness” (potrivire) este funcţia care ne permite să dăm o
încredere la fiecare cromozom din populaţie. Această funcţie este de obicei funcţia care reprezintă
descrierea problemei.
Când trebuie să rezolvăm o problemă, de obicei ne uităm după anumite soluţii care sunt mai bune
decât alte soluţii obţinute anterior. Spaţiul tuturor soluţiilor fezabile este numit spaţiul de căutare sau
spaţiul stărilor. Problemele abordate folosind algoritmi genetici sunt de obicei probleme pentru care
căutarea în spaţiul soluţiilor este o problemă complicată sau chiar (NP-completă) - ( NP = clasa
problemelor care pot fi rezolvate de algoritmi NEdeterministi in timp polinomial). De obicei nu ştim
unde să ne uităm după soluţie şi de unde să începem. Soluţiile obţinute folosind algoritmi genetici
sunt de obicei considerate ca soluţii bune deoarece nu este întotdeauna posibil să cunoaştem care este
optimul real.
50
Algoritmi genetici
În această metodă fiecare individ din populaţia curentă este reprezentat printr-un spaţiu proporţional
cu valoarea funcţiei lui de evaluare. Prin eşantionări aleatoare succesive din acest spaţiu de
reprezentare a cromozomilor se asigură că cei mai buni cromozomi au şanse mai mari decât cei cu mai
slabi să fie selectaţi la un anumit pas. Această metodă de selecţie va avea probleme în momentul în
care valoarea funcţiei de evaluare diferă foarte mult de la un cromozom la altul. De exemplu dacă cel
mai bun cromozom are valoare funcţiei de evaluare mare (care va ocupa 90% din spaţiul de
reprezentare) iar restul cromozomilor au valori ale funcţiilor de evaluare foarte mici această metodă
va selecta de foarte multe ori cromozomul cel mai bun ducând în final la degenerarea populaţiei.
( M − fitness ( ci )) 2
−
P(ci ) = e 2σ 2
unde P(.) reprezintă probabilitatea calculată pentru cromozomul ci, M reprezintă media, care aici
este valoarea maximă care poate fi obţinută de către funcţia de evaluare, σ reprezintă
dispersia sau panta cu care scade probabilitatea, iar fitness(ci) reprezintă valoarea funcţiei de
evaluare pentru acel cromozom. De exemplu dacă valoare maximă a funcţiei de evaluare este 1,
M va fi 1 iar pentru dispersie propunem o valoare între 0.3-0.5.
3. În al treilea pas această probabilitate calculată este comparată cu o probabilitate aleasă aleator
în domeniul [0,1] (Probabilitatea lui Gauss întoarce valori în acest domeniu).
4. Se verifică dacă probabilitatea lui Gauss calculată pentru cromozomul ales este mai mare
decât probabilitatea aleasă aleator:
51
Algoritmi genetici
Această metodă asigură posibilitatea luării în considerare şi a cromozomilor care nu au obţinut valori
mari pentru funcţia de evaluare (oferă şanse mai mari de evoluţie şi cromozomilor mai slabi).
4.4.1 Selecţia
Pentru acest operator genetic de obicei se selectează doar un singur cromozom din populaţie. Acest
cromozom este copiat în noua populaţie fără nici o modificare. Această metodă se mai foloseşte şi
pentru a nu pierde cromozomul care a obţinut cea mai bună valoare la funcţia de evaluare (elitism) în
populaţia curentă. De asemenea, operatorul se aplică şi pentru alţi cromozomi selectaţi pe baza
metodelor de selecţie propuse dar de obicei acest operator apare de un număr mic de ori la generarea
noii populaţii.
4.4.2 Mutaţia
Mutaţia este un alt operator genetic important şi reprezintă un proces prin care cromozomul curent îşi
modifică ocazional una sau mai multe valori într-un singur pas. Mutaţia depinde de asemenea de
codificarea cromozomului. Mutaţia alege doar un singur candidat şi aleator modifică unele valori ale
acestuia (modificând doar semnul acelei valori sau uneori se modifică şi valoarea – în cazul
reprezentării prin valoare, sau se schimbă doar valoarea în cazul reprezentării binare). Mutaţia
funcţionează prin alegerea aleatoare a numărului de valori care vor fi schimbate şi a modului de
modificare a acestora. Prezentăm un exemplu de modificare a 2 cromozomi, primul având trei puncte
de modificare iar al doilea doar două puncte de modificare. În funcţie de dimensiunea cromozomului
se alege numărul de puncte pentru care se aplică mutaţia.
52
Algoritmi genetici
4.4.3 Crossover
Crossover poate fi asociat cu crearea următoarei populaţii folosind populaţia curenta. Acest operator
depinde foarte mult de tipul de codificare al cromozomilor. Metoda de crossover este aplicată la o
pereche de părinţi aleşi folosind una din metodele prezentate. Cu o probabilitate pc părinţii sunt
recombinaţi pentru a forma doi noi copii care vor fi introduşi în noua populaţie. De exemplu luăm 2
părinţi din populaţia curentă, împărţim şi încrucişăm componentele astfel încât să se producă 2 noi
candidaţi. Aceşti candidaţi în urma încrucişării trebuie să reprezente o soluţie posibilă pentru
parametrii problemei noastre de optimizare; de aceea de obicei se interschimbă valori de pe aceleaşi
poziţii. Utilizând un punct de recombinare putem crea noii candidaţi prin combinarea primei părţi din
primul părinte cu a doua parte din al doilea părinte. După recombinare se poate face aleator o mutaţie
pe noii candidaţi obţinuţi. Dacă dimensiunea cromozomului este mare, se pot alege mai multe puncte
de recombinare. Prezentăm un exemplu cu două puncte de recombinare:
53
Algoritmi genetici
b. Pentru restul de 50% din noua populaţie se vor folosi operatorii de mutaţie şi
crossover astfel:
i. Se selectează aleator folosind una din metodele prezentate unul sau doi
cromozomi din prima jumătate a noii populaţii.
ii. Dacă s-a selectat doar un cromozom se aplică acestuia operatorul de mutaţie.
iii. Dacă s-au selectat 2 cromozomi se aplică operatorul de crossover.
6. Se revine la pasul 3.
Obs.
54