Class Spn_ispn
A net whose single unbounded place P0 is the level of a quasi-birth-death process (B. R. Haverkort, "Performance of Computer Communication Systems: A Model-Based Approach", Wiley, 1998, ch. 17; B. R. Haverkort, A. Ost, PNPM 1997). The iSPN requirements are checked: every firing moves P0 by at most one token, every other place is bounded, and above a threshold level K the levels repeat with level-independent rates. Vanishing markings of immediate transitions are eliminated, R solves A0 + R A1 + R^2 A2 = 0 by logarithmic reduction (Latouche, Ramaswami 1993), the boundary levels 0..K solve x B = 0 with the R A2 correction and the normalisation x_K (I-R)^-1 1, and every measure is in closed form through sums of powers of R, with no truncation of the level.
Indices are 0-based: P0 is the row of the unbounded place in PRE/POST.
MATLAB twin: spn_ispn.m (1-based P0). Python twin:
api/spn/ispn.py.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classstatic classResult ofspn_ispn(double[][], double[][], double[][], double[], boolean[], double[], double[], int); fields as in the MATLAB help. -
Method Summary
Modifier and TypeMethodDescriptionstatic Spn_ispn.Resultspn_ispn(double[][] pre, double[][] post, double[][] inh, double[] rate, boolean[] imm, double[] srv, double[] m0, int p0) static Spn_ispn.Resultspn_ispn(double[][] pre, double[][] post, double[][] inh, double[] rate, boolean[] imm, double[] srv, double[] m0, int p0, Spn_ispn.Options opt) Steady state of an infinite-state SPN.static boolean[]spn_ispn_covered(double[][] C) Places covered by a non-negative S-invariant (P-semiflow) y' C = 0, by Farkas' algorithm on [C | I] keeping minimal supports.
-
Method Details
-
spn_ispn
public static Spn_ispn.Result spn_ispn(double[][] pre, double[][] post, double[][] inh, double[] rate, boolean[] imm, double[] srv, double[] m0, int p0) -
spn_ispn
public static Spn_ispn.Result spn_ispn(double[][] pre, double[][] post, double[][] inh, double[] rate, boolean[] imm, double[] srv, double[] m0, int p0, Spn_ispn.Options opt) Steady state of an infinite-state SPN.- Parameters:
pre- P x T input multiplicitiespost- P x T output multiplicitiesinh- P x T inhibitor thresholds (t disabled when m(p) >= inh), Inf for none; null: nonerate- length-T timed rate, or the weight of an immediate transitionimm- length-T, true for an immediate transition; null: all timedsrv- length-T servers (Inf allowed); null: all 1. A transition with no input fires at rate(t)m0- length-P initial markingp0- 0-based index of the unbounded placeopt- options
-
spn_ispn_covered
public static boolean[] spn_ispn_covered(double[][] C) Places covered by a non-negative S-invariant (P-semiflow) y' C = 0, by Farkas' algorithm on [C | I] keeping minimal supports. The uncovered places are the candidates for the unbounded place of an iSPN.- Parameters:
C- P x T incidence matrix POST - PRE
-