DEVS Background DEVS = Discrete Event System Specification

Slides:



Advertisements
Similar presentations
Parallel and Distributed Simulation
Advertisements

Extended DEVSML as a Model Transformation Intermediary to Make UML Diagrams Executable Jianpeng Hu Dept. of Computer Science and Engineering Shanghai Jiao.
Lookahead. Outline Null message algorithm: The Time Creep Problem Lookahead –What is it and why is it important? –Writing simulations to maximize lookahead.
Ordering and Consistent Cuts Presented By Biswanath Panda.
An Introduction to Input/Output Automata Qihua Wang.
Programming Language Semantics Mooly SagivEran Yahav Schrirber 317Open space html://
WSN Simulation Template for OMNeT++
Replacing Hardware With Software Analysis and simulation of existing hardware using Discrete Event System Specification. By:Philip Felber Aman Gupta Imaduddin.
Simulation Waiting Line. 2 Introduction Definition (informal) A model is a simplified description of an entity (an object, a system of objects) such that.
DEVS and DEVS Model Dr. Feng Gu. Cellular automata with fitness.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
Review. A_DA_A Ball_A Ball_B player_A B_DB_A Ball_B Ball_A player_B Ball_A Ball_B A_A, B_DA_D, B_A Ball_A Ball_B CFSM Player_A  : X  S  S X A = {Ball_A}
Chapter 10 State Machine Diagrams
(C) 2009 J. M. Garrido1 Object Oriented Simulation with Java.
WAN technologies and routing Packet switches and store and forward Hierarchical addresses, routing and routing tables Routing table computation Example.
DEVS Namespace for Interoperable DEVS/SOA
Rate-based Data Propagation in Sensor Networks Gurdip Singh and Sandeep Pujar Computing and Information Sciences Sanjoy Das Electrical and Computer Engineering.
Discrete Event Modeling and Simulation of Distributed Architectures using the DSSV Methodology E. de Gentili, F. Bernardi, J.F. Santucci University Pascal.
Develop DEVS Models Using DEVSJAVA Dr. Feng Gu. DEVS atomic model Elements of an atomic model input events output events state variables state transition.
Modelling III: Asynchronous Shared Memory Model Chapter 9 by Nancy A. Lynch presented by Mark E. Miyashita.
ECE 449/549 Class Notes #1 Introduction to System Modeling Concepts and DEVS Sept
Chapter 5 Implementing UML Specification (Part II) Object-Oriented Technology From Diagram to Code with Visual Paradigm for UML Curtis H.K. Tsang, Clarence.
Modelling DEVS applications The CD++ tool
OPERATING SYSTEMS CS 3530 Summer 2014 Systems with Multi-programming Chapter 4.
Unifying Discrete and Continuous Simulation with Discrete Events: DEVS as the Next Modeling Standard Bernard P. Zeigler Arizona Center for Integrative.
DEVS Based Modeling and Simulation of the CORBA POA F. Bernardi, E. de Gentili, Pr. J.F. Santucci {bernardi, gentili, University.
DEVS M&S Tutorial 2 Chungman Seo
Simulator Protocol. coordinator simulator Component tN tN. tL After each transition tN = t + ta(), tL = t simulator Component tN tN. tL simulator Component.
States.
DEVS and SES as a Framework for Modeling and Simulation Tool Development Bernard P. Zeigler Arizona Center for Integrative Modeling and Simulation University.
Transforming DEVS to Non-Modular Form For Faster Cellular Space Simulation Arizona Center for Integrative Modeling and Simulation Electrical and Computer.
ECE 449/549 Class Notes #3 DEVS Simulators and Executors / Methodology : How to model and simulate Sept
DEVS-based Modeling and Simulation References: 1.B. P. Zeigler, Hessam S. Sarjoughian, Introduction to DEVS Modeling and Simulation with JAVA: Developing.
Approach and Techniques for Building Component-based Simulation Models Bernard P. Zeigler, Ph.D. Hessam S. Sarjoughian, Ph.D. Arizona Center for Integrative.
ECE 449/549 Class Notes #2 Introduction to Discrete-Event Systems Specification (DEVS) Sept
PDEVS Protocol Performance Prediction using Activity Patterns with Finite Probabilistic DEVS DEMO L. Capocchi, J.F. Santucci, B.P. Zeigler University of.
Extension du formalisme SES pour l’intégration de la hiérarchie d’abstraction et la granularité temporelle au sein de la modélisation et la simulation.
Reducing Structural Bias in Technology Mapping
Before we start Literature review abstract DEVSJAVA license form
Continue the car washer example Experimental frame
OPERATING SYSTEMS CS 3502 Fall 2017
OPERATING SYSTEMS CS 3502 Fall 2017
Parallel DEVS & DEVSJAVA
Threaded Programming in Python
TrueTime.
IAY 0600 Digitaalsüsteemide disain
Parallel and Distributed Simulation
Modeling and Simulation (An Introduction)
Dynamic Graph Partitioning Algorithm
EA C451 Vishal Gupta.
Timing Model Start Simulation Delay Update Signals Execute Processes
Activity Diagram.
Continue the car washer example Experimental frame
Parallel and Distributed Simulation Techniques
Event Relation Graphs and Extensions in Ptolemy II
18-WAN Technologies and Dynamic routing
SyDEVS Introduction Theory – Paradigm – Implementation
Computer Simulation of Networks
Parallel and Distributed Simulation
States.
Approach and Techniques for Building Component-based Simulation Models
PRESENTATION COMPUTER NETWORKS
Introduction to DEVSJAVA
States.
Market-based Dynamic Task Allocation in Mobile Surveillance Systems
Chapter 4 DEVS Formalism
DEVS Background DEVS = Discrete Event System Specification
Uniprocessor scheduling
STATE MACHINE AND CONCURRENT PROCESS MODEL
STATE MACHINE AND CONCURRENT
Presentation transcript:

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

Basic Entities and Relations in Modeling and Simulation Data: Input/output relation pairs Experimental frame specifies conditions under which the system is experimented with and observed Experimental Frame Simulator simulation relation Device for executing model Real World Structure for generating behavior claimed to represent real world modeling relation Model 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 S

DEVS Atomic Model Formalism

Discrete Event Time Segments x x 1 X t0 t1 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 internal transition function is activated immediately after the output function and causs 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.

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 Modeling the qualifier exam

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

The DEVSJAVA Example: carGenr, carWashCenter

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

Response to External Input Make a transition using the external transition function elapsed time Time advance Discussion: multiple inputs at the same time Discussion: You want to generate an output immediately to respond to the input

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

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.

Basic Atomic Variables genDevs. modeling. atomic Basic Atomic Variables x x 1 X phase sigma: the scheduled remaining time in the current phase t0 t1 t2 (busy, 20) (busy, 10) (wait, infinity) (wait, infinity) S elapse time: the time that elapsed in the current state e y0 Y

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

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

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

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

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

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 External input coupling Internal coupling External output coupling

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.

The DEVSJAVA Example: carWashSys

An carwash example Chapter 4: exercise 1 part a -- car wash To simplify the problem, let’s first assume the system will reject any incoming cars and trucks if it is busy

An carwash example To simplify the problem, let’s first assume the system will reject any incoming cars and trucks if it is busy. Test the model: addTestInput( ) Test the model: create a car generator and couple it to the carWashCenter Add random numbers in generators Create a truck generator and add to the system Add queue Add transducer Make the whole system generate an output Test the model without SimView

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

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