You are on page 1of 40

Simulacin de Sistemas

Simulacin Montecarlos
Generacin de nmeros pseudoaleatorios

Marcos Rivas Pea


Objetivo de la Sesin

Aprender a Simular mediante el mtodo


Monte Carlo
Comprender la importancia de los nmeros
aleatorios en la simulacin
Construir generadores de nmeros
aleatorios
Validar una serie de nmeros aleatorios

Marcos Rivas Pea


Sistemas
Tabla de Contenido

Simulacin Montecarlo
Generacin de nmeros aleatorios
Mtodo de cuadrado medios
Mtodo de Congruencia Lineal
Validacin de los nmeros aleatorios
Validacin de la uniformidad
Validacin de la aleatoriedad

Marcos Rivas Pea


Mtodo Montecarlo
El problema crucial de la aplicacin de los
mtodos de Monte Carlo es hallar los valores de
una variable aleatoria (discreta o continua) con
una distribucin de probabilidad dada por la
funcin p(x) a partir de los valores de una variable
aleatoria uniformemente distribuida en el intervalo
[0, 1), proporcionada por el computador o por una
rutina incorporada al programa.

Marcos Rivas Pea


Simulacin de una Ruleta

Realicemos ahora la experiencia de hacer


girar una ruleta y apuntar el nmero del
sector que coincide con la flecha

Marcos Rivas Pea


Nmeros Aleatorios

Elemento Central en la Simulacin digital.


Elemento esencial en muchas reas del conocimiento
Ingeniera, Economa, Fsica, Estadstica, etc.
Definicin intuitiva: Una sucesin de nmeros
aleatorios puros, se caracteriza por que no existe
ninguna regla o plan que nos permita conocer sus
valores.

Marcos Rivas Pea


Nmeros Aleatorios

Tabla de Xi+1=(aXi+c) mod m


Manual o mecnico. Nmeros aleatorios Computador

Marcos Rivas Pea


Generacin de Nmeros Aleatorios

Juegan un rol preponderante en el proceso de


simulacin.
Para simular necesitamos de nmeros aleatorios
como semillas para generar muestras de V.A.

Los nmeros aleatorios obtenidos a travs de


algoritmos recursivos se llaman pseudoaleatorios.

Marcos Rivas Pea


Generacin de Nmeros Aleatorios
Propiedades a verificar

Distribucin uniforme
Estadsticamente independientes
Reproducibles
Ciclo tan largo como se desee
Generacin a gran velocidad
Ocupar poca memoria de ordenador

Marcos Rivas Pea


Propiedades de Nmeros Aleatorios
1. Distribucin Uniforme.
Cualquier nmero que
pertenezca al rango de inters
debe tener la misma
probabilidad de ser elegido.
2. Estadsticamente
Independiente
La aparicin de un nmero
en la secuencia, no afecta la
probabilidad de que aparezca
otro (o el mismo) nmero.

Marcos Rivas Pea


Ejemplo
La serie

0,1,2,3,4,5,0,1,2,3,4,5,0,1,2,3,4,5.....

Es Uniforme ?

Es estadsticamente independiente?

Marcos Rivas Pea


Generador RANDU IBM

Marcos Rivas Pea


Generador RANDU IBM

Marcos Rivas Pea


Serie de Nmeros Aleatorios

Son nmeros que deben de cumplir los


requisitos de espacio equiprobable, es decir,
que todo elemento tenga la misma
probabilidad de ser elegido y que la
eleccin de uno no dependa de la eleccin
del otro.

Marcos Rivas Pea


Mtodos de Generacin de Nmeros Aleatorios

1.- Mtodo de los cuadrados medios


2.- Mtodos de Congruencia Lineal

[Semilla - Algoritmo - Validacin]


P1 : Obtener semilla (valores iniciales)
P2 : Aplicacin de Algoritmos recursivos
P3 : Validacin del conjunto de datos
generados Test de Aleatoriedad e
Uniformidad)

Marcos Rivas Pea


Mtodo de los Cuadrados medios

Consiste en que cada nmero de una sucesin es


producido tomando los dgitos medios de un nmero
obtenido mediante la elevacin al cuadrado.
P1 : Obtener semilla (valores iniciales 445)
P2 : Aplicacin de Algoritmos recursivos (elevar
al cuadrado)
P3 : Validacin del conjunto de datos
generados

Marcos Rivas Pea


Mtodo de los Cuadrados medios

Ejemplo: Consideremos la semilla 445

X X2 N Aleatorio
445 1| 9802 | 5 0,9802
9802 96| 0792 | 04 0,0792
792 6 | 2726 | 4 0,2726
2726 ............... ...............

Marcos Rivas Pea


Anlisis
El problema con este mtodo es que tiende a degenerar rpidamente.
Dependiendo del valor inicial el mtodo puede degenerar rapidamente.
Por ejemplo, supngase que se quiere generar una serie de nmeros pseudo-
aleatorios de cuatro dgitos y se tiene como i-simo termino generado es
3500, luego se tendr:

n x x2 Nro. Aleatorio
i 3500 12250000 2500
i+1 2500 6250000 2500

Se puede observar que hemos llegado a una condicin degenerada. Por la


tanto, es necesario verificar siempre la serie de nmeros y protegerse contra
este fenmeno

Marcos Rivas Pea


Generadores de Congruencia Lineal
Este mtodo produce una secuencia de nmeros enteros, X1, X2, ...
entre cero y m de acuerdo a la siguiente relacin recursiva:
Xn+1 = (a Xn + c) mod m ; 0 Xn < m n
Los parmetros del algoritmo se llaman
-a Constante multiplicativa
-c es el incremento
-m mdulo
- Xo semilla (valor inicial)

Si se quiere obtener nmeros Uniformes (0,1) se normaliza el


resultado Xn
Un
m
Marcos Rivas Pea
Generadores de Congruencia Lineal
Obs: 1.- Cuando c=0 el generador se denomina
Generador de congruencia Multiplicativa.
2.- Cuando c0 el generador se denomina
Generador de congruencia mixto.
3.- A pesar de la simplicidad una adecuada
eleccin de los parmetros de a, c y m,
permite obtener de manera eficiente una larga
e impredecible sucesin de nmeros como para
considerarse aleatoria.

Marcos Rivas Pea


Mtodo de Congruencial Lineal (MCL)
En el MCL, si se repite un nmero ya se repite
toda la secuencia.

Ventajas:

1. utiliza poca memoria y es muy rpido.


2. fcil de volver a generar la misma secuencia,
guardando un solo nmero, (se alcanza con partir
desde la misma semilla: X0).

Marcos Rivas Pea


Ejemplo MCL
Parmetros
Caso a c m xo
1 6 0 13 1
2 7 0 13 10
3 5 0 13 5
4 7 0 11 5
5 6 0 11 3

Caso Salidas
1 6 10 8 9 2 12 7 3 5 4 11 1 6 10
2 5 9 11 12 6 3 8 4 2 1 7 10 5 9
3 12 8 1 5 12 8 1 5 12 8 1 5 12 8
4 2 3 10 4 6 9 8 1 7 5 2 3 10 4
5 7 9 10 5 8 4 2 1 6 3 7 9 10 4

Marcos Rivas Pea


Mtodos de Congruencia Lineal
Algunas observaciones de las salidas de los generadores
congruenciales:

1. Un generador congruencial tiene ciclos o periodos


2. La longitud del ciclo depende de la seleccin de los
parmetros (ver caso 1) y 3) )
3. Dentro de selecciones de parmetros que conducen a
la misma longitud, algunas salidas parecen ms
aleatorias que otras.

Marcos Rivas Pea


Mtodos de Congruencia Lineal
Periodo: subcadena de la serie en la
que no hay repeticiones de nmeros.

Longitud de periodo: nmero de


elementos de dicha subcadena.

Interesan mtodos con alta longitud de


periodo.
Marcos Rivas Pea
Mtodos de Congruencia Lineal

Para obtener la mxima densidad y evitar los ciclos (recurrencia de la


misma secuencia de nmeros ya generados) el generador debera tener
el periodo ms grande posible. El mximo periodo puede lograrse
eligiendo apropiadamente los valores de los parmetros del generador,
por ejemplo (Banks et al., 1996):
Para m = 2b y c 0, el mximo periodo es P = m, y puede lograrse con
un valor de c que sea un nmero primo relativo a m (esto es, que el
mximo factor comn entre ambos sea 1), y a = 1+4k. k y b son
enteros.
Para m = 2b y c = 0, el mximo periodo es P = m/4, y puede lograrse
con un valor impar para la semilla X0, y a = 3+8k, o a = 5+8k. k y b
son enteros.
Para m nmero primo y c = 0, el mximo periodo es P = m-1, y puede
lograrse con un valor de a tal que el menor entero k que hace que
ak-1sea divisible por m es k = m-1.
Marcos Rivas Pea
Ejemplo
La Tabla muestra resultado de un generador congruencial multiplicativo para
a = 13, m = 26 = 64, X0 = 1, 2, 3, 4.

Marcos Rivas Pea


Generadores Reales
El generador Mth$Random, empleado en los compiladores
de FORTRAN y BASIC de los antiguos ordenadores VAX,
utilizaba la siguiente recursin:

El generador LGC16807, utilizado durante aos en muchos


paquetes de software para estadstica, simulacin y
optimizacin, emplea:

Marcos Rivas Pea


Validacin de Series de Nmeros Pseudoaleatorios

Finalmente la fase de validacin se basa en ciertas


propiedades estadsticas que deben cumplirse a la
salida de los generadores de n aleatorios .
Los Test empricos que veremos a continuacin son
genricos y pueden usarse en la evaluacin de
generadores de n aleatorios, en generadores de
variables aleatorias y en la modelacin de entradas de
modelos de simulacin.
La mayora de los Test se encuentran disponibles en
paquetes estadsticos comerciales.

Marcos Rivas Pea


Validacin de Series de Nmeros pseudoaleatorios

La validacin consiste en probar si una serie de


nmeros generados corresponde a una
distribucin de probabilidad supuesta y probar
que los nmeros son independientes entre s.

Prueba de Bondad de Ajuste.


Probar si cumple una distribucin uniforme
Prueba de Aleatoriedad.
Probar si los elementos de la serie son independientes.

Marcos Rivas Pea


Validacin de la Uniformidad de los Nmeros Pseudoaleatorios

Test 2

Aplicable a v.a. continuas y v.a .discretas y compara las funciones de densidad de


probabilidad

Procedimiento
1o. Elaborar el histograma de frecuencias relativas, con la que podemos apreciar cul sera la
funcin terica de densidad que se ajusta mejor a los datos del histograma.
2o. Desarrollo de la prueba estadstica :
2.1. Planteamiento de hiptesis
Hp : La variable en estudio se ajusta a determinada distribucin terica (Uniforme,
exponencial, normal, poisson).
Ha : La variable en estudio tiene un comportamiento aleatorio que no se ajusta a
determinada distribucin terica.
3o. Establecimiento del nivel de significacin .
4o. Clculos previos y estimacin de la frecuencia esperada o terica
5o. Criterios de decisin :
Se acepta la Hp, si X2 calc < X2 tab
Se rechaza la Hp si X2 calc > X2 tab

Marcos Rivas Pea


Validacin de la Uniformidad de los Nmeros Pseudoaleatorios
Test 2

Dada una muestra X1, X2, ..., Xn de una Fx(x) desconocida. Se


desea contrastar.
Ho : Fx(x) = Fo(x) v/s H1 : Fx(x) Fo(x)
Este Test considera aleatoriedad de Fo = U(0,1)
Efectuando una particin del soporte de X en k subconjuntos I1, I2, ..., Ik :

Ii X Ii I j


2
k
fi ei 2
2 ( k 1)
i 1 ei
fi : Nmero observados en el subconjunto i-simo (Ii)
ei: nmero de observaciones esperadas en Ii bajo Ho

Marcos Rivas Pea


Validacin de la Uniformidad de los Nmeros Pseudoaleatorios
Ejemplo

Use el test chi-square con = 0.05 para mostrar que la serie de


nmeros estn uniformemente distribudos

0.34 0.90 0.25 0.89 0.87 0.44 0.12 0.21 0.46 0.67
0.83 0.76 0.79 0.64 0.70 0.81 0.94 0.74 0.22 0.74
0.96 0.99 0.77 0.67 0.56 0.41 0.52 0.73 0.99 0.02
0.47 0.30 0.17 0.82 0.56 0.05 0.47 0.31 0.78 0.05
0.79 0.71 0.23 0.19 0.82 0.93 0.65 0.37 0.39 0.42
0.99 0.17 0.99 0.46 0.05 0.66 0.10 0.42 0.18 0.49
0.37 0.51 0.54 0.01 0.81 0.28 0.69 0.34 0.75 0.49
0.72 0.43 0.56 0.97 0.30 0.94 0.96 0.58 0.73 0.05
0.06 0.39 0.84 0.24 0.40 0.64 0.40 0.19 0.79 0.62
0.18 0.26 0.97 0.88 0.64 0.47 0.60 0.11 0.29 0.78

Marcos Rivas Pea


Validacin de la Uniformidad de los Nmeros Pseudoaleatorios
Test de Kolmogorov - Smirnov (Test K-S)

Mediante la prueba se compara la distribucin acumulada de las frecuencias tericas


(Fo) con la distribucin acumulada de las frecuencias observadas (Fn), se encuentra el
punto de divergencia mxima y se determina qu probabilidad existe de que una
diferencia de esa magnitud se deba al azar.

Procedimiento:

1o. Calcular las frecuencias esperadas de la distribucin terica especfica por considerar
para determinado nmero de clases, en un arreglo de rangos de menor a mayor.
2o Arreglar estos valores tericos en frecuencias acumuladas.
3o Arreglar acumulativamente las frecuencias observadas.
4o Aplicar la ecuacin D = |Fo Fn| , donde D es la mxima discrepancia de ambas.
5o Comparar el valor estadstico D de Kolmogorov-Smirnov en la tabla de valores crticos
de D.
6o Decidir si se acepta o rechaza la hiptesis.

Marcos Rivas Pea


Validacin de la Uniformidad de los Nmeros Pseudoaleatorios
Test de Kolmogorov - Smirnov (Test K-S)

Sea Fo una funcin de distribucin continua y sea Fn la


funcin de distribucin emprica de la muestra.
Bajo Ho: Fn(x) = Fo(x) se espera que Fn se aproxime a Fo
Dn = Sup | Fn(x) - Fo(x) |

La distribucin
xR exacta de Dn est tabulada para valores
n 40 y distintos niveles de significacin .
Para muestras grandes se utiliza la distribucin
asinttica de Dn dada por

lim P(
n
n Dn z ) L( z ) 1 2 (1) e i 1 2 i 2 z

i 1

Marcos Rivas Pea


Validacin de la Aleatoriedad de los Nmeros Pseudoaleatorios

Test de Rachas

Rachas: Se define una racha como una sucesin de


smbolos idnticos que pueden estar o no estar
separados por otros smbolos.
Ejemplo:

++---+----++-+

Marcos Rivas Pea


Validacin de la Aleatoriedad de los Nmeros Pseudoaleatorios
Test de Rachas

Procedimiento:
1o. Sea n1 el nmero de elementos de una clase , y n2 el nmero de
elementos de la otra.
2o Sea N el nmero total de eventos observados n1 + n2
3o Determinar el nmero de rachas (r)

Nota: Para muestras grandes, una buena aproximacin a la distribucin


muestral de (r) es la distribucin normal.

Marcos Rivas Pea


Validacin de la Aleatoriedad de los Nmeros Pseudoaleatorios

Test de Rachas

Test de Corridas
Dada la sucesin de n observaciones construimos la
sucesin de smbolos binarios definida por
1 si X i X i 1

0 si X i X i 1

Definimos racha creciente (decreciente) de longitud L a


un grupo seguido de L nmeros 1(+) nmeros 0(-).
Contando el nmero de rachas. Bajo aleatoriedad de la
muestra se espera que su distribucin asinttica sea
normal: 2 n 1 16 n 29
N
3
;
90

Marcos Rivas Pea


Ejemplo: Considere la siguiente secuencia de 20 nmeros aleatrorios

Test de Rachas

0.43 0.28 0.33 0.27 0.12


0.31 0.42 0.01 0.32 0.45
0.98 0.79 0.99 0.55 0.67
0.74 0.16 0.20 0.12 0.58

Marcos Rivas Pea


Validacin de la Aleatoriedad de los Nmeros Pseudoaleatorios

Test de Rachas

Test de Rachas por encima y debajo de la media.

Se cuentan el nmero de observaciones que se sitan a


un mismo lado de la media. La distribucin asinttica del
nmero de rachas bajo aleatoridad es normal:

N[2n1n2/N+1/2, 2n1n2 (2n1n2-N)/N2(N-1)]

Marcos Rivas Pea


Conclusiones
Los nmeros aleatorios son de gran
importancia en el proceso de simulacin
La serie de nmeros aleatorios generados
tiene un periodo, es el ciclo que no hay
ningn nmero que se repite
Es necesario validar la uniformidad y
aleatoriedad de la serie de nmeros
generados

Marcos Rivas Pea

You might also like