Sunteți pe pagina 1din 281

Universitatea Politehnica din Bucureti

Facultatea de Automatic i Calculatoare

PROIECT PARTENERIATE N DOMENII PRIORITARE


NR. 31050/2007 (ECO-TSFS)
S
Siisstteem
m ddee m
moonniittoorriizzaarree eeccoollooggiicc
bbaazzaatt ppee aannaalliizzaa ttiim
mnnaalleelloorr
mpp--ffrreeccvveenn--ssccaall aa sseem

A
Allg
go
orriittm
mii eevvo
ollu
uaaii d
dee iid
deen
nttiiffiiccaarree
ii p
prreed
diicciiee aa ffeen
no
om
meen
neello
orr eecco
ollo
og
giiccee
RAPORT DE CECETARE
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009

Autori: Dan TEFNOIU


Janetta CULI
Ctlin PETRESCU
Alexandru DUMITRACU
Aurelia PURCREA

Etapa III 2009

P
Prrooiieeccttaarreeaa ii rreeaalliizzaarreeaa
ssiisstteem
moonniittoorriizzaarree
muulluuii ddee m
RAPORT DE CERCETARE
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009
Dan TEFNOIU1, Janetta CULI,
Ctlin PETRESCU, Alexandru DUMITRACU, Aurelia PURCREA
Universitatea Politehnica din Bucureti
Facultatea de Automatic i Calculatoare
www.pub.ro, www.acs.pub.ro
E-mails: danny@indinf.pub.ro, jculita@yahoo.com,
catalin@indinf.pub.ro, dumalex@ecosys.pub.ro, purcarea_aurelia@yahoo.com

Rezumat
Cea de-a treia etap (din totalul de 5, dup ultimul act adiional) a proiectului intitulat
Sistem de monitorizare ecologic bazat pe analiza timp-frecven-scal a
semnalelor, a avut un dublu obiectiv. n primul rnd, structura hardware a sistemului fiind
practic finalizat, s-a urmrit efectuarea achiziiei primelor date din natur. In al doilea rnd
i mult mai important n aceast etap a fost necesar implementarea unor algoritmi
de complexitate ridicat, cu ajutorul crora s se poat efectua identificarea i predicia
fenomenelor care au furnizat datele (activitai care stau la baza monitorizrii efective). Dei
ambele obiective au fost atinse n aceast etap (conform planului de realizare), ele
continu s fie urmrite pn la finalizarea proiectului.
Prezentul raport de cercetare se concentreaz pe descrierea celor 3 activiti prevzute
n planul de realizare, care au condus la finalizarea etapei a III-a. Activitile sunt grupate
n dou categorii:
achiziii de date;
implementarea unor algoritmi de complexitate ridicat, n vederea identificrii
experimetale i prediciei datelor achiziionate.
Achiziia de date beneficiaz de suportul hardware al sistemului de monitorizare,
constituit din: senzori specializai, interfaa VISA, unitatea mobil de calcul i unitatea
paralel de calcul (toate, descrise n rapoartele precedente de cercetare). Reamintim c
1

Director de proiect.

www.geocities.com/dandusus/Danny.html

una dintre caracteristicile fundamentale ale sistemului de achiziie a datelor (constituit


practic din subsistemul mobil laptop-VISA-senzori) o constituie capacitatea de a transmite
date prin unde radio si nu prin fir. Mai mult, datele pot fi transmise i printr-o comunicaie la
satelit (dac se achiziioneaz frecvenele corespunztoare) sau prin internet. Datele
achiziionate sunt organizate ntr-o baz informatic deschis, cu acces rapid.
Algoritmii de identificare i predicie care au fost implementai, se grupeaz n dou
categorii:
Algoritmi bazai pe modele numerice de identificare (PARMA, PARMAX, KARMA).
Algoritmi bazai pe analiza timp-frecven-scal a datelor (FORWAVER 1).
Prima categorie de algoritmi include dou clase, care trateaz predicia unidimensional (PARMA) i multi-dimensional (PARMAX, KARMA). A doua categorie va fi
extins n cadrul etapelor urmtoare cu noi algoritmi (FORWAVER 2 i GAMP). Cu
excepia algoritmului PARMA (deja descris n raportul precedent de cercetare), ceilali 3
algoritmi, de complexitate mai mare, necesit utilizarea sistemului paralel de calcul
(main paralel i mini-reea de computere), pentru a furniza rezultate de predicie n
timp rezonabil. Toi cei 4 algoritmi apeleaz la o strategie de programare evoluionist,
bazat pe principiul aglomerrii de particule, de asemenea descris n cadrul acestui raport
de cercetare.
Algoritmii implementai au fost testai pe diferite tipuri de date achiziionate, nu doar de
natur ecologic. De altfel, ei nu sunt neaprat specializai n acest tip de date. Doar
timpul lor relativ mare de rulare i mpiedic s predicteze fenomene rapide. Datele
predictate sunt obinute dup circa 1-2 ore de la iniierea rulrii. Fenomenele ecologice
sunt ns ncadrate n categoria entitilor dinamice cu evoluie lent, avnd perioade
minime de eantionare de cteva ore.
O serie de publicaii pe tema proiectului au fost de asemenea realizate, una dintre
acestea fiind indexat ISI-Thomson. Alte dou publicaii, de asemenea indexate ISI
Thomson, au fost acceptate spre publicare i urmeaz s vad lumina tiparului n cadrul
etapei urmtoare. Lista bibliografic din finalul raportului include referinele lor, nefiind
totui limitat la acestea.
Etapa urmtoare constituie o prelungire natural a celei care tocmai s-a ncheiat. De
altfel, n urma ultimului act adiional la contractul de cercetare, prile implicate au decis
mprirea fostei etape a III-a n dou etape cu durate mai scurte (actualele III i IV).
Algoritmii FORWAVER 2 i GAMP, care prezint complexitatea maxim, vor fi
implementai n cadrul etapelor urmtoare.

Cuprins

1. Scurt introducere

2. Achiziia i organizarea datelor ecologice

2.1. Reele de senzori avnd comunicaie radio (wireless)


2.1.1. Comunicarea prin unde electromagnetice
2.1.2. Reele ad hoc de senzori
2.2. Organizarea nivelului OSI superior al reelei de eKo-senzori
2.2.1. Despre modelele OSI
2.2.2. Topologii cu reele de senzori
2.2.3. Reeaua Crossbow i protocolul XMesh
2.2.4. Sistemul software al reelei Crossbow
2.3. Echipamentele i interfaa reelei de eKo-senzori
2.3.1. Descriere general
2.3.2. Echipamentele de baz
2.3.3. Punerea n funciune a reelei Crossbow
2.3.4. Interfaa eKo-View
2.4. Preluarea datelor din reeaua de eKo-senzori
2.4.1. Preluare prin exportare
2.4.2. Preluare direct din puntea de legtur

3. Algoritmi paraleli de predicie pe baz de modele de identificare


3.1.
3.2.
3.3.
3.4.
3.5.

Redefiniri ale criteriului PQ


Optimizare prin aglomerare de particule
Algoritmul PARMA-PSO
Algoritmul PARMAX-PSO
Algoritmul KARMA-PSO
3.5.1. Reprezentarea discret pe stare a unei reele de senzori
3.5.2. Mecanismul de adaptare parametric a unui model de stare
3.5.3. Integrarea strategiei PSO n cadrul Algoritmului Markov-Kalman-Bucy

4. Un algoritm de predicie cu undine ortogonale (FORWAVER 1)


4.1.
4.2.
4.3.
4.4.
4.5.
4.6.
4.7.

Paradigma deparazitrii semnalelor


Scurt privire asupra undinelor ortogonale i structurii multi-rezoluie
Alegerea pachetelor de undine optimale prin minimizarea entropiei
Modelul de predicie bazat pe undine ortogonale
Selecia unui predictor optimal prin maximizarea calitii prediciei
Algoritmul FORWAVER 1
Detalii privind implementarea Algoritmului FORWAVER 1
4.7.1. Observaii generale
4.7.2. Evaluarea suporturilor corespunztoare coeficienilor undin
4.7.3. Evaluarea valorilor unei undine utiliznd bancul de filtre

5. Despre interfaa grafic a sistemului de monitorizare


5.1. Utilizarea mediului de programare grafic din MATLAB (GUIDE)
5.2. Caracteristicile principale ale interfeei eKo-Forecast
I

3
3
5
7
7
8
11
13
14
14
16
16
20
27
28
31

34
34
35
42
46
58
58
60
67

77
77
82
88
91
92
95
100
100
103
106

109
109
110

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

6. Rezultate de simulare

114

6.1. Simulri cu date multi-dimensionale


6.2. Simulri cu date uni-dimensionale
6.2.1. Predicia seriei de timp a omajului n SUA
6.2.2. Predicia seriei de timp a contiinei colective

115
115
116
117

7. Concluzii i perspective

117

Anexa A. Descrierea iniial a proiectului

129

Anexa B. Lista programelor i rutinelor predictorului PARMA-PSO

137

B.1. Programe principale


B.2. Rutine auxiliare

137
139

Anexa C. Lista programelor i rutinelor predictorului PARMAX-PSO


B.1. Programe principale
B.2. Rutine auxiliare

163
163
165

Anexa D. Lista programelor i rutinelor predictorului KARMA-PSO


B.1. Programe principale
B.2. Rutine auxiliare

175
175
177

Anexa E. Lista programelor i rutinelor predictorului FORWAVER 1


B.1. Programe principale
B.2. Rutine auxiliare

191
191
199

Anexa F. Lista programelor i rutinelor interfeei grafice eKo-Forecast


B.1. Programe principale
B.2. Rutine auxiliare

215
215
217

Anexa G. Publicaii selectate

237

Bibliografie

269

II

RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050.III/DS.JC.CP.AD.AP-09.2009] <15-sep.-09>

Lista figurilor
1.1. Structura minimal a subsistemului fix de calcul, utilizat n laborator.
1.2. Structura minimal a subsistemului mobil de calcul, utilizat n teren.
1.3. Participarea proiectului ECO-TSFS la Salonul inovrii,
Bucureti, 28-29 iulie 2009.
2.1. Structura unui protocol de comunicaie, dup modelul OSI.
2.2. Reea de senzori cu topologie stelat.
2.3. Reea de senzori cu topologie de tip plas (mesh).
2.4. Reea de senzori cu topologie hibrid.
2.5. Imaginea de ansamblu a sistemului Crossbow.
2.6. Puntea de legtur (gateway) a reelei Crossbow.
2.7. Prize de conectare din partea posterioar a punii de legtur.
2.8. Baza radio a reelei Crossbow.
2.9. Notificarea de conectare n reea a unui nou eKo-nod.
2.10. Lista de eKo-noduri care ncearc s extind reeaua.
2.11. Descrierea detaliat, de tip eKo-View,
a eKo-nodurilor conectate n reea.
2.12. Poarta de intrare a interfeei eKo-View.
2.13. Meniurile interfeei eKo-View.
2.14. Vizualizarea unei reele de eKo-senzori n activitate
(configuraie stelat).
2.15. Vizualizarea unei reele de eKo-senzori n activitate
(configuraie de tip plas).
2.16. Vizualizarea graficelor evoluiei datelor msurate.
2.17. Vizualizarea caracteristicilor datelor msurate.
2.18. Facilitatea de configurare a eKo-nodurilor.
2.19. Facilitatea de configurare a plajelor de variaie
pentru mrimile monitorizate.
2.20. Afiarea informaiilor de performan ale reelei.
2.21. Afiarea strii de sntate a reelei.
2.22. Afiarea strii de sntate a unitii centrale din puntea de legtur.
2.23. Afiarea informaiilor despre eKo-senzori i datele achiziionate.
2.24. Afiarea datelor cu ajutorul jojelor.
2.25. Afiarea informaiilor detaliate privind nivelele de alarm.
2.26. Exportul datelor sub forma unui fiier de tip .csv.
2.27. Coninutul unui fiier de date de tip .csv.
2.28. Coninutul unui fiier de date de tip .xls.
2.29. Fereastra de dialog cu utilizatorul a funciei makeDATA.
2.30. Accesul la puntea de legtur prin intermediul interfeei eKo-View.
2.31. Fereastra de informare privind crearea fiierului tampon de date.
2.32. Paii principali n construcia unui fiier tampon de date.
2.33. Conversia bazei de date de tip SQLite
ntr-o baz de date de tip Access.
2.34. Interfaa MATLAB Visual Query Builder
pentru interogarea bazelor de date.
3.1. Evoluia unei populaii ctre punctul de optim
n cadrul Algoritmului PSO.
3.2. Reprezentarea matricial a populaiilor de particule
n cadrul Algoritmului PARMA-PSO.
III

1
2
3
7
9
10
12
15
16
17
17
18
18
20
21
21
21
22
23
23
24
24
25
25
26
26
27
27
28
29
30
30
31
32
32
33
34
36
44

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

3.3. Reprezentarea tridimensional a populaiilor de particule


n cadrul Algoritmului PARMAX-PSO.
3.4. Reprezentarea tridimensional a populaiilor extinse de particule
n cadrul Algoritmului PARMAX-PSO.
3.5. Reprezentarea segregat a populaiilor de particule
n cadrul Algoritmului KARMA-PSO.
4.1.
4.2.
4.3.
4.4.
4.5.
4.6.
4.7.

Principiul deparazitrii semnalelor cu ajutorul proieciilor ortogonale.


Harta Romniei reprezentat la diferite scale i nivele de rezoluie.
Proprietatea de reconstrucie perfect a undinelor ortogonale.
Corespondena timp-frecven n Algoritmul lui Mallat.
Corespondena generalizat timp-frecven.
Strategia de cutare din cadrul procedurii IDA*.
Meta-arborele utilizat pentru optimizarea unui banc QMF
pe ramura de analiz.
4.8. Principiul actualizrii matricii informatice a frunzelor binare.
4.9. Configuraia matricii informatice a coeficienilor undin.
4.10. Utilizarea bancului de filtre pentru calcularea valorilor undinelor.
5.1.
5.2.
5.3.
5.4.
5.5.

53
57
74
79
81
85
86
87
89
90
101
101
107

Lansarea n execuie a mediului de programare GUIDE din MATLAB.


Planeta de lucru a mediului de programare GUIDE.
Fereastra principal a interfeei eKo-Forecast.
Fereastra de mesaje a interfeei eKo-Forecast.
Alegerea blocului de date achiziionate
n cadrul interfeei eKo-Forecast.
5.6. Parametrii de configurare ai predictorului PARMA(-PSO),
propui utilizatorului prin intermediul interfeei eKo-Forecast.
5.7. Fereastra de variaii grafice a interfeei eKo-Forecast.

109
110
111
111

6.1.
6.2.
6.3.
6.4.
6.5.
6.6.
6.7.
6.8.
6.9.

118
118
119
119
120
120
121
121

Seria de timp Y1, mpreun cu tendina i componenta sezonier.


Y1: Vedere global asupra prediciei clasice i a performanei asociate.
Y1: Vedere detaliat asupra orizontului de predicie clasic.
Y1: Undinele tat i mam ale predictorului bazat pe undine.
Y1: Arborele binar optimal asociat Transformatei Undin.
Y1: Scalograma seriei de timp (reprezentare n plan).
Y1: Scalograma seriei de timp (reprezentare n spaiu).
Y1: Suprafaa de calitate a prediciei i punctul de maxim.
Y1: Vedere global asupra prediciei cu undine
i a performanei asociate.
6.10. Y1: Vedere detaliat asupra orizontului de predicie cu undine.
6.11. Seria de timp Y11, mpreun cu tendina i componenta sezonier.
6.12. Y11: Vedere global asupra prediciei clasice
i a performanei asociate.
6.13. Y11: Vedere detaliat asupra orizontului de predicie clasic.
6.14. Y11: Undinele tat i mam ale predictorului bazat pe undine.
6.15. Y11: Arborele binar optimal asociat Transformatei Undin.
6.16. Y11: Scalograma seriei de timp (reprezentare n plan).
6.17. Y11: Scalograma seriei de timp (reprezentare n spaiu).
6.18. Y11: Suprafaa de calitate a prediciei i punctul de maxim.
6.19. Y11: Vedere global asupra prediciei cu undine
i a performanei asociate.
6.20. Y11: Vedere detaliat asupra orizontului de predicie cu undine.
IV

112
112
114

122
122
123
123
124
124
125
125
126
126
127
127

RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050.III/DS.JC.CP.AD.AP-09.2009] <15-sep.-09>

Lista tabelelor
2.1. Codul minimal de culori utilizat de eKo-noduri.
2.2. Codul extins de culori utilizat de eKo-noduri.
2.3. Codul de culori utilizat pentru resetarea unui eKo-nod.

18
19
20

Lista algoritmilor
3.1. PARMA-PSO un algoritm clasic de predicie a proceselor stocastice,
cu ajutorul modelelor ARMA, folosind tehnica PSO.
3.2. Testul de stabilitate Schr-Cohn.
3.3. PARMAX-PSO un algoritm de predicie a proceselor stocastice
distribuite, cu ajutorul modelelor MISO-ARMAX, folosind tehnica PSO.
3.4. KARMA un algoritm de predicie prin filtrare Kalman-Bucy-Markov.
3.5. KARMA-PSO un algoritm de predicie
prin filtrare Kalman-Bucy-Markov, folosind tehnica PSO.
4.1. FORWAVER 1 un algoritm de predicie a seriilor de timp nestaionare,
folosind pachete de undine ortogonale, cu suport compact.
4.2. Algoritmul lui Daubechies de generare a undinelor ortogonale,
cu suport compact.
4.3. Algoritmul Daubechies-deRham de rezolvare a EDL finite,
cu rezoluie controlat.

42
45
54
71
75
95
98
99

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

VI

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

1. Scurt introducere
Precedentele rapoarte de cercetare aferente elaborrii proiectului, [NDS07] i
[SPDC08], au conturat principalele elemente ale sistemului de monitorizare ecologic.
Pentru uurin, relum n Figurile 1.1 i 1.2 structura hardware a acestuia.
Calculator personal
ASUS
1 procesor dual core

Main paralel de calcul


SUPERMICRO Superserver
4 procesoare cvadruple

Figura 1.1. Structura minimal a subsistemului fix de calcul, utilizat n laborator.


Configuraia de laborator ilustrat n Figura 1.1 este alctuit n jurul unei maini
paralele de calcul. Aceasta are rolul principal de a asigura o putere ridicat de calcul n
timpul rulrii algoritmilor de predicie avnd complexitate ridicat. Mini-reeaua alctuit din
cele 4 calculatoare personale constituie de asemenea o structur paralel de calcul, dar
de tip exogen, care poate fi utilizat fie n conjuncie cu maina paralel, fie independent
de aceasta. ntregul ansamblu este orientat ctre calculul distribuit cerut de complexitatea
algoritmilor implemetai.
Figura 1.2 ilustreaz cea de-a doua configuraie, de tip mobil, a sistemului de
monitorizare. Rolul principal al acestuia acela de a permite achiziia de date direct din
sistemul ecologic i predicia preliminar (rapid) a acestora. Exist 3 nivele ierarhice
privind transferul i prelucrarea de date: reeaua de senzori, interfaa VISA i calculatorul
portabil. Fa de etapa precedent, subsistemul de senzori a fost mbogit cu noi achiziii.
Reamintim ca principala caracteristic a senzorilor (care s-a dovedit i un impediment
important n achiziionarea acestora) este capacitatea de a transmite date pe calea
undelor radio. Exist puini productori de senzori cu transmisie radio. Interfaa VISA a fost
de asemenea mbuntit, fr a fi totui schimbate principiile care au stat la proiectarea
ei (descrise n [SPDC08]). (Dealtfel, interfaa este n curs de omologare la OSIM.)
1

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

Calculator portabil
DELL
1 procesor dual core

Interfa de achiziie de date


VISA
Transmisie radio

Valea Alb din Alpii francezi

Nod de comunicaie
eKo-nod
Transmisie radio

Senzor ecologic
eKo-senzor
Transmisie radio

Figura 1.2. Structura minimal a subsistemului mobil de calcul, utilizat n teren.


Subsistemul mobil n funciune a fost prezentat i n cadrul expoziiei de produs
organizate cu ocazia simpozionului Inovarea o ans pentru Romnia, organizat la
Universitatea Politehnica din Bucureti, n zilele de 28 i 29 iulie 2009. Imaginile care
urmeaz ilustreaz standul la care a fost expus sistemul mobil, mpreun cu o parte dintre
membrii echipei de cercetare. Se pot observa: unitatea mobil de calcul mpreun cu
interfaa grafic de predicie, interfaa VISA (conectat i la un osciloscop, pentru testare)
i senzorii amplasai n apropierea unor plante de interior din salonul expoziional.
Fotografiile surprind maniera n care se desfoar monitorizarea multi-canal a doi
parametri corelai din ecosistemul plantelor: temperatura i umiditatea.
Acest raport de cercetare conine trei mari seciuni:
Descrierea manierei n care se desfoar achiziia de date i nmagazinarea
aceastora cu ajutorul reelei de eKo-senzori cu transmisie radio.
Descrierea algoritmilor implementai n cadrul Etapei III: PARMA-PSO, PARMAXPSO, KARMA-PSO i FORWAVER 1.
Rezultate de predicie a datelor achiziionate.
Ultima seciune include cteva articole deja publicate ale echipei de cercetare a
proiectului. n cadrul prezentrii seciunilor, pentru mai mult claritate, au fost reluate o
serie de informaii din precedentele rapoarte de cercetare ([NDS07] i [SPDC08]) De
asemenea, n Anexa A este reluat propunerea iniial de proiect.
2

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

Figura 1.3. Participarea proiectului ECO-TSFS la Salonul inovrii, Bucureti, 28-29 iulie 2009.
3

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

2. Achiziia radio a datelor ecologice i organizarea acestora


2.1. Reele de senzori avnd comunicaie radio (wireless)
2.1.1. Comunicarea prin unde electromagnetice
n ultimii ani, reelele cu comunicaie radio (wireless fr fir) [MuR07], nu neaprat
formate din senzori, au nregistrat o cretere rapid a popularitii, datorit avantajului
principal pe care l ofer acestea: mobilitatea. Tehnologia de la baza acestui tip de
comunicaie se bazeaz pe transmiterea informaiilor cu ajutorul undelor electromagnetice,
folosind un spectru de frecvene larg pornind din zona undelor radio i extinzndu-se la
zona microundelor sau a undelor infraroii. Cu toate acestea, este folosit (printr-un abuz
asumat de limbaj) doar termenul de comunicaii radio. n numeroase publicaii tiprite n
alte limbi dect engleza, este chiar adoptat cuvntul wireless, fr a mai fi tradus. Aceeai
flexibilitate o prezint i limba romn, unde rareori mai sunt tradui termenii tehnici
englezeti din domeniul ingineriei electrice (i nu numai). n acest raport, prin convenie, va
fi utilizat termenul de comunicaie radio (chiar dac el nu concord ntru totul cu termenul
de wireless) sau termenul de comunicaii fr fir (care sun mai puin academic n limba
romn).
Este binecunoscut faptul c evoluia comunicaiilor radio cunoate o istorie ndelungat,
marcat chiar de o stagnare ctre mijlocul secolului XX. Revirimentul acestora s-a
ntregistrat odat cu apariia i extinderea reelelor de comunicaie radio numerice
interconectate, ctre sfritul anilor 80. Conform unei definiii larg acceptate, o reea de tip
WLAN (Wireless Local Area Network) reprezint un sistem flexibil de comunicaii radio,
folosit ca extensie sau alternativ a unei reele de tip LAN (Local Area Network), care
poate funciona numai prin cablu. Apariia reelelor de tip WLAN a constituit o necesitate,
n special n spaiile limitate ca ntindere (cum ar fi: birouri, locuine, hoteluri, etc.), unde
problemele cablare pot fi importante. Folosind undele electromagnetice, dispozitivele de
tip WLAN transmit i primesc date, aproape independent de mediul de propagare (de
exemplu, ziduri, ui, ferestre). Excepie fac unele materiale speciale cu capacitate de
absorbie a acestor unde, rareori folosite ns n construcii. n acest fel, se elimin
necesitatea existenei cablurilor, calitatea transmisiei fiind dependent doar de sfera
maxim de trasmisie optim a emitorilor de unde electomagnetice. Alegerea unei soluii
de comunicaie radio ofer urmtoarele avantaje: instalare foarte rapid, investiie iniial
mic, amortizare rapid a investiiei, costuri de ntreinere reduse, flexibilitate n
administrare, mobilitate i scalabilitate, eliminarea dificultilor care apar atunci cnd se
ncearc utilizarea tehnicilor de cablare n zone greu accesibile. Dezavantajul major l
constituie viteza ceva mai sczut de transmisie, n anumite medii.
Aa cum s-a specificat, comunicaiile fr fir folosesc unde electromagnetice din
domeniul radio i infrarou. Primul tip este i cel mai des utilizat, deoarece undele radio
trec prin perei sau alte obiecte solide, n timp ce radiaia infrarou nu poate strpunge
obiectele opace i are o raz de acoperire mult mai mic. Totui, pentru reele aflate n
interiorul unei camere sau n situaia n care nu exist obstacole ce ar putea bloca undele
din domeniul infrarou, cea de-a doua soluie este frecvent luat n considerare pentru
proiectare i implementare. Undele electromagnetice sunt n esen exploatate pentru
capacitatea lor de a transporta informaie sub form de semnale ctre alte dispozitive.
Primul tip de semnal care poate codifica informaie a fost transmis prin radiotelegrafie la
nceputul secolului XX. Este vorba despre codul Morse (inventat de Samuel F.B. Morse, n
jurul anului 1940). Mai trziu, odat cu apariia tehnicii modulaiei (n frecven sau n
amplitudine), a devenit posibil transmiterea semnalelor numerice pe calea undelor radio.
Ca fiine umane, avem, fr ndoial, capacitatea de a comunica, fie c vorbim sau
scriem, gesticulm sau adoptm o anumit mimic a feei, conform unui set predefinit de
reguli lingvistice sau de gestic. n acest fel, transmitem celorlai informaii. Mijloacele
4

RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>

comunicrii umane odat nvate, devin reflexe. Singura limitare a acestora este
determinat de posibilitatea efectiv a fiecruia dintre noi de a traduce propriile gnduri i
idei n mesaje exprimate verbal sau scris, care s aib coeren.
Atunci cnd discutm despre comunicarea prin mijloace electronice, lucrurile se
schimb, cteva elemente fiind totui asemntoare comunicrii umane. Comunicaia ntre
dispozitivele electronice se poate realiza doar dac acestea respect acelai set de reguli
predeterminate i standardizate. Un prim exemplu n acest sens este modelul OSI (Open
Systems Interconect) [ZiH80] pentru stivele de protocoale din alctuirea sistemelor de
comunicare, acesta constituind de fapt punctul de plecare pentru diferitele standarde de
comunicaie. Acestea trebuie sa acopere toate aspectele procesului de comunicaie, de la
modul de manipulare a datelor (la nivelul superior, 7), pn la modul de utilizare a mediului
fizic (la nivelul inferior, 1).
Comunicarea ncepe cu un prim mesaj (sau o prim informaie), care trebuie trimis()
de la un individ sau un dispozitiv la altul. Pentru a realiza aceast transmisie de informaie
sunt necesare trei elemente:
sursa mesajului emitorul;
destinaia mesajului receptorul;
mediul folosit pentru transmiterea mesajului canalul.
Reelele de comunicaie radio pot fi configurate n 2 moduri:
ad hoc, mod ce permite dispozitivelor fr fir s comunice punct-la-punct;
infrastructur, mod ce permite dispozitivelor fr fir s comunice cu un nod central
avnd capacitatea de a comunica cu noduri cablate din reea.
Ambele moduri de configurare necesit una sau mai multe plci de reea, numite plci
de tip WLAN. (Reelele radio configurate n modul infrastructur pot necesita, n plus, un
dispozitiv central numit punct de acces.)
2.1.2. Reele ad hoc de senzori
O reea ad hoc se formeaz n mod dinamic prin cooperarea unui numr arbitrar de
noduri independente. Fiecare nod ia decizii n funcie de starea reelei la momentul
respectiv, fr existena unei infrastructuri prestabilite. Subsistemul de senzori al unitii
mobile este o astfel de reea, care are capacitatea de a se configura n manier ad hoc.
Din cauza lipsei unei infrastructuri fixe, n reeaua ad hoc, prelucrarea datelor numerice
vehiculate se efectueaz, de regul, de o manier descentralizat. Nodurile reelei au
resurse limitate de energie si memorie. O transmisie realizat de un astfel de dispozitiv
poate fi recepionat de mai multe noduri situate n vecintatea sa, ceea ce provoac
interferene ntre diferite semnale. Att selectarea nodului care va efectua transmisia
mesajului, ct i traseul acestuia sunt decise de fiecare nod, conform cu protocolul prezent
n reeaua respectiv. n cazul de fa, (eKo)nodurile reelei sunt coordonate de un
protocol de tip XMesh, care va fi prezentat ulterior.
Diverse protocoale de direcionare a mesajelor (operaie numit, prin abuz de limbaj,
rutare de la termenul englezesc routing) sunt condiionate de capabilitile reelei. Astfel,
nainte de implementare, trebuie stabilii parametrii de funcionare, performanele dorite de
comunicaie i limitrile reelei.
Problema cea mai important legat de reelele ad hoc o constituie pstrarea evidenei
conexiunilor dintre noduri, care se poate schimba de la un moment la altul. Fr aceast
funcie, reeaua ad hoc nu poate exista.
Spre deosebire de reelele de obinuite de comunicaie, cele formate din senzori au ca
atribuii suplimentare (n afara realizrii comunicrii de date) detecia i estimarea unor
evenimente de interes din reea. O reea ad hoc de senzori const ntr-un numr de
senzori distribuii pe o anumit arie geografic. Fiecare astfel de senzor poate avea un
anumit nivel de inteligen artificial, msurat de complexitatea algoritmilor de prelucrare
primar i transmiterea n reea a datelor achiziionate.
5

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

Iat cteva exemple de reele de senzori cu comunicaie radio:


reele militare, utilizate pentru a furniza ct mai multe informaii despre micrile
inamicului, explozii i alte fenomene de interes;
reele civile pentru detecia i caracterizarea accidentelor (sau chiar a atacurilor) cu
materiale chimice, biologice, radiologice, nucleare i explozive;
reele pentru detecia i monitorizarea schimbrilor de mediu, cum este i reeaua din
acest proiect.
Principalele obiective ale unei reele ad hoc de senzori depind de aplicaie, dar
urmtoarele principii sunt comune [PCS09]:
Determinarea valorii unui parametru ntr-o anumit locaie: ntr-o reea din mediu, se
pot astfel determina simultan: temperatura, presiunea atmosferic, intensitatea solar,
umiditatea relativ, etc., pentru mai multe locaii diferite. La un anumit nod se pot
conecta astfel diferite tipuri de senzori, fiecare avnd o rat diferit de eantionare i
un interval propriu al valorilor admisibile.
Detectarea momentelor n care au loc evenimentele de interes i estimarea
parametrilor evenimentelor detectate.
Clasificarea unui obiect detectat. De exemplu, n reeaua senzorilor din traficul urban,
se pot determina tipul autovehiculului (autoturism, camion, autobuz, etc.), numrul de
nmatriculare, culoarea, etc.
Urmrirea unui obiect. De exemplu, urmrirea deplasrii unei specii oarecare ce i
are habitatul n aria geografic acoperit de reea.
Printre cerinele reelelor ad hoc se numr urmtoarele:
Necesitatea existenei unui numr considerabil de senzori staionari, pentru a asigura
o bun comunicare cu senzorii mobili, dac acetia exist. Cele mai multe noduri
dintr-o reea de senzori ar trebui s fie staionare. Totui, numrul prea mare de
senzori ridic o alt problem: cea a scalabilitii.
Consumul sczut de energie. Deoarece, n multe aplicaii, senzorii sunt amplasai n
zone izolate, ntreinerea unui nod este deseori dificil. n acest caz, durata de via a
unui nod poate fi determinat de durata de via a sursei de alimentare (baterie), deci
este necesar minimizarea consumului de energie. Majoritatea senzorilor cu
comunicaie radio sunt de aceea dotai cu celule solare i acumulatori rencrcabili.
Capacitatea de auto-organizarea. Avnd n vedere numrul mare de noduri i
amplasarea acestora n locaii greu accesibile, este esenial ca reeaua s fie capabil
de auto-organizare; configurarea manual este adesea imposibil. Nodurile pot eua
(fie din lipsa de energiei, fie din motive de degradare fizic) sau se pot aduga reelei.
Prin urmare, reeaua trebuie s fie capabil s se reconfigureze periodic pentru a
putea continua s funcioneze. Nodurile individuale se pot deconecta de restul reelei,
dar trebuie meninut un grad mare de conectivitate.
Prelucrarea colaborativ a semnalelor. O carcteristic distinctiv a reelelor de senzori
este aceea c ele nu trebuie s asigure doar comunicarea, ci i detecia sau
identificarea/estimarea unor evenimente de interes din mediul monitorizat. Pentru a
mbunti performana de detecie/estimare, este util ca datele de la mai muli
senzori s poat fi agregate, dei au naturi diferite (date utile sau mesaje de control).
De regul, aceast agregare conduce la diminuarea performaelor reelei, ns
contribuie la creterea securitii transmisiei.
Abilitatea de rspuns la interogare. Un utilizator poate dori interogarea unui nod
individual sau a unui grup de noduri pentru studiul informaiilor culese din regiunea
respectiv. n funcie de maniera de agregare a datelor, este posibil ca aceast
operaie s fie restrictiv. De aceea, exist posibilitatea implementrii unui protocol
prin care mai multe noduri locale de colectare vor aduna datele dintr-o anumit arie i
vor crea mesaje de sumar. O interogare poate fi trimis nodului de colectare care este
cel mai aproape de locaia dorit.
6

RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>

2.2. Organizarea nivelului OSI superior al reelei de eKo-senzori


2.2.1. Despre modelele OSI
Potrivit publicaiilor din domeniul protocoalelor de comunicaie ntre calculatoare, dintre
care [ZiH80] este, probabil, cea mai important pe aceast tem, un model OSI (Open
System Interconnection) este o descriere abstract a structurii stratificate caracteristice
unui astfel de protocol, ca n Figura 2.1. Se remarc, astfel, existena a 7 nivele (straturi)
de comunicare (de unde i numele alternativ de model cu 7 straturi).

Figura 2.1. Structura unui protocol de comunicaie, dup modelul OSI.


Un strat este de fapt o colecie de funcii similare care ofer servicii stratului imediat
superior i solicit servicii de la stratul imediat inferior. De exemplu, ntr-un strat n care se
desfoar o comunicaie total protejat mpotriva erorilor, sunt furnizate stratului urmtor
locaiile n care se regsesc codurile de protecie mpotriva erorilor i se solicit de la
nivelul inferior chiar aceste coduri. Diferitele funcii ale unui strat pot comunica ntre ele
printr-un protocol local, pe orizontal.
Nivelul de tip aplicaie (7) este situat cel mai aproape de utlizator. El ofer servicii de
reea aplicaiilor utilizator. Difer de celelalte niveluri OSI prin faptul c nu ofer servicii nici
unui alt nivel, ci numai unor aplicaii ce sunt situate n afara modelului OSI. La acest nivel,
se stabilete disponibilitatea unui calculator de a iniia conexiuni, procedurile ce vor fi
urmate n cazul unor erori i se verific integritatea datelor. Aplicaiile care sunt folosite la
acest nivel sunt de tip HTTP, DNS etc.
La nivelul de tip prezentare (6) trebuie s se asigure c informaia transmis de nivelul
de tip aplicaie al unui protocol poate fi citit i interpretat de ctre nivelul de tip aplicaie
al protocolului cu care acesta comunic. Dac este necesar, nivelul de tip prezentare
realizeaz traducerea ntre diverse formate de reprezentare, prin intermediul unui format
comun. Acest nivel are urmtoarele funcii principale: compresia sau decompresia datelor
care vin de la nivelul de tip aplicaie, criptarea sau decriptarea datelor, ncapsularea
datelor care sunt transmise nivelului urmtor .
7

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

Nivelul de tip sesiune (5) exist funcii nsrcinate cu stabilirea, meninerea, gestionarea
i terminarea sesiunilor de comunicare dintre emitor i receptor. Aici, sunt oferite servicii
nivelului de tip prezentare. De asemenea, la acest nivel se realizeaz sincronizarea ntre
nivelurile de tip prezentare i gestionarea schimbului de date ntre acestea. n plus, la
nivelul de tip sesiune sunt oferite bazele pentru transferul eficient de date, pentru clase de
servicii i pentru raportarea excepiilor nivelurilor de tip sesiune, prezentare i aplicaie.
Multe aplicaii, cum ar fi i motoarele de cutare pe internet, ncorporeaz funciile celor
trei nivele superioare (7, 6 i 5) ntr-un singur nivel, considerat de tip aplicaie.
Nivelul de tip transport (4) are ca rol segmentarea datelor la emitor i reasamblarea
lor la receptor. Limita dintre nivelul de tip transport i cel de tip sesiune constituie de fapt
grania ntre protocoale de orientate ctre aplicaii i protocoale de transfer de date. n timp
ce nivelurile de tip aplicaie, prezentare i sesiune rezolv probleme legate de aplicaii, n
cele patru niveluri inferioare sunt tratate problemele legate de transportul datelor.
Nivelul de tip transport ncearc s ofere un serviciu care s izoleze nivelurile
superioare de orice specificiti legate de modul cum este executat transportul datelor.
Pentru a fi oferit o comunicare sigur a datelor, la acest nivel exist i servicii de
detectare a erorilor i recuperare a datelor care au fost deteriorate n timpul transmisiei.
Tot aici este realizat, n plus, controlul fluxului de informaii.
Nivelul de tip reea (3) trebuie s asigure un mecanism de adresare a dispozitivelor
finale: calculatoare i periferice. La acest nivel, se realizeaz adresarea logic a tuturor
nodurilor din reea. Pentru ca informaiile individuale s fie direcionate ctre un anumit
dispozitiv final, acesta trebuie s aib o adres unic. Nivelul de tip reea trebuie de
asemenea s furnizeze servicii pentru direcionarea pachetelor de comunicaie de la surs
ctre destinaie. Cele mai importante funcii ale acestui nivel sunt aadar: adresarea,
direcionarea, ncapsularea, decapsularea. Protocolul cel mai des utilizat la acest nivel,
implementat i n cadrul reelei de eKo-noduri este Internet Protocol version 4 (IPv4).
Nivelul de tip date (2) ofer transportul sigur al informaiei printr-o legatur fizic direct.
Pentru a realiza acest lucru, funciile de la acest nivel sunt proiectate pentru adresarea
fizic, stabilirea topologiei reelei, dobndirea accesului la reea, detecia i anunarea
erorilor i controlul fluxului fizic. Acest nivel are rolul de a permite celorlalte nivele s
acceseze reeaua (mediul) i de a controla modul cum informaia este transmis prin
diferite medii (cablu electric, fibr optic, unde radio). Pentru o separare convenabil
sarcinilor, funciile nivelului 2 sunt grupate n dou categorii:
Controlul legturilor logice (Logical Link Control), unde sunt ncapsulate datele n
cadre care conin informaii despre protocoalele utilizate. Aceste informaii permit ca,
n aceeai reea, s se poat folosi mai multe tipuri de protocoale de nivel 3.
Controlul accesului media (Media Access Control), care furnizeaz modul de adresare
a datelor i delimiteaz informaia n funcie de necesitile nivelului fizic i de
protocolul utilizat. Aici se realizeaz transformarea informaiilor primite de la nivelele
precedente n cod binar.
n fine, la nivelul fizic (1) sunt definite specificaii electrice, mecanice, procedurale i
funcionale pentru activarea, meninerea i dezactivarea legturilor fizice ntre sisteme. n
aceast categorie de caracteristici se ncadreaz niveluri de tensiune, sincronizare, rate
de transfer fizic, distane maxime la care se poate transmite i alte atribute similare care
sunt definite de specificaiile fizice. Rolul acestui nivel este s codifice informaia binar
primit de la nivelul de tip date n semnale care s fie transmise prin mediul fizic.
2.2.2. Topologii cu reele de senzori
Exist mai multe arhitecturi care pot fi utilizate pentru implementarea reelelor de
senzori cu comunicaie radio. Cele mai populare sunt: de tip stea, de tip plas i hibride
stea-plas. Fiecare topologie prezint propriile sale provocri, avantaje i dezavantaje.
8

RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>

Pentru mai mult claritate n explicaia care urmeaz, iat civa termeni de specialitate
dedicai:
Puncte terminale (endpoints). Acestea sunt module care conin senzori i dispozitive
de nregistrare a datelor. n anumite reelele, acestea mai sunt numite i dispozitive
funcionale reduse (Reduced Functional Devices). Ele pot transmite mesaje att ctre
partea superioar a reelei ct i ctre parta inferioar.
Trasator de rute (router). Este un dispozitiv care are ca rol extinderea zonei de
acoperire a reelei i asigurarea de rute alternative, n cazul n care reeaua este
blocat sau anumite legturi sunt ntrerupte. n unele cazuri, trasatoarele de rute pot
funciona ca puncte terminale. n anumite reele, ele se mai numesc i dispozitive cu
funcii complete (full-function devices).
Punte de legtur (gateway). Acest dispozitiv recepioneaz datele de la reea i le
ofer utilizatorului prin intermediul unei reele de tip LAN sau a Internetului.
Utilizatorul poate accesa datele folosind o interfa grafic. Aceasta i permite s
monitorizeze i s configureze parametrii reelei.
Protocol de reea. Colecie de programe software care capacitatea de autoconfigurare, diagnoz i revitalizare a reelei.
Topologie. Acest termen se refer att la configuraia componentelor hardware, ct i
la modul de transmitere a datelor n reea.
A. Topologia stelat
O topologie de tip stea este o configuraie n care toate nodurile gzduiesc senzori aflai
n raza direct de comunicare (de obicei ntre 30 i 100 de metri) a punii de legtur, ca n
Figura 2.2.

Figura 2.2. Reea de senzori cu topologie stelat.


Toi senzorii sunt identici i joac rol de puncte terminale. Puntea de legtur are rolul
de a primi date de la senzori i de a le comunica unui nivel superior de control. Punctele
terminale nu transmit date sau comenzi de la unul la cellalt; ele folosesc puntea ca un
punct comun de coordonare i control.
9

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

Topologia stelat ofer cel mai mic consum de energie, dar este limitat de distana pe
care o poate parcurge un semnal de la un punct terminal la puntea de legtur. De
asemenea, nu exit ci de comunicare alternative cu punctele finale. n cazul n care
conexiunea dintre punctul terminal i punte este pierdut, datele nu vor mai fi accesibile.
B. Topologia de tip plas (mesh)
n cadrul topologiei de tip plas, toate nodurile (care gzduiesc senzori) sunt de tip
trasator de rute, ca n Figura 2.3. Nodurile sunt capabile s comunice att ntre ele, ct i cu
puntea de legtur.

Figura 2.3. Reea de senzori cu topologie de tip plas (mesh).


Datele pot ajunge la punte fie direct de la nodul furnizor, fie dup ce au tranzitat mai
multe noduri conectate cu nodul furnizor. Aceast modalitate de propagare a datelor
permite extinderea reelei pe o raz nelimitat. Reeaua de tip mesh este de asemenea
foarte tolerant la eventuale defeciuni ale conexiunilor, pentru fiecare nod existnd mai
multe ci de comunicare a datelor la ctre puntea de legtur. Dac un nod este afectat i
nu mai poate funciona ca receptor sau transmitor de date, reeau se auto-configureaz
i gsete o cale alternativ ocolind blocajul.
Dezavantajul acestui tip de topologie const n ntrzierile care pot aparea cnd reeaua
s-a extins prea mult.
Reelele cu raz scurt de aciune, bazate pe arhitecturile de tip plas au evoluat mult
n zilele noastre, permind managementul eficient al diverselor dispozitive radio.
Capacitatea de auto-organizare a acestor reele a contribuit la dezvoltarea de noi aplicaii,
inclusiv cea abordat n cadrul proiectului de fa. De altfel, tocmai aceast proprietate a
condus la adoptarea lor n multe aplicaii recente.
Reelele de tip plas pot fi proiectate n diferite moduri, pentru a face fa diferitelor
cerine. Exist ns un set de cerine comune. Acestea includ:
Consumul redus. Pentru a face fa unei exploatri pe termen lung, consumul de
energie de la legtura radio trebuie s fie minimizat. n acest scop, dispozitivul de
alimentare trebuie s fie ct mai compact, cu baterii uoare, rencrcabile, eventual
dotate cu celule solare.
Utilizarea simpl i direct.
10

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

Auto-iniializarea. Protocolul de reea trebuie s permit nodurilor s se iniializeze


singure ntr-o manier organizat.
Scalabilitatea. Reeaua trebuie s suporte numrul de noduri necesare n momentul
iniializrii acesteia i, n acelai timp, s poat susine creterea acestuia, fr a
afecta eficiena de transmisie sau capacitatea de stocare a datelor.
Receptivitatea. Tehnologia trebuie s permit recepia datelor n condiii de mediu
dintre cele mai diverse.
Aria de acoperire (distana). Este mai eficient din punct de vedere al consumului de
energie s fie emis un semnal radio de mic putere, la distane mici dect s fie
transmis un semnal puternic, pe o distan mare. Dispozitivele de repetare dintr-o
reea folosesc un protocol care suport redirecionare n trepte (de tip multi-hop),
astfel nct pachetele de date s fie transmise de la un nod la altul, atunci cnd
distana dintre sursa i destinaie este prea mare.
Comunicarea bi-direcional. Comunicarea dintre senzor i unitatea central trebuie
s fie bi-direcional. Pe de o parte aceasta va permite staiei de baz s transmit
anumite semnale de ajustare a parametrilor de funcionare a senzorilor. Pe de alt
parte, senzorii vor putea astfel funciona i ca repetori sau elemente de confirmare.
Sigurana datelor. Integritatea datelor este ntotdeauna o cerin critic pentru multe
aplicaii.
Factorul dimensionrii modulului. Dimensionarea modulului trebuie s fie ct mai
compact, astfel nct punctele finale (endpoints) s ncap n interior i s permit
ataarea cu uurin la dispozitivele existente.
Este necesar un protocol robust pentru a face fa att cerinelor anterioare, ct i
cerinelor particulare ce pot aprea pentru topologiile de tip plas. Protocolul de
direcionare ofer suport pentru topologia reelei i gestioneaz vehicularea datelor n
reea. Pentru ca reeaua s se ridice la standardele unei reele de senzori avnd
comunicaie radio, protocolul trebuie s suporte toate cerinele de baz.
A. Topologia hibrid
O astfel de topologie ncearc s combine avantajele celor dou configuraii de mai sus:
simplitatea plus consumul redus de energie a topologiei stelate i redundana plus
capacitatea de extindere a topologiei de tip plas.
Astfel, nodurile (gazdele senzorilor) sunt grupate n dou clase: terminale i
intermediare, ca n Figura 2.4.
Nodurile terminale funcioneaz ca n cazul topologiei stelate, numai c ele comunic
doar cu noduri intermediare, nu cu puntea de legtur. La rndul lor, nodurile intermediare
pot furniza date sau juca rol de trasatoare de rute, ca n cazul topologiei de tip plas.
Capacitatea de auto-configurare a reelei este astfel crescut.
2.2.3. Reeaua Crossbow i protocolul XMesh
Eco-senzorii de tip Crossbow (achiziionai n cadrul proiectului) sunt organizai ntr-o
reea ad hoc de tip plas. Protocolul aferent acesteia este numit Xmesh. Nodurile reelei
(numite i Motes sau eKo-noduri) comunic aadar ntre ele, fiind capabile s trimit date
pe diferite ci, cu scopul de a ajunge la baza radio, de unde sunt transmise unui nivel
superior.
Transmiterea datelor din nod n nod extinde raza reelei i, n acelai timp, reduce
consumul de energie. Transmind datele n aceast manier, protocolul XMesh produce
dou beneficii importante: mbuntirea convergenei radio i o calitate ridicat a
corectitudinii datelor transmise. Dou noduri nu trebuie obligatoriu sa aib razele de
acoperire intersectate pentru a putea comunica. Un mesaj poate fi transmis unui nod sau
mai multor noduri intermediare, care vor direciona mesajul ctre destinaie.
11

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

Figura 2.4. Reea de senzori cu topologie hibrid.


De asemenea, dac exist o legtur slab ntre dou noduri, aceast problem poate
fi depit prin folosirea unei rute alternative care va ocoli zona afectat.
De obicei, nodurile funcioneaz folosind o strategie de consum redus de energie,
petrecnd majoritatea timpului ntr-o stare de veghe sau adormire uoar (light sleep),
pentru a prelungi durata de via a bateriei pn la perioade de ordinul anilor.
Protocolul XMesh este de fapt o bibliotec software care utilizeaz sistemul de operare
TinyOS. Acesta gestioneaz funcionarea mai multor dispozitive ncapsulate.
EKo-nodurile sunt alctuite din urmtoarele componente:
Microprocesor Atmel ATmega128 capabil s comunice cu sistemele de radioemisie
de tip MICA2, MICA2DOT i MICAz. Acesta este dotat cu 128 KB memorie rapid
(de tip flash), 4 sau 8 K memorie RAM i 4 K memorie EEPROM.
Staie de emisie, care include un radio de tip MICA2 de frecvene 916/433 MHz i un
radio de tip MICAz/IRIS de frecven nalt, 2.4 GHz.
Memorie rapid (flash) extern de stocare a datelor, ce suport maniera de
programare OTAP (over-the-air programmig).
UID un circuit integrat care este programat cu un identificator unic de 64 bii
(pentru sistemele MICA2 i MICA2DOT).
ntreaga reea Crossbow este compus din :
Unul sau mai multe noduri care particip la reea.
O baz radio (adic punte de legtur, gateway). Aceasta este un radioemitor
MICA2 sau MICAz ataat de o interfa Crossbow MIB510/520/600 i programat cu
Aplicaia XMeshBase. Acesta coordoneaz reeaua i transmite datele la destinaia
corespunztoare (noduri sau PC, utilizator).
Un calculator sau un client care recepioneaz datele i trimite comenzi n reea.
Protocolul Xmesh ofer un serviciu de reea numit TrueMesh, care se poate autoorganiza i auto-diagnostica. Astfel, datele se pot direciona att de la noduri la staia radio
(n amonte) ct i de la staia radio la noduri (n aval). De asemenea, se poate transmite
un mesaj special de verificare (numit broadcast) n cadrul unei zone de convergen sau
ntre dou noduri arbitrare.
12

RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>

Calitatea transmisiei i serviciului de reea este controlat prin funciile de protocol


urmtoare:
Factorul dimensionrii modulului. Dimensionarea modulului trebuie s fie ct mai
compact, astfel nct punctele terminale s ncap n interior i s permit ataarea
cu uurin la dispozitivele existente.
Cel mai bun efort (best effort). Aceast funcie se ocup de confirmrile la nivel de
legtur.
Livrare garantat. Funcie care nu permite pierderea pachetelor de date pe traseu.
De asemenea, protocolul XMesh poate fi configurat n diferite moduri de consum de
putere: HP (de mare putere), LP (de mic putere), ELP (de putere mic extins).
O alt facilitate a protocolul o constituie faptul c posed diferite moduri de realizare a
comunicrii: ascultare la putere redus (low-power listening), timpi de sincronizare, veghe
sau somn uor (light sleep).
Toi senzorii Crossbow i toate plcile de achiziie de date Crossbow care alctuiesc o
reea de senzori wireless suport aplicaii XMesh.
Reeaua Crossbow are urmtoarele caracteristici:
suport MICA2, MICA2DOT i MICAz;
putere mic, de obicei, la un curent mai mic de 220 A n medie (fr placa
senzorului);
sincronizarea reelei la 1 ms.
Reeaua de a fost testat att n mediu nchis, ct i n aer liber. n mediu nchis (ser de
plante), nodurile sunt amplasate la o distan maxim de 90 m, pentru a acoperi o arie
efectiv de 312 m [DSD09]. Pentru a testa o distan mai mare ntre noduri, puterea de
transmisie a fost redus pn la 6 dBm. Analize statistice incluznd diferite configuraii ale
reelei au demonstrat c peste 90% din tot traficul generat de la orice nod a fost colectat
de staia de baz fr s fie folosit funcia de livrare garantat.
2.2.4. Sistemul software al reelei Crossbow
O reea care folosete protocolul XMesh se bazeaz pe trei straturi software de baz:
Stratul nodurilor senzoriale, unde este implementat protocolul Xmesh. Acesta
reprezint punctul unde se formeaz legtura dintre noduri i este alctuit reeaua
de tip plas. Software-ul aferent include algoritmii necesari pentru realizarea unei
legturi sigure, ce conecteaz toate nodurile din reea cu unitatea central de pe
stratul urmtor (de tip server).
Stratul de tip server este ntotdeauna pornit i se ocup cu colectarea i
transmiterea de date de la reeaua de senzori, cu scopul de a le furniza clientului.
Aplicaia caracteristic se numete XServer i poate rula pe un PC.
Stratul de tip client furnizeaz software-ul de vizualizare a datelor i interfaa grafic
pentru managementul reelei.
Pachetul software asigur:
servicii multiple de transfer de date;
funcii pentru controlul calitaii serviciilor de comunicare i transfer de date (Quality of
Service QoS)
moduri de operare cu diferite tipuri de consum de energie;
diagnosticarea problemelor aprute;
sincronizarea datelor i mesajelor;
OTAP (Over-the-Air-Programming).
Legat de consumul energetic, diferitele strategii permise rspund unei game variate de
cerine i se adapteaz la caracteristicile specifice ale configuraiei curente a reelei de
senzori.
13

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

Pentru configuraiile care au o surs de curent continu, cea mai indicat strategie este
XMesh-HP. Aceast strategie ofer cea mai mare freceven de transmitere a mesajelor.
Nodurile consum ntre 15 i 30 mA, acest lucru depinznd de tipul nodului. Nodurile pot
primi i transmite mesaje la orice moment din timp. Mesajele sunt transmise cu o vitez
mai mare, scznd timpul necesar formrii reelei sau adugrii unui nou nod.
Pentru sisteme care se bazeaz pe baterii ca surs de energie, iar durata lor de via
trebuie s ating luni sau chiar ani, cele mai folosite strategii sunt XMesh-LP i
Xmesh-ELP. n cazul strategiei XMesh-LP, reeaua cu consum redus de putere poate s
funcioneze sincron sau asincron. Folosind sincronizarea, nodurile sunt sincronizate cu o
toleran de 1 ms, ceea ce ofer o eficien ridicat. n acest mod, nodurile au dou stri:
de veghe (adormire uoar light sleep) i de trezire (wake-up). La fiecare 8 s se trece din
starea de veghe n starea de trezire, pentru un interval scurt de timp n vederea deteciei
semnalelor radio transmise. Dac se detecteaz un astfel de semnal, nodul va rmne n
starea de trezire, pentru a-l recepiona. Aceast operaie consum n medie 80A. Cnd
datele sunt transmise la un interval de 3 minute, consumul de energie pentru o reea de 50
de noduri este de circa 220 A. Dac se dorete un consum i mai mic de energie, acest
obiectiv se poate atinge crescnd intervalul de trazire. Strategia Xmesh-ELP este folosit
doar pentru noduri terminale care nu particip n procesul de direcionare a mesajelor (ca
n cazul topologiei stelate sau hibride). Aceste noduri doar comunic cu puntea de
legtur sau cu alte noduri intermediare, care pot direciona mesajele i datele pe diferite
rute. Din acest motiv, nodurile terminale fr capacitate de direcionare nu au nevoie de
sincronizare pentru a trece n starea de trezire. Ele pot sta n starea de adormire uoar
pe durate foarte lungi de timp. Dac atunci cnd transmite un mesaj ctre un nod
destinaie, un astfel de nod nu primete confirmare, el va nmagazina informaia pn la
deblocarea conexiunii sale (n limita memoriei disponibile).
2.3. Echipamentele i interfaa reelei de eKo-senzori
2.3.1. Descriere general
Seria de senzori eKo Pro Series de la Crossbow (din acest motiv, denumii de noi
eKo-senzori), descris parial i n raportul de cercetare precedent [SPDC08], este un
sistem cu comunicaie radio pentru monitorizarea mediului, a microclimatelor formate n
sere sau n spaii deschise i pentru studii de cercetare n acest domeniu. Sistemul eKosenzorial introduce o nou generaie de senzori, caracterizai (aa cum s-a amintit) prin
transmisie radio a datelor. Crossbow a ncercat de fapt o revoluionare n domeniul agricol
din punctul de vedere al preciziei cu care sunt monitorizate sistemele aferente i, probabil,
a reuit n mare parte, deoarece eKo-senzorii pot fi utilizai i n medii ecologice neagricole (cum ar fi serele, pdurile, etc.).
Acest sistem de monitorizare nu trebuie privit ca o staie meteo, sau ca un simplu
dispozitiv de control al irigaiei, aa cum se nelege adesea prin sintagma monitorizare de
ecosistem. Complexitatea sa este mai ridicat, prin faptul c eKo-senzorii nglobeaz o
anumit cantitate de inteligen (artificial). El este ideal pentru a rspunde nevoilor de
monitorizare, sigurana preciziei datelor furnizate, managementul irigaiilor, analiza calitii
apei, contaminarea solului, nivelul de radiaii solare, cantitatea de precipitaii, direcia i
intensitatea vntului, etc. Utiliznd acest sistem, mpreun cu algoritmii de prediie de la
nivelul superior, se asigur o dezvoltare durabil i sigur a mediilor ecologice.
De asemenea, seria de eKo-senzori este uor de utilizat, fr a fi necesar o experien
n domeniu. Configurarea reelei este la ndemna oricrui utilizator, aceasta fiind intuitiv
i avnd un suport tehnic consistent, care s poat rspunde la aproximativ orice ntrebare.
Principalele componente ale sistemului sunt: nodurile, baza radio i puntea de legtur.
Sistemului i se adaug ulterior senzori care monitorizeaza diferite mrimi: temperatura
ambiant, umiditatea aerului, temperatura solului, umiditatea solului, componentele apei
din sol, radiaia solar, viteza i direcia vntului, etc.
14

RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>

Principalele caracteristici ale sistemului Crossbow de eKo-senzori sunt urmtoarele (cu


referire la imaginea de ansamblu din Figura 2.5):

Figura 2.5. Imaginea de ansamblu a sistemului Crossbow.


Monitorizarea i nregistrarea tuturor msurtorilor realizate de ctre diferite tipuri de
eKo-senzori, stocarea acestor date realizndu-se la nivelul bazei de date a punii de
legtur. Aici se poate gsi o istorie complet a datelor din diferite microclimate i
topologii. Puntea ofer acces n orice moment la datele care sunt preluate de la eKosenzori prin intermediul unei pagini web (numit eKo-View), care poate fi accesat
prin intermediul internetului. Utilizatorul are astfel posibilitatea s urmreasc starea
sistemului ecologic monitorizat, utiliznd reprezentri grafice i diagrame.
Alarme i notificri imediate. Dac se cunoate c o anumit mrime msurat de
unul sau mai muli senzori trebuie s se ncadreze ntr-un anumit interval de valori,
atunci se poate configura o alarm care s se declaneze n momentul cnd se
nregistreaz o abatere de la aceast gam de variaie. Urmtoarea etap dup
declanarea alarmei este aceea de a anuna utilizatorul. Acesta poate configura
sistemul astfel nct, n momentul declanrii unei alarme, s fie anunat via E- mail
sau print-un mesaj scris pe telefonul mobil.
Fiecare eKo-nod comunic radio cu pn la patru eKo-senzori de proximitate. EKosenzorii sunt pur i simplu conectai la un eKo-nod. Nu este necesar o alt activitate
suplimentar, cum ar fi conectarea unor fire la terminal sau schimbarea
configuraiilor de baz. Aceast operaiune se poate efectua n cteva secunde.
Odat ce un eKo-nod este resetat, el scaneaz toate cele patru porturi, pentru a
identifica posibili senzori. De fiecare dat cnd nodul este resetat, el va interoga
imediat echipamentele vecine, pentru a localiza cele mai bune conexiuni. Dup un
minut, utilizatorul este ntiinat dac amplasarea eKo-nodului este corect.
Scalabilitatea reelei. Extinderea reelei este la fel de simpl ca activarea unui nou
eKo-nod, deoarece fiecare astfel de eKo-nod avre capacitatea de a transmite mesaje
de la alte echipamente vecine, care se afl n aria de comunicare. Distana la care
un eKo-nod poate s comunice cu un alt eKo-nod variaz de la 180 m pn la
450 m, n funcie de poziie, obstacole i de interferenele radio existente n zon. Un
singur sistem Crossbow poate s susin pn la 35 de eKo-noduri i 140 de eKosenzori.
15

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

Energie suplimentar provenit din energia solar. Fiecare eKo-nod are baterii
solare rencrcabile, pentru a asigura o funcionare ct mai ndelungat a eKosenzorilor, ajungndu-se la timpi de via de ordinul anilor. EKo-nodurile pot
funciona fr energie solar pn la trei luni.
2.3.2. Echipamentele de baz
n cadrul raportului de cercetare [SPDC08] a fost realizat o descriere destul de
detaliat a echipamentelor care constituie sistemul Crossbow. De altfel, ele sunt ilustrate
i n Figura 2.5. Din acest motiv, subiectul nu va fi reluat n cadrul acestui raport de
cercetare.
2.3.3. Punerea n funciune a reelei Crossbow
Pentru a pune n funciune reeaua de eKo-senzori, trebuie parcuri 4 pai importani:
1. Conectarea punii de legtur.
2. Conectarea bazei radio i pornirea ansamblului baz-punte.
3. Amplasarea i pornirea eKo-nodurilor.
4. Lansarea n execuie a interfeei eKo-View.
Ne vom referi la fiecare, pe rnd, n continuare.
Pasul 1. Conectarea punii de legtur (gateway)
n Figura 2.6 este ilustrat puntea de legtur, mpreun cu setul de componente
auxiliare aferent.

Figura 2.6. Puntea de legtur (gateway) a reelei Crossbow.


Acesta include:
a. Un modul de memorie rapid (flash stick) cu conectare de tip USB. Acesta este
folosit pentru memorarea datelor trimise de la senzorii conectai la punte. El trebuie
introdus n portul inferior al punii, numit Disk 1 n Figura 2.7, care urmeaz.
Conexiunea trebuie realizat astfel nct contactele electrice ale prizei USB s se
suprapun cu contactele electrice ale conectorului de pe punte.
b. Un cablu de tip CAT5 Ethernet cu mufe la ambele capete. Un capt al acestui cablu
trebuie conectat la portul Ethernet al punii, iar cellalt la un trasator de rute (router)
sau un comutator (hub/swich) Ethernet. Dac se dorete conectarea direct a punii
cu un PC este necesar un cablu ncruciat (de tip cross-over).
16

RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>

Figura 2.7. Prize de conectare din partea posterioar a punii de legtur.


c. Un adaptor pentru sursa de alimentare.
d. Un suport pentru amplasarea n poziie vertical a punii (ca n Figura 2.6).
Dup realizarea acestor conexiuni, fr alimentarea punii, se trece la pasul urmtor.
Alimentarea va fi realizat dup acest pas. Se observ ca numai priza de tip USB numit
Disk 2 nu a fost nc utilizat.
Pasul 2. Conectarea bazei radio i pornirea ansamblului baz-punte
Pentru a conecta baza radio din Figura 2.8 cu puntea de legtur, se utilizeaz un cablu
de tip USB cu mufe identice la ambele capete. Un capt a cablului este introdus n priza
USB a bazei radio i cellalt n priza Disk 2 (Figura 2.7).

Figura 2.8. Baza radio a reelei Crossbow.


Dup ce se conecteaz baza radio i puntea de legtur la sursa de curent, ansamblul
baz-punte intr automat n funciune. Puntea posed totui un buton pornit/oprit, care
trebuie apsat n poziia pornit.
Pasul 3. Amplasarea i pornirea eKo-nodurilor
nainte de a porni un eKo-nod, utilizatorul trebuie s verifice dac puntea de legtur
este funcional. Aceasta se realizeaz nu doar prin conectarea la sursa electric, ci i
prin prin accesarea interfeei eKo-View (care va fi descris la pasul urmtor).
17

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

n momentul pornirii, eKo-nodul trebuie s se afle la o distan de maxim 6.25 m fa de


baza radio. Dup stabilirea conexiunii, distana poate crete. Pornirea se realizeaz prin
apsarea butonului de alimentare. EKo-nodul va scana cele patru porturi disponibile,
pentru a detecta senzorii cuplai. Pentru fiecare port liber va emite un semnal luminos
rou, spre deosebire de porturile ocupate pentru care va emite un semnal luminos verde.
Dup finalizarea etapei de scanare a porturilor, eKo-nodul va emite semnale luminoase
albe care indic ncercarea de a comunica cu baza radio. Tabelul 2.1 sumarizeaz
mesajele n culori pe care le poate emite un eKo-nod.
Tabelul 2.1. Codul minimal de culori utilizat de eKo-noduri.
Secvene
luminoase
Durat
Culoare
Activitate

Semnal 1

Semnal 2

Semnal 3

Semnal 3

2s
Rou/Verde
Scanare
Port 1

2s
Rou/Verde
Scanare
Port 2

2s
Rou/Verde
Scanare
Port 3

2s
Rou/Verde
Scanare
Port 4

Semnal
intermitent
1s
Alb
ncercare de
comunicare

Cnd un nou nod ncearc s se alture reelei, n interfaa eKo-View va aprea o


notificare n partea din dreapta-jos, ca n Figura 2.9.

Figura 2.9. Notificarea de conectare n reea a unui nou eKo-nod.


Pentru a accepta un eKo-nod n reea, este aadar necesar s se navigheze ctre
meniul numit Configure Nodes (configurare de noduri). EKo-nodurile care ncerc s se
conecteze vor aprea sub forma unei liste, n care apar seriile numerice ale acestora i
tipurile de eKo-senzori pe care le gestioneaz, ca n Figura 2.10.

Figura 2.10. Lista de eKo-noduri care ncearc s extind reeaua.


18

RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>

Selectnd seria corespunztoare eKo-nodului cruia i se permite s se alture reelei i


confirmnd selecia cu ajutorul butonului Accept, se realizeaz conectarea acestuia. EKonodul dispare din lista precedent i se adaug ntr-o alt list, la care se ajunge prin
meniul Configure Existing Nodes (configurare noduri existente). n aceast list, fiecare
eKo-nod primete un numr de identificare (ID) incremental, generat de puntea de
legtur. Dac seria eKo-nodului care intenioneaz s intre n reea nu coincide cu nici
unul dintre seriile nodurilor dorite, acesta poate fi respins prin acionarea butonului Reject.
Oprirea unui eKo-nod se realizeaz n orice moment cu ajutorul butonului de pornireoprire. Acest lucru va fi indicat printr-un semnal luminos rou. Dac, n mod accidental, a
fost respins un nod care trebuia conectat la reea, el poate fi recuperat selectnd butonul
Advanced, pentru a intra n meniul Advanced Commissioning (comenzi avansate). Acolo,
recuperarea eKo-nodului se realizeaz prin utiizarea butonului Undo.
n momentul cnd toate eKo-nodurile dorite au fost conectate la reea, n meniul
Configure (configurare) se vor putea observa (pentru fiecare eKo-nod): numrul ID, seria
numeric i descrierea parametrilor monitorizai.
Dup acceptarea eKo-nodului, n reea va aprea un semnal luminos albastru, ce va
dura aproximativ un minut, urmat de un semnal galben de aproximativ 20 de secunde.
Astfel, este indicat faptul c exit o legtur radio stabil cu baza. Dac n apropiere mai
exist i alte eKo-noduri conectate la reea, ar trebui s se vad un semnal luminos verde
care indic cel puin dou conexiuni radio stabile. Toate aceste mesaje prin culori sunt
sumarizate n Tabelul 2.2.
Tabelul 2.2. Codul extins de culori utilizat de eKo-noduri.
Secvene luminoase Semnal intermitent
Durat

1s

Semnal constant
20 s
Verde: dou conexiuni stabile

Culoare

Albastru

Galben: o conexiune stabil


Rou: nici o conexiune stabil

Activitate

Scanarea reelei

Rezultatele scanrii reelei

Dup ce a fost acceptat n reea, nodul va transmite date la un interval de 30 de


secunde pentru prima or, acest mod de transmitere a datelor iniiale a fost gndit pentru a
permite utilizatorilor s verifice validitatea acestora. Dup aceast perioad, datele se vor
transmite la un interval de 15 minute, avnd n vedere c fenomenele ecologice au o
evoluie lent.
Detalii privind eKo-nodurile conectate la reea se pot obine prin intermediul
meniului Node Details, ca n Figura 2.11. Pentru a reseta nodul i a-l aduce la setrile
iniiale (din fabric), se procedeaz astfel: se ine apsat butonul de pornire-oprire timp de
30 de secunde; va fi emis un semnal luminos constant de culoare roie timp de
10 secunde, urmat de semnale luminoase intermitente timp de 5 secunde. n continuare,
va fi emis un semnal luminos de culoare alb, acesta indicnd eliberarea butonului pornitoprit. Aceast secven de mesaje pe baz de culori este sumarizat n Tabelul 2.3.
19

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

Figura 2.11. Descrierea detaliat, de tip eKo-View, a eKo-nodurilor conectate n reea.


Tabelul 2.2. Codul de culori utilizat pentru resetarea unui eKo-nod.
Secvene luminoase

Semnal constant

Durat
Culoare

10 sec
Rou
Dac butonul pornitoprit va fi eliberat,
nodul se va nchide

Activitate

Semnal
intermitent
1 sec
Rou
Se pregtete
resetarea
nodului

Semnal constant
20 sec
Alb
Nodul va fi resetat la
eliberarea butonului
pornit-oprit

Pasul 4. Lansarea n execuie a interfeei eKo-View


Aceasta interfa ofer utilizatorului acces la diferite caracteristici ale reelei, prin
intermediul unui sistem cu ferestre, intuitiv, convivial i uor de manipulat. Principalele
opiuni ale interfeei sunt urmtoarele:
vizualizarea topologiei reelei;
trasarea de grafice cu date furnizate n timp real de la diferii eKo-senzori;
posibilitatea de configurare a unor limite de variaie a parametrilor monitorizai, n
vederea alarmrii utilizatorului.
Interfaa este descris pe larg n paragraful urmtor.
2.3.4. Interfaa eKo-View
Pentru a putea utiliza interfaa WEB a reelei Crossbow (eKo-View), este necesar ca
utilizatorul s dein un nume i o parol recunoscute de (mini-)sistemul de operare cu
care este dotat puntea de legtur. (Acesta este rezident n modulul de memorie rapid
din Figura 2.6, conectat la priza Disk 1 n Figura 2.7.)
Poarta de intrare n interfa este ilustrat n Figura 2.12. Dup identificarea
utilizatorului, acestuia i se permite accesul la meniurile de lucru ale interfeei (a se vedea
Figura 2.13):
meniu principal;
submeniu (meniu secundar);
legturi (link-uri) utile;
date.
n continuare, vom naviga prin aceste meniuri, pentru a descrie facilitile oferite de
interfa.
20

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

Figura 2.12. Poarta de intrare a interfeei eKo-View.

Figura 2.13. Meniurile interfeei eKo-View.


A. Faciliti ale meniului principal
A.1. Vizualizarea reelei de eKo-senzori
n imaginea din Figura 2.14, se poate vedea topologia unei reele de eKo-senzori
n activitate. Ea s-a obinut prin selectarea butoanelor Sensors, Network i Map.

Figura 2.14. Vizualizarea unei reele de eKo-senzori n activitate (configuraie stelat).


21

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

Dup culorile senzorilor i ale legturilor dintre ei, se poate efectua o prim
evaluare a strii reelei. Culoarea nodului indic vecinii poteniali ai unui eKo-nod
i calitatea conexiunilor cu acetia. Astfel, dac un eKo-nod este de culoare
albastr el are cel puin doi vecini cu care poate stabili o conexiune stabil. Dac
este de culoare portocalie, el poate stabili o conexiune stabil doar cu un singur
vecin. n cazul n care un nod este de coloare roie nseamn c nu are nici o
conexiune stabil; n acest caz, buna funcionare a senzorilor ataai nu poate fi
asigurat, iar datele achiziionate vor avea o perioad de eantionare foarte mare.
Ce nseamn ca un nod s aib o conexiune stabil? Exist 3 stri ale
conexiunilor dintre noduri, indicate prin culori corespunztoare:
verde conexiunea funcioneaz la o capacitate de peste 90%, att la intrare,
ct i la ieire;
portocaliu uan dintre conexiunile de intrare sau de ieire funcioneaz la o
capacitate n ntre 40% i 90%;
rou una dintre conexiunile de intrare sau de ieire funcioneaza la o
capacitate sub 40%.
Conexiunile stabile au culoarea verde, conexiunile la limita de stabilitate au
culoarea portocalie, iar cele instabile au culoarea roie. De exemplu, n
Figura 2.14, pentru reeaua stelat, eKo-nodul 0 (care, este de fapt baza radio) are
o conexiune instabil cu eKo-nodul 3, una la limita de stabilitate cu eKo-nodul 4 i
conexiuni stabile cu eKo-nodurile 1 i 2.
O alt configuraie a reelei este ilustrat n Figura 2.15. De aceast dat,
topologia reelei este de tip plas. EKo-nodul 1 este folosit de ctre eKo-nodurile
2, 3 i 4 ca repetor, deoarece legtura lui cu baza radio este stabil.

Figura 2.15. Vizualizarea unei reele de eKo-senzori n activitate (configuraie de tip plas).
De asemenea, se poate observa de ce nodul 4 este de culoare portocalie: el are o
singur legtur stabil cu nodul 2 i una instabil cu nodul 0 (baza radio). Chiar
dac reeaua nu funcioneaz la capacitate maxim, fluxul de date transmis pe
rute alternative i asigur o stabilitate de peste 90%.
22

RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>

A.2. Trasarea i vizualizarea de grafice


Aceast facilitate este disponibil prin intermediul butonului Chart. n Figura 2.16,
se poate observa evoluia pe care au avut-o datele preluate de la 3 eKo-senzori de
temperatur ambiental conectai cu eKo-nodul 5, senzori amplasai n diferite
locaii ale ecosistemului. Perioada de eantionare este de 30 de minute.

Figura 2.16. Vizualizarea graficelor evoluiei datelor msurate.


Datele din spatele graficelor afiate se pot exporta ctre alte aplicaii, n format
.csv, recunoscut de platforma Microsoft Office (deci i de programul Excel), prin
selectarea butonului Export data. Aceast facilitate permite transferul elegant al
datelor ctre mediile de programare. Pentru proiectul de fa, datele au fost
exportate ctre mediul MATLAB, dup efectuarea un pas de conversie specific. (Se
va reveni asupra acestui subiect.) De asemea, dac se alege opiunea Live Data,
graficele vor fi actualizate de fiecare dat cnd sunt primite date de la nodul
respectiv.
Figura 2.17 relev o alt facilitate interesant: posibilitatea de a vizualiza valorile
efetive ale datelor din spatele graficelor prin simpla amplasare a cursorului pe
oricare dintre grafice, n oricare punct al acestora.

Figura 2.17. Vizualizarea caracteristicilor datelor msurate.


23

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

A.3. Configurarea sistemului


Urmtoarea facilitate a meniului principal este cea de configurare a eKo-nodurilor,
plajelor de variaie normale ale mrimilor monitorizate i a utilizatorilor reelei.
Pentru a realiza aceste operaii, este necesar s se selecteze butonul Configure,
ca n Figura 2.18.

Figura 2.18. Facilitatea de configurare a eKo-nodurilor.


Aa cum s-a menionat deja, eKo-nodurile pot fi vizualizate (butonul Configure
Nodes), adugate n reea (selecie, urmat de butonul Accept) sau nlturate din
aceasta (selecie, urmat de butonul Reject).
Dup ce un eKo-nod a fost acceptat n reea, acestuia i se pot defini unele
proprieti. Cea mai interesant dintre acestea se refer la plajele de variaie ale
mrimilor msurate. Prin selectarea butonului Configure Alerts, se ajunge la o
fereastr de configurare ca n Figura 2.19.

Figura 2.19. Facilitatea de configurare a plajelor de variaie pentru mrimile monitorizate.


Pentru a stabili ntre ce limite variaia unei mrimi monitorizate este considerat
normal, se pot stabili reguli de alarmare a utilizatorului, ca n coloana din dreapta
a ferestrei de mai sus. De exemplu, dac temperatura ambient depete 20C,
n cel puin unul dintre punctele n care sunt amplasai eKo-senzorii, utilizatorul
este imediat informat. La fel pentru presiuni ale solului de cel puin 100 cbar
(umiditatea este invers proporional acestei presiuni).
n fine utilizatorii acreditai de ctre sistem sa opereze cu reeaua Crossbow sunt
stabilii prin selectarea butonului Manage Users. Exist un utilizator principal numit
administrator al reelei. El beneficiaz de privilegii maxime n utilizarea reelei i
stabilirea celorlali utilizatori acreditai. Fiecare dintre utilizatori este asociat unei
perechi nume-parol unic determinate de ctre administrator. Cu ajutorul acesteia,
utilizatorul poate exploata reeaua Crossbow via internet.
24

RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>

A.4. Determinarea performanelor reelei


Ultimul buton al meniului principal se numete Network. Odat selectat, sunt
afiate o multitudine de informaii de performan i stare de sntate privind
funcionarea reelei Crossbow. Exist 4 opiuni de vizualizare a acestor informaii,
enumerate n linia a doua a ferestrei din Figura 2.20.

Figura 2.20. Afiarea informaiilor de performan ale reelei.


Randamentul transmisiei de date la nivelul fiecrui eKo-nod, n ultima or, ultima zi
i ultima sptmn este afiat prin intermediul butonului Packet Yield
(Figura 2.20). n plus, este indicat i durata de timp scurs de la ultima actualizare.
Prin selectarea butonului Mesh Health (Figura 2.21), sunt afiate date legate de
starea de sntate a fiecrui nod, cum ar fi: tensiunea de alimentare a bateriilor,
numrul de eKo-noduri parcurse pn la puntea de legtur (gateway), informaii
legate de vecini i de legturile cu acetia.

Figura 2.21. Afiarea strii de sntate a reelei.


Tot informaii despre starea de sntate, dar a unitii centrale (serverului din
puntea de legtur) se obin prin selectarea butonului Server Health, ca n
Figura 2.22. Numrul de pachete de informaii vehiculate, ca i duratele medie de
prelucrare a acestora sunt principalii indicatori ai strii de sntate a unitii
centrale.
25

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

Figura 2.22. Afiarea strii de sntate a unitii centrale din puntea de legtur.
n fine, prin selectarea butonului Live Data, ca n Figura 2.23, date despre eKosenzori sunt afiate n timp real, sub forma unui tabel, care include (pentru fiecare
dintre ei): un numr unic de identificare, denumirea fiecrui pachet de date emis,
informaii tehnice privind conexiunile i valorile instantanee ale valorilor
eantionate (temperatur i umiditate, n exemplul din figur).

Figura 2.23. Afiarea informaiilor despre eKo-senzori i datele achiziionate.


B. Alte faciliti, oferite de meniul secundar
B.1. Vizualizarea alternativ a datelor cu ajutorul jojelor
Revenind la butonul Sensors din meniul principal, informaiile despre eKo-senzori
pot fi completate prin selectarea butonului Dashboard din meniul secundar, ca n
Figura 2.24. Interfaa eKo-View ofer acum o vedere de ansamblu asupra datelor
primite de la eKo-senzori, sub forma unor joje, n comparaie cu un minim i un
maxim determinate de domeniul de msur al acestora i cu nivelele de alarmare
stabilite anterior (dac exist). Valorile curente ale parametrilor msurai sunt
reactualizate n timp real pe durata afirii acestei ferestre.
26

RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>

Figura 2.24. Afiarea datelor cu ajutorul jojelor.


B.2. Vizualizarea informaiilor extinse legate de alarme
Meniul secundar ofer posibilitatea afirii unor informaii de detaliu privind
nivelele de alarm i istoricul atingerii acestora, prin selectarea butonului Alerts,
dup cum ilustreaz Figura 2.25.

Figura 2.25. Afiarea informaiilor detaliate privind nivelele de alarm.


Practic, facilitile oferite de interfaa eKo-View sunt suficiente pentru o monitorizare
destul de atent a unui ecosistem, dac se dispune de o reea adecvat de senzori. Cu
toate acestea, stabilirea nivelelor de alarm i interpretarea datelor necesit intervenia
unui specialist. De multe ori, cunoaterea amnunit a ecosistemului monitorizat este
precar, astfel c interpretarea datelor achiziionate devine o operaie dificil. Dac, n
plus, datele sunt afectate de perturbaii importante, nelegerea manierei n care a evoluat
i va evolua fenomenul monitorizat se poate transforma ntr-o imposibilitate. Din acest
motiv, este absolut necesar ca datele msurate s fie modelate matematic i prelucrate cu
ajutorul unor algoritmi evoluai, cum sunt i cei care fac obiectul proiectului de fa.
2.4. Preluarea datelor din reeaua de eKo-senzori
Datele furnizate de senzori sunt eantionate cu perioade precizate a priori. Mai mult, o
serie de prelucrri primare (pre-filtrri, de fapt) sunt aplicate att la nivelul senzorilor, ct i
la nivelul interfeei VISA, n special pentru a evita fenomenele de aliere n frecven
(aliasing) [PrMa96] i a detecta eventualele decalibrri sensibile ale senzorilor.
Reeaua Crossbow are capacitatea de a nmagazina datele ntr-o memorie rapid (flash
stick) conectat la puntea de legtur (gateway). Pentru a le transmite mai departe, exist
dou posibiliti:
27

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

a. Folosind opiunea Export Data din meniul Chart. Datele pot fi astfel achiziionate pe
intervale determinate de timp (definite de utilizator). n plus, se pot selecta mrimile
monitorizate, la ce eKo-noduri i cu ce tip de eKo-senzori se realizeaz msurtorile.
b. Folosind un fiier tampon (de tip backup), care conine ntregul bloc de date stocate.
Acesta este salvat i reactualizat permanent la nivelul punii de legtur cu absolut
toate datele achiziionate de la senzori (fr selecie, ca n cazul precedent).
n continuare, vor fi detaliate cele dou posibiliti.
2.4.1. Preluare prin exportare
Folosind interfaa eKo-View ca n imaginile din Figura 2.26, datele se pot exporta ntr-un
fiier de tip .csv, care poate fi ulterior citit cu ajutorul programului Microsoft Office Excel.

Figura 2.26. Exportul datelor sub forma unui fiier de tip .csv.
28

RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>

Datele rezultate din export se prezint sub forma unui tabel asemntor celor construite
cu ajutorul platformti Mocrosoft Office, ca n Figura 2.27:

Figura 2.27. Coninutul unui fiier de date de tip .csv.


Prin aceast metod, se pot extrage pn la cteva mii de date la o singur operaie. n
plus, datele pot fi selecionate n funcie de mrimea msurat, numrul eKo-nodului i
tipul eKo-senzorului. Este suficient s se opreasc pe graficul de variaie acele date care
trebuie exportate.
Aa cum ilustreaz i exemplul din Figura 2.27, datele pot fi culese ntr-o manier
asincron, deoarece senzorii nu i pot sincroniza activitatea unii cu alii. Din acest motiv,
pentru sincronizarea datelor, sunt necesare prelucrri ulterioare. O tehnica de sincronizare
apeleaz la interpolare i re-eantionare cu o perioad mai fin. Dezavantajul major l
constituie zgomotul de interpolare introdus, tiut fiind faptul c nu exist interpolatoare
perfecte. O alt tehnic, mai bine adaptat tipului de date din ecologie (cu fenomene avnd
evoluie lent) se bazeaz pe operaia de mediere. De exemplu, pentru fiecare or, se pot
produce valori mediate ale datelor msurate. n acest fel, nu se realizeaz doar o
sincronizare a datelor de pe diferite canale de msur, ci i o deparazitare a acestora de
anumite zgomote (n special cel de cel alb [SCS05]).
Pentru ca datele s poat fi folosite n cadrul algoritmilor de predicie, ele trebuie s
convertite ntr-un format acceptat de mediul de programare n care au fost implementate
acetia. n cazul acestui proiect, mediul de programare utilizat este MATLAB. n consecin,
datele preluate de la senzori trebuie n final stocate n fiiere de tip .MAT, codificate n
cadrul acestui mediu de programare.
Pentru uurina nelegerii traseului datelor, vom apela la un exemplu. S presupunem
c se dorete stocarea ntr-un fiier .MAT a datelor preluate de la eKo-nodurile 2 i 5, la
care sunt conectai eKo-senzori de temperatur i umiditate. Fiecare eKo-nod include cte
o pereche de eKo-senzori temperatur-umiditate. n total, sunt 4 canale de msur (dou
de temperatur i dou de umiditate). Cei doi parametri sunt msurai la nivelul solului, n
preajma unor plante de interior.
Dup selecia i exportul datelor de pe cele 4 canale, se folosete tehnica medierii
orare, pentru a transforma fiierul de tip .csv ntr-un fiier de tip .xls (recunoscut de
programul Microsoft Excel), ca n Figura 2.28. Lungimea seriilor de date mediate fiind de
201, fiierul poate fi denumit prin DATA201.XLS. Acesta este ncrcat cu uurin n
spaiul de lucru al mediului de programare MATLAB cu ajutorul funciei xlsread. Aa cum
se poate observa n Figura 2.28, prima coloan a tabelului este constituit din momente
de eantionare reprezentate n formatul dat-or. Funcia xlsread are capacitatea de a
citi i interpreta corect aceast coloan. Urmtoarele 4 coloane sunt interpretate ca serii
de date msurate pe canale diferite. Pentru stocarea lor n spaiul de lucru MATLAB,
utilizatorul poate defini o variabil matricial cu 5 coloane (prima cu momente de
eantionare i urmtoarele 4 cu date), care va fi atribuit odat cu apelul funciei
xlsread, ca mai jos:
>> y = xlsread(DATA201.XLS) ;
29

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

Figura 2.28. Coninutul unui fiier de date de tip .xls.


Ultimul pas l constituie transformarea variabilei care conine datele ntr-un obiect de tip
IDDATA (date de identificare) cu ajutorul unei rutine proiectate de noi special pentru acest
scop: makeDATA. Dup lansarea acesteia n execuie (prin apelarea fr argumente),
utilizatorul este invitat s introduc o serie de informaii auxiliare care sunt utile n
identificarea blocului de date. Figura 2.29 ilustreaz fereastra de dialog cu utilizatorul a
rutinei makeDATA..

Figura 2.29. Fereastra de dialog cu utilizatorul a funciei makeDATA.


Informaia auxiliar solicitat cuprinde urmtoarele:
numele blocului de date (de exemplu, DATA201);
o not privind blocul de date (de exemplu, se poate specifica numrul eKo-nodului
care a furnizat datele);
30

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

numele experimentului de msur (de exemplu, Msurarea temperaturii i umiditii


ambiante din preajma unor plante de interior);
unitatea de msur a timpului (de exemplu, ora);
data i ora la care a fost iniiat achiziia de date (de exemplu, 11 mai 2009, ora
12:00; cele 201 date mediate s-au obinut ncepnd cu acest moment de timp;
achiziia lor a durat aproximativ o sptmn);
numele datelor pe fiecare canal; acestea pot fi numele parametrilor monitorizai (de
exemplu, temperatur pe canalele 1 i 2, umiditate pe canalele 3 i 4);
unitile de msur ale datelor msurate, pe fiecare canal (de exemplu, C pentru
canalele 1 i 2, RHI relative humidity index, n procente, pentru canalele 3 i 4).
Dup introducerea informaiilor auxiliare, variabila matricial y este convertit ntr-un
obiect IDDATA cu ajutorul funciei iddata. n partea inferioar a Figurii 2.29, se pot
observa principalele caracteristici ale acestui obiect, obinute prin simpla invocare a
variabilei care conine obiectul (tot y, prin supra-nscriere). n final, funcia makeDATA
realizeaz salvarea pe disc a obiectului IDDATA, cu ajutorul funciei Matlab save.
Rezultatul este un fiier de tip .MAT, cu numele precizat de ctre utilizator (de exemplu,
DATA210.MAT). Pentru a ncrca n spaiul de lucru obiectul IDDATA, trebuie utilizat
funcia dual load. De altfel, att programele de predicie, ct i interfaa grafic prin care
utilizatorul le poate apela, se ateapt ca datele achiziionate s fie gsite pe disc sub
forma unor fiiere de tip .MAT.
Desigur, datele trebuie stocate ntr-o manier sistematic, astfel nct s poat fi
regsite cu suficient rapiditate. Pentru aceasta, o serie de informaii caracteristice (dintre
cele enumerate mai sus) pot fi incluse chiar n numele fiierelor de tip .MAT care le conin.
Organizarea datelor n baze de date specializate pe domenii este o activitate anvizajat
pentru etapele urmtoare ale proiectului.
2.4.2. Preluare direct din puntea de legtur
Accesul utilizatorului la puntea de legtur se poate efectua prin intermediul interfeei
eKo-View. Este suficient selectarea butonului Gateway, ca n Figura 2.30.

Figura 2.30. Accesul la puntea de legtur prin intermediul interfeei eKo-View.


Urmeaz construcia fiierului tampon, anunat printr-o fereastr ca n Figura 2.31.
Aceast operaie este uor consumatoare de timp, fapt anunat i n partea inferioar a
ferestrei. Pentru ca utilizatorul s nu se impacienteze n timpul generrii fiierului tampon,
interfaa eKo-View afieaz etapele principale parcurse, ca n Figura 2.32. Unitatea
central se oprete pentru cteva minute, pentru a permite organizarea datelor n fiierul
tampon. Dup ce fiierul a fost constituit i salvat n memoria rapid, unitatea central este
repornit. Fiierul are un nume unic i se prezint sub forma unei arhive de tip .tar sau
.tgz. Pentru a descrca arhiva de pe memoria volatil este suficient selectarea legturii
Data Backup (scris cu albastru n fereastra din Figura 2.32). Pentru extragerea
coninutului arhivei, se poate utiliza orice program utilitar de dezarhivare (cum ar fi
WinZIP sau WinRAR). Arhivarea a fost necesar n special pentru a comprima datele,
avnd n vedere numrul lor, care poate fi foarte mare. n acest fel, se economisete
spaiul de stocare al memoriei rapide.
31

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

Figura 2.31. Fereastra de informare privind crearea fiierului tampon de date.

Figura 2.32. Paii principali n construcia unui fiier tampon de date.


Dup dezarhivare, se obine un fiier care conine o baz de date numit
xserve_sqlite.db. Ea este de tip SQLite. Pentru a ajunge la datele efectiv
achiziionate, ncrcate n spaiul de lucru al mediului de programare MATLAB, se parcurg 2
pai importani. Primul dintre ei const n transformarea bazei de date de tip SQLite (cu un
format extrem de criptic), ntr-o baz de date de tip Microsoft Access 2007 (care poate fi
accesat aa cum sugereaz i numele prin intermediul mediului de programare
MATLAB). Programul de conversie se numete Database Convert i este oferit gratuit pe
internet. Figura 2.33 ilustreaz cele dou ferestre de dialog ale programului. Cea din
stnga se refer la baza de date de tip surs (care trebuie convertit), iar cea din dreapta
la baza de date de tip destinaie (n care trebuie convertit sursa).
32

RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>

Figura 2.33. Conversia bazei de date de tip SQLite ntr-o baz de date de tip Access.
Mediul de programare MATLAB are posibilitatea de a opera cu baze de date de tip
(Microsoft) Access prin intermediul interfeei Visual Query Builder. Aceasta poate fi
deschis prin comanda: querybuilder. Dialogul cu utilizatorul se desfoar ca n
Figura 2.34.

Figura 2.34. Interfaa MATLAB Visual Query Builder pentru interogarea bazelor de date.
Interfaa permite interogarea n manier SQL a bazei de date. Volumul de date
nregistrate n cadrul acesteia poate fi foarte mare, ceea ce constiuie un prim dezavantaj al
acestui mod de preluare. Pentru a ilustra ordinul de mrime, s revenim la exemplul din
paragraful precedent. Dac se extrag datele de temperatur i umiditate de la un singur
eKo-nod, se poate obine o matrice de 445.400, adic 13.710.800 de date. Un al doilea
dezavantaj major l constituie faptul c datele sunt eantionate neuniform, cu perioade
destul de mici (de ordinul minutelor). Aceasta implic proiectarea unor algoritmi de
uniformizare a datelor care apeleaz la tehnici de interpolare sau de mediere n frecven
(de exemplu, ca n [StCu08]).
33

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

3. Algoritmi paraleli de predicie pe baz de modele de identificare


Identificarea Sistemelor [SoSt89], [SCS05] este un domeniu de cercetare care ofer
posibilitatea de a construi modele matematice asociate unor sisteme dinamice, plecnd de
la date msurate de tip intrare (dac e posibil) i ieire. Aceste modele sunt de tip numeric
i nlocuiesc sistemul dinamic n cadrul unor aplicaii diverse. Una dintre acestea este i
cea de predicie. n raportul de cercetare precedent, [SPDC08] au fost deja descrise 3
metode de predicie bazate pe modele de identificare. Ele au condus la 3 algoritmi de
predicie: PARMA, PARMAX i KARMA. Acetia pot fi grupai n dou categorii: algoritmi
de predicie monodimensional (de canal) i algoritmi de predicie multidimensional
(multi-canal). PARMA face parte din prima categorie. Ceilali doi (PARMAX i KARMA)
sunt ncadrai n a doua categorie.
Primele implementri ale algoritmilor au vizat funcionarea lor la nivelul unitii mobile
de calcul, avnd un caracter secvenial. n aceast etap, algoritmii au fost modificai i reimplementai, n vederea utilizrii lor la nivelul unitii paralele de calcul. Vom relua pe
scurt paii acestor algoritmi i vom detalia numai tehnica utilizat pentru paralelizarea lor,
bazat pe o strategie de programare evoluionist: Particle Swarm Optimisation (PSO)
[KeEb95]. De altfel, aceast seciune debuteaz cu descrierea n detaliu a acestei tehnici
de optimizare, pentru a nelege mai uor apoi cum au fost modificai cei 3 algoritmi. n
seciunea 5 a raportului, va fi descris versiunea a doua a interfeei grafice, adaptate
pentru algoritmii de predicie n varianta paralel.
3.1. Redefiniri ale criteriului PQ
Fiecare dintre modelele de identificare utilizate ca predictori poate fi optimizat cu
ajutorul unui criteriu numit calitatea prediciei (PQ Prediction Quality), definit n [SPDC08]
(relaiile (4.72), (4.73) i (4.76)). Justificarea acestor definiii a fost precizat tot n
[SPDC08]. Simulrile ulterioare cu ajutorul algoritmilor de predicie implementai au relevat
ns posibilitatea de a redefini acest criteriu, astfel nct precizia de predicie s creasc.
Deficiena major a definiiilor amintite o constituie faptul c normalizarea sumei de la
numitor se efectueaz cu factori care anihileaza n mare parte caracteristicile predictorului
(sau extrapolatorului). De exemplu, dac tubul de ncredere este foarte larg, criteriul PQ
continu s fie mare, deoarece valorile mari ale dispersiei erorii de predicie la fiecare pas
sunt anihilate de valoarea mare a mediei lor. n cazul extrapolrii, dispersia semnalului
fiind adesea mult mai mare dect suma pe care o pondereaz, diferenele dintre doi
extrapolatori diferii sunt adesea insesizabile n valorile lui EQ (Extrapolation Quality
definiia (4.76) din [SPDC08]).
Definiiile alternative care urmeaz ncearc s atenueze aceste deficiene. Ele se
bazeaz pe urmtoarele variabile (cu notaiile din [SPDC08], pe care nu le mai relum):
raportul semnal-zgomot:

2y 2y
SNR = 2 = 2 ;
e 1
def

(3.1)

variana semnalului predictat/extrapolat pe orizontul de predicie:


def

Ky =

1
K

(
K

k =1

y N y + k y

, cu y

def
K

1 K
y N y + k ;
K k =1

(3.2)

variana semnalului msurat pe orizontul de predicie:


def

Ky =

1
K

(
K

k =1

y N y + k y

, cu y

def
K

1 K
y N y + k .
K k =1

Astfel, definiiile (4.72) i (4.76) pot fi nlocuite cu definiiile de mai jos, respectiv:
34

(3.3)

RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>
def

100

PQ =


1+

k =1

[%] ;

y N y + k y N y + k
Ky Ky SNR

def

100

EQ =

1+

(3.4)

k =1

[%] .

(3.5)

y N y + k y N y + k
Ky Ky SNR

Aceste definiii prezint de asemenea un inconvenient. Este normal ca funciile PQ i


EQ s creasc odat cu SNR. Este ns anormal ca ele s scad odat ce valorile
msurate devin mai plate pe orizontul de predicie (adic odat ce Ky nregistreaz o
cretere). Normal ar fi ca ele s creasc odat cu creterea SNR pe orizontul de predicie.
Acesta se definete astfel:

SNR

( )
=
( )

def

K
y

2
K
y y

(3.6)

unde:
def

Ky y =

1 K
y N y + k y N y + k
K k =1

n aceste condiii, calitatea prediciei se poate redefini ca mai jos:


def
100
PQ =
[%] .
K
2
k

k =1
1+
e SNR SNR K

(3.7)

(3.8)

Analog, calitatea extrapolrii devine:


def

EQ =

1+

100
1

[%] .

(3.9)

SNR SNR K
Definiiile (3.8) i (3.9) au condus la cele mai bune rezultate de predicie n numeroasele
experimente de simulare desfurate. Din acest motiv, n continuare, ele vor nlocui
vechile definiii din raportul de cercetare [SPDC08].
3.2. Optimizare prin aglomerare de particule
Adoptarea unei strategii de programare evoluioniste a fost necesar, deoarece
modelele de identificare utilizate au un numr variabil de parametri, fapt care face
imposibil gsirea predictorului optimal printr-o cutare exhaustiv.
Vom dezvolta n continuare o metod de selecie a indicilor structurali bazat pe
algoritmul de optimizare prin algomerare de particule (Particle Swarm Optimisation PSO)
[KeEb95]. Spaiul de cutare, notat cu S , este un hiper-paralelipiped din laticea multidimensional N ni , unde ni este numrul de indici structurali ai modelului de identificarepredicie. n acest spaiu, se definete un vector de poziie asociat unei particule: x S .
Subliniem c vectorul trebuie s aib numai componente cu valori ntregi, nu fracionare.
De aceea, eventualele valori fracionare rezultate din calcul trebuie aproximate la cel mai
apropiat ntreg.
35

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

Pe spaiul de cutare, se definete o funcie de potrivire (sau concordan) (fitness),


care trebuie optimizat. n varianta original a algoritmului PSO (propus n [KeEb95]),
funcia de potrivire este nenegativ i trebuie minimizat. n contextul predictorilor din
cadrul acestui proiect, funcia de potrivire este chiar criteriul PQ (re)definit n (3.8), care va
trebui maximizat n raport cu vectorul indicilor structurali x . Din acest motiv, algoritmul
PSO original va fi modificat i adaptat criteriului PQ.
Principiul care st la baza tehnicii de cutare de tip PSO este urmtorul: punctul de
optim al funciei de potrivire este aproximat cu ajutorul unei populaii de particule, care
evolueaz incremental, pe parcursul mai multor generaii. Vom explica pe rnd termenii
utilizai n aceast aseriune.
Se pleac de la o populaie de particule cu poziii prestabilite:

P0 = {x 0p }p1, P S ,
def

(3.10)

unde P N este numrul de membri ai populaiei, iar indicele 0 (zero) arat c evoluia
acesteia se gsete n stadiul iniial (adic la generaia 0 ). De regul, generaia iniial a
populaiei caut s acopere n mod uniform spaiul de cutare. Dac exist indicii
preliminare legate de o anumit zon din spaiul de cutare n care se presupune c s-ar
gsi punctul de optim, atunci generaia iniial ar putea popula mai dens acea zon. Chiar
dac indiciile sunt false, dup cteva generaii, populaia poate migra ctre zona unde se
gsete punctul de optim, dar cutarea va fi mai ndelungat. Uzual, P 20,200 , n funcie
de dimensiunea spaiului de cutare.
Populaia iniial trebuie s evolueze n manier incremental. Aceasta nseamn c,
de la generaia avnd indicele de evoluie m N , se va produce o generaie ulterioar, de
indice m + 1 (incrementat cu o unitate). Astfel, generaiei P0 i succede generaia P1 , care,
la rndul ei este printele generaiei P2 , etc. Succesiunea generaiilor se realizeaz dup
un program prestabilit, aa cum se va vedea n continuare. Obiectivul acestei evoluii este
acela de a fora particulele s se grupeze din ce n ce mai mult n jurul unui punct de optim
al funciei de potrivire, aa cum sugereaz Figura 3.1.

Figura 3.1. Evoluia unei populaii ctre punctul de optim n cadrul Algoritmului PSO.
Pentru a atinge obiectivul dorit, este necesar s se asigure un bun compromis ntre
dou proprieti opuse ale populaiei: diversitate (care permite evitarea stagnrii n puncte
locale de optim ale funciei de potrivire) i vitez de convergen (care depinde de viteza
de grupare a populaiei n jurul unui optim). Raportul dintre aceste proprieti va fi relevat
n finalul descrierii Algoritmului PSO.
Cum se realizeaz evoluia populaiei de particule de la o generaie la alta? Operaia
principal o constituie reactualizarea poziiilor particulelor din generaia curent (s
spunem Pm ) prin intervenia unui termen corector aditiv:
x mp +1 = x mp + x mp +1 , p 1, P .

(3.11)

Coreciile se evalueaz pe baza vitezelor de deplasare ale particulelor (considernd


deplasarea uniform de la o generaie la alta). Mai precis:
def

x mp +1 = v mp +1 T + 0.5 Z ny +1 , p 1, P ,
36

(3.12)

RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>

unde v mp +1 R ny +1 este viteza reactualizat a particulei (care nu are neaprat valori ntregi),
iar T > 0 este durata de timp necesar populaiei din generaia curent pentru a produce
generaia urmtoare. De regul, pentru simplitate, T este ales de valoare unitar (adic
joac rol de unitate de msur a timpului). n definiia (3.12), se remarc utilizarea
operaiei de rotunjire la cel mai apropiat ntreg (care nu este precizat n algoritmul PSO
general). Aa cum s-a menionat, ns, spaiul de cutare este o submulime a unei latici
de ntregi, astfel c operaia de rotunjire este obligatorie n contextul predictorului MIMOARMAX. Mai mult, valorile poziiilor (3.11) trebuie i limitate la frontierele mulimii S ,
pentru a nu depi spaiul de cutare.
Vitezele de deplasare ale particulelor se reactualizeaz, la rndul lor, prin trei tipuri de
corecii: una multiplicativ numit factor de mobilitate (care ine cont de ineria particulei),
una aditiv numit cognitiv (determinat de istoria evoluiei particulei) i alta, tot aditiv,
dar numit social (n care intervine evoluia ntregii populaii din care face particula).
Matematic, relaia de reactualizare a vitezelor este urmtoarea:

m +1
p

= v +
m
p

m
p

m
p ,c

x mp ,0 x mp
mp ,+c1

+
m
s

x mP ,0 x mp
ms +1

, p 1, P ,

(3.13)

unde:
mp [0,1] este factorul de mobilitate al particulei;
x mp,0 S este cea mai bun poziie atins de particul n cursul evoluiei, pn la
momentul curent;
x mP ,0 S este cea mai bun poziie atins de ntreaga populaie n cursul evoluiei,
pn la momentul curent;
mp,c [0,2] este variana normalizat n intervalul [0,2] a tuturor poziiilor atinse de
particul n cursul evoluiei sale, n raport cu cea mai bun poziie a sa pn la
momentul curent, x mp,0 ; ea se mai numete i varian cognitiv;
ms [0,2] este variana normalizat n intervalul [0,2] a tuturor poziiilor atinse de
populaia de particule n cursul evoluiei sale, n raport cu cea mai bun poziie atins
pn n momentul curent, x mP ,0 ; ea se mai numete i varian social;
mp,+c1 T este durata de care ar avea nevoie particula s migreze din poziia curent
n cea mai bun poziie atins de ea pn atunci, x mp,0 ;
ms+1 T este durata de care ar avea nevoie ntreaga populaie ca s migreze n cea
mai bun poziie atins pn atunci, x Pm,0 , dac ea ar fi concentrat n poziia curent a
particulei curente.
Vor fi explicitai pe rnd parametrii enumerai mai sus.
Factorul de mobilitate al unei particule depinde, de fapt, n mod opus de ineria
acesteia. Ineria de valori mari trebuie s induc valori mici ale factorului de mobilitate i
reciproc. Ineria particulei trebuie sa fie mare cnd ea se gsete n apropierea punctului
de optim i mic atunci cnd distana pn la acesta este mare. De asemenea, factorul de
mobilitate trebuie s aib modul cel mult unitar, deoarece, n realitate, relaia de
reactualizare (3.13) este o ecuaie cu diferene de ordin I. Soluia acesteia este stabil
numai dac factorul de mobilitate se gsete n intervalul [0,1] (valoarea unitar a
acestuia producnd soluii la limita de stabilitate).
Pentru a specifica relaia de reactualizare a factorului de mobilitate, trebuie mai nti
evaluat ineria particulei curente p 1, P :
37

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

PQ x mp PQ x mp ,1

def

=
m
p

PQ x mp ,0 PQ x mp ,1

(3.14)

unde x mp,1 S este poziia cea mai slab a particulei n cursul evoluiei pn n momentul
curent (adic acea poziie de pe traiectoria particulei care produce valoarea cea mai mic
a criteriului PQ). Este evident c ineria astfel definit nu poate lua dect valori n intervalul
[0,1] . Ea este nul atunci cnd poziia curent a particulei produce cea mai mic valoare a
criteriului PQ i unitar cnd ea produce cea mai mare valoare a acestuia. Cu alte cuvinte,
ineria particulei se mrete odat cu apropierea de optimul criteriului PQ. Menionm c
definiia (3.16) ofer posibilitatea ajustrii adaptive a mobilitii particulei, spre deosebire
de articolul original n care a fost introdus tehnica PSO, unde mobilitatea ia valori
constante. De altfel, n abordarea noastr, s-a urmrit asigurarea caracterului adaptiv al
tuturor parametrilor relaiei de reactualizare (3.13), care se preteaz la aceast manier de
variaie.
Odat ineria evaluat, factorul de mobilitate se reactualizeaz dup urmtoarea regul
simpl:
PQ x mp ,0 PQ x mp
m
m
p = 1 p =
.
(3.15)
PQ x mp ,0 PQ x mp ,1
Variana cognitiv a unei particule se poate evalua n doi pai. La primul, se estimeaz
variana absolut a poziiilor particulei, n raport cu poziia cea mai bun atins pn la
momentul curent:

1 m i
x p x mp,0
m + 1 i =0

def

mp ,c =

(3.16)

(n definiia (3.16), a fost utilizat norma Euclidian.) Al doilea pas const n normalizarea
varianei absolute n intervalul [0,2]:

m
p ,c

def

=2

mp ,c mp ,c ,min
mp ,c ,max mp ,c ,min

(3.17)

unde mp,c ,min i mp,c ,max sunt valorile minim, respectiv maxim ale varianei cognitive
absolute de la momentul iniial de evoluie, pn la cel curent, considernd inclusiv mp,c .
Dac se adopt definiia (3.17), aceasta prezint un mare dezavantaj practic: ea
necesit importante resurse de memorie pentru a putea fi implementat pe un mijloc
automat de calcul. Mai precis, aceast implementare solicit memorarea tuturor
generaiilor de la iniializare pn la momentul curent.
Din acest motiv, se propune definiia alternativ de mai jos, care permite implementarea
cu ajutorul unei relaii recursive:
def

mp ,c = mp x mp ,0

1 m i 2
x p =
m + 1 i =0

1 m
x mp ,0
m + 1 i =0

xip

),

x mp ,0

1 m i
xp
m + 1 i =0

=
(3.18)

unde mp este semnul diferenei din paranteza care i urmeaz. De aceast dat, variana
cognitiv este exprimat ca o medie a distanelor dintre norma poziiei celei mai bune
obinute de particul n cursul evoluiei sale pn n prezent ( x mp,0 ) i normele tuturor
poziiilor de pe traseu (tot pn n prezent). Evidenierea semnului este util n calculele
38

RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>

care urmeaz, unde este vizat o relaie recursiv de determinare a varianei. Mai nti, se
poate observa c:
m 1

x
i =0

i 2
p

2
2
= m x mp ,01 mp 1 ( mp ,c1 ) .

(3.19)

n consecin, din (3.18) i (3.19) rezult:


2
( mp,c ) = mp x mp,0

1 m i 2 m m 2
1 m1 i
=

x
x
xp
p p p,0 m + 1
m + 1 i =0
i =0

2
2
2
2
1

m x mp ,01 mp 1 ( mp ,c1 ) + x mp =

m + 1

= mp x mp ,0

m m1 m1 2
= mp
p ( p ,c ) + x mp ,0
m +1

2
+ x mp =

(3.20)

2
2
m
1
x mp ,01
x mp ,
m +1
m +1

unde mp nu poate fi altceva dect semnul expresiei din paranteza dreapt care i urmeaz.
Evident, expresia (3.20) este acum implementabil cu o ocupare rezonabil a memoriei
(se rein doar caracteristicile generaiei precedente).
n manier similar, se determin variana social a populaiei. Mai nti se calculeaz
valoarea absolut a acestei variane, innd cont de poziiile curente ale tuturor particulelor
populaiei, fa de poziia cea mai bun atins de o particul a populaiei, pn la
momentul curent:

1 P m
x p x mP ,0
P p =1

def

ms =

(3.21)

Urmeaz normalizarea acesteia n intervalul [0,2]:

ms ms ,min
=2 m
,
s ,max ms ,min
m
s

def

(3.22)

unde ms,min i ms,max sunt valorile minim, respectiv maxim ale varianei sociale absolute
de la momentul iniial de evoluie, pn la cel curent, considernd inclusiv ms .
Duratele de migrare ale particulei, respectiv populaiei nu pot fi cunoscute, de aceea ele
vor fi alese de o manier pseudo-aleatoare. Tot ce se poate cunoate este faptul c ele nu
pot fi inferioare duratei de schimb a unei generaii cu alta ( T ), deoarece migrarea n
poziiile cele mai bune (ale particulei sau populaiei) nu se poate produce dect cel mai
devreme dup schimbarea unei generaii cu alta. Dac la momentul curent se ating chiar
poziiile cele mai bune, atunci termenii corectori corespunztori sunt nuli i duratele de
migrare i pierd nsemntatea. Aadar, mp,+c1 i ms+1 trebuie generate pseudo-aleator n
intervalul [ T , + ) . Cum gama de variaie este infinit, se vor genera pseudo-aleator
1
inversele acestor durate (numite frecvene de tranziie) n intervalul 0,
.
T
Algoritmul PSO bazat pe relaiile (3.11)-(3.13) difer destul de mult de cel original
propus n [KeEb95] sau de alte variante propuse de-a lungul timpului, n cei aproape 15
ani de la apariie. n algoritmul original sunt utilizate alte notaii pentru parametrii ecuaiei
(3.13). Mai mult, acetia nu au semnificaiile pe care le-am atribuit noi mai sus. Astfel, mp+1
(notat prin w ) este considerat un factor de inerie (dar variaia lui contrazice definiia
comun a ineriei, care se opune schimbrii parametrilor micrii), mp,c i ms (notate prin

c1 , respectiv c2 ) sunt dou constante alese n intervalul [0,2] pentru a stabili ponderea
39

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

fiecrei componente aditive (cognitiv i social), iar n loc de mp,+c1 i ms+1 se opereaz cu
inversele r1 , respectiv r2 , care sunt numere pseudo-aleatoare n intervalul [0,1] .
Dup cum sugereaz relaiile algoritmului, este clar c, pe lng populaia de particule
care evolueaz, trebuie reinute i o serie de rezultate auxiliare: valori maxime/minime ale
criteriului PQ i poziii care produc aceste valori. Este aadar util s se menin n
memorie i s se reactualizeze nu doar populaia curent, ci i alte dou populaii:

o elit Em = {x mp ,0 }
def

p1, P

S , format din poziiile particulelor care au produs cele mai

bune valori ale criteriului PQ; evident, cea mai bun poziie atins de populaia de
particule se va regsi n Em ; cu alte cuvinte, x mP ,0 Em ; n subsidiar, vor fi memorate
i reactualizate inclusiv aceste valori (sub-)optimale;

o anti-elit A m = {x mp ,1}
def

p1, P

S , format din poziiile particulelor care au produs cele

mai slabe valori ale criteriului PQ; n subsidiar, vor fi memorate i reactualizate
inclusiv aceste valori anti-optimale.
Elita joac un rol important n oprirea mecanismului de cutare al algoritmului. Exist
mai multe teste de stop care pot fi imaginate. Tradiional, se impune atingerea unui numr
maxim de generaii M N , fr a ine cont de alte considerente. (n mod uzual
M 10,100 .) Exist ns i teste de stop mai puin rudimentare. De exemplu, se poate
evalua dispersia elitei n jurul poziiei optimale x mP ,0 Em , aa cum sugereaz Figura 3.1.
Dac ea devine suficient de mic sau dac descreterea ei relativ devine nesemnificativ
(scade sub un prag impus), atunci poziia optimal a elitei este cea cutat. Un alt
exemplu face referire la conceptul de supravieuire a unei particule n cadrul elitei. Dac
particula care produce poziia optimal din cadrul elitei reuete s supravieuiasc unui
anumit numr de generaii (adic nu este nlocuit cu alt particul mai bun), atunci
algoritmul se poate opri la acea particul. Probabil c nici unul dintre testele de stop nu
este perfect, avnd n vedere c nu s-a demonstrat riguros convergena algoritmului ctre
punctul de optim global. (Ca i n cazul Algoritmilor Genetici, sunt formulate doar conjecturi
de convergen, care par a funciona n majoritatea aplicaiilor.) Din acest motiv, se poate
opta pentru un test de stop combinat, de exemplu, de forma:
Algoritmul PSO se oprete dac: n evoluia populaiei s-au nregistrat M
generaii SAU particula optimal din elit a supravieuit peste un anumit
numr de generaii (de exemplu 5-10) SAU dispersia relativ a elitei are o
descretere sub un prag dat (de exemplu de 3-5%) SAU un procent mare din
populaia curent face parte i din elit (de exemplu, peste 85%), dup
schimbarea unui numr suficient de mare de generaii, etc. (se mai pot aduga
i alte condiii de tip SAU).
Performanele algoritmului PSO depind n mare msur de compromisul dintre
diversitatea populaiei i viteza de convergen. Aceste dou caracteristici ar putea fi chiar
cuantificate, cu ajutorul celor dou populaii Pm (dinamic) i Em (elitist). Astfel, variana
populaiei dinamice Pm n jurul valorii optimale a acesteia poate constitui o msur a
diversitii. Cu ct variana este mai mare, cu att diversitatea este mai mare i ansa de a
depista optimul global este mai mare. n schimb, inversa varianei populaiei elitiste Em ar
putea msura viteza de convergen a algoritmului. Cu ct aceasta are valoare mai mare,
cu att particulele elitiste sunt mai grupate n jurul celei optimale i ansa de a opri rapid
cutarea ntr-un optim local este mai mare. Cele dou variane se pot evalua astfel:
40

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

1 P m
x p x mP ,0

P p =1

def

Pm =

def

, respectiv Em =

1 P m
x p ,0 x Em,0

P p =1

(3.23)

unde x Pm,0 este cea mai bun poziie a particulelor dinamice curente, iar x Em,0 este cea mai
bun poziie a particulelor elitiste curente. Ambele poziii sunt egale, deoarece, din relaiile
(3.13) i (3.15), rezult c viteza particulei care ocup aceast poziie este nul.
innd cont de valorile cuantificate empiric cu ajutorul varianelor (3.23) ale diversitii
populaiei i vitezei de convergen, se poate interveni n cazul n care situaia devine
dezechilibrat. O diversitate prea mare produce oscilaii ale algoritmului, n timp ce o
vitez de convergen prea mare poate bloca algoritmul ntr-un optim local. n aceste
condiii, se poate monitoriza produsul celor dou variane, mP Em . Acesta ar trebui s
varieze n jurul unei constante, dup cteva generaii de la iniializare. Dac se
nregistreaz creteri rapide ale sale, atunci probabil c diversitatea este prea mare i
algoritmul tinde s devin oscilant. Dac, din contr, se nregistreaz scderi rapide,
probabil c algoritmul tinde s fie capturat ntr-un optim local.
Pentru a remedia tendinele excentrice ale algoritmului, se poate apela la mai multe
operaii. Una dintre ele este inspirat de Algoritmii Genetici: ncruciarea particulelor. Dac
x1 i x 2 sunt dou particule numite generic prini, iar vitezele lor instantanee sunt v1 ,
respectiv v 2 , atunci ele pot produce doi urmai prin ncruciare. Pentru a realiza
ncruciarea, se genereaz n prealabil un numr aleator (0,1) , care stabilete
ponderile prinilor. Apoi, urmaii sunt produi astfel:
def

def

x 1 = x1 + (1 ) x 2 + 0.5 , respectiv x 2 = x 2 + (1 ) x1 + 0.5 .

(3.24)

Acestora le sunt imprimate vitezele instantanee de mai jos:


def

def

v 1 = v1 + (1 ) v 2 , respectiv v 2 = v 2 + (1 ) v1 .

(3.25)

ncruciarea se poate aplica astfel:


a. Dac produsul mP Em nregistreaz o cretere semnificativ, atunci diversitatea este
prea mare. n acest caz, populaia dinamic Pm trebuie ncruciat cu populaia
elitist Em , pentru a produce 3 noi populaii (dinamic, elitist i anti-elitist). n noile
populaii dinamic i elitist, se va conserva totui particula optimal curent. n
noua populaie elitist, se vor nlocui celelalte particule cu urmaii cei mai buni. n
noua populaie anti-elitist, se vor reactualiza doar urmaii cei mai slabi.
b. Dac produsul mP Em nregistreaz o scdere semnificativ, atunci riscul de blocare
ntr-un optim local este ridicat. n acest caz, populaia dinamic Pm trebuie
ncruciat cu populaia anti-elitist A m , pentru a crete diversitatea. Sunt produse
tot 3 noi populaii ca i n cazul precedent (dup aceleai reguli). Tot pentru a crete
diversitatea populaiei dinamice, se poate apela i la un transfer direct al unora dintre
particulele anti-elitiste ctre aceasta, cu nlturarea unora dintre particulele mai
bune. Transferul poate fi efectuat i prin generarea pseudo-aleatoare a unor poziii,
vitezele aferente fiind conservate.
Aadar, algoritmul funcioneaz pe baza a 3 populaii: dinamic, elitist i anti-elitist.
Din punct de vedere informatic, ntr-o populaie trebuie memorate: poziiile particulelor,
vitezele instantanee aferente i valorile corespunztoare ale criteriului PQ, cu indicarea
optimului curent (pentru populaiile dinamic i elitist). n plus, se mai pot memora
varianele populaiilor i varianele extreme din definiiile (3.17) i (3.22).
41

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

Iniializarea algoritmului (care ncheie descrierea lui) const n urmtoarele:


generarea unei populaii dinamice de generaie nul ( P0 ), care va fi deopotriv
populaie elitist i anti-elitist la momentul iniial;
stabilirea vitezelor iniiale nule pentru toate particulele.
3.3. Algoritmul PARMA-PSO
Denumirea acestui algoritm provine de la sintagma Predicie ARMA. Cu alte cuvinte,
modelul de identificare utilizat pentru predicie este de tip ARMA (auto-regresiv, cu medie
alunectoare). Fr a repeta fundamentul teoretic al algoritmului (explicat pe larg n
[SPDC08]), relum numai paii algoritmului, pentru a arta cum a fost modificat de
strategia PSO.
Algoritmul 3.1. PARMA-PSO un algoritm clasic de predicie a proceselor stocastice,
cu ajutorul modelelor ARMA, folosind tehnica PSO.
Date de intrare:
) numele blocului de date care conine seria de timp y de durat finit, N y ;
) lungimea orizontului de predicie K (unde K << N y ); de regul, K 7 ;
) parametri de configurare:
opiune privind construcia componentei deterministe (0/1 = fr/cu
tendin i component sezonier);
valoarea maxim a gradului polinomului tendin, Pmax N (implicit,
Pmax = 10 );
pragul de detecie a componentei sezoniere, (0,1] (implicit, = 0.3 );
valorile maxime ale indicilor structurali din modelul ARMA NA, NC N
(implicit: NA = NC = N y / 3 );
numrul de particule pentru populaia din strategia PSO (implicit: P = 50 );
opiune privind stabilitatea modelelor ARMA (0/1 = fr/cu testarea
stabilitii modelului).
y , a deviaiei standard y (cu

1. Prelucrarea primar a datelor: evaluarea mediei

ajutorul definiiilor (4.74) din [SPDC08]) i a energiei semnalului staionarizat y y ,


notat prin E y0 (adic y y

).

2. Se formeaz particula generic:


a. dac s-a optat pentru construcia componentei deterministe:
def

x = [ p na nc n ] ;
T

b. altfel:
def

x = [ na nc n ] .
T

3. Se rezerv ultimele K / 2 date (dar nu mai puine de 4), n vederea evalurii


criteriului PQ pentru fiecare particul a populaiei.

42

RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>

Algoritmul 3.1. PARMA-PSO un algoritm clasic de predicie... (final).


4. Se formeaz populaia iniial de P particule uniform distribuite n spaiul de cutare
determinat de valorile maxime ale indicilor structurali i se trece la generaia
urmtoare cu ajutorul relaiilor (3.11)(3.15) (n care ineria i varianele cognitiv i
social iau valori pseudo-aleatoare, iar viteza iniial este nul).
5. Se formeaz elita i anti-elita (cu ajutorul criteriului PQ).
6. Ct timp testul de stop al strategiei PSO nu este ndeplinit (vezi pagina 40):
6.1. Se calculeaz ineria fiecrei particule din generaia curent.
6.2. Se calculeaz variana cognitiv relativ a fiecrei particule din generaia
curent.
6.3. Se calculeaz varian social relativ a fiecrei particule din generaia curent.
6.4. Se genereaz cele dou frecvene de tranziie de o manier aleatoare
(uniform).
6.5. Se reactualizeaz vitezele i poziiile particulelor din generaia curent.
6.6. Se reactualizeaz elita i anti-elita.
6.7. Se evalueaz varianele populaiei curente i ale elitei.
6.8. Dac produsul varianelor de la pasul precedent nregistreaz o cretere
semnificativ, populaia curent se ncrucieaz cu elita i se rein particulele
care produc valorile cele mai mari ale criteriului PQ (inclusiv particula cea mai
valoroas a elitei). Se reactualizeaz elita i anti-elita.
6.9. Dac produsul varianelor de la pasul precedent nregistreaz o scdere
semnificativ, populaia curent se ncrucieaz cu anti-elita i se rein
particulele care produc valorile cele mai mari ale criteriului PQ (inclusiv particula
cea mai valoroas a elitei). Se reactualizeaz elita i anti-elita.
7. Se alege particula optimal din elit (care produce valoarea cea mai mare a
criteriului PQ). Aceasta este unic asociat unei tendine polinomiale yT , p0 cu gradul

p0 , unei componente sezoniere yS , p0 (eventual nule) i unei triplete de indici


structurali

{na0 , nc0 , n0 } .

(n cazul n care componenta determinist nu a trebuit

determinat, tendina i variaia sezonier sunt forate la valori nule).


8. Se reactualizeaz componenta determinist pe ntregul orizont de msur (care
include i cele K / 2 date finale rezervate) i se extrage zgomotul colorat:
v y yT , p0 yS , p0 . Apoi, se estimeaz modelul ARMA al zgomotului colorat v ,
pentru tripleta de indici structurali {na0 , nc0 , n0 } (folosind ntregul set de date).

9. Se construiete predictorul stocastic y ( AR )( MA ) , cu relaiile recursive din [SPDC08]


(paragraful 4.5).
10. Se predicteaz seria de timp:

y T,S,(AR)(MA) N y + k | N y = yT N y + k + yS N y + k + y ( AR )( MA ) N y + k | N y , k 1, K
i se evalueaz dispersiile erorii de predicie {2k }

k =1, K

Date de ieire:

(definiia (4.68) din [SPDC08]).

mulimea valorilor predictate: y T,S,(AR)(MA) N y + k | N y


dispersiile erorii de predicie {2k }

k =1, K

43

k1, K

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

Evident, fa de Algoritmul 4.3 din [SPDC08], Algoritmul 3.1 este mai complex. Practic,
pasul 6.6 al Algoritmului 3.1 include nucleul Algoritmului 4.3, constituit din pasul 2 (cu mici
modificri evidente de adaptare la procedura PSO). Principalul avantaj al algoritmului din
acest context l constituie faptul c poate rula eficient pe maina de calcul paralel i chiar
n mini-reeaua de calculatoare asociat.
Exist dou nivele de paralelism. n primul rnd, graie faptului c evaluarea criteriului
PQ pentru populaia curent se poate efectua n paralel, pentru mai multe particule
deodat, maina paralel de calcul avanseaz foarte repede ctre un punct de optim.
Mediul de programare MATLAB pentru maini paralele de calcul (achiziionat n cadrul
etapei precedente) are faciliti de calcul paralel care nu necesit o cunoatere efectiv a
acestui tip de programare. Totul se reduce la o utilizare eficient a celor 16
(micro)procesoare paralele cu care este dotat maina (a se vedea descrierea
caracteristicilor tehnice ale acesteia n [SPDC08]). Aceasta se realizeaz automat de ctre
mediul de programare printr-o alocare eficient a sarcinilor de calcul ctre toate
procesoarele. n al doilea rnd, spaiul de cutare poate fi partiionat ntr-un numr de
subspaii egal cu numrul de calculatoare al mini-reelei (nu neaprat de volume egale). n
fiecare subspaiu poate fi iniiat cte un program PARMA-PSO. Particula optimal va fi
detectat n cel puin unul (dac nu mai multe) calculatoare ale mini-reelei.
n continuare, vom oferi scurte explicaii relativ la paii importani ai Algoritmul 3.1.
Avnd n vedere conformaia particulei generice definite n pasul 2, populaia curent,
elita i anti-elita, fiecare de dimensiune P , sunt reprezentate ca matrici cu 4 sau 3 linii i
P coloane, ca n Figura 3.2.

Tendin
Model ARMA
Model AR
aproximant

Figura 3.2. Reprezentarea matricial a populaiilor de particule


n cadrul Algoritmului PARMA-PSO.
Evident, prima component a particulelor apare numai dac utilizatorul a optat pentru
estimarea modelului determinist. Fiecare coloan a matricii reprezint o combinaie de
indici structurali care permit identificarea modelului de predicie de tip ARMA (cu sau fr
component determinist).
Odat modelul identificat, se poate evalua performana sa de predicie, cu ajutorul
criteriului PQ, pe un orizont de predicie simulat. Pasul 3 arat cum se formeaz acest
orizont: prin rezervarea ultimelor K / 2 date (dar nu mai puin de 4). Aa cum s-a precizat
i n [SPDC08], identificarea modelului ARMA se efectueaz folosind numai primele
N y K / 2 date. Dup ce a fost selectat predictorul optimal (cu indici structurali optimali
cunoscui), modelul este reactualizat innd cont de toate datele msurate (inclusiv cele
rezervate), aa cum se precizeaz la pasul 8.
Modelele de identificare estimate pot fi sau nu stabile (n sensul c polinomul AR
definiia (4.35) n [SPDC08]) poate avea polii n afara discului unitar. Utilizatorul are
posibilitatea de a preciza nc de la nceput dac se va opera numai cu modele stabile sau
dac stabilitatea modelelor nu va fi testat. Testul de stabilitate este binecunoscut n
comunitatea Teoriei Sistemelor. El are dou variante: Testul Hurwitz (pentru sisteme
44

RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>

continue) i Testul Schr-Cohn (pentru sisteme discrete) [IoV85], [SCS05]. n cadrul


Algoritmului PARMA-PSO, a fost integrat Testul Schr-Cohn (Algoritmul 3.2).
Testarea stabilitii unui model de identificare revine adesea la verificarea proprietii
unui polinom:
A( z 1 ) = 1 + aM ,1 z 1 + " + aM , M z M

(3.26)

de a avea rdcinile n interiorul discului unitar al planului complex. Procedura care


verific aceast proprietate se numete Criteriul (Testul) de stabilitate Schr-Cohn [ScI17],
[GoI86], [PrMa96]. Aa cum am precizat, acesta este analogul din cazul sistemelor
discrete al Criteriului lui Hurwitz, utilizat n contextul sistemelor continuale.
Criteriul Schr-Cohn se bazeaz pe conceptele de polinom reciproc i coeficient de
reflexie. Astfel, polinomul reciproc al lui A( z 1 ) din (3.26) este, prin definiie, urmtorul:
def

A ( z 1 ) = z M + aM ,1 z1 M + " + aM , M = z M A( z +1 ) ,

(3.27)

def

iar coeficientul de reflexie corespunztor este k M = aM , M .


Algoritmul 3.2 descrie paii Testului de stabilitate Schr-Cohn.
Algoritmul 3.2. Testul de stabilitate Schr-Cohn.
Date de intrare: Polinomul A( z 1 ) = 1 + aM ,1 z 1 + " + aM , M z M .
1. Iniializare: m = M , k M = aM , M (primul coeficient de reflexie) i AM ( z 1 ) = A( z 1 )
(primul polinom furnizor de coeficient de reflexie).
2. Ct timp | km |< 1 i m > 0 , se efectueaz urmtoarele operaii:
2.1. Dac m > 1 :
a. Se calculeaz polinomul urmtor, care folosete att polinomul curent, ct i
A ( z 1 ) km A m ( z 1 )
polinomul reciproc asociat: Am1 ( z 1 ) = m
.
1 km2
Evident: Am1 ( z 1 ) = 1 + am1,1 z 1 + " + am1,m1 z1 m .
b. Se evalueaz coeficientul urmtor de reflexie: km1 = am1,m1 .
2.2. Se decrementeaz indicele curent: m m 1 .
Test. Dac m > 0 polinomul este instabil. Altfel, polinomul este stabil.
Practic, polinomul (3.26) este stabil dac toi coeficienii de reflexie ( {km }m1, M ) se
situeaz n interiorul discului unitar al planului complex (sau n intervalul [ 1, +1] , n cazul
n care polinomul iniial are coeficieni reali). Se poate arta c polinoamele succesive
{Am }m1, M au grade proporionale cu indicii care le definesc. Exist o legtur strns ntre
aces algoritm i cel al lui Levinson-Durbin (Algoritmul 4.1 din [SPDC08]): coeficienii de
reflexie {km }m1, M sunt aceiai.
Simulrile pe diferite seturi de date au artat c operarea numai cu modele stabile nu
conduce ntotdeauna la cele mai bune rezultate de predicie. Aceasta, deoarece modelul
ARMA este cu precdere utilizat pentru identificarea sursei de zgomot care corupe datele.
Predicia precis a datelor revine, de fapt, la predicia cu suficient acuratee a acestui
zgomot. Ori, zgomotele sunt adesea generate de fenomene de instabilitate, care sunt mai
bine modelate de modele ARMA instabile sau la limita de stabilitate. De aceea, implicit,
dac utilizatorul nu are o opiune n ceea ce privete proprietatea de stabilitate, testul de
45

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

mai sus este inhibat. (De altfel, el conduce la creterea duratei de rulare, fr a mbunti
n mod obligatoriu calitatea prediciei.)
Revenind la Algoritmul 3.1, pasul 4 abordeaz problema iniializrii procedurii PSO.
Forma particulei arat c spaiul de cutare este un (hiper)paralelipiped de forma:
def

S ARMA = [0, Pmax ] [0, NA] [0, NC ] [0,3( NA + NC )] ,

(3.28)

n care prima dimensiune poate lipsi. n funcie de numrul de particule al populaiei ( P ),


se poate realiza o repartizare iniial a acestora care s acopere aproximativ n mod egal
(hiper)spaiul (3.28). Este suficient ca fiecruia dintre cele 3 sau 4 intervale ale
{3,4}
P valori aproximativ echidistante. De notat, totui,
(hiper)paralelipipedului s i se aloce
c elementele particulei sunt numere naturale i trebuie s conserve aceast proprietate
pe tot parcursul cutrii unui punct de optim.
Pasul 6 implementeaz strategia euristic PSO. n cadrul programului principal, el se
bazeaz pe trei rutine fundamentale: PSO_ARMA (aplicarea strategiei PSO),
PARMA_model (identificarea unui model ARMA) i PSO_fitness_PQ (evaluarea calitii
prediciei). Implementarea strategiei se bazeaz pe numeroase artificii informatice
interesante i ingenioase, care, ns, nu prezint interes n acest context.
Chiar dac nu rezult din schema Algoritmului 3.1, predictorul PARMA-PSO poate
opera cu seturi de date multi-canal. Aceasta nseamn c valorile predictate sunt oferite
pe toate canalele blocului de date, n paralel. De altfel, estimarea acestora se realizeaz
independent pe fiecare canal (fr contribuia celorlalte canale), ceea ce permite utilizarea
la maxim a capacitailor mainii paralele. Avnd 4 procesoare cvadruple, maina poate
predicta pn la 16 canale simultan, ntr-un timp destul de scurt.
Anexa B prezint o list a programelor i rutinelor utilizate pentru implementarea
Algoritmului ARMA-PSO. Fiecare dintre ele include un set de comentarii care ofer
principalele detalii de implementare, legate, mai ales, de structurile de date utilizate. Toate
sursele informatice ale acestui pachet sunt complet comentate, pentru uurina nelegerii
fluxului logic n care se desfoar calculele.
Exist mai multe publicaii ale echipei de cercetare care fac referire la predictorul
PARMA. Acesta este utilizat n special ca obiect de comparaie cu ali predictori. De
exemplu, n [SCI08], predictorul concurent este cel bazat pe undine (descris pe larg n
cadrul acestui raport de cercetare, n finalul seciunii de fa). Un alt exemplu l constituie
articolul [StCu09b], unde este realizat o comparaie ntre predictorii PARMA i PARMAX
(care urmeaz). n fine, comparaia ntre PARMA i KARMA (predictorul bazat pe filtrare
Kalman) este dezvoltat n [StCu09a]. Aceste publicaii sunt incluse i n ultima anex a
raportului.
3.4. Algoritmul PARMAX-PSO
Spre deosebire de PARMA, predictorul PARMAX (baxat pe modelul MISO-ARMAX)
este asociat unui bloc de date care are cel puin 2 canale. Aa cum a s-a artat n
[SPDC08], modelul de identificare este acum multi-dimensional. Intrrile (semnalele
exogene) sunt de fapt zgomote colorate produse de fiecare canal, care perturb celalalte
canale. Vom relua explicaia teoretic din raportul de cercetare precedent, n care modelul
ARMAX a fost prezentat doar ca un adjuvant al modelului cu reprezentare pe stare. Va fi
ilustrat maniera n care strategia PSO a fost combinat cu modelul ARMAX, fapt care a
condus la Algoritmul PARMAX-PSO.
Pentru a putea identifica modelul intrare-ieire din clasa ARMAX, sunt necesari doi pai.
La primul, se determin un model grosier de tip ARMA, al crui rol este de a oferi
posibilitatea estimrii zgomotului exogen v . Odat acest zgomot estimat, el va juca rol de
intrare pentru procesul ecologic, avnd n vedere c datele msurate la ieire sunt serii de
timp. Aadar, n cadrul intrrii u din ecuaiile de stare etichetate cu (5.1) n [SPDC08], vor
46

RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>

fi nglobate i versiunile estimate ale zgomotelor exogene, grupate n vectorul v .


(Reamintim c simbolul ^ nseamn estimat.) La pasul doi, se determin modelul
ARMAX multi-dimensional (adic MIMO-ARMAX), pe baza datelor msurate de la senzori
i a valorilor estimate ale zgomotului exogen (cu rol de intrri).
Modelul ARMA multi-dimensional (MIMO-ARMA) grosier se poate construi relativ
simplu, considernd c senzorii nu sunt corelai unul cu altul. Cu alte cuvinte, modelul este
total decuplat, matricile sale fiind diagonale. Aa cum s-a precizat i n [SPDC08], modelul
ARMA are urmtoarea exprimare matematic:

A j ( q 1 ) y j C j ( q 1 ) e j , j 1, ny ,

(3.29)

unde A j i C j sunt polinoame de forma:


def
na

1
= 1 + a j ,1 q 1 + " + a j ,na j q j
A
q
j

,
def

nc j
1
1
C j q = 1 + c j ,1 q + " + c j ,nc j q

( )
( )

(3.30)

cu na j i nc j indici structurali optimali (minimali) care trebuie determinai odat cu


parametrii, prin aplicarea strategiei PSO i Metodei Minimizrii Erorii de Predicie (MMEP)
[SCS05].
Optimalitatea este apreciat n raport cu PQ (definiia (3.8)). Mai precis, pentru fiecare
canal j 1, ny , se variaz indicii na j i nc j ntr-o anumit gam de variaie (de exemplu:
max
max
na j na min
i nc j nc min
), alegndu-se ca valori optime cele pentru care PQ
j , na j
j , nc j

este maxim. Pentru uurin, cele dou game de variaie pot fi aceleai, indiferent de
canalul

de

msur.
def

Astfel,

prin

convenie,

def

na min
= na min
= Na ,
j
j

def

nc min
= nc min
= Nc ,
j
j

def

na max
= na max
= NA i nc max
= nc max
= NC , j 1, ny . n vederea evalurii criteriului PQ, este
j
j
j
j

necesar s se adopte aceeai strategie de rezervare a ultimelor K / 2 date de pe fiecare


canal ca i n cazul predictorului PARMA (unde K 1 este dimensiunea orizontului de
predicie).
Revenind, funcia de sistem grosier asociat procesului ecologic este diagonal:
G0 ( q 1 ) = diag C j ( q 1 ) A j ( q 1 )

j1,ny

(3.31)

Cu alte cuvinte, modelul ARMA grosier multi-dimensional are urmtoare exprimare:

y G0 ( q 1 ) e ,

(3.32)

unde e R ny este vectorul zgomotelor albe Gaussiene de medie nul care provoac
variaia datelor msurate de la senzori. De notat c MMEP ofer n plus estimaii att
pentru dispersiile necunoscute ale zgomotelor albe ( 2e, j
), ct i pentru valorile

{ }

j1,ny

efective ale zgomotelor albe ( e ), pn la momentul curent. Acestea din urm sunt, de fapt
erorile de predicie estimate, folosind modelul ARMA grosier.
Dup estimarea parametrilor polinoamelor (3.30) (efectuat separat, pe fiecare canal de
msur, cu date staionarizate (adic centrate n jurul mediei de canal)), se pot determina
valorile aproximative ale zgomotelor exogene:

( q 1 ) y + 1 C ( q 1 ) v , unde: v [ n] = e [ n] , n 1, nc , j 1, ny .
v j A
j
j
j
j
j
j

(3.33)

Acestea sunt de fapt estimaii mai precise ale unor zgomote albe, care urmeaz s fie
filtrate de ctre fiecare canal de msur n parte.
47

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

Zgomotele (3.33) sunt n continuare utilizate pe post de intrri n modelul mai rafinat, de
tip MIMO-ARMAX, de mai jos:

A ( q 1 ) y B ( q 1 ) v + C ( q 1 ) e ,

(3.34)

n care A R nyny ( q 1 ) , B R nyny ( q 1 ) i C R nyny ( q 1 ) sunt matrici polinomiale de grade


na , nb , respectiv nc , iar diagonala lui B este nul (zgomotul canalului curent lipsete):
def

1
A
= I ny + A1 q 1 + " + A na q na
q
(
)

def

1
B
B1 q 1 + " + B nb q nb .
q
( )=

def
C ( q 1 ) = I ny + C1 q 1 + " + Cnc q nc

(3.35)

Coeficienii matriciali ai polinoamelor (3.35) sunt necunoscui (mai puin I ny , care este
matricea unitate de ordin ny ) i trebuie determinai cu ajutorul datelor msurate. La fel i
indicii structurali na , nb i nc . Cele dou funcii de sistem asociate modelului (3.34) sunt
urmtoarele:

( )

( ) ( )

( )

( ) ( )

H q 1 = A 1 q 1 B q 1 (util) & G q 1 = A 1 q 1 C q 1 (rezidual).

(3.36)

Spre deosebire de modelul grosier ARMA, cel rafinat, de tip ARMAX, codific i
corelaiile existente ntre senzorii din reea. Acesta este motivul principal pentru care a fost
necesar rafinarea modelului ARMA. Este drept, ns, c efectuarea inversrii matricii
polinomiale A nu beneficiaz de o procedur comod din punct de vedere numeric. De
asemenea, identificarea tuturor parametrilor celor 3 matrici ridic numeroase probleme de
implementare. De aceea, se apeleaz la o abordare simplificat legat de MMEP.
n mediul de programare MATLAB, identificarea modelelor multi-dimensionale este
supus unui principiu simplificator, care ar putea fi adoptat i n cazul modelului (3.34).
Pentru aceasta, se poate utiliza funcia armax. S presupunem c procesul de identificat
are nu canale de intrare i ny canale de ieire, fiind descris de modelul MIMO-ARMAX
general:

A ( q 1 ) y B ( q 1 ) u + C ( q 1 ) e

(3.37)

(cu u n loc de v i aceleai matrici polinomiale (3.35)). Atunci, n loc s fie determinai
coeficienii matriciali ai polinoamelor (5.9) dintr-o dat, se determin, pe rnd, polinoamele
unidimensionale ale cte unui model ARMAX de de tip MISO (mai multe intrri i o ieire):

A j ( q 1 ) y j B j , i ( q 1 ) ui + C j ( q 1 ) e j , j 1, ny .
nu

(3.38)

i =1

Cu alte cuvinte, se identific doar modelul parial al influenei pe care o au toate canalele
de intrare asupra canalului de ieire din poziia j . Dup aceea, se pot preciza direct
elementele funciilor de sistem (3.36), sub forma:
nu

yj
i =1

B j , i ( q 1 )

A j ( q 1 )


( )

H j , i q 1

ui +

C j ( q 1 )

A j ( q 1 )


e j , j 1, ny .

( )

G j q 1

n detaliu, cele dou funcii de sistem multi-dimensionale au exprimarea urmtoare:


48

(3.39)

RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>

B1,1 ( q 1 )

1
A1 ( q )

1
B j ,1 ( q )
1
H (q ) =
A q 1
j( )

Bny ,1 ( q 1 )

1
A ny ( q )

B1,2 ( q 1 )

B1,nu ( q 1 )
"

A1 ( q 1 )

#
#

1
B j ,nu ( q )
"
A j ( q 1 )

#
#

Bny ,nu ( q 1 )

"
A ny ( q 1 )

A1 ( q 1 )
#

B j ,2 ( q 1 )
A j ( q 1 )
#
Bny ,2 ( q 1 )
A ny ( q 1 )

C1 ( q 1 )

1
A1 ( q )

1
C j (q )
& G ( q 1 ) = diag
. (3.40)
A j ( q 1 )

Cny ( q 1 )

1
A ny ( q )

n acest mod, este evitat inversarea matricii polinomiale A . Preul pltit l constituie
scderea preciziei modelului multi-dimensional, prin faptul c nu sunt surprinse toate
tipurile de corelaii dintre intrri, ieiri i zgomote, ci doar a corelaiilor dintre setul de intrri
i fiecare ieire n parte. n cazul seriilor de timp distribuite, se poate presupune ns c
zgomotul de msur al unei anumite ieiri nu influeneaz alt ieire, iar interferenele
dintre senzori (care ar cauza corelaii i ntre ieirile msurate) sunt neglijabile n contextul
tehnologiilor actuale de fabricaie. De notat c, alegnd ca vector de intrare chiar vectorul
zgomotelor colorate v (deci nu = ny ), este permis identificarea influenei pe care o au
perturbaiile tuturor canalelor de msur asupra unui anumit canal.
Aadar, pentru a determina modelul ARMAX asociat procesului ecologic, plecnd de la
colecia de modele ARMA independente, se va adopta principiul de mai sus, care ofer
elementele celor dou funcii de sistem (3.36) dup ecuaiile (3.39)-(3.40). Evident, pentru
o mai mare eficien, MMEP poate fi implementat n variant adaptiv. Cu alte cuvinte, la
fiecare pas de predicie, parametrii cureni ai modelelor ARMA grosier i ARMAX rafinat se
pot reactualiza n funcie de noile date msurate, n loc s fie determinai complet folosind
ntregul set de date achiziionate pn atunci. Aceast operaie este ns relativ
complicat, din cauza formei destul de laborioase a modelului de identificare.
S presupunem c indicii structurali ai modelului MIMO-ARMAX (3.34) au fost fixai i
c parametrii si au fost estimai. Pentru a efectua predicia datelor, este clar c fiecare
canal de msur poate fi tratat separat. Modelul generic de predicie este, n acest caz, de
tip MISO-ARMAX. Fie j 1, ny indicele curent al canalelor de msur. Din (3.38), rezult
c ecuaia modelului de predicie asociat canalului j este urmtoarea:

( q 1 ) y B
A
j , i ( q 1 ) vi + C j ( q 1 ) e j (cu B j , j ( q 1 ) 0 ).
j
j
nu

(3.41)

i =1

n consecin, predictorul optimal ideal are exprimarea de mai jos:

( q 1 ) y + B
( q 1 ) v + C ( q 1 ) e .
y j 1 A
j
j,i
i
j
j
j
i =1
nu

(3.42)

Ceea ce mpiedic utilizarea direct a ecuaiei (3.42) pentru a produce valorile predictate
este componenta de medie alunectoare (mai precis, zgomotul alb necunoscut e j ). De
aceea, predictorul va trebui s opereze cu estimaii ale acesteia. Pentru a le evalua, se
apeleaz la un model MISO-ARX aproximant, descris de ecuaia:

A nj ( q 1 ) y j Bnj, i ( q 1 ) vi + e j (cu Bnj, j ( q 1 ) 0 ),


nu

i =1

unde gradele polinoamelor A nj i Bnj, i sunt:


49

(3.43)

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice


ny

n = min 3 ( na j + nc j ) , N y , respectiv n = min 3 na j + nc j + nb j , i , N y .


i =1, i j

(3.44)

(Pentru simplitate, a fost omis indicele j din notaia lor.) Plecnd de la datele msurate ale
canalului j , dup staionarizarea acestora, se poate identifica modelul MISO-ARX (3.43).
(Mediile datelor de pe fiecare canal de msur vor fi reinute, deoarece ele trebuie
adugate valorilor predictate.) Ecuaia modelului MISO-ARX poate fi acum exprimat sub
forma de tip eroare de ieire:

e j A nj ( q 1 ) y j Bnj, i ( q 1 ) vi .
nu

(3.45)

i =1

Aceasta ofer chiar valorile estimate ale zgomotului alb de pe canalul j .


Abia acum se poate efectua predicia (n doi pai), prin tandemul ecuaiilor (3.42) i
(3.45). Pentru sincronizarea calculelor, este foarte important s se aplice urmtoarea
strategie: la fiecare pas de predicie ( k ) se predicteaz toate canalele (adic variind j
ntre 1 i ny ). Astfel, predicia avanseaz simultan pe toate canalele. Aceast strategie
asigur posibilitatea de a predicta intrrile

{v }
j

j1,ny

n paralel cu ieirile, fr a utiliza

modelele ARMA grosiere.


a. Pe orizontul de msur ( k 1, N y ):
y j k | N y = a j ,1 y j [ k 1] a j ,2 y j [ k 2] " a j ,na y j k na j +

j

ny

+ b j , i ,1vi [ k 1] + " + b j , i ,nb j , i vi k nb j , i +

i =1, i j

+ c j ,1e j [ k 1] + " + c j ,nc j e j k nc j ;

e j [ k ] = y j [ k ] + j ,1 y j [ k 1] + " + j ,n y j [ k n]

ny

j , i ,1vi [ k 1] + " + j , i ,n vi [ k n] , j 1, ny .

i =1, i j

(3.46)

b. Pe orizontul de predicie ( k N y + 1, N y + K ):
b1. pentru k N y + 1, N y + min {K , na j } :

y j k | N y = a j ,1 y j k 1 | N y " a j ,k N y 1 y j N y + 1 | N y

a j ,k N y y j N y " a j ,na j y j k na j +

ny

b j , i ,1vi [ k 1] + " + b j , i ,nb vi k nb j , i +


+

j ,i

i =1, i j

+ c j ,1e j [ k 1] + " + c j ,nc j e j k nc j ;

(3.47)

b2. pentru k N y + na j + 1, N y + K (numai dac na < K ):


y j k | N y = a j ,1 y j k 1 | N y " a j ,na y j k na j | N y +

j

ny

+ b j , i ,1vi [ k 1] + " + b j , i ,nb j , i vi k nb j , i +

i =1, i j

+ c j ,1e j [ k 1] + " + c j ,nc j e j k nc j ;

50

(3.48)

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

b3. predicia zgomotelor (presupunnd n mod natural c n > K ):


e j [ k ] = v j [ k ] = y j k | N y + j ,1 y j k 1 | N y + " + j ,k N y 1 y j N y + 1 | N y +

+ j ,k N y y j N y + " + j ,n y j [ k n]

ny

j , i ,1vi [ k 1] + " + j , i ,n vi [ k n] , j 1, ny .

i
=
1,
i

(3.49)

n afara valorilor predictate, se pot evalua i dispersiile erorilor de predicie, ca n cazul


modelelor ARMA. Prima operaie const n estimarea dispersiei erorii de predicie pe
orizontul de msur:
1
2j =
Ny

( y [k ] y
Ny

k =1

k | N y

, j 1, ny .

(3.50)

Apoi, se evalueaz coeficienii polinomului trunchiat obinut prin mprirea infinit dintre
:
polinoamele C j i A
j

( z 1 )
def C
j
1
2
1 K

1 + j ,1 q + j ,2 q + " + j ,K 1 q =
, j 1, ny .
1

A j ( z ) K 1

(3.51)

n fine, dispersiile erorilor de predicie se evalueaz dup cum urmeaz:

2j ,k = 2j (1 + 2j ,1 + " + 2j ,k 1 ) = 2j ,k 1 + 2j 2j ,k 1 , k 1, K , j 1, ny .
def

(3.52)

Acum, exist toate condiiile pentru a evalua criteriul PQ (3.8), dup ce se msoar
datele pe orizontul de predicie. El trebuie ns adaptat contextului modelelor multidimensionale prin extinderea la un criteriu multi-dimensional. Mai precis, criteriul PQ
asociat canalului j 1, ny va ocupa aceeai poziie ntr-un vector:
def

PQ = PQ1 " PQ ny ,

(3.53)

unde fiecare PQ j este definit ca n (3.8). Evident, modelul optimal este cel care
maximizeaz norma vectorului (3.53).
Identificarea modelului MIMO-ARMAX presupune cunoaterea indicilor structurali
i {nc j }
. Este evident c, pentru selecia lor, trebuie utilizat
{na j } , {nb j ,i }
j1,ny

j , i1,ny , i j

j1,ny

acelai criteriu PQ. Sunt posibile mai multe strategii:


1. Fixarea indicilor {na j }

j1,ny

i {nc j }

j1,ny

la valorile optimale din cazul modelelor ARMA

grosiere i varierea doar a indicilor {nb j , i }

j , i1,ny , i j

ntr-o gam de valori.

2. Varierea tuturor indicilor n anumite game de valori.

Varierea indicilor {nb j ,i }

j , i1,ny , i j

(care consum cea mai mare parte a timpului de cutare)

se poate realiza, la rndul ei, n diferite moduri. Ca mai mare durat de cutare este
cauzat de varierea independent a indicilor. n acest caz, pentru fiecare na j i nc j
( j 1, ny ) numrul de modele care trebuie testat este egal cu ( NB Nb + 1)( ny 1) , dac
2

indicii {nb j ,i }

j , i1,ny , i j

dac indicii {nb j ,i }

variaz n gama Nb, NB . Acest numr se reduce la ( NB Nb + 1)ny 1 ,

i1,ny , i j

de pe linia j 1, ny a matricii H ( q 1 ) (definiia (3.40)) sunt egali. n

fine, numrul de modele care trebuie testate se reduce i mai mult, la valoarea
51

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

( NB Nb + 1) , dac toi indicii {nb j , i }

j , i1,ny , i j

sunt egali. ns, pe msur ce scade efortul de

cutare, se reduce i precizia predictorului.


Este evident c prima strategie conduce la un efort de calcul mai mic fa de cea de-a
doua, deoarece spaiul de cutare este redus de ( NA Na + 1)ny ( NC Nc + 1)ny ori. Preul
pltit l constituie degradarea performanelor predictorului multi-dimensional. De exemplu,
pentru o reea de 6 senzori, dac se aleg limitele de variaie Na = Nc = Nb = 1 i
NA = NC = NB = 100 , atunci numrul de modele care trebuie testate prin varierea
independent a tuturor indicilor este de ordinul 1074 . Variind numai indicii {nb j , i }
(tot
j , i1,ny , i j

independent unul fa de altul), numrul de modele de test este de ordinul 10 (nc foarte
mare). O reducere semnificativ a efortului de cutare s-ar obine observnd c, de fapt,
indicii structurali ai unui canal pot fi alei independent de cei ai altui canal. Cu alte cuvinte,
cutarea indicilor structurali optimi se poate efectua n paralel, pe toate canalele odate. n
acest caz, varierea independent a acestora pe oricare dintre canale ar conduce la un
spaiu de cutare cu ( NA Na + 1)( NB Nb + 1)ny 1 ( NC Nc + 1) modele. n cazul exemplului
anterior, acest numr este de ordinul 1014 .
Este evident c o cutare exhaustiv a indicilor optimi nu se poate desfura ntr-o
perioad rezonabil de timp, chiar i n cazul unei implementri pe o main de calcul
paralel. O tehnic de cutare care ar putea reduce efortul de calcul este de tip
evoluionar. De exemplu, s-ar putea utiliza fie un Algoritm Genetic [MiM05], fie, mai simplu,
strategia PSO. Chiar dac soluia oferit este sub-optimal, n acest caz, utilizatorul poate
cel puin controla compromisul dintre durata de cutare i calitatea soluiei optimale.
Spaiul de cutare al fiecrui canal j 1, ny , notat cu S ARMAX , este un hiper-paralelipiped
50

din laticea multi-dimensional N 2 ny+1 , deoarece indicii structurali sunt n numr de 2ny + 1 .
Primii ny + 1 indici pot fi considerai principali: unul este na j , altul este nc j i restul de

ny 1 indici sunt ai ansamblului {nb j , i }

ARX aproximant: n j i {n j , i }

i1,ny , i j

i1,ny , i j

. Ultimii ny indici provin de la modelul MISO-

n acest spaiu, se definete urmtorul vector generic de poziie a unei particule:


def

x j = na j
n j

nb j ,1 " nb j , j 1
n j ,1 " n j , j 1

nb j , j +1 " nb j ,ny

nc j
T

n j , j +1 " n j ,ny S ARMAX .

(3.54)

Reamintim c vectorul trebuie s aib numai componente cu valori ntregi, nu fracionare.


De aceea, eventualele valori fracionare rezultate din calcul trebuie aproximate la cel mai
apropiat ntreg.
Populaia curent, elita i anti-elita, fiecare de dimensiune P , sunt reprezentate n acest
caz ca blocuri tridimensionale cu 2ny + 1 linii, P coloane i ny straturi, ca n Figura 3.3.
Fiecare tietur vertical de-a lungul grosimii blocului tridimensional reprezint o
combinaie de indici structurali care permit identificarea modelului de predicie de tip
MIMO-ARMAX.
Exist 3 variante de implementare ale Algoritmului PARMAX-PSO. Vom detalia n
continuare numai varianta cea mai eficient, Algoritmul 3.3. Aceasta se bazeaz pe idea
fundamental c, dei sistemul de senzori ar trebui considerat ca un tot unitar,
complexitatea algoritmilor de identificare a modelului MIMIO-ARMA asociat este
inacceptabil de mare. n consecin, va fi construit cte un model MISO-ARMAX pentru
fiecare canal, n paralel. Modelele sunt aparent independente, ns, n realitate, exist
corelaii subtile ntre ele.
52

RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>

ny

Model ARMAX

Model ARX
aproximant

P
Figura 3.3. Reprezentarea tridimensional a populaiilor de particule
n cadrul Algoritmului PARMAX-PSO.
Complexitatea acestui algoritm este superioar celei a algoritmului precedent de
predicie (PARMA-PSO). Cu toate acestea, paii strategiei PSO sunt similari, dei ei au
fost detaliai doar n acest context. Toate observaiile legate de paralelismul Algoritmului
ARMA-PSO rmn valabile i pentru Algoritmul PARMAX-PSO. Este evident ns c
durata de rulare crete. n mod normal, trebuie iniiate n paralel tot attea rulri cte canale
de msur exist, cu focalizarea prediciei pe cte un canal separat. n consecin,
strategia de simulare s-a adaptat structurii sistemului fix de calcul:
maina paralel gzduiete o versiune a programului n care predicia se focalizeaz
pe toate canalele simultan;
fiecare calculator al minireelei gzduiete o versiune a programului care focalizeaz
predicia pe un anumit canal.
Simulrile au artat ns c versiunea de predicie global nu este neaprat superioar
versiunilor cu predicie direcionat pe un anumit canal.
Implementarea de facto a Algoritmului 3.3 incumb utilizarea multor artificii informatice.
Ne vom referi numai la cteva dintre ele, cele mai importante. O prim modificare fa de
fluxul logic o constituie faptul c particula generic a populaiei (definit n (3.54)) a fost
extins cu particula generic din cazul Algoritmului PARMA-PSO. Mai precis, forma
actual a particulei de canal este urmtoarea:
def

x j = p j na ARMA
nc ARMA
n ARMA
j
j
j
na j nb j ,1 " nb j , j 1 nb j , j +1 " nb j ,ny
n j

n j ,1 " n j , j 1

nc j

(3.55)

e
n j , j +1 " n j ,ny S ARMAX
,

e
unde spaiul de cutare extins S ARMAX
este un hiper-paralelipiped din laticea multi-

dimensional N{2 ny +4,2 ny +5} . Prima component poate lipsi sau nu, n funcie de opiunea
utilizatotului privind determinarea componentei deterministe a modelului MIMO-ARMA (cu
ajutorul cruia se estimeaz intrrile modelului MIMO-ARMAX). n consecin, blocul
tridimensional al populaiei se extinde pe vertical ca n Figura 3.4.
Motivul pentru care s-a extins configuraia particulelor este unul foarte simplu: n
aceast manier este iniiat o singur procedur euristic de tip PSO pentru ntregul
ansamblu de indici structurali ai tandemului modelelor de identificare ARMA-ARMAX i nu
cte o procedur separat pentru fiecare dintre ele. Se obine astfel o important economie
de timp de rulare.
53

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

Algoritmul 3.3. PARMAX-PSO un algoritm de predicie a proceselor stocastice, cu


ajutorul modelelor MISO-ARMAX, folosind tehnica PSO.
Date de intrare:
) un conglomerat de serii de timp distribuite { y j }

j1,ny

, de durat finit, N y ;

) lungimea orizontului de predicie K (unde K << N y ); de regul, K 7 ;


) parametri de configurare:
valorile maxime ale indicilor structurali din modelele grosiere ARMA
NA0 , NC0 N (implicit: NA0 = NC0 = 30 , dar NA0 = 100 dac nc = 0 , iar

NC0 = 100 dac na = 0 );


valorile maxime ale indicilor structurali din modelele MIMO-ARMAX
NA, NB, NC N (implicit: NA = NB = NC = 30 , dar NA = 100 dac nb j = nc = 0 ,

j 1, ny ,

NB = 100

dac

na = nc = 0

NC = 100

dac

nb j = na = 0 ,

j 1, ny );
numrul P de particule din populaia algoritmului PSO (implicit: P = 100 );
numrul maxim de generaii ale populaiei, M (implicit: M = 100 );
numrul minim de supravieuire pentru stoparea algoritmului PSO, S
(implicit: S = max {5, 0.05 M } );
nivelul de alarmare pentru aplicarea ncrucirii ntre particule, (0,1]
(implicit, = 0.15 );
durata tranziiei ntre generaii, T > 0 (implicit, T = 1 ).
1. Prelucrri primare:
se evalueaz mediile
yj
i deviaiile standard y j

{ }

{ }

j1,ny

j1,ny

ale datelor

distribuite;
se staionarizeaz datele: y j y j y j .
2. Se estimeaz modelul ARMA grosier ale fiecrui canal de msur, folosind criteriul
PQ pentru alegerea indicilor structurali optimali. Se obin astfel modelele:
( q 1 ) y C ( q 1 ) e , j 1, ny
A
j
j
j
j
i valorile zgomotelor albe, {e j }

j1,ny

, estimate grosier (cu modelele AR aproximante).

3. Se rafineaz estimrile zgomotelor albe, cu ajutorul modelelor ARMA identificate.


Notnd cu {v j }
noile estimaii, acestea se determin ca n (3.33).
j1,ny

4. Algoritmul PSO pentru determinarea indicilor structurali optimali ai modelelor MISOARMAX care constituie modelul MIMO-ARMAX. Paii care urmeaz se parcurg
(secvenial sau n paralel) pentru fiecare canal de msur j 1, ny .
4.1. Se stabilete forma generic a particulei de canal, ca n definiia (3.54).
Particula generic global este o matrice cu ny coloane.
4.2. Se stabilete m = 0 (indicele dinamic) i se formeaz generaia iniial a
populaiei dinamice, P0 = {x 0p }
. Populaia are P particule matriciale ca n
p1, P

Figura 3.3, (aproximativ) uniform distribuite n spaiul de cutare S ARMAX .


54

RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>

Algoritmul 3.3. PARMAX-PSO un algoritm de predicie a proceselor... (continuare).


Populaia dinamic va iniializa deopotriv populaia elitist E0 i pe cea antielitist A 0 . Particulele primesc vitezele iniiale nule: v 0p = 0 , p 1, P .
4.3. Se evalueaz i se memoreaz PQ pentru toate particulele (prin identificarea
i predicia cu modelul MISO-ARMAX). Desigur, la acest pas, pentru fiecare
particul, poziiile extreme curente coincid cu poziia sa iniial: x 0p ,0 = x 0p ,1 = x 0p .
4.4. Generaia urmtoare a populaiei dinamice se genereaz amestecnd pseudoaleator coordonatele de poziie ale fiecrei particule din populaia curent. Se
obine astfel populaia P1 = {x1p }
, cu viteze tot nule ( v1p = 0 , p 1, P ),
p1, P

pentru care se evalueaz valorile PQ. Fiecare particul a parcurs astfel o


traiectorie format din dou poziii distincte. n consecin, se pot reactualiza
elita E1 i anti-elita A1 , care vor fi acum diferite. Particula sub-optimal
curent (care a produs valoarea maxim a PQ) este x1P ,0 = x1E ,0 . Indicele ei
iniial de supravieuire n populaia elitist este stabilit la valoarea nul ( s = 0 ).
4.5. Pentru fiecare particul, se evalueaz variana cognitiv absolut maxim
1p ,c ,max , folosind cele dou generaii P0 i P1 i definiia (3.18). (Evident,

1p ,c ,min = 0 , p 1, P ; ele vor rmne nule pe tot parcursul algoritmului.)


4.6. Tot cu ajutorul generaiilor P0 i P1 , se evalueaz i varianele sociale absolute
minim i maxim ( 1s ,min , 1s ,max ), pe baza definiiei (3.21). (De aceast dat,

1s ,min > 0 , indiferent n ce generaie a fost ea atins.)


4.7. Se incrementeaz indicele dinamic: m = 1 .
4.8. Ct timp m M sau indicele s de supravieuire a particulei sub-optimale x Em,0
este cel mult egal cu S :
4.8.1. Se evalueaz varianele populaiilor Pm i Em , cu ajutorul definiiilor
(3.23) i se calculeaz media produsului lor de la iniializare pn la
momentul anterior, notat prin mP 1Em1 . Pentru m 2 , aceast medie
se poate doar reactualiza:

m 1
P

m 1
E

( m 1) mP 2 Em2 + mP 1Em1
m

avnd n vedere c 0P 0E = 0P 0E .
4.8.2. Dac m M / 3 , se testeaz abaterea produsului mP Em fa de media

Pm1Em1 :
a. Dac mP Em > (1 + ) mP 1Em1 , atunci diversitatea este prea mare i
populaia dinamic Pm trebuie ncruciat cu populaia elit Em
(conform definiiilor (3.24) i (3.25)).
b. Dac mP Em < (1 ) mP 1Em1 , atunci riscul de blocare ntr-un optim
local este prea mare i populaia dinamic Pm trebuie ncruciat cu
populaia anti-elit A m (tot conform definiiilor (3.24) i (3.25)).
55

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

Algoritmul 3.3. PARMAX-PSO un algoritm de predicie a proceselor ... (continuare).


c. Rezultatul oricreia dintre ncrucirile de la paii anteriori l constituie
o populaie cu 2 P particule. Din aceasta, vor fi alese primele P 1 n
ordinea descresctoare a criteriului PQ. Ele vor nlocui particulele mai
slabe dect cea sub-optimal din populaia dinamic Pm . (Cu alte
cuvinte, x Pm ,0 este conservat n Pm , chiar dac i el particip la
ncruciri.) Ca urmare, vor fi reactualizate i populaiile elit Em i
anti-elit A m .
4.8.3. Pentru p 1, P (secvenial sau n paralel), se trece la generaia Pm+1 :
a. Se evalueaz factorul de mobilitate mp prin relaia (3.15).
b. Se evalueaz variana cognitiv prin relaiile (3.20) i (3.17) i se
def

genereaz numrul 1/ mp ,+c1 = mp ,+c1 ( 0,1/ T ] (numit ad hoc frecven


cognitiv de tranziie) n manier pseudo-aleatoare.
c. Se evalueaz variana social prin relaiile (3.21) i (3.22) i se
def

genereaz numrul 1/ ms +1 = ms +1 ( 0,1/ T ] (numit ad hoc frecven


social de tranziie) n manier pseudo-aleatoare.
d. Se evalueaz viteza instantanee v mp+1 a particulei n poziia
urmtoare, cu ajutorul relaiei (3.13).
e. Se corecteaz poziia particulei cu ajutorul relaiilor (3.12) i (3.11).
f. Se limiteaz coordonatele poziiei la limitele spaiului de lucru, dac
este cazul.
4.8.4. Se reactualizeaz populaia elit Em Em+1 , reinnd cele mai bune
poziii atinse de particule n traiectoriile lor de la iniializare pn n
prezent. Se detecteaz noua particul sub-optimal x Em,0+1 = x Pm+,01 . Dac

x Em,0+1 = x Em,0 , atunci se incrementeaz indicele de supravieuire: s s + 1 .


Altfel

(adic

dac

x Em,0+1 x Em,0 ),

se

reiniializeaz

indicele

de

supravieuire: s = 0 .
4.8.5. Se reactualizeaz populaia anti-elit A m A m+1 , reinnd cele mai
slabe poziii atinse de particule n traiectoriile lor de la iniializare pn n
prezent.
4.8.6. Se incrementeaz indicele dinamic: m m + 1 .
4.9. Particula (sub-)optimal a populaiei elit ofer indicii structurali ai modelului
MISO-ARMAX.
5. Pentru indicii structurali optimali determinai la pasul anterior, se identific cele ny
modele MISO-ARMAX, care alctuiesc mpreun modelul de predicie MIMOARMAX. La acest pas, intervin toate datele msurate, pe toate canalele.
6. Se evalueaz coeficienii ctului trunchiat (3.51), pentru fiecare canal de msur.
7. Predicie multi-pas, multi-canal.
Pentru k 1, N y + K :
Pentru j 1, ny (secvenial sau n paralel):
7.1. Pe orizontul de msur, adic pentru k 1, N y , se implementeaz relaiile
recursive (3.46).
56

RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>

Algoritmul 3.3. PARMAX-PSO un algoritm de predicie a proceselor ... (final).


7.2. Se evalueaz dispersia erorii de predicie pe orizontul de msur, cu
ajutorul definiiei (3.50).
7.3. Pe orizontul de predicie, pentru k N y + 1, N y + K :
7.3.1. Se efectueaz o predicie pe termen scurt, adic pentru

k N y + 1, N y + min {K , na j } , prin implementarea relaiei recursive

(3.47).
7.3.2. Se efectueaz o predicie pe termen lung (dac este cazul, adic
dac na < K ), pentru k N y + na j + 1, N y + K , prin implementarea
relaiei recursive (3.48).
7.3.3. Se reactualizeaz valorile predictate ale zgomotului de canal, prin
implementarea relaiei recursive (3.49).
7.3.4. Se estimeaz dispersiile erorilor de predicie (pe orizontul de
predicie) folosind relaia recursiv (3.52).
7.4. Se adaug media de canal y j (evaluat la pasul 1) tuturor valorilor
predictate.
Date de ieire:

mulimea valorilor predictate: y j N y + k | N y


dispersiile erorii de predicie {2j ,k }

k1, K , j1,ny

k1, K , j1,ny

ny

Tendin
Model ARMA
Model AR
aproximant
Model ARMAX
Model ARX
aproximant

P
Figura 3.4. Reprezentarea tridimensional a populaiilor extinse de particule
n cadrul Algoritmului PARMAX-PSO.
57

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

Iniializarea procedurii PSO este uor mai complicat dect n cazul Algoritmului
PARMA-PSO, avnd n vedere numrul mai mare de dimensiuni ale spaiului de cutare.
De aceea, s-a adoptat urmtoarea strategie:
se genereaz toate numerele reprezentate n baza P , care au (2ny + 4 + d ) cifre,
unde d {0,1} codific opiunea utilizatorului privind evaluarea componentei
deterministe;
se aleg doar P dintre acestea, aproximativ echidistante, exceptnd extremele
(eventual, dac P este prea mic n raport cu numrul de cifre, el se mrete
corespunztor); fiecare dintre numerele selectate are aadar (2ny + 4 + d ) cifre cte
una pentru fiecare dintre indicii structurali ai particulei generice de canal (definiia
(3.55)); o astfel de cifr variaz ntre 0 i P 1 ;
fie N 0 = ni0 i1,2 ny +4+ d un numr din mulimea celor selectate anterior, n care
ni0 0, P 1

este chiar cifra de pe poziia

i 1,2ny + 4 + d ; atunci particula

corespunztoare este de forma x = x i1,2 ny +4 + d , unde:


0

0
i

def
n0

xi0 = ximin + i ( ximax ximin ) + 0.5 N , i 1,2ny + 4 + d ,


P 1

(3.56)

unde ximin , ximax N este plaja de variaie a indicelui structural corespunztor.


Strategia euristic PSO se bazeaz pe trei rutine fundamentale: PSO_ARMAX (aplicarea
strategiei
PSO),
PARMAX_model
(identificarea
unui
model
PARMAX)
i
PSO_fitness_PQ (evaluarea calitii prediciei). Anexa C prezint o list a programelor i
rutinelor utilizate pentru implementarea Algoritmului PARMAX-PSO. Ele prezint aceleai
carateristici informale ca i cele din pachetul PARMA-PSO. De altfel, multe dintre rutinele
auxiliare fiind aceleai, nu sunt enumerate dect n lista din Anexa B.
Exist cteva publicaii ale echipei de cercetare care fac referire la predictorul PARMAXPSO. Cea mai important este [StCu09b], anexat n finalul acestui raport de cercetare.
3.5. Algoritmul KARMA-PSO
Implementarea Algoritmului de predicie Kalman-Bucy-Markov (cu reprezentare pe
stare), descris pe larg n [SPDC08], a condus la o serie de mbuntiri, pe care le vom
detalia n cadrul acestei seciuni. Va fi de asemenea ilustrat maniera n care intervine
strategia euristic PSO, fapt care a condus la paralelizarea calculelor i la un nou algoritm
de predicie: KARMA-PSO. Pentru a nu fragmenta discuia, va fi reluat pe scurt
descrierea contextului matematic n care s-a dezvoltat acest algoritm.
3.5.1. Reprezentarea discret pe stare a unei reele de senzori
Reeaua de senzori cu comunicaie radio este vzut ca un sistem de msur direct a
strilor unui proces stocastic. Cu alte cuvinte, ieirea acestuia este direct conectat la
stri. Aceast reprezentare are urmtoarea exprimare matematic:
x[ n + 1] = A n x[ n] + B nu[ n] + Fn w[ n + 1]
, nN ,
(3.57)
y[ n] = C x[ n] + D v[ n]
n
n

unde:

A n R nxnx , Bn R nxnu , Cn R nynx , D n R nynv i Fn R nxnw sunt matrici care includ


toi parametrii variabili (dar deja estimai) ai procesului stocastic;
x R nx este vectorul necunoscut al strilor procesului;
u R nu este vectorul semnalelor de intrare (msurabile sau nu);
y R ny este vectorul semnalelor de ieire msurabile;
58

RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>

w R nw este zgomotul perturbator intern (endogen), necunoscut, al procesului;


v R nv este zgomotul perturbator extern (exogen), necunoscut, care afecteaz
msurtorile ieirilor procesului.
n cazul seriilor de timp, intrrile din ecuaiile (3.57) sunt cel puin nemsurabile (dac
nu necunoscute). Este aproape imposibil de msurat semnalul (sau semnalele) care
guverneaz dinamica unui anumit parametru monitorizat. De aceea, intrrile pot fi cel mult
estimate, ca i strile. n acest caz, zgomotul endogen poate juca rol de intrare parazit,
care nsoete intrarea util. Ambele sunt ns necunoscute i trebuie estimate. n schimb,
zgomotul exogen este ntotdeauna considerat o perturbaie care corupe datele msurate i
apare n mod inevitabil asociat cu operaia de msurare.
Reprezentarea pe stare (3.57) nu este util dect n condiiile n care se precizeaz
anumite caracteristici ale celor dou tipuri de zgomote. De aceea, se consider verificate
urmtoarele ipoteze, larg acceptate n aplicaii:
H1 Toate zgomotele au media nul i sunt de tip Gaussian [SCS05].
H2 Cele dou tipuri de zgomote sunt necorelate ntre ele.
H3 Zgomotul endogen este neauto-corelat, dar componentele sale pot fi corelate
ntre ele la acelai moment de timp.
H4 Componentele zgomotului exogen sunt albe i necorelate ntre ele.
Ultimele dou ipoteze se exprim matematic astfel:
w [ n] = E {w[ n]wT [ n]} R nwnw , respectiv v [ n] = E {v[ n]vT [ n]} R nvnv , n N , (3.58)

unde E este operatorul de mediere statistic. Cele dou matrici definite n (3.57) sunt
diferite nu doar ca dimensiune, ci i ca structur. Prima ( w [ n] ) este o matrice strict
pozitiv definit (nu neaprat diagonal), n timp ce a doua ( v [ n] ) este o matrice
diagonal, cu diagonala strict pozitiv. Evident, ipoteza H4 are accente restrictive. O
variant relaxat a acesteia ar fi chiar ipoteza H3, adaptat la zgomotul exogen. n acest
caz, matricea v [ n] nu mai este neaprat diagonal, dar continu s fie strict pozitiv
definit. Diagonalitatea acestei matrici asigur doar o vitez mai bun de convergen a
algoritmului de rezolvare a ecuaiei (3.57) Algoritmul Kalman-Bucy, de fapt. Renunarea
la diagonalitate, va conduce doar la o cretere a timpului necesar pentru rezolvarea
ecuaiei (3.57). Nu este afectat n mod sesizabil precizia rezultatului final, astfel nct se
poate considera, fr a face un compromis prea mare, c zgomotul exogen verific, la
rndul lui, cel puin ipoteza H3. De notat c ambele matrici (3.58) sunt necunoscute i pot fi
cel mult estimate.
Revenind la modelul (3.57), este clar c vectorul ieirilor y are un numr de
componente ny egal cu numrul senzorilor. Elementele sale sunt de fapt canale de
msur. Vectorul strilor are rolul de a codifica toate corelaiile existente ntre senzori. Nu
este obligatoriu ca numrul strilor procesului stocastic ( nx ) s fie egal cu numrul
senzorilor. Sistemul de ecuaii cu diferene (3.57) este doar de ordin I, n timp ce legile de
variaie ale parametrilor de proces monitorizai pot fi exprimate prin ecuaii difereniale de
ordine superioare (a se vedea [NDS07]). Aceasta mrete numrul de stri ale procesului
(este adevrat, unele dintre ele fiind doar virtuale), avnd n vedere binecunoscuta manier
de a obine un sistem diferenial de ordin I dintr-unul de ordin superior. n consecin, este
de ateptat ca nx ny . n schimb, exist tot attea surse de zgomot exogen cte canale de
msur au fost instalate (dimensiunea vectorului D n v este egal cu cea a vectorului y ).
Fiecare senzor cu zgomotul su exogen. Zgomotul endogen Fn w se pliaz ns pe cel al
strilor, avnd aceeai dimensiune ( nx ). n ceea ce privete intrrile, n general, ele pot fi
n numr arbitrar, necorelat cu nx i ny . n particular, n cazul seriilor de timp distribuite,
59

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

dimensiunea intrrilor este determinat de numrul de senzori i de anumii indici


structurali ai modelelor de identificare auto-regresive asociate reprezentrii pe stare.
Pentru a ajunge la algoritmii de predicie bazai pe moldelul (3.57), este necesar s fie
rezolvate 2 probleme: proiectarea unui mecanism de adaptare parametric i rezolvarea
numeric a ecuaiilor cu diferene. Le vom aborda pe rnd, n continuare.
3.5.2. Mecanismul de adaptare parametric a unui model de stare
n raportul de cercetare precedent, [SPDC08], a fost propus o tehnic de adaptare
parametric a matricilor A n R nxnx , Bn R nxnu , Cn R nynx , D n R nynv i Fn R nxnw din
modelul (3.57) prin intermediul unui model MIMO-ARMAX (o colecie de modele MISOARMAX, de fapt). Tehnica se rezum de fapt la 2 pai: reactualizarea parametrilor
modelelor MISO-ARMAX i conversia modelelor MISO-ARMAX ntr-un model de stare.
Primul pas se bazeaz pe MMEP (eventual, n variant adaptiv) i are o desfurare
destul de laborioas. La pasul 2, Algoritmul 5.2 din [SPDC08] sumarizeaz etapele de
calcul necesare realizrii conversiei unui model MISO-ARMAX ntr-un model de stare.
Acest algoritm este de asemenea destul de incomod, n special din cauza numrului prea
mare de stri virtuale ale modelului final rezultat. De aceea, au fost investigate diferite
alternative la tehnica propus anterior, n scopul simplifcrii algoritmului de adaptare
parametric. Exist dou astfel de abordri. Prima se bazeaz pe o alt manier de
conversie a unui model MISO-ARMAX ntr-un model de stare, care scade sensibil numrul
de stri virtuale. A doua, renun la serviciile modelelor ARMAX i realizeaz
reactualizarea direct a matricilor modelului de stare cu ajutorul unei metode de
identificare a subspaiului de stare. Le vom descrie pe scurt pe fiecare n parte.
A. Conversia simplificat a unui model MISO-ARMAX ntr-un model de stare i reciproc
n [NiM00], autorul propune o tehnic de trecere la reprezentarea pe stare a unui sistem
uni-dimensional, plecnd de la o descriere intrare-ieire de tip ARMA. Ideea fundamental
este aceea a unui aa numit model cu incursiuni aleatoare (random walk model) capabil
s realizeze trecerea de la conceptul de intrare-ieire la cel de stare. Plecnd de la aceast
idee, am imaginat o metod de conversie care va fi descris n continuare.
Se consider ecuaiile (3.38) care definesc modelul MISO-ARMAX. Pentru uurin, se
poate elimina indicele j de canal de msur, astfel c ecuaia generic a unui astfel de
model de tip intrare-ieire devine (dup o schimbare convenabil de indice):

A ( q 1 ) y Bm ( q 1 ) um + C ( q 1 ) e ,
nu

(3.59)

m =1

cu notaii cunoscute. Scris detaliat, ecuaia (3.59) devine:


na

nu nbm

i =1
nc

m =1 k =1

y[ n] = ai [ n 1] y[ n i ] + bm,k [ n 1]um [ n k ] +
+ c j [ n 1]e[ n j ] + e[ n], n N .

(3.60)

j =1

n (3.60) a fost pus n eviden timpul normalizat n N , care intervine att n notaia
semnalelor, ct i n cea a parametrilor. Evident, modelul (3.59) are parametri variabili n
timp (altfel problema reactualizrii modelului de stare este inutil). Parametrii sunt ns
determinai cu un pas n urma semnalelor i de aceea ei necesit reactualizare.
Ecuaia (3.60) poate fi scris compact n form matricial:
y[ n] = Ty [ n 1] y [ n 1] + Tu [ n 1]u [ n 1] + Te [ n 1]e [ n 1] , n N ,

unde:
60

(3.61)

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice


def
T

[
n

1]
= [ y[ n 1] " y[ n na]]
y
def

[
n

1]
= u1[ n 1] " u1 [ n nb1 ] " unu [ n 1] " u1 [ n nbnu ] , n N , (3.62)
u
def

[
n

1]
= [ e[ n 1] " e[ n nc ]]
e

sunt vectori ai regresorilor (care includ date msurate i, eventual, estimate n trecut, dar
nu i n prezent), iar:
def
T

[
n
]
=
a
[
n
]
"
a
[
n
]
[
]
1
y
na

def
T

, nN ,
u [ n] = b1,1[ n] " b1,nb1 [ n ] " bnu ,1[ n] " bnu ,nbnu [ n]
def

T
e [ n] = [ c1[ n] " cnc [ n]]

(3.63)

sunt vectori ai parametrilor variabili n timp.


Prin definiie, starea sistemului discret asociat este urmtoarea:
def

x Ty Te Ty Te .

(3.64)

Se observ maniera compact de definire a acesteia, fr a introduce elemente virtuale.


Dimensiunea strii este egal cu 2 ( na + nc ) .
Reactualizarea strii se bazeaz nu doar pe ecuaia cu diferene (3.60) a modelului
MISO-ARMAX adaptiv, ci i pe observaia c zgomotele care perturb datele de ieire
sunt transmise i parametrilor estimai ai polinoamelor A i C . Astfel, vectorii parametrilor
asociai verific urmtoarele ecuaii care exprim incursiunile aleatoare (random walk) ale
acestora, cauzate de perturbaii:

y [ n] = y [ n 1] + w y [ n]
, n N .

e [ n] = e [ n 1] + w e [ n]

(3.65)

n ecuaiile (3.65), w y i w e sunt chiar incursiunile aleatoare n cauz dou zgomote


colorate vectoriale, de fapt.
Cu aceste definiii i precizri, se poate trece la exprimarea sistemului cu diferene pe
stare, care este echivalent ecuaiei (3.60), de tip intrare-ieire. Se observ urmtoarele
proprieti algebrice ale celor 4 componente din vectorul de stare. Pentru prima:
y[ n + 1]

y[ n]

=
y [ n + 1] =

y[ n na + 2]
Ty [ n] y [ n] Te [ n]e [ n] Tu [ n]u [ n] 1



y[ n]
0

+ 0 e[ n + 1] =
=
+


#
#
#



y[ n na + 2]
0


0
01na
=
U
( na 1)na

01nc

Ty [ n]

0( na 1)nc

0( na 1)na

61

Ty [ n]

Te [ n] Te [ n]
+

0( na 1)nc y [ n]

e [ n]

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

Tu [ n]
1


0
01nb

u [ n] + e[ n + 1], n N ,
+
#
#


0
01nb

(3.66)

unde: 0 nm este matricea nul cu n linii i m coloane, iar U ( na 1)na este format din
matricea unitate de ordin na 1 (notat prin I na1 ), bordat la dreapta cu o coloan nul
(valorile unitare aprnd, astfel, pe sub-diagnala principal). De asemenea,
def nu

nb = nbm .

(3.67)

m=1

Pentru o mai mare apropiere de ecuaile de stare, vectorul u [ n] poate fi renotat mai
simplu, prin u[ n] (de nlime nb ). n consecin, ecuaia (3.66) devine:
01na
Ty [ n] Te [ n]
01nc
y [ n + 1] =
x[ n] +
U ( na 1)na 0( na 1)nc 0( na 1)na 0( na 1)nc
Tu [ n]
1
+
u[ n] +
e[ n + 1], n N .
0
0
(

1)

1
na
(

1)

na
nb

(3.68)

A doua component este mai simplu de exprimat:

e[ n + 1]

e[ n]

=
e [ n + 1] =

e[ n nc + 2]
= 0 ncna

U ( nc 1)nc

0 ncna

= 0 ncna

U ( nc 1)nc

0 ncna

Ty [ n] 1
T
0
[ n]
0 ncnc e + e[ n + 1] =
[ n] #
y
e [ n] 0
1
0 ncnc x[ n] +
e[ n + 1] , n N .
0
( nc 1)1

(3.69)

n exprimarea ultimelor dou componente, se ine cont de modelul cu incursiuni


aleatoare (3.65):
a1[ n + 1]

a2 [ n + 1]

y [ n + 1] =
=

ana [ n + 1]
Ty [ n]
T
[ n]
(3.70)
= [ 0 nana 0 nanc I na 0 nanc ] e + w y [ n + 1] =
[ n]
y

e [ n]
= [ 0 nana 0 nanc I na 0 nanc ] x[ n] + w y [ n + 1], n N .
62

RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>

c1[ n + 1]

c2 [ n + 1]

e [ n + 1] =
=

cnc [ n + 1]
= [ 0 ncna

0 ncnc

0 ncna

= [ 0 ncna

0 ncnc

0 ncna

Ty [ n]
T
[ n]
I nc ] e + w e [ n + 1] =
[ n]
y
e [ n]
I nc ] x[ n] + w e [ n + 1], n N .

(3.71)

Prin concatenarea ecuaiilor (3.68)-(3.71), rezult prima ecuaie de stare a sistemului


(3.57), unde:

01na

U ( na 1)na
def
A n = 0 ncna

0 nana

0
ncna

01nc

Ty [ n]

0( na 1)nc

0( na 1)na

U ( nc 1)nc

0 ncna

0 nanc

I na

0 ncnc

0 ncna

Tu [ n]
Te [ n]

0( na 1)nb
0( na 1)nc

def
0 ncnc ; Bn = 0 ncnb ;

0 nanc
0 nanb

0
I nc
ncnb

01na
01nc
1

0( na 1)1 0( na 1)na 0( na 1)nc


e[ n]
01na
01nc
1
def
def
; w[ n] = w y [ n] .
Fn =

0( nc 1)1 0( nc 1)na 0( nc 1)nc

w e [ n]
I
0
na
nanc
na1
0 nc1
0 ncna
I nc

A doua ecuaie este imediat. Matricile asociate sunt de forma:


def

def

(3.72)

(3.73)
Cn = 1 012( na +nc )1 ; D n = 01nv .
Preul pltit pentru compacitatea reprezentrii pe stare bazat pe incursiuni aleatoare l
constituie faptul c nu se mai poate face o distincie clar ntre zgomotele endogene i
cele exogene. Faptul c zgomotul alb exogen a fost obligat s afecteze doar starea
sistemului poate constitui un dezavantaj aparent. Cu toate acestea, forma matricii de ieire
Cn din (3.73) arat c ieirea sistemului se identific practic cu prima stare a sistemului.
Rezult c, n realitate, doar zgomotele care afecteaz parametrii polinoamelor A i C
pot fi considerate endogene.
Implementarea ecuaiilor de reactualizare (3.72) i (3.73) este banal. Cu toate acestea,
simulrile au demonstrat c este de preferat ca numrul de stri ale sistemului s nu fie
fixat de la nceput n funcie de numrul de parametri intrare-ieire, pentru a obine
rezultate mai bune de predicie.
Pentru a nchide cercul, vom descrie n continuare transformarea invers, de la
reprezentarea pe stare la cea de tip intrare-ieire, chiar dac aceasta nu este absolut
necesar n algoritmul de predicie.
Dac se pleac de la modelul cu reprezentare pe stare:
x[ k + 1] = Ax[ k ] + Bu[ k ] + Fw[ k ]
, k N ,
(3.74)
y[ k ] = Cx[ k ] + Dv[ k ]

63

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

cu aceleai notaii ca n definiia (3.57), (dar cu parametri constani), atunci, pentru a


obine ecuaia MIMO-ARMAX echivalent, se poate apela la Transformata Z (TZ).
Folosind Teorema ntrzierii (proprietate a TZ), ecuaiile (3.74) devin:
( zI nx A ) X( z ) = B U( z ) + F W( z )
, z C ,
(3.75)

Y ( z ) = C X ( z ) + D V( z )
unde C C este o coroan circular centrat n origine, care joac rol de zon de
convergen pentru funciile complexe rezultate. Introducnd prima egalitate n cea de-a
doua (pentru a elimina TZ a vectorului de stare), se obine TZ a ieirii, fr intervenia
direct strilor:
1
1
Y( z ) = C ( zI nx A ) B U ( z ) + C ( zI nx A ) F W( z ) + D V( z ) , z C ,
(3.76)
Ecuaia (3.76) pune n eviden doi termeni: unul determinat de intrarea n sistem i altul
care filtreaz zgomotele endogen i exogen.
Din primul termen, se obine funcia de transfer util a sistemului modelat:
def
Y( z )
1
H( z ) =
= C ( zI nx A ) B , z C ,
(3.77)
U( z )
care, dup inversarea matricii

( zI nx A )

(prin metode de descompunere spectral

[DPJ98]), va conduce la o matrice de dimensiune ny nu exprimat printr-un raport de


polinoame (adic raional). Mai mult, rapoartele de polinoame pot fi obinute direct n
forma de exprimare cu fracii simple, polii fiind valorile proprii ale matricii A , iar numitorul
fiind chiar polinomul caracteristic al acestei matrici, notat prin A . Polinomul caracteristic
A este de fapt numitorul comun al tuturor elementelor matricii H , astfel c:

H( z ) =

1
QB,C ( z ) , z C ,
A ( z )

(3.78)

unde Q B,C R nynu ( z ) este o matrice de polinoame de grad cel mult egal cu ( nx 1) , unic
determinat de matricile B i C (dar i cu intervenia indirect a lui A , prin matricile de
trecere la forma diagonal). Trecnd la operatorii de deplasare temporal, matricea util de
sistem este urmtoarea:
 ( q 1 )
def
q 1 Q
1
B,C
1
nx 1 
1
q QB,C ( q ) =
H ( q ) = nx
,
(3.79)
1
q  A ( q )
 A ( q 1 )
unde simbolul ~ indic operatorul de trecere la polinomul reciproc, ca n definiia (3.27).
(Pe scurt, A este un polinom de grad n , atunci polinomul reciproc are exprimarea:
 x ) = x n A x n , gradul su fiind tot egal cu n .) Aa cum era de ateptat, polinoamele de
A(

( )

la numrtor nu au termen liber, indicnd faptul c intrrile sistemului sufer o ntrziere de


cel puin un pas n traseul lor ctre ieire. Din definiia (3.79), rezult c partea util a ieirii
sistemului are exprimarea:
 ( q 1 )
def
q 1 Q
B,C
1
yu H (q ) u =
u,
(3.80)
 A ( q 1 )
ceea ce permite aducerea la forma MIMO-ARX, n care matricea prii auto-regresive este
diagonal, cu diagonala ocupat de acelai polinom reciproc  A :

 A ( q 1 ) "
B1,1 ( q 1 ) " B1,nu ( q 1 )
0

#
yu
u .
%
#
#
%
#

Bnx ,1 ( q 1 ) " Bnx ,nu ( q 1 )


"  A ( q 1 )
0




( )

( )

A q 1

B q 1

64

(3.81)

RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>

Expresia (3.81) arat c abordarea legat de sistemele multi-dimensionale din cadrul


mediului de programare MATLAB nu este ntmpltoare. Plecnd de la o reprezentare pe
stare a unui sistem, se ajunge n mod natural la un sistem de ecuaii cu diferene, n care
ieirile nu mai sunt amestecate. n MATLAB este chiar surprins o situaie mai bun, din
punctul de vedere al Principiului parsimoniei [SCS05]: pe fiecare linie a matricii raionale
H se procedeaz la simplificarea zerorurilor i polilor comuni, dup care linia este adus
la acelai numitor. Numrul de parametri ai numrtorilor liniei poate astfel s scad. n
consecin, ecuaia (3.81) devine:

A1 ( q 1 ) "

B1,1 ( q 1 ) " B1,nu ( q 1 )


0

#
yu
u ,
%
#
#
%
#

" A nx ( q 1 )
Bnx ,1 ( q 1 ) " Bnx ,nu ( q 1 )
0




( )

(3.82)

( )

A q 1

B q 1

cu polinoame eventual diferite pe diagonal. Un ultim artificiu conduce la forma canonic


din exprimarea modelelor MIMO-ARX: se mparte fiecare linie a celor dou matrici cu
termenul liber al polinomului A j corespunztor i se renoteaz coeficienii.
Se pot identifica i indicii structurali ai modelului MIMO-ARX: na j (gradul polinomului

A j , care este maxim egal cu nx ) i {nb j ,i }

i1,nu

(gradele polinoamelor {B j ,i }

i1,nu

, care sunt

cel mult egale cu nx 1 ), pentru fiecare canal de msur j 1, ny .


Ultimii doi termeni din egalitatea (3.76) se refer la componenta de medie alunectoare
din modelul MIMO-ARMAX. Pentru a obine funcia de transfer corespunztoare, trebuie
efectuate cteva aranjri preliminare ale acestora. Astfel, se poate evalua matricea:
def

 ( z ) = ( zI A ) C ( zI A )1 , z C ,
C
nx
nx

(3.83)

care permite urmtoarea exprimare:


def

1
 ( z ) F W( z ) + D V ( z ) , z C .
Ye ( z ) = ( zI nx A ) C

n definiia (3.84), se poate scoate factorul comun forat

( zI nx A )

(3.84)
, la stnga ambilor

termeni:
def

 ( z )F W( z ) + ( zI A ) D V( z ) , z C .
Ye ( z ) = ( zI nx A ) C
(3.85)
nx

S presupunem c exist o precizare privind legtura dintre cele dou zgomote (endogen
i exogen) i zgomotele albe, de exemplu, de forma:
1

W( z ) = Gx ( z 1 ) E( z ) & V( z ) = G y ( z 1 ) E( z ) , z C ,

(3.86)

unde Gx R nwny ( z ) i G y R nvny ( z ) sunt funcii de transfer polinomiale cauzale (adic


produse de filtre cu rspuns finit la impuls), iar E R ny ( z ) este TZ a secvenei de zgomote
albe care afecteaz canalele de msur. Atunci, din (3.85), se poate pune n eviden
funcia de transfer perturbatoare:
def
Y ( z)
1
 ( z )FG ( z 1 ) + ( zI A ) DG ( z 1 ) =
= ( zI nx A ) C
G( z ) = e
nx
x
y

E( z )
(3.87)
1
1
1
= C ( zI nx A ) FGx ( z ) + DG y ( z ) , z C .
Dac informaia de filtrare (3.86) nu este disponibil, atunci se poate considera pur i
simplu c ambele perturbaii sunt constituite din zgomote albe. n acest caz:
65

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice


def

G( z ) =

Ye ( z )
1
 ( z )F + ( zI A ) D =
= ( zI nx A ) C
nx

E( z )

(3.88)

= C ( zI nx A ) F + D , z C .
1

Indiferent de caz, se poate observa c funcia de transfer este raional i numitorul


comun al rapoartelor de polinoame este tot polinomul caracteristic A . Cu alte cuvinte,

G( z ) =

1
QC,D,F ( z ) , z C ,
A ( z )

(3.89)

unde, de aceast dat QC,D,F R nyny ( z ) este o matrice de polinoame Laurent n care
gradul maxim n z este cel mult egal cu nx (gradul maxim n z 1 fiind nul sau orict de
mare, dar finit). Matricea este unic determinat de matricile B i C (dar i cu intervenia
indirect a lui A , prin matricile de trecere la forma diagonal). Trecnd la operatorii de
deplasare temporal, matricea util de sistem este urmtoarea:
1

def
Q
1
C,D,F ( q )
1
nx 
1
G ( q ) = nx
,
(3.90)
q QC,D,F ( q ) =
 A ( q 1 )
q  A ( q 1 )
1
1

unde Q
C,D,F ( q ) este acum un polinom veritabil n q , al crui grad poate fi inferior, egal

sau superior lui nx . (Practic, n polinomul QC,D,F ( z ) , a fost scos ca factor comun forat
monomul z nx ; cum gradul su n z este cel mult egal cu nx , polinomul rezultat nu mai are
puteri ale lui z , ci puteri ale lui z 1 .)
Din definiia (3.90), rezult c partea perturbatoare a ieirii sistemului are exprimarea:
1

def
Q
C,D,F ( q )
1
ye G (q ) e =
e,
(3.91)
 A ( q 1 )
ceea ce permite aducerea la forma MIMO-ARMA, n care matricea prii auto-regresive
este diagonal, cu diagonala ocupat de polinomul  A :

 A ( q 1 ) "
C1,1 ( q 1 ) " C1,ny ( q 1 )
0

#
ye
e.
%
#
#
%
#

"  A ( q 1 )
Cny ,1 ( q 1 ) " C ny ,ny ( q 1 )
0




( )

(3.92)

( )

A q 1

C q 1

Ca i n cazul componentei utile, sistemul are ieiri neamestecate. Pentru a aplica


din exprimarea (3.82) (i nu
Principiul parsimoniei, trebuie apelat la polinoamele {A j }
j1,ny

altele). Acestea se obin din (3.92) numai dac este posibil simplificarea acelorai poli de
pe liniile j ale matricilor A q 1 i C q 1 ca i n cazul matricilor A q 1 i B q 1 . Altfel,

( )

( )

( )

( )

ecuaia (3.92) foreaz revenirea ecuaiei (3.82) la ecuaia (3.81), pentru a conserva unicul
polinom  A , care trebuie s intervin att n partea util, ct i n partea perturbatoare a
ieirii. Dac este posibil aplicarea Principiului parsimoniei, ecuaia ieirilor perturbatoare
devine:
A1 ( q 1 ) "

C1,1 ( q 1 ) " C1,ny ( q 1 )


0

#
ye
e .
%
#
#
%
#
(3.93)

1
1
" A nx ( q 1 )
0
Cny ,1 ( q ) " Cny ,ny ( q )

( )

( )

A q 1

C q 1

66

RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>

i n acest caz se poate aplica normalizarea prin mprirea polinoamelor cu termenii lor
liberi i renotarea coeficienilor (coeficienii liberi intr practic n valorile zgomotelor). Este
clar ns c matricea C q 1 ar putea s nu mai fie diagonal, ca n cazul modelelor

( )

MISO-ARMAX. Cu toate acestea, gradele polinoamelor ei,

{nc }
j ,i

j ,i1,ny

, pot, eventual,

depi numrul de stri ale sistemului iniial.


B. Reactualizarea direct a parametrilor de stare
n mediul de programare MATLAB, exist funciile n4sid i pem care pot oferi o
reprezentare pe stare (n form canonic sau nu), plecnd direct de la date intrare-ieire
msurate. Algoritmul de conversie se bazeaz pe metode de identificare a subspaiului de
stare descrise de exemplu n [OvMo96]. Principalul dezavantaj al acestor funcii l
constituie faptul c rezultatul este condiionat de o serie de parametri de configurare dificil
de selectat. Avantajul major l constituie ns faptul c numrul de stri este un parametru
liber, care poate fi variat ntre anumite limite (destul de largi). Aceasta permite baleierea
unei clase mai largi de predictori bazai pe stare, n scopul selectrii celu mai bun (n
sencul criteriului PQ). Nu ne propunem s detaliem metoda care st la baza funciilor
MATLAB amintite, deoarece colectivul de cercetare nu are nici o contribuie original la
dezvoltarea ei. (n cazul celorlalte metode prezentare pn acum, chiar dac ele sunt
prezente n literatura de specialitate sub o anumit form, noi le-am adaptat i mbuntit
pentru a rezolva problema prediciei. De aceea a fost necesar o explicaie n detaliu.)
Cititorul interesat poate consulta referina de baz [OvMo96].
n proiectarea Algoritmului KARMA-PSO, dup mai multe tipuri de implementri i
numeroase simulri, am ajuns la concluzia c versiunea cea mai potrivit aplicaiei de
predicie o constituie cea n care reactualizarea parametrilor de stare se realizeaz direct,
cu ajutorul funciei MATLAB n4sid.
3.5.3. Integrarea strategiei PSO n cadrul Algoritmului Markov-Kalman-Bucy
Algoritmul Markov-Kalman-Bucy (AMKB) este descris n detaliu n paragrafele 5.7-5.9
din [SPDC08]. Pentru paralelizarea acestuia sunt necesare ns unele modificri n cadrul
suportului teoretic aferent. Vom relua firul logic al deducerii relaiilor care stau la baza
algoritmului, cu explicarea manierei n care intervine strategia euristic PSO.
Reamintim c AMKB utilizeaz relaiile recursive ale Estimatorului Markov Adaptiv
(EMK-A) (Algoritmul 5.2 din [SPDC08]). Acesta este doar un instrument auxiliar n cadrul
AMKB, la fel ca MMEP pentru Algoritmii PARMA sau PARMAX. El nu are legtur cu
strategia PSO. De aceea, n dezvoltarea care urmeaz, ne vom sprijini pe descrierea
EMK-A din [SPDC08], fr a o mai relua.
Pentru a crete generalitatea, se vor adopta urmtoarele ecuaii, n care, fa de
modelul (3.57), se consider c intrrile pot aciona i direct asupra ieirilor, nu neaprat
numai prin intermediul strilor:
x[ k + 1] = A k x[ k ] + Bxk u[ k ] + Fk w[ k ]
, k N .

y
y[ k ] = Ck x[ k ] + Bk u[ k ] + D k v[ k ]

(3.94)

Matricea B ky este de dimensiune ny nu (spre deosebire de matricea Bxk , care are


dimensiunea nx nu ).
Soluia problemei de predicie folosind modelul de stare (3.94) se bazeaz pe evaluarea
erorii curente de predicie:
def

[ k ] = y[ k ] Ck x [ k ] B ky u[ k ] , k N ,
n care x [ k ] este o estimaie a vectorului de stare curent.
67

(3.95)

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

Pentru a putea utiliza EMK-A, se pot identifica uor matricea regresorilor prin Ck i
vectorul parametrilor adevrai prin x[ k ] . Rezult atunci imediat c vectorul curent
estimat poate fi notat prin x[ k ] , n timp ce vectorul reactualizat la momentul de
eantionare urmtor este x[ k + 1] . Folosind aceste definiii, matricea de auto-covarian a
erorii de estimare curente se construiete simplu astfel:
def

T
P k = E ( x [ k ] x[ k ])( x [ k ] x[ k ]) .

(3.96)

Procedura EMK-A nu poate funciona corect dect dac diferena ( x[ k ] x[ k ]) nu este


corelat cu zgomotul exogen v[ k ] . Aceast proprietate se verific ns, deoarece:
a. vectorul strilor adevrate x[ k ] depinde numai de zgomotul endogen, care nu este
corelat cu cel exogen, conform ipotezei H2;
b. vectorul strilor estimate x [ k ] depinde (prin intermediul lui x [ k 1] ) de valori ale
ieirilor regresate cu cel puin un pas, adic de valori ale vectorului perturbaiilor
exogene regresate cu cel puin un pas; acestea sunt necorelate cu valorile curente
ale aceluiai vector, conform ipotezei H4 (sau chiar H3, verificat de zgomotul
exogen).
O diferen ntre ecuaia ieirii modelului de stare (3.94) i ecuaia de adaptare din
procedura EMK-A o constituie totui faptul c, n prima, zgomotele exogene apar
amestecate, prin intermediul matricii de parametri D k . Aceasta nseamn c matricea de
def

auto-covarian a zgomotului vectorial exogen de dimensiunea ieirii, v y D k v , are


urmtoarea expresie:
E {v y vTy } = E {D k vvT DTk } = D k E {vvT } DTk = D k v DTk > 0 .

(3.97)

n irul de egaliti (3.97), operatorul de mediere statistic a acionat numai asupra


mrimilor stocastice, considernd c matricea de parametri Dk este practic determinist
(odat ce a fost estimat cu un numr suficient de mare de date). Se observ totui c
matricea de auto-covarin a zgomotului exogen original (definit n (3.58)) poate avea o
dimensiune diferit de cea a zgomotului amestecat. Prezena matricii Dk decurge din
maniera de conversie a modelului ARMAX la modelul de stare.
Cu aceste observaii, se constat c, aplicnd procedura EMK-A, se obin urmtoarele
relaii recursive, la pasul curent k N :

= P CT ( D [ k ]DT + C P CT )1
k k
k
k
k k k
v
k


Pk = Pk k Ck Pk
.

y
x [ k ] = x [ k ] + k ( y[ k ] Ck x [ k ] B k u[ k ])

(3.98)

Este clar c, n relaia recursiv a ctigului de senzitivitate (prima din (3.98)), nu apare
matricea de auto-covarian a zgomotului exogen original ( v ), ci matricea de autocovarian a zgomotului exogen amestecat ( D k v DTk ). Numai astfel procedura EMK-A
este corect.
Relaiile recursive (3.98) nu rezolv nc problema enunat, deoarece nu a fost luat n
considerare prima ecuaie a modelului (3.94). Din acest motiv, att vectorul reactualizat al
strilor ct i matricea reactualizat a auto-covarianei erorii de estimare au fost notate prin
x [ k ] , respectiv P k i nu prin x [ k + 1] , respectiv P k +1 , cum ar fi fost de ateptat. Aceste dou
reactualizri urmeaz a fi realizate cu aportul primei ecuaii a modelului (3.94). Astfel, o
estimaie a vectorului de stare la pasul urmtor se obine simplu, prin ignorarea zgomotului
intern i nlocuirea strii curente x [ k ] cu cea reactualizat x [ k ] :
68

RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>

x[ k + 1] = A k x [ k ] + Bxk u[ k ] .

(3.99)

Se poate arta c estimaia (3.99) este mai precis dac vectorul perturbaiilor interne
este format dintr-o colecie de zgomote albe necorelate ntre ele, dect n cazul existenei
zgomotelor colorate.
Folosind estimaia (3.99), se poate deduce relaia recursiv verificat de matricile
succesive P k i P k +1 :
def

T
P k +1 = E ( x [ k + 1] x[ k + 1])( x [ k + 1] x[ k + 1]) =

= E A k ( x [ k ] x[ k ]) Fk w[ k ] A k ( x [ k ] x[ k ]) Fk w[ k ] .
T

(3.100)

Pentru a dezvolta expresia (3.100), se revine la ipotezele statistice preliminare. Astfel, se


constat c:
E {( x [ k ] x[ k ]) wT [ k ]FkT } = 0 ,
(3.101)
deoarece att x [ k ] ct i x[ k ] depind de valori regresate cu cel puin un pas ale vectorului
perturbaiilor interne (dup cum o demonstreaz ecuaiile (3.98), respectiv (3.94)). Rezult
atunci c:
def

P k +1 = A k P k ATk + Fk w [ k ]FkT ,
def

(3.102)

T
innd cont de definiia: P k = E ( x [ k ] x[ k ])( x [ k ] x[ k ]) .

Ecuaiile (5.99) i (5.102) conduc, n final, la relaiile recursive cutate:


1

= P k CTk ( D k v [ k ]DTk + Ck P k CTk )


k

x [ k + 1] = A k x [ k ] + Bxk u[ k ] + A k k ( y[ k ] Ck x [ k ] Bky u[ k ]) , k N .

= Fk w [ k ]FkT + A k ( P k k Ck P k ) ATk
P k +1

(5.103)

Relaiile recursive (5.103) pun n eviden faptul c ambele matrici de auto-covarian


ale perturbaiilor trebuie s fie n prealabil estimate. Estimarea matricii de auto-covarian
a zgomotului exogen amestecat ( D k v [ k ]DTk ) se poate realiza prin acelai procedeu ca n
cazul procedurii EMK-A, dar perioada de reactualizare este acum K = 1 . Strategia const
aadar n 2 pai:
a. Se estimeaz i se memoreaz valorile perturbaiei exogene pn la momentul de
reactualizare curent, folosind a doua ecuaie a modelului (3.94):
def

D n v [ n] = [ n] = y[ n] Cn x [ n] B ny u[ n] , n 1, k .

(3.104)

b. Se estimeaz secvena de auto-covarian a zgomotului exogen amestecat:


def

D k v [ k ]DTk =

1 k
1

D n v [ n]v T [ n]DTn =
( kDk 1 v [ k 1]DTk 1 + Dk v [ k ]v T [ k ]DTk ) ,

k + 1 n =0
k +1
k N .(3.105)

Evaluarea recursiv a matricilor D k v [ k ]DTk din ecuaia (3.105) permite evitarea


creterii semnificative a complexitii de calcul. n mod normal, matricea de autocovarian estimat a zgomotului endogen amestecat ( Fk w [ k ]FkT ) se obine tot recursiv,
folosind acelai procedeu (care pleac ns de la prima ecuaie a modelului (3.94)):
def

[ n] = x [ n + 1] A n x [ n] Bxnu[ n] , n 1, k .
Fn w

(3.106)

Cu toate acestea, un fapt remarcabil pus n eviden de a doua ecuaie din (3.102), n
combinaie cu definiiile (3.103) i (3.105), este urmtorul:
69

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

[k ] ,
A k k D k v [ k ] = A k k ( y[ k ] Ck x [ k ] B ky u[ k ]) = x [ k + 1] A k x [ k ] Bxk u[ k ] = Fk w

k N . (3.106)
Surprinztor, estimaiile celor dou zgomote sunt corelate, astfel nct estimarea matricii de
auto-covarian a zgomotului endogen amestecat se poate realiza mai eficient:
def
1 k
[ n ]w
T [ n]FnT =
Fk w [ k ]FkT =
Fn w

k + 1 n =0
(3.107)
1
T
T
T T
T
=
( kFk 1 w [k 1]Fk 1 + A k k Dk v [k ]v [ k ]Dk k A k ) , k N .
k +1
Relaia recursiv (3.107) permite evitarea utilizrii definiiei (3.105) n procedura de calcul.
Este astfel suficient estimarea zgomotului exogen amestecat, pentru a reactualiza
matricea de auto-covarian a zgomotului endogen amestecat, ceea ce conduce la o
reducere a efortului de calcul.
n final, odat ce starea la momentul urmtor a fost predictat, se poate preciza i
ieirea la acest moment (prin ignorarea zgomotului exogen necunoscut):
(3.108)
y [ k + 1] = Ck x [ k + 1] + B ky u[ k + 1] , k N .
Algoritmul de predicie Kalman-Bucy-Markov denumit ad hoc KARMA este descris de
Algoritmul 3.4. Denumirea acestuia provine de fapt de la paii 2.2.3 i 2.3.10. Este clar c
intrrile reprezentrii pe stare nu pot fi msurate. Singura posibilitate este aceea de a le
estima cu ajutorul unui model de tip intrate-ieire din clasa ARMAX. Alegerea unui model
de complexitate ridicat ca MIMO-ARMAX, chiar vzut ca o colecie de modele MISOARMAX, a demonstrat (dup simulri repetate), c precizia de predicie nu crete
semnificativ, fa de cazul n care s-ar adopta un model de tip MIMO-ARMAX total
decuplat. Din contr, din cauza faptului c intrrile n modelul MIMO-ARMAX trebuie la
rndul lor estimate cu ajutorul unui model MIMO-ARMA (cum s-a artat n paragraful
precedent), calitatea prediciei scade. Practic, prin adoptarea unui model MIMO-ARMAX
se introduce o surs de eroare numeric n plus. n consecin, intrrile sistemului sunt
estimate (predictate) cu ajutorul unui model MIMO-ARMAX (constituit dintr-o colecie de
modele SISO-ARMA decuplate). Din acest motiv, algoritmul de predicie a fost numit
KARMA, adic predicie prin filtrare Kalman, combinat cu estimare ARMA.
Reactualizarea parametrilor modelului de stare este realizat direct, prin intermediul
proceduri de identificarea pe subspaii din [OvMo96], implementat n cadrul funciei
MATLAB n4sid. n acest mod, numrul de stri ale sistemului (care, n Algoritmul KARMA,
figureaz ca parametru de intrare, alturi de numrul de intrri i cel de ieiri) poate fi
variat. Numrul de intrri ( nu ) este ns mai mic cu o unitate fa de cel de ieiri (adic
ny 1 ), dup cum s-a artat deja.
Analiznd paii Algoritmului 3.4, se pot distinge dou etape importante.
Prima dintre ele se refer la reactualizarea modelului de predicie (cu reprezentare pe
stare). Ori de ct ori momentul curent ( k ) este un multiplu al lui K (durata orizontului de
reactualizare-predicie), modelul pe stare trebuie reactualizat. Aceast operaie nu const
doar n reactualizarea pas cu pas a matricilor parametrice, ci i a strilor. Ieirea este deja
predictat pn la momentul curent, astfel c se realizeaz doar predicia acesteia la
momentul urmtor. De asemenea, n finalul acestei etape, se rein cteva date, care vor fi
utilizate la pasul urmtor de reactualizare (adic dup K momente de timp).
n a doua etap, se efectueaz predicia (oarb a) ieirilor ntre momentele de
reactualizare (cnd momentul curent de eantionare nu este multiplu al lui K ). Inexistena
datelor msurate recent oblig algoritmul s funcioneze cu modelul pe stare cel mai
recent reactualizat, fr a-l schimba. Exist i posibilitatea de a reactualiza acest model,
considernd c valorile predictare ale ieirilor la momentul anterior de eantionare joac rol
de date nou achiziionate. Este dificil de apreciat care dintre cele dou strategii ar conduce
la valori predictate mai precise (nu exist o regul general).
70

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

Algoritmul 3.4. KARMA un algoritm de predicie prin filtrare Kalman-Bucy-Markov.


Date de intrare:
) durata orizontului de reactualizare-predicie: K N* ;
) indicii structurali al modelului cu reprezentare pe stare: nu , nx , ny ;
) o colecie redus de date intrare-ieire msurate (dac este posibil):
DN0 = {u[ n]}n1, N0 {y[ n]}n1, N0 (cu N 0 de ordinul zecilor cel mult).
1. Iniializare: se seteaz arbitrar vectorul estimat al strilor x 1 = x[1] i matricea
P1 = I nx , unde R+ .
2. Pentru k K :
2.1. Se evalueaz multiplul lui K cel mai apropiat de k , adic M = k / K N .
2.2. Dac momentul curent este un multiplu al lui K ( k = MK ), se reactualizeaz
modelul de stare, pe durata ultimului orizont de msur:
2.2.1. Se citesc datele recent msurate: {u[ n], y[ n]}n( M 1) K +1, MK .
2.2.2. Pentru n ( M 1) K + 1, MK :
a. Se reactualizeaz matricile parametrice ale modelului: A n , Bxn , B ny ,
Cn , D n i Fn (direct sau indirect, prin reconversia modelului ARMAX),
folosind datele msurate pn la momentul n .
b. Se estimeaz zgomotul exogen amestecat, care afecteaz ieirea
procesului: Dn v [ n] = y[ n] Cn x [ n] Bny u[ n] .
c. Se corecteaz matricea de auto-covarian estimat a zgomotului
exogen:
1
D n v [ n]DTn = ( n 1)D n1 v [ n 1]DTn1 + D n v [ n]v T [ n]DTn .
n
d. Se evalueaz matricea auxiliar: Q n = Cn P n .
e. Se inverseaz matricea: R n = D n v [ n]DTn + Q nCTn R nyny .
f. Se evalueaz ctigul de senzitivitate: n = QTn R n1 .
[ n] = A n n D n v [ n] .
g. Se evalueaz zgomotul endogen amestecat: Fn w
h. Se corecteaz matricea de auto-covarian estimat a zgomotului
endogen:
1
[ n ]w
T [ n]FnT .
Fn w [ n]FnT = ( n 1)Fn 1 w [ n 1]FnT1 + Fn w
n
i. Se corecteaz matricea de auto-covarian de erorilor de estimare P n ,
adic: P = F [ n]FT + A ( P Q ) AT .
n +1

[ n] .
j. Se corecteaz starea predictat: x [ n + 1] = A n x [ n] + Bxnu[ n] + Fn w
2.2.3. Se msoar sau se predicteaz intrarea la momentul urmtor: u[ MK + 1] .
2.2.4. Se predicteaz ieirea:

y [ k + 1] = y [ MK + 1] = C MK x [ MK + 1] + B yMK u[ MK + 1] .
T
2.2.5. Se memoreaz separat: D MK v [ MK ]DTMK , FMK w [ MK ]FMK
, P MK +1 i
x[ MK + 1] , pentru reactualizarea urmtoare.

71

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

Algoritmul 5.4. KARMA un algoritm de predicie prin filtrare Kalman-Bucy-Markov (final).


2.3. Altfel, adic dac momentul curent nu este un multiplu al lui K ( k > MK ), se
efectueaz predicia la momentul urmtor ( k + 1 ), pe baza modelului stabilit la
momentul MK , adic A MK , BxMK , B yMK , C MK , D MK i FMK :
2.3.1. Se estimeaz zgomotul exogen amestecat, care afecteaz ieirea
procesului: D MK v[ k ] = D MK u[ k ] (zgomotul alb predictat amestecat).
2.3.2. Se reactualizeaz matricea de auto-covarian estimat a zgomotului
exogen:
1
D MK v [ k ]DTMK = ( k 1)D MK v [ k 1]DTMK + D MK v [ k ]v T [ k ]DTMK .
k
2.3.3. Se evalueaz matricea auxiliar: Q = C P .
k

MK

2.3.4. Se inverseaz matricea: R k = D MK v [ k ]D

T
MK

+ Q k CTMK R nyny .

2.3.5. Se evalueaz ctigul de senzitivitate: k = QTk R k 1 .


[ k ] = A MK k D MK v [ k ] .
2.3.6. Se evalueaz zgomotul endogen amestecat: FMK w
2.3.7. Se reactualizeaz matricea de auto-covarian estimat a zgomotului
endogen:
1
T
T
T
[ k ]w
T [ k ]FMK
.
FMK w [ k ]FMK
= ( k 1)FMK w [ k 1]FMK
+ FMK w
k
2.3.8. Se reactualizeaz matricea de auto-covarian de erorilor de estimare
T
P k , adic: P k +1 = FMK w [ k ]FMK
+ A MK ( P k nQ n ) ATMK .
2.3.9. Se predicteaz starea sistemului:
[k ] .
x [ k + 1] = A MK x [ k ] + BxMK u[ k ] + FMK w
2.3.10. Se msoar sau se estimeaz intrarea la momentul urmtor: u[ k + 1] .
2.3.11. Se predicteaz ieirea:
y [ k + 1] = C MK x [ k + 1] + B yMK u[ k + 1] .
Date de ieire:
vectorul de ieire predictat: {y[ k + 1]}k MK ;

vectorul de stare {x[ k ]}k 1 ;

{ }

matricile de auto-covarian ale erorilor de estimare: P k

k 1

matricile de auto-covarian estimate ale zgomotelor endogen i exogen


amestecate: {Fk w [ k ]FkT } i {D k v [ k ]DTk } .
k 1

k 1

Pasul critic (cel mai mare consumator de timp) l constituie inversarea matricii
R k = D k v [ k ]DTk + Ck P k CTk , de dimensiune ny ny . Pentru un proces complex (cu zeci de
ieiri, cel puin) inversarea poate ocupa resursele mainii de calcul pe o perioad
important de timp. Cu toate acestea, este evident c efortul de inversare ar fi crescut
sensibil dac nu ar fi intervenit expresia ctigului.
De notat c Algoritul KARMA funcioneaz i n cazul n care perturbaiile nu verific
ipotezele statistice enunate la nceput, numai c precizia sa este mai sczut. Se poate
arta c prima ipotez (H1) asigur consistena estimaiilor. Remarcabil este faptul c
algoritmul nu returneaz numai valorile estimate/predictate ale strilor interne care
caracterizeaz un anumit proces, ci i o serie de informaii statistice referitoare att la
72

RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>

precizia de estimare/predicie (prin matricile de auto-covarian P k ), ct i la cele dou


zgomote (prin matricile de auto-covarian Fk w [ k ]FkT i D k v [ k ]DTk ).
Evaluarea vectorului PQ (definiia (3.53)) presupune cunoaterea prealabil a
varianelor erorilor de predicie. Evident, ele nu mai pot fi determinate folosind modelul
MIMO-ARMA(X), nici mcar n cazul strategiei indirecte, deoarece acesta include ny
modele SISO-ARMAX pentru fiecare canal de msur. Trebuie apelat tot la modelul cu
reprezentare pe stare i Algoritmul KARMA aferent. Aa cum se poate obsrva, pe lng
strile i ieirile predictate, KARMA ofer (printre altele) i matricea de auto-covarian a
zgomotelor exogene amestecate, D k v [ k ]DTk , la fiecare pas de predicie. Avnd n vedere
expresia valorii predictate a vectorului de ieire (definiia (3.108), prin ignorarea total a
perturbaiei exogene), este natural s se considere c aceast perturbaie se identific sau
este proporional cu eroarea (vectorial) de predicie, . Aadar, se poate scrie c:
def

[ k ] = y N y + k y N y + k D N y + k v N y + k , k 1, K .

(3.109)

n consecin, matricea de auto-covarian a erorilor de predicie de la pasul k 1, K are


proprietatea:

E {[ k ]T [ k ]} D N y + k v [ N y + k ]DTN y + k .

(3.110)

Practic, cea de-a doua matrice din (3.110) poate oferi varianele cutate, avnd n
vedere c nu este necesar determinarea acestora cu precizie. Important este ca, pentru
toate modelele, varianele s se evalueze prin acelai procedeu. Evident, matricile
Dk v [ k ]DTk sunt toate strict pozitiv definite, astfel c spectrele lor includ numai valori
proprii pozitive i nenule. Aceasta permite determinarea natural a dispersiilor erorilor de
estimare, prin evaluarea spectrelor matricilor (3.110).
Mai precis, pentru fiecare pas de predicie k 1, K , matricea D N y + k v [ N y + k ]DTN y + k
admite urmtoarea descompunere spectral:

D N y + k v [ N y + k ]D

T
N y +k

1,2 k

= VNT y + k
0

VN y + k ,
2
ny ,k

(3.111)

unde matricea diagonal central include toate valorile proprii, n timp ce matricea de
trecere VN y + k R nyny este format din vectorii proprii ortonormai corespunztori etalai pe
coloane. Diagonala ar putea returna dispersiile erorilor de predicie pentru fiecare canal de
msur. Pentru a realiza descompunerea (3.111), se poate invoca unul dintre algoritmii
numerici de descompunere spectral cunoscui [DPJ98]. n mediul de programare MATLAB,
descompunerea este realizat de ctre funcia eig. ns, mai simplu este s se extrag
direct diagonala matricii D N y + k v [ N y + k ]DTN y + k la fiecare pas de predicie k 1, K , avnd n
vedere c acolo se regsesc dispersiile zgomotelor exogene de pe fiecare canal.
n oricare dintre cele dou opiuni de mai sus, spre deosebire de modelele de predicie
auto-regresive, dispersiile { 2j ,k }
nu sunt neaprat cresctoare. Din contr, filtrul
k1, K

Kalman are tendina de a extrage ct mai mult informaie util din perturbaii, astfel c
aceste dispersii pot chiar s scad.
Pentru selecia predictorului optimal, este suficient s se maximizeze norma vectorului
PQ . Este clar c aceasta poate fi evaluat numai dac se utilizeaz doar N y K / 2 date
de pe fiecare canal de msur, ca n cazul celorlali predictori.
73

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

Exist o multitudine de modelele cu reprezentare pe stare care pot oferi valori


predictate ale ieirii procesului ecologic distribuit. Acestea deriv att din maniera n care
se estimeaz intrrile modelului (3.94), ct i din posibilitatea de a varia numrul de stri.
Aa cum s-a precizat anterior, intrrile sunt estimate cu ajutorul unei colecii de modele
SISO-ARMAX. Aceasta nseamn c fiecrui canal trebuie s i se precizeze cei 3 sau 4
indici structurali care definesc un astfel de model (n funcie de opiunea utilizatorului de a
estima sau nu componenta determinist). Numrul de stri poate varia ntr-o gam finit
de valori, Nx, NX , prin apelarea funciei Matlab n4sid, care, totui, nu funcioneaz corect
pentru sisteme cu mai mult de cieva zeci de stri (n funcie de numrul i consistena
datelor experimentale). Numrul de modele de stare din care trebuie ales cel optimal (n
raport cu PQ) poate fi destul de mare. De exemplu, dac blocul de date conine 6 canale
de msur, iar indicii structurali ai modelelor SISO-ARMA sunt limitai superior la valoarea
30, atunci numrul aproximativ de modele de stare cu maxim 20 de stri de investigat este
de 1037 . Fa de numrul modelelor din cazul predictorului PARMAX, acesta poate s fie
considerat mic. ns funcia n4sid este sensibil mai lent dect funcia armax, ceea ce
conduce la o durat de cutare a modelului optimal cel puin la fel de mare, dac nu mai
mare. Din acest motiv i din cel al necesitii de paralelizare a Algoritmului KARMA, s-a
apelat din nou a strategia euristic PSO.
Spre deosebire de predictorii precedeni, n cazul predictorului KARMA, exist dou
direcii clare de cutare. Direcia principal se refer la varierea numrului de stri, n timp
ce varierea indicilor structurali ai modelelor SISO-ARMA pe fiecare canal este considerat
secundar. Rezult c particula generic este format din dou pri distincte, cu structuri
diferite:
o matrice cu ny coloane, n care fiecare coloan include cei 3 sau 4 indici structurali
ai cte unui model SISO-ARMA;
un scalar indicnd numrul de stri.
n consecin, populaia de particule are structura segregat din Figura 3.5.

ny

Tendin
Model ARMA
Model AR
aproximant
Model de stare

P
Figura 3.5. Reprezentarea segregat a populaiilor de particule
n cadrul Algoritmului KARMA-PSO.
Blocul tridimensional corespunde modelelor SISO-ARMA, n timp ce vectorul de la baz
indic numere de stri. Cu alte cuvinte, o tietur vertical de-a lungul grosimii va produce
o matrice cu ny coloane i un scalar, adic o particul segregat.
74

RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>

Matematic, definiia acestei particule generice este urmtoarea:

p1

def na
1
x IO =
nc1

n1

pny
def
nany
, x = nx ,
S
ncny

n ny

(3.112)

cu notaii cunoscute, unde indicele IO arat c particula se refer la modelul intrare-ieire


(input-output), iar indicele S este asociat particulei de stare (state).
Algoritmul 3.5 sumarizeaz paii principali ai procedurii KARMA-PSO. Avnd n vedere
c Algoritmii 3.3 i 3.4 surprind n detaliu paii strategiei PSO, respectiv procedurii
KARMA, tabela Algoritmului KARMA-PSO este mult mai succint.
Algoritmul 3.5. KARMA-PSO un algoritm de predicie prin filtrare Kalman-Bucy-Markov,
folosind tehnica PSO.
Date de intrare:
) un conglomerat de serii de timp distribuite { y j }

j1,ny

, de durat finit, N y ;

) lungimea orizontului de predicie K (unde K << N y ); de regul, K 7 ;


) parametri de configurare:
opiune privind construcia componentei deterministe (0/1 = fr/cu
tendin i component sezonier);
valoarea maxim a gradului polinomului tendin, Pmax N (implicit,

Pmax = 10 );
valorile maxime ale indicilor structurali din modelele intrare-ieire ARMA
NA0 , NC0 N (implicit: NA0 = NC0 = 30 , dar NA0 = 100 dac nc = 0 , iar

NC0 = 100 dac na = 0 );


opiune privind stabilitatea modelelor ARMA (0/1 = fr/cu testarea
stabilitii modelului);
valoarea maxim a numrului de stri pentru modelul de stare, NX N

(implicit, NX = max 10, N y /10 );


numrul P de particule din populaia algoritmului PSO (implicit: P = 100 );
numrul maxim de generaii ale populaiei, M (implicit: M = 100 );
numrul minim de supravieuire pentru stoparea algoritmului PSO, S
(implicit: S = max {5, 0.05 M } );
nivelul de alarmare pentru aplicarea ncrucirii ntre particule, (0,1]
(implicit, = 0.15 );
durata tranziiei ntre generaii, T > 0 (implicit, T = 1 ).
1. Prelucrri primare:
se evalueaz mediile

{y }
j

j1,ny

i deviaiile standard

distribuite;
se staionarizeaz datele: y j y j y j .
75

{ }
yj

j1,ny

ale datelor

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

Algoritmul 3.5. KARMA-PSO un algoritm de predicie prin filtrare Kalman-Bucy-Markov,


folosind tehnica PSO (final).
2. Se formeaz particula generic segregat, potrivit definiiei (3.112).
3. Se rezerv ultimele K / 2 date (dar nu mai puine de 4), n vederea evalurii
criteriului PQ pentru fiecare particul a populaiei.
4. Se formeaz populaia iniial de P particule uniform distribuite n spaiul de cutare
determinat de valorile maxime ale indicilor structurali i se trece la generaia
urmtoare cu ajutorul relaiilor (3.11)(3.15) (n care ineria i varianele cognitiv i
social iau valori pseudo-aleatoare, iar viteza iniial este nul).
5. Se formeaz elita i anti-elita (cu ajutorul normei criteriului PQ). Aici, este invocat
Algoritmul KARMA (Algoritmul 3.4), n care intervine Algoritmul PARMA
(Algoritmul 4.3 din [SPDC08]) pentru a predicta intrrile. Ele sunt de fapt predicii ale
zgomotelor de canal, care nu se pot obine fr a predicta i ieirile (a se vedea
relaiile recursive din [SPDC08] paragraful 4.5). Ieirile predictate de KARMA sunt
mai precise dect cele predictate de PARMA, astfel c ele vor fi utilizate preferenial.
6. Ct timp testul de stop al strategiei PSO nu este ndeplinit (vezi pagina 40):
6.1. Se calculeaz ineria fiecrei particule din generaia curent.
6.2. Se calculeaz variana cognitiv relativ a fiecrei particule din generaia
curent.
6.3. Se calculeaz varian social relativ a fiecrei particule din generaia curent.
6.4. Se genereaz cele dou frecvene de tranziie de o manier aleatoare
(uniform).
6.5. Se reactualizeaz vitezele i poziiile particulelor din generaia curent.
6.6. Se reactualizeaz elita i anti-elita, cu ajutorul algoritmilor ntreesui KARMA i
PARMA.
6.7. Se evalueaz varianele populaiei curente i ale elitei.
6.8. Dac produsul varianelor de la pasul precedent nregistreaz o cretere
semnificativ, populaia curent se ncrucieaz cu elita i se rein particulele
care produc valorile cele mai mari ale criteriului PQ (inclusiv particula cea mai
valoroas a elitei). Se reactualizeaz elita i anti-elita.
6.9. Dac produsul varianelor de la pasul precedent nregistreaz o scdere
semnificativ, populaia curent se ncrucieaz cu anti-elita i se rein
particulele care produc valorile cele mai mari ale criteriului PQ (inclusiv particula
cea mai valoroas a elitei). Se reactualizeaz elita i anti-elita.
7. Se alege particula optimal din elit (care produce valoarea cea mai mare a normei
criteriului PQ). Aceasta este unic asociat unei particule de forma (3.112).
8. Pentru particula optimal astfel obinut, se invoc Algoritmul KARMA
(Algoritmul 3.4), n care intervine Algoritmul PARMA (Algoritmul 4.3 din [SPDC08])
pentru a predicta intrrile.
Date de ieire:
vectorul de ieire predictat: {y[ k + 1]}k MK ;

vectorul de stare {x[ k ]}k 1 ;

{ }

matricile de auto-covarian ale erorilor de estimare: P k

k 1

matricile de auto-covarian estimate ale zgomotelor endogen i exogen


amestecate: {Fk w [ k ]FkT } i {D k v [ k ]DTk } .
k 1

k 1

76

RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>

Caracteristica principal a Algoritmului KARMA-PSO o constituie ntreeserea dintre


procedurile KARMA i PARMA n cadrul strategiei euristice PSO. Exist i posibilitatea de
a renuna la componenta scalar a particulei generice, efectund o cutare exhaustiv a
modelului de stare optimal, prin varierea incremental a numrului de stri n gama
precizat (de la 1 la NX ). Dei, n acest fel este crescut uor precizia modelului optimal
de predicie, durata de determinare a acestuia crete semnificativ, chiar i n cazul utilizrii
mainii paralele. Din acest motiv, a fost preferat adugarea componentei scalare la
particula matricial de tip ARMA.
Paralelismul acestui algoritm (KARMA-PSO) are dou trepte. n primul rnd, la nivel de
populaie, evaluarea criteriului PQ se poate realiza pentru mai multe particule n paralel. n
aldoilea rnd, n cadrul evalurilor legate de fiecare particul, predicie intrrilor de canal se
poate realiza n paralel, avnd n vedere c modelele SISO-ARMA sunt decuplate.
Duratele de rulare ale Algoritmului KARMA-PSO sunt similare celor ale Algoritmului
PARMAX-PSO. Ambii algoritmi sunt, desigur, mai leni dect Algoritmul PARMA-PSO, dar
mai precii, aa cum au demonstrat-o simulrile pe diferite blocuri de date.
Anexa D include descrierea principalelor programe i rutine ale Algoritmului KARMAPSO. O parte dintre rutinele auxiliare de rang inferior sunt preluate de la ceilali doi
algoritmi, astfel c se regsesc n Anexele B i C. Funciile principale sunt: PSO_KARMA
(aplicarea strategiei PSO), KARMA_model (identificarea i unui model de stare),
MKB_filter (implementarea filtrului Kalman-Bucy) i PSO_fitness_PQ (evaluarea
calitii prediciei).
Publicaia principal care se refer la Algoritmul KARMA-PSO este [StCu09a], anexat
i n finalul acestui raport de cercetare. Un articol care s descrie toi cei 3 algorimi paraleli
de predicie bazai pe modele de identificare este n curs de redactare de ctre echipa de
cercetare a proiectului. El va fi propus unei reviste indexate ISI.

4. Un algoritm de predicie cu undine ortogonale (FORWAVER 1)


Grupul precedent de algoritmi se caracterizeaz prin faptul c apeleaz la modele de
identificare a sistemelor, n scopul prediciei. ncepnd cu algoritmul care va fi prezentat n
aceast seciune i continund cu cei din etapa urmtoare, predicia se va realiza pe baza
unor modele de semnale nestaionare stocastice. Aceasta nseamn c semnalele
considerate nu sunt doar afectate de perturbaii nedeterministe, ci au i proprietatea de a
poseda spectru variabil n timp.
Prelucrarea Semnalelor [PrMa96] este un domeniu de cercetare cel puin tot att de vast
ca i Identificarea Sistemelor [SoSt89], cu care are numeroase corelaii. Algoritmul
FORWAVER 1, care va fi descris n continuare, constituie de fapt o aplicaie a unor tehnici
din domeniul analizei de semnal de tip timp-frecven-scal [CoL95]. Acesta a cunoscut o
puternic dezvoltare n ultimii ani, prin numeroasele aplicaii n care intervine cu succes.
Un cmp de cercetare aparte al acestui domeniu l constituie cel al undinelor. Cuvntul
undin a fost tradus n limba romn n teza de doctorat [StD95], a fost acceptat de ctre
Academia Romn i corespunde cuvintelor wavelet din limba englez sau ondelette din
limba francez. Crile [StSt07] i [SSP09] (n curs de apariie la Editura Academiei
Romne) ofer o imagine destul de detaliat asupra acestui cmp de cercetare interesant.
Exist, desigur, numeroase publicaii n alte limbi dect romn, care descriu undinele sub
diferite aspecte. n cadrul acestei seciuni, va fi fcut numai o foarte succint prezentare
legat de undine, suficient, totui, pentru a nelege fundamentul algoritmului de predicie
FORWAVER 1.
4.1. Paradigma deparazitrii semnalelor
Reprezentarea la scal este o operaie cunoscut nc din antichitate, n special n
domeniul Cartografiei, unde obiectivul principal este de a reda hrile (geografice) cu un
anumit grad de detaliere. De exemplu, la o scar de 1:2 500 000, harta Romniei se poate
77

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

reprezenta pe o coal de hrtie de format A4 (2129.7 cm2), n poziie orizontal, unde


1 cm corespunde unei distane reale de 25 km. La o astfel de scal, localitile mici i
mijlocii sau detaliile de relief nu pot fi reprezentate, deoarece rezoluia grafic a hrii este
prea mic. Mrind scala de 25 de ori (la 1:100 000), harta ocup acum o coal de hrtie de
peste 5 m lime i 7.4 m lungime, iar 1 cm corespunde unei distane de 1 km. Avnd n
vedere densitatea de localiti i variaia de relief din Romnia, noua hart permite acum
reprezentarea oricrei localiti i a majoritii formelor de relief, cursurilor de ap, etc. Mai
mult, localitile care nu sunt foarte mici beneficiaz acum de o rezoluie grafic suficient
de bun, permind reprezentarea lor la nivel de strzi. Pentru a putea fi utilizat, ns,
harta trebuie mpachetat ntr-un atlas cu 625 de pagini avnd formatul A4. La scala 1:1,
atlasul Romniei ar cuprinde 62.5 milioane de pagini de format A4. Gradul de detaliere
corespunde acum celui din realitatea perceput, dar atlasul este evident inutilizabil,
rezoluia grafic fiind mult prea mare. O hart uor de utilizat i precis trebuie s
dovedeasc un bun compromis ntre scala de reprezentare i rezoluia grafic.
i n alte domenii operaia de scalare este frecvent utilizat. Este vorba de exemplu de
Chimie, Medicin sau Nano-inginerie, unde, de aceast dat, scalele sunt de forma 25:1,
100:1, 1000:1, etc. Rezoluia de reprezentare a entitilor din aceste domenii (de regul,
imagini) crete odat cu scala de reprezentare, ca i n Cartografie, numai c efectul
scalrii este de mrire i nu de micorare.
Corelaia care exist ntre scala i rezoluia de reprezentare a unui semnal este
surprins n cadrul unei teorii dezvoltate de ctre Stphane Mallat (n urma ntlnirii cu
Yves Meyer) la mijlocul anilor 80: Teoria multi-rezoluie [MaS89]. Aceasta a condus la o
abordare extrem de interesant pentru aplicaiile practice, concretizat ntr-o serie de
algoritmi de analiz-sintez bazai pe structura multi-rezoluie a spaiului semnalelor
def

uzuale (stabile i de energie finit H = L 1 L 2 , de tip Hilbert). Colecia acestor


algoritmi constituie nucleul Analizei multi-rezoluie.
n Prelucrarea Semnalelor, existena posibilitii de a proiecta diferite semnale pe
anumite subspaii din H a condus n mod natural la formularea uneia dintre cele mai
interesante probleme: cea a deparazitrii semnalelor de perturbaii nedorite. Semnalele
din aplicaiile practice sunt de regul afectate de perturbaii cu caracter determinist i/sau
stocastic. Un astfel de semnal transport aadar nu numai o informaie util, ci i una
parazit. Problema care se ridic este aceea a separrii componentei utile a semnalului de
componenta sa parazit. Dou aspecte ridic mult gradul de dificultate al acestei
probleme. n primul rnd, maniera n care perturbaiile se combin cu semnalul util este
necunoscut. Pentru comoditate, se consider adesea c aceste semnale i adun
contribuiile (eventual, de o manier ponderat), dei multe aplicaii au demonstrat c
modelul care respect principiul superpoziiei este inadecvat. n al doilea rnd, nu exist o
definiie general a conceptului de perturbaie. Aceasta mpiedic o metod de
deparazitare care funcioneaz cu o anumit precizie n cazul unei clase de semnale s
funcioneze cu aceeai precizie i n cazul altei clase de semnale. n general, oricare ar fi
metoda de deparazitare de semnal, nu poate fi mpiedicat manifestarea urmtorului
fenomen: o parte din informaia util este tratat ca parazit i se pierde, n timp ce o parte
din informaia parazit este interpretat ca util i continu s distorsioneze semnalul. Nu
se poate trasa o linie clar de demarcaie ntre cele dou tipuri de informaie, dar se poate
diminua procentajul de informaie util pierdut sau parazit conservat. De regul,
aceasta se realizeaz prin creterea complexitii metodei de deparazitare.
Unul dintre principiile care st la baza metodelor de deparazitare n cazul modelelor de
superpoziie este cel de proiecie a semnalului corupt pe un subspaiu nchis, generat de
semnale utile cunoscute i nedistorsionate de prezena perturbaiilor. Figura 4.1 ilustreaz
acest principiu.
78

RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>

fr y
fr y

frUy
D [ ,...,u
[g]>
U=<u1,u
2 ]
n
0

Figura 4.1. Principiul deparazitrii semnalelor cu ajutorul proieciilor ortogonale.


n acest exemplu, semnalul original f H (unde H ) este corupt de o perturbaie
necunoscut. Cu toate acestea, informaia pe care o transport ar putea fi reprezentat cu
ajutorul unui sistem de semnale ortonormate {ui }i1,n , n numr finit. Aceste semnale
numite ad hoc de baz pot fi cunoscute sau se pot construi dup anumite reete. De
exemplu, ele pot constitui o colecie de armonice elementare de diferite frecvene (caz n
care problema deparazitrii revine la determinarea unei representri armonice clasice, de
tip Fourier). Fiind n numr finit, aceste semnale de baz nu pot genera ntregul spaiu de
semnale, ci un subspaiu nchis al acestuia, U = u1 , u2 , , un . Semnalul util este atunci
definit prin proiecia semnalului original pe subspaiul U :
n

f U f , ui ui .

(4.1)

i =1

Diferena dintre semnalele original i util este declarat semnal parazit: f f f U . Acesta
este ortogonal pe semnalul util, dovedind astfel neredundana cu acesta, proprietate care
justific termenul de deparazitare. Calitatea separrii celor dou semnale depinde sensibil
nu numai de maniera n care este ales sistemul de semnale ortonormate {ui }i1,n , prin
intermediul cruia va fi codificat mai departe informaia util, ci i de natura semnalului i
a perturbaiilor. Din acest motiv, gsirea unor metode generale de deparazitare a
semnalelor rmne o problem deschis.
Problema concret este ns aceea a stabilirii unei metode clare de construcie a
subspaiilor de tipul lui U . n general s-a artat (i acesta este probabil meritul lui Mallat i
Meyer) c spaiul H poate gzdui o structur imbricat de subspaii liniare nchise, strict
incluse unul n altul, de forma:

V0 V1 V2

H ,

Vm Vm+1

(4.2)

cu proprietatea:

Vm+1 = Vm Vm , m N .

(4.3)

Complementul ortogonal din (4.3), notat alternativ prin Wm , este evaluat n raport cu
subspaiul urmtor i nu cu ntregul spaiu H . Aceast proprietate permite
descompunerea iterativ a spaiului H dup cum urmeaz:

H = V0 W0 W1 W2 Wm
79

= V0 Wm .
mN

(4.4)

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

Dac dimensiunea lui H este finit, atunci numrul subspaiilor (4.3) este la rndul lui
finit, deoarece V0 nu poate avea dimensiune inferioar unitii. De exemplu, dac H este
spaiul Euclidian R 3 , atunci V1 poate fi planul orizontal principal, iar lui V0 nu-i mai rmne
dect s se identifice cu o oblic oarecare din V1 trecnd prin origine. Evident, V1 este axa
vertical a spaiului, n timp ce V0 este axa perpendicular pe V0 din planul V1 .
Maniera n care se poate realiza descompunerea (4.4) nu este unic. Una dintre cele
mai interesante (inclusiv pentru predicie) este cea legat logic de conceptele de scal i
rezoluie de reprezentare. ntr-o astfel de descompunere, proiecia unui element oarecare
f H pe subspaiul Vm , notat prin f m (pentru m N ) se numete aproximare la nivelul
de rezoluie m a lui f . Elementul f m este similar unei hri a lui f reprezentate la o
scal cresctoare n raport cu nivelul de rezoluie. Pentru a trece la nivelul urmtor de
rezoluie, se poate proiecta f direct pe subspaiul Vm+1 , obinndu-se aproximarea f m+1 .
innd cont de proprietatea (4.3), diferena dintre cele dou aproximaii succesive f m+1 (de
rezoluie mai mare) i f m (de rezoluie mai mic) este constituit de un element f m Wm
obinut prin proiecia lui f m+1 sau a lui f pe complementul ortogonal Wm . Astfel, se poate
scrie c:
(4.5)
f m+1 = Pr Vm +1 ( f ) = Pr Vm ( f ) + Pr Wm ( f ) = f m + f m , m N .
Relaia recursiv (4.5) relev mecanismul de cretere a rezoluiei de reprezentare
favorizat de ortogonalitate: pentru a sri la nivelul urmtor de rezoluie, aproximaiei
curente trebuie s i se adauge noi detalii. De aceea, elementul f m se numete detaliu la
nivelul de rezoluie m + 1 al lui f . Nivelul de rezoluie al detaliului nu este m , deoarece
complementul ortogonal Wm este un subspaiu al lui Vm+1 , disjunct cu Vm . Adugarea
detaliului necesar saltului de rezoluie poate fi privit i ca o cretere a scalei de
reprezentare a elementului original, similar cazului hrilor geografice la care s-a fcut
referire n deschiderea paragrafului.
Prin mrirea nivelului de rezoluie (sau a scalei de reprezentare), elementul original este
mai bine aproximat. Aceast proprietate rezult n urma unui raionament destul de simplu,
dup cum urmeaz. Pentru un anumit nivel de rezoluie arbitrar fixat m N , elementele f m
(aproximaia) i f m (detaliul) sunt evident ortogonale ( f m f m ). Mutual, este indus i
ortogonalitatea elementului de eroare f f m+1 pe subspaiul Vm+1 (deoarece

( f f m+1 ) Wm , ceea
( f f m+1 ) ( f m+1 f m ) . Deoarece

f m+1 = Pr Vm +1 ( f ) ). n consecin,

(f

f m+1 ) f m , adic

ce implic, n particular, c:
f f m = ( f f m+1 ) + ( f m+1 f m ) , se

poate aplica Teorema Pitagora-Hilbert [SSP09], care conduce la:


f fm

= f f m+1 + f m+1 f m
2

f f m+1 , m N .
2

(4.6)

Inegalitatea (4.6) probeaz proprietatea de mbuntire a preciziei de aproximare


odat cu mrirea rezoluiei de reprezentare (sau a scalei). Ea nu se bazeaz dect pe
ortogonalitate i nu pe definiia explicit a subspaiilor componente ale spaiului Hilbert.
Mai mult, ea se verific i n absena interpretrii legate de rezoluia sau scala de
reprezentare. Totui, n condiiile n care subspaiile componente sunt construite n
corelaie direct cu primul concept (cel de rezoluie), atunci structura realizat de ele n
cadrul spaiului Hilbert se numete multi-rezoluie a acestui spaiu. Numele este sugerat
de urmtoarea egalitate evident obinut prin iterarea identitii (4.5):
m 1

f m = f 0 + f i , m N .
i =0

80

(4.7)

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

Cu alte cuvinte, aproximarea la nivelul de rezoluie curent f m se obine plecnd de la o


versiune grosier f0 a elementului original f , prin adugarea tuturor detaliilor de la nivele
de rezoluie inferioare. n evaluarea lui f m sunt astfel implicate mai multe rezoluii de
reprezentare cu nivele succesive. De regul creterea rezoluiei de reprezentare este
nsoit de o cretere a scalei, ca n irul de imagini succesive din Figura 4.2.

Figura 4.2. Harta Romniei reprezentat la diferite scale i nivele de rezoluie.


Fiecare dintre hrile Figurii 4.2 este o aproximare la un anumit nivel de rezoluie a hrii
naturale (reprezentate la scala 1:1). Adugarea de noi detalii mbogete fiecare imagine
nu numai n ceea ce privete informaia codificat, ci i ca numr de pixeli, fapt care
foreaz creterea scalei de reprezentare. Se observ cu uurin c, fa de aproximrea
grosier (la scala cea mai mic), unde se distinge practic doar conturul granielor rii, pe
msur ce rezoluia i scala de reprezentare cresc, se adaug noi detalii n interiorul
acestui contur. n ultima aproximare, care este cea mai rafinat dintre cele prezentate, se
pot deja distinge contururile judeelor, localizarea marilor orae, reeaua de ci rutiere,
cursurile importante de ap, etc.
Pentru construcia unei structuri multi-rezoluie exist mai multe abordri. n acest
proiect, ne-am oprit la o construcie ingenioas propus de Stphane Mallat n [MaS89] i
Ingrid Daubechies n [DaI88a], [DaI88b] i [DaI90], care a fost ulterior generalizat de
Ronald Coifman i Mladen Victor Wickerhauser n [CoWi92].
81

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

Reamintim c, n modelarea unei serii de timp [SPDC08], au intervenit dou


componente cu naturi diferite: una determinist (constituit dintr-o tendin yT i o variaie
sezonier yS ) i alta nedeterminist (constituit dintr-un semnal stocastic v , identificat cu
ajutorul unui model AR sau ARMA, yV ). Cu alte cuvinte, expresia complet a modelului
unei astfel de serii de timp este:

y yT + yS + yV .

(4.8)

Unul dintre impedimentele obinerii unei precizii foarte nalte a valorilor predictate cu
ajutorul modelului (4.8) l constituie faptul c semnalul determinist yT + yS are o natur
staionar. (n plus, el este i afectat de un anumit grad de subiectivism din partea
utilizatrului, aa cum s-a artat n [SPDC08].) Cu alte cuvinte, spectrul acestui semnal este
considerat constant n timp, cu energia concentrat n special n jurul frecvenelor
caracteristice ale variaiei sezoniere. Aceasta face, de exemplu, ca modelul (4.8) s
sesizeze numai o periodicitate de 12 luni (sau un multiplu al acestei valori) n seria de timp
a omajului nregistrat ntr-o ar, nu i alte componente sezoniere, ale cror perioade nu
fac parte din mulimea multiplilor lui 12. Explicaia acestei limitri rezid n faptul c
spectrul componentei deterministe este constant n timp.
O abordare opus este cea n care semnalul determinist staionar este nlocuit de unul
tot determinist, dar nestaionar (cu spectru variabil n timp). Suma yT + yS , care definete
semnalul determinist de identificare, corespunde de fapt semnalului util f U din Figura 4.1,
n care semnalele de baz sunt polinoame i armonice de diferite frecvene, dar
staionare. Pentru a nlocui aceast component din modelul (4.8), va trebui schimbat
setul de semnale de baz cu unul n care elementele sunt nestaionare. De exemplu, cu
undine ortogonale. Cu alte cuvinte, modelul de predicie alternativ, nestaionar i stocastic
este urmtorul:

y yW + yV ,

(4.9)

unde yW va corespunde acum semnalului util f U din Figura 4.1. Desigur, zgomotul colorat
v continu s se identifice cu f proiecia ortogonal a semnalului original pe subspaiul
parazit (ca n cazul modelului (4.8)).
4.2. Scurt privire asupra undinelor ortogonale i structurii multi-rezoluie
Subspaiul U din abordarea nestaionar este generat prin utilizarea pachetelor de
undine [CoWi92]. Astfel, subspaiul posed o structur multi-rezoluie. n domeniul
undinelor, este bine cunoscut faptul c o structur multi-rezoluie [MaS89] poate fi
generat cu ajutorul unei perechi de undine ortogonale cu suport compact: o (aa numit)
undin tat i o (aa numit) undin mam [DaI88]. De regul, ele constituie soluiile
urmtoarelor dou ecuaii (duale) de dilatare laticeale (abreviate prin EDL, respectiv
EDL):
2 N 1

(t ) = 2 hn (2t n ) , t 0,2 N 1 ,

(4.10)

n =0

(t ) = 2

n =2 2 N

( 1)n h1n (2t n ) , t 1 N , N .

(4.11)

Definiiile (4.10) i (4.11) se bazeaz pe existena unei secvene de lungime finit


{hn }n0,2 N 1 , cu urmtoarele proprieti:
82

RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>

Normalizare:
2 N 1

h
n =0

2 N 1

(1)

= 2,

hn = 0 ;

(4.12)

= 0 [ k ] , k Z ,

(4.13)

n =0

Condiii Nyquist[2] (de ortogonalitate) :


2 N 1

hh
n =0

n n 2 k

unde 0 este impulsul unitar discret.


De fapt, ortogonalitatea undinelor este o consecin direct a condiiilor Nyquist[2]. Mai
mult, ortogonalitatea este echivalent urmtoarei proprieti: spectrele lui i sunt
aproape disjuncte, fiind esenial localizate n sub-benzi de joas i respectiv nalt
frecven, n concordan cu rezultatele lui Battle i Lemari [BaG87], [LePG88].
Determinarea cu o precizie finit a undinelor de baz i , ca soluii ale ecuaiilor
(4.10) i (4.11), avnd coeficienii stabilii a priori, poate fi realizat prin intermediul unei
proceduri iterative iniiat de Daubechies (i Lagarias) n [DaLa88a] i [DaLa88b].
Procedura urmrete exemplul cunoscut de generare a formelor fractale ale lui deRham,
plecnd de la variaii mici, cu ajutorul unei ecuaii de tip EDL. De aceea, aceast procedur
este cunoscut sub numele de Algoritm Daubechies-deRham. Algoritmul este descris n
detaliu n [StSt07] i [SSP09].
Coeficienii {hn }n0,2 N 1 ai ecuaiei EDL sunt valori ale rspunsului la impuls ale unui
filtru trece-jos, n timp ce

{g

= ( 1)n h1n }

n22 N ,1

sunt valorile rspunsului la impuls ale

unui filtru trece-sus. Cele dou filtre sunt oglindite n cuadratur (quadratic mirrored
filters QMF) [PrMa96], [VaPP93]. Daubechies a introdus n [DaI88] un algoritm de
construire a coeficienilor ecuaiei EDL, pentru diferite valori ale parametrilor suport
N N , care permit undinelor i s genereze baze ortonormale de undine cu suport
compact. Algoritmul Daubechies poate fi gsit n [StSt07] i [SSP09]. Ambii algoritmi
Daubechies-deRham i Daubechies joac roluri importante n construirea modelului de
predicie.
Asupra unui semnal f (i, prin urmare, a unei undine), se pot aplica dou tipuri de
operaii, pentru a i schimba rezoluia n timp: scalare i deplasare/decalare temporala (sau
translatare). Ele sunt definite mai jos (respectiv), pentru orice t R :

( f ) (t ) = 2 f ( 2 t ) , m Z ;
( q f ) (t ) = f ( t n ) , n Z .
m

(4.14)
(4.15)

Prin scalarea (4.14), orice semnal poate fi dilatat (pentru m > 0 ) sau contractat (pentru
m < 0 ). Un semnal dilatat este considerat o versiune aproximat grosier a semnalului
original, n termenii rezoluiei n timp. Mai mult, conform Principiului de Incertitudine GaborHeisenberg [StSt07], spectrul unui semnal dilatat/contractat este o versiune
contractat/dilatat a spectrului original. Astfel, n principiu, prin micorarea rezoluiei n
timp, crete rezoluia n frecven (i invers). Prin translatarea (4.15), variaia semnalului
original este ntrziat (pentru n > 0 ) sau anticipat (pentru n < 0 ).
Un semnal f poate aadar genera o familie de undine scalate i translatate

{f

m ,n

= q n m f }

m ,nZ

, unde:
83

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

(q

m f ) (t ) = 2 m f ( 2 m (t n ) ) , t R .

(4.16)

Structura multi-rezoluie a lui Mallat pentru semnale stabile de energie finit este bazat
pe familii de tip (4.16). Ea const ntr-o colecie { Wm }mZ de subspaii ortogonale generate
de toate translaiile temporale aplicate versiunilor scalate ale undinei mam. Cu alte
cuvinte, orice

Wm

este generat de familia m,n = q

m }

nZ

, care, n plus, este o baz

ortogonal de undine. Undina tat joac un rol similar. Astfel, baza ortogonal

m ,n

= q n m }

nZ

genereaz subspaiul

Vm

i:

Vm+1 Wm+1 & Vm = Vm+1 Wm+1 , m Z .


Prin convenie,

Wm

Vm

este subspaiul tuturor semnalelor cu rezoluie temporal 2

(4.17)
m

, iar

este subspaiul care include semnale de detaliu, cu aceeai rezoluie n timp ca

Vm1 , adic 21m (dubl). De aceea, conform proprietilor (4.17), orice


m
semnal f m Vm (cu rezoluia 2 ) poate fi exprimat printr-o sum de dou semnale
m1
ortogonale: versiunea dilatat f m+1 Vm+1 (cu rezolutie 2
) i versiunea detaliat

m
f m+1 Wm+1 (cu rezoluie 2 ).
semnalele lui

n aplicaii, numai un numr finit de subspaii sunt utilizate. De regul, analiza i sinteza
se bazeaz pe urmtoarea structur multi-rezoluie:

V0 = W1 W 2 " WM VM ,

(4.18)

unde M 1 este cel mai mic nivel scalar care poate fi considerat. Proprietatea (4.18)
conduce la urmtoarea reprezentare asociat unui semnal f :
M

f 0 c0,n 0,n cM ,n M ,n + d m,n m,n ,


nZ

nZ

unde f 0 este proiecia lui f pe

V0

(4.19)

m=1 nZ

iar coeficienii undin sunt calculai n mod natural

astfel:

c0,n = f , 0,n

& c M ,n = f , M ,n

& d m ,n = f , m ,n .

(4.20)

O implementare eficient a ecuaiilor (4.19) (de analiz) i (4.20) (de sintez) a fost
propus de ctre Mallat in [MaS89], cu ajutorul a trei operaii cu timp discret: filtrare (sau
convoluie, ), decimare ( 2 ) i interpolare ( 2 ). Prin decimare, se elimin fiecare
eantion par din date, iar prin interpolare este inserat o valoare nul ntre oricare dou
eantioane consecutive. Dac, n general, secvena de coeficieni ai EDL se noteaz prin
g , pot fi definii operatorii liniari de mai jos:

I x x h 2 ( I x ) [ n] =

k 2 n

x[ k ] , n Z ;

(4.21)

k 2 n

x[ k ] , n Z .

(4.22)

kZ

H x ( x g ) 2 ( H x ) [ n] =

kZ

n aceste ecuaii, x este o secven arbitrar cu timp discret i x corespunde versiunii


oglindite ( x[ n] = x[ n] , n Z ). Definiiile (4.21) si (4.22), mpreun cu EDL (4.10) i
EDL (4.11), conduc la urmtoarele ecuaii recursive, verificate de coeficienii undin:
84

RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>

cm+1 I cm & d m+1 H cm , m 0, M 1 .

(4.23)

De fapt, ecuaiile (4.23) sunt utilizate n analiza semnalului. Pe de alt parte, sinteza
semnalului este exprimat, de asemenea, recursiv:

cm I cm+1 + H d m+1 , m M 1,0 .

(4.24)

unde I i H sunt operatorii adjunci exprimai mai jos:

I x x 2 h I x [ n] =

H x x 2 g H x [ n] =

kZ

n 2 k

kZ

n 2 k

x[ k ] , n Z ;

(4.25)

x[ k ] , n Z .

(4.26)

Ecuaiile de analiz i sintez (4.23) i (4.24) constituie nucleul Algoritmului lui Mallat
(AM). Operatorii liniari i adjuncii lor verific unele proprieti remarcabile (echivalente cu
normalizarea (4.12) i condiiile Nyquist[2] (4.13)):

II HH J & IH HI P ,

(4.27)

unde J este operatorul de identitate i P este operatorul nul.


Mai mult, ecuaia de sintez (4.24) este verificat graie urmtoarei proprieti de
reconstrucie perfect:

II + HH J ,

(4.28)

ca n Figura 4.3.

H+

H!

~g
x

xG

Analiz
~

Sintez
2

xH

I+

I!

Figura 4.3. Proprietatea de reconstrucie perfect a undinelor ortogonale.


Aceast figur ilustreaz o caracteristic suplimentar interesant: AM poate fi
implementat utiliznd bancuri de filtre oglindite n cuadratur (adic de tip QMF) [VaPP93].
Analiza bancurilor de tip QMF este unic asociat unui arbore binar, unde nodurile
interioare au cte 2 urmai, corespunztori operatorilor I i H . Este binecunoscut faptul
c bancurile de tip QMF realizeaz o segmentare unic n sub-benzi de frecven. De
exemplu, n Figura 4.3, xH este un semnal de frecven joas, iar xG este un semnal de
frecven nalt. Astfel, ramura de analiz a Algoritmului lui Mallat corespunde unei
configuraii n frecven unde doar sub-benzile de joas frecven sunt divizate n 2 pri,
ca n Figura 4.4.
85

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

Spectru

iM+1
2
4

(1,1)

0
(0,0)

(2,1)

(1,0)

...

iM

frecven
nalt

im+1+1

.i
(m+1,1)
(2,0) .. m
im+1
(m,0)
(m+1,0) ...iM-1
frecven
joas
(M-1,0)

0 2-M.../4

/2

iM+1
(M,1)
iM
(M,0)

Figura 4.4. Corespondena timp-frecven n Algoritmul lui Mallat.


Rafinarea n sub-benzi de frecven nseamn creterea rezoluiei n frecven, dar pe
seama descreterii rezoluiei n timp. Dac i sub-benzile de frecven medie sau nalt
trebuie rafinate, structura multi-rezoluie trebuie generalizat. Din fericire, n [CoWi92] a
fost demonstrat c oricare din subspaiile Wm poate fi divizat n dou subspaii ortogonale.
De aceast dat, rolul undinei tat este jucat de ctre undina m,0 . Iternd aceast

poprietate, rezult c orice subspaiu, care face parte n mod curent din structura multirezoluie, poate fi de asemenea rafinat.
Pentru a descrie o structur multi-rezoluie generalizat, se pornete de la un arbore
binar, unde fiecare nod (nu numai cele corespunztoare sub-benzilor de joasa frecven)
poate fi expandat. Nodurile sunt indexate ca n Figura 4.4, att dup o etichet ( m, pm ) ,
unde m 0, M

este adncimea (nivelul) i

pm 0,2m 1 este azimutul n cadrul

arborelui, ct i dup un singur index im = 2 + pm 1 . Arborele corespunde unei


m

segmentri unice n frecven, ca n Figura 4.5. Tot unic asociate acestuia sunt i bancul
de tip QMF sau structura multi-rezoluie.
Se consider c nodul ( m, pm ) furnizeaz coeficienii undin corespunztori proieciei
semnalului original pe subspaiul

Sm, p

, generat de familia de undine m, pm ,n

nZ

. Familia

este de fapt o baz ortogonal, referit de asemenea, ca pachet de undine. Pachetul de


undine generic, m, pm ,0 , poate fi generat prin utilizarea EDL sau EDL, depinznd de
paritatea azimutului:

m, pm ,0 (t ) = 2 n m1, pm / 2 ,0 (2t n ) , t R ,

(4.29)

nZ

unde h dac pm este par, sau g , altfel. Evident, ecuaia recursiv (4.29)

pornete de la 0,0,0 i continu cu 1,0,0 1,0 , 1,1,0 1,0 . Celelalte pachete de

undine m, pm ,n

nZ

sunt doar versiuni decalate ale lui m, pm ,0 .


86

RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>

6
(2,3)

(2,2)

0
(0,0)

12
(3,5)

5
(3,4)

11

24
(4,9)
23
(4,8)
22
(4,7)

10
(3,3)
4
(2,1)
21
(3,2)
(4,6)
9
(1,0)
8
1
(3,1)
16
(2,0)
3
(4,1)
(3,0)
7
15
(4,0)
low
frequency

middle frequency

(1,1)

high
frequency

Spectrum
15 16

21 22 23 24

12

0 2-4

/4

/2

3/4

Figura 4.5. Corespondena generalizat timp-frecven.


Structura multi-rezoluie produs de arborele binar poate fi exprimat astfel:

V0 =

S m, p ,

( m , p )M P

(4.30)

unde M P este produsul direct al mulimilor finite care includ toate nivelurile de
adncime i azimuturile frunzelor arborelui (care sunt noduri ale frontierei arborelui). n
consecin, reprezentarea asociat semnalului f este urmtoarea:

f0
unde f 0 este proiecia lui f pe

M P c

( m , p )

nZ

m , p ,n

m , p ,n ,

(4.31)

V0 . Coeficienii undin sunt calculai natural ca mai jos:

cm, p ,n = f , m, p ,n , (m, p ) M P , n Z .

(4.32)

Interesant, coeficienii undin pot fi, de asemenea, calculai recursiv, ca n cazul


Algoritmului lui Mallat (vezi ecuaiile de analiz i sintez (4.23) i (4.24)):

cm+1,2 pm I cm, pm & cm+1,2 pm +1 H cm, pm ,

(4.33)

cm, pm I cm+1,2 pm + H cm+1,2 pm +1 ,

(4.34)

pentru orice m 0, M 1 i pm 0,2 1 . Implementarea ecuaiilor (4.33) i (4.34)


poate fi realizat tot prin intermediul bancurilor QMF, fapt care nchide cercul.
Evident, subspaiul U este identificat cu V0 i yW cu y0 . Proiecia serie de timp pe V0
m

(i.e. y0 ) este calculat uor ca n prima identitate din (4.19), prin:


def

def

Ny

c0,n = c0,0,n = y, 0,0,n = y ( tk ) ( tk n ) , n Z .


k =1

87

(4.35)

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

Numrul coeficienilor undin (4.35) este totui finit, deoarece undina tat are suport
compact.
4.3. Alegerea pachetelor de undine optimale prin minimizarea entropiei
Odat ce cadrul structurii multi-rezoluie a fost stabilit (prin specificarea perechii de
undine i ), singura problem rmas este alegerea unei colecii adecvate de pachete
de undine. Pentru a rezolva aceast problem, trebuie utilizat o msur a informaiei.
Astfel, arborele de analiz va fi construit adaptiv, depinznd de caracteristicile principale
ale spectrului datelor. O msura introdus n [ShCE48] de Claude Shannon este entropia
semnalului. n cazul unui semnal discret determinist x , entropia este definit astfel:

| x[ n] |
| x[ n] |
log 2
,
E ( x)
nZ E ( x )

H ( x ) =

(4.36)

unde:
def

E ( x ) = | x[ n] |2 ,

(4.37)

nZ

este energia semnalului. Entropia (4.36) cuantific numrul mediu de bii necesari
codificrii unui eantion al semnalului. De asemenea, entropia exprim att redundana
semnalului ct i ordinea intrinsec. Cu ct entropia este mai mic, cu att semnalul este
mai puin redundant i mai ordonat. Redundana este o caracteristic important pentru
performanele compresiei de date. De regul, semnalele puternic redundante sunt
comprimate cu o rat mai mare dect cele slab redundante. Totui, n cazul analizei bazate
pe undine, redundana slab permite informaiei semnalului s fie concentrat ntr-un
numr mic de coeficieni, datorit ordinii intrinseci mari a mulimii lor.
Entropia poate fi evaluat pentru semnalul rezultat din concatenarea coeficienilor
undin care corespund frontierei arborelui binar curent. Se pleac de la entropia datelor
originale:

H ( c0,0 ) =
nZ

| c0,0,n |

E ( c0,0 )

log 2

| c0,0,n |

E ( c0,0 )

(4.38)

unde suma este finit. Mai departe, se calculeaz entropia semnalului concatenat

c = c1,0 c1,1 :
| c1,0,n |
|c |
|c |
|c |
log2 1,0,n 1,1,n log2 1,1,n .
E ( c ) nZ E ( c )
E (c)
nZ E ( c )

H ( c ) =
Se observ c

H ( c1,0 c1,1 )

(4.39)

nu este aditiv, adic nu este neprat egal cu

H ( c1,0 ) + H ( c1,1 ) .

Deoarece analiza se concentreaz asupra a dou sub-benzi de frecven, entropia


(4.39) este cel mult egal cu entropia (4.38). Mai departe, prin expandarea nodurilor (1,0)
i/sau (1,1) trebuie comparate trei semnale n termeni de entropie: c2,0 c2,1 c1,1 ,

c1,0 c2,2 c2,3 i c2,0 c2,1 c2,2 c2,3 . Doar configuraia cu entropie minim trebuie
selectat din cele trei menionate. Pe msur ce expandarea arborelui avanseaz, din ce
n ce mai multe semnale trebuie comparate ntre ele. De fapt, numrul de posibiliti crete
exponenial. Astfel, o cutare exhaustiv a arborelui de entropie minim devine ineficient
chiar pentru un nivel mic de adncime.
88

RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>

De aceea, problema selectrii bazei de undine de entropie minim este echivalent cu


cutarea optimului n cadrul unui arbore n care se asociaz costuri arcelor. O astfel de
problem poate fi rezolvat prin intermediul unei tehnici care provine din domeniul
Inteligenei Artificiale [RuNo95]. O tehnic rapid numit IDA* (Iterative Deepening
Approach Star) este descris succinct n continuare.
Se consider un arbore cu noduri etichetate dup indici n N , unde rdcina are
indexul 0 . Un drum de la nodul n ctre printele su p este notat cu n "  p .
Tranziiile ntre noduri i copiii lor direci sunt penalizate cu un cost. Costul total al drumului
0 "  n este notat cu h [ n] , unde h este o aplicaie numit euristic. Fundamental,
euristica poate produce dou tipuri de costuri:

h [ n] , atunci cnd drumul 0 "  n a fost efectiv expandat;


b. estimate, h [ n] , pe drumul 0 "  n , unde p este o frunz, cnd nodul n
a. realizate,

nu a fost

nc expandat.
Practic, h [ n ] este o predicie a preului pltit dac nodul n ar fi expandat pe calea
0 "  n . Dac prediciia nu se poate realiza, euristica estimat primete valoarea zero.
Costul total al nodului n este

H [ n] = h [ n] + h [ n]

i nu poate depi valoarea adevrat,

dar necunoscut H . De aici provine simbolul stea () asociat numelui IDA. Totui,
trebuie s fie, de asemenea, cresctoare:

H [ n] = h [ n] + h [ n] H [ p ] = h [ p ] + h [ p ] ,

(4.40)

unde p este un descendent al nodului n . n acest context, problema este de gsi un


drum de la rdcin ctre o frunz (nod) cu cost global minim.
Pentru a cuta drmul optim, strategia IDA* se bazeaz pe schema ilustrat n
Figura 4.6.
Orizont de
predicie

Urmtorul
nod curent

nod
curent

h[ n]
h [ n]

H [ n] = h [ n] + h[ n]

Zona explorat
Zon ne-explorat

Figura 4.6. Strategia de cutare din cadrul procedurii IDA*.


89

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

Ea const n urmtorii pai, n ceea ce privete nodul curent n :


Ct timp nu sunt ndeplinite unele condiii referitoare la euristica nodului curent
H [ n] :
1. Expandeaz oricare nod m al frontierei arborelui curent cu H [ m] H [ n]
(incluznd nodul n ), pn la primul descendent p pentru care H [ p ] > H [ n] .
2. Frontiera noului arbore fiind astfel generat, nodul urmtor al cii optime este unul
de pe frontiera cu cost minim.
Procedura poate fi oprit cu ajutorul unor condiii variate. Iat cteva dintre acestea,
destul de simple: H [ n] H 0 (cu H 0 setat a priori); n a atins o adncime maxim;

se incrementeaz cu mai puin de > 0 comparativ cu valoarea euristicii


anterioare, etc. Pot fi considerate, de asemenea, combinaii ntre aceste condiii.
n Figura 4.6, nodurile arborelui au fost grupate n dou zone: explorat (incluznd doar
nodurile cu euristica estimat) i ne-explorat (care se refer la noduri pentru care
euristica nu a fost nc estimat). Pentru uurina nelegerii, zonele sunt reprezentate
circular. Raza zonei expandate (care devine astfel un disc) este egal cu H [ n] valoarea
minim a euristicei pentru toate nodurile incluse n acea zon. Trecerea la nivelul urmtor
impune ca toate nodurile care au euristica estimat (cel mult) egal cu raza s fie
expandate pn cnd euristica urmailor (noile frunze ale arborelui) devine superioar.
Raza primete dup aceea valoarea euristicei minime a noilor frunze ale arborelui. Dac
raza crete semnificativ, de regul, procedura se oprete. Astfel, procedura IDA* se
bazeaz pe mecanismul de curare a arborelui de ramurile inutile (cunoscut sub
denumirea de pruning n limba englez), mecanism care permite saltul peste expandarea
unor noduri.
n cazul bancurilor QMF i a euristicii entropice, cutarea unei configuraii de entropie
minim a arborelui binar asociat trebuie adaptat la contextul procedurii IDA*. Astfel,
cutarea este realizat n cadrul unui meta-arbore definit aa cum sugereaz Figura 4.7.

H [ n]

[1 2]

[3 4 2]

[1 5 6]

[7 8 4 2]

[3 9 10 2]

[3 4 5 6]

[1 11 12 6]

[1 5 13 14]

Figura 4.7. Meta-arborele utilizat pentru optimizarea unui banc QMF pe ramura de analiz.
90

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

Meta-arborele este construit dup urmtoarele reguli:


a. se asociaz meta-noduri formei (adic frontierei) arborelui binar;
b. fiecare meta-nod este generat prin expandarea unui nod din arborele binar pn la
urmaii si direci;
c. fiecare meta-nod primete o etichet definit de setul de indici asociai frunzelor
arborelui binar;
d. costul unei tranziii de la un meta-nod la unul dintre copiii si este entropia
coeficienilor undin care formeaz frontiera bancului QMF asociat meta-copilului;
e. fiecrui meta-nod i se asociaz o valoare euristic egal cu suma costurilor
tranziiilor pe calea de la meta-rdcin la meta-nod;
f. euristica estimat este mereu nul.
Astfel, euristica meta-nodului, ca sum de entropii, este o aplicaie cresctoare,
conform restriciei impuse de strategia IDA*. De exemplu:

H [3 9 10 2] = H

([ c c ]) + H ([ c
1

c4 c2 ]) + H

([ c

c9 c10 c2 ]) ,

(4.41)

unde: cim cm, pm , m = log 2 (im + 1) i pm = im 2 + 1 . Procedura IDA* este iniiat s


m

ruleze n cadrul meta-arborelui astfel construit. Rezultatul este un meta-nod cu o euristic


entropic minimal, care returneaz structura optimal a arborelui QMF, M P
(corespunztoare frontierei acestuia).
4.4. Modelul de predicie bazat pe undine ortogonale
Dup ce forma optimal a arborelui binar a fost selectat, prima versiune a modelului
determinist al seriei de timp yW este exprimat ca n ecuaia (4.31). Evident, suma
interioar din (4.31) este finit, deoarece i seria de timp i rspunsurile la impuls ale QMF
au lungime finit.
Forma final a lui yW este obinut doar dup nlturarea coeficienilor undin slabi din
reprezentarea (4.31). Exist cteva criterii care stabilesc care coeficieni sunt slabi i care
nu. De exemplu, pentru orice ( m, p ) M P , se poate obine media m, p i variana

2m, p a secvenei cm, p . Atunci, toi coeficienii undin inferiori lui m, p m, p (unde nivelul
de mascare 0 este stabilit a priori) sunt considerai slabi i trebuie eliminai. (De
regul, = 3 , n cazul n care coeficienii sunt normal distribuii.) Un alt criteriu este pur
energetic. Pentru orice ( m, p ) M P , toi coeficienii cu amplitudini mai mici dect un
nivel de mascare [0,1) aplicat amplitudinii maxime a coeficienilor sunt eliminai. n
orice caz, modelul determinist al seriei de timp este:

yW (t ) =
unde

( m , p )M P nN m, p

cm, p ,n m, p ,n (t ) , t R ,

(4.42)

N m, p este mulimea finit de indici de translatare temporal rezultat dup

eliminarea coeficienilor slabi din secvena cm, p , prin utilizarea nivelului de mascare .
Pstrarea doar a coeficienilor undin puternici conduce la o compresie de date (dac ei
ar trebui transmii pe un canal de comunicaie). Compresia ar putea fi efectuat pe seama
alterrii modelului. Simulrile au artat totui c eliminarea coeficienilor slabi poate
mbunti modelul de predicie global. Acest fenomen este explicat prin faptul c modelul
bazat pe undine a coninut prea mult zgomot, codificat de ctre coeficienii slabi. Dup
cum s-a precizat, exist doar o limit fin ntre componenta util din date i perturbaiile
care le corup. Dac modelul global a fost mbuntit prin eliminarea unor coeficieni
undin, nseamn c separarea dintre cele dou componente a devenit mai precis.
91

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

4.5. Selecia unui predictor optimal prin maximizarea calitii prediciei


Plecnd de la o serie de timp dat, pot fi construii mai muli predictori, prin varierea
urmtorilor parametri:
N parametrul de suport al undinelor;
undina tat (de fapt, indexul de rezoluie al undinei, notat cu L N );
criteriul de stop al procedurii IDA* (de regul, pragul euristic > 0 );
nivelul de mascare al coeficienilor undin (notat cu [0,1) );
na , nc indicii structurali ai modelului ARMA ;
n gradul polinomului al modelului aproximant AR.
Parametrii , i n sunt mai puin importani dect ceilali. Exemple tipice de alegere
sunt urmtoarele:

= 107 ; = 0 (la nceput); n = min {3(na + nc), N y } .

(4.43)

Dup ce a fost selectat un predictor cu ajutorul criteriului PQ, prin varierea celorlali
parametri, nivelul de mascare poate fi incrementat, pentru a ndeprta coeficienii
undin parazii. Limita superioar a lui depinde de degradarea acceptat a lui PQ.
Totui, dup cum a fost menionat deja, prin creterea nivelului de mascare, predictorul i
poate mbunti performanele.
Se consider acum ceilali parametri enumerai mai sus.
De regul, parametrul de suport al undinei, N , variaz ntre 2 i 25. Acesta conduce la
un filtru cu un numr de 4 pn la 50 valori ale rspunsului la impuls. Depinznd de natura
seriei de timp, nu este obligatoriu ca filtrele cu memorie lung (adic avnd rspuns cauzal
la impuls de lungime mare) s fie mai performante dect cele cu memorie scurt, n
termeni de PQ. De regul, datele fractale necesit undine fractale, ceea ce conduce la
valori mici ale lui N . Dac N = 1 , se obin undinele Haar [DaI88], [StSt07]. Simulrile au
demonstrat c acele undine nu au putut conduce la valori mari ale PQ i de aceea ele au
fost eliminate. Toate undinele ortonormale cu suport compact din clasa Daubechies cu
N 25 s-au comportat aparent similar, n special datorit faptului c indexul lor de
regularitate Hlder (estimat n [DaI88] la o valoare de aproximativ 0.1936 N ) este
superior celui al seriei de timp. Cu alte cuvinte, undinele cu N 25 sunt prea netede
pentru seriile de timp prelucrate i nu pot codifica caracteristicile lor fractale. Evident,
exist i aici o demarcaie fin ntre comportamentul fractal determinist al seriei de timp i
perturbaiile stocastice. Ori, este de dorit ca modelul bazat pe undine s fie capabil s
extrag natura fractal intrinsec a seriei de timp, cu minim de zgomot posibil, pentru a
efectua o extrapolare precis. De aceea, undinele prea netede trebuie eliminate din
analiz.
Pentru un N dat, undina tat este construit cu o rezoluie finit utiliznd algoritmul
Daubechies-deRham [DaI88], [StSt07]. Conform acestui algoritm, undina poate fi evaluat
L
cu precizie mare la orice perioad de eantionare de tipul 2 , unde L N . Dac L = 0 ,
undina este evaluat la momente de timp discrete. Pentru L = 1 , rezoluia crete la
jumti de ntregi, dup aceea, pentru L = 2 , se obin valorile la sfert de ntregi, etc. n
mod normal, indicele de rezoluie L trebuie setat conform ratei de eantionare a seriei de
timp, dac este cunoscut.
Undina tat este necesar pentru a proiecta seria de timp pe subspaiul V 0 , cu ajutorul
ecuaiei (4.35). Simulrile au dovedit c doar setarea L = 0 (adic rata de eantionare
unitar) poate s nu conduc la predictori de calitate nalt. Deoarece axa timpului nu are
92

RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>

o unitate impus n cazul undinelor, cea mai potrivit versiune eantionat a undinei tat
poate fi gsit pentru L > 0 . De aceea, indicele L al rezoluiei trebuie s varieze, pentru a
l gsi pe cel mai bun (n sensul maximizrii lui PQ). Deoarece N 2 (adic indicele de
regularitate Hlder este cel puin 0.3872 ) caracteristicile fractale globale ale undinei sunt
obinute cnd L atinge limita superioar egal cu 6 . Peste aceast limit, noile eantioane
nu aduc nici o informaie nou privind discontinuitile microscopice la nivelul derivatelor
undinei, de aceea, trebuie evitat supra-eantionarea.
n cazul unei eantionri neuniforme, unele (sau toate) momentele de timp ale seriei de
L
timp pot fi diferite de multiplii ntregi ai lui 2 (adic de momentele de eantionare ale
undinei tat). De aceea, proiecia seriei de timp pe V 0 poate fi doar aproximat prin
regsirea celor mai apropiate eantioane ale undinei de eantioanele sale, pentru o
anumit rezoluie.
Predicia cu undine poate fi totui realizat, indiferent de tipul de eantionare. Este
suficient s se asocieze indici corespunztori datelor numerice (seria de timp i undina
tat), adic s se considere cazul de eantionare uniform, prin simpla enumerare a
datelor. Dup aceasta, se alege eantionarea uniform pentru a simplifica abordarea i a
aplica avantajos algoritmul Daubechies-deRham. n acest caz, perioada de eantionare
L
este fixat la 2 , utiliznd rezoluia undinei tat. Astfel, ecuaia (4.35) trebuie rescris ca
mai jos:
def

c0,0,n = y,
unde:

Ny

Ny

L
= y[k ] ( 2 (k n) ) = y[k ]0,0,
n [k ] , n Z ,

L
0,0, n

k =1

(4.44)

k =1

L
L
0,0,
n [ k ] = ( 2 ( k n) ) , k Z
def

(4.45)

nZ

este familia de undine tat discretizate, translatate.


ntrebarea care se pune n cazul eantionrii undinei tat este urmtoarea: are familia
(4.45) calitatea de baz ortonormal a subspaiului V 0 (n contextul semnalelor discrete
stabile, de energie finit)? Pentru a da un rspuns corect, ar trebui dezvoltat un
raionament complicat, bazat pe rezultatele obinute n special de Mallat [MaS99],
Daubechies [DaI90] i Meyer [MeY87]. Dezvoltarea unei teorii care a fost deja abordat n
trecut nu constituie scopul acestui raport de cercetare. n schimb am preferat un rspuns
simplu, direct i intuitiv:
a. Dac undina este eantionat la momente de timp ntregi ( L = 0 ), atunci familia
(4.45) este o baz ortogonal a lui V 0 . Pentru a obine o baz ortonormal, este
necesar normalizarea cu 0,0,0 .
0

b. Dac undina este eantionat cu L > 0 , atunci familia (4.45) este un cordaj dens
(tight frame) al lui V 0 .
Conceptul de cordaj dens a fost probabil introdus n contextul undinelor de ctre
Daubechies [DaI90] i dezvoltat mai departe de Lawton [LaWM90]. (Mai trziu, Daubechies
i colaboratorii ei a introdus de asemenea numele de cordeline (framelets) pentru
cordajele dense ale undinelor [DHRS03].) Prin definiie, o familie de vectori {vn }nZ este
un cordaj dens (tight frame) dac genereaz un spaiu Hilbert
poate fi extins astfel:
93

i orice element u H

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

u=

1
u, vn vn ,
A nZ

(4.46)

unde A R este constanta cordajului (independent de u ). (Alte definiii pot fi de


asemenea enunate, dar toate sunt echivalente cu (4.46).) Reprezentarea (4.46) este
foarte similar cu cea unui vector ntr-o baz ortonormal. Cordajele dense sunt baze cu
redundan, deoarece vectorii lor nu sunt lineari independeni. Din acest motiv, ele se mai
numesc i supra-baze.
Din fericire, n cazul undinelor discretizate, dei necunoscut, constanta cordajului este
invariant la variaia scalei de reprezentare. n consecin, este suficient s se determine
constanta cordajului pentru reprezentarea seriei de timp cu ajutorul cadrul familiei (4.45):

1
L
c0,0,n 0,0,

n .
A nZ

(4.47)

Suma din (4.47) este totui finit, deoarece att seria de timp ct i undina tat discretizat
sunt secvene de lungime finit.
Dou abordri pot conduce la estimarea valorii lui A . Deoarece A nu depinde de seria
de timp, ar trebui adoptat un raionament riguros, bazat pe proprietile undinei tat. Dar
aceast abordare este mai mult teoretic i greoaie, astfel c nu este tratat n acest
context. O abordare mai rapid de estimare a lui A se bazeaz pe Metoda celor mai mici
ptrate (MCMMP), care este mai practic. Conform MCMMP, trebuie minimizat parabola:
2

1
1 def
L
V = y[ n] c0,0, p 0,0,
n
[
]
.
p
A pZ
A nZ

(4.48)

Dup cteva calcule algebrice, unica rdcin a primei derivate a parabolei (ca funcie de
1/ A i nu de A ) poate fi exprimat astfel:

1
=
A

c
nZ pZ

L
0,0, p 0,0, p

[ n] y[ n]

c
[
n
]

0,0, p 0,0, p
nZ pZ

(4.49)

Dei constanta cordajului pare s depind de seria de timp analizat, simulrile pe cteva
serii de timp de provenien diferit au artat c variaia este nesemnificativ, fiind cauzat
n special de erorile numerice. De altfel, utilizarea MCMMP nu poate conduce dect la o
estimaie a constantei cordajului, care motenete o parte din zgomotul seriei de timp.
Aceasta este proprietatea care creaz dependena dintre estimaie i datele msurate.
Se observ c ecuaia (4.49) poate fi utilizat chiar i n cazul n care undina tat este
eantionat la momente ntregi, pentru a crete precizia modelului.
Revenind la problema abordat n cadrul acestui paragraf, construcia predictorului
optimal se poate realiza printr-o cutare exhaustiv n mulimea definit de plajele de
variaie ale parametrilor principali. De notat c predictorul se adapteaz la datele
msurate, deoarece bancul de QMF din implementarea transformrii undin este
determinat prin minimizarea entropiei din frunzele acestuia. Intervenia Algoritmului IDA*
reduce sensibil durata de cutare, fapt care permite evaluarea lui PQ pentru toi predictorii.
94

RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>

4.6. Algoritmul FORWAVER 1


Descrierea din paragrafele anterioare ale acestei seciuni este sumarizat n
Algoritmul 4.1, numit i (predictor) FORWAVER 1 (forecasting with orthogonal wavelets).
Algoritmul 4.1. FORWAVER 1 un algoritm de predicie a seriilor de timp nestaionare,
folosind pachete de undine ortogonale, cu suport compact.
Date de intrare:
) o serie de timp y de lungime finit N y ;

) momentele de eantionare {tn }n1, N sau perioada de eantionare Ts (implicit,


y

tn = nTs , n 1, N y i/sau Ts = 1 );
) lungimea orizontului de predicie, K (cu K << N y ); de regul, K 7 ;

{ }

) momentele de predicie t N y + k

(implicit, t N y + k = N y + k Ts , k 1, K );

k1, K

) parametri de configurare:

valoarea maxim a parametrului suport al undinei N max N \{1} (implicit,

N max = 25 );

valoarea maxim a indicelui de rezoluie Lmax N (implicit, Lmax = 6 );


7

pragul euristic > 0 (implicit, = 10 );


valoarea minim a nivelului de mascare [0,1) (implicit, = 0 );
valoarea maxim a indicilor structurali ARMA NA, NC N (implicit,

NA = NC = 25 );
expresia gradului n corespunztor mpririi infinte ntre polinoamele AR

i MA (implicit, n = min 3( na + nc), N y ).


1. Prelucrarea preliminar a datelor.

1.1. Se ordoneaz datele: y[ n] y ( tn ) , n 1, N y .


1.2. Se calculeaz media datelor, y i deviaia standard y .
1.3. Se centreaz datele pe medie: y y y .

2. Se construiete predictorul clasic y PARMA , prin invocarea Algoritmului PARMA.


3. Se efectueaz o predicie grosier a datelor utiliznd modelul clasic. Se noteaz

valorile predictate cu y PARMA N y + k

k1,K

4. Pentru orice N 2, N max :


4.1. Se genereaz rspunsurile la impuls h i g ale QMF (fiecare de lungime 2 N ),
utiliznd Algoritmul lui Daubechies.
4.2. Pentru orice L 0, Lmax , execut:
4.2.1. Se evalueaz undina tat 0,0,0 (corespunztoare indicelui de rezoluie
L

L ) utiliznd Algoritmul Daubechies-deRham.


95

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

Algoritmul 4.1. FORWAVER 1 un algoritm de predicie a seriilor de timp ... (continuare)


4.2.2. Se proiecteaz datele extinse
subspaiul

{ }
{c }

V0 ,

{ y[ n]}n1,N

y PARMA N y + k

prin intermediul familiei de undine

k1,K

pe

discretizate

L
0,0, n nZ ,

adic se calculeaz coeficienii din rdcina arborelui binar

0,0,n nZ ,

utiliznd ecuaiile (4.44)-(4.45).

4.2.3. Se estimeaz constanta cordajului dens A , utiliznd MCMMP, conform


relaiei (4.49).
4.2.4. Se determin bancul de filtre optimal utiliznd prcedura IDA* cu pragul

euristic . Intrarea bancului de filtre este secvena c0,0,n

nZ

i ieirea

este o colecie de coeficieni undin corespunztori frunzelor sale.


Mulimea de etichete ale frunzelor este M P , iar indicii coeficienilor

undin sunt grupai n seturi finite N m, p


4.2.5. Dac

> 0,

se

elimin

( m , p )M P

coeficienii

undin

parazii

(slabi)

corespunzatori. Coeficienii undin aparin atunci mulimii finite restrnse

{N }

m , p ( m , p )M P

4.2.6. Se construiete modelul bazat pe undine yW , pe orizontul de msur i


predicie (extrapolare), cu ajutorul ecuaiei (4.42):

yW [k ] =

( m , p )M P nN m, p

cm , p ,n mL , p ,n [k ] , k 1, N y + K ,

unde m, p ,n sunt undinele evaluate plecnd de la undina tat 0,0,0 ,


L

utiliznd bancul de filtre. Evident, graie ordonrii datelor, valoarea


extrapolat yW [ k ] corespunde yW ( tk ) , pentru orice k 1, N y + K .
4.2.7. Se extrage zgomotul colorat pe orizontul de msur restrns:

vK [ n] = y[ n] yW [ n] , n 1, N y K .
4.2.8. Pentru na 0, NA i nc 0, NC :
a. Dac na = 0 i nc > 0 , se estimeaz modelul MA al zgomotului
colorat vK , prin Metoda Wiener-Hopf.
b. Dac na > 0 i nc = 0 , se estimeaz modelul AR al zgomotului
colorat vK , prin MCMMP sau Algoritmul Levinson-Durbin.
c. Dac na > 0 i nc > 0 , se estimeaz modelul ARMA al zgomotului
colorat vK , prin MMEP.
d. Dac exist un model valid al zgomotului colorat (oricare din paii
anteriori pot eua), se construiete predictorul clasic stochastic yV ,K
utiliznd ecuaiile predictorului PARMA. (n cazul modelelor AR, nu
mai este necesar estimarea zgomotului alb.)
96

RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>

Algoritmul 4.1. FORWAVER 1 un algoritm de predicie a seriilor de timp ... (final)


e. Se predicteaz ultimele K date:

y K [ n] = yW [ n] + yV ,K [ n] , n N y K + 1, N y .
f. Se estimeaz dispersia erorii de predicie,

{ }
2
K ,k

k =1, K

, utiliznd

modelul ARMA. (n cazul modelelor MA, doar nc valori ale varianei


prediciei sunt nenule.)
g. Se evalueaz calitatea prediciei (PQ) pentru ultimele K date,
folosind definiia (3.8).
4.2.9. Se selecteaz i memoreaz indicii structurali na0 i nc0
corespunztori valorilor maxime ale calitii prediciei calculate anterior.
4.2.10. Se pstreaz n memorie valoarea maxim a calitii prediciei.
5. Se selecteaz parametrii N i L corespunztori maximului tuturor valorilor
criteriului PQ memorate. Acesta este unic asociat att modelului bazat pe undine yW
ct i perechii de indici structurali {na , nc} .

6. Se extrage zgomotul colorat pe ntregul orizont de msur: v = y yW .


7. Se estimeaz modelul ARMA al zgomotului colorat v , pentru indicii structurali na ,
nc (ca n paul 4.2.8.).
8. Se construiete predictorul stochastic yV utiliznd ecuaiile predictorului PARMA.
9. Se predicteaz seria de timp:

y N y + k = y + yW N y + k + yV N y + k , k 1, K .
2
i evalueaz dispersia erorii de predicie,
.

{ }
k

Date de ieire:

k =1, K

)}
}
varianele corespunztoare ale erorii de predicie {
(

mulimea valorilor predictate y N y + k y t N y +k

k1, K

2
k

k =1, K

;
.

Numrul 1 asociat numelui predictorului provine de la faptul c undinele sunt


ortogonale. n etapele urmtoare va fi proiectat i implementat Algoritmul de predicie
FORWAVER 2, care utilizeaz undine biortogonale [CDF92].
Paii principali ai Algoritmului 4.1 sunt discutai n detaliu n urmtoarea sub-seciune.
Aici ne concentrm doar asupra etapei 2, deoarece este invocat predictorul clasic PARMA.
Acest predictor a fost integrat din dou motive. n primul rnd, pentru a stabili o referin n
raport cu care se pot compara valorile predictate pe baz de undine. n al doilea rnd,
deoarece extensiile oferite de undinele ortogonale sunt extrem de adaptive la semnalul
analizat. Acestea nseamn c o astfel de extindere va ncerca s urmreasc nu numai
datele msurate, ci i valorile nule n afara orizontului de msur. Astfel, fr a avea vreo
informaie despre valorile seriei de timp pe orizontul de msur, modelul bazat pe undine,
yW , va furniz valori extrapolate extrem de mici sau chiar nule. De aceea, sunt absolut
necesare unele date suplimentare, chiar i grosier predictate. Se poate nelege acum de
ce, la pasul 4.2.2., nu datele msurate { y[ n]}n1, N sunt proiectate pe subspaiul V 0 , ci
y

97

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

setul extins de date,

{ y[ n]}n1,N

y PARMA N y + k

k1,K

, unde

{ y

PARMA

N y + k

k1,K

sunt valori suplimentare produse de predictorul clasic.


Pentru a completa Algoritmul 4.1, n continuare sunt sumarizai Algoritmii Daubechies i
Daubechies-deRham, care au fost invocai. Detaliile privind proiectarea acestor algoritmi
sunt precizate, de exemplu, n [StSt07] sau [SSP09].
Algoritmul 4.2. Algoritmul lui Daubechies de generare a undinelor ortogonale,
cu suport compact.
Date de intrare:
) parametrul de control al duratei undinelor cu suport compact: N 2,20 .
1. Iniializare:
def N 1

1.1. Se construiete polinomul caracteristic P ( x ) = CnN +n1 x n


n =0

(adic se evalueaz coeficienii acestuia).


1.2. Se evalueaz rdcinile polinomului caracteristic: {xn }n1, N 1 .
1.3. Se iniializeaz mulimile rdcinilor TZ: S = (reale); D = (complexe).
2. Pentru n 1, N 1 , se efectueaz urmtoarele operaii:
2.1. Se evalueaz rdcinile ecuaiei: z + z 1 = 2 4 xn , notate prin zn ,1 i zn ,2 . Evident,
zn ,2 = zn,11 .

2.2. Dac rdcinile zn ,1 i zn ,2 sunt reale, ele se adaug mulimii S , adic:

S = S {zn ,1 , zn,11 } .

2.3. Dac rdcinile zn ,1 i zn ,2 sunt complexe, ele se adaug mulimii D , adic:

D = D {zn ,1 , zn,11 } . (Se pot aduga i conjugatele lor complexe, caz n care pasul

2.1. nu se va mai efectua pentru ecuaia

2 z z 1
= xn .)
4

3. Finalizare. Rdcinile TZ se regsesc printre elementele mulimilor S = {rn }n1,2 N i


r

D = {zm , zm }m1,2 N (cu N r + 2 N c = N 1 ).


c

3.1. Se aleg n manier pseudo-aleatoare N r rdcini reale din mulimea S

i N c

perechi de rdcini complex conjugate din mulimea D (cu respectarea

{ }

restriciilor de selecie): rnk

k 1, N r

zmk , zmk

k1, N c

3.2. Se construiete TCFD a secvenei coeficienilor EDL (pentru R ):

1 + e j
C (e ) = 2

2
j

def

Nr e j rnk

k =1 1 rnk

3.3. Se extrag coeficienii EDL din expresia anterioar.


Date de ieire:
secvena coeficienilor EDL: {cn }n0,2 N 1 (n numr par).
98

)(
)(

Nc e j zmk e j zmk

1 zmk 1 zmk
k =1

RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>

Algoritmul 4.3. Algoritmul Daubechies-deRham de rezolvare a EDL finite,


cu rezoluie controlat.
Date de intrare:
) parametrul de control al dimensiunii suportului undinelor: N 2,20 sau
secvena coeficienilor EDL: {cn }n0,2 N 1 ;

) pragul minimal de rezoluie: M = 2 L (de regul, L 2 + log2 N ).


1. Iniializare:
1.1. Dac nu este furnizat secvena coeficienilor EDL (adic

{cn }n0,2 N 1 ),

ea se

construiete cu ajutorul Algoritmului lui Daubechies (Algoritmul 4.2).


1.2. Se construiete matricea C N a coeficienilor EDL:
c0
0
0
0
0
0
0
c1

c2
c1
c0
0
0
0
0
c3

c2 N 3 c2 N 4 c2 N 5 c2 N 6
c3
c2
c1
c0

def

c5
c4
c3
c2 .
C N = c2 N 1 c2 N 2 c2 N 3 c2 N 4

0
0
c2 N 1 c2 N 2
c7
c6
c5
c4

0
0
0
0
c2 N 1 c2 N 2 c2 N 3 c2 N 4

0
c2 N 1 c2 N 2
0
0
0
0
0

1.3. Se determin vectorul propriu normat corespunztor valorii proprii unitare a


acestei matrici.
1.4. Se iniializeaz indicele de rezoluie: k = 1 .
1.5. Se iniializeaz numrul de valori ale undinei: M 1, N = 4( N 1) (pragul iniial de
rezoluie).
2. Ct timp M k , N < M , se efectueaz urmtoarele operaii:
2.1. Se determin undina tat cu rezoluia 2k folosind relaia:

k +1 ( 2 k 1 m ) =

2 N 1

c
n =0

k ( 2 k m n ) , m 0, M k , N .

2.2. Se incrementeaz indicele de rezoluie: k k + 1 .


2.3. Se reactualizeaz pragul de rezoluie: M " k k +1", N .
3. Se corecteaz indicele de rezoluie: k k 1 .
4. Se determin marginile de variaie M N0 , k i M N1 , k .
5. Se determin undina mam cu rezoluia 2k folosind relaia:

k +1 ( 2 k 1 m ) =

n =22 N

( 1)n c1n k ( 2 k m n ) , m M k0, N , M k1, N .

Date de ieire:
perechea de undine tat i mam {, } determinate cu rezoluia de
reprezentare 2k .
99

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

4.7. Detalii privind implementarea Agoritmului FORWAVER 1


Pentru a implementa eficient Algoritmul 4.1, trebuie exploatate cteva proprieti. Cele
mai importante dintre ele sunt prezentate n cele ce urmeaz, n ordinea pailor
algoritmului.
4.7.1. Observaii generale
La etapa 1., pasul 1.1., datele sunt simplu ordonate. Aceasta nseamn c eantionarea
neuniform nu este tratat. Principalul motiv este urmtorul: bancul de filtre nu poate fi
utilizat n cazul eantionrii neuniforme a seriei de timp, pentru a construi modelul bazat
pe undine. n acest caz, se pstreaz doar ecuaia de predicie de mai jos:

y ( tn ) =

( m , p )M P

nN m, p

cm, p ,n m, p ,n ( tn ) + yV ( tn ) , n 1, N y + K .

(4.50)

Implementarea acestei ecuaii necesit, pe de o parte, calcularea coeficienilor undin cu


ajutorul produselor scalare i, pe de alt parte, estimarea undinelor utiliznd recursiv EDL
i EDL, combinate cu criteriul entropic (4.38). Dei posibil, aceast abordare conduce
ctre o procedur consumatoare de timp i nu produce o cretere semnificativ a valorilor
PQ. Mai mult, modelul ARMA fiind numeric, este invariant la tipul eantionrii.
Ultimul pas al etapei 1. const n centrarea datelor pe media lor. Este bine cunoscut c
structura multi-rezoluie ortogonal include nchiderea interseciei dintre dou spaii
def

Lebesque: semnale stabile i semnale de energie finit (adic H = L 1 L 2 , cum s-a


menionat deja). Evident, semnalele constante nu pot aparine acestei intersecii. ns,
orice semnal practic poate fi exprimat ca o sum ntre o constant i o variaie staionar
cu medie nul. Media eliminat este utilizat numai la sfarit (n etapa 9.), pentru a corecta
valorile predictate. Se observ totui c centrarea datelor nu este aplicat n cazul
predictorulu clasic, deoarece tendina polinomial include un coeficient liber, care codific
informaia despre media semnalului.
n bucla principal 4., la pasul 4.1., doar rspunsul la impuls h este generat cu
Algoritmul lui Daubechies, corespunztor valorii curente a lui N 2, N max (deoarece

cellalt rspuns la impuls este definit de: g n = ( 1) h1n


n

n22 N ,1

). (La fel se procedeaz

i n Algoritmul 4.2.). Daubechies a demonstrat c, pentru orice N 2 , pot fi construite


mai multe secvene h (de lungime 2N ), astfel nct s se verifice condiiile (4.12) i
(4.13). n realitate, exist un grad de libertate n selectarea valorilor lui h . De aceea, n
implementarea algorimului Daubechies, parametrul liber este ales (pseudo-)aleator. Rulri
succesive pot produce diferite secvene h . n consecin, trebuie testate mai multe undine
tat cu aceeai durat. Simulrile au demonstrat totui c varierea undinei de baz n
cadrul aceluiai suport nu produce variaii semnificative ale valorilor criteriului PQ, chiar
dac arborele asociat bancului de filtre optimal poate fi modificat. Astfel, orice undin tat
cu suport [0, 2 N 1] poate fi selectat cu aproximativ aceleai perfomane.
n algoritmul invocat n pasul 4.2.1. al buclei 4.2. (Daubechies-deRham Algoritmul 4.3)
exist dou tipuri de iniializri: inconsistent i consistent. Iniializarea inconsistent este
un impuls unitar poziionat n mijlocul suportului undinei. Iniializarea consistent este
furnizat rezolvnd ecuaia spectral. Astfel, valorile undinei tat la momente ntregi sunt
mpachetate ntr-un vector propriu de norm unitar corespunztoare valorii proprii unitare
a unei matrici generate utiliznd valorile lui h (a se consulta [DaLa88a], [DaLa88b],
[StSt07] pentru detalii). Procedura implementat pentru Algoritmul 4.1 ncepe cu
iniializarea consistent, ceea ce conduce la uoar scdere a duratei de rulare.
100

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

La pasul 4.2.2., proiecia semnalului extins pe subspaiul

V0

poate fi simplu evaluat

transformnd undina tat ntr-o fereastr glisant de-a lungul datelor. Astfel, valorile nenule
ale coeficienilor undin (4.44) sunt localizate pe un suport de lungime finit. Lungimea
secvenei de coeficieni este mai mare dect N y + K , datorit suportului undinei tat.
Evaluarea permanent a suporturilor coeficienilor undin este o operaie extrem de
important pentru sincronizarea bancurilor de filtre i precizia modelului de predicie.
Aceast operaie este detaliat la punctul 4.7.2. (care urmeaz) al paragrafului.
Implementarea procedurii IDA* (invocat la pasul 4.2.4.) necesit o reprezentare clar a
arborelui binar i a parametrilor si. Sunt posibile cteva abordri, dependente n general
de limbajul de programare utilizat pentru implementarea procedurii. Reprezentarea
descris n cele ce urmeaz ine cont de caracteristicile limbajului MATLAB. Astfel, fiecrui
meta-nod i se asociaz o celul cu 4 cmpuri, descris mai jos.
Matricea L de tip 2 L2 codific adncimea i azimutul frontierei curente a arborelui

binar, unde L2 N este numrul de frunze. Practic, matricea L include mulimea


curent M (de valori ale adncimii frunzelor) pe prima linie i mulimea curent P (de
valori ale azimutului frunzelor) pe a doua linie. Cnd o frunz devine nod intern al
arborelui binar (prin expandare), coloana sa corespunztoare este eliminat din L i
la sfrit se adaug dou noi coloane (corespunztoare nodurilor nou expandate
urmaii acesteia). Figura 4.8 ilustreaz acest principiu.

Mleft
Pleft

m
p

Mright
Pright

m+1

m+1

2p

2p+1

Mleft
Pleft

Mright
Pright

m+1 m+1
2p

2p+1

Figura 4.8. Principiul actualizrii matricii informatice a frunzelor binare.

N 2 L2 include toate secvenele de coeficieni undin


corespunztori nodurilor matricii L . Secvenele sunt enumerate pe coloane, ncepnd

Matricea C

de tip

cu primul coeficient nenul. Secvenele scurte sunt completate cu zerouri pn la


lungimea maxim N 2 . O astfel de matrice arat ca n Figura 4.9. Este actualizat n
acelai mod i timp cu matricea L .

C
0

0 0

0
0 0

Figura 4.9. Configuraia matricii informatice a coeficienilor undin.


101

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

Secvenele scurte corespund frunzelor nalte, n timp ce secvenele lungi sunt


asociate frunzelor apropiate de rdcina arborelui. Evident, exist cel puin dou
coloane care includ secvena cu cea mai mic lungime. Ordinea n care secvenele
sunt aranjate n matricea C este dat de ordinea coloanelor din matricea L .
Matricea S de tip 2 L2 conine limitele suportului. Suportul secvenei de coeficieni
def

undin cm , p este convenional reprezentat ca: N m , p = N m , p , N m , p . Limitele inferioare


0

min

max

sunt aranjate pe prima linie a matricii S iar limitele superioare pe a doua linie.
Evident, matricea S este sincronizat cu matricile L i C n ceea ce privete
actualizarea.
Mrimea scalar H memoreaz entropia total a cii de la meta-rdcin la metanodul curent (suma entropiilor corespunztoare tuturor meta-nodurilor de pe cale).
Un vector de celule v este asociat frontierei curente a meta-arborelui. De fiecare dat
cnd un meta-nod este expandat (el ar putea avea mai mult de doi meta-urmai), celula lui
este eliminat din vectorul v i celulele noilor meta-frunze generate sunt adugate la
sfrit (urmnd acelai principiu de actualizare a matricii L , ilustrat n Figura 4.8). Raza
curent a zonei explorate este egal cu valoarea total a entropiei stocate ntr-una dintre
celulele incluse n vectorul meta-frontierei v . De fapt, raza este minimum tuturor metaentropiilor gsite prin inspectarea celulelor lui v . Meta-nodurile de expandat sunt cele din
v , cu entropia total minim, adic egal cu raza. Fie v i = {Li , Ci , Si , H i } meta-nodul de
expandat. Expandarea const atunci n generarea unui numr de meta-noduri egal cu
numrul de coloane incluse n matricea Li . Fiecare nou meta-nod este obinut prin
aplicarea operaiilor urmtoare:
a. Se reine coloana curent din L i . Dac adncimea curent nu a atins o frontier
maxim, se nlocuiete valoarea maxim cu etichetele copiilor si, conform
principiului ilustrat n Figura 4.8. Adncimea maxim a unui arbore binar, M y ,
depinde de lungimea secvenei de coeficieni c0,0 . Cu alte cuvinte:
max
min
M y = log 2 ( N 0,0
N 0,0
+ 1) .

(4.51)

b. Se calculeaz noile secvene ale coeficienilor undin ncepnd cu coloana curent


din Ci , utiliznd blocul elementar al bancului de filtre de analiz, din Figura 4.3.
c. Se evalueaz suporturile noilor secvene (ca n paragraful urmtor) i se extrag
limitele lor.
d. Se nlocuiete coloana curent din Ci cu coloanele noilor secvene, dup
completarea corespunztoare cu zerouri.
e. Se nlocuiete coloana curent din S i cu dou noi coloane care conin limitele
suporturilor.
f. Se evalueaz entropia noului arbore binar generat i se adaug la meta-entropia
curent, H i .
g. Se nlocuiete meta-entropia curent

Hi

cu noua entropie.

Pentru a opri procedura IDA*, se utilizeaz un prag euristic > 0 . Fie

chiar nainte de expandarea unui meta-nod i v j = L j , C j , S j , H

R valoarea razei
noul meta-nod

(dup expandare), selectat ca un candidat pentru expandare. nainte de efectuarea noii


expandri, se testeaz urmtoarea inegalitate:
102

RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>

H j R
< .
R

(4.52)

Meta-nodul este expandat numai dac nu se verific inegalitatea (4.52), adic testul de
oprire eueaz. De asemenea, chiar n acest caz, procedura poate fi oprit cnd toate
nodurile binare ale lui L j au atins adncimea maxim (4.51). Dac testul de stop (4.52)
reuete, meta-nodul final este v j .
La pasul 4.2.5., dac nivelul de mascare [0,1) nu este nul, se efectueaz
eliminarea coeficienilor slabi. Eliminarea nseamn n acest context nlocuirea cu valori
nule. De aceea, coeficienii slabi nu sunt eliminai, ci doar mascai prin utilizarea valorilor
nule. Mai precis, coeficientul cm , p ,n al secvenei cm , p este mascat cnd condiia de
mascare de mai jos este verificat:

cm , p ,n < max
cm , p ,i .
0
iN m , p

(4.53)

Se observ c nivelul de mascare produce anularea unui anumit procent din masa
coeficienilor undin. De exemplu, alegerea = 5% poate conduce la mascarea a 70%
dintre coeficienii undinei originale, ale cror amplitudini se situeaz sub 5% din
amplitudinea maxim.
L
Singura problem de rezolvat la pasul 4.2.6. este regsirea valorilor undinelor m, p ,n .
Ele pot fi evaluate prin intermediul bancului de filtre, dup cum este explicat la punctul
4.7.3. (care urmeaz) din acest paragraf.
Se sare direct la bucla 4.2.8. Singura observaie care ar trebui evideniat aici este
faptul c seria de timp ar putea conduce la modele ARMA invalide, pentru unii indici
structurali (datorit discrepanelor puternice dintre date i modelul selectat). Modelele
invalide sunt tratate ca vide iar PQ corespunztor este nlocuit cu EQ (definiia (3.9)). De
regul, EQ are valori inferioare lui PQ pentru majoritatea modelelor ARMA valide. Mai
mult, dac NA i NC sunt destul de mari, numrul de modele invalide este sensibil mai
mic dect numrul de modele valide, astfel c selectarea unui predictor optimal nu este
afectat.
4.7.2. Evaluarea suporturilor corespunztoare coeficienilor undin
Se introduce notaia cunoscut Supp( x ) = N x , N x
pentru suportul oricrui semnal
discret de lungime finit x . Primul pas n evaluarea suporturilor corespunztoare
coeficienilor undin este setarea suporturilor semnalelor implicate n ecuaii ca (4.44) sau
min

max

(4.45). Pentru a extinde generalitatea, se consider c Supp( y ) = N y , N y


min

max

L
min
max
Supp ( 0,0,
n ) = N , L , N , L . Astfel, coeficienii corespunztori rdcinii arborelui sunt:
def

c0,0,n = y,

L
0,0, n

N ymax

L
y[k ]0,0,
n [k ] , n Z .

(4.54)

k = N ymin

Evident, valoarea curent c0,0,n este eventual nenul dac i numai dac:
max
min
max
N min
,
, L k n N , L , k N y , N y

ceea ce implic:
103

(4.55)

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

max N min

Supp ( c0,0 ) N ymin N max


,L , N y
,L .

(4.56)

Operatorii parte ntreag (inferioar) i (superioar) nu sunt neaprat necesari n


relaie (4.56), deoarece argumentele lor sunt valori ntregi. Totui, operatorii se aplic
foarte bine n cazul n care acele argumente lor nu au neaprat valori ntregi. De aceea,
relaia (4.56) va fi foarte util pentru pasul urmtor al raionamentului.
Continum s presupunem c argumentele operatorilor parte ntreag nu sunt neaprat

( )

ntregi. Din relaia (4.56), rezult limitele lui Supp c0,0 :


min
max
& N 0,0

= N ymin N max
= N ymax N min
N 0,0
,L
,L .

Se observ c difrenele

(N

min
y

(4.57)

max
N max
N min
, L ) i/sau ( N y
, L ) pot fi negative. Indiferent

de semnul lor, proprietile operatorilor parte ntreag furnizeaz urmtoarele expresii ale
limitelor suportului (4.57):
min
N 0,0
min N max

= sign ( N ymin N max


,L ) N y
,L

.
N max = sign ( N min N max ) N max N min
y
, L
, L
y
0,0

(4.58)

Expresiile (4.57) i (4.58) pot fi combinate, pentru a exprima adecvat limitele (utiliznd doar

operatorul inferior ), n cazul n care N y

max

N min ) este nenegativ:

min
N 0,0
min N max

= sign ( N ymin N max


,L ) N y
,L

.
N max = N max N min
, L
0,0 y

(4.59)

Acesta este cazul n care se utilizeaz undine ortogonale ale clasei Daubechies i seriei
de timp, deoarece:
L
max
Supp( y ) = 1, N y & Supp ( 0,0,
n ) = 1, N , L .

Limita superioar a lui Supp 0,0,n


L

(4.60)

) depinde att de parametrul suport N , ct i de indicele

de rezoluie L , dup cum se poate obine direct:


L
N max
, L = 2 (2 N 1) 1 .

(4.61)

n (4.60) i (4.61), se ine seama de proprietatea elementar a undinei tat originale


(al crei support este [0, 2 N 1] ) de a fi nul n 0 i 2 N 1, datorit continuitii. De
aceea, n acest caz:
min
max
N 0,0
= 2 2 L (2 N 1) & N 0,0
= N ymax 1.

(4.62)

n (4.62), se pot recunoate uor poziiile extreme ale ferestrei glisante a undinei tat
pentru care valorile nenegative ar urmri valorile seriei de timp, ca s se poat calcula
produsul scalar (4.54).
Prima etap de calcul fiind ncheiat, limitele suportului altor coeficieni undin pot fi
obinui successiv, conform unui raionament inductiv.
104

RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>

Reamintim maniera n care coeficienii undin sunt calculai utiliznd bancul de filtre (ca
n Figura 4.3), datorit proprietilor (4.23). ncepnd cu secvena generic cm , p , cu
max
Supp ( cm , p ) = N mmin
, p , N m , p , secvenele rezultate prin expandare cm +1,2 p i cm +1,2 p +1 sunt

produse printr-o pereche de operaii succesive: filtrare i decimare. Filtrarea este efectuat
cu ajutorul QMF oglindite.
Mai precis, nainte de decimare, rezult secvena intermediar urmtoare:
0
m +1,2 p ,n

def

N hmax


h[k ]cm, p ,nk

0
m +1,2 p ,n

& c

k = N hmin


def

N gmax


g [k ]cm , p ,nk , n Z .

(4.63)

k = N gmin


Evident, ambele ecuaii din (4.63) sunt similare ecuaiei (4.54), cu semnale diferite, ns. n
consecin, suporturile secvenelor intermediare au urmtoarele limite:
def
def
min
min
min
min
min
min
=
+
N
N
N
N
m, p
m +1,2 p +1,0 = N m , p + N g
h
m+1,2 p ,0

&
.
def
max def max
max
max
max
max
N m+1,2 p ,0 = N m, p + N h
N m+1,2 p +1,0 = N m, p + N g

(4.64)

(Sumele din (4.63) sunt totui convoluii i nu produse scalare ca (4.54).)


Prin decimare, lungimea secvenei este aproximativ njumtit. De aceea, limtele
suporturilor corespunztoare secvenelor urmailor rezult din (4.64) i (4.58):
min

N mmin

def
, p + N h
min
min
min
N m+1,2 p = sign ( N m, p + N h )

;
max
N mmax

max def
+N
max
N m+1,2 p = sign ( N mmax
) , p 2 h
, p + N h

min

N mmin

def
, p + N g
min
min
min
N m+1,2 p +1 = sign ( N m, p + N g )

.
max
N mmax

def
max
, p + N g
max
N
+

N m+1,2 p +1 = sign ( N mmax


)
,p
g
2

(4.65)

(4.66)

Ecuaiile (4.65) i (4.66) sunt relaii recursive care permit evaluarea limitelor suporturilor
pentru orice secven de coeficieni undin. Iniializarea este dat de (4.57).
n cazul undinelor ortogonale cu suport compacr ale lui Daubechies, deoarece:

N gmin
N hmin
= 1
= 1 2N


&
,

max
max
N
=
0
=

N
2
N
2
g
h

(4.67)

urmtoarele ecuaii recursive rezult direct din (4.65) i (4.66):

N mmin

def
, p 2N + 1
min
min
N m+1,2 p = sign ( N m, p 2 N + 1)

;
N mmax

max def
,p

N m+1,2 p = sign ( N mmax


,p )
2

105

(4.68)

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

N mmin

def
,p 1
min
min
N m+1,2 p +1 = sign ( N m, p 1)

.
N mmax

def
max
2
2
+

N
,p

N m+1,2 p +1 = sign ( N mmax


, p + 2N 2)
2

(4.69)

De aceast dat, iniializarea este dat de (4.62).


4.7.3. Evaluarea valorilor unei undine utiliznd bancul de filtre
Revenim la reprezentarea de la pasul 4.2.6. a Algoritmului 4.1. Pentru a construi
L
modelul bazat pe undine, trebuie evaluate undinele discretizate m, p ,n , oricare ar fi

eticheta ( m, p ) M P i deplasamentul n N m , p , ncepnd cu undina tat discretizat


L
0,0,0
. Legtura dintre undinele unui pachet i undina tat trebuie exploatat n acest scop.
Fie ( m, p ) eticheta unui nod al arborelui binar, ales arbitrar. Unui astfel de nod i se
asociaz att o secven de coeficieni undin de lungime finit cm , p , ct i un pachet

{ }

m , p ,n nZ

de undine continue. Reamintim c adncimea m este asociat operaiei de

scalare (definiia (4.14)), n timp ce n este deplasamentul de decalare temporal (definiia


(4.15)). Azimutul p 0, 2 1 joaca aici un rol dublu. n primul rnd, el indic poziia
exact a pachetului n arborele binar. n al doilea rnd, n funcie de paritate, sunt
difereniate pachete de nalt i de joas frecven. Mai precis, dac p este par (adic
m

p 2N ), atunci pachetul se refer la frecvene locale joase, iar dac p este impar (adic
p 2N + 1), sunt referite frecvene locale nalte. Aici local nseamn divizarea oricrei
sub-benzi, la rndul su, n dou noi sub-benzi: una de joas frecven i una de nalt
frecven, ca n Figurile 4.4 i 4.5.
Cteva prelucrri directe aplicate asupra EDL i EDL conduc la urmtoarele ecuaii
recursive ntre pachetul de undine al nodului ( m, p ) i cel al nodului printe:

Nh
, p 2N
hk m1, p ,2 n+ k
min
k
N
=
2
h
, nZ .
(4.70)
m , p ,n N max
g

min g k m1, p 1,2 n+ k , p 2N + 1


2
k = Ng
(undina tat) i 0,1,0 (undina mam). Aadar, teoretic, undinele
max

Evident, 0,0,0

discretizate rezult prin utilizarea ecuaiilor recursive (4.70). Exist dou abordri n acest
sens: implementarea direct a ecuaiei (4.70) sau utilizarea bancului de filtre.
Dei a doua abordare necesit mai multe prelucrri, este mai elegant i conduce la o
procedur eficient. De aceea, este descris n continuare.
Oricare ecuaie dintre cele dou ale ansamblului (4.70) poate fi analizat separat, dar
utiliznd acelai raionament. Dup o schimbare natural de indice, prima din ele devine:

m , p ,n (t ) =

N hmax + 2 n

k = N hmin + 2 n

h[k 2n]

p
m 1, ,k
2

(t ) =

N hmax + 2 n

k = N hmin + 2 n

106

h[2n k ]

p
m 1, ,k
2

(t ) , t R . (4.71)

RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>

Interpretarea ecuaiei (4.71) este urmtoarea: indicele de sumare nu are influen asupra
timpului continuu t R , dar modific deplasamentul undinelor. Mai precis, din (4.71),
rezult direct urmtoarea identitate:

m , p , (t ) h p (t ) 2 , t R .
m 1, ,

(4.72)

Ecuaiile (4.68) i (4.72) arat c, pentru orice moment de timp t R , rspunsul la


impuls oglindit al filtrului trece jos ( h ) este n convoluie cu secvena discret de lungime
finit de mai jos:

m1, p , N min (t ), m1, p , N min +1 (t ), ", m1, p , N max (t ) .


m 1, p / 2
m 1, p / 2
m 1, p / 2

2
2
2

(4.73)

Rezultatul (de asemenea o secven de lungime finit) este dup aceea decimat, pentru a
obine urmtoarea secven:

m , p , N mmin
,p

(t ), m , p , N min +1 (t ), ", m , p , N max (t ) .


m, p

m, p

(4.74)

Se observ din nou c momentul de timp este pasiv n relaiile (4.72)-(4.74), adic nu
joac un rol major n calcularea secvenelor.
Similar, a doua ecuaie din (4.70) implic:

m , p , (t ) g p 1 (t ) 2 , t R .
m 1,
,

(4.75)

Reunind ecuaiile (4.72) i (4.75) i incrementnd adncimea, procesul recursiv poate fi


reprezentat ca n Figura 4.10.

m, p, Nmmin,p (t )

def
(
t
)

m, p , Nmmin
, p +1
m, p (t ) =

m, p, Nmmax,p (t )

~g

Analiz

m+1,2 p+1, Nmmin+1,2 p+1 (t )

m+1,2 p+1, Nmmin+1,2 p+1 +1 (t ) def

= m+1,2 p+1 (t )
#

m+1,2 p+1, Nmmax+1,2 p+1 (t )

m+1,2 p, Nmmin+1,2 p (t )

m+1,2 p, Nmmin+1,2 p +1 (t ) def

= m+1,2 p (t )
#

(
t
)
max
m+1,2 p, Nm+1,2 p

Figura 4.10. Utilizarea bancului de filtre pentru calcularea valorilor undinelor.


Intrarea i ieirea procedurii sunt mpachetate adecvat n vectori (sau secvene de
lungime finit). Undina tat contribuie la iniializarea procedurii. Astfel, dac m = p = 0 ,
vectorul iniial al intrrii este urmtorul:
107

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice


T

def

0,0 (t ) = 0,0, N min (t ) 0,0, N min +1 (t ) " 0,0, N max (t ) =


0,0
0,0
0 ,0

= ( t N

min
0,0

) (t N

min
0,0

1) " ( t N

max
0,0

(4.76)
T

, t R.

Evaluarea undinei tat la toate momentele specificate n (4.76) poate fi realizat


utiliznd Algorithmul Daubechies-deRham (Algoritmul 4.3) Astfel, n cazul n care undina
tat este discretizat cu rezoluia L , vectorul iniial devine:
def

min
min
max
L
L
L
L
k N 0,0
0,0
k N 0,0
k N 0,0
, k Z . (4.77)
0,0
1 " 0,0
[ k ] = 0,0

n consecin, schema de calcul din Figura 4.10 poate fi direct utilizat, cu urmtoarele
uoare modificri formale: momentul de timp t devine momentul normalizat k , i vectorii
(ca i undinele pe care le includ) primesc de asemenea indicele superior L .
Evident, nu toate valorile vectorului iniial (4.77) sunt nenule. Dimpotriv, pentru c
lungimea serie de timp originale, N y , este, de regul, mult mai mare dect lungimea
suportului undinei tat, doar puine elemente ale vectorului 0,0 [ k ] sunt nenule. Este
L

adevrat, totui, c, pe msur ce indicele rezoluiei L crete, numrul de elemente


nenule crete de asemenea.
L
Dac 0,0 [ k ] este un vector nul, ieirile schemei de calcul sunt evident nule. Pentru a
evita acest comportament, este suficient ca timpul normalizat k s aparin mulimii:
min
max
max
N 0,0
+ N min
, L , N 0,0 + N , L .

(4.78)

De exemplu,n cazul undinelor ortogonale ale lui Daubechies, definite de parametrul N i


indicele

de

rezoluie

L =0,

vectorii

iniiali

0
0,0
( N0,0min + 3) i 0,00 ( N 0,0max + 1) arat ca mai jos:

0
0,0
( N0,0min + 1) ,

0
0,0
( N0,0min + 2 ) ,

0 ( N min + 1) = (1) ( 0 ) = 0 " 0 T

0,0 0,0
0 N min + 2 = 2 1 0 = 0 " 0 T
) ( ) () ( )

0,0 ( 0,0
. (4.79)
T
0
min
0,0 ( N 0,0 + 3) = ( 3) ( 2 ) (1) ( 0 ) = 0 " 0
0
T
max
0,0 ( N 0,0 + 1) = 0 " ( 2 N 1) = 0 ( 2 N 2 ) " ( 2 ) (1)
Se poate vedea cum este construit vectorul iniial: fereastra inversat a undinei tat
gliseaza pe el, ncepnd de sus. Astfel, chiar i vectorul iniial poate fi construit recursiv.
Paralelismul Algoritmului 4.1 este o proprietate intrinsec a acestuia, derivat din
utilizarea bancurilor de QMF. Este clar c expandarea att a arborelui binar utilizat pentru
evaluarea coeficienilor undin, ct i a meta-arborelui utilizat n determinarea
Transformatei Undin de entropie minim, beneficiaz de procesarea n paralel a
urmailor oricrui nod, respectiv meta-nod.
Deocamdat, predictorul FORWAVER 1 este proiectat n versiunea uni-canal. Cu alte
cuvinte, seria de timp este uni-dimensional. El ar putea fi rulat n paralel n cadrul minireelei de calculatoare, pentru fiecare canal al oricrui bloc de date multi-dimensional. Cu
toate acestea, se anvizajeaz proiectarea unei versiuni multi-canal a acestui algoritm,
care, probabil, va apela din nou la strategia PSO pentru a determina modelul MIMOARMA inclus n modelul cu undine.
108

RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>

Anexa E include lista programelor i rutinelor pachetului FORWAVER 1. Principalele


rutine ale predictorului sunt: Daub (Algoritmul lui Daubechies), dwt_analysis
(implementarea Transformatei Undin Discrete pe ramura de analiz), dwt_model
(construcia modelului de predicie bazat pe undine ortogonale cu suport compact)
IDA_star (procedura IDA*), phi_Rham, psi_Rham (Algoritmul Daubechies-deRham),
IDA_star (procedura IDA*), rough_model (construcia modelului ARMA grosier) i
prediction_quality (evaluarea calitii prediciei).
Algoritmul FORWAVER 1 a fost publicat n [SCI08] lucrare anexat n finalul acestui
raport de cercetare. El este de asemenea inclus n partea de aplicaii a crii [SSP09], n
curs de apariie la Editura Academiei Romne.

5. Despre interfaa grafic a sistemului de monitorizare


Interfaa grafic a sistemului de monitorizare ecologic are dou ferestre principale.
Prima dintre ele, eKo-View a fost prezentat n paragraful 2.3 al acestui raport de
cercetare. Ea se refer la dialogul dintre utilizator i sistemul de eKo-senzori. A doua
fereastr permite utilizatorului s ruleze programele de predicie ntr-o manier natural,
fr a fi supus inconvenientului precizrii multitudinii de parametri care caracterizeaz
aceste programe. Pentru simetrie, a doua fereastr a fost denumit eKo-Forecast.
n aceast seciune, va fi descris versiunea primar a interfeei eKo-Forecast, care
integreaz, deocamdat, numai predictorul PARMA-PSO. Echipa de cercetare este n curs
de adugare a celorlalte programe de predicie prezentate (ca activitate a etapei
urmtoare). Subliniem, totui, c oricare dintre cei 4 predictori are propria sa interfa de
dialog cu utilizatorul, care nu necesit prezena interfeei eKo-Forecast. Un exemplu de
astfel de dialog a fost prezentat n raportul de cercetare precedent, [SPDC08]. Interfaa
eKo-Forecast are mai mult un rol unificator, care s prezinte sistemul de monitorizare ca o
entitate convivial i flexibil, cu care utilizatorul poate dialoga n mod firesc.
5.1. Utilizarea mediului de programare grafic din MATLAB (GUIDE)
Interfaa eKo-Forecast a fost realizat n cu ajutorul mediului de programare grafic
GUIDE (Grafical User Inteface Design Environment) din MATLAB. nainte de a descrie
principalele caracteristici ale acsteia, este util s se neleag maniera de lucru cu GUIDE.
Pentru a a lansa n execuie GUIDE, fie se introduce comanda:

>> guide
n fereastra principal din MATLAB, fie se folosete butonul specializat din meniul principal,
ilustrat n Figura 5.1.

Figura 5.1. Lansarea n execuie a mediului de programare GUIDE din MATLAB.


109

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

Ca reacie la aceast solicitare, Matlab va deschide o fereastr de lucru sub forma unei
planete, n care se poate ncepe proiectarea interfeei grafice dorite, ca n Figura 5.2.

Figura 5.2. Planeta de lucru a mediului de programare GUIDE.


Iniial, planeta nu conine nici un fel de elemente. Pentru a le aduga pe cele dorite, se
poate utiliza biblioteca din partea stng. Elementele sunt grupate pe categorii grafice, cum
ar fi: push button, edit text, static text, panels, axes, check box, etc. nainte de a ncepe
adugarea elementelor dorite, trebuie dimensionat fereastra grafic a interfeei care se
proiecteaz. De regul, fereastra trebuie s acopere ecranul calculatorului care o
gzduiete.
n momentul rulrii pentru prima dat a programului GUIDE, se va cere ca interfaa s
fie salvat. n urma acestei operaii, vor fi create dou fiiere, cu acelai nume: unul de tip
.m i altul de tip .fig. Programarea fiecrui element din interfa se va face n fiierul
.m asociat, n timp ce fiierul .fig ilustreaz nfiarea curent a interfeei. Fiierul .m
creat va avea o parte de cod implicit, care nu poate fi modificat de utilizator. Pentru fiecare
element al interfeei va fi generat o funcie de tip Callback (apelare retrograd) unde
utilizatorul poate introduce codul su propriu. Astfel, funcia de tip Callback va conine
codul care se ruleaz n momentul accesrii elemetului respectiv.
5.2. Caracteristicile principale ale interfeei eKo-Forecast
n urma proiectrii, interfaa eKo-Forecast a cptat nfiarea din Figura 4.3. Dup
cum se poate observa, fereastra interfeei principale este compus din patru submeniuri,
fiecare avnd un rol bine determinat.
Submeniurile superioare au rolul de a cere utilizatorului o serie de informaii, propunnd,
n acelai timp, alternative de selecie. De exemplu, se pot alege: tipul de predicie dorit
(uni/multi-dimensional), algoritmul de predicie (dintre cei menionai pn acum, cu
deschidere ctre alii ce vor fi adugai ulterior) i parametrii de configurare ai acestuia.
110

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

Figura 5.3. Fereastra principal a interfeei eKo-Forecast.


Submeniurile inferioare numite sugetiv Mesaje i Grafice au rolul de a permite
vizualizarea etapelor pe care le parcurge algorimul i a rezultatelor obinute sub form de
variaii grafice.
Aa cum s-a menionat, pentru moment, algoritmul de predicie integrat PARMA(-PSO).
(n cadrul interfeei, nu se mai specific terminaia -PSO, deoarece este un detaliu de
implementare lipsit de relevan pentru utilizator.) Pe viitor se urmrete adugarea
celorlali algoritmi de predicie. Pentru ca utiizatorul s tie c se ateapt selectarea unui
anumit algoritm de predicie, n fereastra de mesaje (de la sud-vest) apare textul:
Introducei algoritmul dorit.
Dup selectarea algoritmului de predicie (prin alegerea unuia dintre cei propui n
oricare dintre ferestrele nordice), n fereastra de mesaje apare un nou text de dialog, ca n
Figura 5.4.

Figura 5.4. Fereastra de mesaje a interfeei eKo-Forecast.


111

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

Indiferent de algorimul de predicie selectat, primul element pe care utilizatorul trebuie


s-l introduc este numele blocului de date de tip .mat ce urmeaz a fi utilizat. Toate
fisierele .mat create vor avea denumiri de tipul DATAn.mat, unde n este o etichet
numeric unic de identificare (de exemplu, numrul de date pe fiecare canal de msur).
Aa cum s-a menionat n paragraful 2.4, construcia acestor fiiere se poate realiza prin
dou metode, plecnd de la datele furnizate de eKo-senzori, cu ajutorul funciei
make_DATA (proiectat de noi n acest scop). Figura 5.5 ilustreaz maniera n care se
alege un bloc de date, introducnd numai eticheta numeric de identificare n (200, n acest
exemplu, ceea ce nseamn ncrcarea blocului de date DATA200.mat).

Figura 5.5. Alegerea blocului de date achiziionate n cadrul interfeei eKo-Forecast.


Toi parametrii de configurare ai algoritmului de predicie selectat au valori implicite
propuse utilizatorului, care sunt afiate i prin intermediul interfeei. Pentru selectarea
parametrilor s-au folosit butoane de tip Pop-up menu. n Figura 5.6 sunt afiate valorile
implicite ale parametrilor de configurare pentru predictorul PARMA(-PSO).

Figura 5.5. Parametrii de configurare ai predictorului PARMA(-PSO), propui utilizatorului


prin intermediul interfeei eKo-Forecast.
Ordinele maxime ale polinoamelor modelului ARMA(X) iau valori dependente de
numrul de eantioane. Ele se actualizeaz n momentul alegerii blocului de date. Dac
utilizatorul nu este mulumit cu valorile implicite ale parametrilor sau pur i simplu dorete
s testeze i alte valori, el poate alege alt combinaie prin introducerea numerelor dorite
de la tastatur.
Dup selectarea parametrilor, singura opiune care mai trebuie stabilit este legat de
testarea stabiliti. Aceast opiune se poate alege prin bifarea unui mic ptrat (check box)
numit Testarea Stabilitii, aflat n stnga listei de parametri (a se revedea Figura 5.3).
Aceast opiune, dac este selctat, va ncetini foarte mult procesul de rulare a
algoritmului, chiar i cu un numr redus de date. Nu este recomandat testarea stabilitii
dect dac se dorete o comparaie ntre rezultatul cu aceast opiune i cel fr testarea
stabilitii.
Pentru pornirea simulrii se apas butonul de start n oricare dintre ferestrele nordice
ale interfeei.
112

RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>

n timpul rulrii, se va putea observa evoluia rulrii urmrind mesajele din fereastra
sud-vestic. Acestea arat n ce stadiu se afl algoritmul. De exemplu, rulnd Algoritmul
PARMA(-PSO) pentru blocul de date DATA200.mat, care reprezint date de
temperatur i umiditate n solul unei plante, se vor putea observa mesajele din
Figura 5.6.

Figura 5.5. Mesaje afiate de interfea eKo-Forecast


n timpul rulrii programului PARMA(-PSO).
Mesajele sunt afiate n ordinea emiterii, cele mai noi figurnd n partea de sus a
ferestrei. n acest caz, se pot observa o serie de informaii legate de cutarea optimului cu
ajutorul strategiei PSO: numrul generaiei curente de particule, factorul de supravieuire
al particulei optimale de pe fiecare canal de msur, valorile optimale ale criteriului PQ (tot
pe fiecate canal de msur), dac a fost sau nu cazul aplicrii ncrucirii ntre populaia
curent i elit sau anti-elit. n final, sunt afiate informaii legate de durata rulrii i
numele fiierului care conine rezultatele rulrii (tot un fiier de tip .mat), care motenete
numele blocului de date prelucrat i adaug acestuia o parte dintre parametrii de
configurare ai algoritmului. (Pentru mai multe detalii, se pot consulta comentariile
programelor principale din Anexele B-E.)
n final, graficele aferente sunt afiate n fereastra sud-estic. Acestea pot fi analizate
pe rnd, printr-o simpl selecie dintr-o list (List_img). Mai mult, dac, n urma rulrii, a
fost salvat pe disc ntregul context grafic al programului (care const n toate graficele
afiate), acesta poate fi ncrcat n fereastra de variaii grafice prin intermediul butonului
Browse din stnga sus. Figura 5.7 ilustreaz aceast parte a interfeei eKo-Forecast. n
timpul vizualizrii unei liste de grafice, mica fereast din stnga jos afieaz fiecare variaie
sub forma unei mici pictograme. Utilizatorul poate astfel baleia rapid lista i se poate opri
la graficul pe care l dorete mrit (prin dublu click asupra pictogramei acestuia).
113

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

Figura 5.7. Fereastra de variaii grafice a interfeei eKo-Forecast.


Lista programelor i rutinelor interfeei eKo-Forecast este specificat n Anexa F.
Programul principal se numete Forecasting i este susinut de programul ARMA.
Rutinele specifice ale unei interfee grafice sunt ncadrate n cteva categorii specifice,
dintre care cele mai populate (i populare, n acelai timp) sunt Callback i
CreateFcn (create function). Acestea sunt sufixe care se adaug numelor funciilor.

6. Rezultate de simulare
Cei 5 predictori proiectai i implementai n cadrul sistemului de monitorizare
(PARMA la nivelul unitii mobile; PARMA-PSO, PARMAX-PSO, KARMA-PSO i
FORWAVER 1 la nivelul mini-reelei de laborator cu faciliti de calcul paralel) au fost
testai cu ajutorul unui corpus de date avnd diferite proveniene. O categorie a datelor
este de tip ecologic (temperatur, umiditate, radiaie solar). Au fost ns adoptate i date
cu naturi diferite, provenind din sociologie, economie sau medicin. Obiectivul principal al
simulrilor a fost dublu. Pe de o parte, s-a urmrit testarea i corectarea programelor de
predicie i rutinelor aferente. Pe de alt parte i mult mai important s-a ncercat
efectuarea unei comparaii pertinente ntre aceti predictori, n termeni de performan a
prediciei, n vederea dobndirii de experien n utilizarea lor.
n cadrul acestei seciuni, ne-am propus s prezentm o parte dintre rezultatele de
simulare obinute. Nici nu ar fi posibil enumerarea tuturor rezultatelor, avnd n vedere
volumul mare de informaii grafice obinute. n raportul de cercetare precedent, [SPDC08],
a fost prezentat seria de timp uni-dimensional a radiaiei solare dintr-o locaie
finlandez. Avnd n vedere costul foarte ridicat al senzorilor de radiaie solar cu
transmisie radio, pn la achiziionarea mai multor exemplare (cnd va fi posibil achiziia
unui bloc de date multi-dimensional), nu vom relua acest experiment. Prezentarea din
aceast seciune este separat n dou pri. O parte se refer la date uni-dimensionale
provenite din alte domenii dect ecologie, unele dintre ele destul de dificil de predictat. Cu
aceste date, a fost testat predictorul FORWAVER 1. O a doua parte atac simulrile
efectuate cu date multi-dimensionale din ecologie i medicin. De aceast dat, actorii
principali au fost predictorii PARMAX-PSO i KARMA-PSO. Predictorul PARMA-PSO este
114

RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>

utilizat de toi ceilali ca termen de comparaie. Aa cum este de ateptat, el ofer cele mai
slabe rezultate de predicie n majoritatea simulrilor. Exist ns i cazuri (rare, ce-i drept)
n care PARMA este greu de nvins. Aceast situaie se ntlnete n special la blocurile de
date care prezint fie o corelaie extrem de slab, fie nici un fel de corelaie ntre canale.
6.1. Simulri cu date multi-dimensionale
Pentru simulrile cu date multi-dimensionale, am preferat s anexm n finalul raportului
de cercetare articolele urmtoare:
[StCu09b] (publicaie indexat ISI) n care este predictat un bloc de 4 temperaturi
ambiante (dou maxime i dou minime zilnice) msurate cu ajutorul eKo-senzorilor
n oraele Bucureti i Ploieti; predictorul utilizat a fost PARMAX-PSO;
[StCu09a] (publicaie recunoscut de ctre CNCSIS) n care este blocul celor 4
temperaturi ambiante anterioare au fost predictate cu ajutorul lui KARMA-PSO;
[SSCM09] (acceptat la conferin internaional IEEE, indexat ISI) n care
blocul de date provine din medicin i conine tot 4 canale (glicemie i ioni de sodiu
pentru un pacient de sex masculin i altul de sex feminin); predictorul utilizat a fost
tot PARMAX-PSO.
Aa cum arat i concluziile primelor dou articole, se pare c predictorii PARMAXPSO i KARMA-PSO ofer rezultate de predicie similare i superioare predictorului
PARMA-PSO. Aceasta se datoreaz n special corelaiei destul de pronunate care exist
ntre temperaturile celor dou orae aflate la numai 60 km deprtare unul fa de altul i
nedesprite de forme de relief abrupte. Alte simulri cu blocuri de date de temperatur
ambiant din orae ndeprtate (de exemplu, Bucureti i Arad, Timioara sau Braov) au
condus la performane mai slabe ale celor doi predictori n raport cu PARMA-PSO. Este
clar c, dac ntre canalele de msur nu exist corelaii sau acestea sunt foarte slabe,
utilizarea unor predictori de complexitate ridicat cum sunt PARMAX i KARMA nu este
recomandat. n acest caz, PARMA este mai precis i mai rapid.
n ceea ce privete datele din medicin, rezultatul de predicie a confirmat ceea ce se
tie de mult vreme: glicemia i cantitatea de ioni de sodiu ai unei persoane sunt doi
parametri corelai ntre ei. Corelaia este ns destul de complex i subtil. Cu toate
acestea, predictorului PARMAX nu i-a scpat. Mai mult, el a pus n eviden un nou tip de
corelaie ntre analizele unor pacieni care fie sunt nrudii, fie le-au efectuat n
aproximativ aceleai condiii. n cazul celor doi pacieni de sexe opuse, nenrudii, singura
explicaie pentru corelarea analizelor lor o constituie faptul c au fost investigai n acelai
spital, n aceleai condiii i n aceeai perioad. Predicia evoluiei glicemiei unui pacient
este de maxim importan pentru medic (mult mai important dect predicia temperaturii
de afar). El poate astfel interveni nainte ca parametrul s ating valori letale pentru
pacient. n acest experiment, aa cum era de ateptat, predictorul PARMA-PSO a obinut
rezultate mai slabe det PARMAX-PSO.
De notat c multe dintre datele oferite de domenii diferite de cel al Ecologiei sunt mai
dificil de predictat, din cauza perturbaiilor mai bogate care le-au corupt. Datele ecologice
se pot ncadra n categoria celor netede, n care zgomotele nu depesc limite normale.
De aceea ele sunt relativ mai precis predictate pe termen scurt. Ceea ce nc nu se poate
predicta precis cu aceste modele numerice (indiferent de domeniu) este variaia brusc,
avnd efecte catastrofice n anumite cazuri (de exemplu, o tornad brusc sau un
cutremur).
6.2. Simulri cu date uni-dimensionale
Scopul principal al experimentelor efectuate cu date uni-dimensionale a fost acela de a
testa performanele predictorului FORWAVER 1, n raport cu cele ale predictorului
PARMA-PSO. Spre deosebire de predictorii PARMAX-PSO i KARMA-PSO, predictorul
bazat pe undine este n mod constant superior lui PARMA.
115

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

Prima aplicaie selectat pentru acest raport de cercetare provine din economie i se
refer la rata de schimb dintre EURO i dolarul american (USD), de la punerea n
circulaie a monedei europene. Publicaia [SCI08] (indexat ISI) prezint rezultatele
superioare de predicie obinute de FORWAVER 1, n raport cu PARMA. De notat c
predicia acestui curs de schimb nu a fost una banal, avnd n vedere inversarea
saportului dintre cele dou monede ntr-un timp relativ scurt.
Urmtoarele dou experimente vor fi prezentate pe larg n continuare. Ele sunt descrise
i n cartea [SSP09] (n curs de apariie la Editura Academiei Romne).
Datele asupra crora va fi focalizat discuia care urmeaz fac parte dintr-un corpus
variat de serii de timp, care au mai degrab o natur statistic. Este vorba despre:
Y1 Rata lunar medie a omajului n SUA, estimat ntre ianuarie 1973 i iulie 1985
(151 de eantioane).
Y11 Evoluia contiinei colective a omenirii, conform unor msurtori efectuate la Kings
College din Londra, ntre iulie 2000 i septembrie 2004 (128 de eantioane).
Cele mai multe dintre seriile de timp ale acestui corpus posed doar un numr relativ
redus de date (ca i cele selectate), fiind totodat afectate de zgomote relativ importante.
Aceste caracteristici sunt extrem de utile n vederea testrii algoritmilor plecnd de la
condiii dificile. Unele serii de timp poased component sezonier vizibil, altele nu, iar
altele necesit intervenia unor modele sofisticate (cum este i cel bazat pe undine) pentru
a le fi detectat aceast component. Alte serii de timp, cum este i Y11, sunt relativ
surprinztoare (sub rezerva corectitudinii metodei de msurare). Chiar, Y11 (contiina
colectiv a umanitii), posed dou minime foarte adnci, corespunztoare evenimentelor
tragice din septembrie 2001 (n SUA) i martie 2003 (n Spania). Cu alte cuvinte, potrivit
cercettorilor de la Kings College din Londra, tonusul general al omenirii a nregistrat
scderi brute i extrem de pronunate n preajma i din cauza acestor evenimente.
Cele dou serii de timp precizate mai sus au fost selectate din anumite motive:
Y1 - pentru detecia relativ dificil a componentei sezoniere i Y11 nu att pentru ineditul
su ct, mai ales, pentru a ilustra o limit important a algoritmilor numerici de predicie,
care este incapacitatea de a prognoza catastrofe n timp util.
n continuare, pentru fiecare dintre cele 2 serii de timp vor fi ilustrate comparativ
performanele de predicie ale perechii de algoritmi PARMA FORWAVER 1. Cteva
comentarii succinte preced imaginile prezentate.
6.2.1. Predicia seriei de timp a omajului n SUA
n cazul acestei serii de timp, ilustrate n Figura 6.1, performana superioar a
predictorului FORWAVER 1 este evident: o valoare de 87.95% a criteriului PQ pentru
modelul ARMA clasic (Figura 6.3), fa de 94.82% pentru modelul cu undine (Figura 6.10).
Se observ c modelul cu undine mbuntete nu doar precizia de predicie (n special la
primele 3 momente), ci i tubul de ncredere (care este mai ngust). n afara prediciei,
modelul cu undine realizeaz i o compresie de rat grosier egal cu aproximativ
49.23%, pentru un nivel de mascare de 2%. Astfel, 49.23% dintre coeficienii undin au
fost anulai, informaia codificat de ei fiind transferat zgomotului colorat. Performana
superioar a prediciei se datoreaz aadar faptului c nivelul de mascare a reuit s
traseze o linie de demarcaie mai clar ntre componenta determinist i cea
nedeterminist a seriei de timp, fa de demarcaia realizat de modelul clasic.
Scalograma asociat fiecrui model cu undine este util n selectarea nivelului de
mascare. (Scalograma este definit ca o aplicaie bidimensional care surprinde variaia
ptratelor modulelor coeficienilor undin peste planul timp-frecven. Cu alte cuvinte,
scalograma reprezint o distribuie a energiei seriei de timp peste acest plan, fiind similar
unui spectru variabil n timp.) n cazul acestei serii de timp, scalograma (trasat n dB) este
ilustrat n Figurile 6.6 (n plan) i 6.7 (n spaiu), fiind corelat cu arborele binar optimal
116

RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>

asociat Transformatei Undin (determinat cu ajutorul procedurii IDA*), reprezentat n


Figura 6.5. Nivelul de mascare este ridicat treptat, pn cnd valoarea estimat a SNR
descrete brusc. (n acest context, SNR este evaluat prin efectuarea raportului dintre
energia seriei de timp i cea a zgomotului colorat.) Aceast descretere a fost nregistrat
pentru > 0.02 . Arborele binar ilustreaz de asemenea c, pentru aceast serie de timp,
informaia determinist asociat prediciei pare a fi localizat n zona de frecvene medii,
focalizat pn la o adncime egal cu 5.
Undinele tat i mam care definesc Transformata Undin sunt ilustrate n Figura 6.4 i
corespund parametrului de suport N = 12 (cel mai bun, n sensul valorii maxime a PQ).
Acestea sunt reprezentate la rezoluia grosier ( L = 0 , de asemenea cea mai bun, n
sensul valorii maxime a PQ), astfel c ele formeaz o baz ortonormat.
6.2.2. Predicia seriei de timp a contiinei colective
Seria de timp este ilustrat n Figura 6.11. Chiar dac predictorul bazat pe undine
(Figura 6.20) mbuntete performana predictorului clasic (Figura 6.13), creterea valorii
PQ este mic (de la 87.42% la 89.63%). mbuntirea const mai mult n ngustarea
tubului de ncredere. Aceast serie de timp nu este uor de predictat, n special din cauza
existenei evenimentelor catastrofice (variaii brute de durat scurt i amplitudini mari,
nregistrate la momente de timp aparent aleatoare). Dificultatea prediciei este accentuat
i de aliura seriei de timp din afara celor dou perioade de apariie a catastrofelor,
asemntoare variaiei unui semnal seismic. Nivelul de mascare a fost ridicat tot la 2%
(ca n cazul seriei de timp precedente). Acesta a condus la mascarea a 63.76% dintre
coeficienii undin ai modelului.
Scalograma seriei de timp (trasat n dB) este ilustrat n Figurile 6.16 (n plan) i 6.17
(n spaiu). Ea corespunde arborelui binar reprezentat n Figura 6.15. Se relev faptul c,
n cazul acestei serii de timp, informaia determinist se afl localizat n zona de
frecvene joase spre medii, unde adncimea de focalizare este egal cu 5.
Undinele tat i mam ale modelului sunt ilustrate n Figura 6.14. Ele au fost construite
plecnd de la parametrul optimal de suport N = 21 , astfel c au o regularitate ridicat fapt
care corespunde variaiei linitite a seriei de timp n afara zonelor de catastrof. Ca i n
cazul seriei precedente, rezoluia optimal reprezentare a acestor undine este tot cea
grosier ( L = 0 ), astfel c ele formeaz o baz ortonormat.

7. Concluzii i perspective
Finalizarea etapei a III-a din cadrul proiectului ECO-TSFS marcheaz un pas important
n direcia nzestrrii sofwtare a sistemului de monitorizare ecologic. Aceast etap avea,
n planul de realizare iniial, o consisten i mai mare, nefiind segmentat n dou pri,
ca n momentul de fa (n urma ultimului act adiional, ncheiat la cererea CNMP). ns
bilanul parial realizat n acest raport de cercetare se dovedete a fi benefic. Algoritmii de
predicie bazai pe modele de identificare meritau, poate, o etap separat de raportare. n
plus, n aceast etap, s-a putut avansa i n direcia adoptrii unui model de predicie
diferit de cele de identificare, bazat pe undine. Simulrile destul de susinute, bazate pe
algoritmii de predicie prezentai i pe un corpus de date n plin extindere, par a confirma
intuiia care a motivat nscrierea n competiie a acestui proiect.
Urmtoarea etap constituie o continuare fireasc a celei care s-a ncheiat. Eforturile
echipei de cercetare se concentreaz asupra a 3 obiective majore: mbogirea corpusului
de date msurate, mbuntirea interfeei grafice i, mai ales, implementarea a doi noi
algoritmi de predicie, pe baz de undine. Primul dintre ei este perechea celui descris n
acest raport: FORWAVER 2, cu undine biortogonale. Al doilea va fi, probabil, cel mai
complex dintre toi, apelnd la un dicionar de forme de und (care include i undine) i la o
tehnic de optimizare bazat pe un Algoritm Genetic.
117

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

Figura 6.1. Seria de timp Y1, mpreun cu tendina i componenta sezonier.

Figura 6.2. Y1: Vedere global asupra prediciei clasice i a performanei asociate.
118

RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>

Figura 6.3. Y1: Vedere detaliat asupra orizontului de predicie clasic.

Figura 6.4. Y1: Undinele tat i mam ale predictorului bazat pe undine.
119

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

Figura 6.5. Y1: Arborele binar optimal asociat Transformatei Undin.

Figura 6.6. Y1: Scalograma seriei de timp (reprezentare n plan).


120

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

Figura 6.7. Y1: Scalograma seriei de timp (reprezentare n spaiu).

Figura 6.8. Y1: Suprafaa de calitate a prediciei i punctul de maxim.


121

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

Figura 6.9. Y1: Vedere global asupra prediciei cu undine i a performanei asociate.

Figura 6.10. Y1: Vedere detaliat asupra orizontului de predicie cu undine.


122

RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>

Figura 6.11. Seria de timp Y11, mpreun cu tendina i componenta sezonier.

Figura 6.12. Y11: Vedere global asupra prediciei clasice i a performanei asociate.
123

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

Figura 6.13. Y11: Vedere detaliat asupra orizontului de predicie clasic.

Figura 6.14. Y11: Undinele tat i mam ale predictorului bazat pe undine.
124

RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>

Figura 6.15. Y11: Arborele binar optimal asociat Transformatei Undin.

Figura 6.16. Y11: Scalograma seriei de timp (reprezentare n plan).


125

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

Figura 6.17. Y11: Scalograma seriei de timp (reprezentare n spaiu).

Figura 6.18. Y11: Suprafaa de calitate a prediciei i punctul de maxim.


126

RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>

Figura 6.19. Y11: Vedere global asupra prediciei cu undine i a performanei asociate.

Figura 6.20. Y11: Vedere detaliat asupra orizontului de predicie cu undine.


127

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

128

RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>

Anexa A
Descrierea iniial a proiectului
Titlul proiectului

Sistem de monitorizare ecologic bazat pe


analiza timp/spaiu-frecven-scal a semnalelor
Cuvinte cheie:
Semnale de mediu, reprezentare pe stare, undine, urmrire prin potrivire, algoritmi genetici

Rezumatul proiectului
Mediul nconjurtor constituie o bogat surs de semnale, care codific evoluia
acestuia. Numai un numr relativ redus dintre ele sunt percepute de ctre factorul uman,
iar, dintre acestea, un numr i mai mic sunt corect decodificate i interpretate. Din acest
motiv, n condiiile unor schimbri att de rapide n ceea ce privete condiiile climatice i
efectele activitilor industriale, este nu doar util, ci i necesar un sistem de monitorizare
automat a arealelor geografice. Obiectivul principal al monitorizrii l constituie predicia
comportamentului sistemului ecologic, n special n scopul anticiprii/prevenirii
dezastrelor.
Proiectul i propune s decodifice corelaiile existente ntre diferitele componente de
mediu dintr-un areal geografic oarecare, cu ajutorul unui sistem automat, bazat pe
prelucrarea de tip timp/spaiu-frecven-scal a semnalelor.
Semnalele sunt achiziionate cu ajutorul unui sistem de senzori specializai n
msurarea de mrimi fizice din aer/ap/sol, cum ar fi: temperatur, umiditate, grad de
poluare (noxe), viteza curenilor de aer/ap, nivel de ap, debit de ap, vibraii seismice,
etc. La acestea, se pot aduga imagini fotografice sau video ale arealului monitorizat.
Datele astfel obinute sunt nmagazinate cu ajutorul unui mijloc automat mobil de calcul,
prin intermediul unei interfee numerice care trebuie proiectat i realizat.
Dup achiziie, datele vor fi prelucrate n laborator cu ajutorul a dou mari categorii de
metode. Prima dintre ele se refer la predicia de stare a sistemului complex reprezentat
de arealul geografic. Semnalele culese sunt vzute ca ieiri msurate ale unui sistem
multidimensional, ale crui stri interne pot fi predictate cu precizie controlat.
(Modelarea intern a sistemului se poate realiza plecnd de la ecuaiile fizico-chimice
care stau la baza funcionrii acestuia.) Metodele din familia Markov-Kalman-Bucy par a
constitui instrumentele adecvate n acest scop. A doua categorie de metode se refer la
analiza spectrului variabil n timp al semnalelor, cu ajutorul transformatelor biliniare i
afine. Reprezentantele tipice ale acestora sunt: Transformata Fourier cu Fereastr
Culisant i (mai ales) Transformata Undin, asupra creia se focalizeaz discuia n
cadrul proiectului. Algoritmii afereni metodelor din ambele categorii se preteaz mod
natural la implementarea pe o main paralel de calcul integrat ntr-o minireea de 4
calculatoare personale. (Aceast structur se intenioneaz a fi achiziionat din
resursele alocate proiectului.)
n fine, perturbaiile care afecteaz datele sunt modelate cu ajutorul unor tehnici
autoregresive de identificare capabile s ofere i o estimaie a preciziei de predicie. Din
experiena dobndit n cadrul unor cercetri legate de modelarea i predicia seriilor de
timp, avnd n vedere c metodele amintite sunt destul de complexe, este de ateptat ca
att evidenierea corelaiilor dintre semnalele achiziionate ct i predicia evoluiei
acestora s fie precise.

129

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

Relevana proiectului
- ncadrarea proiectului n obiectivele Programului 4 i obiectivele specifice ale direciei de
cercetare
Studiind lista domeniilor de cercetare prioritare din pachetul de informaii aferent
proiectelor de tip P4, proiectul se ncadreaz la categoria 3 (Mediu), seciunea 3.3
(Protecia i reconstrucia ecologic a zonelor critice i conservarea ariilor protejate),
subseciunea 3.3.2 (Sisteme de monitorizare a dinamicii diversitii biologice i ecologice
n plan structural i funcional). Este drept, ns, ca aceast cercetare are un caracter
multi-disciplinar, care integreaz cunotine din cteva domenii tiinifice de inginerie
electric, automatic i tiina calculatoarelor. n consecin, ea ar putea fi analizat i de
ctre experi din aceste domenii.
Obiectivul major al direciei de cercetare 3.3.2 l constituie efectuarea unei analize
pertinente i riguroase a varietii de factori de mediu care conduc la evoluia unui sistem
ecologic localizat ntr-un anumit areal geografic limitat. Rezultatele analizei pot avea
diferite utilizri, dintre care cea mai important este probabil aceea a anticiprii evoluiilor
nedorite, anormale ale sistemului.
- scopul urmrit
Proiectul propune proiectarea i realizarea unui sistem de monitorizare bazat pe
analiz de semnal, n vederea diagnosticrii i prognozrii ct mai precise a evoluiei
fenomenelor naturale i/sau artificiale din cadrul unui areal geografic. Sistemul se
dorete a fi util att n plan didactic (n dezvoltarea unor cercetri la nivel de pregtire
universitar i doctoral), ct i n plan practic (n monitorizarea efectiv a unor factori de
mediu).
Descrierea proiectului din punct de vedere tiinific i tehnic,
incluznd gradul de noutate i posibilitatea aplicrii rezultatelor
cercetrilor
- prezentarea succint a stadiului realizrilor S/T din domeniu, la nivel naional i
internaional, raportat la tema proiectului
Monitorizarea ecologic este o sintagm relativ nou, aprut pe fondul schimbrilor
rapide nregistrate de ctre factorii climatici i de mediu. Aceasta nu se reduce doar la
modelarea proceselor ecologice naturale sau artificiale [NKB00a], ci i la integrarea lor n
cadrul unor sisteme relativ complexe de diagnoz i prevenie. Implicarea automaticii,
informaticii i a electronicii n proiectarea unor astfel de sisteme numite ad hoc
inteligente este evident [NKB00b], [NKP04]. Organizarea unor centre de monitorizare
ecologic este abia la nceput. Acestea sunt amplasate cu precdere n zona centrelor
meteorologice, care dispun de logistica necesar unui astfel de demers. Chiar dac n
Romnia interesul pentru protecia mediului i a conservrii funcionrii naturale a
sistemelor ecologice nu s-a situat dintotdeauna printre prioriti, el a nceput s se
manifeste n ultimii ani, impulsionat i de orientarea unor ri europene avansate. Cu
toate acestea, dup cunotinele noastre, obiectivele i maniera de desfurare a
cercetrii propuse n cadrul proiectului de fa nu au fost nc abordate, fiind
originale. Pentru a-i atinge obiectivele amintite n seciunea anterioar, proiectul i
propune integrarea unor cunotine de Automatic industrial (achiziie i prelucrare
primar a datelor) [PoSt06], Teoria sistemelor (reprezentare pe stare) [IoV85],
Prelucrarea semnalelor (analiz timp/spaiu-frecven-scal) [PrMa96], [CoL95],
[SSP07], Identificarea sistemelor (predicie de stare, modelare autoregresiv) [SoSt89],
[SCS05], Inteligen artificial (metode euristice de cutare) [RuNo95] i Programare
evoluionar (algoritmi genetici) [MiM95].

130

RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>

- contribuia proiectului la dezvoltarea cunotinelor n domeniu, inclusiv noutatea i


complexitatea soluiilor propuse
n acest proiect, prin sistem ecologic se nelege o colecie de fenomene naturale
i/sau artificiale aflate n interaciune sau (aparent) izolate, care se desfoar n cadrul
unui areal geografic avnd o suprafa limitat. O parte dintre aceste fenomene emit
semnale care ar putea fi achiziionate n vederea prelucrrii. Semnalele poart denumiri
generice corelate cu sursa de provenien. De exemplu, se pot msura: temperaturi,
umiditi, concentraii, debite, viteze de deplasare (pentru cureni de aer sau de ap),
niveluri, cantiti de ap rezultate n urma ploilor, vibraii seismice, etc. La acestea se pot
aduga imagini fotografice sau video ale arealului monitorizat (n special, n vederea
identificrii de obiecte, tipuri de vegetaie, stri vizuale ale terenului, etc.) Toate aceste
semnale ar putea fi grupate n dou mari categorii: semnale unidimensionale (sau serii
de timp) i semnale bidimensionale (sau serii spaiale). Imaginile fotografice sunt implicit
serii spaiale. Celelelate semnale, ns, pot face parte din ambele categorii. Astfel, luat
separat, un semnal care red evoluia eantionat n timp a unui fenomen este o serie
de timp. n schimb, o colecie de semnale distribuite n cadrul arealului sau o succesiune
de imagini video poate constitui o serie spaial, care, n plus, are i o evoluie n timp
(semnal/serie spaio-temporal/).
Pentru a prognoza evoluia unui fenomen natural, este necesar proiectarea unor
modele de predicie adecvate. n mare, aceste modele pot fi analitice sau numerice.
Modelele analitice au un grad mare de generalitate, dar sunt destul de complexe i dificil
de identificat. Ele se bazeaz pe legile generale ale fizicii i chimiei, necesitnd o
logistic sofisticat, care poate include satelii, reele de staii de monitorizare distribuite
pe mai multe areale geografice, institute de prognozare (de exemplu: meteorologice,
vulcanice sau seismice), reele complexe de calculatoare. Mult mai simplu, dei mai
puin precis, este demersul constnd n determinarea de modele numerice adaptive cu
ajutorul unor tehnici de Identificare de Sistem i Prelucrare de Semnal. Pentru a construi
astfel de modele sunt suficiente cteva colecii de date msurate (serii de timp i/sau
spaiale), o mini-reea de calculatoare i o bun cunoatere a tehnicilor amintite.
Adaptivitatea se realizeaz prin reactualizarea modelelor n funcie de noile date
msurate. Modelele numerice sunt extrem de bine adaptate activitii de monitorizare.
Dendat ce valorile predictate ale semnalelor ecologice se ndeprteaz semnificativ de
cele msurate pentru o perioad de timp suficient de mare, este posibil ca un
comportament anormal s fie detectat. n acest caz, monitorizarea se poate focaliza n
aria de desfurare a fenomenelor anormale, n vederea atingerii unei i mai mari
precizii de predicie i chiar diagnosticare. Dac este necesar, se poate apela chiar la
modele analitice sau chiar numerice cu un grad ridicat de complexitate.
Modelele numerice de interes n cadrul proiectului sunt de dou categorii: sistemice
(cu reprezentare pe stare) i de semnal (cu reprezentare de tip timp/spaiu-frecvenscal). Din lips de spaiu i din economie de timp, nu ne vom lansa ntr-o descriere
tehnic detaliat a acestor modele i a metodelor aferente de determinare. Preferm s
anexm acestei prezentri succinte cteva lucrri deja publicate, din care se pot
desprinde detaliile necesare.
n ceea ce privete modelele cu reprezentare pe stare, acestea se construiesc n
cadrul a dou tipuri de abordri: fie plecnd de la cele analitice, prin discretizarea
ecuaiilor difereniale aferente, fie considernd c parametrii ecologici msurai sunt chiar
strile sistemului. n Anexa B1 sunt descrise dou metode generice de determinare i
reactualizare a acestor modele: Metoda Markov recursiv pentru identificarea sistemelor
afectate de perturbaii complexe i Metoda Kalman-Bucy de predicie a strilor unui
sistem (de asemenea afectat de perturbaii, att externe ct i interne). Anexa red
paginile 239-249 ale crii [SCS05]. Ambele metode se finalizeaz cu algoritmi ce se
131

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

intenioneaz a fi adaptai la caracteristicile unui sistem ecologic, n vederea prediciei


seriilor spaio-temporale.
Modelele de semnal care pot fi utilizate n vederea prediciei se mpart n 3 clase.
Din prima clas fac parte modele cu un pronunat caracter subiectiv, constituite din 3
componente aditive: o tendin general (polinomial), o variaie sezonier i o
perturbaie stocastic. Pentru determinarea lor, se apeleaz la cteva versiuni ale
Metodei Celor Mai Mici Ptrate [SOSt89], [SCS05]. Este ns necesar i intervenia
operatorului uman n selectarea unor parametri structurali eseniali i, din acest motiv,
demersul are o latur subiectiv important. n acest caz, experiena operatorului uman
n legtur cu semnalele modelate i caracteristicile surselor acestora este decisiv
pentru creterea preciziei de predicie. Dac se dorete diminuarea/nlturarea
subiectivismului, atunci se poate conserva componenta stocastic a modelului, dar
componentele deterministe trebuie nlocuite. De notat, totui, c ntre componentele
determinste i cea stocastic nu se poate trasa o linie clar de demarcaie. ntotdeauna
o parte a perturbaiei se transmite componentelor deterministe, n timp ce o parte a
informaiei utile transportate de acestea din urm este interpretat ca perturbaie.
O abordare n acest sens este descris n comunicarea [StCu06] din Anexa B2. Aici,
instrumentul central de construcie a componentei deterministe l constituie Transformata
Undin Discret Generalizat Ortogonal. Undinele au aprut la nceputul anilor 80
[SSP07], ca rezultat al unor cercetri asidue efectuate n domeniul modelrii semnalelor
seismice i a celor subterane purttoare de informaii referitoare la localizarea
zcmintelor de petrol i gaze. Ele au dovedit o uimitoare capacitate de decorelare a
datelor i de extragere a informaiilor neredundante transportate de ctre semnale.
Transformata Undin utilizat n cadrul cercetrii descrise n [StCu06] (i efectuate
asupra unor semnale naturale din economie, astronomie sau medicin) are cteva
caracteristici interesante, dintre care pot fi amintite urmtoarele: este adaptiv (structura
ei este determinat de coninutul de frecven al semnalului analizat, ceea ce permite
eliminarea subiectivismului), este inversabil (ceea ce permite construcia componentei
deterministe cu precizie controlat) i controleaz nivelul de zgomot motenit de ctre
componenta determinist. Pentru implementarea ei, se poate utiliza o tehnic de cutare
euristic mprumutat din Inteligena Artificial [RuNo95]. n [StCu06], implementarea
este rudimentar i nu se refer dect la serii de timp, nu i la serii spaio-temporale. n
consecin, n cadrul proiectului, se va urmri implementarea complet a acestei
transformri.
O alt abordare, mai complex, este descris n comunicarea [StIo03] din Anexa B3.
De aceast dat, componenta determinist este interpretat ca o fraz exprimat ntr-o
limb strin, care trebuie tradus automat, cu ajutorul unui dicionar. Cuvintele
dicionarului sunt forme de und obinute prin aplicarea a 3 operaii asupra unei undine
mam: scalare, translaie temporal i modulaie n frecven. Cutarea cuvintelor din
dicionar n funcie de semnalul analizat se efectueaz prin combinaia dintre doi
algoritmi ingenioi: Algoritmul urmririi prin potrivire [SSP07] i un Algoritm genetic
[MiM95]. (Combinaia este original i a fost pentru prima dat utilizat cu ocazia unui
stagiu postdoctoral finanat de Fundaia german Alexander von Humboldt.) i n acest
caz, se poate vorbi despre o transformare, ea fiind obinut prin ngemnarea dintre
Transformata Undin i Transformata Fourier cu Fereastr Culisant. n [StIo03],
algoritmul genetic al urmririi prin potrivire a fost utilizat cu succes n diagnoza defectelor
unui sistem mecanic, dar implementarea s-a realizat pe o main secvenial de calcul,
ceea ce a condus la durate de simulare relativ ndelungate. n plus, semnalele analizate
sunt tot seriile de timp, nu i cele spaio-temporale, astfel c extinderea implementrii
constituie n mod natural un alt obiectiv al proiectului.
Ultimele dou clase de modele i transformri decodific informaia determinist prin
analiza spectrului de frecvene variabil n timp, simultan cu focalizarea n anumite zone
132

RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>

de semnal prin scalare, de unde numele de transformri timp-frecven-scal. Dei


conduc la algoritmi de complexitate ridicat, transformrile amintite sunt adecvate
implementrii pe maini paralele de calcul. Aceasta poate produce ctiguri importante n
termeni de timp de execuie.
Componenta stocastic a semnalelor poate fi modelat auto-regresiv [SoSt89],
[SCS05].
Sistemul de monitorizare este format din urmtoarele subsisteme:
Colecie de senzori de mediu, pentru msurarea unor parametri ca: temperatur,
umiditate, grad de poluare (noxe), viteza curenilor de aer/ap, nivel de ap, debit
de ap, vibraii seismice, etc. Achiziionarea de senzori se va efectua n comun cu
partenerii de proiect. Subsistemul este deschis permind adugarea de noi
senzori, chiar i dup finalizarea proiectului. Imaginile fotografice sau video vor fi
preluate de la o camer foto i/sau de luat vederi digital, cu stabilizator de
imagine. Avnd n vedere tipul de aplicaie descris n acest proiect, va trebui ca
senzorii s poat fi distribuii pe un areal geografic, caz n care ei vor fi dotai cu
mici emitoare radio (mai puin camera foto i cea video).
Interfa numeric de achiziie de date i comunicaie. Acest subsistem va trebui
proiectat i realizat cu ajutorul celor dou firme partenere la proiect.
Caracteristicile principale ale acestui subsistem sunt urmtoarele: versatilitate
(posibilitatea de a stoca date ntr-o varietate larg de formate recunoscute de
medii de programare precum MATLAB-SIMULINK, CVI, LabVIEW, etc.), capacitate
larg (12-16 canale de achiziie pe cte 16 bii), lrgime de band (frecvene de
eantionare variabile, de pn la 250 de Kilo-eantioane/s/canal), conectivitate
radio cu senzorii i prin porturile seriale (USB) sau paralele cu unitatea mobil de
calcul. n plus, este de dorit ca orice senzor conectat la interfa s poat fi
recunoscut de ctre aceasta prin intermediul unei semnturi/amprente
specializate (similar facilitii plug-and-play din Windows). Astfel, vor fi disponibile
nu doar eantioanele semnalului achiziionat, ci i o serie de informaii auxiliare
privind natura i localizarea sursei care l-a generat, maniera de eantionare, etc.
Calculator portabil de teren (laptop) pentru stocare, transfer i prelucrare primar
de date. Acesta ncheie structura de teren a sistemului de monitorizare, fiind
cuplat la senzori prin intermediul interfaei numerice. Prelucrarea primar se
refer la o serie de filtrri preliminare a datelor (n special n cazul imaginilor), n
vederea eliminrii perturbaiilor grosiere. De asemenea, tot la acest nivel, se are
n vedere implementarea determinrii modelelor subiective ale seriilor de timp. n
acest fel, cu sau far ajutorul unui expert, este posibil o prim diagnosticare a
parametrilor msurai, direct pe teren.
Platform de laborator: o main de calcul paralel, cuplat la o minireea de 4
calculatoare personale i la internet. Algoritmii de complexitate ridicat enumerai
anterior vor fi implementai n cadrul acestei configuraii. De asemenea simulrile
complexe i prezentarea rezultatelor se vor desfura tot prin utilizarea acestei
configuraii. Configuraia va fi gzduit de ctre laboratoarele centrului de
cercetare ACPC, dar va fi accesibil i partenerilor din proiect, fie direct, fie via
internet.
- obiectivele generale i specifice ale proiectului
Obiectivul general l constituie realizarea sistemului de monitorizare n structura
descris mai sus. n particular, se urmrete ca sistemul s fie funcional i utilizat n
aplicaii efective de monitorizare ecologic. Nu se are n vedere achiziionarea de
echipamente i cheltuirea de resurse umane i financiare pentru un sistem care s stea
nchis ntr-un laborator, fr acces din partea specialitilor i studenilor.

133

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

- detalierea activitilor n corelaie cu obiectivele propuse


Proiectul este prevzut a se derula ntre 1 octombrie 2007 i 30 septembrie 2010
(pe durata a 36de luni) i are 4 etape: una de 3 luni (n 2007), dou de cte 12 luni (n
2008 i 2009), ultima fiind de 9luni (n 2010). Suma total necesar a fi alocat din
buget a fost estimat la 1,1 milioane lei (noi). Cei 3 parteneri din proiect contribuie prin
cofinanare cu nc 0,1 milioane lei. Din suma alocat de la buget se preconizeaz ca
aproximativ 25% s fie destinat dotrilor, iar aproximativ 5% s fie utilizat n vederea
diseminrii de rezultate.
Etapele i activitile principale din planul de realizare a proiectului sunt descrise pe
scurt n continuare.
I. Analiz de proces ecologic (2007)
Obiectiv: Construcia unei colecii de ecuaii difereniale constituind modele
analitice continuale ale parametrilor unui areal geografic.
Activiti: I.1. Elaborare de modele fizico-chimice (ecuaii difereniale brute).
I.2. Elaborare de modele conceptuale (ecuaii difereniale
adimensionale).
II. Proiectarea i realizarea sistemului numeric (2008)
Obiectiv: Construcia efectiv a sistemului numeric de interfa cu sistemul
ecologic, mpreun cu implementarea modelelor i metodelor de
reprezentare pe stare.
Activiti: II.1a. Realizarea configuraiei de laborator: achiziionarea mainii
paralele de calcul i a soft-ului aferent; achiziionarea celor 4
calculatoare personale; conectarea n reea a resurselor
achiziionate.
II.1.b. Implementarea de modele numerice: configurarea sistemului
cu reprezentare pe stare, teste de structur, teste de stabilitate.
II.2.a. Implementarea de algoritmi cu reprezentare pe stare:
Algoritmul lui Markov n variant static i dinamic, Algoritmul
MCMMP multi-dimensional n variant static i dinamic,
Algoritmul Kalman-Bucy.
II.2.b. Proiectarea i realizarea interfeei numerice de conectare cu
unitarea mobil de calcul i cu subsistemul de senzori.
Achiziionarea calculatorului portabil.
II.3. Realizarea configuraiei de teren: implementarea modelului
subiectiv la nivelul calculatorului de teren, achiziionarea
subsistemului de senzori, realizarea conexiunilor dintre
calculatorul de teren, interfaa numeric i subsistemul de
senzori, testarea configuraiei n condiii reale de mediu i
calibrarea acesteia.
III. Proiectarea i realizarea sistemului de monitorizare (2009)
Obiectiv: Construcia unei baze complexe de date cu semnale ecologice
achiziionate i implementarea algoritmilor de complexitate ridicat.
Activiti: III.1. Achiziie de date din sistem. Aceast activitate dureaz 12 luni
(n paralel cu celelalte activiti) i presupune deplasarea n
teren, n diferite areale geografice. Masurtorile vor fi
organizate cu ajutorul unei baze de date care se va memora n
oglind att la nivelul calculatorului de teren, ct i la nivelul
configuraiei de laborator.
III.2. Implementarea algoritmilor cu pachete de undine la nivelul
configuraiei de laborator. Algoritmii se vor aplica att seriilor de
timp, ct i seriilor spaio-temporale.
134

RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>

III.3.

Implementarea algoritmilor genetici de urmrire prin potrivire, la


nivelul configuraiei de laborator. Algoritmii se vor aplica de
asemenea att seriilor de timp, ct i seriilor spaio-temporale.
IV. Simulri complexe i diseminare de rezultate
Obiectiv: Validarea soluiei de monitorizare propuse i prezentarea rezultatelor
obinute n cadrul unor manifestri tiinifice, reviste de specialitate i
cri.
Activiti: IV.1. Simulri complexe. Algoritmii implementai vor fi aplicai bazei
de date cu semnale ecologice. Rezultatele vor fi prezentate
prin intermediul unei interfee grafice conviviale, care va fi
proiectat i implementat n acest scop, n dou variante: una
(mai sofisticat) la nivelul configuraiei de laborator i alta
(simplificat) la nivelul calculatorului de teren.
IV.2. Diseminare de rezultate. Se preconizeaz participarea la cel
puin 3conferine/congrese internaionale de nivel ridicat,
publicarea a cel puin 4articole n reviste de specialitate cotate
ISI (sau de nivel apropiat), publicarea a cel puin o carte la o
editur prestigioas i participarea cu capitole de carte la
diferite alte volume.
- prezentarea rezultatelor S/T corespunztoare activitilor prevzute
La ncheierea fiecrei etape de calcul, va fi elaborat un raport tehnic i de cercetare n
detaliu cuprinznd rezultatele obinute la fiecare activitate. n decursul celor 36 de luni de
derulare a proiectului, vor fi elaborate 4 astfel de rapoarte.
- viabilitatea i riscurile proiectului
Aa cum s-a menionat, se propune elaborarea unui produs deschis, la care se pot
aduce mbuntiri ulterioare i care va putea constitui baza pentru alte proiecte. De
asemenea, se dorete ca produsul s fie efectiv utilizat i dup ncheierea finanrii, n
scopul n care a fost realizat. Riscurile de nerealizare le estimm la un procentaj de sub
10%. Este ns posibil s apar uoare ntrzieri, n special din cauza unor nesincronizri
ntre parteneri i/sau din motive financiare. ns, exist sperana ca termenul final din
2010 sa fie ferm respectat.
- consoriul de realizare a proiectului
Cei 3 parteneri ai proiectului sunt prezentai n continuare. Fiecare are responsabiliti
clare, stabilite n cadrul planului de realizare. La acest proiect vor participa 20 de
persoane, dintre care: 4 profesori universitari, un confereniar universitar, 3 efi de
lucrri, 5 asisteni, 2 cercettori i 5 ingineri.
Coordonator: Centrul de cercetare ACPC din cadrul Universitii Politehnica
Bucureti (UPB-ACPC) dispune de laboratoare pentru: identificarea proceselor
industriale, prelucrarea semnalelor, studiul sistemelor numerice de control automat,
produse software dedicate, proiectarea asistat de calculator a sistemelor de
control, optimizare i diagnoz de proces. De asemenea, permite elaborarea i
gestionarea unor proiecte de cercetare complexe uni-/pluri-disciplinare n domeniul
Automaticii sau n domenii nrudite cu acesta. Centrul are numeroase colaborri cu
alte centre de cercetare i universiti din Frana, Belgia, Germania, Finlanda sau
Canada.
Partener 1: ASTI CONTROL S.A. (ASTI SA) este o firm cu experien n
proiectarea i implementarea unor soluii de automatizare specializat n aparatur
de msurare i control (senzori, traductoare inteligente, elemente de execuie cu
acionare digital, sisteme de interfa i de comunicaie), pentru mediul industrial i
135

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

programare pe sisteme performante Siemens. Firma are strnse conexiuni cu


mediul industrial i de afaceri din Romnia i Germania.
Partener 2: DC CONTROL S.R.L. (DC SRL) este un partener cu experien n
proiectarea i realizarea sistemelor i echipamentelor electronice de control. Poate
contribui la proiectarea i realizarea de echipamente numerice, module de interfa
i de comunicaie, microsisteme de tip automat programabil i microcontroller, n
special destinate instalaiilor energetice si termoenergetice (dar i din alte domenii).
A participat la instalarea unor proiecte de automatizri industriale n ar, la ALRO
Slatina, SIDEX Galai, Metrom Braov i n straintate (stand de probe i ncercari
pentru aparate de uz casnic la Padova (Italia) i dispecer termoenergetic la
Termocom Chiinu (Republica Moldova)).
- modalitile de valorificare a rezultatelor poteniali beneficiari
CO: La nivelul Facultii de Automatic i Calculatoare i a Centrului de cercetare
ACPC asociat se dorete utilizarea sistemului de monitorizare att n procesul
didactic (ca suport de laborator de nivel Masterat-Doctorat), ct i pentru cercetare.
Parteneri: Sistemul va putea fi utilizat la ncheierea unor contracte de colaborare i
pentru contractarea unor lucrri care vizeaz efectiv diagnosticarea unui areal
geografic.
Printre posibilii beneficiari ai sistemului se pot meniona: Direcia de Protecie a
Mediului, Institutul Naional de Meteorologie i Hidrologie, diferite staii seismice din ar
(cum sunt cele din Vrancea sau din munii Ciuca), Ministerul Agriculturii, Apelor i
Pdurilor.
- diseminarea rezultatelor
Dac rezultatele obinute sunt favorabile, se preconizeaz participarea la cel puin
3conferine/congrese internaionale de nivel ridicat, publicarea a cel puin 4articole n
reviste de specialitate cotate ISI (sau de nivel apropiat), publicarea a cel puin o carte la
o editur prestigioas i participarea cu capitole de carte la diferite alte volume.

136

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

Anexa B. Lista programelor i rutinelor predictorului PARMA-PSO


B.1. Programe principale

PARMA
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

File PARMA.M
Main program: PARMA
Synopsis: PARMA ;
Constructs classical prediction models of signal(s) (time
series) based on ARMA modeling of stochastic component. The
overall model has 3 additive compounds:
. trend - polynomial (Least Squares Method);
. seasonal - if any (Robinson-Wittacker Method with
threshold validation);
. stochastic - AR, MA or ARMA
(Levinson-Durbin Algorithm,
Wiener-Hopf filter,
Minimum Prediction Error Method).
However, trend and seasonal components can be avoided if the
user wishes so. In this case, the time series is/are only
made stationary, by subtracting the average.
Data can be available on several measuring channels. In this
case, one prediction model for each channel is built. Models
are independent each-other.
The prediction models are optimal, with respect to Prediction
Quality. Optimal structural indices are found by means of
Particle Swarm Optimisation (PSO) algorithm - an evolutionary
strategy (see theory).
In the beginning, the user is invited to set the following
parameters:
. bn = data block number; this is the number of file
including the signal (time series); any signal file
name is 'DATAbn.MAT', where tsn is a positive
integer; after loading the file, data are stored into
Y - an IDDATA object;
. K = duration of prediction horizon support
(K=7, by default);
. d = flag pointing to the users' option regarding the
deterministic component (trend+seasonal);
d=0 (default) means without deterministic component;
d~=0 means with deterministic component;
137

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

. NA = maximum order of AR model (non negative integer,


Ny/3 by default, where Ny = time series length);
. NC = maximum order of MA model (non negative integer,
Ny/3 by default);
. P = the number of particles for PSO algorithm;
. ms = flag pointing to the user's option regarding the
stability:
ms=0 -> no stability check on identification models
is applied (default);
ms~=0 -> only stable identification models
are selected.
* Note: Noisy time series are better predicted with unstable
models.
The overall workspace is saved in the end in a file entitled:
'PARMA_DATAbn#d<s>_K_Vm.mat' ,
within directory .\Sim_class_DATAbn, so that the framework
can easily be recovered when needed. The file name refers to
successive runs on the same data block, which provides
versions _V1, _V2, ... _Vm, ... Also, the label 's' appears
only when the user restricted the search to stable models
only.
Finally, graphics are drawn through SHOW_PARMA program.
Invokes: DB
MULTI_PQ
PARMA_MODEL
PSO_ARMA
SHOW_PARMA
WAR_ERR
Author: Dan STEFANOIU
Created: March 19, 2009
Revised: April 28, 2009

SHOW_PARMA
%
%
%
%
%
%
%
%
%
%
%
%

File SHOW_PARMA.M
Main program: SHOW_PARMA
Synopsis: SHOW_PARMA ;
Draws all graphics corresponding to main program PARMA.
It is assumed that the framework resulted after running PARMA
resides within MATLAB workspace.
The graphical package is saved in directory
138

RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>

%
%
%
%
%
%
%
%
%
%
%

.\Sim_class_DATAbn, under the same name as the framework, but


with .FIG extension. Here, 'DATAbn' is the name of the data %
block under analysis.
Invokes: SHOW_TS
SHOW_TS_VS_MODEL
WAR_ERR
Author: Dan STEFANOIU
Created: March 20, 2009
Revised: April 12, 2009

B.2. Rutine auxiliare

basis2dec
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

File BASIS2DEC.M
Function: BASIS2DEC
Synopsis: N = basis2dec(M,B) ;
Converts the number M, represented in basis B into decimal
number N.
Input M is either a column vector or a matrix, while B is
always scalar. By default, B=2. In this case, M is assumed to
be the binary representarion of N.
Output N is either scalar or row vector, depending on size of
M. If M is a column vector of length m, then:
N = M(1)*B^(m-1)+M(2)*B^(m-2)+...+M(m-1)*B+M(m) .
If M is a m-by-n matrix, then each column is assumed to
encode one value of vector N.
Invokes: WAR_ERR
Author: Dan STEFANOIU
Created: March 04, 2009
Revised:

bin2index
%
%
%
%
%
%

File BIN2INDEX.M
Function: BIN2INDEX
Synopsis: n = bin2index(b) ;
139

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

%
%
%
%
%
%
%
%
%
%
%
%
%
%

Converts the logical (binary) index b to numerical index n.


Input b must be a vector, otherwise it is vectorized.
Output n is either scalar or vector, depending on the number
of 1s in b.
Invokes: VECTORIZE
WAR_ERR
Author: Dan STEFANOIU
Created: March 05, 2009
Revised:

dB
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

File DB.M
Function: DB
Synopsis: xdB = dB(x) ;
Returns the deciBells value of input x, following the
definition below:
xdB = 20*log10(x) .
If the input has negative values, complex values are returned
instead (as they are provided by the complex logarithm).
If the input is missing or empty, the output is empty.
Returns empty output if something is wrong.
Invokes: WAR_ERR
Author: Dan STEFANOIU
Created: December 13, 2001
Revised: April
9, 2003

dec2basis
%
%
%
%
%
%
%
%
%

File DEC2BASIS.M
Function: DEC2BASIS
Synopsis: M = dec2basis(N,B) ;
Converts the decimal number N into number M, represented in
basis B. Input N is either scalar or row vector (otherwise it
140

RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>

%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

is vectorized), while B is always scalar. By default, B=2. In


this case, the binary representarion of N is returned.
If N is scalar, then M is a column vector including the
minimum necessary B-igits to reprsent N. More specifically,
if m=length(M), then:
N = M(1)*B^(m-1)+M(2)*B^(m-2)+...+M(m-1)*B+M(m) .
Actually, m = ceil(log(N)/log(B)).
If N is a vector of length n, then M is a m-by-n matrix. Each
column of M encodes one value of N. The number of rows (m) is
set by the maximum value of N.
The conversion algorithm is Euclidean.
Invokes: VECTORIZE
WAR_ERR
Author: Dan STEFANOIU
Created: March 04, 2009
Revised:

dot_norm
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

File DOT_NORM.M
Function: DOT_NORM
Synopsis: N = dot_norm(A) ;
Computes the norm of column vectors in array A.
If A is scalar or vector, then N is a scalar.
Otherwise, let n be the number of A dimensions
(n=2 for matrices, n=3 for 3D blocks, etc.).
Then N is an array of n dimensions as well,
including norms of all vectors along the first dimension.
The size of first dimension in N is thus unit.
For matrices, N is a row vector with norms of each column.
Missing or empty input returns empty output.
Invokes: WAR_ERR
Author: Dan STEFANOIU
Created: March 05, 2009
Revised:

141

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

dot_norm2
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

File DOT_NORM2.M
Function: DOT_NORM2
Synopsis: N2 = dot_norm2(A) ;
Computes the square norm of column vectors in array A.
If A is scalar or vector, then N2 is a scalar.
Otherwise, let n be the number of A dimensions
(n=2 for matrices, n=3 for 3D blocks, etc.).
Then N2 is an array of n dimensions as well,
including square norms of all vectors along the first
dimension. The size of first dimension in N2 is thus unit.
For matrices, N2 is a row vector with square norms of each
column.
Missing or empty input returns empty output.
Invokes: DOT_SUM
WAR_ERR
Author: Dan STEFANOIU
Created: March 10, 2009
Revised:

dot_sum
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

File DOT_SUM.M
Function: DOT_SUM
Synopsis: S = dot_sum(A) ;
Computes the sum of column vectors in array A.
If A is scalar or vector, then S is a scalar.
Otherwise, let n be the number of A dimensions
(n=2 for matrices, n=3 for 3D blocks, etc.).
Then S is an array of n dimensions as well,
including sum values of all vectors along the first
dimension. The size of first dimension in S is thus unit.
For matrices, S is a row vector with sum values of each
column.
Missing or empty input returns empty output.
Uses:
WAR_ERR
Author: Dan STEFANOIU
Created: March 05, 2009
Revised: March 10, 2009
142

RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>

extrapolate
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

File EXTRAPOLATE.M
Function: EXTRAPOLATE
Synopsis: [YD_extra,YT_extra,YS_extra] =
extrapolate(Theta,YS,P,K) ;
Extrapolate by K steps the trend and the seasonal variation
of time series beyond the measuring horizon.
Inputs: Theta

YS
P
K

= coefficients of polynomial trend(s)


(matrix with ny columns/channels);
theta(1,:) corresponds to free term of
polynomial(s) (0 degree);
= seasonal variation(s)
(matrix with ny columns/channels);
= period(s) of seasonal variation(s)
(ny-length row vector);
= number of extrapolation steps
(7 by default).

Outputs: YD_extra = extrapolated deterministic component,


i.e. sum of the other 2 outputs below;
YT_extra = extrapolated trend(s)
(K-by-ny matrix - one trend per channel);
YS_extra = extrapolated seasonal
(K-by-ny matrix - one seasonal
per channel).
Missing, empty or inconsistent inputs return empty or wrong
outputs.
Invokes: VECTORIZE
WAR_ERR
Author: Dan STEFANOIU
Created: October 26, 2008
Revised: April
15, 2009

fig_look
%
%
%
%
%
%
%
%

File FIG_LOOK.M
Function: FIG_LOOK
Call:

fig_look(H,lw) ;

143

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

%
%
%
%
%
%
%
%
%
%
%
%

Set some parameters that change the general aspect (look)


of the figure with handle H. If H is missing or empty, the
current figure is affected. The second parameter, lw,
if specified and non-empty stands for the desired line width
of graphics. By default, lw=0.5. Normally, lw should be
non-negative.
Invokes:
Author: Dan STEFANOIU
Created: November 1, 2002
Updated: October 27, 2008

index2bin
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

File INDEX2BIN.M
Function: INDEX2BIN
Synopsis: b = index2bin(n,nb) ;
Converts the numerical index n into logical (binary) index b
of length nb. By default, nb = max(n).
Input n must be a scalar or vector, otherwise it is
vectorized. Output b is either scalar or vector, depending on
the values in n.
Invokes: VECTORIZE
WAR_ERR
Author: Dan STEFANOIU
Created: March 05, 2009
Revised:

is_stable
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

File IS_STABLE.M
Function: IS_STABLE
Synopsis: yn = is_stable(P) ;
Checks it out if polynomial P is stable or not. If stable
(i.e. all roots inside the unit disk), yn=1. Otherwise, yn=0.
(Output yn is logical.)
Missing or empty input P returns empty output.
Invokes: WAR_ERR
Authors: Dan STEFANOIU
Created: April 13, 2009
Revised:
144

RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>

long_div
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

File LONG_DIV.M
Function: LONG_DIV
Call: [quo,rem] = long_div(num,den,nq) ;
Performs long division of Laurent polynomials, i.e. computes
the partial quotient and remainder within the identity:
num(z) = quo(z)*den(z) + rem(z) ,
depending on the quotient degree nq. Here, num (numerator),
den (denominator), quo (quotient) and rem (reminder) are
Laurent polynomials of degrees na, nb, nq and (nq+nr+1),
specified as follows:
.
.
.
.

num(z)
den(z)
quo(z)
rem(z)

=
=
=
=

a_0 + a_1*z^(-1)
b_0 + b_1*z^(-1)
q_0 + q_1*z^(-1)
z^(-nq-1)*(r_0 +

+ ... + a_na*z^(-na)
+ ... + b_nb*z^(-nb)
+ ... + q_nq*z^(-nq)
r_1*z^(-1) + ... + r_nr*z^(-nr))

In MATLAB notation, they are all vectors.


The division starts with a_0 and b_0 as most significant
coefficients (i.e. q_0 = a_0/b_0) and b_0 must be non null.
If either den or nq is null, then quo(z)=[] and
rem(z)=num(z). If num is null, then quo(z)=rem(z)=0
(scalars).
If num is a multiple of den and nq>na-nb, then the quotient
is zero padded up to the length of nq+1, while the reminder
is empty.
Incomplete or empty inputs return empty outputs.
Invokes: VECTORIZE
WAR_ERR
Author: Dan STEFANOIU
Created: July 18, 2007
Updated: March 27, 2009

maximize
%
%
%
%
%
%

File MAXIMIZE.M
Function: MAXIMIZE
Call: maximize(h) ;
145

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

Maximizes a figure window


Berne University of Applied Sciences
School of Engineering and Information Technology
Division of Electrical- and Communication Engineering
Author: Alain TROSTEL
e-mail: alain.trostel@bfh.ch
Date:
March 2006
Version: 3.1
Input parameters:
. h = handle(s) of the figure window.
Output parameters: the function has no output parameters.
Used files: windowMaximize.dll (dynamic link library)

MIMO_ARMA
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

File MIMO_ARMA.M
Function: MIMO_ARMA
Synopsis: [Ya,Sigma,E,naAR,ncMA,nAR,MODEL] =
MIMO_ARMA(V,na,nc,nalpha,K,ms) ;
Builds autoregressive stochastic model(s) of colored noise(s)
V (IDDATA object with ny channels of Ny data) and performs
prediction for K samples ahead. By default, K=7. If K=0,
only the ARMA model is built; no prediction is performed.
The model is/are either ARMA[na,nc] (if nc>1), or AR[na]
(if nc=0 or nc=[] or nc is missing), or MA[nc]
(if na=0 or na=[] or na is missing).
By default, na=10 and nc=0.
Input nalpha is the order of AR approximating model
during the prediction. By default, nalpha=min(3*(na+nc),Ny).
Moreover, when nc=0, nalpha is adjusted to na.
Input ms is tha model stability flag (integer or logical).
By default, ms=0, which means no stability check on
identification models.
If ms~=0, only stable identification models are selected.
Note however that na, nc and nalpha are vectors of length ny.
Outputs:
. Ya
. Sigma

= predicted output stochastic signal


((Ny+K)-by-ny matrix - one signal per channel);
= standard deviation(s) of prediction error(s)
(K-by-ny matrix);
146

RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>

%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

. E
.

= estimated prediction error(s) or white noises


((Ny+K)-by-ny matrix - one noise per channel);
naAR
= effective order of AR component, after adjusting
na, in order to make possible identification
(ny-length row vector);
ncMA
= effective order of MA component, after adjusting
nc, in order to make possible identification
(ny-length row vector);
nAR
= effective order of AR approximating model,
after adjusting nalpha to the minimum value above
(ny-length row vector);
MODEL = ARMA prediction models
(1-by-ny cell array of IMODELS one model per channel).
AMODEL = AR approximating models
(1-by-ny cell array of IMODELS one model per channel).

Missing or empty input V returns empty outputs.


The outputs are also empty when the data are inconsistent
and forces MATLAB function ARMAX to fail.
Invokes: IS_STABLE
LONG_DIV
VECTORIZE
WAR_ERR
Authors: Dan STEFANOIU & Janetta Culita
Created: March 16, 2009
Updated: April 15, 2009

multi_PQ
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

File MULTI_PQ.M
Function: MULTI_PQ
Synopsis: PQ =
multi_PQ(y_plus,y_pred,sigma,sqrSNR,sdy,sdy_plus) ;
Evaluates the prediction (or extrapolation) quality (PQ) of a
data prediction model, in case of distributed data. By
difference from <PREDICTION_QUALITY> function, here, PQ could
be either scalar or row vector. PQ values are expressed
in percents. If PQ is scalar, its value is computed
identically like in <PREDICTION_QUALITY> function.
Input arguments are as follows:
. y_plus = supplementary measured data on prediction horizon
(column vector or matrix); if matrix, measured
data are stored on columns; the number of columns
147

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

. y_pred =
. sigma

. sqrSNR =

. sdy

. sdy_plus

equals the number of measuring channels;


predicted data (column vector or matrix same size as y_plus);
standard deviations of prediction error
(column vector or matrix - same size as y_plus);
estimated square root of signal-to-noise ratio
when considering the data set and the
supplementary data for identification of
prediction model; SNR must NOT be in dB
(non negative scalar or row vector; if vector,
the length equals the number of measuring
channels);
standard deviation of measured data
(scalar or row vector; if vector, the length
equals the number of measuring channels);
= standard deviation of supplementary measured
data (scalar or row vector; if vector, the
length equals the number of measuring
channels).

Inputs y_plus and y_pred are essential and cannot miss or be


empty (otherwise empty PQ is returned). If sigma is missing
or empty, extrapolation model is assumed. If the standard
deviation sdy is missing or empty, the standard deviation of
y_plus is evaluated instead.
Invokes: DOT_NORM
VECTORIZE
WAR_ERR
Author: Dan STEFANOIU
Created: March 04, 2009
Revised: April 22, 2009

PARMA_model
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

File PARMA_MODEL.M
Function: PARMA_MODEL
Synopsis:
[Y_PRED,Sigma,aNAC,Y_MODEL,YT,Theta,YS,PS,V,YA, ...
E,Y_EXTRA,YT_EXTRA,YS_EXTRA,YA_PRED,SNR,MODEL,AMODEL] = ...
PARMA_model(Y,NAC,K,ms,mY,EY) ;
Estimates ARMA prediction models for data acquired on one or
more channels. Each model is assigned to a data channel.
Models are independent on each-other. Such a model includes 3
additive compounds:
. trend - polynomial (Least Squares Method);
. seasonal - if any (Robinson-Wittacker Method
with threshold validation);
148

RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>

%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

. stochastic - AR, MA or ARMA


(Levinson-Durbin Algorithm,
Wiener-Hopf filter,
Minimum Prediction Error Method).
However, trend and seasonal components can be avoided if the
user wishes so. In this case, the time series is/are only
made stationary, by subtracting the average.
Inputs:
. Y
= data block (IDDATA object); data length is Ny;
the number of channels is ny;
. NAC = block of structural indices (nsi-by-ny matrix);
here, nsi is the number of structural indices;
each column of NAC includes the following structural
indices:
[td ; na ; nc ; nalpha] ;
the trend degree (td) could miss, so that nsi
is either 3 or 4;
. K
= duration of prediction horizon support
(K=7, by default);
. ms = model stability flag (integer or logical;
by default: ms=0 -> no stability check on
identification models;if ms~=0, only stable
identification models are selected);
. mY = data averages (ny-length row vector); if missing or
empty, it will be evaluated from data block Y.
. EY = data energy (ny-length row vector); if missing or
empty, it will be evaluated from data block Y.
Outputs:
. Y_PRED
. Sigma
. aNAC

. Y_MODEL
. YT
. Theta
. YS
. PS
. V
. YA

= predicted data set (K-by-ny matrix);


= variances of prediction errors
(K-by-ny matrix);
= adjusted bloc of structural indices
(nsi-by-ny matrix); this output can be used
to correct wrong structural indices
(that cannot allow identification of ARMA
models);
= predicted data on measuring horizon
(Ny-by-ny matrix);
= polynomial trends on measuring horizon
(Ny-by-ny matrix);
= coefficients of polynomial trends
((td+1)-by-ny matrix);
= seasonal variations on measuring horizon
(Ny-by-ny matrix);
= periods of seasonal variations
(ny-length row vector);
= colored noise on measuring horizon
(Ny-by-ny matrix);
= stochastic variations on measuring horizon
(Ny-by-ny matrix);
149

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

. E

= estimated white noise on measuring horizon


(Ny-by-ny matrix);
. Y_EXTRA = extrapolated deterministic components
(K-by-ny matrix);
. YT_EXTRA = extrapolated polynomial trends
(K-by-ny matrix);
. YS_EXTRA = extrapolated seasonal variations
(K-by-ny matrix);
. YA_PRED = predicted stochastic variations
(K-by-ny matrix);
. SNR
= estimated signal-to-noise ratios
(ny-length row vector);
. MODEL
= ARMA prediction models
(ny-length row vector of cells including
IDPOLY objects);
. AMODEL
= AR approximating models
(ny-length row vector of cells including
IDPOLY objects).
Missing or empty essential inputs return empty otputs.
Invokes: DB
EXTRAPOLATE
PERIODIC_VARIATION
POLY_TREND
MIMO_ARMA
WAR_ERR
Author: Dan STEFANOIU
Created: April 10, 2009
Revised: April 20, 2009

periodic_variation
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

File PERIODIC_VARIATION.M
Function: PERIODIC_VARIATION
Synopsis: [YP,P,rsr] = periodic_variation(Y,XI) ;
Determines the rough periodic variation of signals Y
(IDDATA object), by means of Wittacker-Robinson Method.
Input XI is the maximum detection threshold of periodic
variation (scalar, 30%, by default). The best period is
selected only if the energy of residual signal (Y-YP-mean(Y))
is below or equals XI percents of (Y-mean(Y)) signal(s)
energy.
Data can be provided on several channels, say ny.
Outputs: YP

= periodic variation(s) (matrix with ny columns


- one for each channel);
150

RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>

%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

= period(s) (row vector, non negative integer);


null values point to no periodic component
detected and the corresponding column of YP
is a null signal;
rsr = residual to signal ratio(s) (energy of
residual over energy of stationary
signal), in percents (row vector).
Missing, empty or inconsistent input y returns empty or wrong
outputs.
Invokes: VECTORIZE
WAR_ERR
Author: Dan STEFANOIU
Created: August 07, 2007
Revised: March 20, 2009

poly_trend
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

File POLY_TREND.M
Function: POLY_TREND
Synopsis: [YT,Theta] = poly_trend(Y,P,Supp_Y) ;
Determines a polynomial trend of degree(s) P associated to
signal(s) Y, by means of Least Squares Method and a simple
balancing technique.
Inputs: Y

= input signal(s), uniformly sampled (IDDATA


object; data on several channels are
supported, say ny);
P
= polynomial degree(s) (6, by default);
it is recommended that P<11, in order to
avoid unbalancing (vector of length ny);
Supp_Y = input signal support(s): [Nymin ; Nymax]
(matrix with the same number of columns as %
the number of channels in Y, i.e. ny);
by default, Supp_Y = [1 ; Ny]*ones(1,ny),
where Ny is the signal(s) length.

Outputs: YT
= trend signal(s) (matrix with ny columns);
Theta = polynomial coefficients ((P+1)-by-ny matrix;
coefficients on columns, increasing
degrees).
Missing, empty or inconsistent input Y returns empty or wrong
outputs.
Invokes: VECTORIZE
WAR_ERR
151

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

%
%
%
%
%

Author: Dan STEFANOIU


Created: July 20, 2007
Revised: March 23, 2009

prediction_quality
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

File PREDICTION_QUALITY.M
Function: PREDICTION_QUALITY
Synopsis: PQ = prediction_quality(y_plus,y_pred,sigma,sdy) ;
Evaluates the prediction (or extrapolation) quality (PQ) of a
data prediction model. PQ is expressed in percents.
Input arguments are as follows:
. y_plus
= supplementary measured data on prediction
horizon (column vector);
. y_pred
= predicted data (column vector);
. sigma
= standard deviations of prediction error
(column vector);
. sdy
= standard deviation of measured data (scalar).
Inputs y_plus and y_pred are essential and cannot miss or be
empty (otherwise empty PQ is returned). If sigma is missing
or empty, extrapolation model is assumed. If the standard
deviation sdy is missing or empty, the standard deviation of
y_plus is evaluated instead.
Invokes: VECTORIZE
WAR_ERR
Author: Dan STEFANOIU
Created: August 02, 2007
Revised: March 25, 2009

PSO_ARMA
%
%
%
%
%
%
%
%
%
%
%
%
%

File PSO_ARMA.M
Function: PSO_ARMA
Synopsis:
[NAC,PQ] = PSO_ARMA(DATA,d,K,NA,NC,P,ms,M,S,xi,DT) ;
Implements Particle Swarm Optimisation (PSO) technique to
heuristically find the (sub-)optimal structural indices of
MIMO-ARMA models as collection of independent SISO-ARMA
models (see theory). The fitness function is the prediction
quality (PQ), which has to be maximized.
152

RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>

%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

Inputs are as follows:


. DATA = an IDDATA object including the measured data,
stored on channels; output data are DATA.y;
each column stands for some channel; could not miss
or be empty; DATA length is denoted by Ny;
. d
= flag pointing to the user's option regarding the
deterministic part (trend and seasonal variation)
of prediction model (scalar);
if d=0, no deterministic part is build;
otherwise (default), trend and seasonal variation
are built, before identification of SISO-ARMA
models (maximum trend degree is 10, for numerical
reasons);
. K
= duration of prediction horizon
(positive integer; by default, K=7);
. NA
= maximum value of AR orders (positive integer;
by default: NA=Ny/3);
. NC
= maximum value of MA orders (positive integer;
by default: NC=Ny/3);
. P
= size of particles population (positive integer;
by default: P=80);
. ms
= model stability flag (integer or logical;
by default: ms=0 -> no stability check on
identification models;
if ms~=0, only stable identification models are
selected);
. M
= maximum number of generations to be tested
(positive integer; by default, M=50) ;
. S
= minimum survival factor (how many generations the
best particle has to survive to stop searching)
(positive integer; by default, S=M/5);
. xi
= diversity versus convergence threshold
(scalar in range [0,1); by default, xi=0.15);
. DT
= duration of transition between generations
(positive scalar; by default, DT=1).
Note: Identification fails when structural indices are larger
than about 30% of time series length. During the
search, the procedure is accounting for this
restriction and performs adjusting of structural
indices accordingly.
Outputs are as follows:
. NAC

= matrix of optimal structural indices;


the columns number equals the number of output
measuring channels; each column includes the
optimal indices of the corresponding output
channel as follows:
[na ; nc ; nalpha ], if d=0
(without trend degree);
153

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

. PQ

[td ; na ; nc ; nalpha], otherwise


(with trend degree);
here, td is the trend degree while nalpha is the
structural index of AR approximating model;
= row vector of optimal PQ values; each element
corresponds to some output channel.

Empty DATA enforces empty outputs.


Invokes: BASIS2DEC
BIN2INDEX
DEC2BASIS
DOT_NORM2
INDEX2BIN
PSO_BEST_PARTICLES
PSO_CROSSOVER
PSO_FITNESS_PQ
PSO_SOCIAL_VARIANCES
PSO_UPDATE_ARMA
WAR_ERR
Author: Dan STEFANOIU
Created: March 16, 2009
Revised: April 28, 2009

PSO_best_particles
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

File PSO_BEST_PARTICLES.M
Function: PSO_BEST_PARTICLES
Synopsis: [P,p,maxF] = PSO_best_particles(POP,F) ;
This is an auxiliary procedure called by PSO
(Particle Swarm Optimisation) Algorithm in conjunction with
PARMA program.
Its task is to extract the best particles of populations
POP, according to fitness function F (which has to be
maximized).
Input POP is either a 2D or 3D array, where populations are
stored on layers. Each particle is represented by one column
in some layer (population).
Input F is a matrix with the same number of columns number as
the number of layers in POP. Each column encodes the fitness
values of particles of some population/layer.
The procedure finds and extracts the best particle of every
layer, according to F. The best particles are stored on
columns in matrix P, in order of layers. Beside the best
154

RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>

%
%
%
%
%
%
%
%
%
%
%

particles, their positions in populations they belong to are


also returned in p (row vector). Also, maxF are the maximum
values of F on each column (row vector).
Missing or empty input returns empty outputs.
Invokes:
Author:
Created:
Revised:

WAR_ERR
Dan STEFANOIU
March 05, 2009
March 25, 2009

PSO_crossover
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

File PSO_CROSSOVER.M
Function: PSO_CROSSOVER
Synopsis: [POP12,v12] = PSO_crossover(POP1,POP2,v1,v2) ;
This is an auxiliary procedure called by PSO
(Particle Swarm Optimisation) Algorithm.
Its task is to perform crossover between 2 populations groups
POP1 and POP2. The other inputs, v1 and v2, are the
corresponding speed values.
Inputs POP1 and POP2 are either 2D or 3D arrays, where
populations are stored on layers. Each particle is
represented by one column in some layer (population).
Inputs v1 and v2 are 2D or 3D arrays, exactly like POP1 and
POP2, respectively. Each column encodes the speed values of
particles that belong to some population/layer.
See theory for definition of crossover.
The offsping populations POP12 include a double number of
particles and the corresponding speed values are twice
bigger.
Missing or empty input returns empty output.
Invokes:
Author:
Created:
Revised:

WAR_ERR
Dan STEFANOIU
March 05, 2009
March 10, 2009

PSO_fitness_PQ
%
%
%
%

File PSO_FITNESS_PQ.M
Function: PSO_FITNESS_PQ
155

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

Synopsis: [PQ,APOP] =
PSO_fitness_PQ(DATA,POP,bK,ms,sdy,sdy_plus) ;
Evaluates the prediction (or extrapolation) quality (PQ) as
fitness function for PSO algorithm.
Input arguments are as follows:
. DATA = IDDATA object with measured data; if DATA.u is
empty, then PQ is evaluated for SISO-ARMA models;
otherwise, the MIMO-ARMA models are considered;
DATA.y includes the measured data on columns
(channels);
. POP = population of structural indices (3D array - see
functions PSO_ARMA or PSO_ARMAX for its elements);
the number of columns equals the population size P;
the number of layers must be equal to the number of
measuring channels, ny;
. bK
= length of backwards prediction horizon
(scalar; by default, bK=4);
. ms
= model stability flag (integer or logical;
by default: ms=0 -> no stability check on
identification models;
if ms~=0, only stable identification models are
selected);
. sdy = standard deviation of measured data
(scalar or row vector); if vector, the length
equals the number of measuring channels;
if missing, empty or null, it is computed according
to DATA.y;
. sdy_plus = standard deviation of test data (scalar or row
vector); if vector, the length equals the
number of measuring channels; if missing, empty
or null, it is computed according to DATA.y.
Output PQ is a P-by-ny matrix with PQ values for each
particle in population POP.
Output APOP is built starting from POP, but some structural
indices may have been adjusted during the identification
procedure. If APOP is different from POP, then it can be
employed to update the current population.
Missing or empty DATA or POP return empty PQ.
Invokes: MULTI_PQ
PARMA_MODEL
VECTORIZE
WAR_ERR
Author: Dan STEFANOIU
Created: March 16, 2009
Revised: April 22, 2009

156

RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>

PSO_social_variances
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

File PSO_SOCIAL_VARIANCES.M
Function: PSO_SOCIAL_VARIANCES
Synopsis: sigma_s = PSO_social_variances(POP,BP) ;
This is an auxiliary procedure called by PSO
(Particle Swarm Optimisation) Algorithm.
Its task is to evaluate the social variance of each
population in POP, with respect to the (best) particle BP.
Input POP is either a 2D or 3D array, where populations are
stored on layers. Each particle is represented by one column
in some layer (population).
Input BP is a matrix with the same number of columns as the
number of layers in POP. Each column encodes the (best)
particle that belong to some population/layer.
The procedure estimates the variance values by computing
the square root of average distance from each particle
to the (best) particle in the same population.
The variance values are stored within row vector sigma_s,
with the same length as the number of layers/populations.
Missing or empty input returns empty output.
Invokes: DOT_SUM
WAR_ERR
Author: Dan STEFANOIU
Created: March 05, 2009
Revised: March 18, 2009

PSO_update_ARMA
%
%
%
%
%
%
%
%
%
%
%
%
%

File PSO_UPDATE_ARMA.M
Function: PSO_UPDATE_ARMA
Synopsis:
[NABCGn,pozGn,sigma_s0n,sigma_s1n,sigma_sGn,sigma_sGr, ...
sigma_c1n,sigma_cG2n,ELITEn,vEn,PQ1n,NABCn,pozn,sn,
sigma_sEn,AELITEn,vAn,PQ0n] = ...
PSO_update_ARMA(m,GEN,vG,PQ,sigma_s0,sigma_s1,sigma_c1, ...
sigma_cG2,ELITE,vE,PQ1,poz,s, ...
AELITE,vA,PQ0) ;

157

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

This is an auxiliary procedure called by PSO


(Particle Swarm Optimisation) Algorithm in conjunction with
PARMA program. Its task is to update the populations.
Inputs:
. m
. GEN

= generation number (positive integer);


= current generation
(3D array; populations on layers);
. vG
= speed values of GEN particles
(3D array; populations on layers);
. PQ
= quality prediction values of GEN particles
(matrix);
. sigma_s0 = minimum values of social variance for current
generation (row vector);
. sigma_s1 = maximum values of social variance for current
generation (row vector);
. sigma_c1 = maximum values of cognitive variance for
current generation (matrix);
. sigma_cG2 = signed squared absolute values of cognitive
variance for current generation (matrix);
. ELITE
= elite population
(3D array; populations on layers);
. vE
= speed values of ELITE particles
(3D array; populations on layers);
. PQ1
= prediction quality values of ELITE particles
(matrix);
. poz
= pozitions of best ELITE particles
(row vector);
. s
= surviving indices of best ELITE particles
(row vector);
. AELITE
= anti-elite population
(3D array; populations on layers);
. vA
= speed values of AELITE particles
(3D array; populations on layers);
. PQ0
= prediction quality values of AELITE particles
(matrix).

Outputs:
. NABCGn
= best GEN particles (row vector);
. pozGn
= pozitions of best GEN particles (row vector);
. sigma_s0n = update of minimum values of social variance
for current generation (row vector);
. sigma_s1n = update of maximum values of social variance
for current generation (row vector);
. sigma_sGn = update of absolute social variance for
current generation (row vector);
. sigma_sGr = update of relative social variance for
current generation (row vector);
. sigma_c1n = update of maximum values of cognitive
variance for current generation (matrix);
. sigma_cG2n= update of signed squared absolute values of
cognitive variance for current generation
(matrix);
158

RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>

%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

. sigma_cGr = update of relative values of cognitive


variance for current generation (matrix);
. ELITEn
= new elite population
(3D array; populations on layers);
. vEn
= new speed values of ELITE particles
(3D array; populations on layers);
. PQ1n
= new prediction quality values of
ELITE particles (matrix);
. NABCn
= new best ELITE particles (row vector);
. pozn
= new pozitions of best ELITE particles
(row vector);
. sn
= new survival indices of best ELITE particles
(row vector);
. AELITEn
= new anti-elite population
(3D array; populations on layers);
. vAn
= new speed values of AELITE particles
(3D array; populations on layers);
. PQ0n
= new prediction quality values of AELITE
particles (matrix).
Missing or empty input returns empty outputs.
Invokes: DOT_NORM2
PSO_BEST_PARTICLES
PSO_SOCIAL_VARIANCES
WAR_ERR
Author: Dan STEFANOIU
Created: March 08, 2009
Revised: March 25, 2009

scaling
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

File SCALING.M
Function: SCALING
Synopsis: a = scaling(X,d) ;
Returns the 2-length vector a that can be used to
re-scale the graphical variation of X, such that
the maximum/minimum values of axes are higher/lower
by d*(max(X)-min(X)) comparing to max(X)/min(X).
By default, d=0.1 (which means 10%). The argument
d can be negative, allowing the user to perform
zoom on a specified zone in the graphic.
Usually, X is a vector. If X is a matrix, its columns
are understood as different variations of the same
parameter (like in case of MATLAB function PLOT)
and max/min are computed accordingly.
159

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

%
%
%
%
%
%
%
%

The output is empty if something is wrong.


Uses:

WAR_ERR

Author: Dan STEFANOIU


Created: April 14, 2004
Revised: July 31, 2007

show_ts
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

File SHOW_TS.M
Function: SHOW_TS
Synopsis:
H = show_ts(y,ntime,ts_label,Ox_label,Oy_label, ...
FIG,FIG_name) ;
Displays the variation of a time series y sampled
at instants given in ntime (or uniformly spaced, when ntime
is missing or empty). Figure FIG is used in this
aim, with name FIG_name. Within ts_label, if specified,
the figure title is displayed. Figure axes are labeled
according to Ox_label (Ox) and/or Oy_label (Oy).
Returns the handle to the current figure, H
(or empty if something is wrong).
Invokes: FIG_LOOK
MAXIMIZE
SCALING
VECTORIZE
WAR_ERR
Author: Dan STEFANOIU
Created: May
4, 2004
Revised: March 20, 2009

show_ts_vs_model
%
%
%
%
%
%
%
%
%
%
%
%

File SHOW_TS_VS_MODEL.M
Function: SHOW_TS_VS_MODEL
Synopsis:
H = show_ts_vs_model(y,supp_y,y_plus,supp_pred,ypm, ...
ypm_pred,sigma,e,SNR,PQ,Ts, ...
ts_label,Ox_label,Oy_label,txt, ...
FIG,FIG_name) ;

160

RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>

%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

Displays the variation of a time series versus the variation


of a prediction model.
Input arguments are as follows:
. y
= original measured signal (time series)
(column vector);
. supp_y
= signal support: [Nymin ; Nymax];
. y_plus
= supplementary measured data on prediction
horizon (column vector);
. supp_pred = prediction horizon bounds:
[Nymax+1 ; Nymax+K];
. ypm
= prediction model on measure horizon
(column vector);
. ypm_pred = predicted data (column vector);
. sigma
= standard deviations of prediction error
(column vector);
. e
= estimated white noise (column vector);
. SNR
= signal-to-noise ratio
(scalar, empty by default);
. PQ
= prediction quality (scalar, in percents);
. Ts
= sampling period (scalar, 1 by default);
. ts_label = figure title (string of chars);
. Ox_label = label on Ox axis (string of chars);
. Oy_label = label on Oy axis (string of chars);
. txt
= optional text to be added to all figure
titles;
. FIG
= figure number (scalar, integer);
. FIG_name = figure name (string of chars).
Inputs y, supp_y, ..., sigma are essential and cannot miss or
be empty. The other inputs are optional and can receive
default values.
Returns the handle to the current figure, H (or empty if
something is wrong).
Invokes: FIG_LOOK
MAXIMIZE
PREDICTION_QUALITY
SCALING
VECTORIZE
WAR_ERR
Author: Dan STEFANOIU
Created: July 25, 2008
Revised: March 20, 2009

vectorize
%
%
%
%
%

File VECTORIZE.M
Function: VECTORIZE
161

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

Synopsis: v = vectorize(A) ;
Vectorizes the matrix or vector A, by reshaping into a
row vector v.
In case of matrices, the columns are transposed
and enumerated successively within the line vector.
The output is empty if something is wrong.
Invokes: WAR_ERR
Author: Dan STEFANOIU
Created: March
1, 2003
Revised: September 22, 2007

war_err
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

File WAR_ERR.M
Function: WAR_ERR
Call: war_err(msg)
Displays a warning/error message. If msg is
present and non void, then it is displayed.
Otherwise (missing or void), a standard error
message is displayed.
Created: June
2, 1999
Revised: September 22, 2007
Author: Dan Stefanoiu

162

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

Anexa C. Lista programelor i rutinelor predictorului PARMAX-PSO


C.1. Programe principale

PARMAX
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

File PARMAX.M
Main program: PARMAX
Synopsis: PARMAX ;
Constructs classical prediction models of block signal(s)
(time series) based on MIMO-ARMAX modeling. See theory for
construction of stochastic component. The overall model has
3 additive compounds:
. trend - polynomial (Least Squares Method);
. seasonal - if any (Robinson-Wittacker Method
with threshold validation);
. stochastic - AR, MA or ARMA
(Levinson-Durbin Algorithm,
Wiener-Hopf filter,
Minimum Prediction Error Method).
However, trend and seasonal components can be avoided if the
user wishes so. In this case, the time series is/are only
made stationary, by subtracting the average.
Data can be available on several measuring channels. In this
case, one multi-dimension prediction model for each channel
is built. The resulted models are not correlated each other.
However, predicting data on some channe is not possible
without the contribution of the other channels. This version
of program is different from the basic version, where only
one multi-dimension model is build in order to predict
all channels at once. Here, the prediction focuses on a
specific channel. Thus, the block of prediction data for all
channels can be obtained only after running this program as
many times as the number of channels (either sequentially or
in parallel).
The prediction models are optimal, with respect to Prediction
Quality. Optimal structural indices are found by means of
Particle Swarm Optimisation (PSO) algorithm - an evolutionary
strategy (see theory).
In the beginning, the user is invited to set the following
parameters:
. bn = data block number; this is the number of file
163

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

. K

. d

. NA =
. NB =
. NC =
. J

. P =
. ms =

including the signal (time series); any signal file


name is 'DATAbn.MAT', where tsn is a positive
integer; after loading the file, data are stored into
Y - an IDDATA object;
duration of prediction horizon support
(K=7, by default);
flag pointing to the users' option regarding the
deterministic component (trend+seasonal);
d=0 (default) means without deterministic component;
d~=0 means with deterministic component;
maximum order of AR model (non negative integer,
Ny/3 by default, where Ny = time series length);
maximum order of X model (non negative integer,
Ny/3 by default);
maximum order of MA model (non negative integer,
Ny/3 by default);
the channel number to focus the prediction on
(non negative integer, 1 by degault);
the number of particles for PSO algorithm;
flag pointing to the user's option regarding the
stability:
ms=0 -> no stability check on identification models
is applied (default);
ms~=0 -> only stable identification models are
selected.

* Note: Noisy time series are better predicted with unstable


models.
The overall workspace is saved in the end in a file entitled:
'PARMAX_DATAbn#d<s>_K_J_Vm.mat' ,
within directory .\Sim_class_DATAbn, so that the framework
can easily be retrieved when needed. The file name refers to
successive runs on the same data block, which provides
versions _V1, _V2, ... _Vm, ... Also, the label 's' appears
only when the user restricted the search to stable models
only.
Finally, graphics are drawn through SHOW_PARMAX program.
Invokes: DB
MULTI_PQ
PARMAX_MODEL
PSO_ARMAX
SHOW_PARMAX
WAR_ERR
Author: Dan STEFANOIU
Created: March
19, 2009
Revised: September 10, 2009

164

RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>

SHOW_PARMAX
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

File SHOW_PARMAX.M
Main program: SHOW_PARMAX
Synopsis: SHOW_PARMAX ;
Draws all graphics corresponding to main program PARMA.
It is assumed that the framework resulted after running
PARMAX resides within MATLAB workspace.
The graphical package is saved in directory
.\Sim_class_DATAbn under the same name as the framework,
but with .FIG extension. Here, 'DATAbn' is the
name of the data block under analysis.
Invokes: SHOW_TS
SHOW_TS_VS_MODEL
WAR_ERR
Author: Dan STEFANOIU
Created: March 28, 2009
Revised: March 30, 2009

C.2. Rutine auxiliare

MIMO_ARMAX
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

File MIMO_ARMAX.M
Function: MIMO_ARMAX
Synopsis: [YA,Sigma,E,ASI,MODEL,AMODEL] =
MIMO_ARMAX(V,U,SI,K,ms) ;
Builds autoregressive stochastic model(s) of colored noise(s)
V (IDDATA object with ny channels of Ny data) and performs
prediction for K samples ahead. By default, K=7. If K=0,
only the ARMA model is built; no prediction is performed.
The model is ARMAX type if input U is consistent.
Inputs:
. V = noises to be modeled (IDDATA objects); noises are
recorded on ny channels; if ny=1, SISO-ARMA modeling
is performed; noises length is denoted by Ny;
. U = input signals recorded on columns (Ny-by-ny matrix);
for each output channel j, only (ny-1) input signals
are considered (all but the one in column j); if U is
missing or empty, MIMO-ARMA modeling is performed;
165

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

. SI = structural indices of ARMAX model


((2*ny+1)-by-ny matrix); each column has the
following contents:
[na ; nb_1 ; ... ; nb_(ny-1) ; nc ; ...
nalpha ; nbeta_1 ; ... ; nbeta_(ny-1)];
should not miss or be empty;
. K = length of prediction horizon
(integer, K=7 by default);
. ms = model stability flag
(integer or logical; by default: ms=0 -> no stability
check on identification models;if ms~=0, only stable
identification models are selected);
Note however that structural indices might be ajusted during
identification.
Outputs:
. YA
.
.
.

= predicted output stochastic signal


((Ny+K)-by-ny matrix - one signal per channel);
Sigma = standard deviation(s) of prediction error(s)
(K-by-ny matrix);
E
= estimated prediction error(s) or white noises
((Ny+K)-by-ny matrix - one noise per channel);
ASI
= effective structural indices, after adjusting,
in order to make possible identification
((2*ny+1)-by-ny matrix);
MODEL = ARMAX prediction models
(1-by-ny cell array of IMODELS - one model per
channel).
AMODEL = approximating identification models
(1-by-ny cell array of IMODELS - one model
per channel); in case of ARMA modeling, AMODEL
includes AR models, whereas for ARMAX modeling,
AMODEL consists of ARX models.

Missing or empty input V returns empty outputs.


The outputs are also empty when the data are inconsistent
and forces MATLAB function ARMAX to fail.
Invokes: IS_STABLE
LONG_DIV
VECTORIZE
WAR_ERR
Authors: Dan STEFANOIU & Janetta Culita
Created: March 16, 2009
Revised: April 16, 2009

PARMAX_model
%
%
%
%

File PARMAX_MODEL.M
Function: PARMAX_MODEL
166

RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>

%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

Synopsis:
[Y_PRED,Sigma,aNABC,Y_MODEL,YT,Theta,YS,PS,V,YA,U,E, ...
Y_EXTRA,YT_EXTRA,YS_EXTRA,YA_PRED,SNR,MODEL,AMODEL] = ...
PARMAX_model(Y,NABC,K,ms,mY,EY) ;
Estimates a MIMO-ARMAX prediction model for data acquired on
at least 2 channels. The model is assigned to the whole data
block. See theory for details. (The function is related to
PARMA_MODEL, but is different in several respects.)
Inputs:
. Y
= data block (IDDATA object); data length is Ny;
the number of channels is ny;
. NABC = matrix of structural indices (nsi-by-ny);
here, nsi is the number of structural indices;
each column of NABC includes the following
structural indices:
[td ; naAR ; ncMA ; nAR ; ...
na ; nb_1 ; ... ; nb_nu ; nc ; ...
nalpha ; nbeta_1 ; ... ; nbeta_nu],
the trend degree (td) could miss, so that nsi is
either 2*nu+6 or 2*nu+7, where nu=ny-1;
. K
= duration of prediction horizon support
(K=7, by default);
. ms
= model stability flag (integer or logical;
by default: ms=0 -> no stability check on
identification models;if ms~=0, only stable
identification models are selected);
. mY
= data averages (ny-length row vector);
if missing or empty, it will be evaluated from data
block Y.
. EY
= data energy (ny-length row vector);
if missing or empty, it will be evaluated from data
block Y.
Outputs:
. Y_PRED
. Sigma
. aNABC

. Y_MODEL
. YT
. Theta
. YS
. PS

= predicted data set (K-by-ny matrix);


= variances of prediction errors (K-by-ny
matrix);
= adjusted bloc of structural indices (nsi-by-ny
matrix); this output can be used to correct
wrong structural indices (that cannot allow
identification of ARMA models);
= predicted data on measuring horizon
(Ny-by-ny matrix);
= polynomial trends on measuring horizon
(Ny-by-ny matrix);
= coefficients of polynomial trends
((td+1)-by-ny array);
= seasonal variations on measuring horizon
(Ny-by-ny matrix);
= periods of seasonal variations
(ny-length row vector);
167

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

. V

= colored noise on measuring horizon


(Ny-by-ny matrix);
. YA
= stochastic variations on measuring horizon
(Ny-by-ny matrix);
. U
= estimated inputs on measuring horizon
(Ny-by-ny matrix);
. E
= estimated white noise on measuring horizon
(Ny-by-ny matrix);
. Y_EXTRA = extrapolated deterministic components
(K-by-ny matrix);
. YT_EXTRA = extrapolated polynomial trends
(K-by-ny matrix);
. YS_EXTRA = extrapolated seasonal variations
(K-by-ny matrix);
. YA_PRED = predicted stochastic variations
(K-by-ny matrix);
. SNR
= estimated signal-to-noise ratios
(ny-length row vector);
. MODEL
= ARMA prediction models
(ny-length cell vector (row) including
IDPOLY objects).
. AMODEL
= approximating ARX prediction models
(ny-length cell vector (row) including
IDPOLY objects).
Missing or empty essential inputs return empty otputs.
Invokes: DB
EXTRAPOLATE
PERIODIC_VARIATION
POLY_TREND
MIMO_ARMAX
WAR_ERR
Author: Dan STEFANOIU
Created: April 11, 2009
Revised: April 20, 2009

PSO_ARMAX
%
%
%
%
%
%
%
%
%
%
%
%
%

File PSO_ARMAX.M
Function: PSO_ARMAX
Synopsis: [NABC,PQ] =
PSO_ARMAX(DATA,d,K,NA,NB,NC,P,J,ms,M,S,xi,DT) ;
Implements Particle Swarm Optimisation (PSO) technique to
heuristically find the (sub-)optimal structural indices of
MIMO-ARMAX models, as collection of MISO-ARMAX models
(see theory). The fitness function is the prediction quality
(PQ), which has to be maximized.
168

RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>

%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

Inputs are as follows:


. DATA = an IDDATA object including the measured data,
stored on ny channels; DATA length is denoted by
Ny; each column stands for some channel; could not
miss or be empty;
. d
= flag pointing to the user's option regarding the
deterministic part (trend and seasonal variation)
of prediction model (scalar);
if d=0, no deterministic part is build;
otherwise (default), trend and seasonal variation
are built, before identification of SISO-ARMA
models (maximum trend degree is 10, for numerical
reasons);
. K
= duration of prediction horizon
(positive integer; by default, K=7);
. NA
= maximum value of AR orders
(positive integer; by default: NA=Ny/3);
. NB
= maximum value of X orders
(positive integer; by default: NB=Ny/3);
. NC
= maximum value of MA orders
(positive integer; by default: NC=Ny/3);
. P
= size of particles population
(positive integer; by default: P=4*ny);
. J
= number of channel the prediction is focused on
(positive integer, no grater than the number of
channels; by default: J=1);
. ms
= model stability flag
(integer or logical; by default: ms=0 -> no
stability check on identification models;
if ms~=0, only stable identification models are
selected);
. M
= maximum number of generations to be tested
(positive integer; by default, M=100) ;
. S
= minimum survival factor (how many generations the
best particle has to survive to stop searching)
(positive integer; by default, S=M/10);
. xi
= diversity versus convergence threshold
(scalar in range [0,1); by default, xi=0.05);
. DT
= duration of transition between generations
(positive scalar; by default, DT=1).
Note: Identification fails when structural indices are larger
than about 30% of time series length. During the
search, the procedure is accounting for this
restriction and performs adjusting of structural
indices accordingly.

Outputs are as follows:


. NABC = matrix of optimal structural indices; the columns
number equals the number of output measuring
channels; each column includes the optimal indices
of the corresponding output channel as follows:
169

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

. PQ

[naAR ; ncMA ; nAR ; ...


na ; nb_1 ; ... ; nb_nu ; nc ; ...
nalpha ; nbeta_1 ; ... ; nbeta_nu], if d=0;
[td ; naAR ; ncMA ; nAR ; ...
na ; nb_1 ; ... ; nb_nu ; nc ; ...
nalpha ; nbeta_1 ; ... ; nbeta_nu], otherwise;
here, nu is the number of input channels;
= row vector of optimal PQ values; each element
corresponds to some output channel (the dispersion
of PQ has to be maximized).

Empty DATA enforces empty outputs.


Invokes: BASIS2DEC
DEC2BASIS
DOT_NORM
DOT_NORM2
PSO_BEST_CLUSTER
PSO_CROSSOVER
PSO_FITNESS_PQ
PSO_SOCIAL_VARIANCES
PSO_UPDATE_ARMAX
WAR_ERR
Author: Dan STEFANOIU
Created: March 04, 2009
Revised: April 28, 2009

PSO_best_cluster
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

File PSO_BEST_CLUSTER.M
Function: PSO_BEST_CLUSTER
Synopsis: [P,p,maxF] = PSO_best_cluster(POP,F) ;
This is an auxiliary procedure called by PSO
(Particle Swarm Optimisation) Algorithm in conjunction with
PARMAX program.
Its task is to extract the best particles of populations
POP, according to fitness function F (which has to be
maximized).
Input POP is either a 2D or 3D array, where populations are
stored on ny layers. Each particle is represented by one
column in some layer (population). The number of particles
(P) is the the number of columns in each layer.
Input F is a vector with the same number of elements as the
number of particles in POP (i.e. P). Each element encodes the
fitness value of particles that belong to some cluster. There
170

RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>

%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

are P clusters and each one includes ny particles (one for


each channel, but at the same position in population).
So, POP includes P clusters of particles.
The procedure finds and extracts the best cluster, according
to F. The best particles are stored on columns in matrix P,
in order of layers. Beside the best particles, the position
of cluster they belong to is also returned in p (scalar).
Also, maxF is the maximum value of F (scalar).
Missing or empty input returns empty outputs.
Invokes: VECTORIZE
WAR_ERR
Author: Dan STEFANOIU
Created: March 25, 2009
Revised: March 27, 2009

PSO_update_ARMAX
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

File PSO_UPDATE_ARMAX.M
Function: PSO_UPDATE_ARMAX
Synopsis:
[NABCGn,pozGn,sigma_s0n,sigma_s1n,sigma_sGn,sigma_sGr, ...
sigma_c1n,sigma_cG2n,ELITEn,vEn,PQ1n,PQ1Jn,NABCn,pozn, ...
sn,sigma_sEn,AELITEn,vAn,PQ0n,PQ0Jn] =
PSO_update_ARMAX(m,GEN,vG,PQ,PQJ,sigma_s0,sigma_s1, ...
sigma_c1,sigma_cG2,ELITE,vE,PQ1,PQ1J, ...
poz,s,AELITE,vA,PQ0,PQ0J) ;
This is an auxiliary procedure called by PSO
(Particle Swarm Optimisation) Algorithm in conjunction with
PARMAX program. Its task is to update the populations.
Inputs:
. m
. GEN
. vG
. PQ
. PQJ
. sigma_s0
. sigma_s1
. sigma_c1

= generation number (positive integer);


= current generation
(3D array; populations on layers);
= speed values of GEN particles
(3D array; populations on layers);
= quality prediction values of GEN particles
(matrix);
= PQ on channel J (column vector);
= minimum values of social variance for current
generation (row vector);
= maximum values of social variance for current
generation (row vector);
= maximum values of cognitive variance for
current generation (matrix);
171

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

. sigma_cG2 = signed squared absolute values of cognitive


variance for current generation (matrix);
. ELITE
= elite population
(3D array; populations on layers);
. vE
= speed values of ELITE particles
(3D array; populations on layers);
. PQ1
= prediction quality values of ELITE particles
(matrix);
. PQ1J
= PQ1 on channel J (vector);
. poz
= pozition of best ELITE particles cluster
(scalar);
. s
= surviving indices of best ELITE particles
(row vector);
. AELITE
= anti-elite population
(3D array; populations on layers);
. vA
= speed values of AELITE particles
(3D array; populations on layers);
. PQ0
= prediction quality values of AELITE particles
(matrix);
. PQ0J
= PQ0 on channel J (column vector).

%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

Outputs:
. NABCGn
. pozGn
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

= best GEN particles (row vector);


= pozition of best GEN particles cluster
(scalar);
sigma_s0n = update of minimum values of social variance
for current generation (row vector);
sigma_s1n = update of maximum values of social variance
for current generation (row vector);
sigma_sGn = update of absolute social variance for
current generation (row vector);
sigma_sGr = update of relative social variance for
current generation (row vector);
sigma_c1n = update of maximum values of cognitive
variance for current generation (matrix);
sigma_cG2n= update of signed squared absolute values of
cognitive variance for current generation
(matrix);
sigma_cGr = update of relative values of cognitive
variance for current generation (matrix);
ELITEn
= new elite population
(3D array; populations on layers);
vEn
= new speed values of ELITE particles
(3D array; populations on layers);
PQ1n
= new prediction quality values of ELITE
particles (matrix);
PQ1Jn
= new column J of PQ1 above (column vector);
NABCn
= new best ELITE particles (row vector);
pozn
= new pozition of best ELITE particles cluster
(scalar);
sn
= new survival indices of best ELITE particles
(row vector);
AELITEn
= new anti-elite population
(3D array; populations on layers);
172

RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>

%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

. vAn
. PQ0n
. PQ0Jn

= new speed values of AELITE particles


(3D array; populations on layers);
= new prediction quality values of AELITE
particles (matrix);
= new column J of PQ0 above (column vector).

Missing or empty input returns empty outputs.


Invokes: DOT_NORM2
PSO_BEST_CLUSTER
PSO_SOCIAL_VARIANCES
WAR_ERR
Author: Dan STEFANOIU
Created: March 25, 2009
Revised: April 13, 2009

173

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

174

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

Anexa D. Lista programelor i rutinelor predictorului KARMA-PSO


D.1. Programe principale

KARMA
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

File KARMA.M
Main program: KARMA
Synopsis: KARMA ;
Constructs prediction models based on state representation of
signal(s) (time series). The prediction algorithm relies on
Markov-Kalman-Bucy method, that has been modified in this
aim.
In order to estimate the unknown input signals that stimulate
the data provider, a collection of ARMA models is employed.
Such a model has 3 additive compounds:
. trend - polynomial (Least Squares Method);
. seasonal - if any (Robinson-Wittacker Method
with threshold validation);
. stochastic - AR, MA or ARMA
(Levinson-Durbin Algorithm,
Wiener-Hopf filter,
Minimum Prediction Error Method).
However, trend and seasonal components can be avoided if the
user wishes so. In this case, the time series is/are only
made stationary, by subtracting the average.
Since data are available on several measuring channels,
one prediction model for each channel is built. Models
are independent each-other. However, the state representation
is assigned to the entire data block (on all channels).

%
%
%
%
%

The prediction models are optimal, with respect to Prediction


Quality. Optimal structural indices (orders of ARMA models
and the number of states) are found by means of Particle
Swarm Optimisation (PSO) algorithm - an evolutionary
strategy (see theory).

%
%
%
%
%
%
%
%
%

In the beginning, the user is invited to set the following


parameters:
. bn = data block number; this is the number of file
including the signal (time series); any signal file
name is 'DATAbn.MAT', where tsn is a positive
integer; after loading the file, data are stored into
Y - an IDDATA object;
. K = duration of prediction horizon support
(K=7, by default);
175

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

. d

. NA

. NC
. NX

. P
. ms

= flag pointing to the users' option regarding the


deterministic component (trend+seasonal);
d=0 (default) means without deterministic component;
d~=0 means with deterministic component;
= maximum order of AR model
(non negative integer, Ny/3 by default, where
Ny = time series length);
= maximum order of MA model
(non negative integer, Ny/3 by default);
= maximum number of states
(non negative integer, Ny/10 by default,
but no smaller than 10);
= the number of particles for PSO algorithm
(non negative integer, 25, by default);
= flag pointing to the user's option regarding the
stability:
ms=0 -> no stability check on identification models
is applied (default);
ms~=0 -> only stable identification models are
selected.

* Note: Noisy time series are better predicted with unstable


models.
The overall workspace is saved in the end in a file entitled:
'KARMA_DATAbn#d<s>_K_Vm.mat' ,
within directory .\Sim_class_DATAbn, so that the framework
can easily be retrieved when needed. The file name refers to
successive runs on the same data block, which provides
versions _V1, _V2, ... _Vm, ... Also, the label 's' appears
only when the user restricted the search to stable models.
Finally, graphics are drawn through SHOW_KARMA program.
Invokes: DB
MULTI_PQ
KARMA_MODEL
PSO_KARMA
SHOW_KARMA
WAR_ERR
Author: Dan STEFANOIU
Created: April 19, 2009
Revised: April 27, 2009

SHOW_KARMA
%
%
%
%

File SHOW_KARMA.M
Main program: SHOW_KARMA
176

RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>

%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

Synopsis: SHOW_KARMA ;
Draws all graphics corresponding to main program KARMA.
It is assumed that the framework resulted after running KARMA
resides within MATLAB workspace. Otherwise, the program
LOAD_KARMA can be employed to load some framework.
The graphical package is saved in directory
.\Sim_class_DATAbn under the same name as the framework,
but with .FIG extension. Here, 'DATAbn' is the name of the
data block under analysis.
Invokes: SHOW_TS
SHOW_TS_VS_MODEL
WAR_ERR
Author: Dan STEFANOIU
Created: April 21, 2009
Revised:

D.2. Rutine auxiliare

KARMA_model
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

File KARMA_MODEL.M
Function: KARMA_MODEL
Synopsis:
[Y_PRED,Sigma,aNAC,aNS,Y_MODEL,U,E,PSE,FW,PsiW,DV,PsiV, ...
SNR,STATE_MODEL,ARMA_MODEL,AR_MODEL] = ...
KARMA_model(Y,NAC,NS,K,ms,mY,EY) ;
Estimates prediction models based on state representation and
ARMA class, for data acquired on one or more channels. The
state model is assigned to the whole data block. On the
contrary, each ARMA model is assigned to a data channel.
ARMA models are independent on each-other. Such a model
includes 3 additive compounds:
. trend - polynomial (Least Squares Method);
. seasonal - if any
(Robinson-Wittacker Method
with threshold validation);
. stochastic - AR, MA or ARMA
(Levinson-Durbin Algorithm,
Wiener-Hopf filter,
Minimum Prediction Error Method).
However, trend and seasonal components can be avoided if the
user wishes so. In this case, the time series is/are only
made stationary, by subtracting the average.
177

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

Inputs:
. Y
= data block (IDDATA object); data length is Ny;
the number of channels is ny;
. NAC = block of structural indices (nsi-by-ny matrix);
here, nsi is the number of structural indices;
each column of NAC includes the following structural
indices:
[td ; na ; nc ; nalpha] ;
the trend degree (td) could miss, so that nsi is
either 3 or 4;
. NS = the number of states (scalar);
. K
= duration of prediction horizon support
(K=7, by default); if K=0, no prediction is
performed, only the identification model is built;
. ms = model stability flag (integer or logical;
by default: ms=0 -> no stability check on
identification models; if ms~=0, only stable
identification models are selected);
. mY = data averages (ny-length row vector);
if missing or empty, it will be evaluated from data
block Y.
. EY = data energy (ny-length row vector);
if missing or empty, it will be evaluated from data
block Y.
Outputs:
. Y_PRED
. Sigma
. aNAC

. aNS

. Y_MODEL
. U
. E
. PSE
. FW
. PsiW
. DV
. PsiV

= predicted data set (K-by-ny matrix);


= variances of prediction errors
(K-by-ny matrix);
= adjusted bloc of structural indices
(nsi-by-ny matrix); this output can be used to
correct wrong structural indices (that cannot
allow identification of ARMA models);
= adjusted number of states (scalar);
this output can be used to correct the number
of states (that cannot allow identification of
state representation);
= predicted data on measuring horizon
(Ny-by-ny matrix);
= estimated and predicted inputs
((Ny+K)-by-ny matrix);
= estimated white noise as prediction error on
measuring horizon (Ny-by-ny matrix);
= estimated covariance matrix of state estimation
error (NS-by-NS matrix);
= predicted endogenous colored noise
((Ny+K)-by-ny matrix);
= estimated covariance matrix of endogenous
colored noise (NS-by-NS matrix);
= predicted exogenous colored noise
((Ny+K)-by-ny matrix);
= estimated covariance matrix of exogenous
colored noise (ny-by-ny matrix);
178

RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>

%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

. SNR
.
.

= estimated signal-to-noise ratios


(ny-length row vector);
STATE_MODEL = the state model (IDSS object);
DET_MODEL = the deterministic model
(8-length cell array);
its structure is as follows:
{1} = YT = polynomial trends on measuring
horizon (Ny-by-ny matrix);
{2} = Theta = coefficients of polynomial
trends ((td+1)-by-ny matrix);
{3} = YS = seasonal variations on measuring
horizon (Ny-by-ny matrix);
{4} = PS = periods of seasonal variations
(ny-length row vector);
{5} = V = colored noise on measuring
horizon (Ny-by-ny matrix);
{6} = Y_EXTRA = extrapolated deterministic
components (K-by-ny matrix);
{7} = YT_EXTRA = extrapolated polynomial
trends (K-by-ny matrix);
{8} = YS_EXTRA = extrapolated seasonal
variations (K-by-ny matrix);
ARMA_MODEL = ARMA prediction models
(ny-length row vector of cells including
IDPOLY objects);
AR_MODEL
= AR approximating models
(ny-length row vector of cells including
IDPOLY objects).

Missing or empty essential inputs return empty otputs.

%
%
%
%
%
%
%

Invokes: DB
EXTRAPOLATE
MKB_FILTER
MIMO_ARMA
PERIODIC_VARIATION
POLY_TREND
WAR_ERR

%
%
%
%

Author: Dan STEFANOIU


Created: April 20, 2009
Revised: April 21, 2009

MKB_filter
%
%
%
%
%
%
%
%
%

File MKB_FILTER.M
Function: MKB_FILTER
Synopsis:
[Y_PRED,Lambda,aNS,Y_MODEL,E,PSE,FW,PsiW,DV,PsiV, ...
STATE_MODEL] = ...
MKB_filter(Y,NS,K,U_PRED,alpha) ;
179

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

Estimates prediction models based on state representation and


uses Markov-Kalman-Bucy filtering technique to predict data.
(See theory for details.)
Inputs:
. Y

= data block (IDDATA object); data length is Ny;


the number of channels is ny; input signals are
also included into the block; their number equals
ny as well (see function KARMA_MODEL for inputs
estimation);
. NS
= the number of states (scalar);
. K
= duration of prediction horizon support
(K=7, by default); if K=0, no prediction is
performed, only the identification model is
built;
. U_PRED = predicted data set ((K+1)-by-ny matrix);
the input at instant Ny is also needed on the
first row; the other K rows encode predicted
inputs on prediction horizon;
. aplha = parameter to init the evaluation of output PSE
(positive scalar, 1 by default).

Outputs:
. Y_PRED
. Lambda
.

.
.
.
.
.
.
.
.

= predicted data set (K-by-ny matrix);


= standard deviations of prediction errors
on measuring horizon (ny-length vector);
aNS
= adjusted number of states (scalar);
this output can be used to correct the number
of states (that cannot allow identification of
state representation);
Y_MODEL = predicted data on measuring horizon
(Ny-by-ny matrix);
E
= estimated white noise as prediction error
(Ny-by-ny matrix);
PSE
= estimated covariance matrix of state estimation
error (NS-by-NS matrix);
FW
= predicted endogenous colored noise
((Ny+K)-by-ny matrix);
PsiW
= estimated covariance matrix of endogenous
colored noise (NS-by-NS matrix);
DV
= predicted exogenous colored noise
((Ny+K)-by-ny matrix);
PsiV
= estimated covariance matrix of exogenous
colored noise (ny-by-ny matrix);
STATE_MODEL = the state model (IDSS object).

Missing or empty essential inputs return empty otputs.


Invokes: WAR_ERR
Author: Dan STEFANOIU
Created: April 20, 2009
Revised: April 22, 2009
180

RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>

PSO_best_cluster
%

File PSO_BEST_CLUSTER.M

Function: PSO_BEST_CLUSTER

Synopsis: [P,Px,p,maxF] = PSO_best_cluster(POP,POPx,F) ;

%
%
%

This is an auxiliary procedure called by PSO


(Particle Swarm Optimisation) Algorithm in conjunction with
KARMA program.

%
%
%

Its task is to extract the best particles of populations


POP and POPx, according to fitness function F (which has to
be maximized).

%
%
%
%
%
%

Input POP is a 3D array, where populations are


stored on ny layers. Each particle is represented by one
column in some layer (population). The number of particles
(P) is the the number of columns in each layer. Input POPx is
a P-length row vector with particles pointing to the number
of states to be taken by Kalman filter.

%
%
%
%
%
%
%
%

Input F is a vector with the same number of elements as the


number of particles in POP pr POPx (i.e. P). Each element
encodes the fitness value of particles that belong to some
cluster. There are P clusters and each one includes ny
particles from POP at some position (say p) and one particle
from POPx at the same position (p) (one for each channel, but
at the same position in POP). Thus, P clusters of particles
are available.

%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

The procedure finds and extracts the best cluster, according


to F. The best particles are stored on columns in matrix P
(in order of layers) and in scalar Px. Beside the best
particles, the position of cluster they belong to is also
returned in p (scalar). Also, maxF is the maximum value of F
(scalar).
Missing or empty input returns empty outputs.
Invokes: VECTORIZE
WAR_ERR
Author: Dan STEFANOIU
Created: April 20, 2009
Revised:

PSO_crossover
%
%
%
%
%

File PSO_CROSSOVER.M
Function: PSO_CROSSOVER
181

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

Synopsis:
[POP12,POPx12,v12,vx12] = ...
PSO_crossover(POP1,POPx1,POP2,POPx2,v1,vx1,v2,vx2) ;
This is an auxiliary procedure called by PSO
(Particle Swarm Optimisation) Algorithm.
Its task is to perform crossover between 2 populations groups
POP1-POPx1 and POP2-POPx2. The other inputs, v1-vx1 and
v2-vx2, are the corresponding speed values.
Inputs POP1 and POP2 are 3D arrays, where populations
are stored on layers. Each particle is represented by one
column in some layer (population). Inputs POPx1 and POPx2 are
row vectors with the same number of elements as the number
of columns in POP or POP1.
Inputs v1 and v2 are 3D arrays, exactly like POP1 and POP2,
respectively. Each column encodes the speed values of
particles that belong to some population/layer. Inputs vx1
and vx2 are row vectors, exactly like POPx1 and POPx2.
See theory for definition of crossover.
The offsping populations POP12-POPx12 include a double number
of particles and the corresponding speed values are twice
bigger.
Missing or empty input returns empty output.
Invokes: VECTORIZE
WAR_ERR

%
%
%
%

Author: Dan STEFANOIU


Created: April 21, 2009
Revised:

PSO_fitness_PQ
%
%

File PSO_FITNESS_PQ.M

Function: PSO_FITNESS_PQ

%
%

Synopsis: [PQ,APOP,APOPx] =
PSO_fitness_PQ(DATA,POP,POPx,bK,ms,sdy,sdy_plus) ;

%
%

Evaluates the prediction (or extrapolation) quality (PQ) as


fitness function for PSO algorithm.

%
%
%
%
%
%

Input arguments are as follows:


. DATA = IDDATA object with measured data; if DATA.u is
empty, then PQ is evaluated for SISO-ARMA models;
otherwise, the MIMO-ARMA models are considered;
DATA.y includes the measured data on columns
(channels);
182

RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>

%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

. POP

.
.
.

= population of structural indices (3D array - see


functions PSO_ARMA or PSO_ARMAX for its elements);
the number of columns equals the population size P;
the number of layers must be equal to the number of
measuring channels, ny;
POPx = population of states number (P-length row vector);
bK
= length of backwards prediction horizon
(scalar; by default, bK=4);
ms
= model stability flag (integer or logical;
by default: ms=0 -> no stability check on
identification models; if ms~=0, only stable
identification models are selected);
sdy = standard deviation of measured data
(scalar or row vector); if vector, the length
equals the number of measuring channels;
if missing, empty or null, it is computed according
to DATA.y;
sdy_plus = standard deviation of test data
(scalar or row vector); if vector, the length
equals the number of measuring channels;
if missing, empty or null, it is computed
according to DATA.y.

Output PQ is a P-by-ny matrix with PQ values for each


particle in population POP. Outputs APOP and APOPx are built
starting from POP and POPx, respectively, but some structural
indices may have been adjusted during the identification
procedure. If APOP is different from POP and/or APOPx is
different from POPx,then they can be employed to update the
current population.
Missing or empty DATA or POP return empty PQ.
Invokes: MULTI_PQ
KARMA_MODEL
VECTORIZE
WAR_ERR
Author: Dan STEFANOIU
Created: April 20, 2009
Revised: April 22, 2009

PSO_KARMA
%
%
%
%

File PSO_KARMA.M
Function: PSO_KARMA

%
%

Synopsis: [NAC,NS,PQ] =
PSO_KARMA(DATA,d,K,NA,NC,NX,P,ms,M,S,xi,DT) ;

%
%

Implements Particle Swarm Optimisation (PSO) technique to


heuristically find the (sub-)optimal structural indices of
183

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

state representation models to be used in conjunction with


Markov-Kalman-Bucy Algorithm (see theory). The fitness
function is the prediction quality (PQ), which has to be
maximized.
Inputs are as follows:
. DATA = an IDDATA object including the measured data,
stored on channels; DATA length is denoted by Ny;
each column stands for some channel; could not miss
or be empty;
. d
= flag pointing to the user's option regarding the
deterministic part (trend and seasonal variation)
of prediction model (scalar);
if d=0, no deterministic part is build; otherwise
(default), trend and seasonal variation are built,
before identification of SISO-ARMA models (maximum
trend degree is 10, for numerical reasons);
. K
= duration of prediction horizon
(positive integer; by default, K=7);
. NA
= maximum value of AR orders
(positive integer; by default: NA=Ny/3);
. NC
= maximum value of MA orders
(positive integer; by default: NC=Ny/3);
. NX
= maximum value of states number
(positive integer; by default: NX=Ny/3);
. P
= size of particles population
(positive integer; by default: P=40);
. ms
= model stability flag (integer or logical;
by default: ms=0 -> no stability check on
identification models; if ms~=0, only stable
identification models are selected);
. M
= maximum number of generations to be tested
(positive integer; by default, M=50) ;
. S
= minimum survival factor (how many generations the
best particle has to survive to stop searching)
(positive integer; by default, S=M/10);
. xi
= diversity versus convergence threshold
(scalar in range [0,1); by default, xi=0.05);
. DT
= duration of transition between generations
(positive scalar; by default, DT=1).

%
%
%
%
%

Note: Identification fails when structural indices are larger


than about 30% of time series length. During the
search, the procedure is accounting for this
restriction and performs adjusting of structural
indices accordingly.

%
%
%
%
%
%
%

Outputs are as follows:


. NAC = matrix of optimal structural indices; the columns
number equals the number of output measuring
channels; each column includes the optimal indices
of the corresponding output channel as follows:
[na ; nc ; nalpha], if d=0;
[td ; na ; nc ; nalpha], otherwise;
184

RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>

%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

. NS = number of states (scalar, non negative integer)


. PQ = row vector of optimal PQ values; each element is
corresponding to some output channel (the dispersion
of PQ has to be maximized).
Empty DATA enforces empty outputs.
Invokes: DOT_NORM
DOT_NORM2
PSO_BEST_CLUSTER
PSO_CROSSOVER
PSO_FITNESS_PQ
PSO_SOCIAL_VARIANCES
PSO_UPDATE_KARMA
WAR_ERR
Author: Dan STEFANOIU
Created: April 20, 2009
Revised: April 28, 2009

PSO_social_variances
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

File PSO_SOCIAL_VARIANCES.M
Function: PSO_SOCIAL_VARIANCES
Synopsis: [sigma_s,sigma_sx] =
PSO_social_variances(POP,POPx,BP,BPx) ;
This is an auxiliary procedure called by PSO
(Particle Swarm Optimisation) Algorithm.
Its task is to evaluate the social variance of each
population in POP-POPx, with respect to the (best) particle
BP-BPx.
Input POP is a 3D array, where populations are
stored on layers. Each particle is represented by one column
in some layer (population). Input POPx is a complementary
population stored on a row vector. Each particle points to
the number of states (see theory). The length of POPx must
equal the number of columns in POP (i.e. P = the population
size per channel).
Input BP is a matrix with the same number of columns as the
number of layers in POP (ny = number of channels). Each
column encodes the (best) particle that belong to the
corresponding population/layer. Input BPx is a scalar
encoding the best particle in population POPx.
The procedure computes the variance values by computing
the square root of average distance from each particle
to the (best) particle in the same population.
185

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

%
%
%
%
%
%
%
%
%
%
%
%
%
%

The variance values are stored within row vector sigma_s


with the same length as the number of layers/populations
in POP and scalar sigma_sx, corresponding to POPx.
Missing or empty input returns empty output.
Invokes: DOT_SUM
VECTORIZE
WAR_ERR
Author: Dan STEFANOIU
Created: March 05, 2009
Revised: April 21, 2009

PSO_update_KARMA
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

File PSO_UPDATE_KARMA.M
Function: PSO_UPDATE_KARMA
Synopsis:
[NACGn,NSGn,pozGn,sigma_s0n,sigma_sx0n,sigma_s1n, ...
sigma_sx1n,sigma_sGn,sigma_sGxn,sigma_sGr,sigma_sGxr, ...
sigma_c1n,sigma_cx1n,sigma_cG2n,sigma_cGx2n,sigma_cGr, ...
sigma_cGxr,ELITEn,ELITExn,vEn,vExn,PQ1n,vPQ1n,F1n, ...
NACn,NSn,pozn,sn,sigma_sEn,sigma_sExn, ...
AELITEn,AELITExn,vAn,vAxn,PQ0n,vPQ0n,F0n] = ...
PSO_update_KARMA(m,GEN,GENx,vG,vGx,PQ,vPQ,F, ...
sigma_s0,sigma_sx0,sigma_s1,sigma_sx1, ...
sigma_c1,sigma_cx1,sigma_cG2,
sigma_cGx2,ELITE,ELITEx,vE,vEx,PQ1, ...
vPQ1,F1,poz,s,AELITE,AELITEx,vA,vAx, ...
PQ0,vPQ0,F0) ;

%
%
%

This is an auxiliary procedure called by PSO


(Particle Swarm Optimisation) Algorithm in conjunction with
KARMA program. Its task is to update the populations.

%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

Inputs:
. m
. GEN
. GENx
. vG
. vGx
. PQ
. vPQ
. F
. sigma_s0

= generation number (positive integer);


= current generation ARMA
(3D array; populations on layers);
= current generation state
(row vector; single population);
= speed values of GEN particles
(3D array; populations on layers);
= speed values of GENx particles (row vector);
= quality prediction values of GEN particles
(matrix);
= dispersion of PQ above (column vector);
= fitness of PQ above (row vector);
= minimum values of social variance for
current generation GEN (row vector);
186

RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>

%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

. sigma_sx0

= minimum values of social variance for


current generation GENx (scalar);
. sigma_s1
= maximum values of social variance for
current generation GEN (row vector);
. sigma_sx1 = maximum values of social variance for
current generation GENx (scalar);
. sigma_c1
= maximum values of cognitive variance for
current generation GEN (matrix);
. sigma_cx1 = maximum values of cognitive variance for
current generation GENx (row vector);
. sigma_cG2 = signed squared absolute values of cognitive
variance for current generation GEN
(matrix);
. sigma_cGx2 = signed squared absolute values of cognitive
variance for current generation GENx
(row vector);
. ELITE
= elite population corresponding to GEN
(3D array; populations on layers);
. ELITEx
= elite population corresponding to GENx
(row vector);
. vE
= speed values of ELITE particles
(3D array; populations on layers);
. vEx
= speed values of ELITEx particles
(row vector);
. PQ1
= prediction quality values of ELITE-ELITEx
particles (matrix);
. vPQ1
= dispersion of PQ1 above (column vector);
. F1
= fitness of PQ1 above (row vector);
. poz
= pozition of best ELITE-ELITEx cluster
(scalar);
. s
= survival index of best cluster (scalar);
. AELITE
= anti-elite population corresponding to GEN
(3D array; populations on layers);
. AELITEx
= anti-elite population corresponding to GENx
(row vector);
. vA
= speed values of AELITE particles
(3D array; populations on layers);
. vAx
= speed values of AELITEx particles
(row vector);
. PQ0
= prediction quality values of AELITE-AELITEx
particles (matrix);
. vPQ0
= dispersion of PQ0 above (column vector);
. F0
= fitness of PQ0 above (row vector).

%
%
%
%
%
%
%
%
%
%

Outputs:
. NACGn
. NSGn
. pozGn
. sigma_s0n
. sigma_sx0n
. sigma_s1n

=
=
=
=

best GEN particles (matrix);


best GENx particle (scalar);
pozition of best GEN-GENx cluster (scalar);
update of minimum values of social variance
for current generation GEN (row vector);
= update of minimum value of social variance
for current generation GENx (scalar);
= update of maximum values of social variance
for current generation GEN (row vector);
187

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

. sigma_sx1n

= update of maximum values of social variance


for current generation GENx (scalar);
. sigma_sGn
= update of absolute social variance for
current generation GEN (row vector);
. sigma_sGxn = update of absolute social variance for
current generation GENx (scalar);
. sigma_sGr
= update of relative social variance for
current generation GEN (row vector);
. sigma_sGxr = update of relative social variance for
current generation GENx (scalar);
. sigma_c1n
= update of maximum values of cognitive
variance for current generation GEN
(matrix);
. sigma_cx1n = update of maximum values of cognitive
variance for current generation GENx
(row vector);
. sigma_cG2n = update of signed squared absolute values of
cognitive variance for current generation
GEN (matrix);
. sigma_cGx2n = update of signed squared absolute values of
cognitive variance for current generation
GENx (row vector);
. sigma_cGr
= update of relative values of cognitive
variance for current generation GEN
(matrix);
. sigma_cGxr = update of relative values of cognitive
variance for current generation GENx
(row vector);
. ELITEn
= new elite population for GEN
(3D array; populations on layers);
. ELITExn
= new elite population for GENx (row vector);
. vEn
= new speed values of ELITE particles
(3D array; populations on layers);
. vExn
= new speed values of ELITEx particles
(row vector);
. PQ1n
= new prediction quality values of
ELITE-ELITEx particles (matrix);
. vPQ1n
= new dispersion of PQ1 above
(column vector);
. F1n
= new fitness of PQ above (row vector);
. NACn
= new best ELITE particles (matrix);
. NSn
= new best ELITEx particles (scalar);
. pozn
= new pozition of best ELITE-ELITEx cluster
(scalar);
. sn
= new survival index of best cluster
(scalar);
. sigma_sEn
= update of absolute social variance for
ELITE (row vector);
. sigma_sExn = update of absolute social variance for
ELITEx (scalar);
. AELITEn
= new anti-elite population for GEN
(3D array; populations on layers);
. AELITExn
= new anti-elite population for GENx
(row vector);
188

RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>

%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

. vAn
. vAxn
. PQ0n
. vPQ0n
. F0n

= new speed values of AELITE particles


(3D array; populations on layers);
= new speed values of AELITEx particles
(row vector);
= new prediction quality values of
AELITE-AELITEx particles (matrix);
= new dispersion of PQ0 above
(column vector);
= new fitness of PQ0 above (row vector).

Missing or empty input returns empty outputs.


Invokes: DOT_NORM2
PSO_BEST_CLUSTER
PSO_SOCIAL_VARIANCES
WAR_ERR
Author: Dan STEFANOIU
Created: April 21, 2009
Revised: April 28, 2009

189

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

190

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

Anexa E. Lista programelor i rutinelor predictorului FORWAVER 1


E.1. Programe principale

FAST_ML_ODWT_ARMA
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

File FAST_ML_ODWT_ARMA_SLOW.M
Main program: FAST_ML_ODWT_ARMA
Synopsis: FAST_ML_ODWT_ARMA ;
Refines an existing prediction model of a signal (time
series) based on the Orthogonal Discrete Wavelet Transform
(orthogonal wavelet packets) and ARMA modeling for the
stochastic component. The refinement consists of modifying
the parameter ml (the masking level of wavelet coefficients
in percents (integer from 0 to 100)). (See the function
DWT_MODEL for more details about this parameter.) The
parameter ml is incremented by 1 from a minimum value MLmin
(1, by default) to a maximum value MLmax (100, by default).
If no model exists, the user should first build at least one,
in order to run this program. Use ODWT_ARMA or FAST_ODWT_ARMA
programs in this aim.
Finally, graphics are drawn through QUICK_SHOW_ODWT_ARMA
program.
Invokes: ARMA_MODEL
DB
DWT_MODEL
PREDICTION_QUALITY
SELECTION_INDEX
WAR_ERR
Author: Dan STEFANOIU
Created: June
15, 2009
Revised: August 22, 2009

FAST_ODWT_ARMA
%
%
%
%
%
%
%
%
%

File FAST_ODWT_ARMA.M
Main program: FAST_ODWT_ARMA
Synopsis: FAST_ODWT_ARMA ;
Constructs an adaptive prediction model of a signal (time
series) based on the Orthogonal Discrete Wavelet Transform
191

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

(orthogonal wavelet packets) and ARMA modeling for the


stochastic component.
At entry, the user is invited to set the following
parameters:
. n = the number of file including the signal (time
series); any signal file name is 'Yn.M', where n is a
positive integer;
. N = wavelets support parameter (positive integer);
(orthogonal case: Supp(phi)=[0,2N-1],
Supp(psi)=[1-N,N]);
. K = duration of prediction horizon support
(K=7, by default);
. l = resolution exponent of father wavelet
(l=0, by default, in case of father wavelet sampled
at integer instants; l=1 for half integer instants,
l=2 for quarter integer instants, etc.);
. ml = masking level of wavelet coefficients in percents
(integer from 0 to 100);
(see function DWT_MODEL for more details on this
parameter);
. na = order of AR model (non negative integer);
if na=0, the AR modeling is skipped;
. nc = order of MA model (non negative integer);
if nc=0, the AR modeling is skipped;
if both na and nc are null, ARMA modeling is
cancelled and only the deterministic model is
employed to predict the data.
To get the most suitable couple (na,nc) for prediction,
the prediction quality (PQ) index should be used, like in
case of main programs SLOW_ODWT_ARMA or SLOW_ML_ODWT_ARMA.
Thus, a PQ surface should be drawn over na=0:NA and nc=0:NC
and the maximum point is selected (with the help of parsimony
principle too). For this program, the orders of ARMA model
must be known in advance.
The overall workspace is saved in the end in a file entitled:
'Yn#K_N_l_ml_na_nc_Vm.mat' ,
within directory .\Sim_ortho_Yn, so that the framework can
easily be retrieved if needed. If all the parameters are the
same within successive runs, versions _V1, _V2, ... _Vm, ...
are saved.
No graphics are drawn here. To draw graphics, see the program
SHOW_ODWT_ARMA.
Invokes: ARMA_MODEL
DAUB
DB
DWT_MODEL
192

RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>

%
%
%
%
%
%
%
%
%
%
%

IDA_STAR
PREDICTION_QUALITY
ROUGH_MODEL
V0_PROJECTION
VECTORIZE
WAR_ERR
Author: Dan STEFANOIU
Created: June
08, 2009
Revised: August 21, 2009

LOAD_ODWT_ARMA
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

File LOAD_ODWT_ARMA.M
Main program: LOAD_ODWT_ARMA
Synopsis: LOAD_ODWT_ARMA ;
Loads a framework produced by main program ODWT_ARMA.
The framework is loaded from directory .\Sim_ortho_Yn,
where n is the number of time series. Time series are:
Y1, Y2, Y3, ... The user has the opportunity to select the
framework file (MAT type) from a numbered list, by simply
pointing to the desired file number.
Invokes: WAR_ERR
Author: Dan STEFANOIU
Created: June 09, 2009
Revised:

ODWT_ARMA
%
%

File ODWT_ARMA.M

Main program: ODWT_ARMA

Synopsis: ODWT_ARMA ;

%
%
%
%
%
%
%
%
%
%
%
%

Constructs an adaptive prediction model of a signal (time


series) based on the Orthogonal Discrete Wavelet Transform
(orthogonal wavelet packets) and ARMA modeling for the
stochastic component.
At the entry, the user is invited to set the following
parameters:
. n = the number of file including the signal (time
series); any signal file name is 'Yn.M', where n is a
positive integer;
. K = duration of prediction horizon support
(K=7, by default);
193

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

. N

= wavelets support parameter (positive integer);


(orthogonal case: Supp(phi)=[0,2N-1],
Supp(psi)=[1-N,N]);
. l = resolution exponent of father wavelet
(l=0, by default, in case of father wavelet sampled
at integer instants; l=1 for half integer instants,
l=2 for quarter integer instants, etc.).
. ml = masking level of wavelet coefficients in percents
(integer from 0 to 100);
(see function DWT_MODEL for more details on this
parameter);
. NA = maximum order of AR model
(non negative integer, 25 by default);
if NA=0, the AR modeling is skipped;
. NC = maximum order of MA model
(non negative integer, 25 by default);
if NC=0, the AR modeling is skipped;
if both NA and NC are null, ARMA modeling is
cancelled and only the deterministic model is
employed to predict (extrapolate) the data.
To get the most suitable couple (na,nc) for prediction,
the prediction quality (PQ) index is used.
(See the program below for its definition).
Thus, a PQ surface is drawn over na=0:NA and nc=0:NC and
the maximum point is selected (with the help of parsimony
principle too). However, within this program, the resolution
index (l) must be known in advance.This gives the most
suitable na and nc.
The overall workspace is saved in the end in a file entitled:
'Yn#K_N_l_ml_na_nc_Vm.mat' ,
within directory .\Sim_ortho_Yn, so that the framework can
easily be retrieved if needed. If all the parameters are the
same within successive runs, versions _V1, _V2, ... _Vm, ...
are saved.
No graphics are drawn here. To draw graphics, see the program
SHOW_ODWT_ARMA.
Invokes: ARMA_MODEL
DAUB
DB
DWT_MODEL
IDA_STAR
PREDICTION_QUALITY
ROUGH_MODEL
SELECTION_INDEX
V0_PROJECTION
VECTORIZE
WAR_ERR
194

RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>

%
%
%
%
%

Author: Dan STEFANOIU


Created: May
24, 2009
Revised: August 21, 2009

QUICK_ML_ODWT_ARMA
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

File QUICK_ML_ODWT_ARMA.M
Main program: QUICK_ML_ODWT_ARMA
Synopsis: QUICK_ML_ODWT_ARMA ;
Refines an existing prediction model of a signal (time
series) based on the Orthogonal Discrete Wavelet Transform
(orthogonal wavelet packets) and ARMA modeling for the
stochastic component. The refinement consists of modifying
the parameter ml (the masking level of wavelet coefficients
in percents (any number from 0 to 100, not necessarily
integer)). (See the function DWT_MODEL for more details about
this parameter.) The parameter ml should be increased in
successive runs from 0 to the level of which the prediction
quality falls below the value of rough prediction model.
If no model exists, the user should first build at least one,
in order to run this program. Use ODWT_ARMA or FAST_ODWT_ARMA
programs in this aim.
Finally, graphics are drawn through QUICK_SHOW_ODWT_ARMA
program.
Invokes: ARMA_MODEL
DB
DWT_MODEL
PREDICTION_QUALITY
SELECTION_INDEX
WAR_ERR
Author: Dan STEFANOIU
Created: June
22, 2009
Revised: August 21, 2009

QUICK_ODWT_ARMA
%
%
%
%
%
%
%
%

File QUICK_ODWT_ARMA.M
Main program: QUICK_ODWT_ARMA
Synopsis: QUICK_ODWT_ARMA ;
Quick run of ODWT_ARMA and SHOW_ODWT_ARMA.
195

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

%
%
%
%
%
%
%
%

Invokes: ODWT_ARMA
QUICK_SHOW_ODWT_ARMA
Author: Dan STEFANOIU
Created: June 01, 2009
Revised:

QUICK_SHOW_ODWT_ARMA
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

File QUICK_SHOW_ODWT_ARMA.M
Main program: QUICK_SHOW_ODWT_ARMA
Synopsis: QUICK_SHOW_ODWT_ARMA ;
Draws all graphics corresponding to main program ODWT_ARMA.
It is assumed that the framework resulted after running
ODWT_ARMA resides within MATLAB workspace.
The graphical package is saved in directory .\Sim_ortho_Yn
under the same name as the framework, but with .FIG
extension. Here, 'Yn' is the name of the time series under
analysis.
Invokes: SHOW_PQ
SHOW_SCALOGRAM
SHOW_TREE
SHOW_TS
SHOW_TS_VS_MODEL
SHOW_WAVELETS
WAR_ERR
Author: Dan STEFANOIU
Created: June
01, 2009
Revised: August 21, 2009

SHOW_ODWT_ARMA
%
%
%
%
%
%
%
%
%
%
%
%
%

File SHOW_ODWT_ARMA.M
Main program: SHOW_ODWT_ARMA
Synopsis: SHOW_ODWT_ARMA ;
Draws or loads all graphics corresponding to frameworks
produced by main program ODWT_ARMA. The user can choose
whether the graphical package has to be loaded or (re-)drawn.
The frameworks/graphics are loaded from directory
.\Sim_ortho_Yn, where n is the number of time series.
196

RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>

%
%
%

Time series are: Y1, Y2, Y3, ... The user has the opportunity
to select the framework file (MAT type) from a numbered list,
by simply pointing to the desired file number.

%
%
%

The graphical package is saved in directory .\Sim_ortho_Yn


under the same name as the framework, but with .FIG
extension.

%
%
%
%
%
%
%

Invokes: SHOW_PQ
SHOW_SCALOGRAM
SHOW_TREE
SHOW_TS
SHOW_TS_VS_MODEL
SHOW_WAVELETS
WAR_ERR

%
%
%
%

Author: Dan STEFANOIU


Created: May
25, 2009
Revised: August 21, 2009

SLOW_ML_ODWT_ARMA
%
%

File SLOW_ML_ODWT_ARMA_SLOW.M

Main program: SLOW_ML_ODWT_ARMA

Synopsis: SLOW_ML_ODWT_ARMA ;

%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

Refines an existing prediction model of a signal (time


series) based on the Orthogonal Discrete Wavelet Transform
(orthogonal wavelet packets) and ARMA modeling for the
stochastic component. The refinement consists of modifying
the parameter ml (the masking level of wavelet coefficients
in percents (integer from 0 to 100)). (See the function
DWT_MODEL for more details about this parameter.) The program
is rebuilding the prediction quality surface, which may take
time.
If no model exists, the user should first build at least one,
in order to run this program. Use ODWT_ARMA or FAST_ODWT_ARMA
programs in this aim.
Finally, graphics are drawn through QUICK_SHOW_ODWT_ARMA
program.
Invokes: ARMA_MODEL
DB
DWT_MODEL
PREDICTION_QUALITY
WAR_ERR
Author: Dan STEFANOIU
Created: June
22, 2009
Revised: August 22, 2009
197

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

SLOW_ODWT_ARMA
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

File SLOW_ODWT_ARMA.M
Main program: SLOW_ODWT_ARMA
Synopsis: SLOW_ODWT_ARMA ;
Constructs an adaptive prediction model of a signal (time
series) based on the Orthogonal Discrete Wavelet Transform
(orthogonal wavelet packets) and ARMA modeling for the
stochastic component.
At the entry, the user is invited to set the following
parameters:
. n
= the number of file including the signal (time
series); any signal file name is 'Yn.M', where n is
a positive integer;
. K
= duration of prediction horizon support
(K=7, by default);
. Nmin = minimum value of wavelets support parameter
(positive integer, 2 by default);
. Nmax = maximum value of wavelets support parameter
(positive integer, 25 by default);
N varies from Nmin to Nmax; (orthogonal case:
Supp(phi)=[0,2N-1], Supp(psi)=[1-N,N]);
. Lmin = minimum value of resolution index for the father
wavelet (non-negative integer, 0 by default);
. Lmax = maximum value of resolution index for the father
wavelet (non-negative integer, 6 by default);
l varies from Lmin to Lmax; (l=0 in case of father
wavelet sampled at integer instants;
l=1 for half integer instants, l=2 for quarter
integer instants, etc.);
. ml
= masking level of wavelet coefficients in percents
(integer from 0 to 100);
(see function DWT_MODEL for more details on this
parameter);
. NA
= maximum order of AR model
(non negative integer, 25 by default);
if NA=0, the AR modeling is skipped;
. NC
= maximum order of MA model
(non negative integer, 25 by default);
if NC=0, the AR modeling is skipped;
if both NA and NC are null, ARMA modeling is
cancelled and only the deterministic model is
employed to predict (extrapolate) the data.
To get the most suitable couple (na,nc) for prediction,
the prediction quality (PQ) index is used.
(See the program below for its definition).
Thus, a PQ surface is drawn over na=0:NA and nc=0:NC and
198

RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>

%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

the maximum point is selected (with the help of parsimony


principle too). This gives the most suitable na and nc.
The overall workspace is saved in the end in a file entitled:
'Yn#K_N_l_ml_na_nc_Vm.mat' ,
within directory .\Sim_ortho_Yn, so that the framework can
easily be retrieved if needed. If all the parameters are the
same within successive runs, versions _V1, _V2, ... _Vm, ...
are saved.
Finally, graphics are drawn through QUICK_SHOW_ODWT_ARMA
program.
Invokes: ARMA_MODEL
DAUB
DB
DWT_MODEL
IDA_STAR
PREDICTION_QUALITY
ROUGH_MODEL
SELECTION_INDEX
V0_PROJECTION
VECTORIZE
WAR_ERR
Author: Dan STEFANOIU
Created: June
03, 2009
Revised: August 22, 2009

E.2. Rutine auxiliare

ARMA_model
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

File ARMA_MODEL.M
Function: ARMA_MODEL
Synopsis: [ya,sigma,e,M] = ARMA_model(v,K,na,nc) ;
Builds an autoregressive stochastic model of colored noise
v (vector) and performs prediction for K samples ahead.
The model is either ARMA[na,nc] (if nc>1), or AR[na]
(if nc=0 or nc=[] or nc is missing). By default, na=10.
The output stochastic signal is ya (vector), while sigma
encodes the standard deviation of prediction error
(a K-length vector). By default, K=5. The third output
is the estimated prediction error (or white noise) e.
The last output, M, is the prediction model (IDMODEL object).
199

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

%
%
%
%
%
%
%
%
%
%
%
%

Missing or empty input v returns empty outputs.


The outputs are also empty when the data are inconsistent
and forces ARMAX routine to fail.
Invokes: LONG_DIV
VECTORIZE
WAR_ERR
Authors: Dan STEFANOIU & Janetta Culita
Created: May
18, 2009
Updated: August 21, 2009

C_n_k
%

File C_N_K.M

Function: C_N_K

%
%
%
%
%
%

Synopsis: c = C_n_k(n,k) ;
Better version of MATLAB function NCHOOSEK
(which fails for N>27). Returns the combinatorial
number of k subsets chosen from a set of n elements.
Shall k<0 or k>n, null value is returned.

%
%
%
%

Author: Dan STEFANOIU


Created: March
14, 2007
Revised: September 21, 2007

cmp_vec
%
%

File CMP_VEC.M

Function: CMP_VEC

Synopsis: index = cmp_vec(u,v,a) ;

%
%
%
%

Compares numerical values of inputs u and v, that must


be line vectors, with accuracy a. More specific, the function
returns the indexes of u values that are close to the v
values with accuracy a. By default, a=eps.

%
%
%
%
%

Example: index = cmp_vec(1:2:10,2:5)


returns: [2 3],
because only the values 3 and 5 of vector [2 3 4 5]
have been found within the vector [1 3 5 7 9], in positions
2 and 3, respectively.

%
%

WARNING! Output index points to the positions of the


INCREASINGLY SORTED v in u.

%
%
%

Author: Dan STEFANOIU


Created: April 14, 2007
Revised: May
6, 2007
200

RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>

Daub
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

File DAUB.M
Function: DAUB
Synopsis: [c,d] = Daub(N) ;
Returns the DE and DE-orthogonal 2N-length coefficients
in column vectors c and d, respectively. Coefficients
are computed by means of Daubechies' Method.
Author:
Dan STEFANOIU
Created: January
31, 2007
Revised: September 21, 2007

draw_circle
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

File DRAW_CIRCLE.M
Function: DRAW_CIRCLE
Synopsis: H = draw_circle(r,p,c) ;
Draws a circle of radius r (scalar) centered in Cartesian
position p (of the form [x y]) on current figure. By default,
r = 1 and p = [0 0]. The circle can be filled with the color
specified in c (like in function PLOT). If c is missing or
empty, the circle is filled with figure background color.
The user should take care about the figure handling.
This function does not care about figure handling.
Returns H - the figure handle.
Invokes: VECTORIZE
Author: Dan STEFANOIU
Created: May
25, 2009
Updated: August 21, 2009

draw_square
%
%

File DRAW_SQUARE.M

Function: DRAW_SQUARE

%
%
%
%

Synopsis: H = draw_square(l,p,alpha,c) ;
Draws a square of side length l (scalar) centered in
Cartesian position p (of the form [x y]) and counter201

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

clockwise rotated with angle alpha (scalar) on current


figure. By default, l=1, p=[0 0] and alpha=0. The square can
be filled with the color specified in c (like in function
PLOT). If c is missing or empty, the square is filled with
figure background color.
The user should take care about the figure handling.
This function does not care about figure handling.
Returns H - the figure handle.
Invokes: VECTORIZE
Author: Dan STEFANOIU
Created: May
25, 2009
Updated: August 21, 2009

dwt_analysis
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

File DWT_ANALYSIS.M
Function: DWT_ANALYSIS
Synopsis:
[C,order,supp_C] =
dwt_analysis(y,supp_y,h,supp_h,g,supp_g,L,node) ;
Implementation of Discrete Wavelet Transform (wavelet
packets) on analysis branch by means of an auto-recursive
procedure.
Input arguments are as follows:
. y
= input signal (line/column vector);
. supp_y = input signal support: [Nymin ; Nymax]
(column vector);
. h
= impulse response of low-pass filter within the
analysis branch of binary tree;
. supp_h = support of h: [Nhmin ; Nhmax] (column vector);
. g
= impulse response of high-pass filter within the
analysis branch of binary tree;
. supp_g = support of g: [Ngmin ; Ngmax] (column vector);
. L
= 2-by-* matrix of tree final nodes (leaves);
each column encodes the depth and the azimuth of
a leaf;
. node
= starting node of binary tree from which the
analysis should be started (column vector); by
default, node = [0 ; 0] .
The following output arguments can be returned:
. C
= wavelet coefficients matrix; coefficients of each
leaf are stored on column vectors inside the
matrix;
202

RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>

%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

. order

= line vector of indexes corresponding to leaves


where the wavelet coefficients have been
computed; for example, column C(:,7) corresponds
to leaf F(:,order(7));
. supp_C = supports of each wavelet coefficients set (2-by-*
matrix); (each matrix column is like supp_y, i.e.
[Nmin ; Nmax]).
Missing, empty or inconsistent essential inputs (y,h,g,L)
return empty outputs.
Invokes: CMP_VEC
DWT_ANALYSIS (itself)
EXPAND_NODE
VECTORIZE
WAR_ERR
Author: Dan STEFANOIU
Created: May
2, 2009
Revised: July 14, 2009

dwt_model
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

File DWT_MODEL.M
Function: DWT_MODEL
Synopsis:
[yd,CR] =
dwt_model(phi,supp_phi,h,supp_h,g,supp_g,L,C,supp_c00, ...
supp_yd,FC,ml) ;
Constructs the deterministic model of a signal (time series)
based on the Discrete Wavelet Transform (wavelet packets).
Inputs arguments are as follows:
. phi
= father wavelet (line/column vector);
. supp_phi = support of father wavelet: [Nphimin ; Nphimax]
(column vector);
. h
= impulse response of low-pass filter within the
analysis branch of binary tree;
. supp_h
= support of h: [Nhmin ; Nhmax] (column vector);
. g
= impulse response of high-pass filter within the
analysis branch of binary tree;
. supp_g
= support of g: [Ngmin ; Ngmax] (column vector);
. L
= 2-by-* matrix of tree final nodes (leaves);
each column encodes the depth and the azimuth
of a leaf;
. C
= matrix of wavelet coefficients stored on
columns, corresponding to each column of L;
. supp_c00 = support of c00 wavelet coefficients resulted
after projecting the signal (time series) on
203

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

. supp_yd
. FC

. ml

subspace V0: [Nc00min ; Nc00max]


(column vector);
= support of deterministic model:
[Nydmin ; Nydmax] (column vector);
= frame constant; if l>0, then V0 is generated by
a frame of father wavelet time shifts; so, the
linear combination of frame family must be
normalized by a constant, which is FC
(scalar, 1 by default);
= mask level (scalar, null by default); on every
column of C, only wavelet coefficients with
amplitudes at least equal to ml of column
energy are selected.

Returns the deterministic model yd (column vector)


corresponding to support supp_yd and a rough estimation of
compression ratio CR in percents (without side information).
Missing, empty or inconsistent inputs return empty output.
Invokes: DWT_ANALYSIS
VECTORIZE
WAR_ERR
Author: Dan STEFANOIU
Created: May 23, 2009
Revised: July 16, 2009

dwt_model
%
%
%
%
%
%
%
%
%
%

File ENTROPY.M
Function: ENTROPY
Call:

H = entropy(y) ;

Computes the empirical entropy H of signal y.


Missing or empty

signal y returns empty output.

%
%

Invokes: VECTORIZE
WAR_ERR

%
%
%
%

Authors: Janetta CULITA, Dan STEFANOIU


Created: June 14, 2007
Updated: March 14, 2008

expand_node
%
%

File EXPAND_NODE.M

Function: EXPAND_NODE
204

RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>

%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

Call: [ch,cg,supp_ch,supp_cg] =
expand_node(y,supp_y,h,supp_h,g,supp_g) ;
Expand a binary tree node corresponding to a filter bank
wavelet type (filtering+decimacion).
Inputs: y
= input signal (line/column vector);
supp_y = input signal support [Nymin ; Nymax]
(column vector);
h
= impulse response of low-pass filter within
the analysis branch of binary tree;
supp_h = support of h: [Nhmin ; Nhmax]
(column vector);
g
= impulse response of high-pass filter within
the analysis branch of binary tree;
supp_g = support of g: [Ngmin ; Ngmax]
(column vector);
Outputs: ch
= low-pass coefficients (column vector);
cg
= high-pass coefficients;
supp_ch = support of low-pass coefficients;
column vector: [Ncmin ; Ncmax];
supp_cg = support of high-pass coefficients;
column vector: [Ndmin ; Ndmax].
Missing or empty essential inputs (y,h,g) returns empty
outputs.
Invokes: VECTORIZE
WAR_ERR
Authors: Janetta CULITA & Dan STEFANOIU
Created: June 14, 2009
Updated: July 24, 2009

IDA_star
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

File IDA_STAR.M
Function: IDA_STAR
Call: [L,C,supp_C,nemn,et] =
IDA_star(y,supp_y,h,supp_h,g,supp_g,M,EDT) ;
Implements IDA* searching procedure within a meta-tree of
binary trees (see the theory). The cost function is the total
entropy of path from root to the current meta-node, which has
to be minimized.
Inputs: y
= input signal (line/column vector);
supp_y = input signal support: [Nymin ; Nymax]
(column vector);
205

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

%
%
%
%
%
%
%
%
%
%
%
%
%

= impulse response of low-pass filter within


the analysis branch of binary tree;
supp_h = support of h: [Nhmin ; Nhmax]
(column vector);
g
= impulse response of high-pass filter within
the analysis branch of binary tree;
supp_g = support of g: [Ngmin ; Ngmax]
(column vector);
M
= maximum depth of binary tree, limited to
fix(log2(length(y)))(which is also the
default value);
EDT
= entropy decreasing threshold
(EDT=1e-7, by default).

%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

The meta-tree expansion stops after the maximum depth M is


reached AND the entropy decreasing rate is inferior to EDT.
Outputs: L

= 2-by-nL matrix pointing to all nL binary


tree leaves; the first line stores the
leaves depth m, while the second
line stores their corresponding azimuth p;
C
= nC-by-nL matrix with wavelet coefficients
corresponding to the nL leaves;
coefficients of each leaf are stored on
columns; shorter sequences are zero padded
up to nC samples; however, at least one
sequence of coefficients is nC-length
and does not need zero-padding;
supp_C = 2-ny-NL matrix including supports of
wavelet coefficients; each column is of the
form: [Ncmin ; Ncmax], pointing to the
first and the last time index of
corresponding coefficients series;
nemn
= number of expanded meta-nodes during the
search;
et
= elapsed time in construction of minimum
entropy tree (in seconds).

%
%

Missing, empty or inconsistent essential inputs (y,h,g)


return empty outputs.

%
%
%

Invokes: EXPAND_NODE
VECTORIZE
WAR_ERR

%
%
%
%

Authors: Janetta CULITA & Dan STEFANOIU


Created: June
14, 2009
Updated: August 02, 2009

phi_Rham
%
%

File PHI_RHAM.M

Function: PHI_RHAM
206

RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>

%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

Synopsis: [phi,t_phi] = phi_Rham(c,r) ;


Returns the compactly supported father wavelet phi with:
. c = column vector of DE coefficients;
. r = resolution (1024, by default):
- if r >= 0, then r stands for the resolution index
(minimum number of wavelet samples);
- otherwise, -r stands for the maximum sampling
period.
Wavelet values are packed in a column vector (phi).
The corresponding sampling instants are returned within
the time variable t_phi (column vector).
If N=length(c), then:
. Supp(phi)=[0,N-1] for N=even (the orthogonal case);
. Supp(phi)=[(1-N)/2,(N-1)/2] for N=odd
(the biorthogonal case).
Computations are based on Daubechies-deRham Algorithm.
Invokes: WAR_ERR

%
%
%
%

Author: Dan STEFANOIU


Created: March
3, 2007
Revised: September 21, 2007

psi_Rham
%
%

File PSI_RHAM.M

Function: PSI_RHAM

Synopsis: [psi,t_psi] = psi_Rham(d,phi,t_phi) ;

%
%
%
%
%

Returns the
. d
=
. phi
=
. t_phi =

compactly supported mother wavelet psi with:


column vector of orthogonal DE coefficients;
the corresponding father wavelet (column vector);
sampling instants for father wavelet
(column vector).

%
%
%
%
%
%
%

The psi resolution is identical to phi resolution.


Wavelet values are packed in a column vector (psi).
The corresponding sampling instants are returned
within the time variable t_psi (column vector).
If N=length(d) and N is even, then Supp(psi)=[1-N,N],
otherwise Supp(psi)=[-K,+K], where:
K = max(fix(N/2),t_phi(end)).

Computations are based on Daubechies-deRham Algorithm.

Invokes: WAR_ERR

%
%
%

Author: Dan STEFANOIU


Created: March
3, 2007
Revised: September 21, 2007
207

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

rough_model
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

File ROUGH_MODEL.M
Function: ROUGH_MODEL
Synopsis:
[yM,supp_yM,sigma,yT,yP,e,pc,P,PQ,na,AR] =
rough_model(y,supp_y,K,M,MDT,NA) ;
Evaluates a rough (classical) prediction model of a time
series, with the help of a polynomial trend (usually of 3-rd
degree) followed by a seasonal model (if detected) and
an AR stochastic model.

Inputs: y
= input signal (line/column vector);
supp_y = input signal support: [Nymin ; Nymax]
(column vector);
K
= length of prediction horizon
(positive integer, 7 by default).
M
= degree of polynomial trend
(by default, M=3);
MDT
= maximum detection threshold for periodic
variation (scalar, 25% by default)
(see function <PERIODIC_VARIATION>);
NA
= maximum order of AR model
(by default, NA=100).
Outputs: yM

= predicted signal on measure and prediction


horizon (column vector);
supp_yM = support of predicted signal:
[Nymin ; Nymax+K];
sigma
= standard deviation of prediction error
(column vector);
yT
= polynomial trend on measure and prediction
horizon (column vector) ;
yP
= periodic variation on measure and
prediction horizon (column vector) ;
e
= estimated white noise (column vector);
pc
= coefficients of polynomial trend
(increasing degrees) (column vector);
P
= period of periodic variation
(scalar, null if the variation could not
be detected);
PQ
= estimated prediction quality of model
(scalar, in percents);
na
= order of best AR model for prediction;
AR
= the AR model (IDMODEL object).

Missing, empty or inconsistent signal inputs y returns empty


outputs.
208

RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>

%
%
%
%
%
%
%
%
%
%
%

Invokes: ARMA_MODEL
PERIODIC_VARIATION
POLY_TREND
PREDICTION_QUALITY
VECTORIZE
WAR_ERR
Author: Dan STEFANOIU
Created: May
20, 2009
Revised: August 21, 2009

selection_index
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

File SELECTION_INDEX.M
Function: SELECTION_INDEX
Synopsis: SI = selection_index(SNR,SNRrm,PQ,PQrm) ;
Evaluates the selection index SI of a data prediction model,
comparing to a rough model. SI is expressed in percents.
If SNR>SNRM and PQ>PQrm, then SI>0. Otherwise, S<0.
Input arguments are as follows:
. SNR
= signal-to-noise ratio of assessed model
(scalar, in dB);
. SNRrm = signal-to-noise ratio of rough model
(scalar, in dB);
. PQ
= estimated prediction quality of assessed model
(scalar, in percents);
. PQrm = estimated prediction quality of rough model
(scalar, in percents).
All inputs are essential and cannot miss or be empty
(otherwise empty SI is returned).
Invokes: VECTORIZE
WAR_ERR
Author: Dan STEFANOIU
Created: August 09, 2009
Revised: August 22, 2009

show_PQ
%
%
%
%
%
%
%

File SHOW_PQ.M
Function: SHOW_PQ
Synopsis: H = show_PQ(PQ,PQmax,na,nc,FIG,FIG_name) ;
209

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

Displays the prediction quality surface for a wavelet based


model.
Input arguments are as follows:
. PQ
= prediction quality surface (NA-by-NC matrix);
. PQmax
= maximum value of PQ (scalar);
. na
= order of AR model corresponding to PQmax
(scalar, integer);
. nc
= order of MA model corresponding to PQmax
(scalar, integer);
. FIG
= figure number (scalar, integer);
. FIG_name = figure name (string of chars).
Input PQ is essential and cannot miss or be empty.
The other inputs are optional and can receive default values.
Returns the handle to the current figure, H (or empty if
something is wrong).
Invokes: FIG_LOOK
MAXIMIZE
SCALING
WAR_ERR
Author: Dan STEFANOIU
Created: June
02, 2009
Revised: August 21, 2009

show_scalogram
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

File SHOW_SCALOGRAM.M
Function: SHOW_SCALOGRAM
Synopsis: H = show_scalogram(L,C,supp_C,tit,FIG,FIG_name) ;
Draws the scalogram of a signal (time series) corresponding
to a Wavelet Transform.
The input arguments are as follows:
. L
= 2-by-nL matrix pointing to all nL binary tree
leaves; the first line stores the leaves depth
m, while the second line stores their
corresponding azimuth p;
. C
= nC-by-nL matrix with wavelet coefficients
corresponding to the nL leaves; coefficients of
each leaf are stored on columns; shorter
sequences are zero padded up to nC samples;
however, at least one sequence of coefficients
is nC-length and does not need zero-padding;
. supp_C
= 2-ny-NL matrix including supports of wavelet
coefficients; each column is of the form:
210

RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>

%
%
%
%
%
%

[Ncmin ; Ncmax], pointing to the first and the


last time index of corresponding coefficients
series;
. tit
= optional text to be added to all figure titles;
. FIG
= figure number (scalar, integer);
. FIG_name = figure name (string of chars).

%
%
%

Returns H - the figure handle or empty if something is wrong


(such as L, C or supp_C are missing or empty or badly
formatted).

%
%
%
%
%
%

Invokes: DB
FIG_LOOK
MAXIMIZE
TREE2FREQUENCY
VECTORIZE
WAR_ERR

%
%
%
%

Author: Dan STEFANOIU


Created: July 30, 2009
Revised: July 31, 2009

show_tree
%

File SHOW_TREE.M

Function: SHOW_TREE

Synopsis: H = show_tree(L,nemn,tit,FIG,FIG_name) ;

%
%
%
%
%

Draws the binary tree corresponding to leaves matrix L.


See function IDA_STAR to set the matrix format
(2 lines and nL columns). The integer nemn is the number
of expanded meta-nodes employed to build the tree.
The figure title will be tit.

%
%
%
%
%
%

The input FIG (scalar, positive integer)


is employed to set the figure number, while FIG_name gives
the figure name (usually the name of framework within main
program ODWT_ARMA). If FIG is missing, empty or null, next
figure is open. If FIG_name is missing or empty, no name is
assigned to the figure.

%
%

Returns H - the figure handle or empty if something is wrong


(such as L is missing or empty or badly formatted).

%
%
%
%
%
%

Invokes: DRAW_CIRCLE
DRAW_SQUARE
FIG_LOOK
MAXIMIZE
VECTORIZE
WAR_ERR

%
%
%

Author: Dan STEFANOIU


Created: July 24, 2009
Revised: July 31, 2009
211

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

show_wavelets
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

File SHOW_WAVELETS.M
Function: SHOW_WAVELETS
Synopsis:
H =
show_wavelets(N,c,d,l,phi,supp_phi,psi,supp_psi, ...
FIG,FIG_name) ;
Displays the father and mother Daubechies wavelets at the
resolution selected to build the time series model. The
continuous-like wavelets are also shown.
Input arguments are as follows:
. N
= support parameter (scalar, integer);
. c
= coefficients of DE
(column vector, see functions DAUB or DAUB2);
. d
= coefficients of orthogonal DE
(column vector, see functions DAUB or DAUB2);
. l
= resolution exponent (scalar, integer);
the sampling period is 1/2^l;
. phi
= father wavelet at the model resolution (column
vector, see function PHI_RHAM);
. supp_phi = support of father wavelet: [Nphimin ; Nphimax];
. psi
= mother wavelet at the model resolution (column
vector, see function PHI_RHAM);
. supp_psi = support of mother wavelet: [Nphimin ; Nphimax];
. FIG
= figure number (scalar, integer);
. FIG_name = figure name (string of chars).
Inputs N, c, d, ..., supp_psi are essential and cannot miss
or be empty. The other inputs are optional and can receive
default values.
Returns the handle to the current figure, H
(or empty if something is wrong).
Invokes: FIG_LOOK
MAXIMIZE
PHI_RHAM
PSI_RHAM
SCALING
VECTORIZE
WAR_ERR
Author: Dan STEFANOIU
Created: July 26, 2009
Revised: July 27, 2009
212

RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>

tree2frequency
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

File TREE2FREQUENCY.M
Function: TREE2FREQUENCY
Synopsis: F = tree2frequency(L) ;
Converts the leaves matrix L into the frequency matrix F.
See function IDA_STAR to set the L matrix format
(2 lines and nL columns). Every column encodes the depth m
and the azimuth p of a leaf. The matrix F has the same size.
Every column encodes the central frequency and the bandwidth
of corresponding leaf, normalized to [0,0.5].
The central frequency is computed as follows:
f = (2*p+1)/2^(m+2) ,
whereas the bandwidth is simply equal to:
df = 1/2^(m+1) .
Returns an empty matrix F if L is missing, empty or badly
formatted.
Invokes: WAR_ERR
Author: Dan STEFANOIU
Created: May
30, 2009
Revised: August 22, 2009

tree2frequency
%
%
%
%
%
%
%
%

File V0_PROJECTION.M
Function: V0_PROJECTION
Synopsis:
[c00,supp_c00,FC,y00,supp_y00,phi,supp_phi,psi,supp_psi] =
V0_projection(y,supp_y,c,d,l) ;

Performs projection of input signals on wavelet space V_0.

%
%
%
%
%
%
%
%

Inputs: y
= input signal (line/column vector);
supp_y = input signal support: [Nymin ; Nymax];
c
= coefficients of DE (line/column vector); if
length(c) is even, the orthogonal case is
considered, otherwise the biorthogonal
case is considered;
d
= coefficients of orthogonal DE
(line/column vector);
213

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

= resolution exponent of father wavelet


(l=0, by default, in case of father wavelet
sampled at integer instants; l=1 for half
integer instants, l=2 for quarter integer
instants, etc.).

Outputs: c00

supp_c00
FC

y00
supp_y00
phi
supp_phi
psi
supp_psi

= wavelet coefficients (column vector);


coefficients are evaluated by projection
of signal y on time shifted version
wavelet father that verifies the DE
defined by c;
= support of wavelet coefficients set:
[Nc00min ; Nc00max];
= frame constant; if l>0, then V_0 is
generated by a frame
of father wavelet time shifts; so, the
linear combination of frame family must
be normalized by a constant, which is FC;
= projected signal on V_0
(column vector, like y);
= support of projected signal:
[Ny00min ; Ny00max];
= sampled father wavelet (column vector);
= support of father wavelet:
[Nphimin ; Nphimax].
= sampled mother wavelet (column vector);
= support of mother wavelet:
[Nphimin ; Nphimax].

Missing, empty or inconsistent essential inputs (y,c,d)


return empty outputs.
Invokes: PHI_RHAM
PSI_RHAM
VECTORIZE
WAR_ERR
Author: Dan STEFANOIU
Created: May
19, 2009
Revised: August 22, 2009

214

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

Anexa F. Lista programelor i rutinelor interfeei grafice

eKo-Forecast
F.1. Programe principale

FORECASTING
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

File FORCASTING.M for Forecasting.fig


Main program: FORECASTING
Synopsis: varargout = FORECASTING(varargin) ;
FORECASTING, by itself, creates a new FORECASTING or raises
the singleton*.
H = FORECASTING returns the handle to a new FORECASTING or
the handle to the existing singleton*.
FORECASTING('CALLBACK',hObject,eventData,handles,...) calls
the local function named CALLBACK in FORECASTING.M with the
given input arguments.
Invokes: Forcasting_OpeningFunction
Authors: Aurelia PURCAREA, Janetta CULITA, Dan STEFANOIU
Created: May 15, 2009
Revised: July 22, 2009

PARMA
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

File PARMA.M
Main program: PARMA
Synopsis: PARMA ;
Constructs classical prediction models of signal(s) (time
series) based on ARMA modeling of stochastic component.
The overall model has 3 additive compounds:
. trend - polynomial (Least Squares Method);
. seasonal - if any
(Robinson-Wittacker Method
with threshold validation);
. stochastic - AR, MA or ARMA
(Levinson-Durbin Algorithm,
Wiener-Hopf filter,
Minimum Prediction Error Method).
215

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

However, trend and seasonal components can be avoided if the


user wishes so. In this case, the time series is/are only
made stationary, by subtracting the average.
Data can be available on several measuring channels.
In this case, one prediction model for each channel is built.
Models are independent each-other.
The prediction models are optimal, with respect to Prediction
Quality. Optimal structural indices are found by means of
Particle Swarm Optimisation (PSO) algorithm - an
evolutionary strategy (see theory).
In the beginning, the user is invited to set the following
parameters:
. bn = data block number; this is the number of file
including the signal (time series); any signal
file name is 'DATAbn.MAT', where tsn is a positive
integer; after loading the file, data are stored into
Y - an IDDATA object;
. K = duration of prediction horizon support
(K=7, by default);
. d = flag pointing to the users' option regarding the
deterministic component (trend+seasonal);
d=0 (default) means without deterministic component;
d~=0 means with deterministic component;
. NA = maximum order of AR model
(non negative integer, Ny/3 by default,
where Ny = time series length);
. NC = maximum order of MA model
(non negative integer, Ny/3 by default);
. P = the number of particles for PSO algorithm;
. ms = flag pointing to the user's option regarding the
stability:
ms=0 -> no stability check on identification models
is applied (default);
ms~=0 -> only stable identification models are
selected.
* Note: Noisy time series are better predicted with unstable
models.
The overall workspace is saved in the end in a file entitled:
'PARMA_DATAbn#d<s>_K_Vm.mat' ,

%
%
%
%
%
%

within directory .\Sim_class_DATAbn, so that the framework


can easily be retrieved when needed. The file name refers to
successive runs on the same data block, which provides
versions _V1, _V2, ... _Vm, ... Also, the label 's' appears
only when the user restricted the search to stable models
only.

Finally, graphics are drawn through SHOW_PARMA program.


216

RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>

%
%
%
%
%
%

Invokes: DB
MULTI_PQ
PARMA_MODEL
PSO_ARMA
SHOW_PARMA
WAR_ERR

%
%
%
%

Authors: Dan STEFANOIU, Aurelia PURCAREA, Janetta CULITA


Created: March 19, 2009
Revised: July 25, 2009

F.2. Rutine auxiliare

axes1_CreateFcn
%
%

File AXES1_CREATEFCN.M

Function: AXES1_CREATEFCN

Synopsis: axes1_CreateFcn(hObject,eventdata,handles) ;

%
%

Executes during object creation, after setting all


properties.

%
%
%
%
%
%

Inputs:
. hObject
= handle to axes1 (see GCBO);
. eventdata = reserved - to be defined in a future version
of MATLAB;
. handles
= empty - handles not created until after all
CreateFcns called.

%
%
%
%

Authors: Aurelia PURCAREA, Janetta CULITA, Dan STEFANOIU


Created: May 15, 2009
Revised:

Browse_Callback
%
%

File BROWSE_CALLBACK.M

Function: BROWSE_CALLBACK

Synopsis: Browse_Callback(hObject,eventdata,handles)

Executes on button press in Browse.

%
%
%
%
%
%
%
%
%

Inputs:
. hObject
= handle to Browse (see GCBO);
. eventdata = reserved - to be defined in a future version
of MATLAB;
. handles
= structure with handles and user data
(see GUIDATA).
Authors: Aurelia PURCAREA, Janetta CULITA, Dan STEFANOIU
Created: May 15, 2009
Revised:
217

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

checkbox1_Callback
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

File CHECKBOX1_CALLBACK.M
Function: CHECKBOX1_CALLBACK.M
Synopsis: checkbox1_Callback(hObject,eventdata,handles) ;
Executes on button press in checkbox1.
Inputs:
. hObject
= handle to checkbox1 (see GCBO);
. eventdata = reserved - to be defined in a future version
of MATLAB;
. handles
= structure with handles and user data
(see GUIDATA).
Authors: Aurelia PURCAREA, Janetta CULITA, Dan STEFANOIU
Created: May 15, 2009
Revised:

checkbox2_Callback
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

File CHECKBOX2_CALLBACK.M
Function: CHECKBOX2_CALLBACK.M
Synopsis: checkbox2_Callback(hObject,eventdata,handles) ;
Executes on button press in checkbox2.
Inputs:
. hObject
= handle to checkbox2 (see GCBO);
. eventdata = reserved - to be defined in a future version
of MATLAB;
. handles
= structure with handles and user data
(see GUIDATA).
Authors: Aurelia PURCAREA, Janetta CULITA, Dan STEFANOIU
Created: May 15, 2009
Revised:

Clear_Callback
%
%
%
%

File CLEAR_CALLBACK.M
Function: CLEAR_CALLBACK

Synopsis: Clear_Callback(hObject,eventdata,handles) ;

Executes on button press in Clear.


218

RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>

%
%
%
%
%
%

Inputs:
. hObject
= handle to Clear (see GCBO);
. eventdata = reserved - to be defined in a future version
of MATLAB;
. handles
= structure with handles and user data
(see GUIDATA).

%
%
%
%

Authors: Aurelia PURCAREA, Janetta CULITA, Dan STEFANOIU


Created: May 15, 2009
Revised:

Fisier_MultiDim_Callback
%
%

File FISIER_MULTIDIM_CALLBACK.M

Function: FISIER_MULTIDIM_CALLBACK

%
%

Synopsis:
Fisier_MultiDim_Callback(hObject,eventdata,handles) ;

Executes on button press in Fisier_MultiDim.

%
%
%
%
%
%

Inputs:
. hObject
= handle to Fisier_MultiDim (see GCBO);
. eventdata = reserved - to be defined in a future version
of MATLAB;
. handles
= structure with handles and user data
(see GUIDATA).

%
%
%
%

Authors: Aurelia PURCAREA, Janetta CULITA, Dan STEFANOIU


Created: May 15, 2009
Revised:

Fisier_MultiDim_CreateFcn
%

File FISIER_MULTIDIM_CREATEFCN.M

Function: FISIER_MULTIDIM_ CREATEFCN

%
%

Synopsis:
Fisier_MultiDim_CreateFcn(hObject,eventdata,handles) ;

%
%

Executes during object creation, after setting all


properties.

%
%
%
%
%
%

Inputs:
. hObject
= handle to Fisier_MultiDim (see GCBO);
. eventdata = reserved - to be defined in a future version
of MATLAB;
. handles
= empty - handles not created until after all
CreateFcns called.

%
%
%

Authors: Aurelia PURCAREA, Janetta CULITA, Dan STEFANOIU


Created: May 15, 2009
Revised:
219

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

Fisier_UniDim_Callback
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

File FISIER_UNIDIM_CALLBACK.M
Function: FISIER_UNIDIM_CALLBACK
Synopsis: Fisier_UniDim_Callback(hObject,eventdata,handles) ;
Executes on button press in Fisier_UniDim.
Inputs:
. hObject
= handle to Fisier_UniDim (see GCBO);
. eventdata = reserved - to be defined in a future version
of MATLAB;
. handles
= structure with handles and user data
(see GUIDATA).
Authors: Aurelia PURCAREA, Janetta CULITA, Dan STEFANOIU
Created: May 15, 2009
Revised:

Fisier_UniDim_CreateFcn
%
%
%
%
%
%
%
%
%
%

File FISIER_UNIDIM_CREATEFCN.M
Function: FISIER_UNIDIM_CREATEFCN
Synopsis:
Fisier_UniDim_CreateFcn(hObject,eventdata,handles) ;
Executes during object creation, after setting all
properties.

%
%
%
%
%
%

Inputs:
. hObject
= handle to Fisier_UniDim (see GCBO);
. eventdata = reserved - to be defined in a future version
of MATLAB;
. handles
= empty - handles not created until after all
CreateFcns called.

%
%
%
%

Authors: Aurelia PURCAREA, Janetta CULITA, Dan STEFANOIU


Created: May 15, 2009
Revised:

Forecasting_OpeningFcn
%

File FORECASTING_OPENINGFCN.M

Function: FORECASTING_OPENINGFCN

%
%

Synopsis:
Forecasting_OpeningFcn(hObject,eventdata,handles,varargin) ;
220

RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>

%
%
%
%
%
%
%
%
%
%

This function has no output args. Outputs from this function


are returned to the command line.
Inputs:
. hObject

= handle to figure eventdata reserved - to be


defined in a future version of MATLAB;
. handles = structure with handles and user data
(see GUIDATA);
. varargin = command line arguments to Forecasting
(see VARARGIN).

%
%
%
%

Authors: Aurelia PURCAREA, Janetta CULITA, Dan STEFANOIU


Created: May 15, 2009
Revised:

Forecasting_OutputFcn
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

File FORECASTING_OUTPUTFCN.M
Function: FORECASTING_OUTPUTFCN
Synopsis:
varargout = Forecasting_OutputFcn(hObject,eventdata, ...
handles) ;
Executes on selection change in Forecasting.
Inputs:
. varargout = cell array for returning output args
(see VARARGOUT);
. hObject
= handle to figure;
. eventdata = reserved - to be defined in a future version
of MATLAB;
. handles
= structure with handles and user data
(see GUIDATA).
Authors: Aurelia PURCAREA, Janetta CULITA, Dan STEFANOIU
Created: May 15, 2009
Revised:

full_Callback
%
%
%
%
%
%

File FULL_CALLBACK.M
Function: FULL_CALLBACK
Synopsis: full_Callback(hObject,eventdata,handles) ;

Executes on button press in full.

%
%

Inputs:
. hObject

= handle to full (see GCBO);


221

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

%
%
%
%
%
%
%
%
%

. eventdata = reserved - to be defined in a future version


of MATLAB;
. handles
= structure with handles and user data
(see GUIDATA).
Authors: Aurelia PURCAREA, Janetta CULITA, Dan STEFANOIU
Created: May 15, 2009
Revised:

full_CreateFcn
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

File FULL_CREATEFCN.M
Function: FULL_CREATEFCN
Synopsis: full_CreateFcn(hObject,eventdata,handles) ;
Executes during object creation, after setting all
properties.
Inputs:
. hObject
= handle to full (see GCBO);
. eventdata = reserved - to be defined in a future version
of MATLAB;
. handles
= empty - handles not created until after all
CreateFcns called.
Authors: Aurelia PURCAREA, Janetta CULITA, Dan STEFANOIU
Created: May 15, 2009
Revised:

fullall_Callback
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

File FULLALL_CALLBACK.M
Function: FULLALL_CALLBACK
Synopsis: fullall_Callback(hObject,eventdata,handles) ;
Executes on button press in fullall.
Inputs:
. hObject
= handle to fullall (see GCBO);
. eventdata = reserved - to be defined in a future version
of MATLAB;
. handles
= structure with handles and user data
(see GUIDATA).
Authors: Aurelia PURCAREA, Janetta CULITA, Dan STEFANOIU
Created: May 15, 2009
Revised:
222

RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>

listbox6_Callback
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

File LISTBOX6_CALLBACK.M
Function: LISTBOX6_CALLBACK
Synopsis: listbox6_Callback(hObject,eventdata,handles) ;
Executes on button press in listbox6.
Inputs:
. hObject
= handle to listbox6 (see GCBO);
. eventdata = reserved - to be defined in a future version
of MATLAB;
. handles
= structure with handles and user data
(see GUIDATA).
Authors: Aurelia PURCAREA, Janetta CULITA, Dan STEFANOIU
Created: May 15, 2009
Revised:

listbox6_CreateFcn
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

File LISTBOX6_CREATEFCN.M
Function: LISTBOX6_CREATEFCN
Synopsis: listbox6_CreateFcn(hObject,eventdata,handles) ;
Executes during object creation, after setting all
properties.
Inputs:
. hObject
= handle to listbox6 (see GCBO);
. eventdata = reserved - to be defined in a future version
of MATLAB;
. handles
= empty - handles not created until after all
CreateFcns called.
Authors: Aurelia PURCAREA, Janetta CULITA, Dan STEFANOIU
Created: May 15, 2009
Revised:

Mesaje_CreateFcn
%
%
%
%
%
%

File MESAJE_CREATEFCN.M
Function: MESAJE_CREATEFCN
Synopsis: Mesaje_CreateFcn(hObject,eventdata,handles) ;
223

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

%
%

Executes during object creation, after setting all


properties.

%
%
%
%
%
%

Inputs:
. hObject
= handle to Mesaje (see GCBO);
. eventdata = reserved - to be defined in a future version
of MATLAB;
. handles
= empty - handles not created until after all
CreateFcns called.

%
%
%

Authors: Aurelia PURCAREA, Janetta CULITA, Dan STEFANOIU


Created: May 15, 2009
Revised:

popmenu1_Callback
%

File POPMENU1_CALLBACK.M

Function: POPMENU1_CALLBACK

Synopsis: popmenu1_Callback(hObject,eventdata,handles) ;

Executes on selection change in popmenu1.

%
%
%
%
%
%

Inputs:
. hObject
= handle to popmenu1 (see GCBO);
. eventdata = reserved - to be defined in a future version
of MATLAB;
. handles
= structure with handles and user data
(see GUIDATA).

%
%
%

Authors: Aurelia PURCAREA, Janetta CULITA, Dan STEFANOIU


Created: May 15, 2009
Revised:

popmenu1_CreateFcn
%

File POPMENU1_CREATEFCN.M

Function: POPMENU1_CREATEFCN

Synopsis: popmenu1_CreateFcn(hObject,eventdata,handles)

%
%

Executes during object creation, after setting all


properties.

%
%
%
%
%
%
%
%
%
%

Inputs:
. hObject
= handle to popmenu1 (see GCBO);
. eventdata = reserved - to be defined in a future version
of MATLAB;
. handles
= empty - handles not created until after all
CreateFcns called.
Authors: Aurelia PURCAREA, Janetta CULITA, Dan STEFANOIU
Created: May 15, 2009
Revised:
224

RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>

popmenu2_Callback
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

File POPMENU2_CALLBACK.M
Function: POPMENU2_CALLBACK
Synopsis: popmenu2_Callback(hObject,eventdata,handles)
Executes on selection change in popmenu2.
Inputs:
. hObject
= handle to popmenu2 (see GCBO);
. eventdata = reserved - to be defined in a future version
of MATLAB;
. handles
= structure with handles and user data
(see GUIDATA).
Authors: Aurelia PURCAREA, Janetta CULITA, Dan STEFANOIU
Created: May 15, 2009
Revised:

popmenu2_CreateFcn
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

File POPMENU2_CREATEFCN.M
Function: POPMENU2_CREATEFCN.M
Synopsis: popmenu2_CreateFcn(hObject,eventdata,handles)
Executes during object creation, after setting all
properties.
Inputs:
. hObject
= handle to popmenu2 (see GCBO);
. eventdata = reserved - to be defined in a future version
of MATLAB;
. handles
= empty - handles not created until after all
CreateFcns called.
Authors: Aurelia PURCAREA, Janetta CULITA, Dan STEFANOIU
Created: May 15, 2009
Revised:

pushbutton2_Callback
%
%
%
%
%
%

File PUSHBUTTON2_CALLBACK.M
Function: PUSHBUTTON2_CALLBACK
Synopsis: pushbutton2_Callback(hObject,eventdata,handles) ;
225

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

%
%
%
%
%
%
%
%
%
%
%
%
%

Executes on button press in pushbutton2.


Inputs:
. hObject
= handle to pushbutton2 (see GCBO);
. eventdata = reserved - to be defined in a future version
of MATLAB;
. handles
= structure with handles and user data
(see GUIDATA).
Authors: Aurelia PURCAREA, Janetta CULITA, Dan STEFANOIU
Created: May 15, 2009
Revised:

START1_Callback
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

File START1_CALLBACK.M
Function: START1_CALLBACK
Synopsis: START1_Callback(hObject,eventdata,handles)
Executes on button press in START1.
Inputs:
. hObject
= handle to START1 (see GCBO);
. eventdata = reserved - to be defined in a future version
of MATLAB;
. handles
= structure with handles and user data
(see GUIDATA).
Invokes: PARMA
Authors: Aurelia PURCAREA, Janetta CULITA, Dan STEFANOIU
Created: May 15, 2009
Revised:

START1_CreateFcn
%
%
%
%
%
%
%
%
%
%
%
%
%
%

File START1_CREATEFCN.M
Function: START1_CREATEFCN
Synopsis: START1_CreateFcn(hObject,eventdata,handles)
Executes during object creation, after setting all
properties.
Inputs:
. hObject
= handle to START1 (see GCBO);
. eventdata = reserved - to be defined in a future version
of MATLAB;
226

RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>

%
%
%
%
%
%
%

. handles

= empty - handles not created until after all


CreateFcns called.

Authors: Aurelia PURCAREA, Janetta CULITA, Dan STEFANOIU


Created: May 15, 2009
Revised:

var1_1_Callback
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

File VAR1_1_CALLBACK.M
Function: VAR1_1_CALLBACK
Synopsis: var1_1_Callback(hObject,eventdata,handles)
Executes on selection change in var1_1.
Inputs:
. hObject
= handle to var1_1 (see GCBO);
. eventdata = reserved - to be defined in a future version
of MATLAB;
. handles
= structure with handles and user data
(see GUIDATA).
Authors: Aurelia PURCAREA, Janetta CULITA, Dan STEFANOIU
Created: May 15, 2009
Revised:

var1_1_CreateFcn
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

File VAR1_1_CREATEFCN.M
Function: VAR1_1_CREATEFCN.M
Synopsis: var1_1_CreateFcn(hObject,eventdata,handles)
Executes during object creation, after setting all
properties.
Inputs:
. hObject
= handle to var1_1 (see GCBO);
. eventdata = reserved - to be defined in a future version
of MATLAB;
. handles
= empty - handles not created until after all
CreateFcns called.
Authors: Aurelia PURCAREA, Janetta CULITA, Dan STEFANOIU
Created: May 15, 2009
Revised:
227

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

var1_2_Callback
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

File VAR1_2_CALLBACK.M
Function: VAR1_2_CALLBACK
Synopsis: var1_2_Callback(hObject,eventdata,handles)
Executes on selection change in var1_2.
Inputs:
. hObject
= handle to var1_2 (see GCBO);
. eventdata = reserved - to be defined in a future version
of MATLAB;
. handles
= structure with handles and user data
(see GUIDATA).
Authors: Aurelia PURCAREA, Janetta CULITA, Dan STEFANOIU
Created: May 15, 2009
Revised:

var1_2_CreateFcn
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

File VAR1_2_CREATEFCN.M
Function: VAR1_2_CREATEFCN.M
Synopsis: var1_2_CreateFcn(hObject,eventdata,handles)
Executes during object creation, after setting all
properties.
Inputs:
. hObject
= handle to var1_2 (see GCBO);
. eventdata = reserved - to be defined in a future version
of MATLAB;
. handles
= empty - handles not created until after all
CreateFcns called.
Authors: Aurelia PURCAREA, Janetta CULITA, Dan STEFANOIU
Created: May 15, 2009
Revised:

var1_3_Callback
%
%
%
%
%
%

File VAR1_3_CALLBACK.M
Function: VAR1_3_CALLBACK
Synopsis: var1_3_Callback(hObject,eventdata,handles)
228

RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>

Executes on selection change in var1_3.

%
%
%
%
%
%

Inputs:
. hObject
= handle to var1_3 (see GCBO);
. eventdata = reserved - to be defined in a future version
of MATLAB;
. handles
= structure with handles and user data
(see GUIDATA).

%
%
%
%

Authors: Aurelia PURCAREA, Janetta CULITA, Dan STEFANOIU


Created: May 15, 2009
Revised:

var1_3_CreateFcn
%
%

File VAR1_3_CREATEFCN.M

Function: VAR1_3_CREATEFCN.M

Synopsis: var1_3_CreateFcn(hObject,eventdata,handles)

%
%

Executes during object creation, after setting all


properties.

%
%
%
%
%
%

Inputs:
. hObject
= handle to var1_3 (see GCBO);
. eventdata = reserved - to be defined in a future version
of MATLAB;
. handles
= empty - handles not created until after all
CreateFcns called.

%
%
%
%

Authors: Aurelia PURCAREA, Janetta CULITA, Dan STEFANOIU


Created: May 15, 2009
Revised:

var1_4_Callback
%
%

File VAR1_4_CALLBACK.M

Function: VAR1_4_CALLBACK

Synopsis: var1_4_Callback(hObject,eventdata,handles)

Executes on selection change in var1_4.

%
%
%
%
%
%

Inputs:
. hObject
= handle to var1_4 (see GCBO);
. eventdata = reserved - to be defined in a future version
of MATLAB;
. handles
= structure with handles and user data
(see GUIDATA).

%
%
%

Authors: Aurelia PURCAREA, Janetta CULITA, Dan STEFANOIU


Created: May 15, 2009
Revised:
229

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

var1_4_CreateFcn
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

File VAR1_4_CREATEFCN.M
Function: VAR1_4_CREATEFCN.M
Synopsis: var1_4_CreateFcn(hObject,eventdata,handles)
Executes during object creation, after setting all
properties.
Inputs:
. hObject
= handle to var1_4 (see GCBO);
. eventdata = reserved - to be defined in a future version
of MATLAB;
. handles
= empty - handles not created until after all
CreateFcns called.
Authors: Aurelia PURCAREA, Janetta CULITA, Dan STEFANOIU
Created: May 15, 2009
Revised:

var1_5_Callback
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

File VAR1_5_CALLBACK.M
Function: VAR1_5_CALLBACK
Synopsis: var1_5_Callback(hObject,eventdata,handles)
Executes on selection change in var1_5.
Inputs:
. hObject
= handle to var1_5 (see GCBO);
. eventdata = reserved - to be defined in a future version
of MATLAB;
. handles
= structure with handles and user data
(see GUIDATA).
Authors: Aurelia PURCAREA, Janetta CULITA, Dan STEFANOIU
Created: May 15, 2009
Revised:

var1_5_CreateFcn
%
%
%
%
%
%

File VAR1_5_CREATEFCN.M
Function: VAR1_5_CREATEFCN.M
Synopsis: var1_5_CreateFcn(hObject,eventdata,handles)
230

RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>

%
%

Executes during object creation, after setting all


properties.

%
%
%
%
%
%

Inputs:
. hObject
= handle to var1_5 (see GCBO);
. eventdata = reserved - to be defined in a future version
of MATLAB;
. handles
= empty - handles not created until after all
CreateFcns called.

%
%
%

Authors: Aurelia PURCAREA, Janetta CULITA, Dan STEFANOIU


Created: May 15, 2009
Revised:

var2_1_Callback
%

File VAR2_1_CALLBACK.M

Function: VAR2_1_CALLBACK

Synopsis: var2_1_Callback(hObject,eventdata,handles)

Executes on selection change in var2_1.

%
%
%
%
%
%

Inputs:
. hObject
= handle to var2_1 (see GCBO);
. eventdata = reserved - to be defined in a future version
of MATLAB;
. handles
= structure with handles and user data
(see GUIDATA).

%
%
%

Authors: Aurelia PURCAREA, Janetta CULITA, Dan STEFANOIU


Created: May 15, 2009
Revised:

var2_1_CreateFcn
%

File VAR2_1_CREATEFCN.M

Function: VAR2_1_CREATEFCN.M

Synopsis: var2_1_CreateFcn(hObject,eventdata,handles)

%
%

Executes during object creation, after setting all


properties.

%
%
%
%
%
%
%
%
%
%

Inputs:
. hObject
= handle to var2_1 (see GCBO);
. eventdata = reserved - to be defined in a future version
of MATLAB;
. handles
= empty - handles not created until after all
CreateFcns called.
Authors: Aurelia PURCAREA, Janetta CULITA, Dan STEFANOIU
Created: May 15, 2009
Revised:
231

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

var2_2_Callback
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

File VAR2_2_CALLBACK.M
Function: VAR2_2_CALLBACK
Synopsis: var2_2_Callback(hObject,eventdata,handles)
Executes on selection change in var2_2.
Inputs:
. hObject
= handle to var2_2 (see GCBO);
. eventdata = reserved - to be defined in a future version
of MATLAB;
. handles
= structure with handles and user data
(see GUIDATA).
Authors: Aurelia PURCAREA, Janetta CULITA, Dan STEFANOIU
Created: May 15, 2009
Revised:

var2_2_CreateFcn
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

File VAR2_2_CREATEFCN.M
Function: VAR2_2_CREATEFCN.M
Synopsis: var2_2_CreateFcn(hObject,eventdata,handles)
Executes during object creation, after setting all
properties.
Inputs:
. hObject
= handle to var2_2 (see GCBO);
. eventdata = reserved - to be defined in a future version
of MATLAB;
. handles
= empty - handles not created until after all
CreateFcns called.
Authors: Aurelia PURCAREA, Janetta CULITA, Dan STEFANOIU
Created: May 15, 2009
Revised:

var2_3_Callback
%
%
%
%
%
%

File VAR2_3_CALLBACK.M
Function: VAR2_3_CALLBACK
Synopsis: var2_3_Callback(hObject,eventdata,handles)
232

RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>

Executes on selection change in var2_3.

%
%
%
%
%
%

Inputs:
. hObject
= handle to var2_3 (see GCBO);
. eventdata = reserved - to be defined in a future version
of MATLAB;
. handles
= structure with handles and user data
(see GUIDATA).

%
%
%
%

Authors: Aurelia PURCAREA, Janetta CULITA, Dan STEFANOIU


Created: May 15, 2009
Revised:

var2_3_CreateFcn
%
%

File VAR2_3_CREATEFCN.M

%
%
%

Function: VAR2_3_CREATEFCN.M
Synopsis: var2_3_CreateFcn(hObject,eventdata,handles)

%
%

Executes during object creation, after setting all


properties.

%
%
%
%
%
%

Inputs:
. hObject
= handle to var2_3 (see GCBO);
. eventdata = reserved - to be defined in a future version
of MATLAB;
. handles
= empty - handles not created until after all
CreateFcns called.

%
%
%
%

Authors: Aurelia PURCAREA, Janetta CULITA, Dan STEFANOIU


Created: May 15, 2009
Revised:

var2_4_Callback
%

File VAR2_4_CALLBACK.M

Function: VAR2_4_CALLBACK

Synopsis: var2_4_Callback(hObject,eventdata,handles)

Executes on selection change in var2_4.

%
%
%
%
%
%

Inputs:
. hObject
= handle to var2_4 (see GCBO);
. eventdata = reserved - to be defined in a future version
of MATLAB;
. handles
= structure with handles and user data
(see GUIDATA).

%
%
%

Authors: Aurelia PURCAREA, Janetta CULITA, Dan STEFANOIU


Created: May 15, 2009
Revised:
233

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

var2_4_CreateFcn
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

File VAR2_4_CREATEFCN.M
Function: VAR2_4_CREATEFCN.M
Synopsis: var2_4_CreateFcn(hObject,eventdata,handles)
Executes during object creation, after setting all
properties.
Inputs:
. hObject
= handle to var2_4 (see GCBO);
. eventdata = reserved - to be defined in a future version
of MATLAB;
. handles
= empty - handles not created until after all
CreateFcns called.
Authors: Aurelia PURCAREA, Janetta CULITA, Dan STEFANOIU
Created: May 15, 2009
Revised:

var2_5_Callback
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

File VAR1_5_CALLBACK.M
Function: VAR2_5_CALLBACK
Synopsis: var2_5_Callback(hObject,eventdata,handles)
Executes on selection change in var2_5.
Inputs:
. hObject
= handle to var2_5 (see GCBO);
. eventdata = reserved - to be defined in a future version
of MATLAB;
. handles
= structure with handles and user data
(see GUIDATA).
Authors: Aurelia PURCAREA, Janetta CULITA, Dan STEFANOIU
Created: May 15, 2009
Revised:

var2_5_CreateFcn
%
%
%
%
%
%

File VAR2_5_CREATEFCN.M
Function: VAR2_5_CREATEFCN.M
Synopsis: var2_5_CreateFcn(hObject,eventdata,handles)
234

RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>

%
%
%
%
%
%
%
%
%
%
%
%
%
%

Executes during object creation, after setting all


properties.
Inputs:
. hObject
= handle to var2_5 (see GCBO);
. eventdata = reserved - to be defined in a future version
of MATLAB;
. handles
= empty - handles not created until after all
CreateFcns called.
Authors: Aurelia PURCAREA, Janetta CULITA, Dan STEFANOIU
Created: May 15, 2009
Revised:

235

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

236

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

Anexa G. Publicaii selectate


[SCI08]

tefnoiu D., Culi J., Ionescu F. FORWAVER A Wavelet-Based Predictor


for Non Stationary Signals, Industrial Simulation Conference ISC-2008, Lyon,
France, A publication of EUROSIS-ETI, pp. 377-381, June 911, 2008 (ISIThomson and INSPEC referenced).
[StCu09a] tefnoiu D., Culi J. Kalman Filtering of Distributed Time Series, The 17-th
International Conference on Control Systems and Computer Science,
CSCS-17 (ISSN 2066-4451), Bucharest, Romania, pp. 101-108 (Vol. 1),
May 2629, 2009.
[StCu09b] tefnoiu D., Culi J. PARMAX A Predictor for Distributed Time Series,
Industrial Simulation Conference ISC-2009, Loughborough, U.K., A publication
of EUROSIS-ETI (ISBN 978-90-77381-4-89), pp. 5-12, June 13, 2009 (ISIThomson and INSPEC referenced).
[SSCM09] tefnoiu D., Seraficeanu C., Culi J., Musc Gh. Identification of MIMOARMAX Models for Glycemia and Sodium Ions Tests, through Particle Swarm
Optimization, accepted at the 7-th International IEEE Conference on Control
and Automation, IEEE-ICCA'09, Christchurch, New Zealand, December 9-11,
2009 (ISI-Thomson referenced).

237

Modele numerice i metode rapide de predicie a fenomenelor ecologice

238

Industrial Simulation Conference ISC-2008, Lyon, France, June 911, 2008

FORWAVER A WAVELET-BASED PREDICTOR


FOR NON STATIONARY SIGNALS
Dan Stefanoiu 1, Janetta Culita 1, Florin Ionescu 2
1

Politehnica University of Bucharest, ROMANIA


Dept. of Automatic Control and Computer Science (www.acs.pub.ro)
2
University of Applied Sciences in Konstanz, GERMANY
Dept. of Mechatronics (www.htwg-konstanz.de)
E-mails: danny@indinf.pub.ro, jculita@yahoo.com, ionescu@htwg-konstanz.de

stationary ts. Moreover, the user has to select the optimal


period (if any) by considering three sources: the closest
average periodic waveform to the ts (in the least squares
sense), the maximum point of spectral representation
(periodogram) and the preliminary information about the
process that generated the data. Therefore, when detecting
and selecting the seasonal component, the users
subjectivism is crucial and can sensibly increase the
prediction error.

KEYWORDS
Prediction, orthogonal wavelet packets, prediction quality.
ABSTRACT
FORWAVER is a simulator that provides high accuracy time
series forecasting with the help of wavelet-based models.
Within this paper, the models rely on signal bases consisting
of Daubechies orthogonal wavelet packets and ARMA
modeling. Such a basis is adaptively selected, depending on
data, while the ARMA model is obtained by maximizing a
cost function, namely the prediction quality. Simulation on
real time series have proven that, when comparing to the
classical time series model (built by adding the deterministic
trend, the seasonal component and the stochastic autoregressive component) the wavelet-based model is more
accurate and less subjective.

The non stationary behavior of a ts is more suitably decoded


through a time-frequency-scale analysis [Cohen, 1995].
Wavelets are typical instruments of this analysis in context
of multi-resolution theory. This theory has mostly been
devised within the works of S. Mallat and I. Daubechies, in
the late 80s [Daubechies, 1988], [Mallat, 1989]. (A
generalization has been introduced in [Coifman, 1992].)
Orthogonal wavelets are employed to build bases within the
multi-resolution structure endowing the space of stable,
finite energy signals. Such a wavelet basis is uniquely
associated to a filter bank that produces a specific sub-band
segmentation of ts spectrum. Moreover, the filter bank can
be configured according to the energy distribution of ts, both
in time and frequency. Two modifications are proposed in
this paper: the classical deterministic model of a ts is
replaced by a wavelet-based model and the AR modeling is
replaced by ARMA modeling (auto-regressive, with moving
average).

1. INTRODUCTION
Prediction of natural phenomena (seismic, climatic, celestial,
etc.) is nowadays of great importance, because of unexpected
and rapid changes they might exhibit. Many engineering
processes also require quality forecasting in order to be
modeled, simulated, automatically controlled, etc. Some of
such phenomena or processes reveal their behavior through
finite length data strings { y[ n]}n1, N referred to as time series
(ts). Although the governing dynamics of such a ts is
unknown, the entity providing the data can be associated to a
non stationary model (i.e. with variable frequency contents).

2. ON THE WAVELET-BASED MODEL


The deterministic modeling with wavelets is actually a
problem of data denoising. Thus, the original data are
projected on a subspace of signal space, U , generated by a
finite collection of wavelet packets, like in Figure 1.

Any ts is subsuming two types of behaviors: deterministic


and stochastic. Classically, the deterministic component
consists of a trend yT and a seasonal (periodic) signal yS ,
whereas the stochastic component is an auto-regressive (AR)
process y AR [Sderstrm, 1989], [Stefanoiu, 2005]. The
classical model is then:
y yT + yS + y AR .
(1)

yr y
vr y

The trend is a low degree polynomial, estimated by using the


Least Squares Method (LSM). The periodic behavior is
perhaps the most difficult to decode, although the LSM can
be employed as well. Finally, a Levinson-Durbin Algorithm
(LDA) returns the stochastic component. The accuracy of ts
prediction is sensitive to the accuracy of deterministic
component. Expressing the deterministic behavior like in (1),
inhibits the modeling of non stationary behavior. Thus, the
classical model is quite accurate only in case of quasi-

yWr y
D
U[ 0 ] [ g ]

Figure 1: Data Denoising Principle


The projection, yW , is associated not only to the
deterministic component of ts, but also to its useful

377

Industrial Simulation Conference ISC-2008, Lyon, France, June 911, 2008


(denoised) part. The overall model is then:
y yW + y ARMA .

c0,0,n = y , 0,0,n = y[ n] ( k n ) .

(2)

The colored noise corrupting the data, v y yW , is


orthogonal on the wavelet subspace and, thus, on the useful
component yW , as illustrated in Figure 1. The problem is to
build and use the overall model (2). This goal can be reached
after completing the following steps: (a) estimate the useful
component yW according to the data y and to a given
multi-resolution structure; (b) estimate the ARMA
(stochastic) component y ARMA starting from the colored
noise v ; (c) predict the ts by means of best predictor. All
together constitute the core of FORWAVER simulator. The
details of its construction can be found in [Stefanoiu, 2007].
Hereafter, only a short description of the three steps above is
provided.

Interestingly, the filter bank can be employed to compute


wavelet values as well, according to the recursive equation
below:
m, p ,0 (t ) = 2 n m 1, p / 2 ,0 (2t n ) , t R ,

( m , p )M P nN m , p

cm , p , n m , p , n ( t ) , t R ,

where h , if p is even, or g , otherwise. The


recursive equation (6) starts from the father wavelet
0,0,0 . The other wavelets of packet { m, p ,n }
are just
nZ

time-shifted versions of m, p ,0 .
The structure of filter bank can adaptively be set, by
minimization of wavelet coefficients entropy. By definition,
the entropy of a discrete time signal x is:
| x[ n] |
| x[ n] |
,
log 2
E
x
E ( x)
(
)
nZ

H ( x ) =

to Shannons interpretation (given in 1948, see [Shannon,


1948]), the entropy (7) quantifies the average number of bits
that are necessary to encode a signal sample. Also, the
entropy expresses both the signal redundancy and its
intrinsic order. The smaller the entropy, the less redundant
and the more ordered the signal. Small redundancy allows
the signal information to be concentrated in a small number
of samples, due to their high intrinsic order. Note that the
entropy is not an additive measure, i.e. the entropy of a
signal built by concatenation of two or more signals is
different, in general, from the sum of each concatenating
signal entropy. Finding the tree leaves that yield minimum
entropy is a problem that can be solved by using IDA* from
Artificial Intelligence [Russel, 1995].

(4)

are wavelet coefficients, m, p ,n is a generic wavelet from the


current packet and y0 is the projection of ts y on the
subspace U V0 from the multi-resolution structure
[Mallat, 1989]. Coefficients are computed by means of the
filter bank corresponding to the multi-resolution structure.
The finite sets M , P and N m, p determine the structure of
such filter bank. Figure 2 displays an example of filter bank
(binary tree) together with the frequency segmentation it
realizes.

(2,2)

0
(0,0)

high
frequency
12
(3,5)

5
(3,4)

11

24
(4,9)
23
(4,8)
22
(4,7)

10
(3,3)
4
(2,1)
21
(3,2)
(4,6)
9
(1,0)
8
1
(3,1)
16
(2,0)
3
(4,1)
(3,0)
7
15
(4,0)
low

middle frequency

(1,1)

6
(2,3)

Hence, the problem of minimum entropy wavelet basis


selection is equivalent to searching for the optimum within a
tree endowed with costs on the arcs. IDA* strategy relies on
a tree pruning mechanism that allows the optimum path to be
found very efficiently. In case of QMF banks and the signal
entropy, the search of minimum entropy configuration of
associated binary tree must be adapted to the context of
IDA*. Thus, the search is realized within a meta-tree defined
as follows (see Figure 3): (a) meta-nodes are associated to a
binary tree shape (or boundary); (b) a meta-node is generated
by expanding a binary tree node up to its two children; (c)
the meta-node label is the string of indexes associated to
binary tree leaves; (d) the cost of a transition from a metanode to one of its children is the entropy of the wavelet
coefficients lying on the boundary of the QMF bank
associated to the meta-child; (e) the estimated cost is null.
The optimal filter bank corresponds to a meta-leaf for which
the total entropy on the path from root is minimal.

Spectrum
15 16

21 22 23 24

12

0 2-4

/4

/2

3/4

(7)

where E ( x ) = nZ | x[ n] |2 is the signal energy. According

(3)

where: t is the continuous time,


cm, p ,n = y0 , m, p ,n , ( m, p ) M P , n N m, p

(6)

nZ

The U subspace is generated by using wavelet packets and


an entropy based criterion. More specifically, the
deterministic (useful) component is:
yW (t ) =

(5)

k =1

frequency

Figure 2: A Wavelet Tree and its Frequency Effect


In this example, the set of direct product depth-azimuth is:
M P = {(2, 3), (3,1), (3, 2), (3,5), (4,0), , (4, 9)} (corresponding to tree leaves), while the time offsets N m, p are
determined by accounting the supports of ts and basic couple
of father-mother wavelets {, } [Daubechies, 1988]. On the

The final version of yW is obtained only after removing the


weak wavelet coefficients from representation (3). Thus, for
any ( m, p ) M P , all wavelet coefficients whose

tree branches lie mirrored versions of QMF filters h (lowpass) and g (high-pass), followed by decimators. Wavelet
coefficients are provided by the tree leaves, after entering the
first projection coefficients (on time-shifted father wavelets):

amplitudes are inferior to E ( cm, p ) (where 0 is the

masking threshold) have to be removed (or masked).

378

Industrial Simulation Conference ISC-2008, Lyon, France, June 911, 2008

then the accuracy of each predicted value is inversely


proportional to its variance, defined as below:

2k = 2 02 + 12 +

[1 2]

+ 2k , k 1, K .

(11)

By assembling equations (3) and (9), the overall prediction


model is then:
[3 4 2]

[1 5 6]

y[ N + k ] =

( m , p )M P nN m , p

cm , p , n m , p , n ( N + k ) +

(12)

+ yV [ N + k ], k 1, K .
[7 8 4 2]

[3 9 10 2]

[3 4 5 6]

[1 11 12 6]

(The accuracy of predicted values (12) is given by (11).)


Usually, the accuracy of predicted values is represented by
means of the confidence intervals:

[1 5 13 14]

Figure 3: The Meta-Tree of Analysis QMF Banks

I k = [ y[ N + k ] k , y[ N + k ] + k ] , k 1, K . (13)

In case of normally distributed noises, in definition (13),


= 3 and the true value y[ N + k ] belongs to I k with a
probability superior to 95%. The larger the confidence
interval, the less accurate the prediction.

And yet, the removed information has not been lost, but just
transferred to the colored noise v y yW . This noise is
subsequently identified to an ARMA model, by using the
Minimum Prediction Error Method [Sderstrm, 1989],
[Stefanoiu, 2005]. More specifically, the colored noise is
supposed to verify the following differences equation:
v[ k ] + a1v[ k 1] + a2 v[ k 2] +

Several predictors are available, by varying the structural


indices na and nb . In order to select the best one, the
prediction quality criterion has to be employed. This cost
function has been introduced in [Stefanoiu, 2007] with the
following definition (for a K -length prediction horizon):
def
100
PQ[ K ] =
[%] , (14)
K
y [ N + k ] y [ N + k ]
k
1+ k =1
K

+ ana v[ k na ] =

= e[ k ] + c1e[ k 1] + c2 e[ k 2] +

+ cnc e[ k nc ],

k N , (8)

where e is a Gaussian white noise with null mean and 2


variance (unknown), while {ai }i1,na and {c j }
are model
j1, nc

parameters (unknown, as well as their number). For any


couple of structural indices {na , nc} , one can estimate both
the parameters from colored noise data and the values of
white noise.

(9)

(for K 1 ) and yV v , on the measure horizon 1, N .


Notations with a hat mean estimated values. In order to
estimate white noise values, a long AR model has been used
(with 3( na + nc ) parameters). The model can then be
determined by means of LDA.

3. SIMULATION RESULTS AND DISCUSSION

The FORWAVER simulator has been implemented within


MATLAB 7.04 environment. Some parameters have to be set
in advance, in order to tune the simulation, such as: the
support length of father wavelet, 2 N (which leads to the

The white noise corrupting the data constitutes the


unpredictable part of ts and is not included into the overall
model (2). However, its variance, 2 (that can also be
estimated), plays a major role in setting the prediction
accuracy. Actually, the accuracy is inversely proportional to
2 and decreases as the prediction instant increases. More
are the coefficients of polynomial
specifically, if
p

analysis wavelets {, } , according to Daubechies


algorithm [Daubechies, 1988]), the stop test for IDA*
procedure ( > 0 ) and the masking threshold for awavelet
coefficients ( [0,1) ). Usually, N 2,25 and = 10 7 ,
whereas the masking threshold can be increased up to 10% .
A technical parameter is also employed: the resolution index
L N of father wavelet. Thus the projection (5) is computed
by using values of wavelet father, which are sampled with
period 10 L . Usually, L 0,6 . If L > 0 , the wavelet family
of expansion (3) becomes a tight frame of signals space; its

pN

resulted by infinite division:


C ( z ) 1 + c1 z +
=
A ( z ) 1 + a1 z +

+ cnc z nc
= p z p ,
+ a na z na pN

where y is the standard deviation of ts. According to

where: yV y ARMA on the prediction horizon N + 1, N + K

{ }

k =1

criterion (14), the predictor improves its performance when


the confidence tube tightens and/or the predicted values are
closer to the true ones. The only problem is to implement
definition (14), because the true values are unknown on the
prediction horizon. Clearly, the only way is to preserve the
last K data of ts, as if they were unknown. The waveletbased and ARMA models are then built by using N K
data only. The other K data are used to select the best
predictor, by maximizing PQ surface, as function of na and
nb .

The ARMA model allows prediction of colored noise,


according to the recipe below:
yV [ n] = a1 yV [ n 1] a na yV [ n na ] +

+ c1e[ n 1] + + cnc e[ n nc ]
,

e[ n] = yV [ n] + 1 yV [ n 1] + + n yV [ n n]

(10)

379

Industrial Simulation Conference ISC-2008, Lyon, France, June 911, 2008


constant is determined by means of LSM (see [Stefanoiu,
2007] for details).

Figure 6 exhibits the performance of wavelet based


predictor.

The predictor has been tested on a collection of 15 ts


extracted from various natural phenomena. Note that all the
signals are genuine and not artificially generated, as artifacts.
The following pictures exhibit the performance of classical
and wavelet-based predictors for one of them, representing
the evolution of USD-EURO exchange rate, since the formal
introduction of European currency. In order to compare the
two predictors, the last K = 5 data has completely been
removed from the models construction. From the N K
remaining data, another K (the most recent ones) have been
removed, such that the optimal predictors be found. Thus,
the models are actually built by using the oldest N 2 K
data.
Figure 4 displays the ts variation and the corresponding
trend, whereas Figure 5 reveals the performance of classical
best predictor.

Figure 6: Performance of Wavelet-Based Predictor


The improvement is quite obvious, since PQ jumped to
93.86% and the predicted values are close enough to the
measured ones, even for far away prediction instants.
The father and mother wavelets selected by the simulator
after varying N from 2 to 25 are illustrated in Figure 7.
Wavelets correspond to the maximum of N in this case (i.e.
25). Also, the resolution index L has been varied in order to
reach for the optimal predictor, in PQ sense. One has been
found that the optimal value is 6 (which generated a very
dense tight frame).

Figure 4: USD-EURO Exchange Rate

Figure 7: Optimal Wavelets Selected by FORWAVER

Figure 5: Performance of Classical Predictor

Selection has been made by using the maxima of PQ surface,


as shown in Figure 8. One can see that the overall maximum
of PQ is 90.3%, for na = 11 and nc = 2 . Interestingly, in
this case, the effective PQ is higher (93.86%). (Usually, the
PQ decreases after considering the last K data.)

The PQ criterion has been employed to find the best


polynomial degree of trend and AR order. One can see that
the value of evaluated PQ on the last K data (which did not
partake to the model construction or selection) is quite
modest: 73.49%. Thereby, Figure 5 shows that the measured
data hardly fall inside the confidence tube.

In Figure 9, the structure of filter bank corresponding to


minimum entropy of wavelet coefficients is displayed.
Beside the fact the structure is quite simple and effective, it
reveals an interesting phenomenon: the information about
prediction is seemingly concentrated into the middle
frequency sub-bands for this ts (recall the time-frequency

380

Industrial Simulation Conference ISC-2008, Lyon, France, June 911, 2008


correspondence of Figure 2). This characteristic is confirmed
by the scalogram represented in Figure 10.

seasonal component is difficult to detect and/or derive or the


ts does not exhibit periodic variations (like the one taken as
example in this paper). While the wavelet-based model can
naturally decode the repeatable patterns carried by the ts, the
seasonal component is critical for classical prediction (and
requires users intervention). In general, the wavelet-based
predictor is very likely superior to the classical one, at the
expense of complexity increase.
4. CONCLUSION

This paper integrated two types of signal modeling in order


to perform data compression and especially accurate
prediction. The deterministic model is concerned with
wavelets and adaptive frequency sub-band configurations,
while the stochastic model is of ARMA class. The
combination led to an overall prediction model with higher
prediction accuracy, comparing to the classical model, on all
tested ts. Future improvements are concerned with replacing
the orthogonal wavelets by a dictionary of waveforms, from
which the most fitted ones have to be selected. Removing the
orthogonal nature of wavelets might produce superior
performance in terms of prediction.

Figure 8: Prediction Quality Surface and Optimal Indices

REFERENCES

Cohen L. 1995. Time-Frequency Analysis, Prentice Hall,


New Jersey, USA.
Coifman R., Wickerhauser M.V. 1992 Entropy-Based
Algorithms for Best basis Selection, IEEE Transactions
on Information Theory, Vol. 38, No. 2, pp. 713718.
Daubechies I. 1988. Orthonormal Bases of Compactly
Supported Wavelets, Communications on Pure and
Applied Mathematics, No. XLI, pp. 909996.
Mallat S. 1989. A Theory for Multi-resolution Signal
Decomposition: the Wavelet Representation, IEEE
Transactions on Pattern Analysis and Machine
Intelligence, Vol. 11, No. 7, pp. 674-693.
Russel S.J., Norvig P. 1995. Artificial Intelligence A
Modern Approach. Prentice Hall, Upper Saddle River,
New Jersey, USA.
Shannon C.E. 1948. A Mathematical Theory of
Communication, Bell Systems Technical Journal,
Vol. 27, pp. 379-423 & 623-656.
Sderstrm T., Stoica P. 1989. System Identification,
Prentice Hall, London, UK.
Stefanoiu D., Culita J., Stoica P. 2005. A Foundation to
System Modeling and Identification, Printech Press,
Bucharest, Romania.
Stefanoiu D., Ionescu F. 2007. Modeling and Prediction of
Natural Phenomena by Using Adaptive Orthogonal
Wavelet Packets, Research Report HTWG.KN-AvHSTIO-09-07, University of Applied Sciences in Konstanz,
Germany, (Sep.).

Figure 9. Optimal Filter Bank Selected by IDA* procedure

Figure 10: Time Series Scalogram


It would be dishonest to claim that the performance of
wavelet-based predictor is by far superior to the one
exhibited by the classical predictor for all 15 tested ts. For
some ts, PQ gained only few percents. This is the case of ts
for which the seasonal component is quite easy to determine
by classical methods. It seems that wavelets tremendously
improve the classical predictor performance when the

ACKNOWLEDGMENTS

This research has been supported by Alexander von


Humboldt Foundation (Germany) and, subsequently, by the
National Center for Programs Management (Romania). The
authors are extremely grateful to both of them.

381

Industrial Simulation Conference ISC-2008, Lyon, France, June 911, 2008

382

The 17-th International Conference on Control Systems and Computer Science, CSCS-17
Bucharest, Romania
May 2629, 2009

Kalman Filtering of Distributed Time Series


Dan Stefanoiu, Janetta Culita
Politehnica University of Bucharest, Dept. of Automatic Control and Computer Science
313 Splaiul Independentei 060032, Bucharest,ROMANIA
E-mails: danny@indinf.pub.ro, jculita@yahoo.com
Abstract: This paper aims to introduce an application to Kalman Filtering Theory, which is rather
unconventional. Recent experiments have shown that many natural phenomena, especially from ecology or
meteorology, could be monitored and predicted more accurately when accounting their evolution over
some geographical area. Thus, the signals they provide are gathered together into a collection of
distributed time series. Despite the common sense, such time series are more or less correlated each other.
Instead of processing each time series independently, their collection can constitute the set of measurable
states provided by some open system. Modeling and predicting the system states can take benefit from the
family of Kalman filtering algorithms. The article describes an adaptation of basic Kalman filter to the
context of distributed signals collections and completes with an application coming from Meteorology.

1. INTRODUCTION AND PROBLEM STATEMENT


Kalman Filtering (KF) Theory was originated at early 60s by
the works of R.E. Kalman and R.S. Bucy (Kalman, 1960,
Kalman-Bucy, 1961). One can say that Kalman-Bucys
approach acted like a switch within the scientific community,
because, nowadays, the literature on this topic is one of the
richest, concerning the theory, as well as the applications.
Moreover, new and sometimes surprising applications
continue to keep the KF field alive. For example, one can
mention the latest results from avionics (the stellar inertial
navigation problem) (Kayton, 1997), fault diagnosis
(Hajiyev, 2003) or robotics (Negenborn, 2003). This paper
focuses on the problem of correlated time series prediction.
Evolution of some natural phenomena can be monitored with
higher accuracy if the observation and measurement take into
account not only time variation of some parameter, but also
its distribution over a geographical area. Take for example
the monitoring of minimum and maximum temperatures over
a geographical area (see Fig. 1).

suitable. Sensors could thus provide several time series, on


different locations. Such data, coming from different
channels, are in general more or less correlated. For example,
in Fig. 1, one can easily notice the strong correlations
between the fourth temperature variations, since the two
cities are close to each-other. It is even possible that hidden
correlations (that cannot be perceived) be crucial for
monitoring. Assume that the monitoring goal is to predict the
temperature. It is very likely that better prediction results be
obtained when considering the collection of all data sets,
rather than when building independent prediction models for
each channel in isolation. The problem is then to build and
estimate multi-variable identification models, in view of
prediction.
The solution introduced within this paper relies on the idea
that sensors provide direct noisy data from the states of an
open and quasi-ubiquitous system. The system has in fact a
continuous collection of variable states. Placing a finite set of
sensors at different locations, in order to perform measuring,
is equivalent to sampling the system both in time and space.
The prediction problem of each data set (a time series, in
fact) is actually a problem of state prediction and can thus be
solved in context of KF Theory. Therefore, an adaptation of
basic KF algorithm to the context of distributed time series is
presented next. The article is structured as follows. Next
sections introduce the Markov-Kalman-Bucy method and
summarize the algorithm that allow the distributed prediction.
The simulation case study is based on the example in Fig.1.
A conclusion and the references list complete the paper.
2. DISTRIBUTED PREDICTION FRAMEWORK
The distributed prediction relies on state representation
below:

Fig. 1. Temperature monitoring in 2 cities from Romania.


When using a stand alone sensor, there is a problem with its
location. Obviously, the temperature varies both in time and
space. A small network of sensors is seemingly more

x[ k + 1] = A k x[ k ] + Bxk u[ k ] + Fk w[ k ]
, k N ,

y
y[ k ] = Ck x[ k ] + B k u[ k ] + D k v[ k ]

101

(1)

The 17-th International Conference on Control Systems and Computer Science, CSCS-17
Bucharest, Romania
May 2629, 2009
(with known notations), is identified via Minimum Prediction
where:
A k R nxnx , Bxk R nxnu , B ky R nynu , Ck R nynx , Error Method (MPEM) (Sderstrm and Stoica, 1989). After

D R ny ny and F R nxnx are matrices including all identification, the estimated polynomials A j and C j (for
k

j 1, ny ) yield the evaluation of prediction error:

variable (but already estimated) parameters of some


stochastic process; (usually, D k = I ny );
x R nx is the unknown state vector;
u R nu is the vector of (measurable) input signals;
y R ny is the vector of (measurable) output signals;

( )

w R nx is the (unknown) endogenous system noise;


v R ny is the (unknown) exogenous noise, which is
usually corrupting the measured data.
Whenever the stochastic process cannot be stimulated
artificially (like in case of time series), the input vector is
assigned to null values. Therefore, the noise w becomes the
virtual useful input, while the noise v is parasite.
The following noise hypotheses are assumed for model (1):
(a) all noises are zero mean, Gaussian; (b) the two noises are
uncorrelated each other; (c) the endogenous noise is non
auto-correlated, but its compounds could be correlated at the
same instant; (d) the compounds of exogenous noise are
white and uncorrelated each-other. According to the last two
hypotheses, the covariance matrices of noises are mostly null,
excepting for the current instant k N , when they are
denoted by:
w [ k ] = E {w[ k ]w [ k ]} and v [ k ] = E {v[ k ]v [ k ]} .
T

(2)

Obviously, the matrix v is diagonal. This is perhaps the


most restrictive condition, in general case.
In case of distributed time series, the output vector y
includes all the data sets (on channels), whereas the state
vector x encodes the invisible correlations between them.
Naturally, there is no reason to consider that the white noises
corrupting the data are correlated each other. The number of
states is not necessarily equal to the number of time series. It
depends on the size of multi-dimensional ARMA(X) model
assigned to the global process, as shown in next section.
Two main problems can be stated within this context. The
first one is to identify a rough ARMA model (by using the
time series), to improve its accuracy and to transform it into a
minimal state representation. The second problem is to
predict the states via an adapted version of Kalman filtering.
Each problem is approached next.
3. FROM ARMA(X) TO STATE REPRESENTATION
The rough ARMA model can be constructed by simply
considering that the time series are independent each other.
Thus, for each time series y j ( j 1, ny ) of length N N ,
the corresponding ARMA model:

( )

( )

A j q 1 y j C j q 1 e j ,

( )

q 1 y + 1 C q 1 e ,
v j A
j
j
j

(3)

(4)

which actually stands for the (approximated) input u j of


overall stochastic process. So, nu = ny , in this case.
To refine the rough model, one adopts a global model, of
ARMAX type:

( )

( )

( )

A q 1 y B q 1 v + C q 1 e ,

(5)

( )

where the polynomial matrices A, B, C R nyny q 1 have to

be identified from the time series as output data and rough


prediction errors (4) as input data. The two system functions
of model (5), i.e.:

( )

( ) ( )

( )

( ) ( )

H q 1 = A 1 q 1 B q 1 & G q 1 = A 1 q 1 C q 1 , (6)

encode moreover the correlations between time series.


Identification makes use of the same MPEM, but applied to a
multi-dimensional stochastic process. Implementation of such
a method is non trivial and involves many numerical
problems. In order to reach for a suitable tradeoff between
speed and accuracy, some simplifications are necessary. For
example, in MATLAB environment, the following general
principle has been adopted: each output depends on the input
signals and noises only. With another words, output signals
are not mixed each other, which implies the matrix A q 1

( )

is diagonal. Another simplification is related to inputs: since


input signals are actually noises, the channel j should not
account twice the input u j (one for input and another one for

( )

noise). Consequently, the matrix B q 1

has null diagonal.

Although the resulting model is seemingly less accurate than


the one obtained by applying MPEM at once, it is assumed
that the accuracy is acceptable. The great facility of such an
approach is that the system functions (7) are directly
computed, without inverting the polynomial matrix A .
Once the system functions being estimated, the MIMO model
can be converted into a state representation like (1),
following at least three rationales. First of them is based on
Theorem of Division with Reminder and atomic ratios
decomposition (for polynomials), following the idea
introduced in (Proakis, 1996).) The second one starts from
the linear regression form of ARMAX model and defines the
state by concatenating the regressors vector and the
parameters vector (Niedwiecki, 2000). The number of states
can increase very fast in case of MIMO models. This is the

102

The 17-th International Conference on Control Systems and Computer Science, CSCS-17
Bucharest, Romania
May 2629, 2009
reason the third conversion technique introduced in
Y V
(11)
(vanOverschee, 1996) is often preferred, since it leads to the
 = + ,
I
W
N
N
minimum state representation.
N
i
i
i
Y

V
4. ADAPTED KALMAN FILTER (PREDICTOR)
with natural notations. Whenever the noise V is not
The filter is aiming to predict the states of model (1), by
using a numerical procedure that relies on the recursive correlated to the virtual noise W , the covariance matrix of
i , includes two diagonal blocks only:
Markov estimator (Stefanoiu, 2005). Hereafter, the Markov extended noise V
estimator and the filter equations are described.
The main result of Gauss-Markov Theorem (GMT) (Placket,
1950) can be implemented through a recursive procedure.
One starts from the canonic form of linear regression
associated to an identification model (like (3) or (5)):
Y = + V , E{VVT } = > 0 ,

(7)

where Y R N is the N -length output (measurable) data


vector, R N n is the matrix of regressors (either
measurable or not), R n is the vector of n unknown
true parameters and V R N is the vector of (non
measurable) noise data with R N N as covariance matrix.
One assumes the noise is Gaussian with zero mean, but not
necessarily white (i.e. the matrix could be non diagonal).
The GMT states that the following Markov estimation:

= T 1

T 1Y

(8)

is unbiased, consistent and efficient. Moreover, the


estimation accuracy is also provided (the inverse of
estimation error covariance matrix):

P 1 = E ( )( ) = T 1 .

(9)

The problem is to design an efficient numerical procedure to


compute (8) and (9) recursively. Since not only is usually
unknown, but its size could be quite big, computing its
inverse is non trivial. To solve the problem, one extends the
canonical model (7) by the following virtual model (an
identity, also known as random walk model):

),
 = + (


(10)

where  R n is the Markov estimation from previous


computation stage, whereas W R n is the virtual noise
(unknown, since is non measurable). Interestingly, the
covariance matrix corresponding to virtual noise, P , is
already available from the previous computation too. After
fusing equations (7) and (10), the extended model is:

i = E {V
i V
i T } = 0 .


0 P

(12)

When computing again the Markov estimation with the


extended stochastic process (11), after some manipulations,
the direct link between the current and previous values of
estimated parameters can be revealed:
1
)
=  + ( T 1 + P 1 ) T 1 (
Y

.




(13)

Two interesting terms are outlined in (13). The first one is the
prediction error  R N , based on previous estimation  .
The second one is the sensitivity gain R n N , based on
previous accuracy P 1 . Supplementary manipulations can
lead to an equivalent expression of the gain, which is more
suitable for numerical evaluations (only one matrix has to be
inverted instead of 4):
 T ( + P
 T ) 1 .
= P

(14)

The covariance matrix of estimation error can also be updated


without any matrix inversion (after computing the gain):
1
P = ( P 1 + T 1 ) = ( I n ) P ,

(15)

where I n is the unit matrix of size n . Practically, the


recursive equations (14), (15) and (13) constitute de core of
implementation procedure for Markov estimator. An
estimation of can be obtained by using the prediction
error  instead of noise V (since, actually,  is the current
estimation of V .) The most time consuming operation is
computing the gain (14), because, at every step, a N N
matrix has to be inverted. To reduce the computational effort,
the number of adaptation data should be used instead of
whole data number. So, N is the number of data between
successive parameters upgrading (usually, no bigger than 10).
Recall the state representation (1) and assume that all
parameters are already known at current instant k N . Then,
the final goal is to estimate/predict the state values at the next
instant k + 1 , i.e. x[k + 1] , depending on current state values

103

The 17-th International Conference on Control Systems and Computer Science, CSCS-17
Bucharest, Romania
May 2629, 2009
k N .
(20)
x[k ] and newly measured data. In order to reach for this
goal, Markov estimator has to be employed as main tool.
Obviously, the procedure (20) can be implemented only after
The main variables of Markov estimator are identified as
estimating the mixed covariance matrices of noises,
follows from the last equation of model (1): the state vector
D k v [ k ]DTk and Fk w [ k ]FkT at any instant k N . This
x[k ] is and the output matrix Ck is . Consequently,
operation involves 2 computation stages. At the first step, the
x[k ] is  , while x[k + 1] stands for . The covariance mixed exogenous noise is estimated with the help of the
matrix from (9) is defined as follows:
second equation of (1).
T
P k = E {( x [k ] x[k ])( x [k ] x[k ]) } , k N .
def

(16)

Before starting the Markov estimation procedure, it is


necessary to verify whether the noise v[k ] is correlated to
the error ( x[k ] x[k ]) or not. Since the current state x[k ]
only depends on inside noise w and the estimated state x[k ]
is determined by the former state x[k 1] (i.e. by the values
of noises at instant k 1 at most), the non correlation
restriction is fully verified (under the noise hypotheses of
section 2). This allows the current state to roughly be
estimated as follows:
= P CT ( D [ k ]DT + C P CT )1
v
k k
k
k
k k k
k
P k = P k k Ck P k
, k N ,

y
x [ k ] = x [ k ] + k ( y[ k ] Ck x [ k ] Bk u[ k ])

from P k +1 as well, because the first equation of model (1)


remained untouched. They are only rough approximations of
the targeted terms. To refine the approximations, the next
state is computed from the first equation of model (1), with
x [k ] instead of x[k ] and w = 0 . Thus:

(18)

The next covariance matrix P k +1 results then as direct


consequence of equation (18):
def

P k +1 = A k P k ATk + Fk w [ k ]FkT , k N ,

(19)

(21)

At the second step, the covariance matrix is updated:


D k v [ k ]DTk =

1 k
T
T
D n v [ n]v [ n]D n =
k + 1 n =0

1
=
( kDk 1 v [ k 1]DTk 1 + Dk v [ k ]v T [ k ]DTk ) .
k +1

(22)

For the endogenous noise, instead of repeating the steps


above, one can compute the estimation more elegantly. Thus,
it is easy to see from (20), (21) and (1) that:
[k ] .
A k k D k v [ k ] = x [ k + 1] A k x [ k ] Bxk u[ k ] = Fk w

(17)

since the exogenous noises are mixed through matrix D k . In


(17), x [k ] is not yet equal to x[k + 1] and P is different

x[k + 1] = A k x [k ] + B k u[k ] , k N .

D n v [ n] = [ n] = y[ n] Cn x [ n] Bny u[ n] , n 0, k .

(23)

Since the noises estimations are so correlated, the estimation


of Fk w [ k ]FkT follows straightforwardly:
Fk w [ k ]FkT =
=

1 k
Fn w [n]w T [n]FnT =
k + 1 n =0

1
( kFk 1 w [k 1]FkT1 + Ak k Dk v [k ]v T [k ]DTk Tk ATk ) .
k +1

(25)

Equations above can be gathered together into a numerical


recipe aiming to predict the discrete stochastic states and
outputs of model (1). The main steps are as follows.
Input data: a small collection of time series values (the
training set D0 = {y[ n]}n1, N ) yielding initialization.
0

1. Initialization. Produce the first state representation (1).


Then complete the initialization by setting: an arbitrary
state vector x 0 , the covariance matrices P 0 = I nx (with
R+ ), F1 w [ 1]FT1 = 0 nx and D 1 v [ 1]DT1 = 0 ny .

after some manipulations where the non correlation between


w[ k ] and ( x [ k ] x[ k ]) played the main role. After
aggregating equations (17)-(19), the kernel of final recursive
procedure related to Kalman-Bucy filtering is obtained:
1

= P k C Tk ( D k v [ k ]D Tk + C k P k C Tk )
k
x [ k + 1] = A k x [ k ] + B xk u[ k ] + A k k ( y[ k ] C k x [ k ] B ky u[ k ] ) ,

P k +1
= Fk w [ k ]FkT + A k ( P k k C k P k ) A Tk

2. For k 0 :
2.1. Estimate the exogenous mixed noise:
D k v [ k ] = y[ k ] Ck x [ k ] B ky u[ k ] .
2.2. Update the covariance matrix of exogenous noise:
1
D k v [ k ]DTk =
( kDk 1 v [k 1]DTk 1 + Dk v [k ]v T [ k ]DTk ) .
k +1
2.3. Compute the auxiliary matrix: Q = C P .

104

2.4. Invert the matrix: R k = D k v [ k ]DTk + Q k CTk R ny ny .

The 17-th International Conference on Control Systems and Computer Science, CSCS-17
Bucharest, Romania
May 2629, 2009
2.5. Evaluate the sensitivity gain: k = QTk R k 1 .
T
2.6. Compute the auxiliary matrix S k = A k k .
The bigger the norm of PQ = PQ1 " PQ ny , the better the
2.7. Update the covariance matrix of endogenous noise:
predictor performance.
1
T
T
T
T T
Fk w [ k ]Fk =
( kFk 1 w [k 1]Fk 1 + Sk Dk v [k ]v [k ]Dk Sk ) . Finding the structural indices that maximize the norm of PQ
k +1
2.8. Update the covariance matrix of estimation error: cannot be realized through an exhaustive search. The
structural indices are: p the degree of polynomial trend,
P k +1 = Fk w [ k ]FkT + A k ( P k k Q k ) ATk .
na , nc the orders of ARMA model and nx the number
2.9. Predict the state:
of
states for the linear system (1). An evolutionary searching
x [ k + 1] = A k x [ k ] + Bxk u[ k ] + S k D k v [ k ] .
technique has to be employed in this aim.
2.10. Predict the output: y [ k + 1] = Ck x [ k + 1] + Bky u[ k + 1] .
5. SIMULATION RESULTS
2.11. Acquire new data: D = D {y[ k + 1]} .
k +1

2.12. Update the state model.


Output data:
predicted time series values {y [ k ]}kN ;

estimated covariance matrices D k v [ k ]DTk

k N

The most time consuming steps of algorithm above is 2.12


(state model matrices updating), followed by 2.4 (matrix
inversion). The algorithm above can easily be adapted to
multi-step prediction, thanks to Markov estimator. In this
case, the algorithm has two stages. The first one is concerned
with the model adaptation. In the second one, multi-step
prediction is performed. The main difference between the two
algorithms (one step and multi-step prediction) consists of the
exogenous noise estimation. As long as the measured data are
available, equation (21) can successfully be employed. When
the measured data are missing, the exogenous noises have to
be estimated by a different technique. For example, MIMOARMA(X) models can be employed in this aim; the
estimated white noises can directly stand for mixed
exogenous noises (since, usually, D n = I ny ).
Estimations of covariance matrices D N y + k v [ N y + k ]DTN y + k
are necessary both to assess the prediction performance and
to estimate the SNRs. Thus, the diagonal of each matrix
, whose values play the role of
returns the set 2j ,k

{ }

j1, ny

An application coming from Meteorology has been


considered. Daily minimum and maximum temperatures of
two cities have been monitored and predicted (as Fig.1
suggests). The cities are 60 km far each other on a plain. The
data block consists of 482 samples on 4 channels. Two
predictors are compared in terms of PQ: PARMA and
KARMA. The first one is based on ARMA prediction of each
channel in isolation. The second one relies on the adapted
Kalman filter predictor. Both algorithms have been
implemented within MATLAB environment. In order to find
optimal structural indices, the technique from (Kennedy,
1997) has been adopted. There are many implementation
details that cannot be described here. Just one word regarding
KARMA: numerical stability of the algorithm required
special attention at step 2.5.
For each one of the final figures (2-9), three variations are
depicted: the original data with the deterministic model (trend
and seasonal variation, if any) on top, the residual noise with
estimated SNR in the middle and the performance on the
prediction horizon at bottom. Although the predictability
varies from a channel to another, KARMA succeeded to
perform better than PARMA (higher PQ and SNR values).
(This result was confirmed by other data blocks as well,
where correlation between channels exits.) However, in
general, PARMA has superior performance on data blocks
with (almost) uncorrelated channels. Below, the PQ values
and norms are shown:

prediction errors variances on every channel. Here, N y is the


data length and k 1, K is the current prediction step on the
prediction horizon. Then the following two types of SNR can
be evaluated (one for measured data and another one for
predicted data):
def

def

( ) / ( ) , j 1, ny (26)

SNR j = 2y j / 2j ,1 & SNR Kj = Ky j

K
y j y j

where y j , Kyj are standard deviations of data on measuring


and prediction horizons, respectively; also, Kyj y j is the
standard deviation of prediction error. The SNRs (26) allow
one to define the prediction quality (PQ) cost function below:
K

2j ,k

def
k =1

PQ j = 100 / 1+
SNR SNR K
ej
j
j

[%] , j 1, ny . (27)

PQTARMA = [46.00 62.65 65.12 63.23]


PQ

T
KARMA

= [49.59 70.18 79.47 71.70]

PQ ARMA 119.50 ;

PQ KARMA 137.26 .

(28)
Only 4 states were necessary to represent the linear system
associated to data. The fact nx = ny in this case is pure
coincidence. On the figures corresponding to KARMA
performance (Figs. 6-9), the only purpose of ARMA models
is to estimate the input colored noises that stimulate the
system. The data on the first channel are seemingly the less
predictable. This is proven by the modest PQ values returned
even by KARMA (only slightly superior to PARMA one). It
seems that data from this channel are less correlated to data
from the other channels, which cannot be noticed by simply
inspecting the data.

105

The 17-th International Conference on Control Systems and Computer Science, CSCS-17
Bucharest, Romania
May 2629, 2009
The prediction accuracy has increased at the expense of
computational complexity for KARMA. Therefore, if the data
are quite uncorrelated across channels, PARMA should be
employed as the first option.
6. CONCLUSION
One can say that KF is a new and old topic at the same time.
Concerning the theory, KF has drawn the bottom line long
time ago. The applications rejuvenate however this approach.
The KF-based algorithm introduced in this article is genuine.
Its major contribution consists of noises estimation during the
prediction. The most KF algorithms try to avoid this problem.
The simulation case study on natural data has proven that the
prediction quality can be improved when considering
correlations between channels.
REFERENCES
Hajiyev Ch. and Caliskan F. (2003). Fault Diagnosis and
Reconfiguration in Flight Control Systems. Kluwer
Academic, Boston, USA.
Kalman R.E. (1960). A New Approach to Linear Filtering
and Prediction Problems. Transactions of ASME, Journal
of Basic Engineering, Vol. 82D, pp. 35-45.
Kalman R.E. and Bucy R.S. (1961). New Results in Linear
Filtering and Prediction Theory. Transactions of ASME,
Journal of Basic Engineering, Series D, Vol. 83,
pp. 95-108.
Kayton M. and Fried W.R. (1997). Avionics Navigation
Systems. John Wiley & Sons Inc., New York, USA.
Kennedy J., Eberhart R. (1995). Particle Swarm
Optimization, IEEE International Conference on Neural
Networks, Piscataway, USA, pp. 1942-1948.
Negenborn R. (2003). Robot Localization and Kalman
Filters. Ph.D. Thesis, Delft University of Technology,
Delft, NL.
Niedwiecki M. (2000). Identification of Time-Varying
Processes. John Wiley & Sons, West Sussex, U.K.
vanOverschee P. and deMoor B. (1996), Subspace
Identification
of
Linear
Systems:
Theory,
Implementation, Applications. Kluwer Academic
Publishers, Holland.
Plackett R.L. (1950). Some Theorems in Least Squares,
Biometrika, No. 37, pp. 149157.
Proakis J.G. and Manolakis D.G. (1996). Digital Signal
Processing. Principles, Algorithms and Applications.,
third edition, Prentice Hall, Upper Saddle River, New
Jersey, USA.
Sderstrm T. and Stoica P. (1989). System Identification,
Prentice Hall, London, UK.
Stefanoiu D., Culita J. and Stoica P. (2005). A Foundation to
System Identification and Modeling. PRINTECH Press,
Bucharest, Romania.

106

The 17-th International Conference on Control Systems and Computer Science, CSCS-17
Bucharest, Romania
May 2629, 2009

Fig. 2. PARMA performance on channel 1.

Fig. 6. KARMA performance on channel 1.

Fig. 3. PARMA performance on channel 2.

Fig. 7. KARMA performance on channel 2.

Fig. 4. PARMA performance on channel 3.

Fig. 8. KARMA performance on channel 3.

Fig. 5. PARMA performance on channel 4.

Fig. 9. KARMA performance on channel 4.

107

The 17-th International Conference on Control Systems and Computer Science, CSCS-17
Bucharest, Romania
May 2629, 2009

108

Industrial Simulation Conference ISC-2009, Loughborough, United Kingdom, June 13, 2009

PARMAX A PREDICTOR FOR DISTRIBUTED TIME SERIES


Dan Stefanoiu, Janetta Culita
Dept. of Automatic Control and Computer Science
Politehnica University of Bucharest,
313 Splaiul Independetei 060032 Bucharest, ROMANIA
E-mails: danny@indinf.pub.ro, jculita@yahoo.com

with monitoring. In this context, by monitoring, one


understands data prediction mainly.

KEYWORDS
Prediction, MIMO-ARMAX models, distributed signals,
prediction quality, Particle Swarm Optimization.

When using a stand alone sensor, the main problem is to


locate it in such a vast environment. As Figure 1 is
suggesting, the thickness varies both in time and space. A
network of wireless sensors is seemingly more suitable to
perform monitoring than isolated sensors. Several time series
(ts), from different locations are thus provided. Data coming
from different channels are in general more or less
correlated. For example, the snow melting on top may
increase the thickness at the bottom of the valley (especially
when avalanches are produced). Assume that the monitoring
goal is to predict the snow thickness in order to prevent
avalanches. It is very likely that better prediction results be
obtained when considering the collection of all data sets,
rather than when building independent prediction models for
each of them.

ABSTRACT
Within this article, the problem of multi-variable signals
prediction is approached. Such signals are provided
especially by natural phenomena with geographical
distribution. Presumably, the set of time series generated by
the same source are more or less correlated each other.
Instead of processing each time series independently, they
can be seen as measurable outputs provided by some open
MIMO system. Therefore, modeling and forecasting of
system behavior can rely on multi-dimensional ARMAX
models. The research based on this idea led us to
construction of PARMAX predictor. Optimal structural
indices of MIMO-ARMAX model can be found by means of
an evolutionary strategy: Particle Swarm Optimization.

A quick approach to the prediction problem is to use data


fusion techniques [Wang 2005], followed by prediction.
After fusion, a unique ts results [Stefanoiu 2008a] and, thus,
on one hand, some prediction model can easily be
implemented. On the other hand, after fusing the data, much
of the prediction information provided by each sensor is lost,
which strongly limits the prediction accuracy.

1. INTRODUCTION
Evolution of many natural phenomena can be monitored
with higher accuracy when the observation and measurement
are accounting not only the time variation of some
parameter, but also its distribution over a geographical area.
Take for example the snow thickness monitoring application
on White Valley from French Alps (see Figure 1).
Monitoring
laptop/notebook

eco-node
(wireless)

A different approach is described within this paper. One


considers that sensors provide data as result of unknown
colored noises that stimulate an open and quasi-ubiquitous
system. The system has in fact a continuous collection of
variable states. Placing a finite set of sensors at different
locations, in order to perform measuring, is equivalent to
sampling the system both in time and space. While the time
sampling is governed by Shannon-Nyquist rules, sampling
the system over space is by far more empirical. To the best
of our knowledge, no general rules of space sampling are
currently available. However, apparently, simulations have
shown that the prediction quality is less affected by the
sensors location than by their number.

VISA
Wireless data acquisition interface

eco-sensor
(wireless)

This paper is structured as follows. Section 2 succinctly


describes the construction of MIMO-ARMAX predictors.
Section 3 is devoted to Particle Swarm Optimisation (PSO)
[Kennedy 1995] an evolutionary technique to find optimal
structural indices of prediction model. The performance of
PARMAX predictor is demonstrated within the last section,
within an application of temperature monitoring. A
conclusion and the references list complete the article. (More
details can be found in [Stefanoiu 2008c].)

Figure 1: Snow Thickness Measuring on White Valley


The monitoring system consists of 3 layers. The lowest level
layer includes on-field wireless sensors (eco-sensors).
Signals are first gathered by eco-nodes, then labeled and
transmitted at middle level layer a versatile acquisition
interface referred to as VISA [Stefanoiu 2008a]. VISA
performs primary filtering and data organizing, before
sending them to the highest level layer a laptop in charge

Industrial Simulation Conference ISC-2009, Loughborough, United Kingdom, June 13, 2009

The main idea is to come back to the unknown perturbations


that stimulate the system to evolve. Since the hidden
correlations between output channels have been removed,
they can partially be reconsidered by selecting colored noises
of measured data as inputs. More specifically, let {e j } j1,ny

2. KERNEL OF PARMAX: MIMO-ARMAX MODELS


In a previous research [Stefanoiu 2008c], a comparison
between classical prediction methods (based on ARMA
modeling) and a wavelet-based method has been realized.
But the analyzed ts were mono-variable. In case of multivariable ts, the SISO-ARMA model can be extended to a
MIMO-ARMAX model [Sderstrm 1989], according to the
rationale described in this section.

be the white noises corrupting the measured data. By


filtering, they are producing colored noises that corrupted
output channels. Since the perturbation of channel j has
already been accounted by the MA part of equations (2) (the
second right term), only noises of the other output channels,
{ei }i1,ny ,i j , are affecting the data through input channels.

Let Y = { y j } j1,ny be the set of ny ts provided by some


distributed set of sensors and denote the maximum number
of acquired data by N y . Before any other operation, data of

Consequently, nu = ny 1 and u i ei , i 1, ny , i j .

Y have to be synchronized. Synchronization may involve


interpolation (e.g. spline type) and re-sampling, such that
each data set includes exactly N y samples. This allows

Practically, matrix B (of (1)) has null diagonal, in this case.


The colored noises are then: v Be .
Since the filters are unknown, estimating inputs means
estimating filters parameters. Fortunately, the measured data
encode the information regarding colored noises. This allows
identification of filters with some accuracy. Given the
equations of model (2), it is natural to consider that filters
belong to the same models class. A simple assumption yields
expressing the filters equations: each output data set is a
colored noise produced by the corresponding white noise.
Consequently, data for each channel can roughly be modeled
by means of a (SISO-)ARMA filter:
A sj ( q 1 ) y j C sj ( q 1 ) e j , j 1, ny ,
(3)

y = y1 " yny , which


belongs to some MIMO system. Thus, a general MIMOARMAX model can be assigned to data set Y :

construction of output vector

A ( q 1 ) y B ( q 1 ) u + C ( q 1 ) e .

AR

In equation (1),
CR

ny ny

ny ny

(q ) ,
1

BR

( q ) are matrix polynomials, u R


1

(1)

ny nu
nu

(q )
1

and

is the input

vector ( nu channels) and e R ny is the vector of Gaussian


uncorrelated white noises. Two main problems have to be
solved, to identify the model (1) from data Y : specifying
the model structure and estimating the input signals. If all
polynomials of matrices A , B and C are non null, then
identification is extremely difficult to perform. Firstly,
because the number of parameters to estimate is quite large
(even for small number of input-output channels). Secondly,
because the output channels are mixed within the AR part
(the left side of equation (1)). Therefore, some simplifying
hypotheses are necessary. One of the most natural
assumptions has been adopted within MATLAB environment:
each output vary independently on the other outputs, solely
as result of stimulation with inputs and noises. This means
the matrix A is diagonal. The second assumption regards
the white noises: since they are uncorrelated each other, only
one noise per output channel can be kept. Thus, the matrix
C is diagonal as well. As direct consequence of the two
hypotheses, the MIMO-ARMAX model can be split into ny
MISO-ARMAX models (with natural notations):
A j ( q 1 ) y j B j ( q 1 ) u + C j ( q 1 ) e j , j 1, ny . (2)
1 nu

This time, B j R

(q )
1

where A sj and C sj are (singleton) polynomials for each


output channel j 1, ny . Identification of models (3) is
simply performed via Minimum Prediction Error Method
(MPEM) [Sderstrm 1989]. Moreover, the procedure based
on MPEM returns estimates of white noise values. (By
convention, estimated parameters or signals carry a hat over
their notations.) After identification of models (3), the
prediction error on each channel can roughly be estimated.
This error actually stands for the input on some channel:
s q 1 y + 1 C s q 1 e , i 1, ny , (4)
ui ei A
i
i
i

i
Equations (4) allow not only estimating the inputs of model
(2), but also predicting them with sufficient accuracy. The
final running MIMO-ARMAX models are then:
A j ( q 1 ) y j B j ( q 1 ) u + C j ( q 1 ) e j , j 1, ny , (5)

( )

( )

where u R ny gathers all rough estimates of white noises


and B j , j 0 , j 1, ny . After estimation of inputs,
identification of model parameters and white noise values
relies on MPEM as well. Actually, approximating ARX
models return more refined estimated values of white noises:

is a row vector of polynomials.

Identification of MIMO-ARMAX model reduces now to


estimation of parameters for each MISO-ARMAX model,
separately. Although models (1) and (2) are not equivalent
(in the second one, correlation between outputs was
removed), identification is now affordable. Despite output
channels isolation, as it will be shown, prediction can be
performed only when solving all equations (2) at each step.
Thus, correlations between outputs are indirectly encoded by
the collection of MISO-ARMAX models.

n ( q 1 ) y
e j A
j
j

ny

i =1, i j

n ( q 1 ) u , j 1, ny ,
B
j ,i
i

(6)

where A nj and Bnj, i are polynomials with degrees n and


n , respectively. (Usually, n and n are sensibly larger
than the degrees of polynomials in (5).)

After estimation of parameters, the optimal predictor can be


enabled. The following equations show how the output
predicted data are recursively computed, on a prediction
horizon of length K 1 (for any k N y + 1, N y + K ):

Obviously, since only the output data set Y is available, it is


necessary to derive a method for estimating the inputs u .

Industrial Simulation Conference ISC-2009, Loughborough, United Kingdom, June 13, 2009
where 2j , N y = 0 and { j ,k }kN are the coefficients of endless

y j k | N y = a j ,1 y j k 1 | N y " a j ,na j y j k na j | N y +
+

ny

(starting from
division between polynomials C j and A
j

b j , i ,1u i [ k 1] + " + b j , i ,nb u i k nb j , i +

j ,i

i =1, i j

+ c j ,1e j [ k 1] + " + c j ,nc j e j k nc j ;

their free terms). Obviously,

(7)

1
2m, j =
Ny

e j [ k ] = y j k | N y + j ,1 y j k 1| N y + " + j ,k N y 1 y j N y + 1| N y +
+ j , k N y y j N y + " + j ,n y j [ k n]

ny

i =1, i j

(8)

k =1

k | N y

. (13)

among more than 30 28 2.29 10 41 identification models


(when accounting the rough SISO-ARMA models as well).
One copes thus with an NP hard optimization problem.
The problem can be approached by means of an evolutionary
strategy, based on some heuristic. From all such strategies,
the PSO [Kennedy 1995] has been preferred, for the
convenient trade off between convergence speed and
algorithm complexity it exhibits.
The principle of PSO is illustrated in Figure 2.

[%],

(9)

2
j ,k

Figure 2: Principle of Particle Swarm Optimization

k =1

m, j SNR m, j SNR p , j

A population of entities referred to as particles is initiated to


run on some trajectories, starting from initial positions.
Trajectories are adaptively adjusted on the run, according to
some fitness function (that has to be optimized). The goal is
to concentrate the population around some optimum of
fitness function and to increase the chance that the optimum
be global over the searching space.

where: SNR m, j and SNR p , j are signal-to-noise ratios of


data on channel j , during the measuring horizon and
prediction horizon, respectively; j ,k is the estimated
standard deviation of current prediction error, on channel j ;
m, j is the estimated standard deviation of noise e j on

The population of particles is denoted by P = {x p } p1, P .

measuring horizon. The SNRs are defined as follows:

( y [ k ] y

Despite the simplification applied to MIMO-ARMAX


models, their complexity could still be high. Even in case of
networks with small number of sensors, accurate prediction
requires large number of parameters to be identified. For
example, if ny = 4 , and the maximum values of structural
indices na (degree of A polynomials), nb (degree of B
polynomials), and nc (degree of C polynomials) is 30, then
the best predictor (in terms of PQ ) has to be selected

The performance of PARMAX predictor can be assessed by


means of prediction quality (PQ) criterion, which is defined
as follows, for any channel j 1, ny :

Ny

3. SELECTING OPTIMAL PREDICTORS VIA PSO

and (8) have to be iterated successively for any prediction


instant k . Moreover, next predicted values cannot be
estimated unless all output channels have previously been
predicted (since all inputs must first be predicted). So, before
approaching the next prediction step, all channels have to be
predicted at the current step. This mechanism expresses the
attempt to consider correlations between different outputs,
even though the MIMO-ARMAX model is composed by
several MISO-ARMAX models. (In case of isolated SISOARMA models, each channel can independently be predicted
on the whole prediction horizon, without waiting for the
other channels.)

1+

1
Ny

better the performance of PARMAX algorithm.

equation shows, predicted inputs are equal to predicted white


noises on prediction horizon N y + 1, N y + K . Equations (7)

k =1

By definition, predicted outputs are equal to measured


outputs on measuring horizon 1, N y . Obviously, as the last

100

( e j [ k ]) =

The bigger the norm of vector PQ = PQ1 " PQ ny , the

j , i ,1u i [ k 1] + " + j , i ,n u i [ k n] = u j [ k ].

PQ j =

Ny

p , y j is the standard deviation of data on prediction horizon

Positions of particles are actually accounted in P (as


vectors of some Euclidean space). Usually, the number of
particles ( P ) varies from 50 to 500. The population evolves
towards optimum through generations. At every generation,
particles take new positions, which can be updated by means
of additive corrections, like below:

and 2p , j is the estimated variance of overall prediction error.

x mp +1 = x mp + x mp +1 , p 1, P , m 0 ,

SNR m, j =

2
m, y j

& SNR m, j =

m, j

2
p, y j

(10)

p, j

where: m, y j is the standard deviation of measured data,

The latter is simply expressed below:


2p , j

2
1 K
= y j N y + k y j N y + k | N y .
K k =1

where m is the generation index. Corrections are computed


as displacements of particles with some speeds with T
delay, i.e.: x mp +1 = v mp +1 T . Speeds can also be updated:

(11)

As of j ,k , the following recursive equation has been

v mp +1 = mp v mp + mp ,c

proven:
2j ,k = 2j ,k 1 + 2m, j 2j ,k 1 , k N y + 1, N y + K ,

(14)

x mp ,0 x mp

mp ,+c1

+ ms

x mP ,0 x mp

ms +1

p 1, P , m 0 , (15)

(12)

Industrial Simulation Conference ISC-2009, Loughborough, United Kingdom, June 13, 2009
where:
mp [0,1] is the particle mobility factor;

In a similar manner, the relative social variance can be


evaluated. The absolute value leads to the relative value:
def
def
ms ms ,min
2
1 P m
m
m
ms =
x

2
. (23)

=
p P ,0
s
P p =1
ms ,max ms ,min

x mp,0 is the best position of particle, on its way from the

beginning to the current generation;


x mP ,0 is the best position reached by a particle of the

It is practically impossible to detect the transition delays.


Therefore, they are selected at random. More specifically,
the transition frequencies mp ,+c1 = 1/ mp ,+c1 (cognitive) and

whole population (from the beginning to the current


generation);
mp,c [0,2] is the normalized cognitive variance of

ms +1 = 1/ ms +1 (social) are randomly generated in ( 0,1/ T ] .

particle positions with respect to its best position;


ms [0,2] is the normalized social variance of all
particles positions with respect to the best population
position;
mp,+c1 T is the delay of particle transition from

Equation (15) is the searching engine of PSO strategy. Three


terms are contributing to update the speed. The first one is
based on the current speed. The weight applied by the
mobility factor shows that the former speed is strongly
attenuated when the particle is close to its best position. This
means the particle is rather attracted by such a position. The
second term quantifies the cognitive motivation of particle to
move, in terms of driven speed. As the population evolves,
every particle acquires some experience that can determine
its future behavior. As result of particle experience, the
cognitive speed becomes important when the trajectory is
drifted away with respect to its best position. Finally, the
third term expresses the influence of population on each
particle behavior, naturally referred to as social speed.
Depending on particle position versus population best
position and variance, the social speed increases either when
the population is dispersed or the particle is far away from
the best position.

current position to its best position;


ms +1 T is the delay of population transition from
current positions of its particles to the best population
position.
The PSO algorithm has been modified from its traditional
design, in order to match PARMAX. Thus, its parameters are
adaptively set, according to PQ criterion. The particles are
split in 4 parts, depending on the nature of structural indices
in PARMAX (which are degrees of polynomials, in fact):
x = nt xTARMA

xTam N 2 ny +5 ,

xTARMAX

(16)

where nt 0,5 is the degree of polynomial trend [Stefanoiu


2008c]. The other compounds in (16) are:

x ARMA = [ na0

x ARMAX = na nb1 " nbny 1

x am = n0

The evolutionary character of PSO algorithm is involved by


the randomly selected transition frequencies. Population can
thus escape from the capture of some local optimum, by
jumping onto another zone. Like most of the evolutionary
procedures based on populations, the trade-off between
diversity and convergence is important. Diversity of
population allows one to check for optimum in many zones
of searching space and, thus, to increase the chance of global
optimum finding. On the contrary, convergence (or particles
swarm) is necessary to avoid searching oscillations. The key
parameter of this trade-off monitoring is the absolute social
variance. Three populations can evolve in parallel: the
current one, the elite (that keeps all the best positions) and
the anti-elite (that keeps all the worst positions). Every time
the product between social variances of current generation
and elite overflows or underflows some bounds, the
diversity-convergence trade-off is unbalanced. Over-floating
points to abnormal increase of population diversity, i.e. to
oscillatory behavior. To reduce it, crossover between current
generation and elite can be performed. Under-floating is
caused by concentration of both populations around some
optimum, which may decrease the chance to reach for the
global optimum. In this case, diversity is increased by
performing crossover between current generation and antielite. By crossing over two particles x1 and x 2 with speeds
v1 and v 2 , respectively, two offspring are obtained:

nc0 ] N (for rough ARMA models); (17)


T

n n1

nc N ny +1

(for ARMAX models); (18)


T
" nny 1 N ny +1

(for AR and ARX approximating models); (19)


For example, if the number of channels is 4 ( ny = 4 ), then
every particle accounts 13 structural indices. Their values are
integer, so that the corrections in (14) have to be rounded to
the nearest integer.
The following definitions are given for arbitrarily set m 0
and p 1, P , in order to express the variables in (15). The
mobility factor is:
PQ x mp ,0 PQ x mp
=
,
PQ x mp ,0 PQ x mp ,1
m
p

(20)

where x mp,1 is the worst position of particle, on its way from


the beginning to the current generation. The relative
cognitive variance is computed in two steps. First, the
absolute variance is evaluated:
mp ,c =

1 m
x mp,0
m + 1 i =0

xip

).

(21)

x 1 = x1 + (1 )x 2 & x 2 = x 2 + (1 )x1 ,

(24)

Then the variance is normalized with respect to minimum


and maximum values, after updating them with (21):

with corresponding speed values:


v 1 = v1 + (1 )v 2 & v 2 = v 2 + (1 )v1 ,

(25)

def

mp,c = 2

mp ,c mp ,c ,min
mp ,c ,max mp ,c ,min

where [0,1] is selected at random (uniformly). When


crossover is applied on current population and elite or anti-

(22)

Industrial Simulation Conference ISC-2009, Loughborough, United Kingdom, June 13, 2009
elite, all of them of size P , the offspring population consists
of 2P particles. Only the most fitted ( P 1) offspring are
selected to complete the current population, after removing
all its particles, but the most fitted one. (Maybe this one is
the global optimum and must be kept.)

the test data set, the optimal structural indices are just
employed to identify a new model based on the whole data
set (i.e. including the test data). Usually, the prediction
performance decreases on the prediction horizon, comparing
to the test horizon.
The goal of implementation is to perform a comparison
between PARMA and PARMAX algorithms in terms of
prediction quality. If data from different channels are intercorrelated, PARMAX is expected to perform better than
PARMA.

The PSO algorithm is initiated to run starting from some


initial population (usually, uniformly distributed inside the
searching space). To stop the procedure, several tests can be
performed. Two very effective tests are the following: the
maximum number of iterations was touched (say 100) or the
most fitted particle succeeded to survive within the elite
population for several generations (say at least 5).

The application consists of temperatures monitoring in two


cities, which are located at 60 km each other, slightly below
the latitude of 45. For each city, minimum and maximum
temperatures are daily acquired, starting from November 23,
2007, until March 24, 2009. Data look like in Figure 3 and
were transmitted via internet to the central processing unit.

The overall strategy of PARMAX algorithm consists of the


following main steps:
1. Perform data acquisition on several channels.
2. Estimate the optimal SISO-ARMA prediction model (3)
for every channel (independently on the other channels).
In this case, the particle includes only the structural
indices of ARMA models, i.e.: nt , na0 , nc0 and n0 .
3. Perform prediction, like in (7) and (8). In this case, there
are no inputs, so the corresponding terms have to be
removed in equations (7) and (8).
4. Estimate the input signals (4) on measuring horizon, by
means of SISO-ARMA prediction models.
5. Estimate the optimal MISO-ARMAX models (5) from
output acquired data and input estimated data. This time,
the particle configuration is given by definition (16), i.e.
it includes the ARMA structural indices as well.
(ARMA indices previously estimated in step 2 are
cancelled.)
6. Perform prediction, according to equations (7) and (8).
Recall that predicted inputs are actually estimated white
noises.
Steps 2, 3 and 4 are not really necessary for PARMAX.
(They belong to PARMA.) Step 5 actually includes them.
Repeating them only for SISO-ARMA models allows
comparing the performance of both predictors. Note however
that optimal SISO-ARMA models in step 2 are usually
different from optimal SISO-ARMA models estimated inside
step 5, because the PQ criterion operates with different
predicted data.

Channel 4

Channel 3

Channel 2

Channel 1

Figure 3: Minimum and maximum temperatures of two cities


Given the short distance between cities and their
geographical position (in a middle of a plane), one can easily
notice correlations between the four channels. Beside this
feature, some other characteristics of data can also be
outlined. For example, noises are corrupting in a different
manner the channels. Therefore, data are, at the same time,
apparently independent. Another property is related to the
seasonal behavior. Normally, the measuring horizon is too
short to detect the main period (the acquisition period should
be almost twice). It follows that PQ will increase whenever
the prediction model is able to detect the right periodic
variation of each ts.
One of the most important advantages of PSO algorithm is
the possibility to perform the search either on a parallel
machine or on several computers of a network at the same
time. When using a single regular computer (e.g.
laptop/notebook), finding the optimal structure of prediction
model might be a lengthy operation. But ecological or
meteorological data are provided by slow systems. For
example, the temperature ts above are collected daily. For an
amount of 500 data per channel and a population of 10
particles per channel, PARMA runs about 30, while
PARMAX needs about one hour on a regular computer. On a
parallel machine, the delays are reduced approximately 8
times. In this research, the simulations were performed on 8
regular computers in a network. The population size ( P )
varied in range 5:15 particles per channel. Thus, practically,
the overall population included at least 20 particles per
computer, which means at least 160 particles. The other
configuration parameters have been set as follows:

4. SIMULATION RESULTS AND DISCUSSION

The PARMAX procedure has been implemented within


MATLAB environment. There are many implementation
details that cannot be described within this paper (but can be
found in [Stefanoiu 2008c]). One can only mention here the
strategy of optimal structural indices selection (for both
PARMA and PARMAX predictors). Obviously, the PQ
fitness function based on definitions (9) cannot be evaluated
unless data on prediction horizon are acquired as well. It
follows that all ARMA(X) models have to be identified from
N y K t data, instead of N y data. The last K t data are
preserved as test horizon for the PSO algorithm. More
specifically, after identification of some ARMA(X) model,
its prediction performance is tested on the last K t data
(which have not been involved in identification). Usually,
K t max{3, K / 2}, K . After selecting the best predictor on

Industrial Simulation Conference ISC-2009, Loughborough, United Kingdom, June 13, 2009
prediction horizon length ( K ): 5;
maximum number of generations ( M ): 100;
minimum survival factor ( S ): 5;
maximum degree of trend ( NT ): 5;
maximum structural index for AR part ( NA ): N y / 3 ;

The third variations of all figures are grouped in couples


(one for each channel). In order to focus on details, the
vertical axis has been scaled differently from a variation to
another. Actually, scaling is uniquely determined by the
confidence tube. Large aperture of tube usually involves
small value of PQ, even though the predicted values might
be close each other. Prediction on channels 2 and 3 is quite
remarkable (even at eastern end of prediction horizon,
where, usually, predicted values are less accurate). This is
somehow surprising, since the ts belong to different cities
and, moreover, are representing opposite temperatures
(maximum and minimum, respectively). But the correlations
between data are mostly hidden and cannot simply be read
on time variation, regardless the users experience.

maximum structural index for MA part ( NC ): N y / 3 ;


maximum structural index for X part ( NB ): N y / 2 ;
maximum structural index for AR part of approximating
models ( N ): N y / 2 ;
maximum structural index for X part of approximating
models ( N ): N y / 2 .

This leaves a large searching space for optimal structural


indices. The last K data have been removed completely.
They are accounted only after the final prediction data have
been estimated, in order to compute PQ. (Thus, when
searching for optimal structure of prediction model, only
N y Kt K data are employed.)

For data with less correlation than the above ones, the
superior performance of PARMAX over PARMA is not so
obvious. Usually, PARMAX performs better on some
channels only and its fitness (the norm of PQ) can even fall
below the PARMA fitness. In this case, PARMA should be
preferred, due to its smaller complexity and higher speed.

After running PARMA on the temperature ts (with


N y = 482 data), the best results are illustrated in Figures 4,

5. CONCLUSION

Lately, there is an increasing interest in handling and


monitoring distributed data, on different purposes. In case of
ecological or meteorological data, prediction is an important
goal. This article introduced a method of prediction based on
multi-dimensional identification models from ARMAX
class. An evolutionary strategy (PSO) was employed to
speed up the searching for optimum prediction model. The
resulting algorithm can be implemented on a mobile
computer. Prediction can thus directly be performed inside
the system that provides the data. Whenever the measuring
channels are correlated, multi-dimensional prediction models
should be constructed instead of singleton models for each
channel in isolation.

6, 8 and 10 (for each channel). In parallel, Figures 5, 7, 9 and


11 display the best results of PARMAX. Each of which
includes 3 variations: the original ts together with its optimal
trend (top), the estimated white noise on measuring horizon
(middle) and the zoom on prediction horizon (bottom). The
PQ values are depicted on the latter. One can see that:
PQTARMA = [67.83 53.66 49.11 66.52]

PQ ARMA 119.65 ;

PQTARMAX = [69.97 72.37 59.71 71.82]

PQ ARMAX 137.32 .

(26)
Since the correlation between channels is so obvious, the
superior performance of PARMAX versus PARMA is an
expected result. Beside this general remark, the simulation
results yield several insights.

REFERENCES

Kennedy J., Eberhart R. 1995. Particle Swarm


Optimization, IEEE International Conference on Neural
Networks, Piscataway N.J., USA, pp. 1942-1948.
Sderstrm T., Stoica P. 1989. System Identification,
Prentice Hall, London, UK.
Stefanoiu D., Petrescu C. 2008a. VISA A Versatile
Interface of Signal Acquisition and Wavelet Based Data
Fusion, Proc. of the 5-th Europe-Asia Mechatronics
Congress, Annecy, France, Paper no. 167.
Stefanoiu D., Culita J., Ionescu F. 2008b. FORWAVER
A Wavelet-Based Predictor for Non Stationary Signals,
Proc. of EUROSIS-ISC-2008, Lyon, France, pp. 377-381.
Stefanoiu D., Petrescu C. et al. 2008c. Numerical Models
and Fast Methods of Ecological Phenomena Prediction,
Res. Rep. CNMP.UPB-P4.31050-2007.II/DS.CP. AD.JC12.2008, Politehnica University of Bucharest, Romania.
Wang Z., Ziou D., et al. 2005. A Comparative Analysis of
Image Fusion Methods, IEEE Trans. on Geoscience and
Remote Sensing, Vol. 43, No. 6, pp. 1391-1402.

The fact the measuring horizon is not large enough to allow


detection of seasonal variation decreases the performance of
both predictors. As one can see from Figures 4, 5 and 9, the
trend tried to decode data periodicity by increasing the
polynomial degree to its maximum value. However, for the
other models the trend degree is bounded by 3. Normally, the
trend should not include the periodic variation, because
polynomials are unbounded in vicinity of infinity and, thus,
the prediction can fail very easily. In this application, higher
degree trend is accepted because the prediction horizon is
quite short, comparing to the measuring horizon. PARMA
detected a period on channel 3, since the ts is closer here to
symmetry than for the other channels. The period is almost
half of N y . Simulations have proven that, without seasonal
compound, PARMA systematically fails on channel 3.
Oppositely, PARMAX removed any seasonal variation and
tried to replace its contribution by colored noises.

ACKNOWLEDGMENTS

As already mentioned, data are affected by different noises


on different channels. The second variation of all figures
shows that the estimated SNR varies along channels. In
general, the higher PQ, the higher SNR and the smaller white
noise variance.

This research was developed with the support of National


Center for Programs Management (Romania), in the
framework of grant #31050/2007. The authors wish to
address its team grateful and special thanks.

10

Industrial Simulation Conference ISC-2009, Loughborough, United Kingdom, June 13, 2009

Figure 4: PARMA performance on channel 1

Figure 5: PARMAX performance on channel 1

Figure 6: PARMA performance on channel 2

Figure 7: PARMAX performance on channel 2

11

Industrial Simulation Conference ISC-2009, Loughborough, United Kingdom, June 13, 2009

Figure 8: PARMA performance on channel 3

Figure 9: PARMAX performance on channel 3

Figure 10: PARMA performance on channel 4

Figure 11: PARMAX performance on channel 4

12

Accepted for presentation at the 7-th International IEEE Conference on Control and Automation, IEEE-ICCA'09,
Christchurch, New Zealand, December 9-11, 2009

Identification of MIMO-ARMAX Models for Glycemia and


Sodium Ions Tests, through Particle Swarm Optimization
Dan Stefanoiu, Cristian Seraficeanu, Janetta Culita, Gheorghe Musca

Abstract In this article, the problem of multivariable data autoregressive identification is approached,
in view of prediction. Such data are especially provided
by natural phenomena with geographical distribution,
but could also be acquired from concentrated systems
with several outputs, like medical records of one or more
patients. Presumably, data are generated by the same
source and exhibit more or less correlations to each
other. Instead of processing each data set as an
independent time series, the whole data block can be seen
as the reaction of some open MIMO system to unknown
stimuli. Therefore, modeling and forecasting of system
behavior can rely on multi-dimensional ARMAX models.
Optimal structural indices of MIMO-ARMAX model are
found by means of an evolutionary strategy: Particle
Swarm Optimization.
I. INTRODUCTION

LTHOUGH the governing dynamics of many natural


phenomena is unknown, they can be assigned to
identification models [1], for some purpose. In this article,
the main purpose consists of behavior monitoring and/or
prediction of some medical records (like e.g. sodium ions
test and glycemia [2], [3]). The major requirement for the
success of this attempt is to capture consistent and coherent
data from patients. This involves performing accurate
measurements (under specific conditions) and acquiring
sufficient number of samples (at least few tens).
Nowadays, in medical praxis, a complete set of lab data
for one person relies on the basic metabolic panel (BMP),
also referred to as CHEM-7, which consists of seven blood
chemical tests [2]: four electrolytes (sodium Na + , potassium
K + , chloride Cl , bicarbonate HCO3 ), blood urea nitrogen
(BUN), creatinine and glucose. (Some BMPs also include a
Manuscript received on April 15, 2009. This work was supported by the
Romanian National Center for Programs Management (to which the authors
are addressing grateful thanks), under Grant #31050/2007.
D. Stefanoiu (Ph.D.) is with the University Politehnica of Bucharest,
Faculty of Automatic Control and Computer Science, SysIdSigPro Group
(Splaiul Independentei no.313, Sector 6, Bucharest-060042, Romania,
phone&fax: +40 21 316 9561; e-mail: danny@indinf.pub.ro).
C. Seraficeanu (M.D.) is with "N. Paulescu" National Institute for
Diabetes, Nutrition and Metabolic Diseases, Bucharest, Romania
(e-mail: cristianseraficeanu@yahoo.com).
J. Culita (Ph.D.) has the same affiliation as the first author above
(e-mail: jculita@yahoo.com).
G. Musca (Ph.D.) is with Fresenius Medical Care, Bucharest, Romania,
(e-mail: gheorghe.musca@fmc-romania.ro).

test for calcium Ca 2 + .) Among them, the tests for sodium


and glucose are extremely important.
Sodium is highly correlated with the hydration status of
the body, blood pressure and kidney function. The human
body regulates sodium level through water ingestion and a
hormone referred to as anti-diuretic. Hydration status is
determined by natremia (sodium concentration in serum).
Sodium also plays an essential role for the electrical activity
at cellular level. They are in charge with transmission of
nerve impulses, heart activity, and certain metabolic
functions. (Interestingly, although sodium is needed by
animals, which maintain high blood sodium and extracellular fluid sodium concentrations, the ions are not needed
by plants and is generally phytotoxic.) The normal level of
sodium varies between 135 and 147 mmol/L. Relative loss
of body water will cause sodium concentration to rise higher
than normal, a condition known as hypernatremia. This
ordinarily results in thirst. Conversely, an excess of body
water caused by drinking will result in smaller sodium
concentration in the blood (hyponatremia), causing a loss of
water. Cellular activity is however the most affected by
abnormal concentration of sodium, which might result in
irreversible damage of cell membranes.
Glucose is the most important source of metabolic energy
for the majority of cells, particularly for some of them (like
e.g. neurons and erythrocytes, which are almost totally
dependent on it). The concentration of glucose in the blood
is referred to as glycemia and is controlled by several
physiological processes. It tends to fluctuate to higher levels
after meals, due to the gastric and intestinal absorption of
carbohydrates of low molecular weight present in the diet or
broken down from other kinds of foodstuffs, such as starches
(polysaccharides). Lower levels are reached with usage by
catabolism, particularly after stress, temperature regulation
and physical exertion. Another input to glycemia levels is
gluconeogenesis, whereby glycogen stored in the liver and
skeletal muscles, or amino acids and lipids are converted to
glucose via several metabolic chains. Excess glucose is
converted to glycogen or to triglycerides for energy storage.
Physiologically, glycemia normally fluctuates within a
narrow range: 70-100 mg/dl. Excessively low levels are
classed as hypoglycemia. These may result from poor diet, or
as a side effect of diabetes medication. Excessively high
levels (e.g., 250 mg/dl or more) are classed as
hyperglycemia and are a particular threat to diabetes
sufferers. The brain requires a fairly stable glycemia in order
to function normally. Concentrations of less than about

261

Accepted for presentation at the 7-th International IEEE Conference on Control and Automation, IEEE-ICCA'09,
Christchurch, New Zealand, December 9-11, 2009

30 mg/dl or greater than about 300 mg/dl can produce


confusion, unconsciousness and convulsions.
Our research aimed to exploit the fact BMP lab data are
usually correlated, when provided by the same patient. Thus,
its medical evolution can be monitored with higher accuracy
by processing the BMP data in integrum than by processing
each parameter in isolation. It is even possible that patients
living together or being related each other provide correlated
medical records, especially if they complied with the same
testing rules, approximately at the same time. The goal of
this article is to prove that multi-dimensional identification
models (such as MIMO-ARMAX) are more accurate than
singleton models (such as SISO-ARMA) [1], in terms of
prediction quality, when processing BMP lab data.
The problem is to build both types of models and to
compare their performance on BMP data blocks. Two types
of correlations have been considered: between BMP
parameters and between related patients. The approach
described hereafter starts from the remark that data are
provided by an open and quasi-ubiquitous system, which is
stimulated by a set of unknown colored noises. The system
has in fact a continuous collection of variable states. Picking
a finite set of data from different points (e.g. patients and
their bodies) is equivalent to sampling the system both in
time and non temporal dimensions (such as spatial). While
the time sampling is governed by Shannon-Nyquist rules [4],
sampling the system over other dimensions is by far more
empirical. To the best of our knowledge, no general rules of
non temporal (or spatial) sampling are currently available.
However, apparently, simulations have shown that the
prediction quality is less affected by the sensors location
than by their number and patients condition.
This paper is structured as follows. Section 2 succinctly
describes the construction of MIMO-ARMAX predictors.
Section 3 is devoted to Particle Swarm Optimisation (PSO)
[5] an evolutionary technique to find optimal structural
indices of prediction model. The predictor performance is
demonstrated within the last section, for sodium and
glycemia monitoring. A conclusion and the references list
complete the article. (More details regarding the
construction of predictors can be found in [6].)
II. CONSTRUCTION OF MIMO-ARMAX PREDICTORS
In a previous research [7], a comparison between
classical prediction methods (based on ARMA modeling)
and a wavelet-based method has been realized. But the
analyzed ts were mono-variable. In case of multi-variable
time series (ts), the SISO-ARMA model can be extended to
a MIMO-ARMAX model, according to the rationale
described in this section.
Let Y = { y j } j1,ny be the set of ny ts, which are provided
by some synchronized distributed set of sensors and denote
the maximum number of acquired data by N y . It is then
T

possible to construct the output vector y = y1 " yny ,


which belongs to some MIMO system. Thus, a general

MIMO-ARMAX model can be assigned to data block Y :


A ( q 1 ) y B ( q 1 ) u + C ( q 1 ) e .

(1)

In equation (1), A R nyny ( q 1 ) , B R nynu ( q 1 ) and

C R nyny ( q 1 ) are matrix polynomials, u R nu is the input

vector (with nu channels) and e R ny is a vector of


Gaussian uncorrelated white noises. To identify the model
(1) from data Y , two main problems have to be solved,:
setting the model structure and estimating the input signals.
If all polynomials of matrices A , B and C are non null,
then identification is extremely difficult to perform. Firstly,
because the number of parameters to estimate is quite large
(even for small number of input-output channels). Secondly,
because the output channels are mixed within the AR part
(the left side of equation (1)). Therefore, some simplifying
hypotheses are necessary. One of the most natural
assumptions has been adopted within MATLAB environment:
each output varies independently on the other outputs, solely
as result of stimulation with inputs and noises. This means
the matrix A is diagonal. The second assumption regards
the white noises: since they are uncorrelated each other, only
one noise per output channel can be kept. Thus, the matrix
C is diagonal as well. As direct consequence of the two
hypotheses, the MIMO-ARMAX model can be split into ny
MISO-ARMAX models (with natural notations):
A j ( q 1 ) y j B j ( q 1 ) u + C j ( q 1 ) e j , j 1, ny .

(2)

This time, B j R1nu ( q 1 ) is a row vector of polynomials.


Identification of MIMO-ARMAX model reduces now to
estimation of parameters for each MISO-ARMAX model,
separately. Although models (1) and (2) are not equivalent
(in the second one, correlation between outputs was
removed), identification is now affordable. Despite the
isolation of output channels, as it will be shown, prediction
can be performed only when solving all equations (2) at each
step. Thus, correlations between outputs are indirectly
encoded by the collection of MISO-ARMAX models.
Obviously, since only the output data block Y is
available, it is necessary to derive a method for estimating
the input u . The main idea is to come back to the unknown
perturbations that stimulate the system to evolve. Since the
hidden correlations between output channels have been
removed, they can partially be reconsidered by selecting
colored noises of measured data as inputs. More specifically,
let {e j } j1,ny be the white noises corrupting the measured
data. By filtering, they are producing colored noises that
corrupt output channels. Since the perturbation of channel j
has already been accounted by the MA part of equations (2)
(the second right term), only noises of the other output
channels, {ei }i1,ny ,i j , are affecting the data through input
channels.

262

Consequently,

nu = ny 1

and

u i ei ,

Accepted for presentation at the 7-th International IEEE Conference on Control and Automation, IEEE-ICCA'09,
Christchurch, New Zealand, December 9-11, 2009

i 1, ny , i j . Practically, the matrix B (of (1)) has null


diagonal, in this case. The colored noises are then: v Be .
Since the filters to produce colored noises are unknown,
estimating inputs means estimating filters parameters.
Fortunately, the measured data encode the information
regarding colored noises. This allows identification of filters
with some accuracy. Given the equations of model (2), it is
natural to consider that filters belong to the same models
class. A simple assumption yields expressing the filters
equations: each output data set is a colored noise produced
by the corresponding white noise. Consequently, data for
each channel can roughly be modeled by means of a simple
ARMA filter:
A sj ( q 1 ) y j C sj ( q 1 ) e j , j 1, ny ,

(3)

where A sj and C sj are (singleton) polynomials for each


output channel j 1, ny . Identification of models (3) is
performed via Minimum Prediction Error Method (MPEM)
[1]. Moreover, the procedure based on MPEM returns
estimates of white noise values. (By convention, estimated
parameters or signals carry a hat over their notations.) After
identification of models (3), the prediction error on each
channel can be estimated. This error actually stands for the
input on some channel. More specifically:

( )

( )

s q 1 y + 1 C s q 1 e , i 1, ny , (4)
ui ei A
i
i
i

e j [ k ] = y j k | N y + j ,1 y j k 1| N y + " + j ,k N y 1 y j N y + 1| N y +
+ j , k N y y j N y + " + j ,n y j [ k n]

i =1, i j

A j (q

)y

B j (q

) u + C ( q ) e ,
1

j 1, ny ,

identification of model parameters and white noise values


relies on MPEM as well. Approximating ARX models
returns more refined estimated values of white noises:
n ( q 1 ) y
e j A
j
j

ny

i =1, i j

n ( q 1 ) u , j 1, ny ,
B
j ,i
i

(6)

and (8) have to be iterated successively for any prediction


instant k . Moreover, next predicted values cannot be
estimated unless all output channels have previously been
predicted (since all inputs must first be predicted). So, before
approaching the next prediction step, all channels have to be
predicted at the current step. This mechanism expresses the
attempt to consider correlations between different outputs,
even though the MIMO-ARMAX model is composed by
several MISO-ARMAX models. (In case of isolated SISOARMA models, each channel can independently be
predicted on the whole prediction horizon, without waiting
for the other channels.)
Equations (7) and (8) are the kernel of multi-dimensional
predictor, also referred to as PARMAX. Its performance can
be assessed by means of prediction quality (PQ) criterion,
which is defined as follows, for any channel j 1, ny :

i =1, i j

b j , i ,1u i [ k 1] + " + b j , i ,nb u i k nb j , i +

j ,i

+ c j ,1e j [ k 1] + " + c j ,nc j e j k nc j ;

[%],


1+

(9)

2
j ,k

k =1

m, j SNR m, j SNR p , j

where: SNR m, j and SNR p , j are signal-to-noise ratios of


data on channel j , during the measuring horizon and
prediction horizon, respectively; j ,k is the estimated
standard deviation of current prediction error, on channel j ;
m, j is the estimated standard deviation of noise e j on
measuring horizon. The SNRs are defined as follows:
SNR m, j =

2m, y j
2

& SNR m, j =

m, j

2p , y j
,
2

(10)

p, j

where: m, y j is the standard deviation of measured data,


p , y j is the standard deviation of data on prediction horizon

and 2p , j is the estimated variance of overall prediction error.


The latter is simply expressed below:
2
1 K
2p , j = y j N y + k y j N y + k | N y .
K k =1

y j k | N y = a j ,1 y j k 1 | N y " a j ,na j y j k na j | N y +
ny

100

PQ j =

where A nj and Bnj, i are polynomials with degrees n and


n , respectively. (Usually, n and n are sensibly larger
than the degrees of polynomials in (5).)
The optimal predictor is available after parameters
estimation. The following equations show how the output
predicted data are recursively computed, on a prediction
horizon of length K 1 (for any k N y + 1, N y + K ):

(8)

equation shows, predicted inputs are equal to predicted white


noises on prediction horizon N y + 1, N y + K . Equations (7)

(5)

where u R ny gathers all rough estimates of white noises


and B j , j 0 , j 1, ny . After estimation of inputs,

j , i ,1u i [ k 1] + " + j , i ,n u i [ k n] = u j [ k ].

By definition, predicted outputs are equal to measured


outputs on measuring horizon 1, N y . Obviously, as the last

Equations (4) allow not only estimating the inputs of model


(2), but also predicting them with sufficient accuracy. The
final running MIMO-ARMAX models are then:
1

ny

(11)

For j ,k , the following recursive equation has been proven:

(7)

263

2j ,k = 2j ,k 1 + 2m, j 2j ,k 1 , k N y + 1, N y + K ,

(12)

Accepted for presentation at the 7-th International IEEE Conference on Control and Automation, IEEE-ICCA'09,
Christchurch, New Zealand, December 9-11, 2009

where 2j , N y = 0 and { j ,k }kN are the coefficients of endless


(starting from
division between polynomials C j and A
j

Corrections are computed as displacements of particles


with some speeds within some delay T , i.e.:
x mp +1 = v mp +1 T . Speed values can also be updated:

their free terms). Obviously,


1
2m, j =
Ny

Ny

( e j [ k ]) =
2

k =1

1
Ny

Ny

(
k =1

y j [ k ] y j k | N y

v mp +1 = mp v mp + mp ,c

. (13)
T

The bigger the norm of vector PQ = PQ1 " PQ ny , the


better the performance of PARMAX algorithm.

among more than 3028 2.29 1041 identification models


(when accounting the rough SISO-ARMA models as well).
One copes thus with an NP hard optimization problem.
The problem can be approached by means of an
evolutionary strategy, based on some heuristic. From all
such strategies, the PSO [5] has been preferred, for the
convenient trade off between convergence speed and
algorithm complexity it exhibits. The principle of PSO is
illustrated in Figure 1.

whole population (from the beginning to the current


generation);
mp,c [0,2] is the normalized cognitive variance of
particle positions with respect to its best position;
ms [0,2] is the normalized social variance of all
particles positions with respect to the best population
position;
mp,+c1 T is the delay of particle transition from
current position to its best position;
ms +1 T is the delay of population transition from
current positions of its particles to the best population
position.
As a new feature, some of the parameters above are
adaptively set, according to PQ criterion. The particles are
split in 4 parts, depending on the nature of structural indices
in PARMAX (degrees of polynomials, in fact):

x ARMA = [ na0

Positions of particles are actually accounted in P (as


vectors of some Euclidean space). Usually, the number of
particles ( P ) varies from 50 to 500. The population evolves
towards optimum through generations. At every generation,
particles take new positions, which can be updated by means
of additive corrections, like below:
, p 1, P , m 0 ,

where m is the generation index.

xTARMAX

xTam N 2 ny +5 ,

(16)

nc0 ] N 2 (for rough ARMA models); (17)


T

x ARMAX = na nb1 " nbny 1

The searching technique described next is sensibly


modified with respect to the original algorithm from [5].
There are many new features that have been added and some
of the genuine features have been modified, so that the
searching algorithm matches the optimization problem of
PARMAX predictor.
The population of particles is denoted by P = {x p }p1, P .

= x + x

where nt 0,5 is the degree of polynomial trend. The other


compounds in (16) are:

Fig. 1. Principle of Particle Swarm Optimization. A population of


entities referred to as particles is initiated to run on some trajectories,
starting from initial positions. Trajectories are adaptively adjusted on the
run, according to some fitness function (that has to be optimized). The
goal is to concentrate (swarm) the population around some optimum of
fitness function and to increase the chance to find the global optimum.

ms +1

the beginning to the current generation;


x mP ,0 is the best position reached by a particle of the

x = nt xTARMA

m +1
p

x mP ,0 x mp

x mp,0 is the best position of particle, on its way from

Despite the simplification applied to MIMO-ARMAX


models, their complexity could still be high. Even the
number of data channels is small, accurate prediction
requires a large number of parameters to be identified. For
example, if ny = 4 , and the maximum values of structural
indices na (degree of A polynomials), nb (degree of B
polynomials), and nc (degree of C polynomials) is 30, then
the best predictor (in terms of PQ ) has to be selected

m
p

mp ,+c1

+ ms

p 1, P , m 0 , (15)
where:
mp [0,1] is the particle mobility factor;

III. SELECTION OF STRUCTURAL INDICES VIA PSO

m +1
p

x mp ,0 x mp

(14)

x am = n0

nc N ny +1

(for ARMAX models); (18)


T
n n1 " n ny 1 N ny +1

(for AR and ARX approximating models); (19)


For example, if ny = 4 , then every particle accounts 13
structural indices. Their values are integer, so that the
corrections in (14) have to be rounded to the nearest integer.
The following definitions are given for arbitrarily set
m 0 and p 1, P , in order to express the variables in (15).
The mobility factor is:
mp =

PQ x mp ,0 PQ x mp
,
PQ x mp ,0 PQ x mp ,1

(20)

where x mp,1 is the worst position of particle, on its way from


the beginning to the current generation.
The relative cognitive variance is computed in two steps.

264

Accepted for presentation at the 7-th International IEEE Conference on Control and Automation, IEEE-ICCA'09,
Christchurch, New Zealand, December 9-11, 2009

First, the absolute variance is evaluated:


mp ,c =

1 m
x mp,0
m + 1 i =0

xip

).

(21)

Then the variance is normalized with respect to minimum


and maximum values, after updating them with (21):
mp ,c mp ,c ,min

def

mp,c = 2

mp ,c ,max mp ,c ,min

(22)

In a similar manner, the relative social variance can be


evaluated. The absolute value leads to the relative one:
def

ms =

1 P m
x p x mP ,0
P p =1

def

ms = 2

ms ms ,min
ms ,max ms ,min

. (23)

It is practically impossible to detect the transition delays.


Therefore, they are selected at random. More specifically,
the transition frequencies mp ,+c1 = 1/ mp ,+c1 (cognitive) and
ms +1 = 1/ ms +1 (social) are randomly generated in ( 0,1/ T ]
(with uniform distribution).
Equation (15) is the searching engine of PSO strategy.
Three terms are contributing to update the speed. The first
one is based on the current speed. The weight applied by the
mobility factor shows that the former speed is strongly
attenuated when the particle is close to its best position. This
means the particle is rather attracted by such a position. The
second term quantifies the cognitive motivation of particle to
move, in terms of driven speed. As the population evolves,
every particle acquires some experience that can determine
its future behavior. As result of particle experience, the
cognitive speed increases when the trajectory is drifted away
with respect to its best position. Finally, the third term
expresses the influence of population on each particle
behavior, naturally referred to as social speed. Depending on
particle position versus population best position and
variance, the social speed increases either when the
population is dispersed or the particle is far away from the
best position.
The evolutionary character of PSO algorithm is involved
by the randomly selected transition frequencies. Population
can thus escape from the capture of some local optimum, by
jumping onto another zone. Like most of the evolutionary
procedures based on populations, the trade-off between
diversity and convergence is important. Diversity of
population allows one to check for optimum in many zones
of searching space and, thus, to increase the chance of global
optimum finding. On the contrary, convergence (or particles
swarm) is necessary to avoid searching oscillations. The key
parameter of this trade-off monitoring is the absolute social
variance. Three populations can evolve in parallel: the
current one, the elite (that keeps all the best positions) and
the anti-elite (that keeps all the worst positions). Whenever
the product between social variances of current generation
and elite overflows or underflows some bounds, the
diversity-convergence trade-off is unbalanced. Over-floating
points to abnormal increase of population diversity, i.e. to

oscillatory behavior. To reduce it, crossover between current


generation and elite can be performed. Under-floating is
caused by concentration of both populations around some
optimum, which may decrease the chance to reach for the
global optimum. In this case, diversity is increased by
performing crossover between current generation and antielite. By crossing over two particles x1 and x 2 with speeds
v1 and v 2 , respectively, two offspring are obtained:
x 1 = x1 + (1 )x 2 & x 2 = x 2 + (1 )x1 ,

(24)

with corresponding speed values:


v 1 = v1 + (1 )v 2 & v 2 = v 2 + (1 )v1 ,

(25)

where [0,1] is selected at random (uniformly). When


crossover is applied on current population and elite or antielite, all of them of size P , the offspring population consists
of 2P particles. Only the most fitted ( P 1) offspring are
selected to complete the current population, after removing
all its particles, but the most fitted one. (Maybe this one is
the global optimum and must be kept.)
The PSO algorithm is initiated to run starting from some
initial population (usually, uniformly distributed inside the
searching space). To stop the procedure, several tests can be
performed. Two efficient tests are the following: the
maximum number of iterations was touched (say 100) or the
most fitted particle succeeded to survive within the elite
population for several generations (say 8).
The overall strategy of PARMAX algorithm consists then
of the following main steps:
1. Perform data acquisition on several channels.
2. Estimate the SISO-ARMA prediction model (3) for
every channel (independently on the other channels), by
using the structural indices: nt , na0 , nc0 and n0 .
3. Estimate the input signals (4) on measuring horizon, by
means of SISO-ARMA prediction models.
4. Estimate the optimal MISO-ARMAX models (5) from
acquired output data and estimated input data. This
time, the remaining indices of definition (16) have to be
employed. Optimal indices are found via PSO.
5. Perform prediction, according to equations (7) and (8).
Recall that predicted inputs are actually estimated white
noises.
A similar (but simpler) procedure can lead to
identification of SISO-ARMA models as independent
predictors, also referred to as PARMA. Comparison between
PARMAX and PARMA predictors becomes thus possible.
IV. SIMULATION RESULTS AND DISCUSSION
Both algorithms (PARMA and PARMAX) have been
implemented in MATLAB environment. They were tested on
BMP lab data coming from several patients. In this article, a
block of 4 channels has been selected. The signals are
provided by 2 patients: a female (channels 1, 2) and a male
(channels 3, 4). They have been monitored simultaneously
for glycemia (channels 1, 3) and sodium (channels 2, 4), as
displayed in Figure 2.

265

Accepted for presentation at the 7-th International IEEE Conference on Control and Automation, IEEE-ICCA'09,
Christchurch, New Zealand, December 9-11, 2009

Channel 3
Channel 1

Channel 4

Channel 2

Fig. 2. BMP lab data from two patients. Data were sampled every
48 hours and the patients provided 193 samples. The last 5 samples were
hidden, in order to evaluate the performance of predictors. There is a
visible correlation between signals on the left side as well as between
signals on the right side. Also, hidden correlation might exist between
left and right sides.

There are many implementation details that cannot be


described within this paper. One can only mention here the
strategy of optimal structural indices selection (for both
PARMA and PARMAX predictors). Obviously, the PQ
fitness function based on definitions (9) cannot be evaluated
unless data on prediction horizon are acquired as well. It
follows that all ARMA(X) models have to be identified from
N y K t data, instead of N y data. The last K t data are
preserved as test horizon for the PSO algorithm. Here,
K t max{3, K / 2}, K . After selecting the best predictor, the
optimal structural indices are just employed to identify a
new model based on the whole data block (i.e. including the
test data). Usually, the prediction performance decreases on
the prediction horizon, comparing to the test horizon.
One of the most important advantages of PSO technique
is the possibility to perform the search either on a parallel
machine or on several computers of a network at the same
time. In this research, simulations were performed on 8
regular computers in a network. The population size ( P )
varied in range 515 particles per channel. Thus, practically,
the overall population included at least 20 particles per
computer, which means at least 160 particles.
After running PARMA on the 4 signals above, the best
results are illustrated in Figures 3, 5, 7 and 9 (for each
channel). In parallel, Figures 4, 6, 8 and 10 display the best
results of PARMAX. Each of which includes 3 variations:
the original ts together with its optimal trend (top), the
estimated white noise on measuring horizon (middle) and
the zoom on prediction horizon (bottom). The PQ values are
depicted on the latter. One can notice that:

PQTARMA = [42.09 42.68 49.62 52.2]


PQ

T
ARMAX

= [51.72 54.2 61.99 66.05]

PQ ARMA 93.7 ;
PQ ARMAX 117.55 .

The estimated SNR values confirm the visual observation.


(In general, the higher PQ, the higher SNR and the smaller
white noise variance.) Consequently, the prediction
performance is rather modest. Sodium variation is however
easier to predict than glycemia variation, as expected.
Human body reacts faster to glucose variation than to salt
variation. Also, males body is seemingly more stable than
females. This is the reason the prediction performance is
slightly superior for mans data. Moreover, the prediction
models are stable for man and at the stability limit for female
(some poles are located nearby the unit circle).
The third variations of all figures are grouped in couples
(one for each channel). In order to focus on details, the
vertical axis has been scaled differently from a variation to
another. Actually, scaling is uniquely determined by the
confidence tube. Although the predicted values apparently
are close each other, large aperture of tube involves small
value of PQ. PARMAX has superior performance than
PARMA. This assessment is proven not only by the
displayed predicted data, but by the fact that PARMAX was
better than PARMA on the overwhelming simulations.
V. CONCLUSION
Lately, there is an increasing interest in handling and
monitoring distributed medical data records. This article
introduced a method of prediction based on multidimensional identification models from ARMAX class. An
evolutionary strategy (PSO) was employed to speed up the
searching for prediction model, at the expense of suboptimality. If the measuring channels are correlated, multidimensional identification models should be employed
instead of singleton ones, in order to perform prediction. As
future work, one can switch to wavelet based models or to
Kalman filtering, in order to increase the prediction
performance.
REFERENCES
[1]
[2]
[3]

[4]

[5]

[6]

(26)
As a general remark, all 4 signals are corrupted by noises
with different intensities (higher for female than for male).

[7]

266

Sderstrm T., Stoica P., System Identification, Prentice Hall, London,


UK, 1989.
Rao A.D. et al., First Aid for the USMLE Step 1, McGraw-Hill
Medical, 2007.
Osanai T., Fujiwara N., et al., "Relationship between Salt Intake,
Nitric Oxide and Asymmetric Dimethylarginine and Its Relevance to
Patients with End-Stage Renal Disease", Blood Purification, Vol. 20,
pp. 466468, 2002.
Proakis J.G., Manolakis D.G., Digital Signal Processing. Principles,
Algorithms and Applications., third edition, Prentice Hall, Upper
Saddle River, New Jersey, USA, 1996.
Kennedy J., Eberhart R., Particle Swarm Optimization, in Proc. of
IEEE International Conference on Neural Networks, Piscataway
N.J., USA, 1995, pp. 1942-1948.
Stefanoiu D., Petrescu C. et al., Numerical Models and Fast Methods
of Ecological Phenomena Prediction, Res. Rep. CNMP.UPBP4.31050-2007.II/DS.CP. AD.JC-12.2008, Politehnica University
of Bucharest, Romania, 2008.
Stefanoiu D., Culita J., Ionescu F., FORWAVER A Wavelet-Based
Predictor for Non Stationary Signals, in Proc. of EUROSIS-ISC2008, Lyon, France, 2008, pp. 377-381.

Accepted for presentation at the 7-th International IEEE Conference on Control and Automation, IEEE-ICCA'09,
Christchurch, New Zealand, December 9-11, 2009

Fig. 3. PARMA performance on channel 1 (glycemia female).

Fig. 4. PARMAX performance on channel 1 (glycemia female).

Fig. 5. PARMA performance on channel 2 (sodium ions female).

Fig. 6. PARMAX performance on channel 2 (sodium ions female).

267

Accepted for presentation at the 7-th International IEEE Conference on Control and Automation, IEEE-ICCA'09,
Christchurch, New Zealand, December 9-11, 2009

Fig. 7. PARMA performance on channel 3 (glycemia male).

Fig. 8. PARMAX performance on channel 3 (glycemia male).

Fig. 9. PARMA performance on channel 4 (sodium ions male).

Fig. 10. PARMAX performance on channel 4 (sodium ions male).

268

RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>

Bibliografie
[BaG87]
[CDF92]
[CoL95]
[CoWi92]
[DaI88a]
[DaI88b]
[DaI90]
[DHRS03]
[DaLa88a]
[DaLa88b]
[DSD09]

[DPJ98]
[GoI86]
[IoV85]
[KeEb95]
[LaWM90]
[LePG88]
[MaS89]

Battle G. A Block Spin Construction of Ondelettes: I. Lemari Functions.,


Communications in Mathematical Physics, No. 110, pp. 601-615, 1987.
Cohen A., Daubechies I., Feauveau J.C. Biorthogonal Bases of Compactly
Supported Wavelets, Communications on Pure and Applied Mathematics, No.
XLV, pp. 485-560, 1992.
Cohen L. Time-Frequency Analysis. Prentice Hall, New Jersey, USA, 1995.
Coifman R., Wickerhauser M.V. Entropy-Based Algorithms for Best Basis
Selection, IEEE Transactions on Information Theory, Vol. 38, No. 2,
pp. 713-718, March 1992.
Daubechies I. Orthonormal Bases of Compactly Supported Wavelets,
Communications on Pure and Applied Mathematics, No. XLI, pp. 909996,
1988.
Daubechies I. Time-Frequency Localization Operators A Geometric PhaseSpace Approach. IEEE Transactions on Information Theory, Vol. 34, No. 4,
pp. 605-612, July 1988.
Daubechies I. The Wavelet Transform, Time-Frequency Localization and
Signal Analysis. IEEE Transactions on Information Theory, Vol. 36, No. 9,
pp. 961-1005, September 1990.
Daubechies I., Han B., Ron A., Shen Z. Framelets: MRA-Based
Constructions of Wavelet Frames, Applied and Computational Harmonic
Analysis, No. 14, pp. 1-46, 2003.
Daubechies I., Lagarias J. Two Scale Difference Equations: I. Existence and
Global Regularity of Solutions., SIAM Journal of Mathematical Analysis, Vol. 22,
pp. 1388-1410, 1991.
Daubechies I., Lagarias J. Two Scale Difference Equations: II. Local
Regularity, Infinite Products of Matrices and Fractals. SIAM Journal of
Mathematical Analysis, Vol. 23, pp. 1031-1079, 1992.
Dumitracu A., tefnoiu D., Dobrescu A.S. Intelligent Control and Monitoring
Systems for Greenhouse Environment, The 17-th International Conference on
Control Systems and Computer Science, CSCS-17 (ISSN 2066-4451),
Bucharest, Romania, pp. 383-388 (Vol. 2), May 2629, 2009.
Dumitrescu B., Popeea C., Jora B. Metode de calcul numeric matriceal
Algoritmi fundamentali, Editura All Educational, Bucureti, Romnia, 1998.
Gohberg I. Schr Methods in Operator Theory and Signal Processing,
Birkhauser Verlag, Stuttgart, Germania, 1986.
Ionescu V. Teoria Sistemelor. Sisteme Liniare., Editura Didactic i
Pedagogic, Bucureti, Romnia, 1985.
Kennedy J., Eberhart R. Particle Swarm Optimization, IEEE International
Conference on Neural Networks, Piscataway New Jersey, USA,
pp. 1942-1948, 1995.
Lawton W.M. Tight Frames of Compactly Supported Wavelets, Journal of
Mathematichal Physics, No. 31, pp. 1998-1901, 1990.
Lemari P.G. Ondelettes localisation exponentielle, Journal des
Mathmatiques Pures et Appliqus, No. 67, pp. 227-236, 1988.
Mallat S. A Theory for Multiresolution Signal Decomposition: the Wavelet
Representation., IEEE Transactions on Pattern Analysis and Machine
Intelligence, Vol. ll, No. 7, pp. 674-693, July 1989.
269

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

[MaS99]
[MeY87]
[MiM95]
[MuR07]
[NiM00]
[NDS07]

[OvMo96]
[PCS09]

[PrMa96]

[RuNo95]
[ScI17]
[ShC48]
[SoSt89]
[StD95]
[StCu08]

[StCu09a]

[StCu09b]

[SCI08]

[SCS05]

Mallat S. A Wavelet Tour of Signal Processing, Academic Press, San Diego


(second edition), 1999.
Meyer Y. Les ondelettes, Pitman Res. Notes Math. Series, Vol. 155, pp.158171, 1987.
Mitchell M. An Introduction to Genetic Algorithms, The MIT Press,
Cambridge, Massachusetts, USA, 1995.
Munteanu R. Reele wireless, PRINTECH, Bucureti, 2007.
Niedzwiecki M. Identification of Time-Varying Processes, John Wiley & Sons,
Chicester, UK, 2000.
Nitu C., Dumitracu A., tefnoiu D. Modele conceptuale i analitice ale
sistemelor ecologice, Raport de cercetare CNMP.UPB-P4.31050-2007.I/CN.AD.DS12.2007, Universitatea Politehnica din Bucureti & Centrul Naional de
Management de Programe, Romnia, Decembrie 2007.
http://www.geocities.com/endeavour_DS/Projects
van Overschee P., de Moor B. Subspace Identification of Linear Systems:
Theory, Implementation, Applications, Kluwer Academic Publishers, 1996.
Perkovic T., Cagalj M., Stancic I., Malisa L. Multichannel Protocols for UserFriendly and Scalable Initialization of Sensor Networks, The 5-th International
Conference on Security and Privacy in Communication Networks
(SecureComm), Athens, Greece, September 14-17, 2009.
Proakis J.G., Manolakis D.G. Digital Signal Processing. Principles,
Algorithms and Applications., third edition, Prentice Hall, Upper Saddle River,
New Jersey, USA, 1996.
dRussel S.J., Norvig P. Artificial Intelligence A Modern Approach, Prentice
Hall, Upper Saddle River, New Jersey, USA, 1995.
Schr I. On Power Series which Are Bounded in the Interior of the Unit Circle,
Reine Angewandte Mathematik Berlin, Vol. 147, pp. 205-232, 1917.
Shannon C. A Mathematical Theory of Communication, Bell Systems
Technical Journal, Vol. 27, pp. 379-423 & 623-656, 1948.
Sderstrm T., Stoica P. System Identification, Prentice Hall, London, 1989.
tefnoiu D. Analiz de semnal prin metode de tip frecven-timp, Tez de
doctorat, Universitatea Politehnica din Bucureti, Romnia, Aprilie 1995.
tefnoiu D., Culi J. Signal Compaction by Maximum Verisimilitude,
University of Bucharest Scientific Bulletin, C Series Electrical Engineering
(ISSN: 1454-234x), Vol. 70, No. 3, pp. 5974, June 2008.
tefnoiu D., Culi J. Kalman Filtering of Distributed Time Series, The 17-th
International Conference on Control Systems and Computer Science,
CSCS-17 (ISSN 2066-4451), Bucharest, Romania, pp. 101-108 (Vol. 1),
May 2629, 2009.
tefnoiu D., Culi J. PARMAX A Predictor for Distributed Time Series,
Industrial Simulation Conference ISC-2009, Loughborough, U.K., A publication
of EUROSIS-ETI (ISBN 978-90-77381-4-89), pp. 5-12, June 13, 2009 (ISIThomson and INSPEC referenced).
tefnoiu D., Culi J., Ionescu F. FORWAVER A Wavelet-Based Predictor
for Non Stationary Signals, Industrial Simulation Conference ISC-2008, Lyon,
France, A publication of EUROSIS-ETI, pp. 377-381, June 911, 2008 (ISIThomson and INSPEC referenced).
tefnoiu D., Culi J., Stoica P. Fundamentele modelrii i identificrii
sistemelor, Editura Printech, Bucureti, Romnia, 2005.
270

RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>

[SPDC08] tefnoiu D., Petrescu C., Dumitracu A., Culi J. Modele numerice i
metode rapide de predicie a fenomenelor ecologice, Raport de cercetare
CNMP.UPB-P4.31050-2007.II/DS.CP.AD.JC-12.2008, Universitatea Politehnica din
Bucureti & Centrul Naional de Management de Programe, Romnia,
Decembrie 2008.
http://www.geocities.com/endeavour_DS/Projects
[SSCM09] tefnoiu D., Seraficeanu C., Culi J., Musc Gh. Identification of MIMOARMAX Models for Glycemia and Sodium Ions Tests, through Particle Swarm
Optimization, accepted at the 7-th International IEEE Conference on Control
and Automation, IEEE-ICCA'09, Christchurch, New Zealand, December 9-11,
2009 (ISI-Thomson referenced).
[StSt07] tefnoiu D., Stnil O. Matematic i Prelucrare de Semnal Analiz
timp-frecven-scal cu undine, Editura Printech, Bucureti, Romnia, 2007.
[SSP09] tefnoiu D., Stnil O., Popescu D. Undine Teorie i aplicaii, sub tipar
la Editura Academiei Romne, Bucureti, Romnia, 2009.
[VaPP93] Vaidyanathan P.P. Multirate Systems and Filter Banks, Prentice Hall, S.P.
Series (editor: A.V. Oppenheim), 1993.
[ZiH80]
Zimmermann H. OSI Reference Model The ISO Model of Architecture for
Open Systems Interconnection, IEEE Transactions on Communications,
Vol. 28, No. 4, pp. 425-432, April 1980.

271

Algoritmi evoluai de identificare i predicie a fenomenelor ecologice

272