TY - JOUR

T1 - Dynamic generation of discrete random variates

AU - Matias, Yossi

AU - Vitter, Jeffrey Scott

AU - Ni, Wen Chun

N1 - Funding Information:
∗ This paper is a combination of two independent works [17], [24] and collaborative work. A summary appears in [19]. Support for Yossi Matias was provided in part by National Science Foundation Grants CCR-8906949 and CCR-9111348. Part of the work was done while he was at the University of Maryland, Institute for Advanced Computer Studies. Support for Jeffrey Scott Vitter was provided in part by a National Science Foundation Presidential Young Investigator Award with matching funds from IBM, by NSF Research Grants CCR-9007851 and CCR-9522047, and by Army Research Office Grants DAAL03-91-G-0035 and DAAH04-96-1-0013. Part of the work was done while he was at Brown University and Duke University. Support for Wen-Chen Ni was provided in part by the Office of Naval Research and the Defense Advanced Research Projects Agency under Contract N00014-91-J-4052, ARPA Order 8225. Part of the work was done while he was at Brown University.

PY - 2003

Y1 - 2003

N2 - We present and analyze efficient new algorithms for generating a random variate distributed according to a dynamically changing set of N weights. The base version of each algorithm generates the discrete random variate in O(log* N) expected time and updates a weight in O(2log* N) expected time in the worst case. We then show how to reduce the update time to O(log* N) amortized expected time. We finally show how to apply our techniques to a lookup-table technique in order to obtain expected constant time in the worst case for generation and update. We give parallel algorithms for parallel generation and update having optimal processor-time product. Besides the usual application in computer simulation, our method can be used to perform constant-time prediction in prefetching applications. We also apply our techniques to obtain an efficient dynamic algorithm for maintaining an approximate heap of N elements, in which each query is required to return an element whose value is within an ε multiplicative factor of the maximal element value. For ε = 1/polylog(N), each query, insertion, or deletion takes O(log log log N) time.

AB - We present and analyze efficient new algorithms for generating a random variate distributed according to a dynamically changing set of N weights. The base version of each algorithm generates the discrete random variate in O(log* N) expected time and updates a weight in O(2log* N) expected time in the worst case. We then show how to reduce the update time to O(log* N) amortized expected time. We finally show how to apply our techniques to a lookup-table technique in order to obtain expected constant time in the worst case for generation and update. We give parallel algorithms for parallel generation and update having optimal processor-time product. Besides the usual application in computer simulation, our method can be used to perform constant-time prediction in prefetching applications. We also apply our techniques to obtain an efficient dynamic algorithm for maintaining an approximate heap of N elements, in which each query is required to return an element whose value is within an ε multiplicative factor of the maximal element value. For ε = 1/polylog(N), each query, insertion, or deletion takes O(log log log N) time.

UR - http://www.scopus.com/inward/record.url?scp=0042995543&partnerID=8YFLogxK

U2 - 10.1007/s00224-003-1078-6

DO - 10.1007/s00224-003-1078-6

M3 - מאמר

AN - SCOPUS:0042995543

VL - 36

SP - 329

EP - 358

JO - Theory of Computing Systems

JF - Theory of Computing Systems

SN - 1432-4350

IS - 4

ER -