Class Spn_metrics
S. Balsamo, A. Marin, I. Stojic, FGCS 111 (2020) 475-490, Sec. 3.1 for the definitions and Sec. 5.3 for the recursions they are read off.
n(P_j) = sum_k k P(m_j = k) mean tokens u(P_j) = 1 - P(m_j = 0) place utilization u(T_j) = P(e_j >= 1) transition utilization x(T_j) = sum_k min(k, c_j) W(T_j) P(e_j = k) throughput x(P_j) = sum_T I_j(T) x(T) tokens removed per unit time
ONE DEVIATION FROM THE PAPER'S x(T_j), AND IT IS A GENERALISATION. The paper writes x(T_j) = sum_k k W(T_j) P(e_j = k), which is INFINITE-SERVER firing semantics -- every enabling set fires in parallel. LINE's own rate law is min(enabling degree, nmodeservers) * W(T), so c_j above is the mode's server count: c_j = 1 recovers single-server semantics, x = W(T) P(e >= 1), and c_j = infinity recovers the paper's formula exactly. Using the paper's form for a single-server mode would report a throughput that grows with the token population of a net whose transition can only fire one set at a time.
The measures come out of ONE reachable set and ONE set of g_l, so they are mutually consistent by construction: no per-measure fixed point, no iteration.
MATLAB twin: spn_metrics.m. Python twin:
api/spn/metrics.py.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classThe stationary measures of Sec. -
Method Summary
Modifier and TypeMethodDescriptionstatic Spn_metrics.SpnMetricsResultspn_metrics(MddStruct mdds, double[][] g, Spn_mdd.SpnInfo info) Every measure of Sec.
-
Method Details
-
spn_metrics
public static Spn_metrics.SpnMetricsResult spn_metrics(MddStruct mdds, double[][] g, Spn_mdd.SpnInfo info) Every measure of Sec. 3.1 from one diagram and one product form.- Parameters:
mdds- the reachable set built bySpn_mddg- per-level product-form factors g_l(v)info- the metadataSpn_mddreturned alongside the diagram- Returns:
- the stationary measures
-