210 likes | 350 Views
Giulia Deolmi, Fabio Marcuzzi ; Università di Padova, Padova (Italy) Email : giulia.deolmi@libero.it Silvia Poles ; ESTECO, Padova (Italy) Sergio Marinetti ; Istituto per le Tecnologie della Costruzione, CNR Padova (Italy). Applicazione degli algoritmi genetici
E N D
Giulia Deolmi, Fabio Marcuzzi; Università di Padova, Padova (Italy) Email : giulia.deolmi@libero.it Silvia Poles; ESTECO, Padova (Italy) Sergio Marinetti; Istituto per le Tecnologie della Costruzione, CNR Padova (Italy) Applicazione degli algoritmi genetici alla stima della corrosione mediante termografie
z z0 q l o y d z=0 x q -z0 q y S l Dc d x o d = sensori termici suddivisione più fine di S: Sh Problema e ipotesi di lavoro • Lastra metallica di materiale e dimensioni noti • Interagisco solo con una faccia S, dotata di una matrice di sensori termici Investo S con un flash termico q e raccolgo i dati sperimentali • La corrosione è uniforme lungo z 2D • Dc / S adiabatico • N numero di sensori su S Sh SCOPO: ricostruire il profilo di corrosione incognito a partire dai dati sperimentali
Griglia ottimale y S q l y S Dc l f(x) Dc altezza scalino = profondità della corrosione nell’intervallo f(x) d o x d d o = sensori termici suddivisione più fine di S: Sh = suddivisione ottimale di S d x • Il profilo di corrosione è descritto da una funzione a scalino f Sia G la griglia costruita su Dc a partire da She con passo costante dy Costruisco su G un modello numerico FEM che risolva l’equazione del calore ho una stima delle temperature su Sh Ricostruire il profilo reale di corrosione equivale a determinare f tale che i residui siano minimi OSSERVAZIONE: se N>>1 è impensabile usare Sh !!! Dobbiamo determinare Shtale che i nodi di siano i punti di discontinuità di f. A partire da costruiamo G’ e usiamo il modello FEM su questa
OSSERVAZIONE: dapprima consideriamo una lastra non corrosa (f 0), registriamo le temperature sperimentali e stimiamo i residui, per avere un valore di riferimento che rappresenta la precisione massima del nostro modello • La corrosione non modifica il modello FEM ma solamente il dominio Dc f è identificata dalla suddivisione e dalla profondità di ogni scalino, quindi i problemi da appontare sono: 1) Determinare che descrive f con il minor numero di nodi: OUTER LOOP 2) Per ogni fissato, determinare la profondità di ogni scalino : INNER LOOP Ottimizzazione non lineare Raffinamento locale Strumenti fondamentali Algoritmi genetici
Detto e il residuo della stima delle temperature sperimentali, l’algoritmo cerca il profilo che minimizza la funzione di costo non lineare: Per approfondimenti sul PEM si veda ad esempio [1]. Impostazione del problema Ad ogni parametro corrisponde una precisa zona spaziale del profilo di corrosione L’ampiezza di questa zona non può essere troppo grande per assicurare la convergenza ad una stima sufficientemente accurata del profilo di corrosione Consideriamo la situazione di parametri non sovrapposti Inner loop Il ciclo interno si basa su un metodo di ottimizzazione non lineare: Prediction Error Method (PEM).
y S S y l l S l applico PEM: Dc d Dc o o x d x Dc d = nuova suddivisione = suddivisione iniziale 0 o x d Raffino localmente la suddivisione dove c’è corrosione maggiore dell’iterazione precedente Stimo la corrosione su ogni segmento Parto con corrosione nulla Outer loop 1) Il metodo della bisezione: esempio di raffinamento locale Ipotesi: 0 Sh, f00 Sia i-1 ={0,xi-1,1,…, xi-1,k,...,1 } suddivisione all’iterazione i-1. Iterazione i: applico il PEM a i-1. k t.c. la corrosione stimata in [xi-1,k,xi-1,(k+1)] sia maggiore dell’iterazione i-1, e |xi-1,k-xi-1,(k+1)|>dx, i=i-1 1/2(xi-1,k+xi-1,(k+1))
c. b. 2) Gli algoritmi genetici Sottoinsiemi della suddivisione più fine Sh={0,x1,…, xk,…, xN-2,1 } Successioni binarie di N elementi, • OBIETTIVI: cerco ottimale t.c. • Il corrispondente abbia il numero minimo di nodi; • Minimizzi la funzione di costo, cioè la norma del vettore N dimensionale dei residui calcolati a partire da e dalla stima dei parametri. Per approfondimenti sugli AG si veda per esempio [2].
Problemi di piccola dimensione Aspetti fondamentali • La parametrizzazione copre tutto il dominio, quindi la copertura avviene in modo DETERMINISTICO • L’outer loop deve SOLO a regolare l’adattamento della parametrizzazione • Come vedremo algoritmi genetici confrontati col raffinamento locale risultano troppo costosi
Strutture dati della parametrizzazione Per problemi di piccola dimensione: suddivisione = (1 ,0 ,1 ,1 ,0 ,0 ,1 ,1 ,1, 1, 1) Segmenti su cui stimo i parametri - gli 1 definiscono , cioè i nodi della mesh più fine che considero - ogni parametro rappresenta la profondità sul segmento compreso tra due 1 del vettore.
Esempio Applichiamo i metodi allo stesso problema simulato numericamente, con N=11. Il profilo di corrosione da stimare è indicato in figura e la suddivisione ottima è: = (1,0,1,1,0,0,1,1,1,1,1) Quali sono i risultati dei due metodi? Bisezione Dopo qualche decina di minuti il metodo converge alla soluzione: non individua la ottimale, pur stimando correttamente i parametri
Algoritmi genetici Utilizziamo MOGA implementato in modeFRONTIER La mesh ottimale sta sul fronte di Pareto (è il punto 257) inoltre le generazioni tendono a convergere al fronte. PROBLEMA: il metodo è molto lento (diverse ore per un problema di dimensione ridotta)
Vediamo ora cosa succede con un problema sperimentale con il raffinamento locale Dati sperimentali forniti dal CNR
E’ un algoritmo veloce • tende a raffinare troppo, allontanandosi dalla suddivisione ottimale • non riconosce i minimi locali (non è robusto) • è puramente deterministico • Forniscono una visione globale del problema, attraverso il fronte di Pareto • Sono in grado di gestire i minimi locali • la convergenza al fronte di Pareto è molto lenta • Hanno una componente probabilistica I due metodi a confronto Bisezione Algoritmi genetici
ABBIAMO BISOGNO DI UNA STRATEGIA DIVERSA Osservazioni Vorremmo ridurre il tempo di convergenza degli algoritmi genetici Se si conosce con sufficiente accuratezza il valore di costo della ottimale, si può utilizzare un solo obiettivo e imporre che la funzione di costo stia in un certo intervallo molto piccolo. Tuttavia un approccio di questo tipo non risolve in modo sostanziale il problema.
Problemi di grande dimensione Aspetti fondamentali • Per limitare il carico computazionale il numero di parametri deve restare contenuto • la zona spaziale di ogni parametro non può essere troppo grande QUINDI La copertura avviene in modo PROBABILISTICO • L’ outer loop deve trovare un modo efficiente per analizzare TUTTO il dominio, con basso margine di rischio, mediante parametrizzazioni SPARSE • QUI GLI ALGORITMI GENETICI DANNO UN CONTRIBUTO FONDAMENTALE NEL TROVARE IN MODO EFFICIENTE ZONE CORROSE SU UN DOMINIO ESTESO
Strutture dati della parametrizzazione Per problemi di grande dimensione siamo in presenza di vettori sparsi quindi un approccio come quello precedentemente introdotto non è corretto perché tenderebbe a mediare la corrosione presente in un intervallo ampio del dominio. Per problemi di grande dimensione: suddivisione = (0 ,0 ,0 ,0 ,0 ,0 ,0 ,1 ,0, 0, 1) pixel = (1 ,0 ,0 ,0 ,0 ,0 ,1 ,1 ,0, 1, 1) - gli 1 in pixel definiscono , cioè i nodi della mesh più fine che considero - Se un elemento in suddivisione è 1 vado a stimare la corrosione SOLO sul segmento della mesh più fine subito a sinistra
Algoritmo NSGA-II modificato • 1) Creo una popolazione inizialerandom e sparsa • OUTER-LOOP: • 2) su ogni individuo della popolazione corrente eseguo l’INNER-LOOP, che trasforma la popolazione iniziale: • 3) stimo i valori dei parametri col PEM; • 4) per ogni parametro maggiore di TOLL ( = corrosione significativa): • 5) facciamo un arricchimento locale di parametri; • 6) stimo valori dei parametri (arricchiti) • 7) itero da 5) finché non soddisfo un criterio di arresto • NB: le operazioni “5...7” possono essere compiute in parallelo. • 8) raccolgo le informazioni dell’inner loop in un vettore “costanti” che inizializzo a –1 e ne modifico le componenti rispettivamente in 1 e 0 a seconda che nell’intervallo a sinistra ci sia o meno corrosione. • 9) A partire dalla popolazione trasformata, con gli operatori creo una nuova popolazione corrente ed itero da 2). • [3] Per approfondire NSGA-II
Esempio Applichiamo NSGA-II modificato per un problema simulato numericamente, con N=51. Il profilo di corrosione da stimare è il seguente: NSGA-II modificato converge al profilo di corrosione già nelle prime generazioni. La popolazione stimata nell’ultima generazione è:
Supponiamo di considerare il vettore di zeri v e imponiamo v(9)=v(16)=v(33)=1. Vediamo come opera il raffinamento locale.
Conclusioni Per problemi di piccole dimensioni scegliamo la strada deterministica, che ci porta ad una accurata stima del profilo di corrosione su tutto il dominio e in questo caso il raffinamento locale è una buona scelta A causa della complessità computazionale, per problemi di grande dimensione non è pensabile seguire questa strada. Adottiamo quindi un metodo di indagine probabilistico e in questo assumono un ruolo fondamentale gli AG POSSIBILI SVILUPPI: è possibile perfezionare NSGA-II modificato, per rendere più veloce la convergenza al profilo di corrosione. Per esempio al vettore “costanti”, che indica quali sono i segmenti dove non ho ancora stimato la corrosione, potrebbe essere associata una densità di probabilità. Altro sviluppo interessante sarebbe analizzare il problema 3D.
Bibliografia [1] T. McKelvey, “Identification of state-space models from time and frequency data”, 1995 [2] Singiresu S. Rao, “Engineering Optimization”, 1996 [3] N. Srinivas, Kalyanmoy Deb, “Multiobjective Optimization Using Nondominated Sorting in Genetic Algorithms” - Evolutionary Computation ,1994