Simulación Basada en Agentes · Tema 38

Agentes frente a eventos discretos

Colas y eventos: reloj que salta y clientes que se cansan y se van.

01 · Punto de partida

La fila del banco

En el Tema 37 los animales comían sin turno. Ahora las personas esperan: llegan, hacen fila y se atienden de a una. La simulación de eventos discretos (DES) salta de evento en evento; los agentes agregan paciencia, apuro y cambio de fila.

Por eso conviene comparar: si todos son iguales y obedientes, la cola matemática alcanza; si se cansan, se cuelan o eligen caja, hacen falta agentes con cabeza.

  • ¿Cada cuánto llega cada cliente?
  • ¿Cuánto tarda cada atención?
  • ¿Cuántas cajas atienden a la vez?
  • ¿Cuándo se cansa y abandona?

02 · Definición

Evento, cola y agente

Toda espera combina qué pasa, dónde se junta y quién se cansa:

⚡

Evento

Llegada o fin de atención en un instante: el reloj salta hasta ahí. Sin evento el tiempo no existe.

🧾

Cola

Fila con orden FIFO y cajas que atienden: el recurso que limita. Sin cajas no hay salida aunque haya prisa.

😤

Agente

Cliente con paciencia y ojos: abandona si espera mucho y cambia a la fila corta. Lo que DES no ve.

La misma espera en cada dominio.
MundoColaAbandono típico
Bancofila única a cajasse va si tarda más que su paciencia
Hospitaltriaje por gravedadempeora si espera de más
Peajecabinas paralelascambia a la cabina corta
Servidorpaquetes en bufferdescarta si desborda (Tema 33)

03 · Sistema

Reloj que salta frente a clientes que deciden

El motor DES es flaco y rápido; el motor de agentes es gordo y expresivo. Elegir es declarar qué importa.

DES clásica

Eventos y recursos

Lista de eventos: llegada → espera → salida. Rápida y exacta con iguales obedientes, ciega a paciencia.

ABM con cola

Clientes que miran

Reglas por cliente: si espera > paciencia → se va. Lenta y ruidosa, pero con fugas y vivezas.

DES
Simulación que avanza por eventos con colas y servidores. Se mide con espera media y uso de cajas.
Evento
Cambio instantáneo agendado: llegada o fin. El reloj salta al próximo sin pasos vacíos.
Utilización
Fracción del tiempo con cajas ocupadas: cerca de 1 la cola explota. El termómetro del sistema.
Abandono
Salida sin atención por espera larga: la fuga que DES clásica no tiene. Palanca del agente.

04 · Ciclo

La ronda que llega, atiende y pierde

Cada tick mete llegadas, atiende cajas y resta paciencia, en este orden síncrono:

llegar→atender→abandonar
  1. 1
    Llegar con azar.

    Sorteo por tasa de llegada: entran 0, 1 o varios con paciencia propia.

  2. 2
    Atender por cajas.

    Cada caja libre toma al primero y lo ocupa varios ticks: FIFO sin saltos.

  3. 3
    Abandonar por espera.

    Restar 1 a la paciencia de la fila y sacar a los que llegan a cero: fuga contada.

05 · Representación en Python

Paciencia que se gasta

Esperar resta y atender suma salida. El abandono es una comparación contra cero.

Python en tu navegador. Bajá la paciencia y observá cómo la misma espera echa más gente.

def espera(paciencia, ticks=3):
    return paciencia - ticks

def abandona(paciencia, ticks=3):
    return espera(paciencia, ticks) <= 0

print(espera(5), abandona(5), abandona(2))

Con 5 de paciencia quedan 2 y no abandona; con 2 sí: la espera decide la fuga.

Llegadas que golpean

Llegar es sorteo por tasa: más tasa, más fila por ronda.

import random
def llegan(tasa=0.4):
    return random.random() < tasa

print([llegan(0.0), llegan(1.0)])

06 · Exploración

Laboratorio: banco que atiende o pierde

Cola única con llegadas por tick y cajas que atienden 4 ticks cada una. Cada cliente trae paciencia de 12 ticks: si espera más, se va. Celeste atendido, rojo abandonado, gris en fila. ¿Cuántas cajas hacen falta para que no se fuguen?

EXPERIMENTO 38

La fila que se cansa

llega → espera → atiende o abandona

Los resultados numéricos aparecen debajo.
Espera0,0
Atendidos0 %
Fugas0
LecturaFluye

Con llegadas 0,40 y 2 cajas, la fila fluye.

Cada bloque es un cliente en orden de llegada: el color es su final tras 120 ticks. Más llegadas es más presión con las mismas cajas. Pulsá Nueva réplica para otra tarde con los mismos parámetros.

Preguntas para explorar

  1. Con llegadas mínimas y 1 caja, ¿hay fugas? ¿Por qué sin presión no hace falta paciencia?
  2. Subí las llegadas al máximo con 1 caja. ¿La espera sube lineal o explota? ¿Dónde aparece la utilización en 1?
  3. Repetí 3 veces con valores medios. ¿Las fugas son idénticas? ¿Qué parte es tasa y qué parte es sorteo?
Ver respuestas sugeridas
  1. No: la caja traga más rápido de lo que entra. Sin fila la paciencia ni se gasta.
  2. Explota: la caja no da abasto y la fila crece sin techo. Utilización en 1 es quiebre, no meseta.
  3. No: qué tick trae dos juntos arma picos distintos. La tasa pone el nivel, el sorteo pone las olas.

07 · Comprensión

Confusiones frecuentes

«DES y agentes compiten»

Se combinan: DES para el motor de cola y agentes para la cabeza del cliente. Elegir es declarar qué se quiere ver.

«Más cajas siempre sobran»

Pasada la demanda, cajas de más miran el techo. Utilización baja es plata quieta: capacidad sin fila es gasto.

«Paciencia infinita es neutral»

Infinita esconde el colapso: la fila crece eterna sin fugas. Declarar paciencia o declarar que no hay.

«Una tarde calibra»

Una tarde es una fila posible. La calibración promedia réplicas con semilla y reporta espera y fugas.

08 · Práctica guiada

Ejercicios con Python

Ejercicio 1: paciencia que decide

Ejecutá y compará espera corta contra larga. Luego bajá la paciencia a 2.

def abandona(paciencia, espera):
    return espera > paciencia

print(abandona(12, 3), abandona(12, 15), abandona(2, 3))
Ver solución razonada

Da False, True y True: espera corta aguanta, larga fuga y paciencia chica fuga rápido. Comparación directa.

Ejercicio 2: predecir la utilización

Sin ejecutar primero: llegan 0,5 por tick y cada atención dura 2 ticks con 1 caja. ¿Utilización?

print(0.5 * 2)
Ver solución

Da 1,0: caja siempre ocupada al filo del colapso. Un poco más de tasa y explota.

Ejercicio 3: caja que falta

Si llegan 60 en 120 ticks y cada caja atiende 20, ¿cuántas cajas hacen falta? Escribilo.

Ver una posible respuesta
print(60 / 20)

Hacen falta 3: dos colapsan y cuatro sobran. Capacidad que calza con demanda.

09 · Síntesis

Ideas para recordar

  • Cola es llegar, esperar en FIFO y atender o abandonar por paciencia.
  • DES salta por eventos; agentes agregan paciencia y cambio de fila.
  • Utilización en 1 es quiebre: la espera explota, no sube lineal.
  • Se mide con espera media, atendidos y fugas.
  • En Python, llegadas por tasa más servicio fijo más paciencia que se gasta.

En el próximo tema compararemos con los modelos continuos: individuos frente a ecuaciones agregadas.