Fast algorithms for generating discrete random variates with changing distributions

One of the most fundamental operations when simulating a stochastic discrete-event dynamic system is the generation of a nonuniform discrete random variate. The simplest form of this operation can be stated as follows: Generate a random variable X that is distributed over the integers 1,2,…,<italic>n</italic> such that P(X=<italic>i</italic>) = <italic>a<subscrpt>i</subscrpt></italic>/(<italic>a</italic><subscrpt>1</subscrpt> +…+<italic>a<subscrpt>n</subscrpt></italic>), where <italic>a<subscrpt>i</subscrpt></italic>'s are fixed nonnegative numbers. The well-known “alias algorithm” is available to accomplish this task in O(1) time. A more difficult problem is to generate variates for X when the <italic>a<subscrpt>i</subscrpt></italic>'s are changing with time. We present three rejection-based algorithms for this task, and for each algorithm we characterize the performance in terms of acceptance probability and the expected effort to generate a variate. We show that, under fairly unrestrictive conditions, the long-run expected effort is O(1). Applications to Markovian queuing networks are discussed. We also compare the three algorithms with competing schemes appearing in the literature.

[1]  Bennett L. Fox Shortening Future-Event Lists , 1993, INFORMS J. Comput..

[2]  Leslie G. Valiant,et al.  Fast probabilistic algorithms for hamiltonian circuits and matchings , 1977, STOC '77.

[3]  Paul Bratley,et al.  A guide to simulation , 1983 .

[4]  Sanguthevar Rajasekaran,et al.  Derivation of Randomized Sorting and Selection Algorithms , 1993 .

[5]  Paul Bratley,et al.  A guide to simulation (2nd ed.) , 1986 .

[6]  Udi Manber,et al.  Introduction to algorithms - a creative approach , 1989 .

[7]  Leonard Kleinrock,et al.  Theory, Volume 1, Queueing Systems , 1975 .

[8]  Philip Heidelberger,et al.  Computer Performance Evaluation Methodology , 1984, IEEE Transactions on Computers.

[9]  L. Devroye Non-Uniform Random Variate Generation , 1986 .

[10]  J. Ben Atkinson,et al.  An Introduction to Queueing Networks , 1988 .

[11]  H. Chernoff A Measure of Asymptotic Efficiency for Tests of a Hypothesis Based on the sum of Observations , 1952 .

[12]  Guy Pujolle,et al.  Introduction to queueing networks , 1987 .

[13]  Leonard Kleinrock,et al.  Queueing Systems: Volume I-Theory , 1975 .

[14]  Bennett L. Fox,et al.  Generating Markov-Chain Transitions Quickly: I , 1990, INFORMS J. Comput..

[15]  Bennett L. Fox,et al.  Generating Markov-Chain Transitions Quickly: II , 1991, INFORMS J. Comput..

[16]  Linus Schrage,et al.  A guide to simulation , 1983 .

[17]  Sanguthevar Rajasekaran,et al.  Efficient Simulation of Large-Scale Loss Networks , 1991 .

[18]  George S. Fishman,et al.  Generating a sample from a k-cell table with changing probabilities in O(log2k time , 1993, TOMS.