01 · Punto de partida
Cuando el tiempo avanza de a un paso
Muchos sistemas se observan por etapas: cada minuto, cada día, cada cliente. Entre etapas nada cambia; en cada etapa todo puede cambiar. Ese es el tiempo discreto: n = 0, 1, 2…
La ventaja para programar es total: un proceso discreto es un bucle. Con el estado inicial X₀ y la regla de a un paso se genera toda la trayectoria.
- ¿Cuál es la unidad del paso: minuto, día, evento?
- ¿Qué vale X₀ y qué regla produce Xₙ₊₁ desde Xₙ?
- ¿Hasta qué horizonte N simulamos?
- ¿La regla cambia con n o es siempre la misma?
02 · Definición
¿Qué es un proceso discreto?
Todo proceso discreto combina tres piezas:
Inicio X₀
La distribución inicial: dónde empieza cada trayectoria (fijo o aleatorio).
Regla de paso
Cómo obtener Xₙ₊₁ desde Xₙ (y quizás n): suma un incremento, aplica P, respeta bordes.
Horizonte N
Cuántos pasos simulamos. Corto manda X₀; largo manda la regla.
Si f no depende de n, el proceso es homogéneo: la misma moneda en cada paso. Será el caso de casi todo el curso (Poisson homogéneo, Markov homogénea).
| Aspecto | Discreto (este tema) | Continuo (Tema 6) |
|---|---|---|
| Índice | n = 0, 1, 2… pasos contados | t ≥ 0 real, cambios en cualquier instante |
| Simulación | Bucle for n in range(N) | Se generan tiempos de salto (exponenciales) |
| Ejemplo | Clientes cada minuto, stock cada día | Arribos segundo a segundo, N(t) |
03 · Anatomía
Recursión, homogeneidad y horizonte
Tres distinciones ordenan todos los procesos discretos del curso:
- Recursión
- Xₙ₊₁ se calcula desde Xₙ. El bucle es la definición ejecutable del proceso.
- Homogeneidad
- La regla no cambia con n: misma p, misma P. Si cambia (picos horarios), es no homogéneo. (Tema 14)
- Horizonte N
- N chico: importa X₀. N grande: importa el régimen (deriva, equilibrio, absorción).
- Paso unitario
- Elegir bien la unidad: ni tan fina que sobre cómputo ni tan gruesa que oculte cambios.
Regla homogénea
Siempre igual
Misma p o P en cada paso. Fácil de simular y de analizar a largo plazo.
Regla no homogénea
Cambia con n
p(n) por hora del día. Más realista, pero exige calendario de parámetros.
04 · Ejemplos
Procesos discretos que programarás
Todos tienen la forma X₀ + bucle. Solo cambia la regla de a un paso:
- 1Bernoulli por intento.
Xₙ ∈ {0, 1} con P(1) = p. La base de todo conteo discreto.
- 2Caminata ±1.
Xₙ₊₁ = Xₙ + 1 con p, −1 si no. Deriva (2p−1)·N.
- 3Cola por minutos.
Xₙ₊₁ = máx(0, Xₙ + Aₙ − Sₙ). Bordes en 0.
- 4Inventario diario.
Xₙ₊₁ = Xₙ − demandaₙ + pedidoₙ. Paso = 1 día.
- 5Clima por días.
Xₙ ∈ {sol, lluvia} con matriz P. Anticipo de Markov.
05 · Representación en Python
Un proceso discreto es un for
En Python, el tiempo discreto es range(N) y el estado es una variable que se actualiza. La lista historia guarda la trayectoria para graficar y analizar.
Python en tu navegador. Estos bloques se ejecutan localmente con Pyodide, sin instalar nada. Cambiá N y p y observá el horizonte.
import random
def proceso_discreto(x0, N, p=0.5, semilla=7):
# X(n+1) = X(n) + 1 con prob. p, -1 si no.
random.seed(semilla)
x, historia = x0, [x0]
for _ in range(N):
x = x + 1 if random.random() < p else x - 1
historia.append(x)
return historia
print(proceso_discreto(0, 10, p=0.5))
Probá N = 100: la lista crece a 101 valores (X₀ más N pasos). El horizonte es el largo menos uno.
Separar regla y bucle
La buena práctica es aislar paso() del bucle: así se prueba la regla sola y se reutiliza en todos los experimentos:
import random
def paso(x, p=0.5):
return x + 1 if random.random() < p else x - 1
def simular(x0, N, p=0.5, semilla=7):
random.seed(semilla)
x, hist = x0, [x0]
for _ in range(N):
x = paso(x, p)
hist.append(x)
return hist
print(simular(5, 6, p=1.0))
06 · Exploración
Laboratorio: el horizonte N manda a largo plazo
Caminata ±1. Movete el horizonte N: con N chico las trayectorias apenas se separan de X₀; con N grande aparece la deriva (2p−1)·N. La línea blanca punteada es la teoría; la sólida, la media simulada.
Pasos, horizonte y deriva
Xₙ₊₁ = Xₙ ± 1 · media(N) ≈ (2p−1)·N
Con p 0,60 y N 40, la teoría predice 8,00.
Cada línea es una sucesión X₀…Xₙ. Alargar N estira el eje y separa la media del inicio: el corto plazo recuerda X₀, el largo plazo revela la regla.
Preguntas para explorar
- Con p = 0,5 y N = 10, ¿la media simulada coincide con la teoría? ¿Y con 8 réplicas?
- Con p = 0,6, duplicá N de 20 a 40. ¿La teoría se duplica? ¿La simulada más o menos?
- ¿Qué pasa si p = 1? ¿Sigue siendo aleatorio el proceso?
Ver respuestas sugeridas
- La teoría es 0, pero con 8 réplicas la media fluctúa (±3). Pocas réplicas ≠ teoría: falta muestra.
- Sí: de 4 a 8. La simulada también, salvo ruido. La deriva escala lineal con N.
- No: siempre +1, trayectoria 0, 1, 2… Es el límite determinístico: útil para depurar el bucle.
07 · Comprensión
Confusiones frecuentes
«N es la cantidad de valores»
N es la cantidad de pasos; la historia tiene N+1 valores (incluye X₀). Error típico de índices.
«Discreto significa finito»
Discreto habla del tiempo (pasos), no del espacio. Hay procesos discretos con S infinito (cola sin tope).
«El bucle es solo implementación»
El bucle es el modelo discreto ejecutado: X₀ + regla + N. Cambiar el for cambia el proceso.
«Más pasos siempre es mejor»
Más N muestra el largo plazo pero acumula varianza y cómputo. Elegí N según la pregunta, no por ambición.
08 · Práctica guiada
Ejercicios con Python
Ejercicio 1: contar pasos y valores
Ejecutá y verificá la relación largo = N + 1. Luego cambiá N a 3 y anticipá el largo.
def simular(x0, N):
x, hist = x0, [x0]
for n in range(N):
x = x + 1 # p = 1 para verificar
hist.append(x)
return hist
h = simular(0, 5)
print(h, "largo:", len(h))
Ver solución razonada
Con N = 5 salen 6 valores. Con N = 3 saldrían 4: el índice llega a X₃. El range(N) da los pasos; la lista suma X₀.
Ejercicio 2: teoría vs simulación
Sin ejecutar primero: con p = 0,75 y N = 20, ¿qué media predice la teoría? Comprobala con réplicas.
import random
random.seed(2)
p, N, R = 0.75, 20, 4000
tot = 0
for _ in range(R):
x = 0
for _ in range(N):
x += 1 if random.random() < p else -1
tot += x
print("teórica:", (2*p - 1) * N)
print("simulada:", round(tot / R, 2))
Ver solución
La teórica es 0,5 × 20 = 10. La simulada cae cerca (9,5–10,5): coincide dentro del ruido muestral.
Ejercicio 3: escribir paso() reutilizable
Generalizá el paso con deriva d: Xₙ₊₁ = Xₙ + d + ruido ±1. Probalo con d = 0 y d = 0,5.
Ver una posible respuesta
import random
def paso_con_deriva(x, d=0.0, p=0.5):
ruido = 1 if random.random() < p else -1
return x + d + ruido
random.seed(4)
print([paso_con_deriva(0, d=0.0) for _ in range(5)])
print([paso_con_deriva(0, d=0.5) for _ in range(5)])
Con d = 0 el paso vale ±1; con d = 0,5 vale 1,5 o −0,5. Separar deriva y ruido aclara el modelo y anticipa la media (2p−1+d)·N.
09 · Síntesis
Ideas para recordar
- Discreto = pasos n con regla Xₙ₊₁ = f(Xₙ, azar).
- Todo discreto es X₀ + bucle hasta N: inicio, regla y horizonte.
- Homogéneo = misma regla cada paso; es el caso base del curso.
- La historia tiene N+1 valores para N pasos.
- En Python:
paso()aislado +for n in range(N).
En el próximo tema veremos los procesos en tiempo continuo: cuando los cambios pueden ocurrir en cualquier instante t ≥ 0.