Está en la página 1de 37

Generacin de

Variables Aleatorias

UCR ECCI
CI-1453 Investigacin de Operaciones
Prof. M.Sc. Kryscia Daviana Ramrez Benavides

Introduccin

Las variables aleatorias se representan por medio de


distribuciones de probabilidad.
El procedimiento para generar variables aleatorias a partir de
distribuciones de probabilidad se conoce como generacin de
variables aleatorias o muestreo de Monte Carlo.
El principio del muestreo se basa en la interpretacin de
frecuencia de la probabilidad y requiere un flujo permanente
de nmeros aleatorios.

UCR-ECCI CI-1453 Investigacin de Operaciones


Generacin de Variables Aleatorias

Tipos de Generadores

Generador congruencial lineal (ms utilizado).


Generador multiplicativo.
Generador mixto.

UCR-ECCI CI-1453 Investigacin de Operaciones


Generacin de Variables Aleatorias

Generador Congruencial Lineal

Produce una secuencia de enteros x1, x2, ; entre 0 y m-1 de


acuerdo a la siguiente relacin recursiva:
xi +1 = (axi + c ) mod m
(i = 0,1,2,...)
x0 = semilla

Esto da el residuo de la divisin de (axi + c) entre m.


Los nmeros aleatorios se entregan por medio de la relacin:
xi
ri =
m
(i = 1,2,3,...)

UCR-ECCI CI-1453 Investigacin de Operaciones


Generacin de Variables Aleatorias

Generador Congruencial Lineal (cont.)

Tcnicamente, un nmero aleatorio, ri, se define como una


muestra aleatoria independiente extrada de una distribucin
uniforme continua, cuya funcin de densidad de probabilidad
(fdp) est dada por:
1 0 x 1
f (x ) =
0 en caso contrario
As cada nmero aleatorio estar distribuido de manera
uniforme en el intervalo entre 0 y 1.
Debido a esto, a estos nmeros aleatorios se les conoce como
nmeros aleatorios U(0,1), o simplemente como nmeros
aleatorios uniformes.

UCR-ECCI CI-1453 Investigacin de Operaciones


Generacin de Variables Aleatorias

Distribucin Uniforme
f(x)

f(x)=y
1
F(x)

1 x

UCR-ECCI CI-1453 Investigacin de Operaciones


Generacin de Variables Aleatorias

Generacin de Valores para


Variables Aleatorias Discretas

El muestreo de Monte Carlo se logra al asignar intervalos de


nmeros aleatorios de acuerdo a las probabilidades en la
distribucin especificada.
Este mtodo consiste en los siguientes pasos:
1.
2.

Se realiza una segmentacin, para cada probabilidad de la


distribucin se le asigna un rango de valores segn su valor.
Se genera un nmero aleatorio entero r entre 00 y 99.

3.

Cada nmero aleatorio en una secuencia (en este caso de 00 a 99) tiene
una probabilidad igual (en este caso 0.01) de aparecer, y cada uno es
independiente de los nmeros antes y despus de l.

Se devuelve la variable aleatoria discreta de la distribucin que


corresponda con el rango donde pertenece el nmero aleatorio
generado.

UCR-ECCI CI-1453 Investigacin de Operaciones


Generacin de Variables Aleatorias

Generacin de Valores para


Variables Aleatorias Discretas (cont.)
Distribucin de Tiempo de Servicio

Generacin de Valores

Tiempo de Servicio
(minutos)

Probabilidad

Rango

0.35

0 34

0.40

35 74

0.25

75 99

Al generar un nmero aleatorio sali el 62.


El nmero aleatorio 62 pertenece al rango 35 74, por lo que,
la variable aleatoria discreta de la distribucin de tiempo de
servicio que se escoge es 2 minutos.

UCR-ECCI CI-1453 Investigacin de Operaciones


Generacin de Variables Aleatorias

Generacin de Valores para


Variables Aleatorias Continuas

El muestreo de Monte Carlo se logra al transformar los


nmeros aleatorios en una variable aleatoria continua a partir
de la distribucin especificada.
Hay muchos mtodos diferentes para generar variables
aleatorias continuas.
La seleccin de un algoritmo particular depender de la
distribucin a partir de la cual se quiere generar, tomando en
cuenta factores como la exactitud de las v.a., las eficiencias de
cmputo y almacenaje, y la complejidad del algoritmo.

UCR-ECCI CI-1453 Investigacin de Operaciones


Generacin de Variables Aleatorias

Generacin de Valores para


Variables Aleatorias Continuas (cont.)

Los dos algoritmos utilizados con ms frecuencia son:

Mtodo de transformacin inversa (ITM).


Mtodo de aceptacin-rechazo (ARM).

Entre estos dos mtodos, es posible generar variables


aleatorias de casi todas las distribuciones utilizadas con ms
frecuencia.
Adems, se cuenta con dos mtodos para generar variables
aleatorias a partir de la distribucin normal:

Algoritmo de convolucin.
Mtodo directo.

UCR-ECCI CI-1453 Investigacin de Operaciones


Generacin de Variables Aleatorias

10

Mtodo de Transformacin Inversa (ITM)

Este mtodo requiere una funcin de distribucin acumulada


(fda) F(x) se puede obtener en forma cerrada (tiene frmula y
es posible calcular F-1(x)).
Como ejemplos se tienen las distribuciones exponencial,
uniforme, triangular y la de Weibull.

UCR-ECCI CI-1453 Investigacin de Operaciones


Generacin de Variables Aleatorias

11

Mtodo de Transformacin Inversa (ITM) (cont.)

Este mtodo consiste en los siguientes pasos:


1.

Dada la funcin de densidad de probabilidad f(x), se elabora la


funcin de distribucin acumulada como:

F ( x ) = f (t )dt
x

2.
3.

Se genera un nmero aleatorio r [0,1].


Se establece F(x) = r y se determina el valor de x. La variable x es
entonces una variable aleatoria continua de la distribucin cuya fdp
est dada por f(x).

UCR-ECCI CI-1453 Investigacin de Operaciones


Generacin de Variables Aleatorias

12

Mtodo de Transformacin Inversa (ITM)


Funcin de Rampa

Se tiene la siguiente fdp:


x
0 x2
f (x ) = 2
0 en caso contrario

Se calcula fda:
x t
x2
F ( x ) = dt =
0 2
4

0
x2
F (x ) =
4
1

UCR-ECCI CI-1453 Investigacin de Operaciones


Generacin de Variables Aleatorias

x<0
0 x2
x2

13

Mtodo de Transformacin Inversa (ITM)


Funcin de Rampa (cont.)

Se genera un nmero aleatorio r, por ejemplo, r = 0.64.


Se establece F(x) = r y se determina el valor de x:
F (x ) = r
x = 2 r
2
x
=r
x = 2 0.64 = 1.6
4
Puesto que los tiempos de servicio se definen slo para valores
positivos de x, no es factible un tiempo de servicio x = -2r;
entonces se queda como solucin x = 2r. Esta ecuacin se
llama generador de variables aleatorias o un generador de
proceso.

UCR-ECCI CI-1453 Investigacin de Operaciones


Generacin de Variables Aleatorias

14

Mtodo de Transformacin Inversa (ITM)


Distribucin Exponencial

Se tiene la siguiente fdp:

e x
f (x ) =
0

x 0, > 0
en caso contrario

Se calcula fda:
F (x ) = e dt = 1 e
x

UCR-ECCI CI-1453 Investigacin de Operaciones


Generacin de Variables Aleatorias

0
F (x ) =
x
1
e

x<0
x0

15

Mtodo de Transformacin Inversa (ITM)


Distribucin Exponencial (cont.)

Se genera un nmero aleatorio r, por ejemplo, r = 0.


Se establece F(x) = r y se determina el valor de x:
F (x ) = r
1 e

=r

e x = 1 r
x = ln (1 r )

UCR-ECCI CI-1453 Investigacin de Operaciones


Generacin de Variables Aleatorias

x=
x=

ln (1 r )
ln (1 0 ) = 0

16

Mtodo de Transformacin Inversa (ITM)


Distribucin Uniforme Continua

Se tiene la siguiente fdp:

(
)
f x = b a
0

a0b
en caso contrario

Se calcula fda:

F (x ) =

1
xa
dt =
ba
ba

UCR-ECCI CI-1453 Investigacin de Operaciones


Generacin de Variables Aleatorias

0
x a
F (x ) =
b a
1

x<a
a xb
x>b

17

Mtodo de Transformacin Inversa (ITM)


Distribucin Uniforme Continua (cont.)

Se genera un nmero aleatorio r, por ejemplo, r = 0.5.


Se establece F(x) = r y se determina el valor de x:
F (x ) = r
xa
=r
ba
x a = r (b a )

x = a + r (b a )
x = a + 0.5(b a ) = 0.5a + 0.5b

UCR-ECCI CI-1453 Investigacin de Operaciones


Generacin de Variables Aleatorias

18

Mtodo de Transformacin Inversa (ITM)


Distribucin Triangular

Se tiene la siguiente fdp:


1
(x 2)

2 x3
2
1
x

f (x ) = 2 3 x 6
3
2
en caso contrario
0
Se calcula fda:
0
x1
1
2
1
2
F1 (x ) = (t 2 )dt = (x 2 )
(
)
x

2 2
4
F (x ) = 4 1
2
x1
1 2
t
x

12 x + 24

F2 (x ) = 2 dt =
x 12 x + 24
3 2
12
3
12

UCR-ECCI CI-1453 Investigacin de Operaciones


Generacin de Variables Aleatorias

x<2
2 x3

3 x 6
en caso contrario

19

Mtodo de Transformacin Inversa (ITM)


Distribucin Triangular (cont.)

La funcin F1(x) cubre el primer 25% del intervalo fda y la


funcin F2(x) cubre el restante 75% del intervalo.
Debido a que tenemos dos funciones, si r < 0.25 se usa la
funcin F1(x); en caso contrario (r 0.25) se utiliza la funcin
F2(x).
F1 ( x ) = r
0 r < 0.25
1
(x 2)2 = r
4
F2 ( x ) = r

0.25 r 1

1 2
x 12 x + 24 = r
12

UCR-ECCI CI-1453 Investigacin de Operaciones


Generacin de Variables Aleatorias

20

Mtodo de Transformacin Inversa (ITM)


Distribucin Triangular (cont.)

Se genera un nmero aleatorio r, por ejemplo, r = 0 y r = 2/3.


Se establece F(x) = r y se determina el valor de x:
F1 ( x ) = r
F2 ( x ) = r
1
(x 2)2 = r
4
x 2 = 4r

1 2
x 12 x + 24 = r
12
x 2 12 x = 24 12r

x 2 12 x + 36 = 36 24 12r

(x 6)2 = 12 12r
x 6 = 12 12r
x = 2 + 4r

x = 6 2 3 3r

x = 2 + 4 0 = 2 x = 6 2 3 3 2 3 = 4

UCR-ECCI CI-1453 Investigacin de Operaciones


Generacin de Variables Aleatorias

21

Mtodo de Aceptacin-Rechazo (ARM)

Este mtodo requiere una funcin de distribucin acumulada


(fda) F(x) est definida en un intervalo finito.
Como ejemplos se tienen la funcin rampa, las distribuciones
triangular, beta y la de Erlang.

UCR-ECCI CI-1453 Investigacin de Operaciones


Generacin de Variables Aleatorias

22

Mtodo de Aceptacin-Rechazo (ARM) (cont.)

Este mtodo consiste en los siguientes pasos:


1.
2.
3.
4.
5.

Se selecciona una constante M, tal que M es el valor ms grande de


f(x) en el intervalo [a, b].
Se genera dos nmeros aleatorios r1 y r2, r1, r2 [0,1].
Se calcula x* = a + (b a)r1. (Esto asegura que cada miembro de [a,
b] tiene una probabilidad igual de ser elegido como x*).
Se evala la funcin f(x) en el punto x*; sea f(x*).
Si r2 f(x*) / M, entonces se acepta x* como una variable aleatoria
continua. De lo contrario, se rechaza x* y se vuelve al paso 2.

UCR-ECCI CI-1453 Investigacin de Operaciones


Generacin de Variables Aleatorias

23

Mtodo de Aceptacin-Rechazo (ARM)


Funcin de Rampa
Se tiene la siguiente fdp:
2 x 0 x 1
f (x ) =
0 en caso contrario
El valor ms grande de f(x) ocurre x = 1 y es igual a 2.
Entonces, M = 2.
Se genera dos nmeros aleatorios r1 y r2, por ejemplo, r1 = 0 y
r2 = 1.
Se calcula x* = a + (b a)r1 = 0 + (1 0)0 = 0
Se evala f(x*) = 2x* = 2*0 = 0
Se comprueba r2 f(x*) / M; 1 0/2, por lo que se rechaza y
UCR-ECCI
CI-1453 al
Investigacin
se vuelve
paso 2.de Operaciones

Generacin de Variables Aleatorias

24

Mtodo de Aceptacin-Rechazo (ARM)


Funcin de Rampa (cont.)

Se genera dos nmeros aleatorios r1 y r2, por ejemplo, r1 = 0.5


y r2 = 0.2.
Se calcula x* = a + (b a)r1 = 0 + (1 0)0.5 = 0.5
Se evala f(x*) = 2x* = 2*0.5 = 1
Se comprueba r2 f(x*) / M; 0.2 1/2, por lo que se acepta x*
como una variable aleatoria continua, x* = 0.5.

UCR-ECCI CI-1453 Investigacin de Operaciones


Generacin de Variables Aleatorias

25

Mtodo de Aceptacin-Rechazo (ARM)


Distribucin Triangular

Se tiene la siguiente fdp:


1 x
6 + 12 2 x 6
4 x
f (x ) =
6 x8
3 6
en caso contrario
0

ms grande
de f(x) ocurre x = 6

El valor
y es igual a 1/3.
Entonces, M = 1/3.
Se genera dos nmeros aleatorios r1 y r2, por ejemplo, r1 = 0 y
r2 = 1.
Se calcula x* = a + (b a)r1 = 2 + (8 2)0 = 2

UCR-ECCI CI-1453 Investigacin de Operaciones


Generacin de Variables Aleatorias

26

Mtodo de Aceptacin-Rechazo (ARM)


Distribucin Triangular (cont.)

La funcin f1(x*) cubre 2/3 del intervalo fdp y la funcin


f2(x*) cubre el restante 1/3 del intervalo.
Debido a que tenemos dos funciones, si 2 x* 6 se usa la
funcin f1(x*); en caso contrario (6 x* 8) se utiliza la
funcin f2(x*).

1 x*
2 x* 6
f ( x *) = f1 ( x *) = +
6 12
4 x*
f ( x *) = f 2 ( x *) =
6 x* 8
3 6
UCR-ECCI CI-1453 Investigacin de Operaciones
Generacin de Variables Aleatorias

27

Mtodo de Aceptacin-Rechazo (ARM)


Distribucin Triangular (cont.)

Se evala f1(x*) porque x* = 2:


1 x*
1 2
f ( x *) = f1 ( x *) = +
= + =0
6 12
6 12
Se comprueba r2 f(x*) / M; 1 0/(1/3), por lo que se rechaza
y se vuelve al paso 2.

UCR-ECCI CI-1453 Investigacin de Operaciones


Generacin de Variables Aleatorias

28

Mtodo de Aceptacin-Rechazo (ARM)


Distribucin Triangular (cont.)

Se genera dos nmeros aleatorios r1 y r2, por ejemplo, r1 =


0.75 y r2 = 0.5.
Se calcula x* = a + (b a)r1 = 2 + (8 2)0.75 = 6.5
Se evala f2(x*) porque x* = 6.5:
4 x * 4 6.5 1
f (x *) = f 2 ( x *) =
=
=
3 6 3 6
4
Se comprueba r2 f(x*) / M; 0.5 (1/4)/(1/3), por lo que se
acepta x* como una variable aleatoria continua, x* = 6.5.

UCR-ECCI CI-1453 Investigacin de Operaciones


Generacin de Variables Aleatorias

29

Distribucin Normal

Esta distribucin es muy importante, por lo cual se ha creado


varios algoritmos para la generacin de variables aleatorias.
Tanto el mtodo ITM como el mtodo ARM, son inapropiados
para esta distribucin porque:

La fdp no existe en forma cerrada.


La distribucin no est definida en un intervalo finito.

Aunque es posible usar mtodos numricos en el ITM y


truncar la distribucin para el mtodo ARM; otros mtodos
tienden a ser ms eficaces:

Algoritmo de convolucin.
Mtodo directo.

UCR-ECCI CI-1453 Investigacin de Operaciones


Generacin de Variables Aleatorias

30

Distribucin Normal
Algoritmo de Convolucin

En este algoritmo se hace uso del teorema del lmite central.


Teorema del Lmite Central: La suma X de n variables
aleatorias independientes y distribuidas de manera idntica
(por ejemplo, x1, x2, , xn, cada una con media (E(xi) = ) y
varianza finita 2 (Var(xi) = 2)) tiene una distribucin
aproximadamente normal con media n y varianza n2.

2
n

x
n
n
i

i =1

X=

x
i =1

UCR-ECCI CI-1453 Investigacin de Operaciones


Generacin de Variables Aleatorias

31

Distribucin Normal
Algoritmo de Convolucin (cont.)

Sea X con distribucin n(, 2), se va a generar un valor Z con


distribucin n(0, 1).
Si esto se aplica a R(0, 1) variables aleatorias; r1, r2, , rn ,
con media y varianza finita 2, se deduce que:
n

z=

r n
i =1

(n )

2 12

UCR-ECCI CI-1453 Investigacin de Operaciones


Generacin de Variables Aleatorias

n (0,1)

32

Distribucin Normal
Algoritmo de Convolucin (cont.)

Este mtodo consiste en los siguientes pasos:

Se generan n variables aleatorias con distribucin U(0, 1).


Se calcula la variable z:
n

z=

r n
i =1

(n )

2 12

n (0,1)

Se calcula la variable aleatoria normal x de la siguiente forma:

x = z +

UCR-ECCI CI-1453 Investigacin de Operaciones


Generacin de Variables Aleatorias

33

Distribucin Normal
Algoritmo de Convolucin (cont.)

Se utiliza casi siempre los siguientes valores:

n = 12.
= 0.5
2 = 1/12

Se calcula la variable z:
12

z = ri 6 n (0,1)
i =1

UCR-ECCI CI-1453 Investigacin de Operaciones


Generacin de Variables Aleatorias

34

Distribucin Normal
Mtodo Directo

Este mtodo fue creado por Box y Muller (1958).


No es tan eficaz como algunas nuevas tcnicas, pero es fcil
aplicarlo y ejecutarlo.
El algoritmo genera dos nmeros aleatorios R(0, 1), r1 y r2, y
luego los transforma en dos v.a. normales, cada una con media
0 y varianza 1.

UCR-ECCI CI-1453 Investigacin de Operaciones


Generacin de Variables Aleatorias

35

Distribucin Normal
Mtodo Directo (cont.)

Este mtodo consiste en los siguientes pasos:

Se generan dos nmeros aleatorios r1 y r2, U(0, 1).


Se transforman en dos variables aleatorias normales, cada una con
media 0 y varianza 1, usando las transformaciones directas:

z1 = ( 2 ln r1 ) sen (2r2 )
12

z 2 = ( 2 ln r1 ) cos(2r2 )
12

Se calculan las variables aleatorias normales x1 y x2 de la siguiente


forma:

x1 = z1 +

x2 = z 2 +
UCR-ECCI CI-1453 Investigacin de Operaciones
Generacin de Variables Aleatorias

36

Referencias Bibliogrficas

Winston, Wayne L. Investigacin de Operaciones. Grupo


Editorial Iberoamrica. Mxico, 2005.

UCR-ECCI CI-1453 Investigacin de Operaciones


Generacin de Variables Aleatorias

37

También podría gustarte