Package jline.api.spn

Class Spn_ispn

java.lang.Object
jline.api.spn.Spn_ispn

public final class Spn_ispn extends Object
Infinite-state stochastic Petri nets (iSPN) by the matrix-geometric method.

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.

  • 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 multiplicities
      post - P x T output multiplicities
      inh - P x T inhibitor thresholds (t disabled when m(p) >= inh), Inf for none; null: none
      rate - length-T timed rate, or the weight of an immediate transition
      imm - length-T, true for an immediate transition; null: all timed
      srv - length-T servers (Inf allowed); null: all 1. A transition with no input fires at rate(t)
      m0 - length-P initial marking
      p0 - 0-based index of the unbounded place
      opt - 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