01 · Punto de partida
Todo modelo tiene letra chica
«Aumento constante», «sin tope», «demanda pareja»: cada modelo se sostiene sobre decisiones que se dan por ciertas. Esos supuestos y sus restricciones de validez son parte del modelo tanto como las ecuaciones. El supuesto oculto es el bug más caro: el programa corre y la decisión falla.
- ¿Qué doy por cierto sin haberlo medido?
- ¿Hasta qué valores vale este modelo?
- ¿Qué pasa si el supuesto se rompe?
- ¿Dónde está escrito para que otros lo critiquen?
02 · Definiciones
Lo que se cree y lo que se limita
Supuesto
Simplificación tomada por cierta: llegadas parejas, tasa constante, sin fallas.
Restricción
Límite de validez: demanda 0–120, 30 días, sin picos mayores al doble.
Riesgo
Lo que cuesta si el supuesto falla: quiebres, saturación, decisión invertida.
| Modelo | Supuesto | Restricción |
|---|---|---|
| Tanque lineal | Caudales constantes | Sin tope ni vaciado en el horizonte |
| Cola con promedio | Llegadas parejas | Sin ráfagas mayores al doble |
| Ganancia lineal | Margen fijo | Demanda 0–120 |
| Pronóstico por tendencia | Régimen vigente | Horizonte de 2 pasos |
03 · Inventario
Cazar supuestos antes de que cacen
- 1Listalos en voz alta.
Todo «obvio» va al papel: lo obvio es donde se esconden.
- 2Clasificalos por riesgo.
¿Qué rompe la decisión si falla? Eso se testea primero.
- 3Convertí límites en restricciones.
«Vale hasta demanda 120» es una guarda programable.
- 4Publicalos con el modelo.
Supuesto no declarado no existe para quien decide.
Supuesto
Afirma algo del mundo
«La demanda es pareja»: se puede contrastar con datos y romper con evidencia.
Restricción
Acota el uso
«Hasta 120»: fuera de ahí el modelo no responde, y el código debe negarse.
- Validez
- Rango donde el modelo responde como promete.
- Guarda
- Chequeo que rechaza escenarios fuera de validez.
- Sensibilidad
- Prueba de cuánto duele que un supuesto falle.
- Documentación
- El lugar visible donde viven supuestos y restricciones.
04 · En el código
Supuestos que se leen, restricciones que frenan
El supuesto vive en comentarios y diccionarios; la restricción, en assert y validaciones que fallan fuerte ante escenarios prohibidos.
05 · En Python
Letra chica ejecutable
Python en tu navegador. Los supuestos se declaran y las restricciones se programan: el modelo se niega fuera de rango.
SUPUESTOS = ["aumento diario constante", "sin tope en el horizonte"]
RESTRICCIONES = {"demanda_min": 0, "demanda_max": 120}
def estimar(demanda):
# Restricción programada: fuera de rango, error claro.
if not (0 <= demanda <= 120):
raise ValueError("demanda fuera de validez 0-120")
return 100 + 3 * demanda
print(SUPUESTOS)
print(estimar(50))
Romper el supuesto a propósito
def estimar(demanda):
if not (0 <= demanda <= 120):
raise ValueError("demanda fuera de validez 0-120")
return 100 + 3 * demanda
for d in [50, 120, 200]:
try:
print(d, estimar(d))
except ValueError as e:
print(d, "rechazado:", e)
06 · Exploración
Laboratorio: la validez tiene borde
El modelo lineal promete hasta la demanda marcada (zona válida). La realidad se ameseta en el tope. Pasá la demanda del borde y mirá explotar el error.
Dentro y fuera de validez
lineal válido hasta demanda 120
Con demanda 80, dentro de validez, el error es 0.
La banda marca la zona válida. Fuera de ella el modelo promete y la realidad dispone.
Preguntas para explorar
- Llevá la demanda a 200. ¿Cuánto erra el modelo fuera de validez?
- Bajá el tope a 300. ¿La zona válida sigue siendo honesta?
- ¿Qué guarda programarías para este modelo?
Ver respuestas sugeridas
- Predice 700 contra 460 reales: error 240. Fuera de validez, el modelo promete de más.
- No necesariamente: si la realidad satura antes, la zona «válida» ya incluye error. Hay que mover la validez o el modelo.
if not (0 <= demanda <= validez): raise ValueError: fallar fuerte antes que responder mal.
07 · Comprensión
Confusiones frecuentes
«Si funciona, los supuestos valen»
Funcionar adentro no prueba nada afuera. La validez se declara antes y se testea en bordes, no se deduce del éxito.
«Documentar supuestos es burocracia»
Es la diferencia entre herramienta y trampa: sin letra chica nadie puede usar el modelo con criterio.
«La guarda molesta al usuario»
Molesta menos que una decisión basada en un número inválido. El error claro es un servicio.
«Restricción es lo mismo que supuesto»
El supuesto afirma («demanda pareja»); la restricción acota («hasta 120»). Uno se contrasta, la otra se programa.
08 · Práctica guiada
Ejercicios con Python
Ejercicio 1: leer la letra chica
Ejecutá y explicá qué garantiza este modelo y qué no.
SUPUESTOS = ["aumento diario constante", "sin tope en el horizonte"]
def estimar(demanda):
if not (0 <= demanda <= 120):
raise ValueError("demanda fuera de validez 0-120")
return 100 + 3 * demanda
print(estimar(50))
print(SUPUESTOS)
Ver solución razonada
Responde 250 dentro de validez y documenta sus apuestas. Fuera de 0–120 se niega: garantiza no mentir en silencio.
Ejercicio 2: forzar la guarda
Pedí demandas 0, 120 y 121. ¿Qué pasa en el borde?
def estimar(demanda):
if not (0 <= demanda <= 120):
raise ValueError("demanda fuera de validez 0-120")
return 100 + 3 * demanda
for d in [0, 120, 121]:
try:
print(d, estimar(d))
except ValueError as e:
print(d, "rechazado")
Ver solución
Responde 100 y 460 en los bordes incluidos, y rechaza 121. Los bordes se testean: son el lugar donde viven los bugs.
Ejercicio 3: escribir la letra chica
Documentá supuestos y restricciones de un pronóstico por tendencia a 2 pasos.
Ver una posible respuesta
ficha = {
"supuestos": ["régimen vigente", "sin quiebres en el horizonte"],
"restricciones": {"horizonte_max": 2, "ruido_max": 2.0},
}
print(ficha)
La ficha viaja con el modelo: quien la lee sabe cuándo usarlo y cuándo desconfiar. Eso es profesionalismo ejecutable.
09 · Síntesis
Ideas para recordar
- Supuestos afirman, restricciones acotan: ambos se escriben.
- La restricción se programa como guarda que falla fuerte.
- Los bordes se testean: ahí viven los errores caros.
- Sin letra chica el modelo promete todo y garantiza nada.
- En Python: dict de supuestos y
ValueErrorfuera de rango.
En el próximo tema ordenaremos el relato: la representación conceptual de un sistema.