Está en la página 1de 17

Simulacion Estocastica

Metodos Congruenciales
Fernando Baltazar Larios

Enero 2012

Fernando Baltazar Larios

Congreso de Actuara

Fernando Baltazar Larios

Congreso de Actuara

Introduccion

En diferentes areas del conocimiento se utilizan modelos


matem
aticos para explicar el comportamiento de alg
un
fenomeno bajo estudio.
Por qu
e utilizar las matem
aticas? Por la generalidad
de sus resultados y su ausencia de contradicciones.
As pues, las matematicas son la base te
orica de la estadstica
y de la probabilidad, disciplinas que nos sirven para estudiar
fenomenos que ocurren bajo condiciones de incertidumbre.

Fernando Baltazar Larios

Congreso de Actuara

Introduccion
La construccion de modelos generales que describan
situaciones en ambiente de incertidumbre ha sido relevante
para el desarrollo de la fsica, la ingeniera, la actuara y otras
areas del conocimiento.
Hace apenas unas decadas, el investigador se enfrentaba al
dilema de proponer un modelo muy detallado del fenomeno
cuyo analisis matematico era practicamente imposible, o bien,
proponer uno que fuera tratable matematicamente, pero que
omitiese aspectos relevantes del problema.
Con la llegada de las computadoras, en los u
ltimos a
nos ha
sido posible el uso de modelos cada vez mas complicados.
Problemas que era impensable plantear, ahora pueden
resolverse.

Fernando Baltazar Larios

Congreso de Actuara

Introduccion

Un ejemplo de optimizaci
on muy famoso es el llamado
problema del viajero.
Se tienen k ciudades que un agente viajero debe visitar una y
solo una vez.
El viaje de ciudad a ciudad tiene un costo, que puede ser
proporcional a la distancia entre ellas, y lo que se busca es
una ruta que minimice estos costos.
Teoricamente, el problema tiene soluci
on: basta listar todos
los posibles recorridos que el agente puede realizar y elegir el
que tenga costo mnimo.

Fernando Baltazar Larios

Congreso de Actuara

Introduccion

No obstante, es facil verificar que el n


umero total de posibles
viajes es (k =1)!
La complejidad del problema se hace evidente al observar que,
por ejemplo, 50! = 3.04141 1064 , o bien,
100! = 9.3326 10157 , as que listar todas las posibles
trayectorias es imposible, a
un para las computadoras mas
poderosas.
Las tecnicas de simulaci
on que veremos en este curso, nos
permitiran resolver estos problemas con un esfuerzo de
computo razonable.

Fernando Baltazar Larios

Congreso de Actuara

Generadores de numeros aleatorios uniformes

En un esquema tpico de simulaci


on estocastica la
aleatoriedad se incorpora a traves de variables
aleatorias uniformemente distribuidas.
Estas variables aleatorias son los ladrillos con los cuales se
logra simular sistemas estocasticos mas generales.

Fernando Baltazar Larios

Congreso de Actuara

En los inicios de la simulaci


on, la aleatoriedad se generaba por
medio de tecnicas manuales, tales como volados, dados, cartas
barajadas, o bien ruletas.
La creencia de aquel momento era que s
olo artefactos
mecanicos y/o electr
onicos podan producir verdaderas
sucesiones de n
umeros aleatorios.
No obstante, actualmente la gran mayora de los generadores
de n
umeros aleatorios no dependen de dispositivos fsicos sino
que estos se basan en simples algoritmos que pueden ser
facilmente implementados en un ordenador.

Fernando Baltazar Larios

Congreso de Actuara

Un buen generador de n
umeros aleatorios presenta
todas las caractersticas estadsticas importantes de
las verdaderas sucesiones de n
umeros aleatorios,
a
un y cuando tales sucesiones son generadas
mediante un algoritmo determinista.
Las cantidades aleatorias generadas mediantes algoritmos
deterministas se conocen con el nombre de
pseudoaleatorias.

Fernando Baltazar Larios

Congreso de Actuara

Los metodos mas comunes para generar sucesiones de n


umeros
aleatorios utilizan los llamados generadores lineales
congruenciales.
Estos generan una sucesi
on determinstica de n
umeros por medio
de la formula recursiva
Xi+1 = (aXi + c) (mod m)
donde el valor inicial, X0 , tambien conocido como semilla, y a, c
y m, todos enteros positivos, son el multiplicador, el
incremento y el m
odulo respectivamente.
Para el caso especial donde c = 0 la f
ormula anterior se reduce a
Xi+1 = aXi (mod m)
Tal generador se conocer como generador congruencial
multiplicativo.

Fernando Baltazar Larios

Congreso de Actuara

Entonces, cada Xi puede asumir valores en el conjunto


{0, 1, . . . , m 1} u
nicamente, y las cantidades
Ui =

Xi
m

llamadas n
umeros pseudoaleatorios son aproximaciones a una
verdadera sucesion de variables aleatorias uniformes.
Observe que la sucesi
on X0 , X1 , X2 , . . . se repetir
a despu
es
de a lo m
as m pasos, y que por lo tanto, ser
an
peri
odicos con perodo no mayor a m.

Fernando Baltazar Larios

Congreso de Actuara

Ejemplo

Sean a = c = X0 = 3 y m = 5.
Entonces la sucesion obtenida de la f
ormula recursiva
Xi+1 = (3Xi + 3) (mod 5)
es 3, 2, 4, 0, 3, la cual tiene periodo 4.

Fernando Baltazar Larios

Congreso de Actuara

Es relativamente facil ver que cualquier eleccion arbitraria


para X0 , a, c y m no conducir
a a una sucesion de n
umeros
pseudoaleatorios con buenas propiedades estadsticas.
De hecho, es posible probar mediante teora de n
umeros que
solo unas cuantas combinaciones de estos producen resultados
satisfactorios.

Fernando Baltazar Larios

Congreso de Actuara

Para las implementaciones en computadora, se elige m como


un n
umero primo suficientemente grande que pueda ser
soportado por la longitud de una palabra en la computadora.
Por ejemplo, en una computadora con longitud de palabra de
32-bits, se obtienen generadores estadsticamente aceptables
eligiendo m = 231 1 y a = 75 , suponiendo que el primer bit
es usado para el signo.
Un ordenador con longitud de palabra de 64-bits o 128-bits
naturalmente producira mejores resultados estadsticos.

Fernando Baltazar Larios

Congreso de Actuara

Todos los paquetes para c


omputo estadstico y la gran mayora
de los lenguajes de programaci
on ya traen implementadas
rutinas para la generaci
on de n
umeros pseudoaleatorios.
Tpicamente lo u
nico que se solicita al usuario es la semilla
inicial, X0 , y al invocar a la funci
on esta produce una sucesion
de variables aleatorias independiente de la distribucion U(0, 1).

Fernando Baltazar Larios

Congreso de Actuara

En el paquete estadstico R la funci


on que permite generar n
umeros
de la distribucion U(a, b) es runif(n, a, b), donde:
n
cantidad de n
umeros elatorios que se desea genera
a
lmite inferior de la distribuci
on
b
lmite superior
En particular hacemos u <- runif(1, 0, 1) para generar un
solo valor de U(0, 1).

Fernando Baltazar Larios

Congreso de Actuara

Actividad
Ahora implementemos en R un generador de n
umeros pseudoaleatorios
confiable utilizando el siguiente algoritmo propuesto por Wichman & Hill
(1982).
1. Dar x, y , z enteros mayores a cero y menores a 30,000
2. Calcular
x

171x mod[177] 2x/177

172y mod[176] 35y /176

170z mod[178] 63x/178

3. Evaluar:
Si x 0 entonces x = x + 30269
Si y 0 entonces y = y + 30307
Si z 0 entonces
z = z + 30323 
 x
y
z
mod[1]
4. Hacer u =
+
+
30269 30307 30323
Dependiendo de la maquina, u puede ser 0
o 1 en alguna iteracion; en
este caso, redefinimos a u como u eps, en donde eps es la precision de
la maquina.
Fernando Baltazar Larios

Congreso de Actuara