generadores de números aleatorios -...

23
Generadores de Números Aleatorios Jorge Eduardo Ortiz Triviño [email protected] http://www.docentes.unal.edu.co/jeortizt/

Upload: vanhuong

Post on 14-Oct-2018

270 views

Category:

Documents


0 download

TRANSCRIPT

Generadores de Números

Aleatorios

Jorge Eduardo Ortiz Triviño

[email protected]

http://www.docentes.unal.edu.co/jeortizt/

Contenido:

• ¿Qué entendemos por secuencia de números

aleatorios?

• Cómo se generan n. aleatorios

• Generadores congruenciales lineales

• Propiedades de los GCL

• Otros tipos de generadores

– De Tausworthe (“feedback shift register”)

– “Barajados” (??) (“shuffled”)

• Elemento Central en la Simulación digital.

• Definición formal controvertida.

• Elemento esencial en muchas áreas del conocimiento

Ingeniería, Economía, Física, Estadística, etc.

• Definición intuitiva: Una sucesión de números aleatorios

puros, se caracteriza por que no existe ninguna regla o plan

que nos permita conocer sus valores.

• Los números aleatorios obtenidos a través de algoritmos

recursivos se llaman pseudoaleatorios.

Números Aleatorios

Disponer de un buen generador de números aleatorios es clave en: • Computación Aleatorizada • Computación Evolutiva • Algoritmos Aleatorizados • Verificación de Algoritmos • Validación de Algoritmos • Criptografía • etc.

Números Aleatorios

• La gran disponibilidad de generadores de números

aleatorios en muchos entornos y compiladores puede

llevarnos a pensar que para un usuario de la simulación

no sería necesario estudiar estas cuestiones.

• Una lección del pasado reciente nos obliga a sacar

lecciones y actuar con mucho cuidado con dichos

generadores (RANDU - IBM).

• El Uso progresivo de modelos de simulación cada vez

más detallados exige una mayor calidad de los

generadores de números aleatorios.

Números Aleatorios

NÚMEROS ALEATORIOS

0, x < 0

F(x) x, 0 x 1

1, x<1

1

F(x)

1

1, 0 x 1 f(x) 0, en otro caso

1

f(x)

1

¿Qué entendemos por secuencia de números aleatorios?

• En teoría, realización de secuencia de v.a.u U1, U2, ..., Un, ... iid, Ri U(0,1)

• En la práctica criterios menos estrictos: – n-distributividad: todas las n-tuplas {(Ui, Ui+1 ..., Ui+n-1)} uniformes sobre (0,1)n

– (k,n)-distributividad: cada k-ésima subsecuencia de longitud n uniforme (0,1)n • p.e. (5,2) seria {(U5i,U5i+1)}, {(U5i+1,U5i+2)},

{(U5i+2,U5i+3)}, {(U5i+3,U5i+4)}, {(U5i+4,U5i+5)} uniformes sobre (0,1)x(0,1)

ALGORITMO GENERADOR DE BITS

PSEUDOALEATORIOS

Entrada:

Dos primos p,q , elegir e, tal que mcd (e, )=1, donde =(p-1)(q-1) .

Una semilla x0 [1,n-1]

Algoritmo:

a) Para j=1 hasta k:

a1) xj=(xj-1)e mod n

a2) zj=el menor bit significativo de xj

Salida:

La sucesión z1, z2, …, zk.

Generadores de números.

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

Métodos De Generación

• Métodos manuales: Generación de números con artificio manuales: bolillas, patentes de los autos, guía telefónica

– Ventajas: Son aleatorios y son Simples,

– Desventajas: No reproducibles y Lentos

• Tablas de biblioteca: La mas importante: “A millón randon digist” editorial RAND, configurada con las radiaciones termoiónicas de un tubo de rayos catódicos.

– Ventaja:

• Provienen de un fenómeno aleatorio

• son reproducibles.

• Se las puede estudiar y analizar rigurosamente antes de ser utilizada.

– Desventaja:

• No se obtiene en tiempo real.

• Necesidades de memoria.

Métodos De Generación

• Métodos De Computación Analógica: Generados con procesos físicos aleatorios (Ej: una corriente eléctrica). – Ventaja: Aleatorios.

– Desventaja: No reproducible.

• Métodos De Computación Digital: Con computadoras: – Provisión Externa: Se graba en memoria las tablas Randa.

– Procesos Físicos Aleatorios: Usar algún dato interno de la computadora (temperatura, segundos, ciclos, cantidad de memoria asignada, etc).

– Relación de recurrencia: Generar números pseudoaleatorios por medio de ecuaciones de recurrencia en las que necesariamente se tiene que dar un valor inicial o semilla para obtener los siguientes valores. • Ventaja:

– Son reproducibles.

– No afectan en demasía al procesador ni sobrecargan la memoria.

– Existe la posibilidad de su absoluta reproducción

• Desventaja: – Son pseudoaleatorios.

– Hay que probar la Calidad Aleatoria del método.

• Uniformemente distribuido (sin recurrencia):

– Es recurrente cuando uno o varios elementos se repiten con mayor frecuencia teórica, => disminución de frecuencia de los demás números.

– Estudiar la recurrencia de : 2, 6, 6, 8, 7, 6, 6, 6, 4, 7, 2, 6, 5, 6, 2,6,6,7, 6, 5, 4, 3, 3, 6, 6, 6, 2, 9,4,8,6,4,6, 9,6,3,7,6,9,6, 0.

– Hay 40 Números, por lo tanto la frecuencia teórica de cada uno de los dígitos (del 0 al 9) deberá ser 4.

– De una tabla de frecuencias se obtiene que el digito 6->F(6)=18 veces.

Propiedades de los Números aleatorios

• Estadísticamente independientes (sin

periodicidad):

– Tiene periodicidad cuando varios elementos,

repetidos o no, formando una cadena, aparecen en

la misma secuencia.

– Estudiar periodicidad de:

• 1,0,2,2,6,8,2,3,3,0,1,0,2,2,6,8,4,1,7,0,2,2,6,8,

7,6,5,3,3,5,1,0,2,2,6,8.....

– Secuencia periódica 02268. . de Frecuencia 4

• 1,0,2,4,6,8,2,3,3,0,1,0,2,4,6,8,4,1,7,0,2,4,6,8,

7,6,5,3,3,5,1,0,2,4,6,8.....

– Secuencia periódica 02468. de Frecuencia 4

Propiedades de los Números aleatorios

• Reproducibles: Cuando el Método comienza con la misma

Semilla, DEBE dar la misma secuencia de números

Pseudoaleatoreos.

• Rápidos, velocidad de generación acorde a las necesidades.

• Mínimos de memoria.

Propiedades de los Números Pseudoaleatorios

Conclusiones:

•Hay que verificar la calidad estadísticas de las series.

Comprobarlas en tiempo de Ejecución es una perdida de

tiempo, entonces se prueba la calidad estadística del Método.

•Por la cantidad de números que se necesitan y por la velocidad

de su ocurrencia, es imprescindible generarlos en la medida

que se lo necesiten.

Algunas ideas o propiedades de los generadores

I. Lagarias (1993) publicó un trabajo titulado “Pseudo

Random Numbers” en Statistical Science. Donde estudia

algunas propiedades tales como:

Expansividad : Una aplicación es expansiva si

La idea es escoger “d” como una aplicación expansiva de

manera que la inestabilidad computacional proporcione

aleatoriedad.

]1,0[1|)('| xxd

2]1,0[d

Números Aleatorios

No Linealidad: La composición de aplicaciones no lineales

puede conducir a comportamientos crecientemente no

lineales Ej: d(x) = x2; d(n)(x) = x2n

Complejidad Computacional: La aleatoriedad de

Kolmogorov, también denominada incomprensibilidad

computacional. Consiste en constatar si la aleatoriedad de

una sucesión de números es incomprensible (problema

decidible).

Impredecibilidad

Números Aleatorios

• DEF 1: Kolmogorov (1987) [Complejidad Algorítmica]

Una sucesión de números es aleatoria sino puede producirse

eficientemente de una manera más corta que la propia serie. • DEF 2: L’Ecuyer (1990) [Impredicibilidad] Una sucesión de

números es aleatoria si nadie que utilice recursos

computacionales razonables puede distinguir entre la serie y

una sucesión de números verdaderamente aleatoria de una

forma mejor que tirando una moneda legal para decidir cuál

es cuál.

Obs: Esta definición conduce a los denominados

generadores PT-perfectos usados en Criptografía.

Números Aleatorios

• DEF 3: Un Número aleatorio es una realización de una variable aleatoria que tiene asociada una ley de probabilidades F, en un espacio o modelo de Probabilidades (, , P).

Obs: Una particular Ley de Probabilidad base para la

generación de números pseudo-aleatorios es:

u1, u2,..., un : es la uniforme (0 ; 1) ui ~ U(0,1).

• DEF 4: Una sucesión de números aleatorios {u1, u2,..., un} es una sucesión de números U(0;1), si tiene las mismas propiedades estadísticas relevantes que dicha sucesión de números aleatorios.

Números Aleatorios

• DEF 5: Una sucesión de números aleatorios {ui} es

aleatorio si h-úplas de números sucesivos no

superpuestos se distribuyen aproximadamente. como

una [0,1]h, con h=1,2,..,n, para n suficientemente

grande.

• Obs: h=2 tenemos (ui,ui+1) , i=1,2,..n , se distribuye

como una ley uniforme en [0,1]2.

• Existe una gran de métodos para generar

{ui} U(0,1) : -Uniformente distribuidas

- Independientes

- E[U]= ½ ; V[U]= 1/12

- Período largo

Números Aleatorios

A las propiedades estadísticas anteriores se deben

agregar otras relativas a la eficiencia computacional:

• Velocidad de respuesta

• Consumo de memoria

• Portabilidad

• Parsimonia

• Reproducibilidad

• Mutabilidad

• Período

Números Aleatorios

Métodos de Generación de Números Aleatorios

1.- Método de los cuadrados medios

2.- Métodos Congruenciales

3.- Método de registros desfasados

[Semilla - Algoritmo - Validación]

P1 : Obtener semilla (valores iniciales)

P2 : Aplicación de Algoritmos recursivos

P3 : Validación del conjunto de datos

generados (Test de Aleatoriedad)

Números Aleatorios

Consiste en que cada número de una sucesión es producido

tomando los dígitos medios de un número obtenido

mediante la elevación al cuadrado.

P1 : Obtener semilla (valores iniciales 445)

P2 : Aplicación de Algoritmos recursivos (elevar

al cuadrado)

P3 : Validación del conjunto de datos

generados

Métodos de los cuadrados Medios

Ejemplo: Consideremos la semilla 445

X X2 N° Aleatorio

445 1| 9802 | 5 0,9802

9802 96| 0792 | 04 0,0792

792 6 | 2726 | 4 0,2726

2726 ............... ...............

Métodos de los Cuadrados Medios