BanovazDiego-Slides Prelaurea

31
Studente: Diego BANOVAZ Relatore: Prof. Luca BORTOLUSSI Facoltà di Ingegneria LAUREA SPECIALISTICA IN INGEGNERIA INFORMATICA

description

Banovaz Diego - Prelaurea Slides

Transcript of BanovazDiego-Slides Prelaurea

Page 1: BanovazDiego-Slides Prelaurea

Studente: Diego BANOVAZ

Relatore: Prof. Luca BORTOLUSSI

Facoltà di Ingegneria

LAUREA SPECIALISTICA IN INGEGNERIA INFORMATICA

Page 2: BanovazDiego-Slides Prelaurea

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

Page 3: BanovazDiego-Slides Prelaurea

sCCP: Stochastic Concurrent

Constraint Programming

Evoluzione di CCP

Linguaggio per la descrizione di modelli

Modello ad agenti interagenti

Interazioni di tipo concorrente

Sistema ad evoluzione probabilistica

Page 4: BanovazDiego-Slides Prelaurea

Lotka-Volterra

Page 5: BanovazDiego-Slides Prelaurea

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();

Page 6: BanovazDiego-Slides Prelaurea

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();

Nomi degli Agenti

Page 7: BanovazDiego-Slides Prelaurea

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();

Scelta

Nomi degli Agenti

Page 8: BanovazDiego-Slides Prelaurea

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();

Chiamate di AgentiScelta

Nomi degli Agenti

Page 9: BanovazDiego-Slides Prelaurea

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();

Chiamate di Agenti

Guardie

Scelta

Nomi degli Agenti

Page 10: BanovazDiego-Slides Prelaurea

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();

ask tell rate

Tra tutti gli agenti attivi, l’azione da eseguire vienescelta tramite una Race Condition tra le azioni con asktrue.La probabilità che un’azione venga eseguita èproporzionale al proprio rate.

if (ask) { tell }

Page 11: BanovazDiego-Slides Prelaurea

Semantica per sCCP

Preda Predatore

X > 0 ->

X = X + 1

X > 0 -> Y = Y

+ 1; X = X - 1

Y > 0 ->

Y = Y - 1

sCCP istanzia dal sorgente un ambiente fatto da agenti.Il sistema è descritto completamente dagli agenti in vita edallo stato delle variabili.

Agenti

Azioni

Page 12: BanovazDiego-Slides Prelaurea

Semantica per ITS

SVsAgenteRateSVRate )(*

X > 0Guardia

X = X + 1

Kr * X

Update

Rate

SVPreda > 0

&& X > 0

X = X + 1;

SVPreda--;

SVPreda++

SVPreda * Kr *

X

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.

Page 13: BanovazDiego-Slides Prelaurea

Semantica per ODE

0e'SVPredator

0'SVPreda

Y*Kd*eSVPredatorY*X*Km*eSVPredator Y'

Y * X * Km*eSVPredator - X *Kr *SVPreda'X

•La modifica alle variabili avviene proporzionalmente

alla state variables dell’agente e al rate dell’azione

stessa.

•Questa simulazione completamente deterministica.

•Le equazioni e cui si arriva sono le stesse equazioni

matematiche che definiscono il sistema.

Page 14: BanovazDiego-Slides Prelaurea

Risultati Semantiche

SCCP

ITS

ODE

Page 15: BanovazDiego-Slides Prelaurea

Analisi

Derivare dal codice SCCP le tre

semantiche

Fornire un’interfaccia utente

Input standardizzato

Output standardizzato

Output grafico

Custom Memory Semantic

Performance

Page 16: BanovazDiego-Slides Prelaurea

Progettazione

SCCP

XML

Compiler

Simulator

Graph CSV

Other SW

Input

Computazione

Output

Page 17: BanovazDiego-Slides Prelaurea

Schema Macro Classi

Conversione tra sCCP e XML

InterfacciaProgrammazione

Interfaccia Simulazione

Compilatore e Simulatore

Page 18: BanovazDiego-Slides Prelaurea

Conversione tra sCCP e XML

Conversione tra sCCP e XML

InterfacciaProgrammazione

Interfaccia Simulazione

Compilatore e Simulatore

•Utilizzato un compilatore di compilatori (COCO)

•In grado di generare documenti XML che

rispettino un determinato DTD

•Efficace segnalazione degli errori di Parsing

Page 19: BanovazDiego-Slides Prelaurea

Interfaccia Programmazione

Conversione tra sCCP e XML

InterfacciaProgrammazione

Interfaccia Simulazione

Compilatore e Simulatore

•Scrivere codice sCCP

•Commons Functions (Save, Load..)

•Compilazione

•Selezione Compilatore

•Selezione Constraint Store

•Start Graphic Simulation

•Start Batch Simulation

Page 20: BanovazDiego-Slides Prelaurea

Interfaccia Simulazione

Conversione tra SCCP e XML

InterfacciaProgrammazione

Interfaccia Simulazione

Compilatori e Simulatori

Graphic:

•Interfaccia completa, funzionalità avanzate

•Possibilità di salvare e continuare le simulazioni

•Modalità continua / modalità per passi

•Traccia il grafico

Batch:

•Stato avanzamento del sistema

•Interfaccia leggera, funzionalità di base

Page 21: BanovazDiego-Slides Prelaurea

Compilatori e Simulatori

Conversione tra SCCP e XML

InterfacciaProgrammazione

Interfaccia Simulazione

Compilatori e Simulatori

•Interscambiabili

•Interfacciabili con programmi esterni

•In grado di comprendere codice XML-sCCP

•Semantica matematica programmabile

Page 22: BanovazDiego-Slides Prelaurea

Compilatori e Simulatori(2)

Parser AMParser CS

Constraint Store Definition Manager

Runtime Manager

Parser Results Parser Results

Operazioni sulle Variabili

Operazioni sulle Definizioni

Parse CSXML Parse AMXMLInput Output

Page 23: BanovazDiego-Slides Prelaurea

Constraint Store

Constraint Store

Math Parser

From Parser

Declarations

Results

Queries

From/To Runtime Manager

Nuova Variabile

Nuova Funzione

Nuovo Constraint

Nuovo Operatore

Nuovo Parametro

Nuova Costante

Il Math Parser è un modulo

esterno che permette la

risoluzione di equazioni. Il

framework mette a disposizione

due Constraint Store, uno basato

su muParser e uno basato su

Flee.

Il Constraint Store si interfaccia al

Math Parser facendo da Wrapper

intelligiente.

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.

Page 24: BanovazDiego-Slides Prelaurea

Definition Manager

Definition ManagerDefinitions 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

From Parser To Runtime Manager

Page 25: BanovazDiego-Slides Prelaurea

Runtime Manager

Runtime ManagerCommands Results

Start

Stop

Step

Runtime Manager è l’esecutore.

Utilizza il Constraint Store e

l’Definition Manager per simulare

il modello.

Loop:

Scegli Azione

Esegui Azione

Incrementa il tempo trascorso

Stato del sistema

Valori delle variabili

Agenti Attivi

To User InterfaceFrom User Interface

Page 26: BanovazDiego-Slides Prelaurea

Interfaccia Programmazione

Definizione

Agenti e Stato

Iniziale

Definizione

Constraint Store

Menu

Compilazione

Scelta

Semantica

Scelta

Constraint Store

Inizia

Simulazione

Page 27: BanovazDiego-Slides Prelaurea

Interfaccia Simulazione

Stato Variabili

Stato Agenti

Scelta

SimulazioniSystem Status

Options

Grafico

Page 28: BanovazDiego-Slides Prelaurea

TestSistema semplificato

Client Server

Lotka-Volterra

Sintesi di Glucosio da

Lattosio in E-Coli

Page 29: BanovazDiego-Slides Prelaurea

Performances

Client Server – Peso del grafico e confronto Constraint Store

Lotka Volterra – Differenza tra i compilatori

Lactose – Differenza tra i compilatori

Il grafico rallenta di molto la simulazioneIl Constraint Store muParser è molto più

lento di Flee

ITS è più veloce di SCCP

ODE è più veloce di entrambi

In questo caso ODE è molto più lento di

SCCP ed ITS

Page 30: BanovazDiego-Slides Prelaurea

Analisi Performance

Flee molto più veloce di muParser (circa 50 volte)

Tracciare il grafico influenza pesantemente la velocità di simulazione (circa 50 volte)

ITS risulta più efficiente di sCCP, più agenti in gioco ci sono e più risulta efficiente

ODE risulta più efficiente in alcuni esempi rispetto ad altri

Page 31: BanovazDiego-Slides Prelaurea

Conclusioni

6 mesi di lavoro

Oltre 250 classi scritte

Oltre 20.000 righe di codice

Progetto funzionante al 100%

Migliorie necessarie per incrementarne

l’usabilità