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 -