01 · Punto de partida
Toda evolución necesita un inicio
La regla π(n+1) = π(n)·P (Tema 26) avanza, pero ¿desde dónde? Empezar con el servidor seguro libre no es lo mismo que empezarlo repartido o en equilibrio. Los primeros pasos recuerdan el inicio.
Elegir π(0) es declarar el punto de partida —y decidir cuánto de él descartar (burn-in).
- ¿Estado seguro [1, 0] o reparto [0,5 – 0,5]?
- ¿Cuántos pasos dura su efecto?
- ¿Cuándo conviene empezar en el equilibrio π?
- ¿Qué parte inicial se descarta al estimar?
02 · Definición
¿Qué es π(0)?
Tres formas habituales:
Segura (delta)
π(0) = [1, 0]: X₀ = 0 con certeza. Típica al simular «desde libre».
Repartida
π(0) = [0,5 – 0,5] o empírica: el inicio es incierto.
Equilibrio
π(0) = π: ya estable desde el paso 0. Ideal para régimen.
Con a = 0,3 y b = 0,5, el equilibrio es π = [0,625 – 0,375]: empezar ahí elimina el transitorio.
| π(0) | n = 0 | n = 2 | n = ∞ |
|---|---|---|---|
| [1, 0] seguro 0 | 0,000 | 0,360 | 0,375 |
| [0,5 – 0,5] | 0,500 | 0,380 | 0,375 |
| [0,625 – 0,375] | 0,375 | 0,375 | 0,375 |
03 · Anatomía
Transitorio, régimen y descarte
Cuatro ideas para operar con π(0):
- Transitorio
- Primeros pasos pegados a π(0). Corto si la cadena mezcla rápido.
- Régimen
- Desde que π(n) ≈ π: el inicio ya se olvidó. Lo que se usa para decidir.
- Burn-in
- Pasos iniciales que se descartan al estimar (promedios, π). Típico: 10–20 % o hasta estabilizar.
- Inicio en π
- Si se conoce π, empezar ahí ahorra burn-in. Si no, se estima y se verifica.
Simular corto
Manda π(0)
Horizonte 5–10: el inicio decide. Declararlo es obligatorio.
Simular largo
Manda P
Horizonte 1000+: el inicio se olvida. Igual conviene descartar el arranque.
04 · Ejemplos
Inicios que un programador declara
El inicio cuenta la historia del sistema antes del minuto cero:
- 1Apertura: seguro libre.
π(0) = [1, 0, 0]: local vacío a las 8 h.
- 2Mitad de día: empírico.
π(0) = reparto medido a las 12 h.
- 3Régimen: equilibrio.
π(0) = π para tests de largo plazo sin arranque.
- 4Tras falla: seguro caído.
π(0) = [0, 0, 1]: mide la recuperación.
- 5Sin dato: uniforme.
π(0) = [1/K…]: neutro explícito, no «verdadero».
05 · Representación en Python
π(0) es una lista que suma 1
En Python, π(0) es una lista validada (≥ 0, suma 1). Sortear X₀ con esa lista inicia cada réplica; evolucionar π(0) con P da las chances sin réplicas.
Python en tu navegador. Estos bloques se ejecutan localmente con Pyodide, sin instalar nada. Cambiá π(0) y compará n = 2.
import random
def sortear_inicio(pi0, semilla=7):
random.seed(semilla)
u, ac = random.random(), 0.0
for i, p in enumerate(pi0):
ac += p
if u < ac:
return i
for pi0 in [[1.0, 0.0], [0.5, 0.5], [0.625, 0.375]]:
print(pi0, [sortear_inicio(pi0, s) for s in range(6)])
El seguro siempre da 0; los repartos mezclan. El sorteo respeta π(0) por construcción.
Evolucionar cada inicio dos pasos
El efecto del inicio en n = 2, sin simular historias:
P = [[0.7, 0.3], [0.5, 0.5]]
def evolucionar(pi0, N=2):
pi = pi0[:]
for _ in range(N):
pi = [sum(pi[i] * P[i][j] for i in range(2)) for j in range(2)]
return [round(x, 3) for x in pi]
for pi0 in [[1.0, 0.0], [0.0, 1.0], [0.625, 0.375]]:
print(pi0, evolucionar(pi0))
06 · Exploración
Laboratorio: tres inicios, un destino
Tres curvas P(Xₙ=1) desde π₀(1) = 0 (turquesa), 0,5 (amarilla) y 1 (naranja). Movete el paso n: la banda entre ellas (apertura) se cierra hacia 0,375. Esa apertura mide cuánto recuerda el inicio.
El inicio se olvida
apertura(n) = máx − mín → 0
En n 2, la apertura es 0,040: casi olvidado.
En n = 0 la apertura es 1 (máximo desacuerdo); cada paso la multiplica por 0,2. En n = 5 es invisible.
Preguntas para explorar
- En n = 0, ¿cuánto vale la apertura? ¿Y en n = 5?
- ¿Qué curva no se mueve nunca? ¿Qué π₀ representa?
- Si estimás con n = 0…2 incluido, ¿hacia dónde sesga cada inicio?
Ver respuestas sugeridas
- 1,0 en n = 0; ≈ 0,0003 en n = 5 (×0,2⁵). Olvido geométrico.
- Ninguna de estas tres (0,375 no está dibujada partiría plana). Es el equilibrio.
- Hacia su inicio: desde 0 subestima, desde 1 sobrestima. Por eso el burn-in.
07 · Comprensión
Confusiones frecuentes
«π(0) es el primer estado simulado»
No: es la distribución de la que sale. El primer estado es un sorteo de π(0).
«Empezar en equilibrio es trampa»
No: es eficiencia. Si el interés es el régimen, ahorra burn-in legítimamente.
«El burn-in se tira porque está mal»
No está mal: es transitorio real. Se descarta para estimar régimen, no por error.
«π(0) no importa nunca»
No importa a largo plazo; decide el corto. Con horizonte 5, es casi todo.
08 · Práctica guiada
Ejercicios con Python
Ejercicio 1: validar π(0)
Verificá estos candidatos y quedate con los válidos.
for pi0 in [[1.0, 0.0], [0.5, 0.5], [0.6, 0.5]]:
print(pi0, all(x >= 0 for x in pi0) and abs(sum(pi0) - 1) < 1e-9)
Ver solución razonada
Válidos los dos primeros (True, True); el tercero suma 1,1 (False).
Ejercicio 2: apertura en n
Sin ejecutar primero: con factor 0,2, ¿qué apertura esperás en n = 3 si en 0 vale 1? Comprobalo.
print(0.2**3)
Ver solución
0,008: en 3 pasos el desacuerdo inicial casi desaparece.
Ejercicio 3: burn-in en promedios
Simulá 12 pasos desde 0 y promediá con y sin descartar los 4 primeros. ¿Cuál se acerca a 0,375?
Ver una posible respuesta
import random
random.seed(9)
a, b, x, hist = 0.3, 0.5, 0, [0]
for _ in range(12):
x = 1 if random.random() < (a if x == 0 else 1 - b) else 0
hist.append(x)
print("todo:", round(sum(hist) / len(hist), 3))
print("sin burn-in 4:", round(sum(hist[4:]) / len(hist[4:]), 3))
El segundo (sin arranque en 0) se acerca a 0,375; el primero queda abajo por el transitorio.
09 · Síntesis
Ideas para recordar
- π(0) ≥ 0 y suma 1: seguro, repartido o equilibrio.
- Manda el corto plazo; P manda el largo.
- La apertura entre inicios decae geométrica.
- En Python: validar, sortear X₀ y evolucionar.
- Descartar burn-in para estimar régimen.
En el próximo tema iremos varios pasos de un salto: Pⁿ y Chapman-Kolmogorov.