Está en la página 1de 37

Generacin de

Variables Aleatorias
UCR ECCI
CI-1453 Investigacin de Operaciones
Prof. M.Sc. KrysciaDavianaRamrez Benavides
UCR-ECCI CI-1453 Investigacin de Operaciones
Generacin de Variables Aleatorias 2
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 3
Tipos de Generadores
Generador congruencial lineal (ms utilizado).
Generador multiplicativo.
Generador mixto.
UCR-ECCI CI-1453 Investigacin de Operaciones
Generacin de Variables Aleatorias 4
Generador Congruencial Lineal
Produce una secuencia de enteros x
1
, x
2
, ; entre 0 y m-1 de
acuerdo a la siguiente relacin recursiva:
Esto da el residuo de la divisin de (ax
i
+c) entre m.
Los nmeros aleatorios se entregan por medio de la relacin:
( )
semilla
mod
0
1
=
+ =
+
x
m c ax x
i i
( ) ,... 2 , 1 , 0 = i
( ) ,... 3 , 2 , 1 =
=
i
m
x
r
i
i
UCR-ECCI CI-1453 Investigacin de Operaciones
Generacin de Variables Aleatorias 5
Generador Congruencial Lineal (cont.)
Tcnicamente, un nmero aleatorio, r
i
, se define como una
muestra aleatoria independiente extrada de una distribucin
uniforme continua, cuya funcin de densidad de probabilidad
(fdp) est dada por:
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.
( )
contrario caso en 0
1 0 1


=
x
x f
UCR-ECCI CI-1453 Investigacin de Operaciones
Generacin de Variables Aleatorias 6
Distribucin Uniforme
F(x)
f(x)
x
f(x)=y
1
1
UCR-ECCI CI-1453 Investigacin de Operaciones
Generacin de Variables Aleatorias 7
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. Se realiza una segmentacin, para cada probabilidad de la
distribucin se le asigna un rango de valores segn su valor.
2. Se genera un nmero aleatorio entero r entre 00 y 99.
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.
3. 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 8
Generacin de Valores para
Variables Aleatorias Discretas (cont.)
Distribucin de Tiempo de Servicio Generacin de Valores
Tiempo de Servicio
(minutos)
Probabilidad Rango
1 0.35 0 34
2 0.40 35 74
3 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 9
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 10
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 11
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 12
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:
2. Se genera un nmero aleatorio r [0,1].
3. 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).
( ) ( )dt t f x F
x


=
UCR-ECCI CI-1453 Investigacin de Operaciones
Generacin de Variables Aleatorias 13
Mtodo de Transformacin Inversa (ITM)
Funcin de Rampa
Se tiene la siguiente fdp:
Se calcula fda:
( )
4 2
2
0
x
dt
t
x F
x
= =

( )


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


<
=
2 1
2 0
4
0 0
2
x
x
x
x
x F
UCR-ECCI CI-1453 Investigacin de Operaciones
Generacin de Variables Aleatorias 14
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:
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.
( )
r
x
r x F
=
=
4
2
6 . 1 64 . 0 2
2
= =
=
x
r x
UCR-ECCI CI-1453 Investigacin de Operaciones
Generacin de Variables Aleatorias 15
Mtodo de Transformacin Inversa (ITM)
Distribucin Exponencial
Se tiene la siguiente fdp:
Se calcula fda:
( )
x
x
t
e dt e x F


= =

1
0
( )

>
=

contrario caso en 0
0 , 0

x e
x f
x
( )


<
=

0 1
0 0
x e
x
x F
x
UCR-ECCI CI-1453 Investigacin de Operaciones
Generacin de Variables Aleatorias 16
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:
( )
( ) r x
r e
r e
r x F
x
x
=
=
=
=

1 ln
1
1

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

x
r x
UCR-ECCI CI-1453 Investigacin de Operaciones
Generacin de Variables Aleatorias 17
Mtodo de Transformacin Inversa (ITM)
Distribucin Uniforme Continua
Se tiene la siguiente fdp:
Se calcula fda:
( )
a b
a x
dt
a b
x F
x
a

1
( )

=
contrario caso en 0
0
1
b a
a b
x f
( )

>

<
=
b x
b x a
a b
a x
a x
x F
1
0
UCR-ECCI CI-1453 Investigacin de Operaciones
Generacin de Variables Aleatorias 18
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:
( )
( ) a b r a x
r
a b
a x
r x F
=
=

=
( )
( ) b a a b a x
a b r a x
5 . 0 5 . 0 5 . 0 + = + =
+ =
UCR-ECCI CI-1453 Investigacin de Operaciones
Generacin de Variables Aleatorias 19
Mtodo de Transformacin Inversa (ITM)
Distribucin Triangular
Se tiene la siguiente fdp:
Se calcula fda:
( ) ( ) ( )
( ) ( ) 24 12
12
1
3
2
2
1
2
4
1
2
2
1
2
3
2
2
2
1
+ =
|
.
|

\
|
=
= =

x x dt
t
x F
x dt t x F
x
x
( )
( )


|
.
|

\
|


=
contrario caso en 0
6 3
3
2
2
1
3 2 2
2
1
x
x
x x
x f
( )
( )
( )

+

<
=
contrario caso en 1
6 3 24 12
12
1
3 2 2
4
1
2 0
2
2
x x x
x x
x
x F
UCR-ECCI CI-1453 Investigacin de Operaciones
Generacin de Variables Aleatorias 20
Mtodo de Transformacin Inversa (ITM)
Distribucin Triangular (cont.)
La funcin F
1
(x) cubre el primer 25% del intervalo fda y la
funcin F
2
(x) cubre el restante 75% del intervalo.
Debido a que tenemos dos funciones, si r <0.25 se usa la
funcin F
1
(x); en caso contrario (r 0.25) se utiliza la funcin
F
2
(x).
( )
( )
( )
( )
1 25 . 0
24 12
12
1
25 . 0 0
2
4
1
2
2
2
1

= +
=
<
=
=
r
r x x
r x F
r
r x
r x F
UCR-ECCI CI-1453 Investigacin de Operaciones
Generacin de Variables Aleatorias 21
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:
( )
( )
( )
( )
( )
4 3 2 3 3 2 6
3 3 2 6
2 0 4 2
4 2
12 12 6
12 12 6
12 24 36 36 12
12 24 12
24 12
12
1
4 2
2
4
1
2
2
2
2
2
2
1
= =
=
= + =
+ =
=
=
= +
=
= +
=
=
=
=
x
r x
x
r x
r x
r x
r x x
r x x
r x x
r x F
r x
r x
r x F
UCR-ECCI CI-1453 Investigacin de Operaciones
Generacin de Variables Aleatorias 22
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 23
Mtodo de Aceptacin-Rechazo (ARM) (cont.)
Este mtodo consiste en los siguientes pasos:
1. Se selecciona una constante M, tal que Mes el valor ms grande de
f(x) en el intervalo [a, b].
2. Se genera dos nmeros aleatorios r
1
y r
2
, r
1
, r
2
[0,1].
3. Se calcula x* =a +(b a)r
1
. (Esto asegura que cada miembro de [a,
b] tiene una probabilidad igual de ser elegido como x*).
4. Se evala la funcin f(x) en el punto x*; sea f(x*).
5. Si r
2
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 24
Mtodo de Aceptacin-Rechazo (ARM)
Funcin de Rampa
Se tiene la siguiente fdp:
El valor ms grande de f(x) ocurre x =1 y es igual a 2.
Entonces, M =2.
Se genera dos nmeros aleatorios r
1
y r
2
, por ejemplo, r
1
=0 y
r
2
=1.
Se calcula x* =a +(b a)r
1
=0 +(1 0)0 = 0
Se evala f(x*) = 2x* =2*0 = 0
Se comprueba r
2
f(x*) / M; 1 0/2, por lo que se rechaza y
se vuelve al paso 2.
( )


=
contrario caso en 0
1 0 2 x x
x f
UCR-ECCI CI-1453 Investigacin de Operaciones
Generacin de Variables Aleatorias 25
Mtodo de Aceptacin-Rechazo (ARM)
Funcin de Rampa (cont.)
Se genera dos nmeros aleatorios r
1
y r
2
, por ejemplo, r
1
=0.5
y r
2
=0.2.
Se calcula x* =a +(b a)r
1
=0 +(1 0)0.5 = 0.5
Se evala f(x*) = 2x* =2*0.5 =1
Se comprueba r
2
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 26
Mtodo de Aceptacin-Rechazo (ARM)
Distribucin Triangular
Se tiene la siguiente fdp:
El valor ms grande de f(x) ocurre x =6 y es igual a 1/3.
Entonces, M =1/3.
Se genera dos nmeros aleatorios r
1
y r
2
, por ejemplo, r
1
=0 y
r
2
=1.
Se calcula x* =a +(b a)r
1
=2 +(8 2)0 = 2
( )


+
=
contrario caso en 0
8 6
6 3
4
6 2
12 6
1
x
x
x
x
x f
UCR-ECCI CI-1453 Investigacin de Operaciones
Generacin de Variables Aleatorias 27
Mtodo de Aceptacin-Rechazo (ARM)
Distribucin Triangular (cont.)
La funcin f
1
(x*) cubre 2/3 del intervalo fdp y la funcin
f
2
(x*) cubre el restante 1/3 del intervalo.
Debido a que tenemos dos funciones, si 2 x* 6 se usa la
funcin f
1
(x*); en caso contrario (6 x* 8) se utiliza la
funcin f
2
(x*).
( ) ( )
( ) ( ) 8 * 6
6
*
3
4
* *
6 * 2
12
*
6
1
* *
2
1
= =
+ = =
x
x
x f x f
x
x
x f x f
UCR-ECCI CI-1453 Investigacin de Operaciones
Generacin de Variables Aleatorias 28
Mtodo de Aceptacin-Rechazo (ARM)
Distribucin Triangular (cont.)
Se evala f
1
(x*) porque x* =2:
Se comprueba r
2
f(x*) / M; 1 0/(1/3), por lo que se rechaza
y se vuelve al paso 2.
( ) ( ) 0
12
2
6
1
12
*
6
1
* *
1
= + = + = =
x
x f x f
UCR-ECCI CI-1453 Investigacin de Operaciones
Generacin de Variables Aleatorias 29
Mtodo de Aceptacin-Rechazo (ARM)
Distribucin Triangular (cont.)
Se genera dos nmeros aleatorios r
1
y r
2
, por ejemplo, r
1
=
0.75 y r
2
=0.5.
Se calcula x* =a +(b a)r
1
=2 +(8 2)0.75 = 6.5
Se evala f
2
(x*) porque x* =6.5:
Se comprueba r
2
f(x*) / M; 0.5 (1/4)/(1/3), por lo que se
acepta x* como una variable aleatoria continua, x* =6.5.
( ) ( )
4
1
6
5 . 6
3
4
6
*
3
4
* *
2
= = = =
x
x f x f
UCR-ECCI CI-1453 Investigacin de Operaciones
Generacin de Variables Aleatorias 30
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 31
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, x
1
, x
2
, , x
n
, cada una con media (E(x
i
) =) y
varianza finita
2
(Var(x
i
) =
2
)) tiene una distribucin
aproximadamente normal con media n y varianza n
2
.
( )
n
x
X
n n x
n
i
i
n
i
i

=
=
=

1
2
1
, n
UCR-ECCI CI-1453 Investigacin de Operaciones
Generacin de Variables Aleatorias 32
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; r
1
, r
2
, , r
n
,
con media y varianza finita
2
, se deduce que:
( )
( ) 1 , 0 n
2 1
2
1

n
n r
z
n
i
i
UCR-ECCI CI-1453 Investigacin de Operaciones
Generacin de Variables Aleatorias 33
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:
Se calcula la variable aleatoria normal x de la siguiente forma:
( )
( ) 1 , 0 n
2 1
2
1

n
n r
z
n
i
i
+ = z x
UCR-ECCI CI-1453 Investigacin de Operaciones
Generacin de Variables Aleatorias 34
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:
( ) 1 , 0 n 6
12
1
=

= i
i
r z
UCR-ECCI CI-1453 Investigacin de Operaciones
Generacin de Variables Aleatorias 35
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), r
1
y r
2
, 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 36
Distribucin Normal
Mtodo Directo (cont.)
Este mtodo consiste en los siguientes pasos:
Se generan dos nmeros aleatorios r
1
y r
2
, U(0, 1).
Se transforman en dos variables aleatorias normales, cada una con
media 0 y varianza 1, usando las transformaciones directas:
Se calculan las variables aleatorias normales x
1
y x
2
de la siguiente
forma:
( ) ( )
( ) ( )
2
2 1
1 2
2
2 1
1 1
2 cos ln 2
2 sen ln 2
r r z
r r z

=
=


+ =
+ =
2 2
1 1
z x
z x
UCR-ECCI CI-1453 Investigacin de Operaciones
Generacin de Variables Aleatorias 37
Referencias Bibliogrficas
Winston, Wayne L. Investigacin de Operaciones. Grupo
Editorial Iberoamrica. Mxico, 2005.

También podría gustarte