You are on page 1of 39

SIMULACIÓN

Números pseudoaleatorios
5 - Sistemas
1
Números pseudoaleatorios
2

 Se utilizan para poder realizar una simulación que incluya


variabilidad dentro de sus eventos, es por ello que es
preciso generar una serie de números que sean aleatorios
por sí mismos, y que su aleatoriedad se extrapole al modelo
de simulación que se está construyendo.
 Una de las primeras tareas por realizar consiste en
determinar si los números que utilizaremos para “correr” o
ejecutar la simulación son realmente aleatorios o no;
 Lo anterior resulta muy complicado, ya que para ello tendríamos que
generar un número infinito de valores que nos permitiera comprobar
la inexistencia de correlaciones entre ellos.
 Eso sería muy costoso y tardado, volviendo impráctico el uso de la
simulación aun con las computadoras más avanzadas.
3

 A pesar de lo anterior, podemos asegurar con altos


niveles de confiabilidad que el conjunto de números
que utilizamos en una simulación se comportan de
manera muy similar a un conjunto de números
totalmente aleatorios, por ello es que se les
denomina números pseudo aleatorios.
Generación de números pseudo aleatorios
4

 Para realizar una simulación se requieren números aleatorios en el


intervalo (0,1), a los cuales se hará referencia como ri, es decir, una
secuencia ri = {r1 , r2, r3, …, rn} que contiene n números, todos ellos
diferentes; n recibe el nombre del periodo o ciclo de vida del generador
que creó la secuencia ri .
 Los ri constituyen la parte medular de la simulación de procesos
estocásticos, y generalmente se usan para generar el comportamiento
de variables aleatorios, tanto continuas como discretas.
 Debido a que no es posible generar números realmente aleatorios,
consideramos los ri como números pseudo aleatorios, generados por medio
de algoritmos determinísticos que requieren de parámetros de arranque.
5

 Para simular el comportamiento de una o más


variables aleatorias es necesario contar con un
conjunto suficientemente grande de ri que permita,
que la secuencia tenga al menos un periodo de vida
de n=231 = 2141483648 (la cual resulta
relativamente pequeña).
 Actualmente contamos con generadores y
procesadores capaces de construir una secuencia de
ri con periodos de vida de n = 2200.
¿Para qué nos interesa construir una secuencia de números ri
suficientemente grande?
6

Ejemplo:
 Suponga un centro de atención a clientes en un
banco con 5 cajeros en paralelo, cada uno de los
cuales atiende a 50 clientes diarios.
 Para simular el tiempo de atención se requiere un generador
de variable aleatoria en función de ri , por ejemplo, Ti = 5 + 2ri ,
expresado en minutos para toda i = 1, 2, 3, …, n.
 Sin considerar el tiempo transcurrido desde la llegada de los
clientes, serán necesarios 5 × 50 = 250 número ri para simular
un día.
 Si deseamos simular 5 días se necesitarían 250 × 5 = 1250 ri .
7

 Para simular el correspondiente total de clientes atendidos


durante 5 días considerando la ecuación de Ti se tiene que se
requieren al menos 2500 números pseudo aleatorios ri para
simular la operación del banco durante 5 días.
 ¿Y si lo que se desea es simular la operación del banco durante un
año? ¿Cuántos números pseudo aleatorios es necesario generar?
 Además, los resultados no pueden basarse en una sola simulación
del sistema, por el contrario, es necesario realizar varias réplicas
de la misma, corriendo cada una de ellas con números pseudo
aleatorios diferentes.
8

 Existen diferentes algoritmos determinísticos que


permiten obtener números pseudo aleatorios,
mismos que deben ser sometidos a una variedad de
pruebas para verificar si los números que conforman
el conjunto son realmente independientes y
uniformes.
 El conjunto ri debe seguir una distribución uniforme
continua, la cual está definida por:
1, 0≤𝑟≤1
𝑓 𝑟 =
0, 𝑒𝑛 𝑐𝑢𝑎𝑙𝑞𝑢𝑖𝑒𝑟 𝑜𝑡𝑟𝑜 𝑣𝑎𝑙𝑜𝑟
Problemas que debemos evitar al generar números
pseudo aleatorios
9

 Que los números del conjunto ri no estén


uniformemente distribuidos, i.e., que haya
demasiados ri en un subintervalo y en otro muy
pocos o ninguno.
 Que los números ri sean discretos en lugar de
continuos.
 Que la media del conjunto sea muy alta o muy baja,
es decir, que esté por arriba o por debajo de 1/2.
 Que la varianza del conjunto sea muy alta o muy
baja, es decir, que se localice por arriba o por debajo
de 1/12.
Algoritmos determinísticos para generar ri
10

 No congruenciales:
 Cuadrados medios

 Productos medios

 Multiplicador constante

 Congruenciales:
 Algoritmos congruenciales lineales:
 Congruencial lineal
 Multiplicativo
 Aditivo
 Algoritmos congruenciales no lineales.
 Blum
 Blum y Shub
 Congruencial cuadrático
Algoritmo de cuadrados medios
11

 No congruencial propuesto por Von Newmann y


Metropolis.
 Requiere como entradas:
 Una semila X0 con D dígitos.
 Un número que indica la cantidad de números pseudo aleatorios a
generar n.
 Un número D que indica la cantidad de dígitos a utilizar.
 Descripción:
 Eleva al cuadrado la semilla para seleccionar los D dígitos del centro,
el primer número ri se determina simplemente anteponiendo el “0.” a
los dígitos seleccionados.
 Para obtener el siguiente ri se sigue el mismo procedimiento solo que
ahora se usan los D dígitos seleccionados para obtener el ri anterior.
Algoritmo de cuadrados medios
12
Algoritmo de productos medios
13

 Algoritmo no congruencial.
 La diferencia entre este algoritmo y el de cuadrados medios
radica en que este algoritmo requiere dos semillas, ambas
con D dígitos, y que en lugar de elevarlas al cuadrado, las
semillas se multiplican y del producto se seleccionan los D
dígitos del centro, los cuales formarán el primer número
pseudo aleatorio ri = 0.D dígitos.
 Después se elimina una semilla, y la otra se multiplica por
el primer número de D dígitos seleccionado, y así continua
el algoritmo sustituyendo el número más antiguo que se
utiliza en el producto para generar el siguiente número
pseudo aleatorio.
14
Algoritmo de multiplicador constante
15

 Algoritmo no congruencial, similar al algoritmo de


productos medios.
 Utiliza una constante y una semilla para generar los
números pseudo aleatorios.
16
Algoritmo lineal
17

 Algoritmo congruencial propuesto por D.H. Lehmer en 1951.


 Genera una secuencia de números enteros por medio de la ecuación
recursiva:
𝑋𝑖+1 = 𝑎𝑋𝑖 + 𝑐 𝑚𝑜𝑑 𝑚 𝑖 = 0,1,2, … , 𝑛
 X0 es la semilla, a es la constante multiplicativa, c es una constante
aditiva y m es el módulo; X0 >0, a>0, c > 0 y m>0 deben ser números
enteros.
 La ecuación anterior genera una secuencia de números enteros S =
{0,1,2,3,…,m-1}, y para obtener números pseudo aleatorios en el
intervalo (0,1) se requiere la siguiente ecuación:
𝑋𝑖
𝑟𝑖 = 𝑖 = 1,2,3, … , 𝑛
𝑚−1
18
Algoritmo congruencial multiplicativo
19

 Surge del congruencial lineal cuando c=0.


 La ecuación recursiva es:
𝑋𝑖+1 = 𝑎𝑋𝑖 𝑚𝑜𝑑 𝑚 𝑖 = 0,1,2,3, … , 𝑛
 Todos los parámetros de entrada deben ser enteros y
mayores que cero.
 Para transformar los números Xi en el intervalo (0,1) se usa
la ecuación:
𝑋𝑖
𝑟𝑖 =
𝑚−1
 Para que este algoritmo alcance su máximo periodo deben
cumplirse las siguientes condiciones:
20
21
Algoritmo congruencial aditivo
22

 Este algoritmo requiere una secuencia previa de n


números X1, X2, X3, …, Xn para generar una nueva
secuencia de números enteros que empiezan en
Xn+1, Xn+2, …
 Su ecuación recursiva es:
𝑋𝑖 = 𝑋𝑖−1 + 𝑋𝑖−𝑛 𝑚𝑜𝑑 𝑚 𝑖 = 𝑛 + 1, 𝑛 + 2, … , 𝑁
 Los números ri pueden ser generados mediante la
ecuación:
𝑋𝑖
𝑟𝑖 =
𝑚−1
23
Algoritmos congruenciales no lineales
24

Algoritmo congruencial cuadrático


 Tiene la siguiente ecuación recursiva:
𝑋𝑖+1 = 𝑎𝑋𝑖2 + 𝑏𝑋𝑖 + 𝑐 𝑚𝑜𝑑 𝑚 𝑖 = 0,1,2,3, … , 𝑁
 En este caso los números ri pueden ser generados con la ecuación:
𝑋𝑖
𝑟𝑖 =
𝑚−1
 Las condiciones que deben cumplir los parámetros m, a, b y c para
alcanzar un periodo máximo de N=m son:
25
Algoritmo de Blum, Blum y Shub
26

 Si en el algoritmo congruencial cuadrático a=1, b=0


y c=0, entonces se construye una nueva ecuación
recursiva:
𝑋𝑖+1 = 𝑋𝑖2 𝑚𝑜𝑑 𝑚 𝑖 = 0,1,2,3, … , 𝑛

 La ecuación anterior fue propuesta por Blum, Blum y


Shub como un nuevo método para generar números
que no tienen un comportamiento predecible.
Propiedades de los números pseudo aleatorios entre
0y1
27

 ¿De qué manera se puede garantizar que los


números que generamos empleando algunos de los
algoritmos antes mencionados u otros son realmente
aleatorios entre 0 y 1?
 ¿Cuáles son las características que los identifican?
 ¿Cuáles son sus parámetros?

Conocer las propiedades que deben tener estos


números aleatorios garantiza una buena
simulación.
Media
28

 Debido a que los números deben tener la misma


probabilidad de presentarse, es preciso que su
comportamiento muestre una distribución de
probabilidad uniforme continua, con límite inferior
cero y límite superior uno.
 La función de densidad de una distribución uniforme
es la siguiente:
1
𝑓 𝑥 = 𝑎 ≤ 𝑥 ≤ 𝑏; 𝑒𝑛 𝑒𝑠𝑡𝑒 𝑐𝑎𝑠𝑜, 𝑎 = 0 𝑦 𝑏 = 1
𝑏−𝑎
29
30

 Para obtener la media de la distribución multiplicamos la


función de densidad por x, y la integramos en todo el rango
de la misma distribución usando la siguiente ecuación:
𝑏
1 𝑥2 𝑏
𝐸 𝑥 = 𝑥 = 𝑎
𝑏−1 𝑏−𝑎
𝑎
 Sustituyendo los valores de a y b
1
𝐸 𝑥 =
2
 Por tanto, la media de los números aleatorios entre 0 y 1 es
µ = 0.5.
Varianza
31

 Partiendo de la misma distribución uniforme continua obtenemos la


varianza de la distribución por medio de la ecuación:
𝑉 𝑥 = 𝜎 2 = 𝐸 𝑥 2 − 𝜇2
𝑏
1 𝑥 3
𝐸 𝑥2 = 𝑥2 = 𝑏
𝑎
𝑏−1 3(𝑏 − 𝑎)
𝑎
 Sustituyendo tenemos que:
1
𝐸 𝑥2 =
3
 Por tanto,
2
1 1 1
𝑉 𝑥 = − =
3 2 12
32

 Dados los resultados anteriores podemos decir que


los números aleatorios entre 0 y 1 deben tener:
1 2 1
𝜇= y 𝜎 =
2 12
Independencia
33

 Es una propiedad muy importante, e implica que los


números aleatorios no deben tener correlación entre
sí, es decir, deben ser independientes, de manera que
puedan dispensarse uniformemente dentro de todo
el espectro de valores posibles.
34
35

 Es posible realizar una serie de pruebas para


comprobar que no existe correlación entre los
números aleatorios, e incluso para garantizar que no
exista un sesgo o tendencia entre los dígitos de cada
uno de ellos.
Pruebas estadísticas para los números pseudo aleatorios
36

 Ya se vio que existen diversos algoritmos para generar


números ri, sin embargo, dicho conjunto debe ser sometido
a una serie de pruebas para validar si los números que lo
integran son aptos para usarse en un estudio de simulación.
 Existen algunas pruebas estadísticas básicas que se
emplean generalmente para determina si un conjunto de
números pseudo aleatorios entre cero y uno cumplen con
las propiedades básicas de independencia y uniformidad.
Su objetivo es validar que el conjunto ri realmente está
conformado por números aleatorios.
Prueba de medias (1)
37

 Una de las propiedades que deben cumplir los números del


conjunto ri es que el valor esperado sea igual a 0.5.
 La prueba que busca determinar lo anterior es llamada
prueba de medias, en la cual se plantean las siguientes
hipótesis:
𝐻0 : 𝜇ri = 0.5
𝐻1 ∶ 𝜇ri ≠ 0.5
 La prueba de medias consiste en determinar el promedio de
los n números que contiene el conjunto ri, mediante la
ecuación siguiente:
___ 1 𝑛
 𝑟 = 𝑛 𝑖=1 ri
Prueba de medias (2)
38

 Posteriormente se calculan los límites de aceptación


inferior y superior con las ecuaciones siguientes:
Bibliografía
39

 Eduardo García Duna et al. (2006). Simulación y


análisis de sistemas con ProModel, Capítulo 2.