Fast algorithms for generating discrete random variates with changing distributions

  • Authors:
  • Sanguthevar Rajasekaran;Keith W. Ross

  • Affiliations:
  • Univ. of Pennsylvania, Philadelphia;Univ. of Pennsylvania, Philadelphia

  • Venue:
  • ACM Transactions on Modeling and Computer Simulation (TOMACS)
  • Year:
  • 1993

Quantified Score

Hi-index 0.00

Visualization

Abstract

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,…,n such that P(X=i) = ai/(a1 +…+an), where ai'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 ai'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.