Facoltà di IngegneriaCorso di Studi in Ingegneria Informatica
tesi di laurea specialistica
relatoreCh.mo prof. Domenico CotroneocorrelatoreIng. Roberto NatellacandidatoFrancesco FucciMatr. 885/000528
Un approccio per la generazione di scenari di test in sistemi distribuiti basato su Reinforcement Learning
A.A. 2010/2011
Facoltà di IngegneriaCorso di Studi in Ingegneria Informatica
Fault injection in sistemi “stateful”Fault Injection: tecnica per la validazione di meccanismi di fault-tolerance.Lo stato riveste un ruolo fondamentale:
• nellʼattivazione dei guasti• nella gestione dei meccanismi per lʼiniezione
La definizione dello stato per sistemi complessi può tener conto di:
• numero e tipo delle operazioni in esecuzione • sensori ed attuatori • scheduling e I/O
Load Balancing Service
FDPs Table
FDPs Table
Fault Tolerance Service
Checkpointing
Client Primary Façade
Backup Façade
Processing Server
Processing Server
Processing Server
FDP
Request Façade
Request
Data Distribution Service
Key: CORBA
object CORBA
interaction DDS
interaction State
transfer
Facoltà di IngegneriaCorso di Studi in Ingegneria Informatica Un esempio di motivazione
FaultTolerance
Workload
Un caso di studio riguardante la fault injection: un sistema di Flight Data Processing (FDP)Iniezione di guasto software di concorrenza (race condition e deadlock) per validare il meccanismo di replicazione (checkpointing dello stato del Façade)La Fault Tolerance deve funzionare ed essere validata rispetto alle diverse quantità di richieste FDP in coda nel Façade e in elaborazione presso i Processing Server (stato del sistema)
FaultInjection
Facoltà di IngegneriaCorso di Studi in Ingegneria Informatica
Determinare in maniera automatica un modello di funzionamento del sistema nel caso di architetture complesse, ed in presenza di componenti di terze parti.Guidare automaticamente il sistema in uno stato di interesse allo scopo di generare uno scenario di test.Tener traccia della dinamica del sistema in maniera poco onerosa e poco intrusiva.
Il contributo di questa tesiUn approccio basato su reinforcement learning, che sia grado di guidare un sistema software, munito di stato, verso uno stato obiettivo.Progetto e valutazione di un Agente software che implementa l'approccio.
Problematiche
Agent
Environment
actionatst
rewardrt
rt+1st+1
state
Facoltà di IngegneriaCorso di Studi in Ingegneria Informatica
Un Agente esterno:Sceglie lʼazione compiere in funzione
Dello stato attuale del sistema. Degli stati e delle azioni passata
Reinforcement learningIl modello di reinforcement learning é usato per apprendere la dinamica di un sistema complesso mediante un meccanismo “trial and error”.
Riceve un feedback dallʼAmbiente in termini di reward e stato successivo.Massimizza la reward nel lungo periodo.
Facoltà di IngegneriaCorso di Studi in Ingegneria Informatica
Lʼobiettivo dellʼagente è quello di imparare una “buona” politica conciliando:
exploration - esplorazione dello spazio degli stati anche se abbiamo scelto una buona azione.exploitation - valorizzazione dellʼazione scelta.
Funzionamento del RLNon cʼé una vera e propria fase di addestramento, il sistema impara dallʼesperienza che fa nel “mondo”.
Facoltà di IngegneriaCorso di Studi in Ingegneria Informatica
Descrizione dellʼapproccio (vista statica)
LʼAgente svolge i seguenti compiti:Tiene traccia dello stato del sistema che controlla, aggiornando una propria rappresentazione interna.Gestisce lʼapprendimento.Controlla il Gestore delle richiestee il Sistema eseguendo azioni su di esso.
AgenteStep
Gestore delle richieste
Ambiente
0 1 2 k
...
...Aggiornamentostima dello stato
Aggiornamentostima dello stato
Aggiornamentostima dello stato
e step di apprendimento
!Aggiornamentostato sistema
Vista dinamica
Facoltà di IngegneriaCorso di Studi in Ingegneria Informatica
Descrizione dellʼapproccio (vista dinamica)
ParametriLearning sliceUpdate slice
Evoluzione del sistema
Tempo simulatoAggiornamento stima dello statoAggiornamento stato sistema
Facoltà di IngegneriaCorso di Studi in Ingegneria Informatica
Algoritmi di RL adottati
Algoritmi adottatiQ(λ)SARSA(λ)ActorCritic(λ)
Metodi di baseProgrammazione dinamicaMonte CarloTemporal Difference
Metodi avanzatiTracce di eleggibilitàTracce di rimpiazzo
Facoltà di IngegneriaCorso di Studi in Ingegneria Informatica
Definizione ed obiettivi della sperimentazione
Sono state considerate tre metriche:Numero di step alla fine del primo episodio.Numero di step alla fine dellʼultimo episodio.Reward accumulata fino alla fine del primo episodio.
ObiettiviValutare la rapidità di convergenza e il guadagno accumulato dai vari algoritmi.Analisi della sensitività dei parametri per i vari algoritmi.
Facoltà di IngegneriaCorso di Studi in Ingegneria Informatica
Setup sperimentale
Esperimento 1
Esperimento 2
Agente
GR
Agente
GR
Facoltà di IngegneriaCorso di Studi in Ingegneria Informatica
Risultati
Esperimento 1
Esperimento 2
Facoltà di IngegneriaCorso di Studi in Ingegneria Informatica
Conclusioni e sviluppi futuriConclusioni
Lʼapproccio proposto permette di controllare, in maniera automatizzata, un sistema software complesso in modo che possa raggiungere uno stato desiderato.L'analisi sperimentale ha evidenziato che gli algoritmi basati su Reinforcement Learning che sono stati considerati sono in grado di raggiungere l'obiettivo, e che in sistemi più complessi la scelta dell'algoritmo può influire sulle prestazioni, in particolare sulla velocità di convergenza.
Sviluppi futuriIntegrazione dellʼapproccio su un sistema reale.Utilizzo di un approccio Bayesiano per stimare probabilisticamente lo stato corrente nel caso dʼincertezza nelle osservazioni.