Class Solver_ba_spnlp_analyzer

java.lang.Object
jline.solvers.ba.analyzers.Solver_ba_spnlp_analyzer

public final class Solver_ba_spnlp_analyzer extends Object
Linear-programming bounds on the mean marking and the throughputs of a stochastic timed Petri net.

Port of matlab/src/solvers/BA/solver_ba_spnlp_analyzer.m. The polytope and the LP are Spn_lpbnd; this analyzer maps the LINE model onto them and reads one side of the bracket back per place and class.

METHOD NAMES. Four, in two families: spnlp.upper and spnlp.lower are the Markovian LP and need exponential firing times; spnlp.op.upper and spnlp.op.lower drop the second-moment, covariance and Little's-law families and the whole E[X_p e_t] block with them, which is what removes the exponential requirement and admits any phase-type law. The operational pair is much looser, and is the reference's own "without Markovian assumption" column.

BOUND CONVENTION. QN(i,r) is the reported side of the bracket on the mean number of class-r tokens in place i. TN(i,r) is the same side of the bracket on the token throughput of that place, and RN follows by Little's law from the two. UN(i,r) = QN(i,r) DELIBERATELY: a Place is an INF station and LINE reports U = Q at an infinite server, which is what SolverCTMC and Solver_nc_spn_analyzer both do on the same net. The reference's place utilization 1 - P(m = 0) is a different quantity and is not this column.

A TRANSITION GETS NO ROW. It is a StatefulNode and not a Station, so it has no station index; the mode throughputs and enabling probabilities the LP also brackets stay inside Spn_lpbnd's return value, the same way Spn_metrics keeps modeTput and modeUtil off the table.

HOW TIGHT. The reference's own Table 2 measures it on a four-server production line: the upper side lands 2% to 11% above simulation and the lower side 30% to 40% below it, both comfortably inside the operational bounds it also reports. Expect a usable upper bound and a weak lower one.

Reference: Z. Liu (1998). Performance analysis of stochastic timed Petri nets using linear programming approach. IEEE Transactions on Software Engineering 24(11), 1014-1030.