01 · Punto de partida
Pausar el sistema y poder seguir
Si congelamos una simulación a mitad de camino y queremos retomarla mañana, ¿qué datos necesitamos guardar? La respuesta es el estado: el conjunto mínimo de variables que describe la situación actual y permite calcular el futuro sin conocer el pasado.
- ¿Con qué datos mínimos retomo la corrida?
- ¿Qué es memoria del sistema y qué es decoración?
- ¿Qué cambia el estado en cada paso?
- ¿Dos estados iguales garantizan futuros iguales?
02 · Definición
Estado, transición e historia
Estado
La foto mínima y suficiente: nivel del tanque, cola actual, stock disponible.
Transición
La regla que lleva al próximo estado: sumar entradas, restar salidas, respetar topes.
Historia
La película: la secuencia de estados paso a paso que genera la simulación.
| Sistema | Estado | No es estado (derivado) |
|---|---|---|
| Tanque | nivel actual | promedio de la semana |
| Cola | cola actual, atendidos | espera máxima histórica |
| Inventario | stock actual | ventas acumuladas (se derivan) |
| Cuenta bancaria | saldo actual | total depositado alguna vez |
03 · La prueba de la pausa
Mínimo y completo
- 1Pausá y guardá solo el candidato.
Anotá las variables propuestas y descartá todo lo demás.
- 2Retomá sin mirar el pasado.
Con esos datos y las entradas futuras, ¿la corrida sigue idéntica?
- 3Podá lo redundante.
Si una variable se calcula desde otras, no es estado: es salida derivada.
Es estado
Memoria necesaria
Sin ella el futuro cambia: el nivel, la cola, el stock. Se guarda y se actualiza.
No es estado
Dato derivado
Se recalcula desde el estado: promedios, máximos históricos, acumulados informativos.
04 · En el código
Estado como dato, transición como función
- Estado
- Un valor o estructura pequeña: número, tupla o diccionario con lo mínimo.
- Transición pura
- Función sin sorpresas:
nuevo = transicion(estado, entradas). - Historia
- Lista de estados: lo que se grafica y se analiza.
- Condición inicial
- El estado en t = 0, tema del próximo capítulo de ingredientes (Tema 10).
05 · En Python
Transiciones que se pueden retomar
Python en tu navegador. Fijate que las funciones solo usan el estado y las entradas: nunca miran la historia.
def transicion(nivel, entrada, salida):
# Estado: nivel. Entradas del paso: caudales.
return max(nivel + entrada - salida, 0)
estado = 10
for t in range(1, 6):
estado = transicion(estado, 3, 2)
print("t =", t, "estado =", estado)
Estados compuestos
Cuando hay más de una memoria, el estado es una tupla o diccionario y la transición devuelve uno nuevo completo.
def paso_cola(estado, llegan, atienden):
cola, atendidos = estado
cola = cola + llegan
turno = min(cola, atienden)
return (cola - turno, atendidos + turno)
print(paso_cola((0, 0), 3, 2))
print(paso_cola((1, 2), 0, 2))
06 · Exploración
Laboratorio: inspector de estados
La curva es la historia del nivel en 12 pasos. Movete el paso inspeccionado: el panel muestra el estado en ese instante, de dónde viene y a dónde va.
La historia, instante por instante
12 pasos · estado inspeccionado
En t=6 el estado es 16: vino de 15 y va hacia 17.
El punto naranja es el estado inspeccionado; alcanza con ese número (más las entradas) para continuar la historia.
Preguntas para explorar
- En t=0, ¿alcanza el estado inicial para predecir t=1? ¿Qué más hace falta?
- Con entrada igual a la salida, recorré los pasos: ¿qué tienen en común todos los estados?
- Si guardás solo el promedio de la historia, ¿podés retomar la corrida? ¿Por qué?
Ver respuestas sugeridas
- No: falta la entrada del paso (y la regla). Estado inicial + entradas sí alcanzan.
- Que son todos iguales: el sistema está en equilibrio y el estado se repite.
- No: el promedio no permite continuar la corrida; el nivel (estado mínimo) sí.
07 · Comprensión
Confusiones frecuentes
«El historial completo es el estado»
La historia es el resultado; el estado es el resumen mínimo que permite seguir. Guardar todo es caro e innecesario.
«Todo lo que cambia es estado»
Solo lo necesario para continuar. Un contador decorativo o un promedio informativo cambian pero no son estado.
«El estado incluye las entradas»
Las entradas son el escenario del paso, no memoria del sistema. La transición las combina con el estado.
«Dos estados iguales implican mismo futuro con azar»
Con azar, el futuro se sortea: el estado habilita las mismas posibilidades, no el mismo destino.
08 · Práctica guiada
Ejercicios con Python
Ejercicio 1: retomar a mitad de camino
Simulá 3 pasos, guardá el estado y retomá otros 3 sin recomenzar. Compará con la corrida completa de 6.
def transicion(nivel, entrada, salida):
return max(nivel + entrada - salida, 0)
e = 10
for t in range(3):
e = transicion(e, 3, 2)
print("pausa en:", e)
for t in range(3):
e = transicion(e, 3, 2)
print("retomada:", e)
Ver solución razonada
La pausa deja 13 y la retomada llega a 16, igual que 6 pasos de corrido. El estado 13 resume todo el pasado relevante.
Ejercicio 2: detectar lo que sobra
Este «estado» trae un dato de más. ¿Cuál y por qué?
estado = {"nivel": 14, "promedio": 12.5, "paso": 6}
print("nivel" in estado, "promedio" in estado)
Ver solución
Sobra promedio: se deriva de la historia y no hace falta para continuar. nivel (y el contador de paso, si el escenario depende de t) sí son estado.
Ejercicio 3: estado compuesto
Avanzá dos pasos la cola desde (0, 0) con llegadas 3 y 1, atención 2. ¿Estado final?
Ver una posible respuesta
def paso_cola(estado, llegan, atienden):
cola, atendidos = estado
cola = cola + llegan
turno = min(cola, atienden)
return (cola - turno, atendidos + turno)
e = (0, 0)
e = paso_cola(e, 3, 2)
e = paso_cola(e, 1, 2)
print(e)
El estado final es (0, 4): cola vacía y 4 atendidos. Con esa tupla alcanza para seguir; nada más hace falta.
09 · Síntesis
Ideas para recordar
- El estado resume el pasado relevante para continuar la historia.
- La transición combina estado y entradas:
estado(t+1) = f(estado(t), entradas). - Lo derivable no es estado: promedios y máximos se recalculan.
- En código, el estado es dato mínimo y la transición, función pura.
- Con azar, el estado habilita futuros posibles, no un destino único.
En el próximo tema conectaremos el modelo con el mundo: entradas y salidas de un modelo.