2. Simulazione discreta: approcci alla simulazione

Documenti analoghi
2. Simulazione discreta: approcci alla simulazione

2. Simulazione discreta: L uso di UML per la modellazione

Gli oggetti base del sistema da modellare sono le entità e le risorse.

TECNICHE DI SIMULAZIONE

2. Simulazione discreta: entità ed operazioni

2. Simulazione discreta: entità ed operazioni

Introduzione. Corso di Tecniche di Simulazione, a.a. 2005/2006. Francesca Mazzia. Dipartimento di Matematica Università di Bari.

PRINCIPI GENERALI. Corso di Tecniche di Simulazione, a.a. 2005/2006. Francesca Mazzia. Dipartimento di Matematica Università di Bari.

Un nuovo concetto di classe

La simulazione è l'imitazione di un processo o di un sistema reale per un

Sistema : collezione di componenti (elementi, entità) interdipendenti che interagiscono fra loro in accordo a specifiche predefinite.

2. Modellazione dei casi d uso

Il supporto al sistema operativo

Il presente plico contiene 3 esercizi e deve essere debitamente compilato con cognome e nome, numero di matricola.

Modellazione discreta con UML

CORSO DI PROGRAMMAZIONE

Simulazione. D.E.I.S. Università di Bologna DEISNet

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale

PROCESSI NON SEQUENZIALI E TIPI DI INTERAZIONE

FONDAMENTI DI INFORMATICA Lezione n. 10

FONDAMENTI DI INFORMATICA Lezione n. 10

ALGORITMI E COMPLESSITA COMPUTAZIONALI LA MACCHINA DI TURING.

Istruzioni di selezione in Java 1

IL PROCESSO di PROGETTAZIONE

Introduzione alla Simulazione

Laboratorio di Algoritmi

Hardware, software e periferiche. Facoltà di Lettere e Filosofia anno accademico 2008/2009 secondo semestre

Utilizzato per trattenere entità che vengono poi successivamente rilasciate e tipicamente per: trattenere entità che devono ricevere un

Corso di. Basi di Dati I. 10. Esercitazioni in SQL: Complementi

Se due computer sono sulla stessa rete Sappiamo come possono fare per scambiarsi datagram Usano gli indirizzi fisici

Algoritmi e Complessità

Laboratorio di Programmazione di Rete Laurea Triennale in Informatica Applicata Progetto di fine Corso - A.A. 08/09

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

Linguaggi, Traduttori e le Basi della Programmazione

Bootstrap. Bootstrap. Shutdown. Struttura di un SO. Elementi principali di un SO:

Prof. Pagani Corrado LINGUAGGIO C: SELEZIONE E CICLI

Il presente plico contiene 3 esercizi e deve essere debitamente compilato con cognome e nome, numero di matricola.

Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE. Francesco Tura. F. Tura

Lezione R8. Sistemi embedded e real-time

Laboratorio di Programmazione

ciclo di vita della soluzione (informatica) d un problema

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale

Corso di Informatica

Rappresentazione dell informazione

Unità A2. Progettazione concettuale. Obiettivi. Astrazione. Astrazione per aggregazione

I Diagrammi di Flusso OO

Funzioni, Stack e Visibilità delle Variabili in C

Progetto CPU a singolo ciclo

Algebra di Boole: Concetti di base. E un algebra basata su tre operazioni logiche

Note di Simulazione. G. Gallo

Elementi di Informatica. Introduzione. Cos è l informatica. Corso di Laurea in Ingegneria Biomedica aa 2003/2004. Ing.

Cos è un algoritmo. Si dice algoritmo la descrizione di un metodo di soluzione di un problema che sia

Architettura del calcolatore (Seconda parte)

Sequential Functional Chart

Assegnazione di una variabile

Costrutti di iterazione

Architettura degli elaboratori A.A

Esercitazione 2. Espressioni booleane Il comando if-else

I flow chart. Informatica Generale 14/15 Scienze della comunicazione. cristina gena.

Il Processore: l unità di controllo

Architettura dei computer

Simulazione di semafori e rotonde: verifica dell'efficienza al variare del traffico

Analisi statistica dell output prodotto dalla simulazione

Istruzioni di controllo

Campionamento e memoria. Sommario. Sommario. M. Favalli

Politecnico di Milano Sede di Cremona A.A. 2012/13. Corso di RETI DI COMUNICAZIONE E INTERNET (Modulo 1)

Tutorato I Probabilità e Statistica a.a. 2015/2016

Algoritmi stabili e instabili

I cicli non sono obbligatori per la pianificazione che può operare anche in base ad altri valori.

Esercizio Dispositivi-1. Soluzione

Algoritmi e Programmazione Avanzata. Pile e code. Fulvio CORNO - Matteo SONZA REORDA Dip. Automatica e Informatica Politecnico di Torino

CPU. ALU e Registri della CPU. Elementi della CPU. CPU e programmazione (Parte 1) Central Processing Unit, processore

Processi non sequenziali e tipi di interazione

Pile e code. Sommario. Algoritmi e Programmazione Avanzata. Fulvio CORNO - Matteo SONZA REORDA Dip. Automatica e Informatica Politecnico di Torino

DETERMINAZIONE DELLE ESPOSIZIONI SCADUTE/SCONFINANTI F27_9. Generalità

Esercitazione 11. Control-Unit. Data-Path

Corso di Informatica

SISTEMI INFORMATIVI E DATABASE

I Fondamenti della Simulazione. Concetto di Sistema. Confronto tra modelli matematici e modelli simulativi Meccanismi i di avanzamento del tempo

Primi script in MATLAB

SISTEMA DI ELABORAZIONE

Strutture di Controllo

Le risorse. Alcune definizioni

LA METAFORA DELL UFFICIO

Laboratorio 8: Analisi di processo

Tipi di dato e Strutture dati elementari

LINGUAGGI DI PROGRAMMAZIONE

Indice. 1 Introduzione 2. 2 Algoritmo di compressione LZ78 3

2. Introduzione alla probabilità

SiGeM. Manuale utente Modulo Monitoraggio V. 1.0

02/03/2016. LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica 8 STRUTTURE DI CONTROLLO (1)

ESERCIZI DI PROBABILITA

Informatica Generale Andrea Corradini Gli algoritmi e la risoluzione di problemi

Transcript:

Anno accademico 2008/09

Elementi di un programma di simulazione Controllore Tempo di simulazione Generatore dei dati di input Entità Eventi Attività Stati Processi

Simulazione per eventi: le classi L approccio basato sugli eventi permette di costruire programmi di simulazione molto compatti ed efficienti, ma anche proprio per questo più costosi dal punto di vista della manutenzione e degli aggiornamenti. Agenda Lunghezza: Int = 0 Inserisci(e: Evento) Scandisci(t: Time): Time Esegui(t: Time) Controllore Tc: Time = 0 cal: Agenda Esegui(end: Time) * Evento t: Time EseguiAzione() Evento1 t: Time Evento1 Evento1 Evento1 EseguiAzione() verificacondizione():bool EseguiAzione() EseguiAzione() verificacondizione():bool EseguiAzione() Figure: Diagramma delle classi in un simulatore per eventi

Simulazione per eventi: il controllore Tc = cal.scandisci(end) [cal.lunghezza = 0 OR Tc = end] [Tc < end] cal.esegui(tc)

Simulazione per eventi: gli eventi nel caso del botteghino teatrale ArrivaCp. Se L impiegato è occupato il cliente viene inserito in Q p, altrimenti inizia il servizio, e sia l impiegato che il cliente passano allo stato di servizio. ArrivaCt. Se L impiegato è occupato, oppure è arrivato contemporaneamente un cliente fisico, il cliente viene inserito in Q t. Altrimenti, inizia il servizio, e sia l impiegato che il cliente passano allo stato di servizio. FineServizio. Se la coda Q p non è vuota, l impiegato rimane nello stato di servizio ed estrae il primo cliente da Q p, altrimenti estrae il primo cliente da Q t, se tale coda non è vuota. In entrambi i casi, il cliente estratto passa allo stato di servizio,e viene programmato un nuovo evento FineServizio. Se entrambe le code sono vuote, l impiegato si mette in attesa, cambiando così di stato. Il cliente appena servito esce dal sistema.

Simulazione per eventi: una variante Il problema principale nella modellazione per eventi nasce dal fatto che le operazioni svolte da un singolo evento possono essere molto complesse e si propagano coinvolgendo diverse entità. Questo rende alta la possibilità di errori, rende difficile il mantenimento e l aggiornamento del modello. Una possibile variante è quella di distribuire le operazioni fra le diverse entità. Ognuna di esse mantiene l informazione sullo stato in cui si trova (punto nel suo ciclo degli stati) e sul tipo di operazioni che deve svolgere in corrispondenza a ciascuno stato ed a ciascun evento. Allora ogni evento contiene fra le sue informazioni la lista delle entità attive, cioè che sono coinvolte quando esso viene attivato dal controllore. E l operazione eseguita dall evento è solo quella di attivare le entità coinvolte. In questo modo le operazioni sono più parcellizate e distribuite e quindi il programma risulta più facile da controllare ed aggiornare.

Simulazione per attività In questo approccio, a partire dal diagramma degli stati, si decompongono le attività svolte nel sistema in attività elementari. Queste attività corrispondono agli eventi, cioè a quei fatti o azioni che portano ai cambiamenti di stato del sistema e che quindi danno origine alle transizioni. Il ruolo del controllore sarà quello di gestire la lista delle attività individuate in modo che vengano eseguite. Ogni attività è caratterizzata dalla condizione che la fa avvenire e dalle azioni che vengono corrispondentemente fatte, e viene rappresentato per mezzo di una tabella in cui sono riportate le informazioni rilevanti.

Simulazione per attività: le classi ListaAttività L: Attività[n] Scandisci(t: Time): Time Esegui(t: Time) Controllore curt: Time = 0 lista: ListaAttività Esegui(end: Time) Attività t:time condizione: Logic Formula EseguiAzione() Attività1 t: Time Evento1 Condizione: Logic Evento1 Formula Evento1 EseguiAzione() EseguiAzione() verificacondizione():bool EseguiAzione() verificacondizione():bool EseguiAzione()

Simulazione per attività: il controllore Tc = lista.scandisci(end) [Tc = end] [Tc < end] done = lista.esegui(tc) [done = vero] [done = falso]

Simulazione per attività: il caso del botteghino teatrale (1) Le attività: a[1] Inizio servizio allo sportello a[2] Inizio servizio al telefono a[3] Fine servizio allo sportello a[4] Fine servizio al telefono a[5] Arrivo cliente allo sportello a[6] Arrivo cliente al telefono

Simulazione per attività: il caso del botteghino teatrale (2) Attività a[1]: Inizio servizio allo sportello Attributi - I.Libero = vero & Qp.lunghezza > 0 Azioni a[3].t := curt + Qp.Estrai().t; I.Libero := falso

Simulazione per attività: il caso del botteghino teatrale (3) Attività a[2]: Inizio servizio al telefono Attributi - I.Libero = vero & Qp.lunghezza = 0 & Qt.lunghezza > 0 Azioni a[4].t := curt + Qt.Estrai().t; I.Libero := falso

Simulazione per attività: il caso del botteghino teatrale (4) Attività a[3]/a[4]: Fine servizio Attributi t vero Azioni I.Libero := vero

Simulazione per attività: il caso del botteghino teatrale (5) Attività Attributi Azioni a[5]: Arrivo cliente allo sportello t vero Qp.Inserisci(nuovoCliente(rndp1()) a[5].t := curt + rndp2()

Simulazione per attività: il caso del botteghino teatrale (6) Attività Attributi Azioni a[6]: Arrivo cliente al telefono t vero Qp.Inserisci(nuovoCliente(rndp1()) a[6].t := curt + rndp2()

Simulazione per processi In questo approccio tutti gli eventi del ciclo degli stati di una entità, con le relative operazioni, vengono vengono accorpati in una sequenza detta processo. Un processo è sostanzialmente la sequenza delle operazioni descritte dal diagramma degli stati. Un processo può essere attivo oppure in attesa. In quest ultimo caso, si può trattare di una attesa condizionata, quando la ripresa dell attività del processo dipende dal realizzarsi di condizioni esterne, oppure di un attesa programmata, quando il tempo in cui il processo verrà riattivato è predefinito.

Simulazione per processi: il botteghino teatrale(1) 1 Arrivo del cliente C quando il tempo di simulazione è uguale al suo tempo di arrivo, cioè curt = P(C).t. 2 Calcolo del tempo di arrivo, P(C ).t del cliente successivo, C ; 3 Generazione dell entità C e creazione del processo P(C ); 4 Il processo P(C ) viene posto in stato di attesa fino a che non risulti curt = P(C ).t; 5 Il cliente C viene inserito nella prima coda, e viene posto in stato di attesa fino a quando non si trovi in testa alla coda e risulti Impiegato.Libero = vero; 6 Si pone Impiegato.Libero := falso, si pone P(C).Tempo Prossima Attività =curt + C.t, e si pone il processo in stato di attesa fino a quando curt = P(C).Tempo Prossima Attività; 7 Si pone Impiegato.Libero := Vero e si interrompe il processo.

Simulazione per processi: il botteghino teatrale (2) Nell esempio considerato, l impiegato può essere considerato come una risorsa che viene utilizzata dai processi (clienti). In casi più complessi si possono avere diverse classi di entità e quindi tipi di processi che competono per l uso di risorse comuni. In questo caso si hanno processi che interagiscono, ciascuno condizionato dallo stato degli altri.

Simulazione per agenti Agenti Ambiente Controllore

Simulazione per agenti: gli agenti Un agente è una entità discreta dotata di proprietà e di obiettivi che ne caratterizzano e guidano il comportamento, e dotata della capacità di prendere decisioni. Un agente è situato in un ambiente con il quale interagisce. Parimenti un agente interagisce con gli altri agenti. Devono quindi essere chiaramente definiti i protocolli che consentono tali interazioni. Un agente può avere obiettivi e la capacità di valutare gli esiti delle sue azioni rispetto a tali obiettivi. Un agente è autonomo e, almeno rispetto ad un insieme di possibili azioni, può funzionare indipendentemente nel suo ambiente e nei rapporti con gli altri agenti. Un agente è flessibile ed ha la capacità di imparare ed adattare i suoi comportamenti sulla base dell esperienza. Deve avere quindi una qualche forma di memoria ed, eventualmente, delle metaregole che gli permettano di modificare le sue regole di comportamento.

Simulazione per agenti: l ambiente L ambiente rappresenta tutte quelle realtà ed informazioni che hanno un effetto sul sistema da modellare e quindi in particolare sugli agenti. Ad esempio fanno parte dell ambiente le risorse disponibili, la domanda (quando non sia anch essa rappresentata per mezzo di agenti), parametri quali tasso di sconto, costi, probabiltà di guasto di una macchina,...

Simulazione per agenti: il controllore Il programma di controllo ad ogni passo fa avanzare il tempo (in genere per intervalli regolari) e fa eseguire le operazioni previste per ciascun agente. Alcune operazioni che vengono effettuate ad ogni avanzamento del tempo, ed operazioni condizionate che vengono realizzate solo quando si verificano opportune condizioni. Il risultato della simulazione può non essere indipendente dall ordine con cui il controllore fa eseguire le diverse operazioni.