Class Npfqn_bnd_bpt
Port of matlab/src/api/npfqn/npfqn_bnd_bpt.m. Returns a LOWER bound on
sum_r c_r x_r, where x_r is the mean sojourn time of class
r, valid for EVERY non-idling scheduling policy.
A "class" here is a buffer with its own exponential service rate and its
own Markovian routing, so a station serving several customer types owns one
class per type. The network is open: class r receives external
Poisson arrivals at rate lambda0[r] and, on completing service,
becomes class r' with probability P(r,r') or leaves with the
row deficit.
METHOD. Uniformize the chain and let R(t) = sum_r f(r) n_r(t) for
an arbitrary vector f. The steady-state balance of E[R^2] is
an identity quadratic in f; since it holds for every f, the
coefficient matrices of the two sides agree entrywise. Diagonal entries give
one equation per class, off-diagonal entries one per unordered pair, in the
variables x_r, I(r,l) = E[1{sigma(r) busy with r} n_l] and
N(i,l) = E[1{station i idle} n_l]. A third block states that the
events "station i serves class r" and "station i idle" are mutually
exclusive and exhaustive, so their terms sum to E[n_l] = lambda_l
x_l. Minimizing over this polyhedron is a relaxation, hence a lower
bound.
EXACT ON M/M/1: the LP reduces to mu*I11 - lambda^2*x = lambda and
I11 + N11 = lambda*x with N11 >= 0, whence
x >= 1/(mu-lambda) with equality.
NOT INCLUDED, DELIBERATELY: the valid inequality I(r,r) >= rho_r
would tighten the relaxation but is not part of the reference's
characterization, and reproducing the reference's published bounds is the
acceptance test here.
Reference: D. Bertsimas, I. Paschalidis, J. Tsitsiklis (1994). Optimization of multiclass queueing networks: polyhedral and nonlinear characterizations of achievable performance. Annals of Applied Probability 4(1), 43-75. See also D. Bertsimas (1995), Queueing Systems 21, 337-389, Theorem 9, which restates the same characterization.
-
Nested Class Summary
Nested Classes -
Method Summary
Modifier and TypeMethodDescriptionstatic Npfqn_bnd_bpt.Resultnpfqn_bnd_bpt(double[] lambda0, double[] mu, Matrix P, int[] stationOf, double[] c)
-
Method Details
-
npfqn_bnd_bpt
public static Npfqn_bnd_bpt.Result npfqn_bnd_bpt(double[] lambda0, double[] mu, Matrix P, int[] stationOf, double[] c) - Parameters:
lambda0- external Poisson arrival rate into each class (0 if none)mu- exponential service rate of each classP- K x K routing, P(r,r') = P(class r becomes r' after service)stationOf- zero-based station index of each classc- objective weights; null means all ones
-