You are on page 1of 34

SIMULACION DE SISTEMAS DISCRETOS

Generación de números pseudoaleatorios

Ing. Oscar C. Campos Salvatierra

GENERACIÓN DE SERIES DE NÚMEROS ALEATORIOS

2 /41

Generación de Números Aleatorios
• Rol preponderante en el proceso de simulación. • Para simular necesitamos de números aleatorios como semillas para generar muestras de V.A. • Características de un generador de nros aleatorios: • 1) Muestrea valores de Distribución Uniforme. • 2) Asegura la NO Correlación Serial.

3 /41

Distribución Uniforme. La aparición de un número en la secuencia.Algunas Propiedades de Nros Aleatorios 1. Cualquier número que pertenezca al rango de interés debe tener la misma probabilidad de resultar sorteado. 4 /41 . NO Correlación Serial. no afecta la probabilidad de que aparesca otro (o el mismo) número. 2.

es uniforme pero está correlacionada.Ejemplo La sucesión 1.5.2..2.3.1.3.1. 5 /41 .4.2.4.5. Existen Tests que verifican las condiciones de uniformidad y correlación serial..5.4. temas que veremos mas adelante.3.

que todo elemento tenga la misma probabilidad de ser elegido y que la elección de uno no dependa de la elección del otro. es decir. 6 /41 .Serie de Números Aleatorios • Son números que deben de cumplir los requisitos de espacio equiprobable.

7. 6. 4. Método rápido de generación. Periodo largo (sin repetición). Poca memoria para la generación. Sencillo en su implementación. Reproducibles y mutables. 3. Uniformemente distribuidos. 2. 7 /41 .Propiedades deseables 1. 5. Estadísticamente independientes (no correlación).

1) Variables Aleatorias 8 /41 . aleatorios Fenómenos Físicos Procedimientos Matemáticos Números Aleatorios Validación de Series de NA Variables U (0.Mapa Conceptual Xi+1=(aXi+c) mod m Tabla de Nros.

Sencillo en su implementación. se entrega una semilla y se generan los sucesores mediante una función 4. Reproducibles y mutables. 100. 3.Mecanismos de generación • Tablas de números aleatorios – RAND (1955). 2. Uniformemente distribuidos. 6. Método rápido de generación. 7. Estadísticamente independientes. • Fenómenos físicos – Ruido blanco producido por circuitos electrónicos – Recuento de partículas emitidas – Lanzamiento de monedas – Rueda de la fortuna • Procedimientos matemáticos – Se usa algoritmos para la generación de números aparentemente aleatorios. Poca memoria para la generación. Periodo largo (sin repetición). 9 /41 . 5.000 números aleatorios (ruido electrónico) 1.

GENERADORES NO CONGRUENCIALES 10 /41 .

Método del cuadrado medio • Fue propuesto inicialmente por Von Newman y Metrópolis en el año 1946. se toman los n dígitos centrales del cuadrado del número anterior de n dígitos. • Se requiere una semilla. 11 /41 . • Para generar el siguiente número pseudo-aleatorio.

510 300 0 0 409 672 515 652 251 300 0 0 090 728 158 522 510 0 0 0 12 /41 .584 265.900 167.025 7.764 4.000 0 4.569 497.R(n)2 371 3.281 451.522 2.090 6.728 5.702 705 970 056 702 5 6 7 8 9 10 11 12 970 409 672 515 652 251 300 0 940.376 M.641 141.104 63.Método del cuadrado medio n 0 1 2 R(n) 154 371 376 R(n)2 23.158 6.001 90.137 Val 1 371 376 413 Val 2 0 764 137 3 4 413 705 170.056 9.716 137.225 425.

Análisis • El problema con este método es que tiende a degenerar rápidamente. es necesario verificar siempre la serie de números y protegerse contra este fenómeno 13 /41 . Dependiendo del valor inicial el método puede degenerar al cabo de ≈20 términos. • Por ejemplo. luego se tendrá: n i R(n) 3500 R(n)2 12250000 M. supóngase que se quiere generar una serie de números pseudo-aleatorios de cuatro dígitos y se tiene como i-ésimo termino generado es 3500.R(n)2 2500 Random 1 0 Random 2 2500 i+1 2500 6250000 2500 0 2500 • Se puede observar que hemos llegado a una condición degenerada. Por la tanto.

14 /41 . • Se requiere dos semillas.Método del Producto Medio • Este método es muy similar al anterior ya que se tomará como número aleatorio siguiente de la serie. a los n dígitos centrales del resultado de una multiplicación previa.

071 357 35 0 M.017 4.652 625.Método del Producto Medio n 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 R(n) 151 155 340 270 180 860 548 712 901 415 739 668 936 252 358 21 51 7 5 R(n+1) 155 340 270 180 860 548 712 901 415 739 668 936 252 358 21 51 7 5 0 R(n)2 23.405 52.151 7.176 641.518 1.685 493.800 48.524 3.512 373.216 7.280 390.R(n)2 340 270 180 860 5.480 7.391 668 9.587 21 51 7 5 0 0 Val 1 340 270 180 860 548 712 901 415 739 668 936 252 358 21 51 7 5 0 0 Val 2 0 0 0 0 480 128 017 151 391 0 365 524 587 0 0 0 0 0 0 .128 9.800 471.248 235.700 91.600 154.872 90.365 2.915 306.

• Sin embargo los dos tienen periodos más extensos y los números parecen estar distribuidos uniformemente. • Este método tiende a degenerar a un valor constante. 16 /41 . en lugar de dos números aleatorios como se muestra a continuación: Rn+1 = K * Rn • Estos métodos son similares al cuadrado medio.Multiplicador Constante • Una modificación para el método del Producto Medio consiste en utilizar un multiplicador constante. • Tanto el método de cuadrados medios como el de producto medio tienen un periodo corto para la cantidad de números aleatorios que necesitaremos generar en cada uno de nuestros Modelos.

GENERADORES CONGRUENCIALES 17 /41 .

18 /41 .Generadores Congruenciales • Congruencial Lineal (Mixto). • Congruencial Multiplicativo.

aleatorios de tal forma que se puede generar el siguiente a partir del ultimo número derivado.Método Congruencial Lineal (MCL) • Los generadores congruenciales lineales generan una serie de números pseudo . • La relación de recurrencia para el método congruencial mixto es: Xn+1 = (aXn + c) mod m Donde: X0 a c m = semilla (X0 >0) = multiplicador (a >0) = constante aditiva (c >0) = módulo (m >X0. que el número Xn+1 es generado a partir de Xn. m >a y m>c) 19 /41 . es decir.

Método Congruencial Lineal (MCL) • Si se quiere obtener números Uniformes (0. si se repite un número ya se repite toda la secuencia. guardando un solo número. • Ventajas: 1. utiliza poca memoria y es muy rápido. (se alcanza con partir desde la misma semilla: X0). 2. 20 /41 . fácil de volver a generar la misma secuencia.1) normaliza el resultado: Un = Xn / m se • En el MCL.

Ejemplo n 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 a 1 X(n) 7 1 8 2 9 3 10 4 11 5 12 6 0 7 1 8 c 7 a*X(n)+c 14 8 15 9 16 10 17 11 18 12 19 13 7 14 8 15 m 13 [a*X(n)+c] mod m 1 8 2 9 3 10 4 11 5 12 6 0 7 1 8 2 21 /41 .

que es un caso muy critico que nos puede llevar a resultados no deseables y poco confiables 22 /41 . será menor que m. • En la Tabla A se muestra los valores obtenidos para un generador con parámetros: a = 7.Análisis • Si no se escogen los valores adecuados de los parámetros el período del generador de números pseudo – aleatorios. c = 9. • Si bien este caso no es crítico si lo es el que se presenta en la Tabla B donde los parámetros toman los valores de a = X0 = c = 7 y m=10 cuyo período es de 4. Como puede apreciarse en la tabla el período del generador es 10 que es menor que el módulo que es 11. X0 = 5 y m = 11.

Tabla A n 0 1 2 3 4 5 6 7 8 9 10 a 7 X(n) 5 0 9 6 7 3 8 10 2 1 5 c 9 a*X(n)+c 44 9 72 51 58 30 65 79 23 16 44 m 11 [a*X(n)+c] mod m 0 9 6 7 3 8 10 2 1 5 0 23 /41 .

Tabla B n 0 1 2 3 4 5 6 a 7 X(n) 7 6 9 0 7 6 9 c 7 a*X(n)+c 56 49 70 7 56 49 70 m 10 [a*X(n)+c] mod m 6 9 0 7 6 9 0 24 /41 .

2) Tomar m de tal manera que sea el número primo más grande posible y además que sea menor que pd-1. donde p es la base del sistema que se esta usando y d es el número de bits que tiene una palabra de computadora en el sistema que se esta usando. X0 a) Selección de módulo (m). a.1) Escoger al azar el módulo m. 25 /41 . a. c. Existen dos opciones que son las siguientes: a.Selección de m. Por ejemplo una computadora XT que trabaja en el sistema binario entonces se tiene que p = 2 y d = 16.

(a . En ambos casos el valor que se asigne a k deberá ser mayor o igual que 2. • El valor de a debe ser un número entero impar. 26 /41 . X0 b) Selección de a. • Generalmente se toma a igual a 2k + 1 cuando se trabaja en el sistema binario.1) mod 4 = 0 si 4 es un factor de m. c. para asegurarnos que el generador tenga período completo. que no deberá ser divisible por 3 ó 5.Selección de m. Pero además. a.1) mod b = 0 si b es un factor primo de m. el valor que se tome para a deberá escogerse según el siguiente criterio: (a .

• Este parámetro puede tomar cualquier valor.Selección de m. Pero para asegurarnos de tener buenos resultados se deberá seleccionar según la siguiente regla: c mod 8 = 5 • En consecuencia c deberá tomar un valor entero impar y relativamente primo a m. 27 /41 . X0 c) Selección de c. c. a.

Selección de m. 28 /41 .aleatorios que se generen. a. X0 d) Selección de X0 • Se tiene que para el generador congruencial el valor que tome X0 es irrelevante y tiene poca o ninguna influencia sobre las propiedades estadísticas de las series de números pseudo . c.

1)/(a .1)/(a .1)}] mod m Xn+k =[anXk + c{(an .Método Congruencial Lineal (MCL) • Para terminar esta parte se debe señalar que existen otras formas matemáticas de representar este generador.1)}] mod m 29 /41 . que son las siguientes: Xn = [anX0 + c{(an .

y m. 30 /41 . siguiendo la siguiente relación de recurrencia: Xn+1 = aXnmod m • Para este generador también se deben escoger adecuadamente los valores de a. X0. con la finalidad de que se pueda asegurar un período máximo para la series pseudo .aleatorio a partir del último número calculado.aleatorias generadas por este método. A continuación se dan las reglas que indican como se deben escoger estos valores.Método Congruencial Multiplicativo • En forma semejante al método anterior el generador congruencial multiplicativo genera el próximo número pseudo .

• A modo de ejemplo se obtendremos el período de un generador cuyos parámetros son: a = 5. – El valor de a debe ser obtenido a partir de la siguiente expresión: a = 8t ± 3 Donde t es cualquier entero. a. En la siguiente tabla se muestra los elementos que componen la serie generada cuyo período es de 8 31 /41 . X0 • Para trabajar en el sistema binario los valores de los parámetros deberán escogerse siguiendo las siguientes reglas: – El valor de X0 debe ser un número entero impar y relativamente primo a m. X0 = 5 y m = 32.Selección de m. – El valor de m puede ser 2d . • Si m = 2d el período del generador es 2d-2 ó m/4.

Tabla C a 5 n 0 1 2 3 4 5 6 7 8 9 10 X(n) 5 25 29 17 21 9 13 1 5 25 29 a*X(n) 25 125 145 85 105 45 65 5 25 125 145 m 32 [a*X(n)] mod m 25 29 17 21 9 13 1 5 25 29 17 32 /41 .

Tabla D Caso 1 2 3 4 5 a 6 7 5 7 6 Parámetros b m 0 13 0 13 0 13 0 11 0 11 xo 1 10 5 5 3 Caso 1 2 3 4 5 6 5 12 2 7 10 9 8 3 9 8 11 1 10 10 9 12 5 4 5 2 6 12 6 8 Salidas 12 7 3 8 8 1 9 8 4 2 3 4 5 1 1 5 2 12 7 6 4 1 8 5 3 11 7 1 2 7 1 10 5 3 9 6 5 12 10 10 10 9 8 4 4 33 /41 .

siempre producirá la misma torrente o secuencia de números.Streams . Independientes entre sí.Torrentes • Un generador de números aleatorios que comience con la misma semilla. entonces las secuencias de números generados (torrentes) parecerán y actuarán como números aleatorios independientes entre sí con lo que colaborarán en la generación de v. Si las semillas se eligen con valores no cercanos (en el ciclo del generador). 34 /41 . • Diferentes semillas generarán diferentes secuencias.a.