28
Números Aleatorios Simulación

Números Aleatorios Simulación. Introducción Aplicaciones de los números aleatorios: Simulación, con entradas no determinísticas. Juegos o teoría de decisiones

Embed Size (px)

Citation preview

Page 1: Números Aleatorios Simulación. Introducción Aplicaciones de los números aleatorios: Simulación, con entradas no determinísticas. Juegos o teoría de decisiones

Números Aleatorios

Simulación

Page 2: Números Aleatorios Simulación. Introducción Aplicaciones de los números aleatorios: Simulación, con entradas no determinísticas. Juegos o teoría de decisiones

Introducción Aplicaciones de los números aleatorios:

Simulación, con entradas no determinísticas. Juegos o teoría de decisiones. Cálculo numérico (p.e.: resolución de

integrales). Teoría del muestreo. Programación.

Número “aleatorio”: La aleatoriedad es una característica que posee o no una serie de números, no un número aislado.

Page 3: Números Aleatorios Simulación. Introducción Aplicaciones de los números aleatorios: Simulación, con entradas no determinísticas. Juegos o teoría de decisiones

Generadores de números.Tipos

Características deseables: Los números generados no se deben repetir

frecuentemente (en ciclos). Las series generadas deben ser

reproducibles. Rapidez en la obtención de los números. Almacenamiento mínimo. Los números generados han de estar

uniformemente distribuidos. Los valores deben ser independientes unos

de otros.

Page 4: Números Aleatorios Simulación. Introducción Aplicaciones de los números aleatorios: Simulación, con entradas no determinísticas. Juegos o teoría de decisiones

Generadores de números.Métodos

Manual (p.e., dado, bombo). Las series obtenidas son realmente aleatorias. Lentitud. Las series obtenidas son irreproducibles. Requieren gran cantidad de almacenamiento.

Tablas (p.e., hasta 100000 números). Las series obtenidas son reproducibles. Lentitud. Requieren gran cantidad de almacenamiento.

Page 5: Números Aleatorios Simulación. Introducción Aplicaciones de los números aleatorios: Simulación, con entradas no determinísticas. Juegos o teoría de decisiones

Generadores de números.Métodos

Computación analógica (p.e., fenómenos físicos).

Las series obtenidas son realmente aleatorias. Rapidez. Las series obtenidas son irreproducibles.

Computación digital (p.e., función y semilla).

Rapidez. Pocos requerimientos de almacenamiento. Las series obtenidas son reproducibles. Los números obtenidos no son independientes.

Page 6: Números Aleatorios Simulación. Introducción Aplicaciones de los números aleatorios: Simulación, con entradas no determinísticas. Juegos o teoría de decisiones

Generadores de números.Métodos

Generadores de números aleatorios: Primera aproximación (Von Neumann,

1946): Método de los cuadrados centrales.

Genera números aleatorios de k cifras. Parte de una semilla, la eleva al cuadrado

y toma como resultado las k cifras centrales de lo obtenido.

Se generan ciclos rápidamente.

Page 7: Números Aleatorios Simulación. Introducción Aplicaciones de los números aleatorios: Simulación, con entradas no determinísticas. Juegos o teoría de decisiones

Método de los cuadrados centrales

Page 8: Números Aleatorios Simulación. Introducción Aplicaciones de los números aleatorios: Simulación, con entradas no determinísticas. Juegos o teoría de decisiones

Método de los cuadrados centrales

Page 9: Números Aleatorios Simulación. Introducción Aplicaciones de los números aleatorios: Simulación, con entradas no determinísticas. Juegos o teoría de decisiones

Método de los cuadrados centrales

El problema con este método es que tiende a degenerar rápidamente. Dependiendo del valor inicial el método puede degenerar al cabo de ≈20 términos.

Se puede observar que, en las últimas líneas, se llega a una condición degenerada. Por la tanto, es necesario verificar siempre la serie de números y protegerse contra este fenómeno

Page 10: Números Aleatorios Simulación. Introducción Aplicaciones de los números aleatorios: Simulación, con entradas no determinísticas. Juegos o teoría de decisiones

Generadores congruenciales

lineales Generan números pseudoaleatorios:

uniformemente distribuidos pero no independientes.

Introducción. (Lehmer, 1949): xn+1 = (a·xn + c) mod m, con

0≤xn<m n x0, valor inicial o semilla. a, multiplicador, 0≤a<m c, incremento, 0≤c<m m, módulo.

Page 11: Números Aleatorios Simulación. Introducción Aplicaciones de los números aleatorios: Simulación, con entradas no determinísticas. Juegos o teoría de decisiones

Generadores congruenciales

lineales xn+1 = (a·xn + c) mod m

Periodo: subcadena de la serie en la que no hay repeticiones de números.

Longitud de periodo: número de elementos de dicha subcadena.

Interesan métodos con alta longitud de periodo.

Page 12: Números Aleatorios Simulación. Introducción Aplicaciones de los números aleatorios: Simulación, con entradas no determinísticas. Juegos o teoría de decisiones

Generadores congruenciales

lineales Si se quiere obtener números Uniformes (0,1)

se normaliza el resultado:

Un = Xn / m En el MCL, si se repite un número ya se repite

toda la secuencia.

Ventajas:1. utiliza poca memoria y es muy rápido.

2. fácil de volver a generar la misma secuencia, guardando un solo número, (se alcanza con partir desde la misma semilla: X0).

Page 13: Números Aleatorios Simulación. Introducción Aplicaciones de los números aleatorios: Simulación, con entradas no determinísticas. Juegos o teoría de decisiones

Generadores congruenciales

lineales

Page 14: Números Aleatorios Simulación. Introducción Aplicaciones de los números aleatorios: Simulación, con entradas no determinísticas. Juegos o teoría de decisiones

Tipos de Generadores congruenciales

lineales Multiplicativos (Lehmer): El

incremento c es 0 (c=0).

xn+1 = a·xn mod m

Son más rápidos. Mixtos (Thomson, 1958): El

incremento c es distinto de 0 (c!=0).xn+1 = (a·xn + c) mod m

La longitud de periodo es mayor.

Page 15: Números Aleatorios Simulación. Introducción Aplicaciones de los números aleatorios: Simulación, con entradas no determinísticas. Juegos o teoría de decisiones

Tipos de Generadores congruenciales

lineales Los valores a=0 y a=1 producen series no

aleatorias. (a=0)

xn+1 = c mod m, siempre saldría la constante c. (a=1)

xn+1 = (xn + c) mod m. Desarrollando,

x1 = (x0 + c) mod m,

x2 = (x1 + c) mod m = (((x0 + c) mod m) + c) mod m =

(x0 + 2c) mod m,

x3 = (x0 + 3c) mod m, etc.

Page 16: Números Aleatorios Simulación. Introducción Aplicaciones de los números aleatorios: Simulación, con entradas no determinísticas. Juegos o teoría de decisiones

Tipos de Generadores congruenciales

lineales Para mayor independencia, obtener

los valores de k en k: x0’=x0

a’=ak

c’=(ak – 1)·c/(a – 1) m’=m

Page 17: Números Aleatorios Simulación. Introducción Aplicaciones de los números aleatorios: Simulación, con entradas no determinísticas. Juegos o teoría de decisiones

Tipos de Generadores congruenciales

lineales Demostración:

Partimos de xn+1 = (a·xn + c) mod m. Desarrollando,

xn+2 = (a·xn+1 + c) mod m =(a(a·xn + c) mod m + c) mod m =

(a2xn + ac + c) mod m;

xn+3 = (a·xn+2 + c) mod m =(a((a(a·xn + c) mod m + c) mod m) + c)

mod m = (a3xn + a2c + ac + c) mod m.

En general:

xn+k = (akxn + ak-1c + ak-2c + … + ac + c) mod m, esto es,

Page 18: Números Aleatorios Simulación. Introducción Aplicaciones de los números aleatorios: Simulación, con entradas no determinísticas. Juegos o teoría de decisiones

Generadores congruenciales

lineales. La selección de a, c, y m afectan el

periodo y la aleatoriedad en la secuencia. Entre los resultados de los estudios

realizados con estos generadores tenemos:1. El modulo m debe ser grande. Dado que los x

están entre 0 y m-1, el periodo nunca puede ser mayor que m.

2. Para que el computo de mod m sea eficiente, m debe ser una potencia de 2, es decir, 2k. En este caso mod m puede ser obtenido truncando el resultado y tomando en k bits a la derecha.

Page 19: Números Aleatorios Simulación. Introducción Aplicaciones de los números aleatorios: Simulación, con entradas no determinísticas. Juegos o teoría de decisiones

Generadores congruenciales

lineales. 2. Para que el computo de mod m sea

eficiente, m debe ser una potencia de 2, es decir, 2k. En este caso mod m puede ser obtenido truncando el resultado y tomando en k bits a la derecha. Ejemplo: 45 mod 16 = 45 mod 2^4 =

13

Page 20: Números Aleatorios Simulación. Introducción Aplicaciones de los números aleatorios: Simulación, con entradas no determinísticas. Juegos o teoría de decisiones

Generadores congruenciales

lineales3. Si c es diferente de cero, el

periodo máximo posible m se obtiene si y solo si:a) Los enteros m y c son primos relativos

( no tengan factores comunes excepto el 1).

b) Todo número primo que sea un factor de m lo es también de a-1.

c) a-1 es un múltiplo de 4 si m es un múltiplo de 4.

Page 21: Números Aleatorios Simulación. Introducción Aplicaciones de los números aleatorios: Simulación, con entradas no determinísticas. Juegos o teoría de decisiones

Generadores congruenciales

lineales. Todas estas condiciones se cumplen si

m = 2k , a = 4n + 1, y c es impar, donde n, c, y k son enteros positivos.

Si un generador tiene el periodo máximo posible se llama generador de periodo completo.

Todos los generadores de periodo completo no son igualmente buenos.

Son preferibles los generadores con menor autocorrelación entre números sucesivos.

Page 22: Números Aleatorios Simulación. Introducción Aplicaciones de los números aleatorios: Simulación, con entradas no determinísticas. Juegos o teoría de decisiones

Generadores congruenciales

lineales multiplicativos GCL multiplicativo y tienen la forma:

Xn= axn−1 mod m

Es obvio que estos son más eficientes que los mixtos.

Eficiencia adicional puede ser obtenida tomando m = 2k .

Por lo tanto hay dos tipos de GCL multiplicativos dependiendo si m = 2k o no.

Page 23: Números Aleatorios Simulación. Introducción Aplicaciones de los números aleatorios: Simulación, con entradas no determinísticas. Juegos o teoría de decisiones

Generadores congruencialeslineales multiplicativos con m

= 2k

El argumento a favor de usar m = 2k esta en la eficiencia de la operación mod.

Sin embargo estos generadores no son de periodo completo.

El máximo periodo posible para estos generadores es un cuarto del periodo completo: 2k-2

Se obtiene si el multiplicador es de la forma 8i ± 3 y la semilla es impar.

A pesar de esto, un cuarto de periodo máximo posible puede ser suficiente para muchas aplicaciones.

Page 24: Números Aleatorios Simulación. Introducción Aplicaciones de los números aleatorios: Simulación, con entradas no determinísticas. Juegos o teoría de decisiones

Generadores congruencialeslineales multiplicativos con m

= 2k Ejemplo Consideremos el siguiente GCL multiplicativo:

xn=5xn-1 mod 25

Si x0 = 1, obtenemos la secuencia 5, 25, 29, 17, 21, 9, 13, 1, 5, ..., con periodo 8 = 32/4.

Si cambiamos x0 = 2, la secuencia es 2, 10, 18, 26, 2, 10,..., con periodo 4.

Para ver que sucede si el multiplicador no es de la forma 8i ± 3, consideremos:

xn=7xn-1 mod 25

Si x0 = 1, obtenemos la secuencia 1, 7, 17, 23, 1, 7, ..., y vemos que ambas condiciones son necesarias para obtener el periodo máximo.

Page 25: Números Aleatorios Simulación. Introducción Aplicaciones de los números aleatorios: Simulación, con entradas no determinísticas. Juegos o teoría de decisiones

GCL multiplicativos con m ≠ 2k

Una solución para los periodos pequeños es usar un modulo m que sea número primo.

Con un multiplicador a adecuado se puede obtener un periodo de m - 1, que es casi el máximo periodo posible.

Note que en este caso xn nunca puede ser cero y su valor esta entre 1 y m - 1.

Todo GLC multiplicativo con periodo m - 1 se dice que es de periodo completo.

Se puede demostrar que un GLC multiplicativo es de periodo completo si y solo si el multiplicador a es una raíz primitiva del modulo m; a es una raíz primitiva de m si y solo si an mod m ≠ 1 para n = 1, 2, ..., m-2.

Page 26: Números Aleatorios Simulación. Introducción Aplicaciones de los números aleatorios: Simulación, con entradas no determinísticas. Juegos o teoría de decisiones

GCL multiplicativos con m ≠ 2k

Ejemplo

Consideremos el siguiente GCL multiplicativo:

xn=3xn-1 mod 31 Si x0 = 1, obtenemos la secuencia 1, 3, ..., con

periodo 30 y por lo tanto es de periodo completo. Si usamos a = 5, obtenemos la secuencia 1, 5,

25, 1, ... que es de periodo 3. Note que 3 es una raíz primitiva de 31 ya que el

menor entero positivo de n tal que 3n mod 31 = 1 es n = 30, y 5 no lo es ya que 53 mod 31 = 1.

Page 27: Números Aleatorios Simulación. Introducción Aplicaciones de los números aleatorios: Simulación, con entradas no determinísticas. Juegos o teoría de decisiones

Generadores de congruencias lineales. Ejemplo

Sea la secuencia: Xi+1 = a Xi mod 11, para i= >1; Z0 = 1

Las raíces primitivas son 2, 6, 7 y 8. Los números generado por 2 y 6 son iguales pero en

sentido contrario. Lo mismo ocurre con los generados por 7 y 8. Este tipo de relaciones se producen generalmente en generadores multiplicativos.

Page 28: Números Aleatorios Simulación. Introducción Aplicaciones de los números aleatorios: Simulación, con entradas no determinísticas. Juegos o teoría de decisiones

Generadores congruenciales

lineales