Download presentation
Presentation is loading. Please wait.
Published byRosemary Dawson Modified over 5 years ago
1
DEVS Background DEVS = Discrete Event System Specification
Provides formal M&S framework: specification,simulation Derived from Mathematical dynamical system theory Supports hierarchical, modular composition Object oriented implementation Supports discrete and continuous paradigms Exploits efficient parallel and distributed simulation techniques
2
Basic Entities and Relations in Modeling and Simulation
Experimental Frame Device for executing model Real World Simulator Data: Input/output relation pairs simulation relation modeling relation Experimental frame specifies conditions under which the system is experimented with and observed Model Structure for generating behavior claimed to represent real world Each entity is represented as a dynamic system Each relation is represented by a homomorphism or other equivalence
3
DEVS Models There are two kinds of Models in DEVS Atomic Model
Coupled Model
4
DEVS Atomic Model Elements of an atomic model: input events
output events state variables state transition functions External transition Internal transition Confluent transition output function time advance function
5
DEVS Atomic Model Formalism
6
Discrete Event Time Segments
x x 1 X t0 t1 t2 (S,e) X Y S e y0 Y
7
Atomic Model Operation
Ports are represented explicitly – there can be any number of input and output ports on which values can be received and sent The time advance function determines the maximum lifetime in a state A bag can contain many elements with possibly multiple occurrences of its elements. Atomic DEVS models can handle bags of inputs and outputs. The external transition function handles inputs of bags by causing an immediate state change, which also may modify the time advance. The output function can generate a bag of outputs when the time advance has expired. The internal transition function is activated immediately after the output function causing an immediate state change, which also may modify the time advance. The confluent transition function decides the next state in cases of collision between external and internal events.
8
Dynamic of Atomic Model
internal Make a transition (internal) external Make a transition (external) Handle input input State time advance Hold for some time output Send an output
9
Atomic Model Examples Pulse out start Generator Pulse Generator
time Pulse Generator Output interPulseTime >0 start passive active ta = ∞ Fire-once Neuron Output Input receptive fire refract Firing delay >0 ta = ∞ ta = ∞ external event Internal event output event
10
The DEVSJAVA Example: carGenr, carWashCenter
11
Internal Transition /Output Generation
Generate output using the output function Time advance using the internal transition function s Make a transition s’ Discussion: time advance =0, = Infinity
12
Response to External Input
Make a transition using the external transition function elapsed time Time advance Discussion: multiple inputs at the same time
13
Response to Simultaneous External Input and Internal Event
output input Generate output Make a transition elapsed time using the confluent transition function Time advance Note: the output will be generated before the confluent function is executed
14
Discussion There is no way to generate an output directly from an external input event. An output can only occur just before an internal transition. To have an external event cause an output without delay, we have it “schedule” an internal state with a hold time of zero The output function does not change a model’s state In general, the only way to interact with a model is through input/output ports. An implementation issue -- An atomic model works with any object-oriented classes A coupled model does not have its own states or state transition functions.
15
genDevs. modeling. atomic Basic Atomic Methods public double ta() : the time advance function; returns the value of sigma for atomic models public message out() : the output function; releases the message just before an internal transition public void deltint(): the internal transition function public void deltext(double e,message x): the external transition funciton public void deltcon(double e,message x): the confluent transition function public void Continue(double e) : subtract e from sigma; use to retain the same time of next event after an external event public void holdIn(String phase, double sigma) : set the phase and sigma values as given in the arguments public void passivateIn(String phase) : set the phase as given in the argument and sigma to INFINITY public void passivate() : set the phase to passive and sigma to INFINITY public boolean phaseIs(String phase) : return true if the current phase equals the argument public double ta(){return sigma; } public message out(){return new message()} //override public void deltint() {} //override public void deltext(double e,message x) {} //override public void deltcon(double e,message x){}//default deltint(); deltext(0,x); } public void Continue(double e){ if (sigma < INFINITY) sigma = sigma - e; public void holdIn(String phase, double sigma) { this.phase = phase; this.sigma = sigma;; public void passivateIn(String phase) {holdIn(phase, INFINITY);} public void passivate() {passivateIn("passive");} public boolean phaseIs(String phase){ return this.phase.equals(phase);
16
ignore all subsequent pulses
receptive refract input fire Firing delay >0 Output Fire-once Neuron This neuron fires exactly once after a fixed delay while ignoring all subsequent inputs public void initialize(){ super.initialize(); passivateIn("receptive"); } public void deltext(double e,message x){ Continue(e); if (phaseIs("receptive")&& somethingOnPort(x,"in")) holdIn("fire",fireDelay); ignore all subsequent pulses pulse pulse pulse pulse input t fire Continue: sigma = sigma - e phase state receptive refract public void deltint(){ //if (phaseIs("fire")) passivateIn("refract"); } public message out(){ return outputNameOnPort("pulse","out"); sigma pulseModels foreOnceNeuron elapsed time pulse output
17
Basic Generator Concepts
pulseExpFrames. basicGenr second Duration third Duration First Duration first second passive third active public void initialize(){ super.initialize(); holdIn("active",0); } public void deltext(double e,message x){ Continue(e); if (somethingOnPort(x,"start")) holdIn("first",firstDuration); else if (somethingOnPort(x,"stop")) passivate(); public void deltint(){ if (phaseIs("active")) holdIn("first",firstDuration); else if (phaseIs("first")) holdIn("second",secondDuration); else if (phaseIs("second")) holdIn("third",thirdDuration); else passivate(); } public message out(){ if (phaseIs("active")) return outputRealOnPort(firstOutput,"out"); else if (phaseIs("first")) return outputRealOnPort(secondOutput,"out"); else if (phaseIs("second")) return outputRealOnPort(thirdOutput,"out"); else //if (phaseIs("third")) return outputRealOnPort(0,"out");
18
DEVS Coupled Model Elements of coupled model: Components
Interconnections Internal Couplings External Input Couplings External Output Couplings
19
Coupling in Action output output internal external time advance
AB B A Output port Input port external State internal time advance output internal external State time advance output
20
DEVS Hierarchical Modular Composition
Atomic: lowest level model, contains structural dynamics -- model level modularity SimpArc.efa Coupled: composed of one or more atomic and/or coupled models hierarchical construction + coupling
21
Coupled Model Example – Neuron net can compute the shortest path in a directed graph by mapping distances of edges to equivalent time values. FireOnce Neuron 1 Neuron 3 Neuron 2 pulseIn pulseOut Neuron 4 Pulse Generator Small network of fire-once neurons a pulse emitted from the generator explores two paths concurrently to reach the final neuron (number 4). depending on the summed firing delays along each path, a pulse emerging from one or the other will arrive first to the final neuron, the other will be shut out and prevented from continuing in general, the clock time when a pulse first arrives to a neuron represents the shortest time to reach it if nodes and link distances are mapped to neurons and firing times, then the path taken by a pulse represents the shortest path of an associated digraph. the path can be reconstructed by extending the neuron model to allow retracing the path of earliest firings. This method turns out to be isomorphic to the well known Dikstrai shortest path algorithm. pulseModels. fireOnce NeuronNet If instead of shortest paths, we request longest paths, a net of neurons that fire after their assigned fireDelays every time they receive a pulse will do the job. Finding critical paths in PERT charts require such longest path computation.
22
The DEVSJAVA Example: carWashSys
23
DEVS-based Modeling and Simulation
References: B. P. Zeigler, Hessam S. Sarjoughian, Introduction to DEVS Modeling and Simulation with JAVA: Developing Component-Based Simulation Models, B. P. Zeigler, H. Preahofer, T. G. Kim, Theory of Modeling and Simulation, New York, NY, Academic Press, 2000.
24
Homework Read paper: DEVS Component-Based M&S Framework: An Introduction Install DEVS JAVA and play with the example – look into the code Research topic
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.