Presentation is loading. Please wait.

Presentation is loading. Please wait.

Before we start Literature review abstract DEVSJAVA license form

Similar presentations


Presentation on theme: "Before we start Literature review abstract DEVSJAVA license form"— Presentation transcript:

1 Before we start Literature review abstract DEVSJAVA license form
This Friday’s Colloquium by Dr. Zeigler

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

3 What is and Why DEVS? 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 Although developed in the filed of modeling and simulation, it represents a modeling paradigm that is closely related to the major themes, such as modeling, designing, and verification, in software engineering.

4 SYSTEM output input state

5 SYSTEM output input state
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 example – A lecturing classroom, a screen savor program

6 A Forest System …… lightning fire FOREST rain wind lightning rain wind
Weather lightning rain wind …… Modeling and simulation interests How to capture that?

7 Discrete Time Systems output input state
Input trajectory Output trajectory output input state Continuous systems – differential equation system specification. Example, a water tank, a heat diffusion system, etc. Discrete time systems – difference equation – discrete time system specification. Example, computer implementation for a water tank, a heat diffusion system, etc. Discrete event systems ?

8 Discrete Event Systems
output input output input state The system is driven by event Discrete time systems is a special case of discrete event systems Discrete event system specification (DEVS) FSM, petri net, etc. Back to the classroom example

9 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

10 DEVS Models There are two kinds of Models in DEVS Atomic Model
Coupled Model

11 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 (S,e) X Y

12 DEVS Atomic Model Formalism

13 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

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

15 Atomic Model Examples Simple out start Generator Simple Generator
pulse Simple Generator out start time Simple Generator Output interPulseTime >0 start passive active ta = ∞ receptive refract Input fire Firing delay >0 Output Fire-once Neuron ta = ∞ external event Internal event output event

16 A DEVSJAVA Demo of a Generator Model (Model genr in simpArc)

17 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

18 Response to External Input
Make a transition using the external transition function elapsed time Time advance Discussion: multiple inputs at the same time

19 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

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

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

22 DEVS Coupled Model Elements of coupled model: Components
A B AB AB Components Interconnections Internal Couplings External Input Couplings External Output Couplings

23 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

24 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

25 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. Back to the forest fire management system

26 A forest fire management system
Decision Making System fire alarm fire fighting efforts lightning fire FOREST rain wind Weather lightning rain wind …… Fire Monitor System

27 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);

28 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

29 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");

30 Example of basicGenr: Scuba Diving Plan
surface 15 ft 10 min 40 ft 20 min 60 ft 20 min A diver drops immediately to 60 ft depth, stays there for 20 min., then rises to 40 ft, depth staying 20 min., and finally spends 10 minutes at 15ft before rising to the surface. Modify the basicGenr to represent this dive plan. Your model should output the new depth to which the diver goes at each stage.

31 Class pulseGenr -- generates pulses whose size and frequency can be specified
start stop active passive out interPulseTime public void initialize(){ super.initialize(); holdIn("active",interPulseTime); } public void deltext(double e,message x){ Continue(e); // add setPulse and setTime if (somethingOnPort(x,"start")) else if (somethingOnPort(x,"stop")) passivate(); public void deltint(){ holdIn("active",interPulseTime); } public message out(){ return outputRealOnPort(pulse,"out"); Note: stop and start do not remember the time already elapsed in last period; this can be done by employing the elapsed time, e.

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

33 Handout--Chapter 2: p13-p18

34 Homework Read Chapter 1 chapter 2, chapter 3 Install DEVS JAVA
Decide project topic – some project ideas, 3 member group Next class – literature research topic Next class –DEVSJAVA Lab Session, bring laptop with installed DEVSJAVA Next class – take home exam

35 Recursive Location Management Schema in Wireless Network
Mobile agent (tentative) Traffic Systems Modeling And Simulation Baby Delivery Room Simulation distributed, collaborative editing system Data Submission Management Mobile Sensors Network Routing Case Management Process within the SAMS. Quantitative performance prediction and decision-making tool based on DEVS Simulation of Neural Network (NN) Using DEVS Travelers Entering Through Immigration Store Check-Out System Simulation Optical Interconnection Networks Modeling and Simulation Simulation of a Public Computing Architecture RNA and Mg2+ interaction simulation


Download ppt "Before we start Literature review abstract DEVSJAVA license form"

Similar presentations


Ads by Google