140 likes | 279 Views
Random- Variate Generation. Andy Wang CIS 5930-03 Computer Systems Performance Analysis. Random- Variate Generation. Methods to generate nonuniform variables Each method is applicable to a subset of the distribution For a distribution, one method may be more efficient than the others.
E N D
Random-Variate Generation Andy Wang CIS 5930-03 Computer Systems Performance Analysis
Random-Variate Generation • Methods to generate nonuniform variables • Each method is applicable to a subset of the distribution • For a distribution, one method may be more efficient than the others
Inverse Transformation • Observation • u = CDF F(x) is uniformly distributed between 0 and 1 • x can be generated via F-1(u) • A powerful technique • If F(x) and F-1(x) can be computed
Empirical Inverse Transformation • Network packet sizes, f(x) = 64 bytes, 70% 128 bytes,10% 512 bytes, 20% CDF F(x) = 0.0, 0 < x < 64 0.7, 64 < x < 128 0.8, 128 < x < 512 1.0, 512 < x
Empirical Inverse Transformation • F-1(u) = 64, 0 < u < 0.7 128, 0.7 < u < 0.8 512, 0.8 < u < 1
Inverse Transformation Example • Exponential distribution • f(x) = e-x • CDF F(x) = 1 - e-x = u • Inverse transformation • x = - ln(1-u)/ • Given that u = U(0,1) • x = - ln(u)/
Rejection • Useful if a PDF g(x) exists so that cg(x) envelopes PDF f(x), where c is a constant • Steps • Generate x with PDF g(x) • Generate y uniform on [0, cg(x)] • If y < f(x), return x, else go to step 1
Rejection Example • f(x) = 20x(1 - x)3 0 < x < 1 • Let g(x) = U(0,1) c = 2.058 • Steps • Generate x on [0, 1] according to U(0,1) • Generate y uniform on [0, 2.058] • If y < 20x(1 – x)3 return x else go to step 1 reject accept
Composition (Decomposition) • Can be used • If CDF F(x) is a weighted sum of CDFs • Or, if PDF f(x) is a weighted sum of PDFs • Steps • Generate u1 ~ U(0,1), u2 ~ U(0,1) • Use u1 to choose fi(x) or Fi(x), return F-1(u2)
Composition Example • Laplace distribution • a = 2, x > 0 with 50% probability • Steps • Generate u1 ~ U(0,1) u2 ~ U(0,1) 2. If u1 < 0.5 return x = -aln(u2) else return x = aln(u2)
Convolution • Random variable x = y1 + y2 + … yn • x can be generated by summing n random variateyis • Example y1 = outcome of die 1 (uniform distribution) y2 = outcome of die 2 (uniform distribution) x = sum of outcomes of two dice = y1 + y2(triangular distribution)
Choosing Random-Variate Generation Techniques • Use inversion if CDF is invertible • Use composition if CDF/PDF sum of other CDFs/PDFs • Use convolution if the variate a sum of other variates • Use rejection if a bounding PDF function exists • Use empirical inversion as needed