Approach and Techniques for Building Component-based Simulation Models Bernard P. Zeigler, Ph.D. Hessam S. Sarjoughian, Ph.D. Arizona Center for Integrative Modeling and Simulation (ACIMS) Arizona State University University of Arizona www.acims.arizona.edu Google: ACIMS and Joint Interoperability Test Command (JITC) Fort Huachuca, AZ
Outline Basic principles of M&S from a system-theoretic worldview Component-based characterization of dynamic systems Unified framework for discrete and continuous models Discrete event system specification (DEVS) formalism Modular, hierarchical model composition Systems theory support of model reusability and composability Experimental Frame and model validation Simulation verification using the concept of abstract simulators DEVSJAVA, a modular, hierarchical simulation environment DEVS component-based M&S over network centric middleware
M&S Entities and Relations Device for executing model Real World Simulator Data: Input/output relation pairs modeling relation simulation relation Each entity is represented as a dynamic system Each relation is represented by a homomorphism or other equivalence Model structure for generating behavior claimed to represent real world
M&S Entities and Relation(cont’d) Experimental Frame Real World Simulator modeling relation simulation relation Experimental frame specifies conditions under which the system is experimented with and observed captures modeling objectives needed for validity, simplification justifications Model
Dynamic Systems Framework for Continuous and Discrete Models Simulator: Numerical Integrator DESS model: dq/dt = a*q +bx System Specification: DESS: differential equation DTSS: discrete time DEVS: discrete event Simulator: Recursive Algorithm System DTSS model: q(t+1) = a*q(t)+ b*x(t) System Simulator: Event Processor DEVS model time to next event, state at next event ...
Dynamic Systems Framework for Continuous and Discrete Models (cont’d)
Discrete Event Time Segments x x 1 X t0 t1 t2 S e y0 Y
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 Theory of Modeling and Simulation, 2nd Edition, Academic Press, 2000, Bernard P. Zeigler, Herbert Praehofer, Tag Gon Kim
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
DEVS Component-Based Expressability Coupled Models Atomic Models can be components in a coupled model Partial Differential Equations Ordinary Differential Equation Models Processing/ Queuing/ Coordinating Networks, Collaborations Physical Space Spiking Neuron Networks Spiking Neuron Models Processing Networks Petri Net Models n-Dim Cell Space Discrete Time/ StateChart Models Stochastic Models Cellular Automata Quantized Integrator Models Fuzzy Logic Models Self Organized Criticality Models Reactive Agent Models Multi Agent Systems
DEVS Theoretical Properties Closure Under Coupling Universality for Discrete Event Systems Representation of Continuous Systems quantization integrator approximation pulse representation of wave equations Simulator Correctness, Efficiency
DEVS Atomic Model 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.
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
Internal Transition /Output Generation Generate output using the output function Time advance using the internal transition function s Make a transition s’
Response to External Input Make a transition using the external transition function elapsed time Time advance
Response to Simultaneous External Input and Internal Event output input Generate output Make a transition elapsed time using the confluent transition function Time advance
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
Coupled Model Example – Neuron net FireOnce Neuron 1 Neuron 3 Neuron 2 pulseIn pulseOut Neuron 4 Pulse Generator FireOnce Neuron Network can compute the shortest path in a directed graph by mapping distances of edges to equivalent time values.
We separated models and simulators – now we bring them together DEVS Simulation Protocol Single processor C++ Java Distributed Simulator DEVS Simulator Other Representation Real-Time Simulator Non DEVS The DEVS simulation protocol is the agreement between the DEVS modeler and the implemented simulator
DEVS Simulation Protocol Classes Stand alone atomic models are assigned to AtomicSimulators Atomic models as components within coupled models are assigned to coupledSimulators Atomic Simulator coupledSimulator coordinator 1:n Coupled models are assigned to coordinators 1:n coupledCoordinator Coupled models as components within coupled models are assigned to coupledCoordinators genDevs. simulation. coupledSimulator genDevs. simulation. coordinator
Atomic Model Simulator Every atomic model has a simulator assigned to it which keeps track of the time of the last event, tL and the time of the next event, tN. Initially, the state of the model is initialized as specified by the modeler to a desired initial state, sinit. The event times, tL and tN are set to 0 and ta(sinit), respectively. If there are no external events, the clock time, t is advanced to tN, the output is generated and the internal transition function of the model is executed. The simulator then updates the event times as shown, and processing continues to the next cycle. If an external event is injected to the model at some time, text (no earlier than the current clock and no later than tN), the clock is advanced to text. If text == tN the output is generated. Then the input is processed by the confluent or external event transition function, depending on whether text coincides with tN or not. m timeline (abstract or logica) tL tN inject at time t s =: s init tL =: 0 tN =: ta(sinit) If t == tN generate output (s) When receive m if m!= null and t < tN, s := ext (s,t-tN,m) if m!= null and t == tN, s := con (s,t-tN,m) if m= null and t == tN, s =: int (s) Legend: m = message s = state t = clock time tL = time of last event tN = time of next event tL =: t tN =: t + ta(s)
Basic DEVS Simulation Protocol For a coupled model with atomic model components, a coordinator is assigned to it and coupledSimulators are assigned to its components. In the basic DEVS Simulation Protocol, the coordinator is responsible for stepping simulators through the cycle of activities shown. Coupled Model Coordinator: Coordinator sends nextTN to request tN from each of the simulators. All the simulators reply with their tNs in the outTN message to the coordinator Coordinator sends to each simulator a getOut message containing the global tN (the minimum of the tNs) Each simulator checks if it is imminent (its tN = global tN) and if so, returns the output of its model in a message to the coordinator in a sendOut message. Coordinator uses the coupling specification to distribute the outputs as accumulated messages back to the simulators in an applyDelt message to the simulators – for those simulators not receiving any input, the messages sent are empty. 1 nextTN Coupled Model 3 getOut coordinator 5 applyDelt 4 sendOut 2. outTN simulator Component tN tN. tL simulator Component tN tN. tL simulator Component tN tN. tL After each transition tN = t + ta(), tL = t Each simulator reacts to the incoming message as follows: If it is imminent and its input message is empty, then it invokes its model’s internal transition function If it is imminent and its input message is not empty, it invokes its model’s confluence transition function If is not imminent and its input message is not empty, it invokes its model’s external transition function If is not imminent and its input message is empty then nothing happens.
DEVS as the basis for Network Centric M&S Discrete Event Formalisms Discrete Time Systems Diff Eqn. Systems DEVS Model DEVS Model DEVS Model Simulator Simulator Simulator message message message Translator Translator Translator Network Centric Middleware – NCES