LINE Solver
MATLAB API documentation
Loading...
Searching...
No Matches
pfqn_is.m
1function [G, lG] = pfqn_is(L, N, Z, options)
2% [G, LG] = PFQN_IS(L, N, Z, OPTIONS)
3%
4% Importance-sampling (IS) estimate of the normalizing constant of a closed
5% LOAD-INDEPENDENT product-form queueing network with M single-server queues of
6% per-class demand L and an aggregated delay of think time Z.
7%
8% This is the load-independent case of PFQN_LD_IS (capacities mu_i(k) = 1), and
9% the ordinary-network counterpart of the order-independent PFQN_OI_IS and the
10% pass-and-swap PFQN_PAS_IS: all four are the same sample-an-ordering estimator,
11% differing only in the per-position factor of each station's balance function.
12% For a single-server queue that factor is the demand of the class at that
13% position, L(i,q_p); for the delay it is Z(q_p)/p; for an OI/P&S station it is
14% the reciprocal rank rate 1/mu_i(supp(q_1..q_p)).
15%
16% Writing ell = sum(N), an ordering c of all ell jobs is drawn by placing a
17% uniformly random present class at each step (probability p(c) = product of the
18% reciprocal branching factors), and the sum over ALL ways of cutting c into
19% contiguous per-station segments is computed exactly by dynamic programming:
20% G(N) = E_{C~p}[ S(C)/p(C) ],
21% S(c) = sum_{cuts} prod_m prod_{p} L(m, seg_m(p)),
22% which is unbiased for the exact constant of PFQN_NC.
23%
24% Parameters:
25% L - (M x R) per-class service demands at the M single-server queues.
26% N - (1 x R) closed population vector, finite.
27% Z - (1 x R) aggregated think time (delay) demand; [] or zeros if none.
28% options - solver options (optional). Fields used:
29% .samples number of IS samples (default 1e4);
30% .seed RNG seed for reproducibility (optional).
31%
32% Returns:
33% G - IS estimate of the normalizing constant G(N).
34% lG - log(G).
35%
36% Example (2 queues + delay):
37% L = [0.5 0.3; 0.2 0.4]; N = [3 2]; Z = [1 1];
38% [G,lG] = pfqn_is(L, N, Z, struct('samples',1e5));
39%
40% See also PFQN_LD_IS, PFQN_OI_IS, PFQN_PAS_IS, PFQN_NC.
41%
42% Copyright (c) 2012-2026, Imperial College London
43% All rights reserved.
44
45if nargin < 4, options = struct(); end
46if nargin < 3, Z = []; end
47
48[G, lG] = pfqn_ld_is(L, N, Z, [], options);
49end
Definition Station.m:245