Theme
Creating Places, Transitions, and Arcs
The three fundamental building blocks of a Stochastic Petri Net in Jupiter are places, transitions, and arcs. Together, they describe workload routing, shared resource pools, and system execution dynamics.
Places and Tokens
Places are represented graphically by circles. They function as containers for tokens. The state of the system at any given moment is defined by the distribution of tokens across all places in the net (the marking).
What a token represents
The meaning of a token depends on which place it occupies:
| Place | A token represents |
|---|---|
Queue | A customer or request waiting for service |
InService | An item actively being processed |
Worker | An idle server or attendant available to take work |
Slots | Available capacity in a bounded queue or buffer |
Notice the last two entries: not every token is an item flowing through the system. Tokens often represent shared resource availability or free space. This mechanism is what enables modeling concurrency and physical capacity limits.
Initial Marking
Every place begins the simulation with an initial number of tokens:
Queue: starts with0(system begins empty).Worker: starts with1or the parameterWORKERS(resources available at time zero).Slots: starts with parameterBUFFER_CAPACITY(initial free positions).
Use parameters in initial markings
Instead of typing literal numbers like 10 into a place's initial marking, create a parameter (e.g., SLOTS) and enter its name. This allows you to adjust the capacity from a single location or sweep across values in scenario studies.
Semantic Naming Practices
Meaningful names make metric formulas intuitive:
E{#Queue} + E{#InService} ← Self-explanatory
E{#P1} + E{#P2} ← Requires consulting the diagramUse letters, numbers, and underscores (_). Avoid spaces, accents, and hyphens.
Transitions
Transitions are represented by rectangles and model events or activities: a request arrives, a worker begins processing, or a task finishes.
How a transition works
Transitions connect to places via directed arcs. A transition consumes tokens from its input places and produces tokens in its output places:
Queue ──▶ [ Service ] ──▶ CompletedTo be enabled to fire, a transition requires that all of its input places possess the necessary number of tokens. Once enabled, the transition fires and moves the tokens accordingly.
Immediate and Timed Transitions
| Type | Graphical symbol | Firing behavior |
|---|---|---|
| Immediate | Solid filled rectangle | Fires instantly in zero simulation time |
| Timed | Outlined rectangle | Waits for a sampled duration before transferring tokens |
Immediate Transitions
Used for instantaneous decisions and routing:
- Priority: When multiple immediate transitions compete for the same tokens, the one with the highest priority fires first.
- Weight: Among immediate transitions with equal priority, weights define a proportional lottery (e.g., weights
3and1split the flow 75% and 25%).
Timed Transitions
Used for activities that take time: network transfers, CPU execution, manual handling, or external delays. Detailed configuration of durations is covered in Configuring Transitions and Delays.
Why split into immediate and timed transitions
Instead of modeling a service step in a single transition, standard practice divides it into two phases:
Queue + Worker ──▶ [ Start (Immediate) ] ──▶ InService ──▶ [ End (Timed) ] ──▶ WorkerThis pattern creates the explicit place InService. It is from this place that you compute the two most critical performance metrics:
- Utilization:
(E{#InService} / WORKERS) * 100 - Throughput:
E{#InService} / SERVICE_TIME
Without the intermediate place, there is nowhere for tokens to reside while being serviced.
Transitions without inputs
A timed transition with no input arcs functions as an external workload generator: at regular or stochastic intervals, it produces new tokens in its output place, modeling external request arrivals.
Arcs
Arcs are directed arrows connecting places and transitions:
- Input Arc (Place → Transition): Indicates that the transition consumes tokens from that place.
- Output Arc (Transition → Place): Indicates that the transition deposits tokens into that place.
Multiplicity (Arc Weight)
By default, an arc transfers 1 token. Setting the multiplicity of an arc allows batch operations:
- An input arc with multiplicity
4requires and consumes 4 tokens simultaneously. - An output arc with multiplicity
2produces 2 tokens per firing.
Flow conservation check
If an input arc consumes 2 tokens and the output produces 1, each firing destroys a token. Unless this represents intentional aggregation (such as assembling parts into a composite item), make sure input and output counts balance properly.
Next steps
Learn how to configure durations and probability distributions in Configuring Transitions and Delays.