Saltar al contenido principal

01.02 - Números Aleatorios y Pseudoaleatorios

Modelos de Simualción


Introducción

Una de las características más importantes de la simulación es la capacidad de imitar el comportamiento aleatorio que existe en los sistemas estocásticos. Para simular dicho comportamiento se requiere, entre otras cosas, un método que provea la generación de números aleatorios.


Definiciones

Un número aleatorio (NA) es aquel obtenido al azar, es decir, que todo número tenga la misma probabilidad de ser elegido y que la elección de uno no dependa de la elección del otro.

Por lo tanto, un NA es un valor de una variable aleatoria con distribución uniforme en el intervalo [0,1].

La sucesión de n NA está constituida por los valores observados de una sucesión de n variables aleatorias independientes e idénticamente distribuidas (IID) uniforme en [0,1].


Para obtener números aleatorios en la práctica, se utilizan métodos computacionales que generan sucesiones de números que tienen la apariencia de ser independientes y con distribución uniforme en [0,1], aunque los elementos para obtenerlos (computadoras y programas) son esencialmente determinísticos.

Estos métodos generan sucesiones periódicas de números, con un cierto período de generación a partir del cual los números se repiten. Por lo tanto, los números que se obtienen se los llama pseudoaleatorios.


Características de los Nros Pseudoaleatorios

Repetibilidad: la sucesión de números generados debe poder regenerarse a partir de la misma semilla.

Independencia: los números generados deben ser independientes entre sí.

Período: es la longitud de la sucesión, sin que se repitan los valores generados.

Computacionalmente eficiente: debe generar valores a gran velocidad y consumir poca memoria del sistema.


Generadores Congruenciales Lineales

Los generadores congruenciales lineales son un tipo de método para generar números pseudoaleatorios. Estos generadores pueden ser de dos tipos: mixtos y multiplicativos.


Método congruencial lineal mixto: ZiaZi1+c(modm)Z_i \equiv a Z_{i-1} + c \pmod{m}

Método congruencial lineal multiplicativo: ZiaZi1(modm)Z_i \equiv a Z_{i-1} \pmod{m}

Donde:

aa = constante multiplicativa (a>0a > 0) cc = constante aditiva (c>0c > 0) Z0Z_0 = valor inicial, llamado semilla (Z0>0Z_0 > 0) mm = módulo


  • El período de vida depende de la selección a, c, 𝑍𝑜 y m.
  • La longitud máxima que puede tener el período es m.
  • Cuando la longitud del período es igual a m, se dice que la generación es de período completo.

Generadores de Período Completo

Es necesario conocer cuándo el generador permite obtener m números aleatorios distintos. Cuando esto sucede, se está en presencia de un generador de período completo, es decir:

  • p (período del generador) = m (parámetro del generador).

Para ello se debe elegir correctamente los parámetos


Teorema:

  • Un Generador Congruencial Lineal Mixto tendrá un período completo si cumple las siguientes condiciones:

    m=2gm = 2^g, donde gg es un número entero. a=1+4ka = 1 + 4k, donde kk es un número entero. cc y mm son primos relativos (el único divisor común entre mm y cc es 1).

  • Si qq es un número primo que divide a mm, entonces qq también debe dividir a (a1)(a-1).

  • Si 44 divide a mm, entonces 44 también debe dividir a (a1)(a-1).


Ejemplo: Seleccionamos

  • m=16m = 16 = 24^4 (g=4g = 4), c=3c = 3, a=5a = 5 (1+4×11 + 4 \times 1, k=1k = 1)

  • Z0=7Z_0 = 7

Con estos parámetros, los números generados son:

  • 37,6,50,68,62,31,75,93,87,56,0,18,12,81,25,4337, 6, 50, 68, 62, 31, 75, 93, 87, 56, 0, 18, 12, 81, 25, 43.

Después del 4343, la secuencia se repite desde 3737.


Verificación de las condiciones del teorema:

m=24m = 2^4, g=4g = 4, a=(1+1×4)=5a = (1 + 1 \times 4 ) = 5 (k=1k = 1)

El único divisor común entre 1616 y 33 es 11 (1616 y 33 son primos relativos).

  • Tomamos q=2q = 2 (primo), que divide a 1616 y también a (51=4)(5 - 1 = 4).

  • 44 divide a 1616, y 44 también divide a (51=4)(5 - 1 = 4).

Dado que se cumplen todas las condiciones del teorema, este generador tiene un período completo (p=m=16p = m = 16). Es decir, generará 1616 números pseudoaleatorios distintos antes de repetir la secuencia.