1 / 27

DEVS-based Modeling and Simulation

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

charleyb
Download Presentation

DEVS-based Modeling and Simulation

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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

  2. 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

  3. SYSTEM output input state

  4. 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

  5. A Forest System lightning smoke rain FOREST wind

  6. 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

  7. 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.

  8. 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

  9. DEVS Models There are two kinds of Models in DEVS • Atomic Model • Coupled Model

  10. 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

  11. DEVS Atomic Model Formalism

  12. x x 0 1 Discrete Event Time Segments X t1 t0 t2 (S,e) X Y S e y0 Y

  13. 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.

  14. 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

  15. 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

  16. 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

  17. Response to External Input input Make a transition using the external transition function elapsed time Time advance

  18. Response to Simultaneous External Input and Internal Event output input Make a transition Generate output elapsed time using the confluent transition function Time advance

  19. 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.

  20. DEVS Coupled Model Elements of coupled model: • Components • Interconnections • Internal Couplings • External Input Couplings • External Output Couplings

  21. Coupling in Action Coupling (internal) AB B A Output port Input port internal State external time advance output internal State external time advance output

  22. 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

  23. 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

  24. 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); • }

  25. 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"); }

  26. 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"); }

  27. 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

More Related