Modelos y Simulación · Tema 12

Determinísticos y estocásticos

Certeza frente a azar: cuándo el modelo repite y cuándo sortea, y cómo leer cada uno.

01 · Punto de partida

Mismo escenario, ¿mismo resultado?

Corré dos veces el tanque con igual escenario y obtendrás la misma historia: es determinístico. Corré dos veces la cola con llegadas al azar y obtendrás historias distintas: es estocástico. La diferencia no está en el programa, sino en si el modelo incluye azar.

  • ¿El escenario determina por completo la historia?
  • ¿Qué parte del sistema es impredecible caso por caso?
  • ¿Cómo se describe lo impredecible: distribución y semilla?
  • ¿Cuántas réplicas hacen falta para opinar?

02 · Definiciones

Regla fija o sorteo controlado

=

Determinístico

Misma entrada, misma salida, siempre. Ideal para comparar políticas sin ruido.

⚄

Estocástico

Incluye azar modelado: llegadas, fallas, tiempos variables. Cada corrida es una muestra.

#

Semilla

El control del sorteo: misma semilla, misma historia. Azar reproducible.

Cuándo usar cada uno.
SituaciónModeloPor qué
Comparar dos topesDeterminísticoSin ruido, la diferencia es del diseño
Llegadas de clientesEstocásticoEl arribo real varía caso por caso
Fallas de máquinaEstocásticoOcurren con probabilidad, no con agenda
Depurar el simuladorDeterminísticoSe necesita repetir exactamente el caso

03 · Diseño

Dónde poner el azar

  1. 1
    Identificá la fuente.

    ¿Qué varía sin que puedas predecirlo: llegadas, duraciones, fallas?

  2. 2
    Elegí la distribución.

    Enteros parejos (randint), reales en rango (uniform), opciones (choice).

  3. 3
    Fijá la semilla.

    random.Random(semilla): reproducible por defecto, variable a pedido.

  4. 4
    Planificá réplicas.

    Una corrida es una anécdota; N réplicas son evidencia.

Una corrida

Anécdota

Cuenta una historia posible. Sirve para depurar y para ilustrar, nunca para concluir.

N réplicas

Evidencia

Media, mínimo y máximo entre corridas describen el comportamiento típico y sus bordes.

Distribución
Regla del sorteo: qué valores pueden salir y con qué frecuencia.
Muestra
Lo que salió en una corrida concreta.
Réplica
Repetición con otra semilla del mismo escenario.
Estadístico
Resumen entre réplicas: media, pico, proporción.

04 · Lectura

Leer un estocástico sin autoengañarse

N réplicas→Media y rango→Comparar escenarios→Decidir

05 · En Python

Del tanque cierto a la cola sorteada

Python en tu navegador. El módulo random con semilla fija es azar domesticado: sortea y repite.

import random


def replica_cola(llegada_max, atencion, pasos, semilla):
    # Una corrida: la historia depende de la semilla.
    rng = random.Random(semilla)
    cola, pico = 0, 0
    for t in range(pasos):
        cola = cola + rng.randint(0, llegada_max)
        cola = cola - min(cola, atencion)
        pico = max(pico, cola)
    return pico


print("semilla 1:", replica_cola(3, 2, 24, 1))
print("semilla 2:", replica_cola(3, 2, 24, 2))
print("misma semilla:", replica_cola(3, 2, 24, 1))

De anécdotas a evidencia

import random


def replica_cola(llegada_max, atencion, pasos, semilla):
    rng = random.Random(semilla)
    cola, pico = 0, 0
    for t in range(pasos):
        cola = cola + rng.randint(0, llegada_max)
        cola = cola - min(cola, atencion)
        pico = max(pico, cola)
    return pico


picos = [replica_cola(3, 2, 24, s) for s in range(1, 11)]
print("picos:", picos)
print("media:", round(sum(picos) / len(picos), 2))
print("rango:", min(picos), "-", max(picos))

06 · Exploración

Laboratorio: el histograma de las réplicas

Cada barra cuenta cuántas réplicas (semillas 1 a N) terminaron con cada cola máxima. La línea marca la media. Subí las réplicas: ¿se estabiliza la media?

EXPERIMENTO 12

N historias, un patrón

colas máximas por réplica

Los resultados numéricos aparecen debajo.
Media de picos2,50
Mín – máx1 – 4
Réplicas24
LecturaEstable

Con 24 réplicas, el pico típico ronda 2,5 con rango 1–4.

El histograma muestra la variabilidad entre corridas idénticas en escenario: esa dispersión también es un resultado.

Preguntas para explorar

  1. Con 6 réplicas, mové la atención entre 1 y 2 varias veces (cambiá y volvé). ¿La media salta?
  2. Con 48 réplicas, ¿la media se mueve menos? Eso es la ley de los grandes números trabajando.
  3. ¿Qué escenario compararías y con qué semillas?
Ver respuestas sugeridas
  1. Sí: con 6 réplicas la media salta al cambiar la atención. Poca muestra, mucha suerte.
  2. Sí: con 48 la media se estabiliza. Es la ley de los grandes números trabajando.
  3. Compararía atenciones con las mismas semillas (por ejemplo 1 a 5): a igual suerte, la diferencia es del escenario.

07 · Comprensión

Confusiones frecuentes

«Estocástico significa impredecible»

Lo impredecible es cada caso; el conjunto es describible: media, rango y forma de la distribución sí se estiman.

«Con semilla fija no hay azar»

Hay azar modelado y reproducible: los valores se sortean, pero el experimento se puede repetir al milímetro.

«Más réplicas arreglan un mal modelo»

No: reducen la incertidumbre del sorteo, no el sesgo de supuestos falsos. Primero el modelo, después las réplicas.

«El promedio de réplicas es la predicción»

Es un resumen, no una promesa: junto a la media hay que informar rango y riesgo de cola.

08 · Práctica guiada

Ejercicios con Python

Ejercicio 1: comprobar la semilla

Ejecutá dos veces la misma semilla y una distinta. ¿Qué se repite y qué cambia?

import random


def replica_cola(llegada_max, atencion, pasos, semilla):
    rng = random.Random(semilla)
    cola, pico = 0, 0
    for t in range(pasos):
        cola = cola + rng.randint(0, llegada_max)
        cola = cola - min(cola, atencion)
        pico = max(pico, cola)
    return pico


print(replica_cola(3, 2, 24, 5))
print(replica_cola(3, 2, 24, 5))
print(replica_cola(3, 2, 24, 6))
Ver solución razonada

Las dos primeras dan lo mismo (semilla 5) y la tercera difiere: el azar es reproducible a pedido. Así se depura sin perder realismo.

Ejercicio 2: media de 10 réplicas

Calculá media y rango de los picos con semillas 1 a 10. ¿Una sola corrida los representaba?

import random


def replica_cola(llegada_max, atencion, pasos, semilla):
    rng = random.Random(semilla)
    cola, pico = 0, 0
    for t in range(pasos):
        cola = cola + rng.randint(0, llegada_max)
        cola = cola - min(cola, atencion)
        pico = max(pico, cola)
    return pico


picos = [replica_cola(3, 2, 24, s) for s in range(1, 11)]
print(sum(picos) / len(picos), min(picos), max(picos))
Ver solución

La media da 2.6 con rango 1–5: ninguna corrida individual cuenta esa historia completa. El par media–rango sí.

Ejercicio 3: comparar capacidades con justicia

Compará atención 2 vs 3 con las mismas 5 semillas. ¿Gana siempre la misma?

Ver una posible respuesta
import random


def replica_cola(llegada_max, atencion, pasos, semilla):
    rng = random.Random(semilla)
    cola, pico = 0, 0
    for t in range(pasos):
        cola = cola + rng.randint(0, llegada_max)
        cola = cola - min(cola, atencion)
        pico = max(pico, cola)
    return pico


for s in range(1, 6):
    a2 = replica_cola(4, 2, 24, s)
    a3 = replica_cola(4, 3, 24, s)
    print(s, a2, a3, "gana 3" if a3 < a2 else "empate")

Con iguales semillas, la capacidad 3 empata o mejora en todas: la mejora es del escenario, no de la suerte.

09 · Síntesis

Ideas para recordar

  • Determinístico repite; estocástico muestrea con distribuciones y semillas.
  • El azar se modela donde el sistema es impredecible caso por caso.
  • Una corrida es anécdota; N réplicas son evidencia (media y rango).
  • La semilla hace reproducible el sorteo: misma semilla, misma historia.
  • Los escenarios se comparan con las mismas semillas.

En el próximo tema congelaremos el tiempo: modelos estáticos y dinámicos.