01 · Punto de partida
La matriz dibujada
La matriz P (Tema 24) es exacta pero fría: un 0,05 se pierde entre números. El diagrama la dibuja: nodos para estados y flechas con la chance encima. De un vistazo se ven lazos, ciclos y absorbentes.
Diagrama, grafo (Tema 22) y matriz dicen lo mismo en tres idiomas: dibujo, flechas y tabla.
- ¿Qué nodo es cada estado y dónde va cada flecha?
- ¿Qué chance lleva cada flecha encima?
- ¿Las salidas de cada nodo suman 1?
- ¿Qué se ve primero: ciclos, lazos o fugas?
02 · Definición
¿Qué lleva un diagrama?
Tres elementos, ni uno más:
Nodos
Un círculo por estado, con su etiqueta o índice.
Flechas
Una por cada pᵢⱼ > 0, con grosor según la chance.
Etiquetas
El valor pᵢⱼ sobre cada flecha. Sin etiqueta es grafo, no diagrama.
Los lazos (i→i) se dibujan como rulos; los ceros no se dibujan. Un diagrama limpio esconde los ceros y muestra la estructura.
| Idioma | Qué muestra | Ejemplo |
|---|---|---|
| Grafo | Flechas posibles | 0→1 existe. |
| Matriz | Tabla de chances | p₀₁ = 0,3. |
| Diagrama | Flecha con 0,3 encima | 0 —0,3→ 1. |
03 · Anatomía
Lazos, ciclos y fugas
Cuatro patrones se leen sin calcular:
- Lazo i→i
- Rulo con pᵢᵢ: quietud. Lazo 1,0 = absorbente (Tema 32).
- Ciclo
- Flechas que vuelven: 0→1→2→0. La cadena puede rotar.
- Fuga
- Flecha que sale sin vuelta: hacia un absorbente o transitorio.
- Puente
- Única flecha entre grupos: cortarla aísla. Anticipo de irreducibilidad.
Diagrama limpio
Estructura visible
Pocas flechas gruesas: ciclos, lazos y fugas a la vista.
Diagrama saturado
Todo con todo
12 flechas finas: mejor leer la matriz. El dibujo no ayuda.
04 · Ejemplos
Diagramas que leerás al vuelo
Entrená el ojo con estos cinco:
- 1Dos nodos con lazos.
0 ⇄ 1 con 0,3 y 0,5: el clásico del Tema 19.
- 2Cola en escalera.
Flechas ±1 con lazos: sube, baja o espera.
- 3Absorbente.
Nodo 2 con solo su lazo 1,0: trampa visible.
- 4Ciclo puro.
0→1→2→0 con 1,0: rotación determinista.
- 5Servidor 3 modos.
Libre ⇄ ocupado, ocupado → caído → libre: ciclo con atajo.
05 · Representación en Python
Del dict con chances al chequeo por nodo
En Python, el diagrama es un dict estado → lista de (destino, p). Sumar por nodo verifica el dibujo antes de publicarlo.
Python en tu navegador. Estos bloques se ejecutan localmente con Pyodide, sin instalar nada. Cambiá una chance y mirá la suma del nodo.
diag = {
0: [(0, 0.7), (1, 0.3)],
1: [(0, 0.5), (1, 0.5)],
}
for i, salidas in diag.items():
print(i, [j for j, p in salidas], "suma:", round(sum(p for _, p in salidas), 9))
Cada nodo lista destinos y chances: es P en formato dibujable. La suma debe dar 1,0.
Detectar absorbentes en el diagrama
Un nodo con solo su lazo 1,0 es absorbente (Tema 32):
diag = {0: [(0, 0.6), (1, 0.4)], 1: [(0, 0.2), (1, 0.8)], 2: [(2, 1.0)]}
print([i for i, s in diag.items() if s == [(i, 1.0)]])
06 · Exploración
Laboratorio: el anillo etiquetado
El mismo anillo 0–1–2–3 de los Temas 22 y 24, ahora con etiquetas: quedarse q (rulo naranja), avanzar f (verde) y retroceder el resto (turquesa). El grosor sigue a la chance y la etiqueta la escribe. Llevá f a 1 y mirá el ciclo puro.
Diagrama vivo 4×4
salidas de cada nodo = 1
Con q 0,40 y f 0,40, cada nodo reparte 0,40/0,40/0,20.
Verde = avanzar, turquesa = retroceder, naranja = quedarse. Flechas bajo 0,05 no se dibujan: son ceros del diagrama.
Preguntas para explorar
- Con q = 0,9, ¿qué etiquetas dominan? ¿Qué le pasa a la movilidad?
- Con q = 0 y f = 1, ¿qué etiquetas quedan? ¿Cuánto suma cada nodo?
- ¿Cuándo desaparece una flecha del dibujo? ¿Desaparece de P?
Ver respuestas sugeridas
- Rulos 0,9: casi quietud, vecinas finas.
- Solo 1,0 hacia adelante: cada nodo suma 1,0 igual (una sola salida).
- Bajo 0,05: se oculta por legibilidad y vale 0 en esta P del anillo.
07 · Comprensión
Confusiones frecuentes
«Flecha gruesa = destino frecuente»
No: es chance dado el origen. Si el origen es raro, el destino no hereda frecuencia.
«Sin etiqueta se entiende igual»
No: sin etiqueta es grafo (posible), no diagrama (cuánto). La etiqueta es el dato.
«Los lazos se omiten por estética»
Nunca: el lazo es la pᵢᵢ y sin él el nodo no suma 1. Rulo siempre dibujado.
«Diagrama lindo = P válida»
Solo si cada nodo suma 1. Sumá etiquetas por nodo antes de publicar.
08 · Práctica guiada
Ejercicios con Python
Ejercicio 1: sumar salidas
Verificá que cada nodo de este diagrama suma 1. ¿Qué nodo falla si cambiás 0,3 por 0,4?
diag = {0: [(0, 0.7), (1, 0.3)], 1: [(0, 0.5), (1, 0.5)]}
for i, s in diag.items():
print(i, round(sum(p for _, p in s), 9))
Ver solución razonada
Ambos dan 1,0. Con 0,4 el nodo 0 sumaría 1,1: diagrama inválido.
Ejercicio 2: leer el ciclo
Sin ejecutar primero: ¿qué dibuja este diagrama? Describilo en palabras.
diag = {0: [(1, 1.0)], 1: [(2, 1.0)], 2: [(0, 1.0)]}
print("nodos:", list(diag))
Ver solución
Un ciclo 0→1→2→0 con chances 1,0: rotación determinista sin lazos.
Ejercicio 3: diagrama desde P
Generá la lista de flechas (i, j, p) desde P filtrando p > 0. ¿Cuántas salen?
Ver una posible respuesta
P = [[0.6, 0.4, 0.0], [0.0, 0.5, 0.5], [0.9, 0.0, 0.1]]
flechas = [(i, j, P[i][j]) for i in range(3) for j in range(3) if P[i][j] > 0]
print(len(flechas), flechas)
Salen 6 flechas: los 3 ceros no se dibujan. Así nacen los diagramas sin discrepancias.
09 · Síntesis
Ideas para recordar
- Diagrama = nodos + flechas etiquetadas con pᵢⱼ.
- Cada nodo suma 1 en sus salidas.
- Lazos, ciclos y fugas se ven antes de calcular.
- En Python: dict de (destino, p) generado desde P.
- Ceros no se dibujan; lazos siempre.
En el próximo tema haremos evolucionar probabilidades: π(n+1) = π(n)·P.