Class Pfqn_mcmc
X(r) = G(N-e_r)/G(N) and of the mean queue lengths Q(i,r) of a
CLOSED multiclass product-form (BCMP, no type changes) network, by the
REGULARIZATION algorithm of
W. Chen, C. A. O'Cinneide, "Towards a Polynomial-Time Randomized Algorithm for Closed Product-Form Networks", ACM TOMACS 8(3):227-253, 1998.
The three steps of the paper are:
I. CONSTRUCT THE REGULARIZED NETWORK. Write rho(i,r) for the surrogate
traffic intensity of class r at station i -- here the service demand, since
rho = lambda/mu is a visit ratio over a service rate -- and
rho(r) = sum_i rho(i,r). The regularized network has the same stations,
classes and populations, UNIT service rates at every station, the processor-sharing
discipline, and a routing matrix that depends on the destination only,
P*(i->m | class r) = rho(m,r)/rho(r). By Theorem 2.1 it is a REVERSIBLE chain
with the SAME steady-state distribution as the original network, and its throughputs
satisfy Theta*(r) = rho(r)*Theta(r).
II. SIMULATE IT at service-completion epochs. With Y(i,r) the number of
class-r jobs at station i, Y(i) their total and Psi_i(k)=min(s_i,k)
the number of busy servers,
r(i,r) = Y(i,r)/Y(i) * Psi_i(Y(i)), r(r) = sum_i r(i,r),
r = sum_i Psi_i(Y(i)),
the next completion is of class r at station i with probability r(i,r)/r,
and the conditional expected time to it is 1/r. Equation (10) of the paper is
the holding-time weighted ratio estimator
Theta*(r) = sum_t r(r,t)/r(t) / sum_t 1/r(t), and the same weights give the
time-average queue lengths, which need no transformation at all because the two
networks share their steady state.
III. TRANSFORM BACK: X(r) = Theta*(r)/rho(r).
Because P* forgets the station of origin and every station serves at unit rate, the
regularized chain has neither the slowly mixing routing chain nor the customer-trapping
slow station that make the original chain converge slowly. The paper proves
O(N^2*M^3) mixing in two special cases (Section 4) and reports the general
behaviour experimentally (Section 5).
Delay (infinite-server) demand enters as ONE extra station with s = Inf and
demand Z. Aggregating infinite-server stations that way is exact in the product form,
since their joint term is multinomial in the per-class totals.
Confidence: the run is split into non-overlapping batches (Schmeiser 1982, 30 by
default, the count used in the tables of the paper), the batch means of the ratio
estimator give a standard error, and the result reports the paper's two-sigma interval.
The estimator is a ratio of correlated averages, so it carries an O(1/samples)
bias on top of the initialization bias; the paper ignores both, this implementation
additionally discards a warm-up fraction (10% by default).
- See Also:
-
Method Summary
Modifier and TypeMethodDescriptionstatic Ret.pfqnMcmcpfqn_mcmc(Matrix L, Matrix N, Matrix Z, SolverOptions options) Single-server form: every queueing station serves one job at a time.static Ret.pfqnMcmcMultiserver form, the paper's own selling point (its Tables IV and V).
-
Method Details
-
pfqn_mcmc
Single-server form: every queueing station serves one job at a time.- Parameters:
L- (M x R) per-class service demands at the M queueing stationsN- (1 x R) closed population vector; finite and integerZ- (1 x R) aggregated think times, or a matrix summed over its rowsoptions- solver options; may be null- Returns:
- the throughput and queue-length estimates with their two-sigma intervals
-
pfqn_mcmc
Multiserver form, the paper's own selling point (its Tables IV and V).- Parameters:
L- (M x R) per-class service demands at the M queueing stationsN- (1 x R) closed population vector; finite and integerZ- (1 x R) aggregated think times, or a matrix summed over its rowss- (M x 1) servers per station, infinite for an infinite server; null means all stations single-serveroptions- solver options; may be null- Returns:
- the throughput and queue-length estimates with their two-sigma intervals
-