01 · Punto de partida
Del estado trampa a la cadena trampa
Un absorbente solo (Tema 32) es un estado; una cadena absorbente es un sistema que termina en trampas: tiene absorbentes y desde todo lo transitorio se llega a alguno.
La maquinaria es la forma canónica [Q R; 0 I] y la matriz fundamental N = (I−Q)⁻¹: visitas medias y tiempos sin simular.
- ¿Hay absorbentes y todo lo demás los alcanza?
- ¿Cómo se ordena P en bloques Q, R, I?
- ¿Cuántas visitas a cada transitorio: N?
- ¿Cuánto tarda la absorción desde i: t = N·1?
02 · Definición
¿Qué es cadena absorbente?
Dos condiciones, tres fórmulas:
Trampas
Al menos un absorbente pᵢᵢ = 1.
Alcance
Desde todo transitorio se llega a algún absorbente.
Fundamental
N = (I−Q)⁻¹: visitas medias entre transitorios.
En forma canónica los transitorios van primero: P = [Q R; 0 I]. Q mueve entre transitorios, R fuga a trampas.
| Bloque | Valores | Lee |
|---|---|---|
| Q (2×2) | [[0,5 – 0,5], [0,3 – 0,4]] | Entre transitorios. |
| R (2×1) | [[0], [0,3]] | Fuga al 2. |
| N = (I−Q)⁻¹ | [[3,33 – 2,78], [1,67 – 2,78]] | Visitas medias. |
| t = N·1 | [6,11 – 4,44] | Pasos a absorber. |
03 · Anatomía
Q, R, N, B, t
Cinco letras que lo dicen todo:
- Q
- Transitorio→transitorio. Su radio espectral < 1 garantiza N finita.
- R
- Transitorio→absorbente. Las fugas directas por paso.
- N = (I−Q)⁻¹
- Visitas medias: Nᵢⱼ = veces esperadas en j desde i antes de absorber.
- t = N·1 y B = N·R
- Tiempos medios a absorber y reparto entre trampas rivales.
Simular
Historias
Miles de réplicas hasta absorber. Ruido + costo, intuición visual.
N exacta
Cálculo
Una inversa da visitas, tiempos y reparto sin ruido.
04 · Ejemplos
Cadenas que terminan
Si todo camino lleva a trampa, es absorbente:
- 1Trámite → resuelto.
Pasos medios por oficina: fila de t.
- 2Ruina 0–4.
Desde i: tiempo i·(4−i) y reparto i/4.
- 3Trial → compra/pérdida.
B reparte entre rivales por inicio.
- 4Juego por niveles.
Niveles transitorios hasta victoria o derrota.
- 5No absorbente.
Sin trampas o con transitorios aislados: N no aplica.
05 · Representación en Python
N 2×2 a mano, sin librerías
En Python, con 2 transitorios la inversa es fórmula directa: N = (I−Q)⁻¹ con determinante. De N salen t y B.
Python en tu navegador. Estos bloques se ejecutan localmente con Pyodide, sin instalar nada. Cambiá la fuga y mirá t.
Q = [[0.5, 0.5], [0.3, 0.4]]
R = [[0.0], [0.3]]
def inv2(M):
a, b, c, d = M[0][0], M[0][1], M[1][0], M[1][1]
det = a * d - b * c
return [[d / det, -b / det], [-c / det, a / det]]
I_Q = [[1 - Q[0][0], -Q[0][1]], [-Q[1][0], 1 - Q[1][1]]]
N = inv2(I_Q)
t = [N[0][0] + N[0][1], N[1][0] + N[1][1]]
print("N:", [[round(x, 2) for x in f] for f in N])
print("t:", [round(x, 2) for x in t])
N ≈ [[3,33 – 2,78], [1,67 – 2,78]] y t ≈ [6,11 – 4,44]: desde 0 se tarda más (lejos de la fuga).
Reparto B = N·R
Con una sola trampa B = [1, 1]; con rivales reparte:
N = [[3.33, 2.78], [1.67, 2.78]]
R = [[0.0], [0.3]]
B = [[N[0][0]*R[0][0] + N[0][1]*R[1][0]], [N[1][0]*R[0][0] + N[1][1]*R[1][0]]]
print([[round(x, 3) for x in f] for f in B])
06 · Exploración
Laboratorio: abrir o cerrar la fuga
Mapa B con fuga c = P(1→2) ajustable (el resto queda en {0,1}). Las barras son los tiempos medios t₀ y t₁ exactos por N. Subí c: la trampa traga antes y t se desploma. Con c = 0 no hay cadena absorbente (N explota).
N y tiempos exactos
t = N·1 con N = (I−Q)⁻¹
Con c 0,30, t₀ ≈ 6,11 y t₁ ≈ 4,44.
Sin simular historias: una inversa 2×2 da los tiempos. La barra de 0 supera a la de 1 porque está más lejos de la fuga.
Preguntas para explorar
- Con c = 0,3, ¿t₀ y t₁ cuánto dan? ¿Cuál es mayor y por qué?
- Bajá c a 0,05. ¿Los tiempos crecen o caen? ¿Qué pasa si c → 0?
- ¿B = N·R cuánto da con una sola trampa? ¿Por qué no hay reparto?
Ver respuestas sugeridas
- 6,11 y 4,44: desde 0 hay que pasar por 1 para fugar.
- Crecen (t₀ ≈ 25): casi sin fuga se tarda una eternidad. Con c = 0 no hay absorción.
- [1, 1]: todo termina en la única trampa. El reparto aparece con rivales.
07 · Comprensión
Confusiones frecuentes
«Con un absorbente ya es absorbente»
Falta el alcance: todo transitorio debe llegar a alguno. Trampa aislada no alcanza.
«N cuenta pasos totales»
Cuenta visitas por estado (Nᵢⱼ); los pasos totales son la fila sumada tᵢ.
«t es hasta volver»
No: es hasta absorber (salir de lo transitorio). El retorno es otro tiempo (Tema 38).
«N sale de P sin ordenar»
No: exige forma canónica con transitorios primero. Sin ordenar, la inversa miente.
08 · Práctica guiada
Ejercicios con Python
Ejercicio 1: leer Q y R
Dada esta P con orden (0, 1, 2), extraé Q (2×2) y R (2×1).
P = [[0.5, 0.5, 0.0],
[0.3, 0.4, 0.3],
[0.0, 0.0, 1.0]]
Q = [f[:2] for f in P[:2]]
R = [[f[2]] for f in P[:2]]
print("Q:", Q, "| R:", R)
Ver solución razonada
Q = [[0,5 – 0,5], [0,3 – 0,4]], R = [[0], [0,3]]: las dos primeras filas/columnas son lo transitorio.
Ejercicio 2: t desde N
Sin ejecutar primero: con N = [[3,33 – 2,78], [1,67 – 2,78]], ¿t₀ y t₁?
N = [[3.33, 2.78], [1.67, 2.78]]
print([round(sum(f), 2) for f in N])
Ver solución
[6,11 – 4,45]: sumar la fila da los pasos medios a absorber.
Ejercicio 3: verificar absorción segura
Con B = [[1], [1]], verificá que cada fila suma 1. ¿Qué significaría 0,7?
Ver una posible respuesta
B = [[1.0], [1.0]]
print([sum(f) for f in B])
Suma 1: absorción segura. Un 0,7 diría que 30 % nunca absorbe (cadena no absorbente).
09 · Síntesis
Ideas para recordar
- Absorbente: trampas + alcance desde todo transitorio.
- Canónica [Q R; 0 I] con transitorios primero.
- N = (I−Q)⁻¹: visitas medias entre transitorios.
- t = N·1 tiempos; B = N·R reparto entre trampas.
- En Python: inversa 2×2 + sumas por fila.
En el próximo tema mediremos el ritmo de los retornos: periodicidad.