Processing Network Simulation
In a Processing Network (PN) simulation, often called process-oriented simulation, processing objects (representing, e.g., customers or manufacturing parts) enter a system via arrival events at an entry node and then flow along a chain of processing nodes (representing, e.g., sevice desks or manufacturing machines) where they are subject to processing activities before they leave the system at an exit node via a departure event.
The PN paradigm is explained in Operations Management and Reengineering, Christoph H. Loch, European Management Journal, 16, 306-317, 1998.
The concepts of PN modeling are based on the fundamental DES modeling concepts of objects, events and activities. The nodes of a PN model represent modeling elements that are overloaded with two meanings:
- Defining an entry node means defining both an entry station object (e.g., a reception area or a factory entrance) and an arrival event type for arriving processing objects (such as people or manufacturing parts).
- Defining a processing node means defining both a processing station object (often used as a resource object, such as a workstation or a room) and a processing activity type.
- Defining an exit node means defining both an exit station object and a departure event type.
This semantic overloading makes PN models more concise and easier to read and understand.
While event/activity-based simulation models are typically non-spatial, abstracting away from the spatial properties of their objects, PN simulation models are spatial models based on a (possibly abstract) network space with nodes representing locations.
Due to its intuitive building blocks and its applicability to problems in the manufacturing and service industries, PN modeling is the most widely used DES modeling paradigm. It is supported by many simulation tools, such as Arena, Simio, ExtendSim, Simul8, and AnyLogic, each of them using their own proprietary terminology and diagram language for the same concepts.
The OEM&S concepts for PN modeling are an open alternative to the proprietary PN modeling techniques of these commercial tools, and can be used as a reference conceptual framework for understanding and comparing them.
OES-PN | Arena | Simul8 | Simio | AnyLogic |
---|---|---|---|---|
Processing Object |
Entity |
Work Item |
Token |
Agent |
Entry Node |
Create |
Start Point |
Source |
Source |
Processing Node |
Process |
Queue + Activity |
Server |
Service |
Exit Node |
Dispose |
End Point |
Sink |
Sink |
Entry Nodes
The definition of an entry node combines defining both a (spatial) entry station object and an arrival event type. Real world arrival events have at least two participants: the entry station (or arrival point) object and one or more arriving processing objects. Simulated arrival events may have only one participant (the entry station) in an approach where OOP objects that represent arriving processing objects are created and later (after their departure) destroyed. In any case, the arrived processing objects are either routed to a successor node or placed into an output buffer. Examples of objects that can be modeled as entry nodes are: office or building entrances and mail reception offices.
Basic Features
An entry node object definition may include
- either
- an
arrivalRate
attribute slot for defining the event rate parameter of an exponential probability distribution function used for computing the time between two consecutive arrival events, or - an
arrivalRecurrence
function for computing the recurrence of arrival events (typically, a random variable).
- an
- an
objectsPerArrival
attribute slot for defining the number of objects arriving with each arrival event (either a fixed number or a random variable); - a
maxNmrOfArrivals
attribute slot for defining a maximum number of arrival events after which no more arrival events will be created (and, consequently, the simulation may run out of future events and, as a consequence, end); - either
- a
successorNode
attribute for assigning a fixed successor processing node to which processing objects are routed, or - a
successorNode
function for modeling routing decision logic, or - an
outputBufferCapacity
attribute slot for setting the maximum number of processing objects that may be placed in the output buffer of the node.
- a
Entry nodes have a built-in (read-only) statistics attribute nmrOfArrivedObjects
counting the number of objects that have arrived at the given entry node.
Advanced Features
An entry node definition may include
- an
outputType
slot for defining a custom output object type (instead of the defaultpROCESSINGoBJECT
type); - an
onArrival
event rule method for defining specific state changes or scheduling specific follow-up events.
Processing Nodes
The definition of a processing node combines defining both a (spatial) processing station object and a type of processing activity. A processing node normally has an input buffer and may also have an output buffer, when its processing objects are not pushed to, but pulled from, a successor node. Examples of processing nodes are: service desks, automated teller machines and manufacturing machines. A processing activity performed at a processing station has at least two participants: the station object (often called "server") and one or more processing objects.
In addition to the station object ("server"), a processing activity may require further resources, such that at least one of them plays an actor role. For instance, when modeling a hospital, an operating room may be modeled as a processing station and the medical staff members needed for performing the operation are modeled as further resources (in terms of required actor roles). When modeling a manufacturing plant, a workstation may be modeled as a processing station that plays the role of an actor (possibly jointly with human operators modeled in terms of additional resource roles).
Basic Features
A definition of a processing node may include
- an
inputBufferCapacity
attribute slot for setting the maximum number of processing objects that may be placed in the input buffer of the node (defaults to infinity for representing an unrestricted buffer). - a
processingCapacity
attribute slot for setting the number of processing objects that can be processed in parallel (also called "the number of servers"), which defaults to 1; - a
duration
function for modeling the durations of the node's processing activities, returning either a fixed value or a value sampled from a probability distribution (in which case the function represents a random variable). - either
- a
successorNode
attribute slot for assigning a fixed successor processing node to which processing objects are routed, or - a
chooseSuccessorNode
function for modeling some routing decision logic, or - an
outputBufferCapacity
attribute slot for setting the maximum number of processing objects that may be placed in the output buffer of the node.
- a
Utilization statistics may be computed automatically for all processing node objects and other resource objects that participate in the processing activity performed at the node.
Advanced Features
A processing node definition may include
- an
inputType
slot for defining a custom input type instead of the defaultpROCESSINGoBJECT
input type; - an
inputTypes
collection slot for defining the types of input objects whenever a processing node processes objects of several types; - an
outputTypes
collection slot for defining the types of output objects whenever a processing node transforms input objects of certain types to output objects of certain other types; - an
onActivityStart
event rule method for defining specific state changes or scheduling follow-up events when a processing activity is started; - an
onActivityEnd
event rule method for defining specific state changes or scheduling follow-up events when a processing activity ends.
Exit Nodes
The definition of an exit node combines defining both a (spatial) exit station object and a departure event type. Departure events have at least two participants: the exit station and one or more departing processing objects, which may be removed from the simulation after their departure.
Basic Features
Exit nodes have two built-in statistics attributes:
nmrOfDepartedObjects
counting the number of objects that have departed at the given exit node, andcumulativeTimeInSystem
for adding up the throughput times (also called cycle times) of all departed objects, such that the average time in system (or average throughput time) can be computed at the end of a simulation run.
Advanced Features
An exit node definition may include an onDeparture
event rule method for defining specific state changes or scheduling follow-up events when a processing object departs.