• No se han encontrado resultados

U2-números pseudoaleatorios parte1.pdf

N/A
N/A
Protected

Academic year: 2020

Share "U2-números pseudoaleatorios parte1.pdf"

Copied!
39
0
0

Texto completo

(1)

1

SIMULACIÓN

(2)

Números pseudoaleatorios

 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

(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.

(4)

Generación de números pseudo aleatorios

 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.

(6)

¿Para qué nos interesa construir una secuencia de números ri suficientemente grande?

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, 𝑒𝑛 𝑐𝑢𝑎𝑙𝑞𝑢𝑖𝑒𝑟 𝑜𝑡𝑟𝑜 𝑣𝑎𝑙𝑜𝑟

(9)

Problemas que debemos evitar al generar números pseudo aleatorios

 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.

(10)

Algoritmos determinísticos para generar r

i

 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

(11)

Algoritmo de cuadrados medios

 No congruencial propuesto por Von Newmann y

Metropolis.

 Requiere como entradas:

 Una semila X0con 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 rise determina simplemente anteponiendo el “0.” a los dígitos seleccionados.

 Para obtener el siguiente rise sigue el mismo procedimiento solo que

(12)

Algoritmo de cuadrados medios

(13)

Algoritmo de productos medios

 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)
(15)

Algoritmo de multiplicador constante

 Algoritmo no congruencial, similar al algoritmo de

productos medios.

 Utiliza una constante y una semilla para generar los

números pseudo aleatorios.

(16)
(17)

Algoritmo lineal

 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 𝑖 = 1,2,3, … , 𝑛

(18)
(19)

Algoritmo congruencial multiplicativo

 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)
(22)

Algoritmo congruencial aditivo

 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)
(24)

Algoritmos congruenciales no lineales

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)
(26)

Algoritmo de Blum, Blum y Shub

 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.

(27)

Propiedades de los números pseudo aleatorios entre 0 y 1

 ¿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.

(28)

Media

 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

𝑏 − 1 𝑥 =

𝑥2

𝑏 − 𝑎 𝑎

𝑏

 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.

(31)

Varianza

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

varianza de la distribución por medio de la ecuación:

𝑉 𝑥 = 𝜎2 = 𝐸 𝑥2 − 𝜇2

𝐸 𝑥2 = 𝑎

𝑏 1

𝑏 − 1 𝑥

2 = 𝑥

3

3(𝑏 − 𝑎) 𝑎 𝑏

 Sustituyendo tenemos que:

𝐸 𝑥2 = 1 3  Por tanto,

𝑉 𝑥 = 1

(32)

 Dados los resultados anteriores podemos decir que

los números aleatorios entre 0 y 1 deben tener:

𝜇 = 1

2 y 𝜎

2 = 1

12

(33)

Independencia

 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.

(36)

Pruebas estadísticas para los números pseudo aleatorios

 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.

(37)

Prueba de medias (1)

 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

𝑛 r

i

(38)

Prueba de medias (2)

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

inferior y superior con las ecuaciones siguientes:

(39)

Bibliografía

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

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

Referencias

Documento similar

Su importancia en la fundamentación del conjunto de los números naturales se ha mante- nido hasta nuestros días en donde, desde un planteamiento axiomático (Aparicio y Paya, 1985),

La Normativa de evaluación del rendimiento académico de los estudiantes y de revisión de calificaciones de la Universidad de Santiago de Compostela, aprobada por el Pleno or-

Gastos derivados de la recaudación de los derechos económicos de la entidad local o de sus organis- mos autónomos cuando aquélla se efectúe por otras enti- dades locales o

Los números enteros son el conjunto de números formado por todos los números naturales (números positivos) por el cero y por los números negativos (esos que son más pequeños que cero

Nuestra variable ya no será de tipo double, ahora es un int pero debemos hacer un cambio antes del Math.random.. Debemos incluir

Números racionales: El conjunto formado por todos los números enteros y todos los números fraccionarios. Número decimal exacto: es aquel que tiene finitas cifras decimales. Número

El Teorema de Pick trata del cálculo del área de un polígono simple (aquél en el que los lados no se cruzan) cuyos vértices son puntos de una retícula (que podemos suponer es

La oferta existente en el Departamento de Santa Ana es variada, en esta zona pueden encontrarse diferentes hoteles, que pueden cubrir las necesidades básicas de un viajero que