ProgettoMartinelli2023/CS Smart Grid 2.5-FDG/CS Smart Grid 2.5-FDG-secti...

105 lines
5.4 KiB
Plaintext
Executable File

3.3.3.3 Il formalismo SAN, il tool Mobius e alcuni esempi di modelli sviluppati
Per definire e valutare i modelli proposti, è stato utilizzato il
flessibile e potente ambiente
di modellazione Möbius [DCC02] implementato dall'omonimo tool [CGK09]
(i cui componenti principali sono mostrati in Figura xx1),
che supporta una molteplicità di formalismi di modellazione e di
risolutori, con capacità di interagire tra loro.
Il modello complessivo dell'ambiente Möbius è ottenuto mediante uno o
più sottomodelli, atomici o a loro volta composti,
composti gerarchicamente (come mostrato in Figure
xx1) al livello di Abstract Functional Interface (AFI) [DCCDDDSW02,DKSC02]
utilizzando operatori, come Join e Rep [SM91], basati
sulla condivisione di variabili di stato o azioni.
Sul modello risultante vengono definite prima le variabili di
performance (che rappresentano le misure di interesse), basate su
strutture di guadagno, ed infine gli
studi da valutare in base alla variabilità dei parametri del modello.
Numerosi risolutori, basati su simulazione o tecniche analitiche,
sono disponibili per valutare il modello.
Tutti i formalismi e i risolutori supportati da Möbius sono basati sul
linguaggio di programmazione orientato ad oggetti C++, consentendo
l'utilizzo di codice C++ nei modelli.
Pertanto, lo strumento supporta strutture dati C++ esterne
staticamente definite al momento della compilazione e il collegamento
di librerie C++ esterne.
Tra i formalismi per la definizione dei modelli atomici, è stato
scelto quello delle Stochastic Activity Network (SAN) [SM01], una
estensione stocastica delle reti di Petri basata sulle seguenti
primitive grafiche: posti semplici o estesi (rappresentati da cerchi
blu e arancioni), attività temporizzate o istantanee
(barre verticali vuote o sottili, rispettivamente), porte di input
e di output (triangoli con la punta a sinistra o a destra). In
particolare, un posto semplice rappresenta il tipo "short" del
linguaggio C++, mentre un posto esteso representa tipi di dati di base
primitivi (come "short", "float", "double") e tipi "struct" o "array"
di tipi primitivi o di posti estesi.
Il tempo al completamento di
una attività può avere una qualunque delle numerose distribuzioni
supportate dal tool. Ad ogni attività può essere associato uno o più
case (piccoli cerchietti alla destra dell'attività) che rappresentano
l'incertezza probabilistica al completamento dell'attività. Infine i
gate permettono di specificare condizioni di abilitazione e regole di
completamento.
Il modello composto è ottenuto seguendo l'approccio modulare e
composizionale DARep [CDM17,CDM21] che estende Möbius con un nuovo
operatore D, basato su script Perl, per la replicazione indicizzata di
uno o più modelli atomici "template".
The system under analysis is modeled and evalu- ated following the
DARep compositional and mod- ular approach, as proposed in [25] and
also detailed in [5], by means of the tool M ̈obius [19].
formalization of the concept of named replication of template models,
The DARep approach is based on: i) template stochastic models, each
one representing a different generic component; ii) dependency-aware
State Variables (SVs), representing part of the state of a template
model; iii) a topology, associated to each dependency-aware SV; iv)
two functions Index() and Deps() that extend the template model; v)
the compositional operator D.
, o DARep
[CDM17,CDM21]
DARep is based on a new operator that explicitly sup- ports 2) and 4)
and on the Join operator that supports 5).
Very briefly, SANs are a variant of Stochastic Petri Nets (SPN) with a graphical
representation consisting of places, timed and instantaneous activities, and input
and output gates. Activities are equivalent to transitions in SPN. The amount of time
to complete a timed activity may be exponentially or nonexponentially distrib- uted.
Cases can be associated to activities (represented graphically as circles on the right
side of an activity) and permited to model uncertainty upon completion of an activity.
The use of gates permits a greater flexibility in specifying enabling conditions and
completion rules than simple SPN.
The Mo ̈bius modeling framework and its supporting tool Mo ̈bius [3] are briefly recalled in the following.
Our models are defined using the SAN formalism [28], a stochastic extension of Petri nets based
on the following primitives: plain and extended places (blue and orange circles) represent
SVs, timed and instantaneous activities (hollow and solid vertical bars) with linked input and output gates
(triangles pointing left or right) represent actions. Extended places represent complex data
types (like int, float, double, structures and arrays).
Input gates control when an activity is enabled.
The delay between enabling and completing of timed activities is a generally distributed random variable,
whereas enabling and completing of instantaneous activities take place at the same time.
SVs changes occur when an activity completes, as defined by the input and output gates.
The SAN primitives are defined by C++ statements, supporting external C++ data structures and
the linking to external C++ libraries.
In Mo ̈bius, the Join and Rep state-sharing compositional operators [28] are supported at level of
AFI [23, 3] as already described in Section 4. The auxiliary functions Index() and Deps(), and
the operator D are implemented through a Perl program [34, 20] which manipulates the xml files
describing the models defined in M ̈obius.