690 likes | 853 Views
Modeling Worldviews. Activity Scanning – Petri Nets and Event Graphs Event Scheduling – Event Graphs State Machines Process Interaction –Block Flow Diagrams and Event Graphs. Petri Nets: Definition and Behavior.
E N D
Modeling Worldviews • Activity Scanning – Petri Nets and Event Graphs • Event Scheduling – Event Graphs State Machines • Process Interaction –Block Flow Diagrams and Event Graphs
Petri Nets: Definition and Behavior Bipartite Directed Graph with Place (balls) and Transition (bars) Nodes Marking: Multiple Tokens at Places (Indicate State of Resident Entities)
Petri Nets: Definition and Behavior Firing Rule: A transition “fires” when ALL of its input places are marked. A token is removed from each input place and added to each output place.
Petri Nets: Definition and Behavior How might we keep Net Alive?
PN Enrichments for Simulation • Non-Zero (Random) Firing Times: Random process indices • Colored Tokens: Different classes of transient entities - change colors? • Input and Output Counts: Analytical and aggregation production • Inhibitor arcs: Prevents firing...resource priorities
Non-Zero (Random) Firing Times: Random process indices When a transition is enabled, a timer starts. After it times out, the transition fires. Remove on Fire rule = remove and deposit tokens when the transition fires. Remove on Enable rule = remove tokens when timer starts, deposit tokens when it times out (used here to save space).
PN Example: G/G/1 Queue Number of Idle Servers Number in Queue T T s a (Random Firing Times)
Petri Nets • Example: Tandem queue with limited input A Q t t 2 1 100
Activity Modeling View What you get when FINISH Activity Things needed to START Activity Activity . . . Time = Duration of Activity
Tandem Queue with Buffer – Production Blocking B T T s s 2 Q Q S S What about Communication Blocking?
PN Enrichments for Simulation • Transition Input and Output Counts 2 T T T 1 a 2 3
PN Enrichments for Simulation • Inhibitor Arcs (Fail/Repair Model) Working Machines t f Failed Machines t r
Time Bound Sequence Tc 1 2 Ta between arrivals T1 T2 Job must start step 2 within TC of finishing step 1. Give a Petri Net for this system?
(timer expired) Tc (scrap) Time Bound Sequence...Error? T1 Ta T2 (timer running)
(timer expired) Tc (scrap) (kill timer) Time Bound Sequence...Error? T1 Ta T2 (timer running)
(timer expired) Tc (scrap) (kill timer) Time Bound Sequence...Error? Q2 T1 Ta T2 (timer running) What if there are no tokens at Q2 and 1 active transition in Tc? (“Timer expired” place may grab next part from Q2 early!)
(timer expired) Tc (scrap) (kill timer) Time Bound Sequence... R2 R1 Q1 Q2 T1 Ta T2 (timer terminator) (zero-time transition) Note: need to set transition priorities to make killing the timer have priority if resource R2 becomes idle simultaneously with the timer expiring. (inhibitor arc)
Petri Nets - Summary • Modeling: • Concurrency and contention (Simultaneous Resource Usage) • Analysis: • Reachability tree, CTMC Analysis, and much more!
Alternative Implementations • Activity World View Petri Net Formalism: Simple fundamental elements and behavior Concurrent resource usage and contention • Event Scheduling View Event Graph Formalism: Simple fundamental element and behavior Concurrency and contention - large model representations
PN->EG MAPPING Transitions become timed edges Places become conditional edges
PN->EG Mapping: eg. G/G/s queue S PN: Q A T T s a
PN->EG Mapping: eg. G/G/s queue S PN: Q A T T s a EG: T T a s {A++, {A--} {Q--, {S++} Q++} S--}
PN->EG Mapping: eg. G/G/s queue S PN: Q A T T s a (A) EG: (S&Q) (S&Q) T T a s {A++, {A--} {Q--, {S++} Q++} S--}
PN->EG Mapping: eg. G/G/s queue Variable A is unnecessary! (A) (S&Q) (S&Q) T T a s {A++, {A--} {Q--, {S++} Q++} S--}
PN->EG Mapping: eg. G/G/s queue Empty Vertex is unnecessary! (S&Q) (S&Q) T T a s { Q++} {Q--, {S++} S--}
PN->EG Mapping: eg. G/G/s queue S&Q conditions redundant too... (S&Q) (S&Q) T T a s { Q++} {Q--, {S++} S--}
PN->EG Mapping: eg. G/G/s queue Result: a conventional G/G/s queue EG model (Q) T a (S) T s { Q++} {Q--, {S++} S--}
PNEG MAPPING P = set of Places, T = set of transitions in PN d(t) = delay time (RV) for transition tT {Ip(t),Op(t)}= Set of Input and Output Places for tT {It(p),Ot(p)}=Set of Input and Output Transitions for pP Step 0. pP: define an integer state variable, X(p). Step 1. tT: create an edge (O(t), D(t)) with delay d(t). Step 2. pP with unique (It(p),Ot(p)) pair: create the edge (D(It(p)),O(Ot(p))) with the condition that all pIp(Ot(p)) are marked. (For inhibitor arcs these places must not be marked.) Step 3. Add State changes: for O(t), decrement X(p) pIp(t); for D(t), increment X(p) pOp(t). Advanced homework: Confirm this or find a counter example.
Analytical Methods and Conditions • PNs Reachabilty, decidability, liveness, and deadlock • EGs State definition, event reduction, priorities, equivalence, boundary conditions, resource deadlock, MIP representations
COMMUNICATIONS BLOCKING (R1 needs empty buffer to Start) ... ... ... R1,R2 = Number of idle resources Q1,Q2 = Number of waiting jobs B = Number of empty buffer spaces ta,ts1,ts2 = Arrival and processing times
R1 R2 A Q1 Q2 W ts2 ta ts1 0 B COMMUNICATIONS BLOCKING: Petri Net Q1 = number of jobs waiting in queue 1 Q2 = number waiting in queue 2 R1 = idle resources for step 1 R2 = idle resources for step 2 B = available buffer slots
ts1 ts2 0 Each transition becomes a timed edge... R1 R2 A Q1 Q2 W ts2 ta ts1 0 B ta
(Q2&R2) (Q1&R1&B) ~ ~ ~ (Q1&R1&B) (Q2&R2) 0 ts2 ta ts1 ~ ~ ~ (W) ~ Next, each place becomes a conditional edge... (ALL input places marked is condition) R1 R2 A Q1 Q2 W ts2 ta ts1 0 B (A) (Q1&R1&B)
A Q1 Q2 W ts2 ta ts1 0 B Mapping Petri Net to Event Graph Finally, increment and decrement tokens as state changes R1 R2 ta (Q2&R2) (A) (Q1&R1&B) ~ ~ ~ (Q1&R1&B) (Q2&R2) 0 ts2 ta (W) ts1 ~ ~ ~ {A++, Q1++} {R2-- Q2--} {A--} {R1++, Q2++} {R2++} {Q1--, R1--. B--} {W++ B++} {W--} ~ (Q1&R1&B)
(Q2&R2) (A) (Q1&R1&B) ~ ~ ~ (Q1&R1&B) (Q2&R2) 0 ts2 ta (W) ts1 ~ ~ ~ {A++, Q1++} {R2-- Q2--} {A--} {R1++, Q2++} {R2++} {Q1--, R1--. B--} {W++ B++} {W--} ~ (Q1&R1&B) Final Event Graph: How can this be simplified? (ref: Seila, et. al. Text)
A Simplified Event Relationship Graph (Q2) (Q1&B) ~ ~ (R1&B) (R2) ta ts2 ts1 ~ ~ {R1++, Q2++} {R2-- Q2-- B++} {Q1--, R1--. B--} {Q1++} {R2++} ~ (Q1&R1)
Implications • PN analysis of Event Graphs State reachability Liveness Deadlock • EG analysis of Petri Nets State space Model reduction Equivalence Boundary Conditions Resource Deadlock
EG -> PN Mapping Remove-on-Fire Rule Remove-on-Enable Rule
Examples of Petri Net Models – Activity Scanning Models Inhibitor arc Ref: Peter Haas’ book on Stochastic Petri Nets – resets all timers each scan, prob. deposit Remove on Fire rule – vs Remove on enable (Ref: Fishwick) Simulation – Activity Scanning algorithm. (Cancel if transition is disabled!)
Note: is an “event graph” – one out-transition per place State dep deposit to d11 or d12...
“Modeling Activities with ERGs” tF B M “failing” – need “new” machine get broken machine tR R,B “fixing” – need broken machine and repairman get good machine and repairman M,R “Implied ERG” tF B M M = “new” machines B = broken machines waiting R = idle repairmen {M--} {B++} ~ (R) tR B,R R,M ~ {R++, M++} {R--, B--} (B)
“Implied ERG” tF B M {M--} {B++} M = “new” machines B = broken machines R = idle repairmen ~ (R) tR B,R R,M ~ {R++, M++} {R--, B--} (B) Exercise: can you further reduce this? hint: assume more machines than repairmen. Define new variable(s). “Reduced ERG – M is not tested” B {B++} ~ (R) tF tR B,R R ~ {R++} {R--, B--} (B)
B {B++} ~ (R) tF tR B,R R ~ {R++} {R--, B--} R = total number of repairmen (const.) B = number of broken machines (incl in rep.) (B) tR Fail ~ (B<=R) {B++} (B>=R) ~ Fix tF {B--}
Colored Petri Nets (transitions are enabled by color or tokens)