Saltar al contenido principal

01.03 - Métodos Congruenciales Lineales

Modelos de Simualción


Los métodos congruenciales lineales (LCG, por sus siglas en inglés) son una clase de generadores de números pseudoaleatorios ampliamente utilizados debido a su simplicidad y eficiencia. Estos generadores producen secuencias de números pseudoaleatorios utilizando una relación de recurrencia lineal.


La fórmula general para un generador congruencial lineal es:

Zn+1=(aZn+c)(modm)Z_{n+1} = (a * Z_n + c) \pmod{m}

Donde:

Zn+1Z_{n+1} es el siguiente número en la secuencia. ZnZ_n es el número actual en la secuencia (también conocido como el estado actual del generador). aa es la constante multiplicativa, un número entero positivo. cc es la constante aditiva, un número entero no negativo. mm es el módulo, un número entero positivo.


El generador también requiere un valor inicial (o semilla) para comenzar la secuencia, llamado Z0Z_0. La elección de la semilla afecta la secuencia de números generados.

Los números generados por un LCG están en el rango [0,m1][0, m-1]. Para obtener números en el intervalo [0,1)[0, 1), se pueden dividir los números generados por mm.


La calidad y las propiedades estadísticas de los números generados por un LCG dependen de la elección de los parámetros aa, cc, mm y Z0Z_0. Para obtener un LCG con un buen comportamiento, se deben seguir algunas reglas al seleccionar estos parámetros. Por ejemplo, el período de un LCG (la longitud de la secuencia antes de que comience a repetirse) puede ser de hasta mm si se eligen los parámetros adecuadamente.

En general, para obtener un período largo, se deben cumplir las siguientes condiciones:

Si cc es diferente de 0, el LCG se llama "método congruencial mixto". Si cc es 0, se llama "método congruencial multiplicativo".


El período máximo alcanzable es mm, y se obtiene si:

  • cc y mm son primos entre sí (su máximo común divisor es 1).
  • a1a - 1 es divisible por todos los factores primos de mm.
  • Si mm es divisible por 4, a1a - 1 también debe ser divisible por 4.

Tener en cuenta que los LCG son generadores de números pseudoaleatorios bastante simples y no son adecuados para aplicaciones criptográficas o de alta seguridad. Sin embargo, pueden ser útiles para aplicaciones básicas de simulación y muestreo, siempre que se elijan parámetros adecuados.


La expresión "'a - 1' es divisible por todos los factores primos de 'm'" significa que, cuando se resta 1 al valor de aa, el resultado es un número que puede ser dividido exactamente por todos los factores primos que conforman el número mm. Es decir, no hay residuo al dividir a1a - 1 por cualquiera de los factores primos de mm.

Por ejemplo, supongamos que mm tiene los siguientes factores primos: 2, 3 y 5. Si aa es 61, entonces a1a - 1 es 60. Como 60 puede ser dividido exactamente por 2, 3 y 5 (sin residuos), entonces a1a - 1 es divisible por todos los factores primos de mm.


Esta condición es parte de los criterios de Hull-Dobell para garantizar un período completo en un generador congruencial lineal (LCG). Si se cumplen estos criterios, el LCG generará una secuencia de números pseudoaleatorios con un período lo más largo posible antes de que comience a repetirse.


Factores primos

Los factores primos son los números primos que, multiplicados entre sí, dan como resultado un número específico.

Un número primo es un número entero mayor que 1 que solo tiene dos factores: él mismo y 1.

En otras palabras, un número primo no puede ser dividido exactamente por ningún otro número, excepto por 1 y por sí mismo.

Cuando se descompone un número en sus factores primos, se obtiene la lista de números primos que, multiplicados juntos, resultan en ese número original.


La descomposición en factores primos es única para cada número (excepto el orden de los factores).

Por ejemplo, el número 60 se puede descomponer en factores primos de la siguiente manera:

60 = 2 × 2 × 3 × 5

Aquí, 2, 3 y 5 son los factores primos de 60. Como se puede observar, al multiplicar estos números primos (2 × 2 × 3 × 5) se obtiene nuevamente el número original, que es 60.