Package jline.api.lossn
Class Lossn_manjunath
java.lang.Object
jline.api.lossn.Lossn_manjunath
Exact normalization constant, carried load and blocking of a loss network by
the transform technique of Manjunath and Sikdar.
Calls on route r arrive Poisson at rate nu_r with unit mean holding time, so
nu_r is the offered load, and a call is admitted only while every constraint
holds, sum_r A(j,r) n_r <= C(j). The admissible set is coordinate convex, so
Kelly's truncation theorem gives the truncated product form
p(n) = nu^n / n! / g(C) and every metric is a ratio of normalization
constants:
g(C) = sum_{A n <= C} prod_r nu_r^{n_r} / n_r!
E[n_r] = nu_r g(C - A e_r) / g(C)
Loss_r = 1 - g(C - A e_r) / g(C)
because a class r call is blocked exactly when the state cannot absorb one
more unit of its own requirement vector.
WHY IT IS A COEFFICIENT COMPUTATION AND NOT A QUADRATURE. Writing each
indicator as a contour integral turns g(C) into a J-fold integral over the
unit circle whose integrand factorizes into the per-route z-transforms. Inside
the circle the only pole in z_j sits at the origin with order C_j+1, so each
integration is a residue, i.e. a Taylor coefficient. The routine therefore
never evaluates an integral: it builds the generating function as a
multivariate power series truncated at degree C_j in z_j, one
shift-and-accumulate convolution per route, and discharges each '<='
constraint by summing the coefficients of degrees 0..C_j along that dimension.
Truncation is exact because A is nonnegative, so a monomial above degree C_j
can never contribute to an extracted coefficient.
THE ELIMINATION ORDER IS THE MEMORY BOUND. Contour integrations are
interleaved with the product rather than deferred: variable z_j is created
when the first route with A(j,r) != 0 is multiplied in and integrated out
immediately after the last one. Peak memory is therefore the product of
(C_j+1) over the SIMULTANEOUSLY LIVE links, an induced width of the route-link
incidence, not over all J links. That product is bounded by
DEFAULT_MAX_LIVE_STATES and a region above it is refused by name rather than
allowed to exhaust the heap: the algorithm is exact but not unconditionally
cheap, and Lossn_mci answers the same question at any size.
Unlike Lossn_erlangfp this is exact rather than a reduced-load approximation,
and unlike Lossn_mci it carries no sampling error, which is what matters for
rare blocking: a loss probability of 1e-4 recovered from a sampled throughput
is dominated by the estimator variance.
Reference: D. Manjunath and B. Sikdar, Integral Expressions for the Numerical
Evaluation of Product Form Expressions Over Irregular Multidimensional Integer
Spaces.-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final longCap on the product of (C_j+1) over the simultaneously live links, i.e. -
Method Summary
Modifier and TypeMethodDescriptionstatic Ret.lossnManjunathlossn_manjunath(Matrix nuVec, Matrix Amat, Matrix cVec) Exact normalization constant, carried load and blocking of a loss network.static Ret.lossnManjunathlossn_manjunath(Matrix nuVec, Matrix Amat, Matrix cVec, long maxLiveStates) Exact normalization constant, carried load and blocking of a loss network.
-
Field Details
-
DEFAULT_MAX_LIVE_STATES
public static final long DEFAULT_MAX_LIVE_STATESCap on the product of (C_j+1) over the simultaneously live links, i.e. on the number of series coefficients held at once. 2^26 coefficients is half a gigabyte of double, which no region a FiniteCapacityRegion can express reaches by accident. Raise it deliberately.- See Also:
-
-
Method Details
-
lossn_manjunath
Exact normalization constant, carried load and blocking of a loss network.- Parameters:
nuVec- Offered load of route r, nonnegative (1xR).Amat- Capacity requirement of link j for route r (JxR nonnegative integers).cVec- Available capacity of link j (Jx1 nonnegative integers).
-
lossn_manjunath
public static Ret.lossnManjunath lossn_manjunath(Matrix nuVec, Matrix Amat, Matrix cVec, long maxLiveStates) Exact normalization constant, carried load and blocking of a loss network.- Parameters:
nuVec- Offered load of route r, nonnegative (1xR).Amat- Capacity requirement of link j for route r (JxR).cVec- Available capacity of link j (Jx1).maxLiveStates- Cap on the simultaneously live series coefficients.
-