SlideShare a Scribd company logo
1 of 31
Facoltà di Ingegneria LAUREA SPECIALISTICA IN INGEGNERIA INFORMATICA IMPLEMENTAZIONE IN .NET DI UN FRAMEWORK PER L'ANALISI DI SISTEMI BIOLOGICI BASATO SULLA PROGRAMMAZIONE CONCORRENTE CON VINCOLI. Studente: Diego BANOVAZ Relatore: Prof. Luca BORTOLUSSI
Prima analisi dell’obbiettivo Si vuole ottenere un framework per la simulazione di modelli Il framework deve essere interfacciabile con programmi esterni Deve essere utilizzabile da utenti non esperti in programmazione Deve avere prestazioni accettabili
sCCP: StochasticConcurrentConstraintProgramming ,[object Object]
Linguaggio per la descrizione di modelli
Modello ad agenti interagenti
Interazioni di tipo concorrente
Sistema ad evoluzione probabilistica,[object Object]
Lotka-Volterra: Codice SCCP Predatore :-  [X > 0 -> Y = Y + 1; X = X - 1]@{Km * X * Y}.Predatore()    + [Y > 0 -> Y = Y - 1]@{Kd * Y}.Predatore(); Preda:- [X > 0 -> X = X + 1]@{Kr * X}.Preda();
Lotka-Volterra: Codice SCCP Nomi degli Agenti Predatore :-  [X > 0 -> Y = Y + 1; X = X - 1]@{Km * X * Y}.Predatore()    + [Y > 0 -> Y = Y - 1]@{Kd * Y}.Predatore(); Preda:- [X > 0 -> X = X + 1]@{Kr * X}.Preda();
Lotka-Volterra: Codice SCCP Nomi degli Agenti Predatore :-  [X > 0 -> Y = Y + 1; X = X - 1]@{Km * X * Y}.Predatore()  + [Y > 0 -> Y = Y - 1]@{Kd * Y}.Predatore(); Preda:- [X > 0 -> X = X + 1]@{Kr * X}.Preda(); Scelta
Lotka-Volterra: Codice SCCP Nomi degli Agenti Predatore :-  [X > 0 -> Y = Y + 1; X = X - 1]@{Km * X * Y}.Predatore()  + [Y > 0 -> Y = Y - 1]@{Kd * Y}.Predatore(); Preda:- [X > 0 -> X = X + 1]@{Kr * X}.Preda(); Scelta Chiamate di Agenti
Lotka-Volterra: Codice SCCP Guardie Nomi degli Agenti Predatore :-  [X > 0 -> Y = Y + 1; X = X - 1]@{Km * X * Y}.Predatore()  +[Y > 0 -> Y = Y - 1]@{Kd * Y}.Predatore(); Preda:- [X > 0 -> X = X + 1]@{Kr * X}.Preda(); Scelta Chiamate di Agenti
Lotka-Volterra: Codice SCCP ask tell if (ask) {tell} rate Predatore :-  [X > 0 -> Y = Y + 1; X = X - 1]@{Km * X * Y}.Predatore()    + [Y > 0 -> Y = Y - 1]@{Kd * Y}.Predatore(); Preda:- [X > 0 -> X = X + 1]@{Kr * X}.Preda(); Tra tutti gli agenti attivi, l’azione da eseguire viene scelta tramite una Race Condition tra le azioni con asktrue. La probabilità che un’azione venga eseguita è proporzionale al proprio rate.
Semantica per sCCP Preda Predatore Agenti X > 0 ->  X = X + 1 X > 0 -> Y = Y + 1; X = X - 1 Y > 0 ->  Y = Y - 1 Azioni sCCP istanzia dal sorgente un ambiente fatto da agenti. Il sistema è descritto completamente dagli agenti in vita e  dallo stato delle variabili.
Semantica per ITS X > 0 SVPreda > 0  && X > 0 Guardia X = X + 1 X = X + 1; SVPreda--; SVPreda++ Update Kr * X SVPreda * Kr * X Rate Lo stato del sistema è dato dalle definizioni degli Agenti, dalle variabili globali e dalle State Variables. Le State Variables vengono associate ad ogni agente e rappresentano il Numero di agenti attivi di quel particolare tipo.
Semantica per ODE ,[object Object]
Questa simulazione completamente deterministica.
Le equazioni e cui si arriva sono le stesse equazioni matematiche che definiscono il sistema.,[object Object]
Analisi Derivare dal codice SCCP le tre semantiche Fornire un’interfaccia utente Input standardizzato Output standardizzato Output grafico Custom MemorySemantic Performance
Progettazione SCCP Other SW Input XML Compiler Computazione Simulator Graph CSV Output
Schema Macro Classi Conversione tra sCCPe XML Interfaccia Programmazione Interfaccia Simulazione Compilatore e Simulatore
Conversione tra sCCP e XML ,[object Object]
In grado di generare documenti XML che rispettino un determinato DTD
Efficace segnalazione degli errori di ParsingConversione tra sCCPe XML Interfaccia Programmazione Interfaccia Simulazione Compilatore e Simulatore
Interfaccia Programmazione ,[object Object]
CommonsFunctions (Save, Load..)
Compilazione
Selezione Compilatore
Selezione ConstraintStore
Start GraphicSimulation
Start BatchSimulationConversione tra sCCPe XML Interfaccia Programmazione Interfaccia Simulazione Compilatore e Simulatore

More Related Content

Similar to BanovazDiego-Slides Prelaurea

Continuous Integration e High Quality Code
Continuous Integration e High Quality CodeContinuous Integration e High Quality Code
Continuous Integration e High Quality CodeDaniele Mondello
 
Design Pattern Comportamentali
Design Pattern ComportamentaliDesign Pattern Comportamentali
Design Pattern ComportamentaliRiccardo Cardin
 
Presentazione understand
Presentazione understandPresentazione understand
Presentazione understandLuigi La Torre
 
Maria Grazia Maffucci- programmazione presentazione
Maria Grazia Maffucci- programmazione presentazioneMaria Grazia Maffucci- programmazione presentazione
Maria Grazia Maffucci- programmazione presentazioneMaria Grazia Maffucci
 
Configurazione automatica di ambienti di testing per reti di calcolatori - te...
Configurazione automatica di ambienti di testing per reti di calcolatori - te...Configurazione automatica di ambienti di testing per reti di calcolatori - te...
Configurazione automatica di ambienti di testing per reti di calcolatori - te...Bruno Interlandi
 
Progetto e realizzazione di uno strumento per la modifica sistematica di codi...
Progetto e realizzazione di uno strumento per la modifica sistematica di codi...Progetto e realizzazione di uno strumento per la modifica sistematica di codi...
Progetto e realizzazione di uno strumento per la modifica sistematica di codi...Università degli Studi di Trieste
 
Javaday 2006: Java 5
Javaday 2006: Java 5Javaday 2006: Java 5
Javaday 2006: Java 5Matteo Baccan
 
Continous Delivery & HQ Code
Continous Delivery & HQ CodeContinous Delivery & HQ Code
Continous Delivery & HQ CodeDaniele Mondello
 
Design pattern architetturali Model View Controller, MVP e MVVM
Design pattern architetturali   Model View Controller, MVP e MVVMDesign pattern architetturali   Model View Controller, MVP e MVVM
Design pattern architetturali Model View Controller, MVP e MVVMRiccardo Cardin
 
Progetti di tesi Automation Motion Control
Progetti di tesi Automation Motion ControlProgetti di tesi Automation Motion Control
Progetti di tesi Automation Motion ControlLuigi Mancino
 
Android Test Driven Development
Android Test Driven DevelopmentAndroid Test Driven Development
Android Test Driven Developmentsazilla
 
Android Test Driven Development
Android Test Driven DevelopmentAndroid Test Driven Development
Android Test Driven Developmentsazilla
 
Automi probabilistici temporali e loro verifica formale
Automi probabilistici temporali e loro verifica formaleAutomi probabilistici temporali e loro verifica formale
Automi probabilistici temporali e loro verifica formaleOrlando Selenu
 
Presentazione: Sviluppo di un hub di comunicazione in una applicazione per po...
Presentazione: Sviluppo di un hub di comunicazione in una applicazione per po...Presentazione: Sviluppo di un hub di comunicazione in una applicazione per po...
Presentazione: Sviluppo di un hub di comunicazione in una applicazione per po...gwalter85
 
Semi-Active Replication Protocol
Semi-Active Replication ProtocolSemi-Active Replication Protocol
Semi-Active Replication ProtocolPaolo Maresca
 

Similar to BanovazDiego-Slides Prelaurea (20)

3DD 1e Reconfig
3DD 1e Reconfig3DD 1e Reconfig
3DD 1e Reconfig
 
Continuous Integration e High Quality Code
Continuous Integration e High Quality CodeContinuous Integration e High Quality Code
Continuous Integration e High Quality Code
 
Design Pattern Comportamentali
Design Pattern ComportamentaliDesign Pattern Comportamentali
Design Pattern Comportamentali
 
Java lezione 14
Java lezione 14Java lezione 14
Java lezione 14
 
Rx - ReactiveX
Rx - ReactiveXRx - ReactiveX
Rx - ReactiveX
 
Presentazione understand
Presentazione understandPresentazione understand
Presentazione understand
 
Maria Grazia Maffucci- programmazione presentazione
Maria Grazia Maffucci- programmazione presentazioneMaria Grazia Maffucci- programmazione presentazione
Maria Grazia Maffucci- programmazione presentazione
 
Configurazione automatica di ambienti di testing per reti di calcolatori - te...
Configurazione automatica di ambienti di testing per reti di calcolatori - te...Configurazione automatica di ambienti di testing per reti di calcolatori - te...
Configurazione automatica di ambienti di testing per reti di calcolatori - te...
 
3DD 1e Salomone
3DD 1e Salomone3DD 1e Salomone
3DD 1e Salomone
 
Progetto e realizzazione di uno strumento per la modifica sistematica di codi...
Progetto e realizzazione di uno strumento per la modifica sistematica di codi...Progetto e realizzazione di uno strumento per la modifica sistematica di codi...
Progetto e realizzazione di uno strumento per la modifica sistematica di codi...
 
Javaday 2006: Java 5
Javaday 2006: Java 5Javaday 2006: Java 5
Javaday 2006: Java 5
 
Continous Delivery & HQ Code
Continous Delivery & HQ CodeContinous Delivery & HQ Code
Continous Delivery & HQ Code
 
Design pattern architetturali Model View Controller, MVP e MVVM
Design pattern architetturali   Model View Controller, MVP e MVVMDesign pattern architetturali   Model View Controller, MVP e MVVM
Design pattern architetturali Model View Controller, MVP e MVVM
 
Progetti di tesi Automation Motion Control
Progetti di tesi Automation Motion ControlProgetti di tesi Automation Motion Control
Progetti di tesi Automation Motion Control
 
ASP.NET MVC
ASP.NET MVCASP.NET MVC
ASP.NET MVC
 
Android Test Driven Development
Android Test Driven DevelopmentAndroid Test Driven Development
Android Test Driven Development
 
Android Test Driven Development
Android Test Driven DevelopmentAndroid Test Driven Development
Android Test Driven Development
 
Automi probabilistici temporali e loro verifica formale
Automi probabilistici temporali e loro verifica formaleAutomi probabilistici temporali e loro verifica formale
Automi probabilistici temporali e loro verifica formale
 
Presentazione: Sviluppo di un hub di comunicazione in una applicazione per po...
Presentazione: Sviluppo di un hub di comunicazione in una applicazione per po...Presentazione: Sviluppo di un hub di comunicazione in una applicazione per po...
Presentazione: Sviluppo di un hub di comunicazione in una applicazione per po...
 
Semi-Active Replication Protocol
Semi-Active Replication ProtocolSemi-Active Replication Protocol
Semi-Active Replication Protocol
 

BanovazDiego-Slides Prelaurea

  • 1. Facoltà di Ingegneria LAUREA SPECIALISTICA IN INGEGNERIA INFORMATICA IMPLEMENTAZIONE IN .NET DI UN FRAMEWORK PER L'ANALISI DI SISTEMI BIOLOGICI BASATO SULLA PROGRAMMAZIONE CONCORRENTE CON VINCOLI. Studente: Diego BANOVAZ Relatore: Prof. Luca BORTOLUSSI
  • 2. Prima analisi dell’obbiettivo Si vuole ottenere un framework per la simulazione di modelli Il framework deve essere interfacciabile con programmi esterni Deve essere utilizzabile da utenti non esperti in programmazione Deve avere prestazioni accettabili
  • 3.
  • 4. Linguaggio per la descrizione di modelli
  • 5. Modello ad agenti interagenti
  • 6. Interazioni di tipo concorrente
  • 7.
  • 8. Lotka-Volterra: Codice SCCP Predatore :- [X > 0 -> Y = Y + 1; X = X - 1]@{Km * X * Y}.Predatore() + [Y > 0 -> Y = Y - 1]@{Kd * Y}.Predatore(); Preda:- [X > 0 -> X = X + 1]@{Kr * X}.Preda();
  • 9. Lotka-Volterra: Codice SCCP Nomi degli Agenti Predatore :- [X > 0 -> Y = Y + 1; X = X - 1]@{Km * X * Y}.Predatore() + [Y > 0 -> Y = Y - 1]@{Kd * Y}.Predatore(); Preda:- [X > 0 -> X = X + 1]@{Kr * X}.Preda();
  • 10. Lotka-Volterra: Codice SCCP Nomi degli Agenti Predatore :- [X > 0 -> Y = Y + 1; X = X - 1]@{Km * X * Y}.Predatore() + [Y > 0 -> Y = Y - 1]@{Kd * Y}.Predatore(); Preda:- [X > 0 -> X = X + 1]@{Kr * X}.Preda(); Scelta
  • 11. Lotka-Volterra: Codice SCCP Nomi degli Agenti Predatore :- [X > 0 -> Y = Y + 1; X = X - 1]@{Km * X * Y}.Predatore() + [Y > 0 -> Y = Y - 1]@{Kd * Y}.Predatore(); Preda:- [X > 0 -> X = X + 1]@{Kr * X}.Preda(); Scelta Chiamate di Agenti
  • 12. Lotka-Volterra: Codice SCCP Guardie Nomi degli Agenti Predatore :- [X > 0 -> Y = Y + 1; X = X - 1]@{Km * X * Y}.Predatore() +[Y > 0 -> Y = Y - 1]@{Kd * Y}.Predatore(); Preda:- [X > 0 -> X = X + 1]@{Kr * X}.Preda(); Scelta Chiamate di Agenti
  • 13. Lotka-Volterra: Codice SCCP ask tell if (ask) {tell} rate Predatore :- [X > 0 -> Y = Y + 1; X = X - 1]@{Km * X * Y}.Predatore() + [Y > 0 -> Y = Y - 1]@{Kd * Y}.Predatore(); Preda:- [X > 0 -> X = X + 1]@{Kr * X}.Preda(); Tra tutti gli agenti attivi, l’azione da eseguire viene scelta tramite una Race Condition tra le azioni con asktrue. La probabilità che un’azione venga eseguita è proporzionale al proprio rate.
  • 14. Semantica per sCCP Preda Predatore Agenti X > 0 -> X = X + 1 X > 0 -> Y = Y + 1; X = X - 1 Y > 0 -> Y = Y - 1 Azioni sCCP istanzia dal sorgente un ambiente fatto da agenti. Il sistema è descritto completamente dagli agenti in vita e dallo stato delle variabili.
  • 15. Semantica per ITS X > 0 SVPreda > 0 && X > 0 Guardia X = X + 1 X = X + 1; SVPreda--; SVPreda++ Update Kr * X SVPreda * Kr * X Rate Lo stato del sistema è dato dalle definizioni degli Agenti, dalle variabili globali e dalle State Variables. Le State Variables vengono associate ad ogni agente e rappresentano il Numero di agenti attivi di quel particolare tipo.
  • 16.
  • 18.
  • 19. Analisi Derivare dal codice SCCP le tre semantiche Fornire un’interfaccia utente Input standardizzato Output standardizzato Output grafico Custom MemorySemantic Performance
  • 20. Progettazione SCCP Other SW Input XML Compiler Computazione Simulator Graph CSV Output
  • 21. Schema Macro Classi Conversione tra sCCPe XML Interfaccia Programmazione Interfaccia Simulazione Compilatore e Simulatore
  • 22.
  • 23. In grado di generare documenti XML che rispettino un determinato DTD
  • 24. Efficace segnalazione degli errori di ParsingConversione tra sCCPe XML Interfaccia Programmazione Interfaccia Simulazione Compilatore e Simulatore
  • 25.
  • 31. Start BatchSimulationConversione tra sCCPe XML Interfaccia Programmazione Interfaccia Simulazione Compilatore e Simulatore
  • 32.
  • 33. Possibilità di salvare e continuare le simulazioni
  • 34. Modalità continua / modalità per passi
  • 35.
  • 36. Interfaccia leggera, funzionalità di baseConversione tra SCCP e XML Interfaccia Programmazione Interfaccia Simulazione Compilatori e Simulatori
  • 37.
  • 39. In grado di comprendere codice XML-sCCP
  • 40. Semantica matematica programmabileConversione tra SCCP e XML Interfaccia Programmazione Interfaccia Simulazione Compilatori e Simulatori
  • 41. Compilatori e Simulatori(2) ConstraintStore Definition Manager Operazioni sulle Variabili Operazioni sulle Definizioni Parser Results Parser Results Parser AM Parser CS Runtime Manager Parse CSXML Parse AMXML Input Output
  • 42. ConstraintStore From Parser From/ToRuntime Manager ConstraintStore Declarations Results MathParser Queries Nuova Variabile Nuova Funzione Nuovo Constraint Nuovo Operatore Nuovo Parametro Nuova Costante Il MathParser è un modulo esterno che permette la risoluzione di equazioni. Il framework mette a disposizione due ConstraintStore, uno basato su muParser e uno basato su Flee. Il ConstraintStore si interfaccia al MathParser facendo da Wrapperintelligiente. Ask: richiede la validità di una formula Tell: impone un nuovo vincolo al sistema GetRate: ottiene il valore di una formula GetVariables: ottiene lo stato delle variabili.
  • 43. Definition Manager From Parser ToRuntime Manager Definition Manager Definitions Instances Nuova Definizione Definition Manager contiene e gestisce tutte le definizioni. Ne esiste uno per ogni semantica, in modo che questi possa modellare il suo prodotto a seconda delle richieste. A seconda della sua implementazione ritorna Agenti oppure Transizioni
  • 44. Runtime Manager ToUser Interface From User Interface Runtime Manager Commands Results Start Stop Step Runtime Manager è l’esecutore. Utilizza il ConstraintStore e l’DefinitionManager per simulare il modello. Loop: Scegli Azione Esegui Azione Incrementa il tempo trascorso Stato del sistema Valori delle variabili Agenti Attivi
  • 45. Interfaccia Programmazione Menu Compilazione Scelta Semantica Scelta ConstraintStore Inizia Simulazione Definizione Agenti e Stato Iniziale Definizione ConstraintStore
  • 46. Interfaccia Simulazione Options Stato Variabili Grafico Stato Agenti Scelta Simulazioni System Status
  • 47. Test Sistema semplificato Client Server Lotka-Volterra Sintesi di Glucosio da Lattosio in E-Coli
  • 48. Performances Client Server – Peso del grafico e confronto ConstraintStore Il grafico rallenta di molto la simulazione Il ConstraintStoremuParser è molto più lento di Flee In questo caso ODE è molto più lento di SCCP ed ITS Lotka Volterra – Differenza tra i compilatori ITS è più veloce di SCCP ODE è più veloce di entrambi Lactose – Differenza tra i compilatori
  • 49.
  • 50. Tracciare il grafico influenza pesantemente la velocità di simulazione (circa 50 volte)
  • 51. ITS risulta più efficiente di sCCP, più agenti in gioco ci sono e più risulta efficiente
  • 52.