¿Cómo podemos usar la distribución de probabilidad en informática?

Hace muchos años, hice un proyecto utilizando una minicomputadora PDP-8 que solo tenía palabras 4K de 12 bits (6 KB) de almacenamiento central, que tenía que contener tanto el programa como los datos.

El programa era un conmutador de almacenamiento y reenvío para tráfico de teletipo Baudot (TTY) de 5 bits relacionado con el clima. Recibiría mensajes de varias líneas entrantes y los retransmitiría en líneas salientes. Utilicé la distribución de Poisson para predecir el pico de tráfico esperado en las diversas líneas.

Además del almacenamiento limitado, el problema era complicado porque no todas las líneas funcionaban a la misma velocidad. Algunos tenían 100 ppm (palabras por minuto), algunos 75 y otros 60, donde una “palabra” se definió como 5 caracteres más un espacio.

Por lo tanto, un mensaje que ingresa a 100 palabras por minuto y sale a 60 palabras por minuto requerirá una conversión de velocidad y almacenamiento hasta que se haya enviado el último mensaje. También era posible que los mensajes provenientes de dos líneas entrantes simultáneamente tuvieran que salir en el mismo canal saliente, lo que significa que un mensaje tendría que estar en cola.

Entonces, en un sistema con recursos muy limitados, la distribución de probabilidad fue la herramienta utilizada para predecir cuántos búferes asignar, y qué tamaño en función de su tráfico promedio, y el tráfico pico previsto. El sistema mantuvo algunas estadísticas, y después de haber estado funcionando durante un tiempo, comparé los valores máximos esperados con los reales, y estaban sorprendentemente (o satisfactoriamente) cerca.

¿Cuál es la relevancia hoy? Bueno, muchos microcontroladores integrados de 8 bits de gama baja (que cuestan menos de un dólar) también tienen RAM muy limitada, de cientos de bytes (o incluso menos) a varios KB, y pueden beneficiarse de los mismos tipos de análisis.

El encabezado en la biblioteca estándar de C ++ se ha convertido en una de mis nuevas cosas favoritas. Normalmente lo uso para generar valores aleatorios para las pruebas. Puede usar la distribución uniforme para crear números aleatorios equitativos en un rango. Puede usar la distribución de Poisson para crear valores aleatorios para agregar a datos como los tiempos de llegada. Los números de distribución de Poisson ocurren frecuentemente alrededor de un valor seleccionado, pero con valores ocasionales más grandes en una cola unilateral. Puede usar otras distribuciones según sus necesidades.