DEVS Coupled Model - PowerPoint PPT Presentation

1 / 10
About This Presentation
Title:

DEVS Coupled Model

Description:

boxCar. Coupled Model Example: using a basic generator to dynamically set the period of a pulse generator. pulseModels. boxCar ... – PowerPoint PPT presentation

Number of Views:22
Avg rating:3.0/5.0
Slides: 11
Provided by: bernardp
Category:
Tags: devs | boxcar | coupled | model

less

Transcript and Presenter's Notes

Title: DEVS Coupled Model


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

pulseModels. fireOnce NeuronNet
2
Coupling in Action
pulseModels. fireOnce NeuronNet
Coupling (internal)
AB
B
A
Output port
Input port
internal
State
external
time advance
output
internal
State
external
time advance
output
3
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.

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.
4
Some Types of Models Represented in DEVS
Coupled Models
Atomic Models
Partial Differential Equations
can be components in a coupled model
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
Self Organized Criticality Models
Fuzzy Logic Models
Reactive Agent Models
Multi Agent Systems
5
Basic Atomic Methods
genDevs. modeling. atomic
  • 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 lt INFINITY)
  • sigma sigma - e
  • public void holdIn(String phase, double sigma)
  • this.phase phase

6
Fire-once Neuron
This neuron fires exactly once after a fixed
delay while ignoring all subsequent inputs
public void initialize() super.initialize() pass
ivateIn("receptive") public void
deltext(double e,message x) Continue(e) if
(phaseIs("receptive") somethingOnPort(x,"in")) h
oldIn("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")) pas
sivateIn("refract") public message
out() //if (phaseIs("fire")) return
outputNameOnPort("pulse","out")
sigma
pulseModels foreOnceNeuron
elapsed time
pulse
output
7
Basic Generator Concepts
pulseExpFrames. basicGenr
third Duration
second Duration
First Duration
0
first
second
passive
third
active
public void initialize() super.initialize() hold
In("active",0) public void deltext(double
e,message x) Continue(e) if
(somethingOnPort(x,"start")) holdIn("first",firs
tDuration) 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",third
Duration) else passivate() public message
out() if (phaseIs("active")) return
outputRealOnPort(firstOutput,"out") else if
(phaseIs("first")) return outputRealOnPort(secondO
utput,"out") else if (phaseIs("second")) return
outputRealOnPort(thirdOutput,"out") else //if
(phaseIs("third")) return outputRealOnPort(0,"out"
)
8
Example of basicGenr Scuba Diving Plan
surface
15 ft
10 min
40 ft
20 min
pulseModels. scubaModel
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.
9
Class pulseGenr -- generates pulses whose size
and frequency can be specified
out
pulseExpframes pulseGenr
interPulseTime
public void initialize() super.initialize() hold
In("active",interPulseTime) public void
deltext(double e,message x) Continue(e) if
(somethingOnPort(x,"start")) holdIn("active",int
erPulseTime) else if (somethingOnPort(x,"stop"))
passivate()
public void deltint() holdIn("active",interPuls
eTime) 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.
10
Coupled Model Example using a basic generator to
dynamically set the period of a pulse generator
boxCar
pulseModels boxCar
public class boxCar extends ViewableDigraph pub
lic boxCar() super("boxCar") ViewableAtomic
basic new basicGenr("basic",15,20,14,
2,1,1000)
\\ d1,d2,d3 ,p1,p2,p3 add(basic) Viewabl
eAtomic pg new pulseGenr("pg") add(pg) addCo
upling(basic,"out",pg,"setInterPulseTime")
Write a Comment
User Comments (0)
About PowerShow.com