GridMOSI:Mod/GridWident
< GridMOSI:Mod
Cuprins |
Descrierea problemei şi a metodelor de rezolvare utilizate
Aplicaţia Grid de determinare a unor modele matematice pentru sisteme neliniare de tip Wiener include algoritmi operând pe datele de intrare-ieşire existente sau generate, prin experimente dedicate, ale variabilelor sistemelor sau proceselor dinamice. Se pot folosi, aşadar, înregistrările disponibile în mod curent pentru urmărirea evoluţiei proceselor. Această abordare, de determinare a modelelor matematice din datele de intrare-ieşire, se numeşte identificarea sistemelor. Pentru fiecare proces modelat, aplicaţia generează un model de sistem multivariabil discret, liniar invariant în timp (LIT), descris în spaţiul stărilor şi un model de tip reţea neurală cu un strat ascuns, corespunzător părţii neliniare a procesului. Ordinul subsistemului liniar, n, şi numărul de neuroni utilizaţi pot fi impuse de utilizator, dar n poate fi determinat automat de aplicaţie.
Din punct de vedere tehnic, pentru determinarea părţii liniare se folosesc abordări specifice de determinare a unui subspaţiu de stare, în speţă, MOESP (Multivariable Output Error state SPace), N4SID (Numerical algorithm for Subspace State Space System IDentification) şi combinaţia acestora. Abordările bazate pe subspaţii pentru identificarea sistemelor sunt atractive din mai multe motive: se estimează direct modele de stare; nu sunt necesare parametrizări; se utilizează doar instrumente robuste de algebră liniară, cum ar fi descompunerea QR şi descompunerea după valorile singulare (DVS); trebuie ales doar un parametru, s, o margine superioară a ordinului modelului liniar. Pentru determinarea părţii neliniare se folosesc algoritmi Levenberg-Marquardt specializaţi, care exploatează structura particulară a problemei. Prin ordonarea corespunzătoare a variabilelor problemei de optimizare, matricea Jacobian asociată are o structură semi-unghiulară: este bloc-diagonală plus o ultimă bloc-coloană densă. De remarcat că fiecare iteraţie a algoritmilor de optimizare implică simularea sistemului neliniar modelat pe întreg orizontul de timp considerat.
Din punct de vedere practic, procedurile de identificare a sistemelor prin tehnici de subspaţii implică triunghiularizarea ortogonală a unei matrice rectangulare structurate, de mari dimensiuni, determinarea valorilor singulare ale unei matrice, rezolvarea unor sisteme de ecuaţii algebrice liniare, calculul unor factorizări de matrice etc. Pentru determinarea părţii neliniare, este necesară rezolvarea unor probleme de tipul celor mai mici pătrate neliniare.
Date de intrare şi ieşire
Datele de intrare definesc opţiunile de rezolvare (parametrii asociaţi metodei utilizate, ordinul dorit, configuraţia de procesoare, dimensiunea blocurilor, numărul maxim de iteraţii, toleranţe etc.), opţiunile de listare/memorare a rezultatelor, dimensiunile problemei şi numele fişierului conţinând matricele de date (traiectoriile variabilelor de intrare U şi de ieşire Y ale sistemului). Matricele sunt stocate în ordinea coloanelor, iar fiecare linie din fişier conţine un singur element al unei matrice.
Datele de ieşire sunt: parametrii reţelei neurale care modelează partea neliniară; parametrii care modelează partea liniară în forma normală de ieşire; estimaţia stării iniţiale a sistemului liniar; parametrii de performanţă: numărul de iteraţii, numărul de evaluări de funcţii, numărul de evaluări ale matricelor Jacobian etc. Matricele calculate pot fi listate şi/sau memorate într-un fişier specificat.
Implementarea în mediul Grid
Justificare
Adesea, înregistrările disponibile ale evoluţiei variabilelor de intrare şi ieşire ale unor procese fizice, chimice, biologice, financiare etc., depăşesc sute de mii sau chiar milioane de eşantioane. De asemenea, tendinţa actuală este de a include în modelele matematice orice detalii dinamice semnificative, ceea ce impune adoptarea unor ordine mari pentru modelele de determinat. În plus, numărul de variabile de intrare şi ieşire este din ce în ce mai des de ordinul zecilor sau sutelor. Toate aceste elemente fac ca problema identificării sistemelor să aibă o mare complexitate de calcul.
Soluţia de implementare
Aplicaţia GridWident are la bază unele implementări din biblioteca SLICOT , disponibilă public pentru utilizări academice. Se utilizează nucleele paralele din ScaLAPACK şi PBLAS, folosind standardul MPI. La nivelul inferior, s-au folosit rutinele BLAS optimizate produse de pachetul ATLAS. Rutinele au fost generate/selectate folosind şi opţiunea pentru utilizarea execuţiilor paralele (threads), cât şi opţiunea SSE2.
Cerinţe privind infrastructura Grid
Aplicaţia GridWident necesită rutinele MPI (Message Passing Interface), cât şi rutine ScaLAPACK şi cele apelate de acestea, din bibliotecile LAPACK, BLAS, PBLAS şi BLACS (BLAS pentru comunicaţie). Nu există cerinţe hardware la nivel de Grid / nod de lucru (cum ar fi viteză CPU, memorie, conectivitatea reţelei), dar sunt de dorit performanţe superioare (incluzând cele furnizate de bibliotecile optimizate de nivel inferior, BLAS şi BLACS).
Interfaţa de utilizare
Aplicaţia oferă mai multe opţiuni pentru selectarea metodei folosite (algoritmi specializaţi de gradienţi conjugaţi, sau utilizând factorizări Cholesky sau QR exploatând structura), sau a modului de iniţializare a algoritmilor (toate variabilele, sau numai cele corespunzătoare părţii liniare sau neliniare).
Informaţiile principale care trebuie furnizate de utilizator prin interfaţă sunt:
- Opţiunea de iniţializare (sau nu) a parametrilor părţii liniare şi/sau a părţii neliniare;
- Numărul de bloc-linii, s, pentru a estima partea liniară;
- Opţiunea de specificare (sau nu) a ordinului dorit;
- Numărul de neuroni utilizaţi pentru a aproxima partea neliniară;
- Numele fişierului conţinând matricele de date;
- Dimensiunea NB a blocurilor matricelor;
- Numărul de procesoare de utilizat;
- Numărul maxim de iteraţii;
- Optiunea de listare a iteratelor;
- Toleranţele folosite.
Mai precis, interfaţa de utilizare este determinată de un fişier şablon, citit de programul aplicaţiei pentru a defini opţiunile şi datele problemei. Acest fişier este prezentat detaliat în documentaţia de utilizare.
Avantaje
Folosirea unei configuraţii Grid este avantajoasă la rezolvarea unor probleme de dimensiuni mari, de pildă, cu sute de mii sau milioane de eşantioane de date I/O, sau cu sute de stări şi zeci de intrări, ieşiri şi neuroni. Astfel de sisteme există în practică, dar nu au fost însă făcute experimente de identificare.
Potenţialul de utilizare
Descrierea rezultatelor
Actualmente, aplicaţia GridWident furnizează ca rezultate esenţiale vectorul parametrilor (conţinând parametrii părţii neliniare, urmaţi de cei ai părţii liniare, în reprezentarea formei normale de ieşire, şi urmaţi de estimaţia stării iniţiale a sistemului liniar), cât şi parametrii de performanţă: numărul de iteraţii, numărul de evaluări de funcţii, numărul de evaluări ale matricelor Jacobian. În viitor, vor fi furnizate separat matricele A, B, C şi D ale sistemului dinamic LTI discret şi vectorul estimaţiei stării iniţiale, pe lângă parametrii părţii neliniare.
Evaluarea impactului ştiinţific şi social
n afara domeniilor tradiţionale, cum ar fi ramurile industriale de vârf (aeronautică şi astronautică, electronică, industria de automobile, industria chimică şi farmaceutică, etc.), modelarea sistemică a pătruns şi în domeniile netehnice, cum ar fi biologia sau finanţele. Ca atare, comunitatea de utilizatori ai aplicaţiei GridWident cuprinde cercetători, analişti şi proiectanţi din toate domeniile care folosesc modele matematice ale sistemelor, cât şi din învăţământul universitar de profil.
