17

Click here to load reader

Generador de números aleatorios, pseudoaleatorios, cuasialeatoricos I

Embed Size (px)

Citation preview

Page 1: Generador de números aleatorios, pseudoaleatorios, cuasialeatoricos I

Generador de números

aleatorios, pseudoaleatorios, cuasialeat

oricos

Roberto Romero

Norlan Rodríguez

Universidad Interamericana

San Germán

Departamento de Matemáticas

Page 2: Generador de números aleatorios, pseudoaleatorios, cuasialeatoricos I

I - Definiciones

• Números Aleatorios Un resultado de una variable al azar

especificada por una función de distribución. Cuando no se especifica ninguna distribución, se presupone que se utiliza la distribución uniforme continua en el intervalo [0,1).

En los computadoras es fácil simular la generación de números aleatorios, mediante mecanismos de generación de númerosseudoaleatorios, que, sin ser aleatorios (siguen una fórmula), lo aparentan.

Page 3: Generador de números aleatorios, pseudoaleatorios, cuasialeatoricos I

• Generador de números aleatoriosEn componente o funcionalidad que crea números

o símbolos para un programa software en una forma que carezca de un patrón evidente, y que así parezcan ser números aleatorios.

La mayor parte de los generadores de números aleatorios son, en realidad, pseudoaleatorios: se calcula (o introduce internamente) un valor X0, que llamaremos semilla, y, a partir de él, se van generando X1, X2, X3, ...

Siempre que se parta de la misma semilla, se obtendrá la misma secuencia de valores.

Page 4: Generador de números aleatorios, pseudoaleatorios, cuasialeatoricos I

II – Utilidades

• Los números de generadores de azar tienen aplicaciones en los juegos de azar , muestreo estadístico , simulación por ordenador , la criptografía , un diseño completamente aleatorizado , y otras áreas donde producir un resultado impredecible es deseable.

• Tenga en cuenta que, en general, donde lo impredecible es lo más importante - como en aplicaciones de seguridad - generadores de hardware son generalmente preferida, siempre que sea posible, sobre algoritmos pseudo-aleatorios.

Page 5: Generador de números aleatorios, pseudoaleatorios, cuasialeatoricos I

• Los generadores de Números Aleatorios son muy útiles en el desarrollo de método de Monte Carlo simulaciones como la depuración se ve facilitada por la capacidad de ejecutar la misma secuencia de números aleatorios de nuevo a partir de la misma semilla aleatoria . También se utilizan en la criptografía siempre y cuando la semilla es secreta. Del remitente y el receptor puede generar el mismo conjunto de números de forma automática para utilizar como claves.

• La generación de números pseudo-aleatorios es una tarea importante y común en programación de computadoras. Si bien y algunos algoritmos numéricos criptografía requieren un alto grado de aparente aleatoriedad, muchas otras operaciones sólo necesita una pequeña cantidad de imprevisibilidad. Algunos ejemplos simples pueden ser la presentación de un usuario con un "RandomQuote of the Day", o la determinación de qué manera un adversario controlado por ordenador puede moverse en un juego de ordenador. formas más débiles de azar también están estrechamente asociados con algoritmos hash y en la creación de amortizar la búsqueda y los algoritmos de ordenación .

Page 6: Generador de números aleatorios, pseudoaleatorios, cuasialeatoricos I

• Algunas aplicaciones que aparecen a primera vista, ser adecuado para la asignación al azar son, en realidad no es tan simple. Por ejemplo, un sistema que "al azar", selecciona las pistas de música para un sistema de música de fondo sólo debe aparecer a ser al azar, e incluso puede tener formas de controlar la selección de la música, un sistema al azar cierto habría ninguna restricción en el mismo artículo aparecen dos o tres veces seguidas.

Page 7: Generador de números aleatorios, pseudoaleatorios, cuasialeatoricos I

Concepto Básico

• Método de MontecarlosUn método no determinístico o estadístico

numérico usado para aproximar expresiones matemáticas complejas y costosas de evaluar con exactitud. El método se llamó así en referencia al Casino de Montecarlo (Principado de Mónaco) por ser “la capital del juego de azar”, al ser la ruleta un generador simple de números aleatorios. El nombre y el desarrollo sistemático de los métodos de Montecarlo datan aproximadamente de 1944 y se mejoraron enormemente con el desarrollo de la computadora.

Page 8: Generador de números aleatorios, pseudoaleatorios, cuasialeatoricos I

II - Propiedades de un buen generador

• Una secuencia de números U1, U2, . . . , UN es una muestra de tamaño N de U(0, 1) si:

1. Son independientes.

2. Son uniformes.

• Un generador de v.a. uniformes debe cumplir:

1.”repetibilidad” y ”portabilidad”, y

2.”velocidad computacional”.

Page 9: Generador de números aleatorios, pseudoaleatorios, cuasialeatoricos I

III – Historia

• Procedimientos físicos (monedas, dados, cartas, urnas, … )

• (1927) Tipett: tabla de 40000 dígitos aleatorios (nouniformes).

• (1939) Kendall y Babbington: dispositivo mecánico.Tabla de 100.000 números aleatorios.

• (1955) Rand Corporation: ruido electrónico. Tabla de 1 millón de números aleatorios.

Page 10: Generador de números aleatorios, pseudoaleatorios, cuasialeatoricos I

IV - Métodos de producción

• Métodos físicos

Un generador de números aleatorios física se puede basar en una física atómica o subatómica fenómeno aleatorio, esencialmente cuya imprevisibilidad se puede remontar a las leyes de la mecánica cuántica.

Page 11: Generador de números aleatorios, pseudoaleatorios, cuasialeatoricos I

• Métodos computacionales Generadores de números aleatorios-Pseudo (PRNGs) son algoritmos que puede crear automáticamente tandas largas de números con buenas propiedades aleatorias pero con el tiempo se repite la secuencia (o el uso de memoria crece sin límite). La cadena de valores generados por este tipo de algoritmos se determina generalmente por un número fijo llamado semilla. Uno de los más comunes PRNG es el generador de congruencia lineal , que utiliza la repetición

Xn+1= (aXn + b) mod mpara generar números. El número máximo de números de la fórmula puede producir es el módulo , m . Para evitar ciertas propiedades no-aleatorio de un solo generador de congruencia lineal , generadores de números aleatorios de varios tipo con diferentes valores ligeramente del coeficiente multiplicador uno se puede utilizar en paralelo, con un "maestro" generador de números aleatorios que selecciona de entre los distintos productores de varios .

Page 12: Generador de números aleatorios, pseudoaleatorios, cuasialeatoricos I

Generadores de congruencia lineal (GCL)• Estos generadores son los más utilizados y los más conocidos.

Se basan en la relación de recurrencia

Ni+1 = (a Ni + c) mod m

donde a es el multiplicador y m el modulo.

- Hay m valores posibles de Ni, entre 0 i m − 1.

- La secuencia es periódica: cuando vuelve a aparecer un número por segunda vez, la secuencia se vuelve a repetir. El periodo depende de los valores de a, c y m, as como del valor inicial; nótese que el máximo posible es m. Recordemos que lo que nos interesa para trabajar con un buen generador denúmeros aleatorios es que la distribución de los números obtenidos tiene que ser uniforme, no deben de haber correlaciones entre los términos de la secuencia, el periodo debe ser lo mas largo posible, y el algoritmo debe ser de ejecución rápida

Page 13: Generador de números aleatorios, pseudoaleatorios, cuasialeatoricos I

• Para mejor los generadores de congruencia lineal, Las limitaciones más importantes de los generadores son su periódica (normalmente el periodo no suele ser más grande de 2^32 ≈ 4 ×10^9) y la posible presencia de correlaciones entre términos consecutivos de la secuencia. Una manera sencilla de suprimir ´estas limitaciones es ”desordenar” un poco la secuencia

• mediante el siguiente procedimiento:- Se parte de un generador que da enteros aleatorios entre 0 y

m − 1, y en primer lugar se genera con el GCL un vector que contiene una lista de N enteros aleatorios jn, asi como un entero aleatorio y. Se determina el índice k = [y ∗ N/m], entre 0 y N − 1.

• El elemento jk de la lista se da como un nuevo nombre aleatorio, y se reasignaa la variable y el valor jk. El valor de jk se renueva con el GCL, y se vuelve a repetir los pasos desde la determinación del índice k.

Page 14: Generador de números aleatorios, pseudoaleatorios, cuasialeatoricos I

Ejemplos de como Generar números aleatorios con Excel.

• Decimales Formula:

=RAND()*n + b; n= a – b

a – es el numero más grande de conjunto de números

b – es el números más pequeño de conjunto

Ej.

Escoger un numero aleatorio entre 10 y 70

Page 15: Generador de números aleatorios, pseudoaleatorios, cuasialeatoricos I

• Enteros

Formula

= RANDBETWEEN(a,b);

a – es el numero mas pequeño del conjunto

b – es el numero más grande del conjunto

Ej.

Elegir un Numero aleatorio del conjunto de números del 10 – 90.

Page 16: Generador de números aleatorios, pseudoaleatorios, cuasialeatoricos I

Generación de una distribución de probabilidad

• Hay un par de métodos para generar un número aleatorio basado en una función de densidad de probabilidad. Estos métodos implican la transformación de un número aleatorio uniforme de alguna manera. Debido a esto, estos métodos funcionan igual de bien tanto en la generación aleatoria de números al azar y verdadero pseudo-. Un método, llamado método de la inversión, involucra la integración de hasta un área mayor que o igual al número al azar (que se debe generar entre 0 y 1 para la distribución propiamente dicha). Un segundo método, llamado método de aceptación-rechazo , implica elegir un valor de x e y, y comprobar si la función de x es mayor que el valor de y. Si es así, el valor de x es aceptada. De lo contrario, el valor de x es rechazada y el algoritmo lo intenta otra vez.

Page 17: Generador de números aleatorios, pseudoaleatorios, cuasialeatoricos I

Bibliográfica:

• Random number generator;http://en.wikipedia.org/wiki/Random_number_generation

• Número aleatorio; http://es.wikipedia.org/wiki/N%C3%BAmero_aleatorio

• Generador de Números Aleatorios;http://es.wikipedia.org/wiki/Generador_de_n%C3%BAmeros_aleatorios

• García, M., Generación de números aleatorios, (2004), http://www.bioingenieria.edu.ar/academica/catedras/metestad/num_aleatorios.pdf