24
Università degli Studi di Trieste DIPARTIMENTO DI INGEGNERIA E ARCHITETTURA _________________________________________________________________ Corso di Laurea in Ingegneria dell’Informazione STIMA DELLA PRESSIONE TRACHEALE NEL CONTROLLO DELLA VENTILAZIONE MECCANICA MEDIANTE GENETIC PROGRAMMING LAUREANDA RELATORE Ngouoyiwouo Mfouapon Nadine Prof. Alberto Bartoli CORRELATORE Dott. Alessandro Turco SESSIONE STRAORDINARIA _______________________________________________________________________________ Anno Accademico 2012-2013

Stima della pressione tracheale nel controllo della ventilazione meccanica mediante genetic programming

  • Upload
    nad1990

  • View
    130

  • Download
    1

Embed Size (px)

Citation preview

Università degli Studi di Trieste

DIPARTIMENTO DI INGEGNERIA E ARCHITETTURA _________________________________________________________________

Corso di Laurea in Ingegneria dell’Informazione

STIMA DELLA PRESSIONE TRACHEALE NEL CONTROLLO DELLA VENTILAZIONE MECCANICA

MEDIANTE GENETIC PROGRAMMING

LAUREANDA RELATORE Ngouoyiwouo Mfouapon Nadine Prof. Alberto Bartoli

CORRELATORE Dott. Alessandro Turco

SESSIONE STRAORDINARIA _______________________________________________________________________________

Anno Accademico 2012-2013

  2 

Indice

I – INTRODUZIONE 3 II- ANALISI E STRUMENTI 5

1) Programmazione Genetica 5

2) Evolutionary Design 7

3) Dati 10

III- ESPERIMENTO NUMERICO 12

1) Organizzazione dei dati 12

2) Ricerca dei parametri ottimali 13

3) Risultati 19

IV- VALIDAZIONE 20 V- CONCLUSIONI E POSSIBILI SVILUPPI FUTURI 21 Bibliografia e Sitografia 22 Ringraziamenti 24

  3 

I. INTRODUZIONE

In medicina, la ventilazione meccanica consiste nel compensare o assistere la

respirazione spontanea del paziente, utilizzando un dispositivo chiamato “ventilatore”. Essa

è più spesso praticata in un contesto di cure critiche (medicina d’urgenza, terapia intensiva o

intermedia) e di anestesia. Esistono numerose metodologie di ventilazione meccanica. In

questa tesi ci siamo interessati in particolare alla “ventilazione percussiva ad alta

frequenza”.

La ventilazione percussiva ad alta frequenza (High Frequency Percussive

Ventilation, HFPV) è una metodologia di ventilazione meccanica non convenzionale che

associa gli aspetti benefici della ventilazione meccanica convenzionale (CMV) con quelli

della ventilazione ad alta frequenza (HFV) [1]. Nel corso degli anni, questo tipo di

ventilazione si è dimostrato molto utile nel trattamento di alcune condizioni patologiche:

trauma cranico chiuso [2], sindrome da distress respiratorio dell’adulto (adult respiratory

distress syndrom, ARDS) causato da ustioni ed inalazione di fumo [3], [4], pazienti con

insufficienza respiratoria acuta (acute respiratory failure, ARF) [5], neonati con malattia

delle membrane ialine o sindrome da distress respiratorio (RDS) [6].

L’utilizzo della ventilazione percussiva ad alta frequenza in generale comporta l’uso

del tubo endotracheale1 (EET) che connette il circuito del ventilatore alla via respiratoria del

paziente. La Figura 1 mostra un tubo endotracheale inserito in trachea [20]. La pressione

misurata dal ventilatore è la somma della variazione di pressione nel tubo e della pressione

tracheale dissipata per gonfiare i polmoni. La pressione del flusso d’aria insufflato dal

ventilatore deve essere controllata molto accuratamente per evitare danni ai polmoni come il

volutrauma e il barotrauma [7]. Poiché, al momento la pressione al livello della trachea non

può essere misurata, è necessario avere un modello per stimare tale pressione basandosi

sulle proprietà del tubo (EET) e sulle proprietà del flusso d’aria che al momento possono

essere misurati in pratica clinica.

                                                            1 Tubo di materiale plastico, spesso monouso, che viene inserito nella trachea del paziente attraverso la bocca oppure attraverso il naso. [13]

  4 

Figura 1. Tubo endotracheale inserito in trachea attraverso la bocca: A- tubo endotracheale

(blu), B- cuffia del tubo di gonfiaggio con palloncino, C- trachea, D- esofago.

Nell’articolo “A Novel Estimation Methodology for Tracheal Pressure in

Mechanical Ventilation Control” [8] si descrive un esperimento basato sulla

Programmazione Genetica, fatto per generare tale modello. In questa tesi ci proponiamo di

riprodurre con il software modeFRONTIER l’esperimento numerico descritto nell’articolo e

di confrontarne i risultati. Ovvero, si vogliano testare le prestazioni dell’algoritmo di

programmazione genetica (Evolutionary Design) presente in modeFRONTIER su un

problema già studiato.

  5 

II. ANALISI E STRUMENTI

1) Programmazione genetica

Il nostro esperimento si basa sulla programmazione genetica (Genetic Programming,

GP).

La programmazione genetica è un metodo sistematico di programmazione

automatizzata, ispirata dall’evoluzione biologica, per creare programmi informatici che

risolvano un determinato problema [9]. La GP è stata usata in una vasta gamma di

applicazioni quali la web security [10], la predizione del prezzo dell’elettricità [11], il text

mining [12], la progettazione di sistema(per esempio per aerei, treni,circuiti elettronici, etc.).

La GP parte da una popolazione iniziale di programmi che nel nostro caso specifico

sono semplicemente formule matematiche. Tali formule sono generate in modo casuale da

un insieme predefinito di funzioni (function set) e di terminali (terminal set). Ciascuno di

questi programmi chiamato individuo, costituisce una soluzione candidata per il problema.

La rappresentazione ad albero è usata per raffigurare ciascuna formula. Ogni nodo-

foglia è un elemento preso dall’insieme predefinito di terminali e ogni nodo-padre è un

elemento preso dall’insieme predefinito di funzioni. Come esempio, la Figura 2 mostra la

rappresentazione in struttura ad albero di un individuo in GP.

Figura 2. Rappresentazione ad albero della formula “

Paw (t)-

Rtube˙ V (t) -

I ˙ ̇ V (t)”

 

  6 

La versione di base della programmazione genetica richiede di specificare le cinque

principali fasi preparatorie elencate di seguito:

a. L’insieme di terminali (terminal set) che consiste generalmente di variabili e costanti dei

programmi, numeri random, etc.

b. L’insieme di funzioni (function set) che contiene generalmente funzioni primitive come,

ad esempio, operatori aritmetici.

c. La funzione d’idoneità (fitness function) per misurare esplicitamente o implicitamente

l’idoneità degli individui nella popolazione (cioè quanto bene un individuo è capace di

risolvere il problema).

d. Determinati parametri di controllo dell’esecuzione del programma (numero d’individui

nella popolazione, numero di generazioni, etc.).

e. Il criterio di terminazione e il metodo per scegliere il risultato dell’esecuzione.

Le fasi preparatorie sono gli input definiti dall’utente umano del sistema GP. La formula

ancora chiamata individuo è il risultato dell’esecuzione di GP.

Partendo dalla generazione casuale della popolazione iniziale (come detto più in

alto), l’esecuzione di GP procede in una ricerca evolutiva strutturata in modo seguente:

a. Esegue tutti questi programmi e raccoglie i risultati.

b. Valuta l’idoneità di ogni individuo con la funzione di fitness.

c. Costruisce nuovi individui (figli) applicando gli operatori genetici scelti (come ad

esempio il “crossover”, la mutazione) sugli individui (genitori) con maggiore idoneità.

d. Costruisce una nuova popolazione composta da individui con maggiore idoneità scelti

tra genitori e figli. Questa popolazione costituisce una nuova generazione.

e. Questo processo viene ripetuto fino a quando, un criterio di terminazione è soddisfatto.

Al giorno di oggi, esistono numerosi software di Programmazione Genetica, scritti

nei tanti e diversi linguaggi di programmazione. Ad esempio i software “LIL-GP” scritto in

C, “GPC++” scritto in C++, “JGProg” scritto in Java, etc. [14]

Il software usato in questa tesi è “modeFRONTIER” scritto in Java; è prodotto da

ESTECO spa, azienda insediata presso l’Area di Ricerca di Trieste, che ha supportato la

realizzazione di questa tesi. modeFRONTIER® è una piattaforma di integrazione che

  7 

permette un interfacciamento diretto con un gran numero di strumenti Computer-

Aided Design e Computer-Aided Engineering, dedicata all’ottimizzazione multiobiettivo,

all’automazione dei processi di progettazione ingegneristica, all’analisi dei dati e al decision

making in contesti multidisciplinari.

Per l’esperimento in questa tesi, è stato usato il programma genetico Evolutionary

Design (ED) implementato in modeFRONTIER, che descriveremmo nel paragrafo

seguente.

2) Evolutionary Design

ED è un’implementazione effettiva della metodologia GP per la regressione

simbolica[15], [16], [17]. In generale, l’obiettivo del compito di regressione è di scoprire la

relazione tra un insieme d’ingressi (o variabili indipendenti) x e un’uscita osservabile (o

variabile dipendente) y.

Nelle tecniche di regressione standard, il modello della forma funzionale f è noto in

anticipo. Le uniche incognite sono alcuni coefficienti, cioè i parametri liberi del modello.

ED utilizza funzioni primitive elementari. Queste funzioni possono essere combinate per

specificare la funzione completa. Dato un insieme di funzioni, la forma funzionale

complessiva indotta dalla programmazione genetica può assumere una varietà di forme. Le

funzioni primitive sono di solito le funzioni aritmetiche standard come addizione,

sottrazione, moltiplicazione e divisione, ma potrebbe includere anche funzioni

trigonometriche e trascendenti. Qualsiasi combinazione ammissibile delle funzioni e delle

variabili può essere ottenuta.

La regressione simbolica è quindi una composizione di variabili di ingresso,

coefficienti e funzioni primitive tale che l‘errore della funzione rispetto al risultato atteso sia

minimizzato. Né la forma, né la dimensione sono specificate prima della regressione. Il

numero di coefficienti e quali valori essi assumono sono ulteriori problematiche determinate

nel processo di ricerca stesso. Attraverso l'uso di tali funzioni primitive, la programmazione

genetica è in linea di principio capace di esprimere qualsiasi forma funzionale che utilizza le

funzioni primitive fornite dall'utente. A differenza dei metodi tradizionali, il processo

  8 

Evolutionary Design ottimizza automaticamente sia la forma funzionale che i valori dei

coefficienti.

ED è in grado di fornire risposte nel linguaggio simbolico della matematica, mentre

altri metodi forniscono solo risposte in forma di serie di numeri, pesi, validi nel contesto di

un modello definito in anticipo. Così, dopo l'allenamento la formula esplicita del modello di

regressione è disponibile.

Per lanciare l’allenamento di ED in modeFRONTIER, bisogna prima di tutto

importare la tabella dei dati costituta di valori delle variabili di input e output. Ogni colonna

corrisponde a una variabile ed ogni riga corrisponde ad un design (una combinazione di

valori delle variabili). modeFRONTIER dispone di un wizard di importazione dei dati per

guidare l’utente nell’ importazione dei dati, da un file (file di testo o file di Excel) oppure da

un database server. Questo wizard consente anche di configurare la tabella impostando le

variabili di input, di output e le loro proprietà. Nel nostro caso, abbiamo importato il file csv

dei dati dell’esperimento tramite tale Data Import Wizard.

Per quest’algoritmo di programmazione genetica, possono essere definiti diversi parametri:

1. Training set: Database/Insieme dei design per l’allenamento di Evolutionary Design. È

possibile scegliere tra All Designs (in questo caso saranno usati per l’allenamento, tutti i

design della tabella dei dati) e Only Market Designs (in questo caso, solo i design selezionati

saranno usati per l’allenamento di ED.).

2. Exclude Error Designs: se selezionata, l'algoritmo scarta quei design che presentano

errori di una o più variabili(di input o di output) non selezionate. Ad esempio se un design

contiene una o più variabili senza valore oppure con un errore, allora viene rimosso dal

training set. I design che presentano errori di una o più variabili selezionate sono già

automaticamente esclusi dal training set.

3. Number of Jobs: numero di diverse ricerche evolutive gestite da ED. I risultati dei

diversi jobs sono tutti presentati nel log, e il risultato migliore viene scelto automaticamente.

4. Tempo massimo ammissibile (s): l'algoritmo si ferma al raggiungimento di tale limite di

tempo.

5. Crossover Depth: questo valore definisce la profondità massima per l’operazione di

crossover. Tale operazione è applicata a degli alberi che rappresentano formule. Essa

consiste nel generare due figli scambiando il ramo di un genitore con il ramo di un altro

genitore. Il procedimento è esplicitato in Figura 3. Il Crossover depth è quindi la profondità

massima del ramo preso da un genitore.

  9 

6. Generations Number: questo valore definisce il numero di generazioni per il processo

evolutivo.

7. Population Size: questo valore definisce il numero d’individui nella popolazione. Il

numero di individui è uguale in tutte le generazioni durante il processo evolutivo.

8. Significant Decimals: numero di decimali significativi utilizzati per arrotondare i valori

calcolati e la funzione di fitness .

9. Unbounded Expressions Policy: è possibile scegliere tra due diverse politiche: Allow

Unbounded oppure Penalize Unbounded. Il range di variazione (codominio) di espressioni

candidate del modello di regressione può essere illimitato (funzione con discontinuità

infinita), oppure, al contrario può venire richiesto di essere limitato . I confini stimati delle

espressioni risultanti da diversi job sono tutti presentati nel log.

10. Random Generator Seed: la modifica di questo valore permette l'esecuzione di ricerche

diverse partendo dalla stessa popolazione iniziale . Il seed è un numero intero utilizzato per

la ripetibilità di sequenza. Se due sequenze Evolutionary Design sono valutate con lo stesso

seed, si generano e restituiscono sequenze identiche di numeri. Se il valore di

inizializzazione è 0 , la sequenza è seminata automaticamente ad un valore basato

sull'orologio macchina .

11. Functions Set: l'insieme delle funzioni primitive da utilizzare nel modello di regressione

deve essere specificato in questo campo.

12. Multi-threading Policy: è possibile scegliere tra due diverse politiche: Use Maximum

Number of Available Processors (utilizzo del numero massimo di processori disponibili)

oppure User Defined (definito dall'utente). Infatti, la formazione di diversi lavori può essere

eseguita in parallelo; in questo modo è possibile sfruttare i sistemi multi-core, riducendo il

tempo di allenamento totale dell'algoritmo.

13. Number of Threads: questo campo è attivo solo quando il Multi-threading Policy è

definito dall'utente. Questo parametro determina il numero di thread dei diversi job che sarà

utilizzato in parallelo. Il limite superiore è fissato automaticamente al numero di processori /

core disponibili sulla macchina locale.

 

  10 

 

Figura 3. Un esempio di crossover.

 

 

3) Dati

Al fine di stimare la pressione tracheale per mezzo di Evolutionary Design siamo

partiti da un database di variabili con valori misurati sperimentalmente in vitro (esperimento

col polmone artificiale descritto nell’articolo su-citato) [8]. Questo database è costituito da

due tabelle, una corrispondente all’esperimento col tubo endotracheale da 6.5 mm di

diametro (tubo per bambini) e l’altro corrispondente all’esperimento col tubo endotracheale

da 7.5 mm di diametro(tubo per adulti).

Ciascuna delle due tabelle contiene valori per le variabili seguenti:

- La pressione tracheale Ptr (t)

- La pressione misurata dal ventilatore Paw (t)

- Il flusso

˙ V

  11 

- L’accelerazione volume

˙ ̇ V

- La frequenza percussiva fp

- La pressione di lavoro Pwork

- Il diametro del tubo DEET

- Carico resistivo del simulatore di polmoni Rsim

- Carico di conformità del simulatore di polmoni Csim

I valori delle variabili V’, Paw (t), Ptr (t) e V’’ costituiscono un insieme di segnali respiratori2

rilevati durante la fase inspiratoria di ogni singolo ciclo respiratorio per una durata di 4 (s).

Quindi, per ogni tubo endotracheale e per ogni combinazione diversa dei parametri Pwork, fp,

Rsim, Csim è stato raccolto un insieme di segnali respiratori composto di 8000 x 4 campioni.

La Figura 4 evidenzia solo due dei quattro componenti di tale segnale respiratorio: Paw (t) e

Ptr (t) che sono rappresentati in ordinata. Il tempo è rappresentato in ascissa.

Figura 4. Misurazioni di Ptr (t) e Paw (t) per il tubo di diametro 6.5 mm e per la

combinazione di parametri Pwork = 40 cmH2O, fp =300ciclo/min, Rsim = 20 cmH2O/(Ls) e Csim =

10 mL/cmH2O.

                                                            2 insieme di segnali respiratori: insieme dei valori di V’, Paw (t), Ptr (t) e V’’ raccolti durante ogni singolo ciclo respiratorio. Hanno considerato 108 combinazioni dei parametri Pwork, fp, Rsim, Csim quindi hanno esperimentato 108 cicli respiratori.

  12 

III. ESPERIMENTO NUMERICO

L’esperimento numerico fatto in questa tesi per generare un modello di stima della

pressione tracheale Ptr (t) ignota, per mezzo dell’algoritmo di programmazione genetica E-D,

si è svolto nel modo seguente:

1) Organizzazione dei dati.

Per ogni tubo endotracheale è stata suddivisa la corrispondente tabella in 5 blocchi

ciascuno per la ricerca e la scelta di un modello e 1 blocco per il test delle formule. I primi 5

blocchi sono composti ciascuno da 7 insiemi di segnali respiratori per il training set e 3

insiemi di segnali respiratori per il validation set. L’ultimo blocco è composto dai rimanenti

insiemi di segnali respiratori per il testing set. La Figura 5 illustra questa divisione; le parti

in blu sono le tabelle di training set, in rosso le tabelle di validation set e in verde la tabella

di testing set.

In questo modo avremmo per ogni tubo, 5 modelli per la pressione tracheale.

Figura 5. Organizzazione dei dati per ogni tubo.

 

 Tabella iniziale 

 

⇓ 

Blocco1  Blocco2  Blocco3  Blocco4  Blocco5   Testing set 

 

⇓ 

    

                    

 

  13 

Abbiamo riprodotto la stessa organizzazione dei dati dell’articolo, ma non abbiamo

usato il validation per scegliere, come modello, l’individuo con fitness migliore. Infatti,

l'implementazione di ED inclusa in modeFRONTIER sceglie automaticamente la migliore

formula tra tutti i job e tra tutte le generazioni basandosi sul training set e sull'esito

dell'ottimizzazione interna affidata a NSGA-II []. Abbiamo invece utilizzato il validation set

per il tuning dei parametri di ED, calcolando l’errore quadratico medio (mean square error,

MSE) sulle funzioni/formule ottenuti negli esperimenti test.

2) Ricerca dei parametri ottimali

La variabile Ptr (t) nelle tabelle è impostata come variabile di output.

Abbiamo usato come variabili di input o Terminal set:

- La pressione misurata dal ventilatore (P1) Paw(t)

- Il flusso (V)

- L’accelerazione volume (dV1)

- La frequenza percussiva (f) fp

- La pressione di lavoro (Pw) Pwork

Non sono stati usati le variabili Rsim e Csim perché essendo variabili legate al simulatore di

polmoni non sono misurabili in vivo.

Il function set è composto di:

operatori aritmetici: +, -, *, / , le funzioni esponenziale(exp) e potenza(pow)

Per ogni tubo e per ogni blocco, sono stati eseguiti diversi esperimenti (esecuzioni

GP) mantenendo immutati i valori di certi parametri e cambiando ogni volta i valori di altri

parametri per valutare (in base all’errore quadratico medio, MSE) quali di essi portassero a

risultati migliori. I parametri fissi sono:

- Crossover Depth: 10

- Significant Decimals: 6

- Random Generator Seed: 1

  14 

- Multi-threading Policy: Use Maximum Number of Available Processors (utilizzo del

massimo numero di processori disponibili). Inizialmente abbiamo provato diversi set di

parametri sul primo blocco e sul secondo blocco del tubo da 6.5 mm di diametro. Le tabelle

seguenti illustrano tali esperimenti preliminari:

  Primo Blocco (tubo da 6.5 mm) 

funzione  P2_ED_0  P2_ED_1  P2_ED_2  P2_ED_3 

Parametri  Number of Jobs 5

Maximum Allowable Time (s)

600

Generations Number 1000

Population Size 500  

Number of Jobs 5

Maximum Allowable Time (s)

600

Generations Number 1500

Population Size 200  

Number of Jobs 5

Maximum Allowable Time (s)

600

Generations Number 1000

Population Size 500  

Number of Jobs 5

Maximum Allowable Time (s)

600

Generations Number 1000

Population Size 500  

MSE  8.202932124  32.85895217  1.476096763  35.26441583 

Attraverso le prove eseguite sui primi due blocchi del tubo di diametro 6.5 mm, abbiamo scelto di proseguire l’esperimento anche su tutti gli altri blocchi con il set dei parametri seguenti:

Number of Jobs =5,

Maximum Allowable Time (s) =3600,

Generations Number =1000,

  Secondo Blocco (tubo da 6.5 mm) 

funzione  P2_ED_0  P2_ED_1  P2_ED_2  P2_ED_3 

Parametri  Number of Jobs 5

Maximum Allowable Time (s)

600

Generations Number 1000

Population Size 500  

Number of Jobs 5

Maximum Allowable Time (s)

600

Generations Number 1500

Population Size 200  

Number of Jobs 5

Maximum Allowable Time (s)

3600

Generations Number 1000

Population Size 500  

Number of Jobs 5

Maximum Allowable Time (s)

7200

Generations Number 1000

Population Size 500  

MSE  18.57442143  13.20723808  0.921172951  0.926792459 

  15 

Population Size =500

Ma non abbiamo ottenuto buoni valori di MSE per alcuni blocchi, perciò abbiamo riprovato

su tutti i blocchi dei due tubi, cambiando solo il Maximum Allowable Time (s) = 7200.

Abbiamo visto che aumentando il Maximum Allowable Time, l’errore era

decrescente. Perciò abbiamo di nuovo riprovato aumentando sempre il Maximum Allowable

Time (s) =10800.

Di seguito sono riportate delle tabelle riassuntive degli esperimenti test eseguiti su

tutti i blocchi:

 

  Primo Blocco (tubo da 6.5 mm) 

Funzione  P2_ED_2  P2_ED_4  P2_ED_5 

Parametri  Number of Jobs 5

Maximum Allowable Time (s) 3600

Generations Number

1000

Population Size 500  

Number of Jobs 5

Maximum Allowable Time (s) 7200

Generations Number 1000

Population Size 500  

Number of Jobs 5

Maximum Allowable Time (s) 10800

Generations Number

1000

Population Size 500  

MSE  1.476096763  1.263911571  0.911725899 

 

 

  Secondo Blocco (tubo da 6.5 mm) 

Funzione  P2_ED_2  P2_ED_3  P2_ED_4 

Parametri  Number of Jobs 5

Maximum Allowable Time (s) 3600

Generations Number 1000

Population Size 500  

Number of Jobs 5

Maximum Allowable Time (s) 7200

Generations Number 1000

Population Size 500  

Number of Jobs 5

Maximum Allowable Time (s) 10800

Generations Number 1000

Population Size 500  

MSE  0.921172951  0.926792459  0.891277087 

  16 

  Terzo Blocco (tubo da 6.5 mm) 

funzione  P2_ED_0  P2_ED_1  P2_ED_2 

Parametri   Number of Jobs 5

Maximum Allowable Time (s) 3600

Generations Number 1000

Population Size 500  

Number of Jobs 5

Maximum Allowable Time (s) 7200

Generations Number 1000

Population Size 500  

Number of Jobs 5

Maximum Allowable Time (s) 10800

Generations Number 1000

Population Size 500  

MSE  8.556076443  1.425119226  1.266567463 

  Quarto Blocco (tubo da 6.5 mm) 

funzione  P2_ED_0  P2_ED_1  P2_ED_2 

Parametri  Number of Jobs 5

Maximum Allowable Time (s) 3600

Generations Number 1000

Population Size 500  

Number of Jobs 5

Maximum Allowable Time (s) 7200

Generations Number 1000

Population Size 500  

Number of Jobs 5

Maximum Allowable Time (s) 10800

Generations Number 1000

Population Size 500  

MSE  1.11920401  0.987614867  0.943222165  

  Quinto Blocco (tubo da 6.5 mm) 

funzione  P2_ED_0  P2_ED_1  P2_ED_2 

Parametri  Number of Jobs 5

Maximum Allowable Time (s) 3600

Generations Number 1000

Population Size 500  

Number of Jobs 5

Maximum Allowable Time (s) 7200

Generations Number 1000

Population Size 500  

Number of Jobs 5

Maximum Allowable Time (s) 10800

Generations Number 1000

Population Size 500  

MSE  6.851476818  0.796142996  0.836486433 

  17 

  Primo Blocco (tubo da 7.5 mm) 

funzione  P2_ED_0  P2_ED_1  P2_ED_2 

Parametri  Number of Jobs 5

Maximum Allowable Time (s) 3600

Generations Number 1000

Population Size 500  

Number of Jobs 5

Maximum Allowable Time (s) 7200

Generations Number 1000

Population Size 500  

Number of Jobs 5

Maximum Allowable Time (s) 3600

Generations Number 1000

Population Size 500  

MSE  6.343043788  1.259394091  0.590351923  

 

  Secondo Blocco (tubo da 7.5 mm) 

funzione  P2_ED_0  P2_ED_1  P2_ED_2 

Parametri   Number of Jobs 5

Maximum Allowable Time (s) 3600

Generations Number 1000

Population Size 500  

Number of Jobs 5

Maximum Allowable Time (s) 7200

Generations Number 1000

Population Size 500  

Number of Jobs 5

Maximum Allowable Time (s) 10800

Generations Number 1000

Population Size 500  

MSE  3.062922721  3.180353145  2.436940922 

  Terzo Blocco (tubo da 7.5 mm) 

funzione  P2_ED_0  P2_ED_1  P2_ED_2 

Parametri   Number of Jobs 5

Maximum Allowable Time (s) 3600

Generations Number 1000

Population Size 500  

Number of Jobs 5

Maximum Allowable Time (s) 7200

Generations Number 1000

Population Size 500  

Number of Jobs 5

Maximum Allowable Time (s) 10800

Generations Number 1000

Population Size 500  

MSE  3.893228619  3.014154427  2.244820308 

 

 

 

 

 

  18 

 

  Quarto Blocco (tubo da 7.5 mm) 

funzione  P2_ED_0  P2_ED_1  P2_ED_2 

Parametri  Number of Jobs 5

Maximum Allowable Time (s) 3600

Generations Number 1000

Population Size 500  

Number of Jobs 5

Maximum Allowable Time (s) 7200

Generations Number 1000

Population Size 500  

Number of Jobs 5

Maximum Allowable Time (s) 10800

Generations Number 1000

Population Size 500  

MSE  1.380432086  1.370436148  1.37036796 

 

  Quinto Blocco (tubo da 7.5 mm) 

funzione  P2_ED_0  P2_ED_1  P2_ED_2 

Parametri   Number of Jobs 5

Maximum Allowable Time (s) 3600

Generations Number 1000

Population Size 500  

Number of Jobs 5

Maximum Allowable Time (s) 7200

Generations Number 1000

Population Size 500  

Number of Jobs 5

Maximum Allowable Time (s) 10800

Generations Number 1000

Population Size 500  

MSE  5.729861654  0.823379  0.733360558 

I risultati ottenuti durante la fase di tuning ci hanno permesso di capire che il limite

temporale imposto era troppo stringente e non permetteva all'algoritmo di eseguire tutte le

generazioni. Pertanto abbiamo stabilito il Maximum Allowable Time al valore massimo

inseribile (100000). Nello scopo di poter meglio confrontare i risultati con quelli del

sopracitato paper, abbiamo fissato i rimanenti parametri con gli stessi valori:

- Number of jobs: 32

- Generetions number: 500

- Populations size: 500

  19 

3) Risultati

Al termine dell’esperimento finale, abbiamo ottenuto 5 modelli generati da ED per

ciascun tubo. Infatti, com’è stato detto più in alto, ED è in grado di fornire risposte nel

linguaggio simbolico della matematica. Così dopo l'allenamento, la formula esplicita del

modello di regressione è disponibile.

I modelli generati da ED al termine di questo esperimento sono molto lunghi. Perciò

non forniremmo qui tali modelli. Ad esempio la formula generata da ED al primo blocco del

tubo con diametro DEET = 6.5 mm è:

0.46239061043995733 + ((((((((((P1 - V) - (V * 1)) - V) - (V * (V * (V + V)))) - ((V

* (V * (V + V))) * 1)) - (V * 1)) - V) - (dV1 * 0.1)) - ((V * (V * (V + (V * 1)))) * 1)) +

(((((((V * (Pw - P1)) * (V + V)) - (((Pw / Pw) - (dV1 * 0.1)) - (((Pw - V) - (Pw / P1)) - V))) -

((dV1 * ((dV1 * 0.1) - (V + V))) * V)) - ((V + V) * (((((V * 0.1) - (V * dV1)) - (1 + V)) - (V

* (Pw - P1))) - ((V + V) * ((V + V) * ((dV1 * 0.1) * (dV1 * 0.1))))))) * 0.1) * 0.1))

I risultati in termini di errore quadratico medio (mean square error, MSE) calcolati

sul testing set, sono riassunti nella tabella seguente:

DEET blocchi MSE Media

Primo blocco 0.848919056

Secondo blocco 0.883064535

Terzo blocco 0.749136696

Quarto blocco 0.869143543

6.5

Quinto blocco 0.842826817

0.838618129

Primo blocco 0.916212388

Secondo blocco 0.901631216

Terzo blocco 1.065465306

Quarto blocco 1.038365051

7.5

Quinto blocco 0.904561585

0.965247109

  20 

IV. VALIDAZIONE

Nello scopo di valutare l’accuratezza dei nostri risultati, abbiamo considerato i

modelli GP realizzati nell’esperimento descritto nell’articolo su-citato [8] e altri due modelli

di base LM e NM ampiamente usati nella letteratura e realizzati da esperti del settore [18],

[19].

L’accuratezza dei modelli generati da ED, dei modelli GP dell’articolo e dei modelli

di base LM(Linear Model) e NM(Non-linear Model) è stato quantificato dai rispettivi errori

medi quadratico calcolati sul testing set.

La tabella seguente mostra i valori delle MSE per ogni blocco di ogni tubo e per ogni

modello e i valori medi di MSE per ogni tubo.

MSE per blocco Media MSE per ogni tubo DEET ED GP LM NM ED GP LM NM

0.85 1.01 3.44 1.94

0.88 0.78 3.47 1.92

0.75 0.76 3.57 1.98

0.87 0.82 3.48 1.89

6.5

0.84 0.84 3.29 2.06

0.84

0.84

3.45

1.96

0.92 0.90 3.33 1.94

0.90 1.06 3.35 1.95

1.07 1.03 3.24 1.90

1.04 3.21 3.27 1.89

7.5

0.90 1.03 3.25 1.94

0.97

1.44

3.29

1.91

  21 

V. CONCLUSIONE E POSSIBILI SVILUPPI FUTURI

L’esperimento numerico svolto in questa tesi, consisteva nel generare dei modelli per

la stima della pressione tracheale durante la ventilazione percussiva ad alta frequenza

mediante l’algoritmo di programmazione genetica Evolutionary-Design e di valutarne

l’accuratezza. I risultati dell’esperimento ci portano a dedurre che Evolutionary-Design

implementato in modeFRONTIER è in grado di generare dei modelli accurati in termine di

MSE. Abbiamo valutato le prestazioni di ED su questo problema di grande importanza nel

contesto di anestesia e di cure critiche, confrontando i nostri risultati con quelli ottenuti

nell’articolo sopracitato e con quelli ottenuti dai due modelli di base LM e NM. In base

all’errore quadratico medio (MSE) i nostri risultati in generale sono migliori.

Per quanto riguarda il tempo di esecuzione delle evoluzioni GP (job), non possiamo

fare un confronto perché è un parametro che dipende dalle caratteristiche del calcolatore

usato. Poiché i diversi job possono essere eseguiti in parallelo, sfruttando i sistemi multi-

core si riduce il tempo di allenamento totale dell'algoritmo. Inoltre, il fatto che

modeFRONTIER sia dottato di un’ampia interfaccia grafica e che sia usabile sotto diversi

sistemi operativi, fa si che Essa pregiudica le performance temporali nel lancio di ED a

vantaggio del monitoring da interfaccia grafica.

modeFRONTIER offre altre superficie di risposta che potrebbero permettere di

risolvere questo tipo di problema. Superficie di risposta come ad esempio Kriging e Radial

Basis Function e Neural Network sono metodologie potenzialmente molto promettenti.

Pertanto, si potrebbe eseguire altri esperimenti con tali metodologie usando lo stesso

database e confrontare i risultati per vedere se i modelli generati sono più accurati o meno.

Questi nuovi esperimenti rappresentano un nuovo tema di ricerca aperto da questa tesi che

potrebbero portare in futuro significative migliorie nella stima della pressione tracheale.

  22 

Bibliografia e Sitografia.

[1] U. Lucangelo, V. Antonaglia, W. Zin, L. Fontanesi, A.Peratoner, F. Bird, and A. Gullo, “Effects of mechanical load and flow, volume and pressure delivered by high-frequency percusive ventilation,” Respiratory physiology & neurobiology, vol.142, no. 1, pp. 81-91, 2004.

[2] J.M. HURST, R. D. BRANSON, e C. B. DEHAVEN, “The role of high-frequency ventilation in post-traumatic respiratory insufficiency,” the Journal of trauma and acute care surgery,vol. 27, no. 3, pp. 236-242,1987.

[3] C. W. Lentz e H. Peterson, “ Smoke inhalation is a multilevel insult to the pulmonary system,” Current Opinion in Pulmonary Medecine, vol. 3, no. 3, pp. 221-226, 1997.

[4] S. K. Alpard, J. B. Zwischenberger, W. Tao, D. J. Deyo, D. L. Traber, e Bidani, “New clinically relevant sheep model of severe respiratory failure secondary to combined smoke inhalation/cutaneous flame burn injury,” Critical care medecine, vol. 28, no. 5, pp. 1469-1476, 2000.

[5]http://www.minervamedica.it/it/riviste/minerva-

anestesiologica/articolo.php?cod=R02Y2003N11A0853

[6] G. C. Velmahos, L. S. Chan, R. Tatevossian, E. E. Cornwell, W. R. Dougherty, J. Escudero, e D. Demetriades, “High-frequency percussive ventilation improbe oxygenation in patients withs ARDS,” CHEST Journal, vol. 116, no. 2, pp. 440-446, 1999.

[7] P. Rocco e W. Zin, “Modelling the mechanical effects of tracheal tubes in normal subjects.” European Respiratory Journal, vol. 8, no. 1, pp. 121-126, 1995.

[8] M. Ajcevic, A. De Lorenzo, A. Accardo, A. Bartoli and E. Medvet,” A Novel Estimation Methodology for Tracheal Pressure in Mechanical Ventilation Control”,DIA – University of Trieste,Italy, 8th International Symposium on Image and Signal Processing and Analysis(ISPA 2013).

[9] http://it.wikipedia.org/wiki/Programmazione_genetica

  23 

[10] E. Medvet, C. Fillon, e A. Bartoli, “Detections of web defacements by means of genetic

programming,” in Information Assurance and Security, 2007. IAS 2007. Third International

Symposium on. IEEE, 2007, pp. 227-234.

[11] A. Bartoli, G. Davanzo, A. De Lorenzo, e E. Medvet, “GP-based electricity price forecasting,”

in Genetic Programming, ser. Lectures Notes in Computer Science, S. Silva, J. Foster, M. Nicolau,

P. Machado, e M. Giacobini, Eds. Springer Berlin Heidelberg, 2011, vol. 6621, pp. 37-48.[online]

Available: http://dx.doi.org/10.1007/978-3-642-20407-4_4

[12] A. Bartoli, G. Davanzo, A. De Lorenzo, M. Mauri, E. Medvet, e E. Sorio, “Automatic

generation of regular expressions from examples with genetic programmino,” in Proceedings of the

fourteenth International conference on Genetic and evolutionary computation conference

companion. ACM, 2012, pp.1477-1478.

[13] http://it.wikipedia.org/wiki/Tubo_endotracheale

[14] http://www.geneticprogramming.com/GPpages/software.html

[15] Fillon, C., New Strategies for Efficient and Practical Genetic Programming, PhD Thesis,

Università degli Studi di Trieste, 2008.

[16] Koza J. R., Genetic Programming: On the Programming of Computers by Means of Natural

Selection, MIT Press, 1992.

[17] Banzhaf, W., Nordin, P., Keller, R.E., Francone, F.D., Genetic Programming – An Introduction; On the Automatic Evolution of Computer Programs and its Applications, Morgan Kaufmann, dpunkt.verlag, 1998.

[18] S. Schumann, M. Krappitz, K. Moller, R. Hentschel, G. Braun, e J. Guttmann, “Pressure loss caused by pediatric tubes during high-frequency-oscillation-ventilation,” Respiratory physiology & neurobiology, vol.162, no. 2, pp.132-137, 2008.

[19] M. Sullivan, J. Paliotta, e M. Saklad, “Endotracheal tube as a factor in measurement of respiratory mechanics,” Journal of applied physiology, vol. 41, no. 4, pp. 590-592, 1976.

[20] http://pictures.doccheck.com/it/photos/2/6142/intubazione-endotracheale-schema/

  24 

Ringraziamenti

Desidero ricordare tutti coloro che mi hanno aiutato nella stesura della tesi con

suggerimenti, consigli, critiche ed osservazioni: a loro va la mia gratitudine, anche se a me

spetta la responsabilità per ogni errore contenuto in questa tesi.

Ringrazio anzitutto il Prof. Alberto Bartoli, Relatore e il Dott. Alessandro Turco, Correlatore

di questa tesi per la grande disponibilità e per tutto l’aiuto fornito durante la stesura.

Un ringraziamento speciale ai miei genitori, a tutta la mia famiglia, a tutti i miei amici che in

qualche modo mi hanno sostenuto e incoraggiato durante i miei anni di studi.

Infine, vorrei ringraziare con tutto il cuore, il Signore Dio che nella sua immensa grazia mi

fortifica e mi guida ogni giorno della mia vita.