simulaciÓn de sistemas...algoritmo congruencial multiplicativo surge del congruencial lineal cuando...

39
1 SIMULACIÓN Números pseudoaleatorios 5 - Sistemas

Upload: others

Post on 07-Mar-2021

19 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: SIMULACIÓN DE SISTEMAS...Algoritmo congruencial multiplicativo Surge del congruencial lineal cuando c=0. La ecuación recursiva es: 𝑋𝑖+1= 𝑋𝑖 𝑖=0,1,2,3,…, Todos los

1

SIMULACIÓN

Números pseudoaleatorios

5 - Sistemas

Page 2: SIMULACIÓN DE SISTEMAS...Algoritmo congruencial multiplicativo Surge del congruencial lineal cuando c=0. La ecuación recursiva es: 𝑋𝑖+1= 𝑋𝑖 𝑖=0,1,2,3,…, Todos los

Números pseudoaleatorios

Se utilizan para poder realizar una simulación que incluyavariabilidad dentro de sus eventos, es por ello que espreciso generar una serie de números que sean aleatoriospor sí mismos, y que su aleatoriedad se extrapole al modelode simulación que se está construyendo.

Una de las primeras tareas por realizar consiste endeterminar si los números que utilizaremos para “correr” oejecutar la simulación son realmente aleatorios o no;

Lo anterior resulta muy complicado, ya que para ello tendríamos quegenerar un número infinito de valores que nos permitiera comprobarla inexistencia de correlaciones entre ellos.

Eso sería muy costoso y tardado, volviendo impráctico el uso de lasimulación aun con las computadoras más avanzadas.

2

Page 3: SIMULACIÓN DE SISTEMAS...Algoritmo congruencial multiplicativo Surge del congruencial lineal cuando c=0. La ecuación recursiva es: 𝑋𝑖+1= 𝑋𝑖 𝑖=0,1,2,3,…, Todos los

A pesar de lo anterior, podemos asegurar con altosniveles de confiabilidad que el conjunto de númerosque utilizamos en una simulación se comportan demanera muy similar a un conjunto de númerostotalmente aleatorios, por ello es que se lesdenomina números pseudo aleatorios.

3

Page 4: SIMULACIÓN DE SISTEMAS...Algoritmo congruencial multiplicativo Surge del congruencial lineal cuando c=0. La ecuación recursiva es: 𝑋𝑖+1= 𝑋𝑖 𝑖=0,1,2,3,…, Todos los

Generación de números pseudo aleatorios

Para realizar una simulación se requieren números aleatorios en elintervalo (0,1), a los cuales se hará referencia como ri, es decir, unasecuencia ri = {r1 , r2, r3, …, rn} que contiene n números, todos ellosdiferentes; n recibe el nombre del periodo o ciclo de vida del generadorque creó la secuencia ri .

Los ri constituyen la parte medular de la simulación de procesosestocásticos, y generalmente se usan para generar el comportamientode 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 mediode algoritmos determinísticos que requieren de parámetros de arranque.

4

Page 5: SIMULACIÓN DE SISTEMAS...Algoritmo congruencial multiplicativo Surge del congruencial lineal cuando c=0. La ecuación recursiva es: 𝑋𝑖+1= 𝑋𝑖 𝑖=0,1,2,3,…, Todos los

Para simular el comportamiento de una o másvariables aleatorias es necesario contar con unconjunto suficientemente grande de ri que permita,que la secuencia tenga al menos un periodo de vidade n=231 = 2141483648 (la cual resultarelativamente pequeña).

Actualmente contamos con generadores yprocesadores capaces de construir una secuencia deri con periodos de vida de n = 2200.

5

Page 6: SIMULACIÓN DE SISTEMAS...Algoritmo congruencial multiplicativo Surge del congruencial lineal cuando c=0. La ecuación recursiva es: 𝑋𝑖+1= 𝑋𝑖 𝑖=0,1,2,3,…, Todos los

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

suficientemente grande?

Ejemplo:

Suponga un centro de atención a clientes en unbanco con 5 cajeros en paralelo, cada uno de loscuales atiende a 50 clientes diarios.

Para simular el tiempo de atención se requiere un generadorde 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 losclientes, serán necesarios 5 × 50 = 250 número ri para simularun día.

Si deseamos simular 5 días se necesitarían 250 × 5 = 1250 ri .

6

Page 7: SIMULACIÓN DE SISTEMAS...Algoritmo congruencial multiplicativo Surge del congruencial lineal cuando c=0. La ecuación recursiva es: 𝑋𝑖+1= 𝑋𝑖 𝑖=0,1,2,3,…, Todos los

Para simular el correspondiente total de clientes atendidosdurante 5 días considerando la ecuación de Ti se tiene que serequieren al menos 2500 números pseudo aleatorios ri parasimular la operación del banco durante 5 días.

¿Y si lo que se desea es simular la operación del banco durante unaño? ¿Cuántos números pseudo aleatorios es necesario generar?

Además, los resultados no pueden basarse en una sola simulacióndel sistema, por el contrario, es necesario realizar varias réplicasde la misma, corriendo cada una de ellas con números pseudoaleatorios diferentes.

7

Page 8: SIMULACIÓN DE SISTEMAS...Algoritmo congruencial multiplicativo Surge del congruencial lineal cuando c=0. La ecuación recursiva es: 𝑋𝑖+1= 𝑋𝑖 𝑖=0,1,2,3,…, Todos los

Existen diferentes algoritmos determinísticos quepermiten obtener números pseudo aleatorios,mismos que deben ser sometidos a una variedad depruebas para verificar si los números que conformanel conjunto son realmente independientes yuniformes.

El conjunto ri debe seguir una distribución uniformecontinua, la cual está definida por:

𝑓 𝑟 = 1, 0 ≤ 𝑟 ≤ 10, 𝑒𝑛 𝑐𝑢𝑎𝑙𝑞𝑢𝑖𝑒𝑟 𝑜𝑡𝑟𝑜 𝑣𝑎𝑙𝑜𝑟

8

Page 9: SIMULACIÓN DE SISTEMAS...Algoritmo congruencial multiplicativo Surge del congruencial lineal cuando c=0. La ecuación recursiva es: 𝑋𝑖+1= 𝑋𝑖 𝑖=0,1,2,3,…, Todos los

Problemas que debemos evitar al generar números pseudo aleatorios

Que los números del conjunto ri no esténuniformemente distribuidos, i.e., que hayademasiados ri en un subintervalo y en otro muypocos o ninguno.

Que los números ri sean discretos en lugar decontinuos.

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 muybaja, es decir, que se localice por arriba o por debajode 1/12.

9

Page 10: SIMULACIÓN DE SISTEMAS...Algoritmo congruencial multiplicativo Surge del congruencial lineal cuando c=0. La ecuación recursiva es: 𝑋𝑖+1= 𝑋𝑖 𝑖=0,1,2,3,…, Todos los

Algoritmos determinísticos para generar ri

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

10

Page 11: SIMULACIÓN DE SISTEMAS...Algoritmo congruencial multiplicativo Surge del congruencial lineal cuando c=0. La ecuación recursiva es: 𝑋𝑖+1= 𝑋𝑖 𝑖=0,1,2,3,…, Todos los

Algoritmo de cuadrados medios

No congruencial propuesto por Von Newmann yMetropolis.

Requiere como entradas:

Una semila X0 con D dígitos.

Un número que indica la cantidad de números pseudo aleatorios agenerar 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.” alos dígitos seleccionados.

Para obtener el siguiente ri se sigue el mismo procedimiento solo queahora se usan los D dígitos seleccionados para obtener el ri anterior.

11

Page 12: SIMULACIÓN DE SISTEMAS...Algoritmo congruencial multiplicativo Surge del congruencial lineal cuando c=0. La ecuación recursiva es: 𝑋𝑖+1= 𝑋𝑖 𝑖=0,1,2,3,…, Todos los

Algoritmo de cuadrados medios12

Page 13: SIMULACIÓN DE SISTEMAS...Algoritmo congruencial multiplicativo Surge del congruencial lineal cuando c=0. La ecuación recursiva es: 𝑋𝑖+1= 𝑋𝑖 𝑖=0,1,2,3,…, Todos los

Algoritmo de productos medios

Algoritmo no congruencial.

La diferencia entre este algoritmo y el de cuadrados mediosradica en que este algoritmo requiere dos semillas, ambascon D dígitos, y que en lugar de elevarlas al cuadrado, lassemillas se multiplican y del producto se seleccionan los Ddígitos del centro, los cuales formarán el primer númeropseudo aleatorio ri = 0.D dígitos.

Después se elimina una semilla, y la otra se multiplica porel primer número de D dígitos seleccionado, y así continuael algoritmo sustituyendo el número más antiguo que seutiliza en el producto para generar el siguiente númeropseudo aleatorio.

13

Page 14: SIMULACIÓN DE SISTEMAS...Algoritmo congruencial multiplicativo Surge del congruencial lineal cuando c=0. La ecuación recursiva es: 𝑋𝑖+1= 𝑋𝑖 𝑖=0,1,2,3,…, Todos los

14

Page 15: SIMULACIÓN DE SISTEMAS...Algoritmo congruencial multiplicativo Surge del congruencial lineal cuando c=0. La ecuación recursiva es: 𝑋𝑖+1= 𝑋𝑖 𝑖=0,1,2,3,…, Todos los

Algoritmo de multiplicador constante

Algoritmo no congruencial, similar al algoritmo deproductos medios.

Utiliza una constante y una semilla para generar losnúmeros pseudo aleatorios.

15

Page 16: SIMULACIÓN DE SISTEMAS...Algoritmo congruencial multiplicativo Surge del congruencial lineal cuando c=0. La ecuación recursiva es: 𝑋𝑖+1= 𝑋𝑖 𝑖=0,1,2,3,…, Todos los

16

Page 17: SIMULACIÓN DE SISTEMAS...Algoritmo congruencial multiplicativo Surge del congruencial lineal cuando c=0. La ecuación recursiva es: 𝑋𝑖+1= 𝑋𝑖 𝑖=0,1,2,3,…, Todos los

Algoritmo lineal

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

Genera una secuencia de números enteros por medio de la ecuaciónrecursiva:

𝑋𝑖+1 = 𝑎𝑋𝑖 + 𝑐 𝑚𝑜𝑑 𝑚 𝑖 = 0,1,2, … , 𝑛

X0 es la semilla, a es la constante multiplicativa, c es una constanteaditiva y m es el módulo; X0 >0, a>0, c > 0 y m>0 deben ser númerosenteros.

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 elintervalo (0,1) se requiere la siguiente ecuación:

𝑟𝑖 =𝑋𝑖

𝑚− 1𝑖 = 1,2,3, … , 𝑛

17

Page 18: SIMULACIÓN DE SISTEMAS...Algoritmo congruencial multiplicativo Surge del congruencial lineal cuando c=0. La ecuación recursiva es: 𝑋𝑖+1= 𝑋𝑖 𝑖=0,1,2,3,…, Todos los

18

Page 19: SIMULACIÓN DE SISTEMAS...Algoritmo congruencial multiplicativo Surge del congruencial lineal cuando c=0. La ecuación recursiva es: 𝑋𝑖+1= 𝑋𝑖 𝑖=0,1,2,3,…, Todos los

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:

19

Page 20: SIMULACIÓN DE SISTEMAS...Algoritmo congruencial multiplicativo Surge del congruencial lineal cuando c=0. La ecuación recursiva es: 𝑋𝑖+1= 𝑋𝑖 𝑖=0,1,2,3,…, Todos los

20

Page 21: SIMULACIÓN DE SISTEMAS...Algoritmo congruencial multiplicativo Surge del congruencial lineal cuando c=0. La ecuación recursiva es: 𝑋𝑖+1= 𝑋𝑖 𝑖=0,1,2,3,…, Todos los

21

Page 22: SIMULACIÓN DE SISTEMAS...Algoritmo congruencial multiplicativo Surge del congruencial lineal cuando c=0. La ecuación recursiva es: 𝑋𝑖+1= 𝑋𝑖 𝑖=0,1,2,3,…, Todos los

Algoritmo congruencial aditivo

Este algoritmo requiere una secuencia previa de nnúmeros X1, X2, X3, …, Xn para generar una nuevasecuencia de números enteros que empiezan enXn+1, Xn+2, …

Su ecuación recursiva es:

𝑋𝑖 = 𝑋𝑖−1 + 𝑋𝑖−𝑛 𝑚𝑜𝑑 𝑚 𝑖 = 𝑛 + 1, 𝑛 + 2,… ,𝑁

Los números ri pueden ser generados mediante laecuación:

𝑟𝑖 =𝑋𝑖

𝑚− 1

22

Page 23: SIMULACIÓN DE SISTEMAS...Algoritmo congruencial multiplicativo Surge del congruencial lineal cuando c=0. La ecuación recursiva es: 𝑋𝑖+1= 𝑋𝑖 𝑖=0,1,2,3,…, Todos los

23

Page 24: SIMULACIÓN DE SISTEMAS...Algoritmo congruencial multiplicativo Surge del congruencial lineal cuando c=0. La ecuación recursiva es: 𝑋𝑖+1= 𝑋𝑖 𝑖=0,1,2,3,…, Todos los

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:

24

Page 25: SIMULACIÓN DE SISTEMAS...Algoritmo congruencial multiplicativo Surge del congruencial lineal cuando c=0. La ecuación recursiva es: 𝑋𝑖+1= 𝑋𝑖 𝑖=0,1,2,3,…, Todos los

25

Page 26: SIMULACIÓN DE SISTEMAS...Algoritmo congruencial multiplicativo Surge del congruencial lineal cuando c=0. La ecuación recursiva es: 𝑋𝑖+1= 𝑋𝑖 𝑖=0,1,2,3,…, Todos los

Algoritmo de Blum, Blum y Shub

Si en el algoritmo congruencial cuadrático a=1, b=0y c=0, entonces se construye una nueva ecuaciónrecursiva:

𝑋𝑖+1 = 𝑋𝑖2 𝑚𝑜𝑑 𝑚 𝑖 = 0,1,2,3, … , 𝑛

La ecuación anterior fue propuesta por Blum, Blum yShub como un nuevo método para generar númerosque no tienen un comportamiento predecible.

26

Page 27: SIMULACIÓN DE SISTEMAS...Algoritmo congruencial multiplicativo Surge del congruencial lineal cuando c=0. La ecuación recursiva es: 𝑋𝑖+1= 𝑋𝑖 𝑖=0,1,2,3,…, Todos los

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

¿De qué manera se puede garantizar que losnúmeros que generamos empleando algunos de losalgoritmos antes mencionados u otros son realmentealeatorios 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 estosnúmeros aleatorios garantiza una buenasimulación.

27

Page 28: SIMULACIÓN DE SISTEMAS...Algoritmo congruencial multiplicativo Surge del congruencial lineal cuando c=0. La ecuación recursiva es: 𝑋𝑖+1= 𝑋𝑖 𝑖=0,1,2,3,…, Todos los

Media

Debido a que los números deben tener la mismaprobabilidad de presentarse, es preciso que sucomportamiento muestre una distribución deprobabilidad uniforme continua, con límite inferiorcero y límite superior uno.

La función de densidad de una distribución uniformees la siguiente:

𝑓 𝑥 =1

𝑏 − 𝑎𝑎 ≤ 𝑥 ≤ 𝑏; 𝑒𝑛 𝑒𝑠𝑡𝑒 𝑐𝑎𝑠𝑜, 𝑎 = 0 𝑦 𝑏 = 1

28

Page 29: SIMULACIÓN DE SISTEMAS...Algoritmo congruencial multiplicativo Surge del congruencial lineal cuando c=0. La ecuación recursiva es: 𝑋𝑖+1= 𝑋𝑖 𝑖=0,1,2,3,…, Todos los

29

Page 30: SIMULACIÓN DE SISTEMAS...Algoritmo congruencial multiplicativo Surge del congruencial lineal cuando c=0. La ecuación recursiva es: 𝑋𝑖+1= 𝑋𝑖 𝑖=0,1,2,3,…, Todos los

Para obtener la media de la distribución multiplicamos lafunción de densidad por x, y la integramos en todo el rangode 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.

30

Page 31: SIMULACIÓN DE SISTEMAS...Algoritmo congruencial multiplicativo Surge del congruencial lineal cuando c=0. La ecuación recursiva es: 𝑋𝑖+1= 𝑋𝑖 𝑖=0,1,2,3,…, Todos los

Varianza

Partiendo de la misma distribución uniforme continua obtenemos lavarianza 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

3−

1

2

2

=1

12

31

Page 32: SIMULACIÓN DE SISTEMAS...Algoritmo congruencial multiplicativo Surge del congruencial lineal cuando c=0. La ecuación recursiva es: 𝑋𝑖+1= 𝑋𝑖 𝑖=0,1,2,3,…, Todos los

Dados los resultados anteriores podemos decir quelos números aleatorios entre 0 y 1 deben tener:

𝜇 =1

2y 𝜎2 =

1

12

32

Page 33: SIMULACIÓN DE SISTEMAS...Algoritmo congruencial multiplicativo Surge del congruencial lineal cuando c=0. La ecuación recursiva es: 𝑋𝑖+1= 𝑋𝑖 𝑖=0,1,2,3,…, Todos los

Independencia

Es una propiedad muy importante, e implica que losnúmeros aleatorios no deben tener correlación entresí, es decir, deben ser independientes, de manera quepuedan dispensarse uniformemente dentro de todoel espectro de valores posibles.

33

Page 34: SIMULACIÓN DE SISTEMAS...Algoritmo congruencial multiplicativo Surge del congruencial lineal cuando c=0. La ecuación recursiva es: 𝑋𝑖+1= 𝑋𝑖 𝑖=0,1,2,3,…, Todos los

34

Page 35: SIMULACIÓN DE SISTEMAS...Algoritmo congruencial multiplicativo Surge del congruencial lineal cuando c=0. La ecuación recursiva es: 𝑋𝑖+1= 𝑋𝑖 𝑖=0,1,2,3,…, Todos los

Es posible realizar una serie de pruebas paracomprobar que no existe correlación entre losnúmeros aleatorios, e incluso para garantizar que noexista un sesgo o tendencia entre los dígitos de cadauno de ellos.

35

Page 36: SIMULACIÓN DE SISTEMAS...Algoritmo congruencial multiplicativo Surge del congruencial lineal cuando c=0. La ecuación recursiva es: 𝑋𝑖+1= 𝑋𝑖 𝑖=0,1,2,3,…, Todos los

Pruebas estadísticas para los números pseudo aleatorios

Ya se vio que existen diversos algoritmos para generarnúmeros ri, sin embargo, dicho conjunto debe ser sometidoa una serie de pruebas para validar si los números que lointegran son aptos para usarse en un estudio de simulación.

Existen algunas pruebas estadísticas básicas que seemplean generalmente para determina si un conjunto denúmeros pseudo aleatorios entre cero y uno cumplen conlas propiedades básicas de independencia y uniformidad.Su objetivo es validar que el conjunto ri realmente estáconformado por números aleatorios.

36

Page 37: SIMULACIÓN DE SISTEMAS...Algoritmo congruencial multiplicativo Surge del congruencial lineal cuando c=0. La ecuación recursiva es: 𝑋𝑖+1= 𝑋𝑖 𝑖=0,1,2,3,…, Todos los

Prueba de medias (1)

Una de las propiedades que deben cumplir los números delconjunto ri es que el valor esperado sea igual a 0.5.

La prueba que busca determinar lo anterior es llamadaprueba de medias, en la cual se plantean las siguienteshipótesis:

𝐻0: 𝜇ri = 0.5𝐻1 ∶ 𝜇ri ≠ 0.5

La prueba de medias consiste en determinar el promedio delos n números que contiene el conjunto ri, mediante laecuación siguiente:

𝑟___ =

1

𝑛 𝑖=1𝑛 ri

37

Page 38: SIMULACIÓN DE SISTEMAS...Algoritmo congruencial multiplicativo Surge del congruencial lineal cuando c=0. La ecuación recursiva es: 𝑋𝑖+1= 𝑋𝑖 𝑖=0,1,2,3,…, Todos los

Prueba de medias (2)

Posteriormente se calculan los límites de aceptacióninferior y superior con las ecuaciones siguientes:

38

Page 39: SIMULACIÓN DE SISTEMAS...Algoritmo congruencial multiplicativo Surge del congruencial lineal cuando c=0. La ecuación recursiva es: 𝑋𝑖+1= 𝑋𝑖 𝑖=0,1,2,3,…, Todos los

Bibliografía

Eduardo García Duna et al. (2006). Simulación yanálisis de sistemas con ProModel, Capítulo 2.

39