Modelos y Simulación · Tema 30

Construcción del modelo

Estructura, reglas y primera versión funcional: ensamblar todo lo aprendido.

01 · Punto de partida

De las piezas al aparato

Tenemos sistema, modelo, variables, contornos, ecuaciones y datos. Construir es ensamblarlos en una primera versión que corre de punta a punta: todavía simple, pero completa y verificada. Esa v1 es la base de todo lo que sigue.

  • ¿Corre de punta a punta con datos reales?
  • ¿Cada pieza tiene su caso testigo?
  • ¿Qué quedó afuera y dónde está anotado?
  • ¿Otro puede ejecutarla y entenderla?

02 · La primera versión

Mínima, completa, verificada

−

Mínima

El recorte más chico que responde la pregunta: sin modos extra ni métricas de lujo.

○

Completa

De entradas a métricas sin huecos: corre con datos reales de punta a punta.

✓

Verificada

Cada pieza con su testigo: transición, contorno y métricas empatan a mano.

v1 frente a modelo final.
Aspectov1Final
AlcanceUn escenario típicoTodos los escenarios
DetalleGrueso, HonestoEl que pida la sensibilidad
PruebasTestigos a manoBatería + datos reales
DeudaAnotada y visiblePagada o justificada

03 · Ensamblaje

Orden de montaje

  1. 1
    Estado y transición.

    La regla pura, testeada contra la ecuación.

  2. 2
    Contorno y parámetros.

    Topes, ventanas y constantes nombradas con sus guardas.

  3. 3
    Entradas y salidas.

    Series adentro, historia y métricas afuera.

  4. 4
    Andamiaje.

    Prints, asserts y gráficos provisorios para ver adentro.

  5. 5
    Testigos.

    Casos a mano que empatan: la v1 queda sellada.

Andamiaje

Para construir

Prints y gráficos provisorios que muestran el interior. Se quitan al terminar.

Estructura

Para quedarse

Transición, contorno y métricas con tests: lo que viaja a la v2.

Esqueleto
Estructura mínima que corre de punta a punta.
Andamiaje
Ayudas provisorias de construcción y depuración.
Deuda de modelado
Simplificación pendiente, anotada con su riesgo.
Testigo
Caso conocido que custodia cada pieza.

04 · Regla de montaje

De adentro hacia afuera

Transición→Contorno→Entradas/salidas→Testigos

Primero la pieza que todo lo toca (la transición), después lo que la limita, luego lo que la alimenta, al final las pruebas que la sellan.

05 · En Python

La v1 entera en veinte líneas

Python en tu navegador. Transición, contorno, entradas, métricas y testigo: el modelo completo.

TOPE = 40  # contorno nombrado


def transicion(nivel, entrada, salida):
    return min(max(nivel + entrada - salida, 0), TOPE)


def simular(n0, entradas, salida):
    n = n0
    historia = []
    for e in entradas:
        n = transicion(n, e, salida)
        historia.append(n)
    return historia


print(simular(10, [3, 3, 3, 3], 2))

Sellar con el testigo

def simular(n0, entradas, salida):
    n = n0
    h = []
    for e in entradas:
        n = min(max(n + e - salida, 0), 40)
        h.append(n)
    return h


assert simular(10, [3, 3, 3, 3], 2) == [11, 12, 13, 14]
print("v1 OK")

06 · Exploración

Laboratorio: banco de ensamblaje

Activá las piezas de la v1: transición, contorno y tests. El medidor dice si hay modelo o solo partes sueltas.

EXPERIMENTO 30

Armar la v1

3 piezas · sello de calidad

Los resultados numéricos aparecen debajo.
Completitud100%
Piezas3 de 3
Faltanada
Sellov1 OK

Modelo sellado: corre entero y verificado.

Transición sin contorno se escapa; contorno sin tests nadie lo cree; tests sin modelo no existen.

Preguntas para explorar

  1. Apagá el contorno. ¿Qué le pasa a la v1 con entradas grandes?
  2. Apagá los tests. ¿Sigue siendo v1 o vuelve a borrador?
  3. ¿Qué deuda anotarías en tu v1 del curso?
Ver respuestas sugeridas
  1. Crece sin cota: sin tope no hay capacidad ni validez que decidir.
  2. Vuelve a borrador: sin sello nadie distingue el avance de la suerte.
  3. Respuesta abierta: lo pendiente con su riesgo, por escrito, junto al código.

07 · Comprensión

Confusiones frecuentes

«v1 es el prototipo tirarle»

No: es la base que crece. El prototipo descartable es otro instrumento, no la v1.

«Completo significa detallado»

Significa sin huecos: corre entero. El detalle llega después, donde la sensibilidad lo pida.

«Los tests vienen después»

Vienen con cada pieza: el testigo nace junto a la transición, no al final del proyecto.

«El andamiaje queda»

Se quita al sellar: prints eternos ensucian salidas y confunden lectores.

08 · Práctica guiada

Ejercicios con Python

Ejercicio 1: correr la v1

Ejecutá el modelo completo con entradas [3, 3, 3, 3]. ¿Historia?

def simular(n0, entradas, salida):
    n = n0
    h = []
    for e in entradas:
        n = min(max(n + e - salida, 0), 40)
        h.append(n)
    return h


print(simular(10, [3, 3, 3, 3], 2))
Ver solución razonada

Da [11, 12, 13, 14]: transición, contorno y bucle trabajando juntos de punta a punta.

Ejercicio 2: sellar

Agregá el assert que convierte este borrador en v1.

def simular(n0, entradas, salida):
    n = n0
    h = []
    for e in entradas:
        n = min(max(n + e - salida, 0), 40)
        h.append(n)
    return h


assert simular(10, [3, 3, 3, 3], 2) == [11, 12, 13, 14]
print("v1 OK")
Ver solución

Si el assert pasa, hay sello; si falla, hay bug. El veredicto es binario y automático.

Ejercicio 3: anotar la deuda

Declarará la deuda de esta v1 como datos: ¿qué falta y con qué riesgo?

Ver una posible respuesta
deuda = [{"falta": "entradas variables", "riesgo": "subestima picos"},
         {"falta": "calibración", "riesgo": "caudales supuestos"}]
print(len(deuda), "pendientes")

Dos pendientes con riesgo declarado: la v1 es honesta y la v2 ya tiene agenda.

09 · Síntesis

Ideas para recordar

  • v1 = mínima + completa + verificada.
  • Orden: transición, contorno, entradas/salidas, testigos.
  • El andamiaje ayuda y se quita; la deuda se anota.
  • Sin assert verde no hay v1: hay borrador.
  • En Python: funciones puras + bucle + asserts.

En el próximo tema pondremos la v1 a correr en serio: la implementación de la simulación.