270 likes | 289 Views
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, http://www.acims.arizona.edu/SOFTWARE/devsjava_licensed/CBMSManuscript.zip
E N D
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, http://www.acims.arizona.edu/SOFTWARE/devsjava_licensed/CBMSManuscript.zip • B. P. Zeigler, H. Preahofer, T. G. Kim, Theory of Modeling and Simulation, New York, NY, Academic Press, 2000. • http://www.acims.arizona.edu
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
SYSTEM output input state
SYSTEM Input trajectory Output trajectory output input state We view systems as having input and output interfaces (input ports and output ports) through which they can interact with other systems The term “port” signifies a specific means of interacting with the system. Ports are the only channel through which one can interact with the system. The time-indexed inputs to systems are called input trajectories The time-indexed outputs are called output trajectories State and initial state
A Forest System lightning smoke rain FOREST wind
Discrete Time Systems Input trajectory Output trajectory output input state Continuous systems – differential equation system specification Discrete time systems – difference equation – discrete time system specification
output input Discrete Event Systems output input state The system is driven by events Discrete time systems is a special case of discrete event systems Discrete event system specification (DEVS) FSM, petri net, etc.
modeling relation simulation relation Basic Entities and Relations in Modeling and Simulation Experimental Frame Device for executing model Real World Simulator Data: Input/output relation pairs 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
DEVS Models There are two kinds of Models in DEVS • Atomic Model • Coupled Model
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
x x 0 1 Discrete Event Time Segments X t1 t0 t2 (S,e) X Y S e y0 Y
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 internaltransition 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.
Make a transition (internal) Make a transition (external) input State external internal time advance Handle input output output Hold for some time Send an output Dynamic of Atomic Model
start out receptive active passive fire refract Atomic Model Examples pulse Pulse Generator time Pulse Generator interPulseTime >0 Output start ta = ∞ Output Fire-once Neuron Input Firing delay >0 ta = ∞ ta = ∞ external event Internal event output event
Internal Transition /Output Generation output Generate output s’ Time advance s Make a transition using the output function using the internal transition function Discussion: time advance =0, = Infinity
Response to External Input input Make a transition using the external transition function elapsed time Time advance
Response to Simultaneous External Input and Internal Event output input Make a transition Generate output elapsed time using the confluent transition function Time advance
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.
DEVS Coupled Model Elements of coupled model: • Components • Interconnections • Internal Couplings • External Input Couplings • External Output Couplings
Coupling in Action Coupling (internal) AB B A Output port Input port internal State external time advance output internal State external time advance output
DEVS Hierarchical Modular Composition Atomic: lowest level model, contains structural dynamics -- model level modularity Coupled: composed of one or more atomic and/or coupled models hierarchical construction + coupling
FireOnce Neuron 1 pulseIn pulseOut FireOnce Neuron 2 pulseOut pulseIn Pulse Generator pulseOut pulseIn FireOnce Neuron 4 pulseOut FireOnce Neuron 3 pulseIn pulseOut Coupled Model Example – Neuron net can compute the shortest path in a directed graph by mapping distances of edges to equivalent time values. • 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. 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. Back to the forest fire monitor system
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); • }
Basic Generator Concepts third Duration second Duration 0 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"); }
Coupled Model Example: using a basic generator to dynamically set the period of a pulse generator boxCar public class boxCar extends ViewableDigraph{ public boxCar(){ super("boxCar"); ViewableAtomic basic = new basicGenr("basic",15,20,14, 2,1,1000); \\ d1,d2,d3 ,p1,p2,p3 add(basic); ViewableAtomic pg = new pulseGenr("pg"); add(pg); addCoupling(basic,"out",pg,"setInterPulseTime"); }
Homework • Read Chapter 1 chapter 2, Chapter 3 • Install DEVS JAVA • Next class – More details on DEVS JAVA • Next class – take any questions, Modeling in DEVSJAVA