El modelo de Markov, o modelado de Markov es una herramienta valiosa para modelar sistemas complejos en los que las probabilidades de transición entre diferentes estados son importantes. Esta vez usaremos estas redes para calcular la disponibilidad de sistemas redundantes, en los que un equipo está funcionando y otro está a la espera para tomar el control si el primero falla.
Esta técnica considerada como avanzada, es muy elegante y nada difícil de aplicar. Ya sabéis que en este blog nos gustan las cosas prácticas, y como no podía ser menos haremos todo el desarrollo con un caso concreto.
Tabla de contenidos
Aplicaciones
En particular, estos cálculos se utilizan con frecuencia en la ingeniería de sistemas para analizar la disponibilidad de sistemas redundantes.
Un sistema redundante se compone de múltiples componentes idénticos que se utilizan para proporcionar una funcionalidad común. En este tipo de sistemas, es esencial calcular la disponibilidad, es decir, la probabilidad de que el sistema esté operativo en cualquier momento dado.
La utilización de redes de Markov permite modelar con precisión los tiempos de inactividad y los tiempos de recuperación de un sistema redundante.
En este post, exploraremos cómo se utiliza el modelado de Markov para calcular la disponibilidad de un sistema real, con números concretos y paso a paso, para que podáis utilizar el mismo método vosotros mismos.
Sistemas redundantes
Puede tratarse de 2 UPS (SAI) en paralelo, o bien 2 bombas de un grupo de presión, dos controladores redundantes, o cualquier otro diseño en el que se pretenda dotar de redundancia.
Nuestro sistema de ejemplo se compone de 2 bombas (Bomba_1 y Bomba_2). En cualquier momento solo una de ellas está en funcionamiento, y la otra queda en reserva para funcionar si fallara la primera.

Diagrama de estado
Nos dibujamos un grafo como el siguiente:

Cada nodo será una probabilidad de que ocurra un suceso de todos los posibles, y estarán conectados por enlaces direccionales con las tasas de fallo o reparación:
P0 = Probabilidad de que ambas bombas estén operativas ( sin fallos que impidan el funcionamiento).
P1 = Probabilidad de que la bomba seleccionada falle.
P2 = Probabilidad de que la bomba en reserva falle cuando se la necesite.
P3 = Probabilidad de que ambas bombas no funcionen.
λ = Tasa de fallo por año de una bomba (nº de fallos al año)
μ = Tasa de reparación en un año (número de horas en un año / tiempo de reparación)
Si os fijáis, toda conexión desde el estado P0 (todo correcto) hasta cualquiera de los otros estados, supone un fallo, por lo tanto usaremos el peso λ (tasa de fallo) a ese enlace. Igual pasa desde P1 a P3 y desde P2 a P3.
En cambio, cualquier enlace que parta de un nodo con fallo a otro con menos fallo supondrá una reparación y por tanto usaremos μ (tasa de reparación) como peso.
En el caso especial desde P0 (ambas bombas en buen estado) a P3 (las dos bombas en fallo), deberemos asignar un peso de λ² por las reglas de la probabilidad, al ocurrir los 2 fallos simultáneamente.
Los datos sobre tasas de fallo y reparación
Los datos sobre tasas de fallo ( λ ) podemos obtenerlos del propio fabricante, de nuestra propia experiencia, o bien de bases de datos sobre índices de fiabilidad.
En el caso de la tasa de reparación ( μ ) dependerá del servicio que usemos (propio, externo, fabricante, sustitución, …), pero siempre podremos estimar un tiempo de reparación.
Nuestro sistema de ecuaciones
Para montar nuestras ecuaciones a partir del modelo de Markov, recorreremos cada nodo, asignando un signo negativo para aquellas conexión que salgan del nodo, y positivo en aquellas conexiones entrantes al mismo. En cada caso multiplicaremos el nodo origen por el peso del enlace con el nodo que estamos recorriendo. Cada ecuación la igualamos a 0.
Esto se ve mejor con el ejemplo:
Por ejemplo, para el nodo P0 tendremos la siguiente ecuación:
-P0⋅(λ + λ + λ²) + P1⋅μ + P2⋅μ = 0 (Ec. 1)
Para el nodo P1 tendremos:
-P1⋅(λ + μ) + P0⋅λ + P3⋅ μ = 0 (Ec. 2)
Para el nodo P2 nos saldría:
-P2⋅(λ + μ) + P0⋅λ + P3⋅ μ = 0 (Ec. 3)
Y para el nodo P3 queda:
-P3⋅2μ + P0⋅λ² + P1⋅λ + P2⋅λ = 0 (Ec. 4)
Y nos queda una última ecuación, porque al tener cubiertas todas las probabilidades, la suma de ellas ha de ser 1:
P0 + P1 + P2 + P3 = 1 (Ec. 5)
La solución
Y ahora toca resolver tanta ecuación.
Si agrupamos la Ec. 1 y la Ec. 5 (sumándolas) nos quedarán 4 ecuaciones con 4 incógnitas.
En este punto, nos queda este bonito sistema, que solo dependerá de λ + μ:

Vamos a ponerle valores a los parámetros:
λ = 2 (fallos al año)
μ = 8760/6 = 1460 (suponiendo un tiempo medio de reparación de 6 horas)
Sustituyendo estos 2 valores, las ecuaciones a resolver son las siguientes:

Lo que queda es trivial para obtener P0, P1, P2 y P3 con cualquier paquete de matemáticas, con Python , con Excel, o a mano…. No nos resistimos a resolverlo un poco a mano, y así repasamos:
Si llamamos a la primera matriz, matriz P, se cumple que:

Y operando matricialmente:

Aquí confesamos que hemos realizado la matriz inversa con ayuda, donde resaltamos la solución:

Por tanto, la probabilidad de que ambos equipos (el seleccionado y el backup) estén
operativos (o lo que es equivalente, el porcentaje de tiempo que están operativos) es
de un 99.3%.
La probabilidad de que falle la bomba seleccionada es igual a la que falle la de backup, y es de
un 0.27%.
Por último, la probabilidad de que fallen los dos controladores al mismo
tiempo es de un 0.13%.
Conclusiones
¿Que para qué sirve todo esto en la práctica? Buena pregunta.
Para empezar, solo podremos usar esta técnica cuando los fallos sean aleatorios e independientes, y sobre todo si dichos fallos siguen una distribución exponencial. Por suerte, los sistemas suelen cuadrar muy bien con estos requisitos.
Teniendo esto en cuenta, el usar un modelado de Markov puede servir para hablar con propiedad, para presentar datos concretos y para tomar decisiones:
¿Cuánto vale una bomba de repuesto? ¿en cuánto aumentamos la fibilidad del sistema?. A la primera pregunta os puede responder el vendedor. A la segunda ahora podemos responderla nosotros.
- Uno de los sensores más baratos (el Mi Motion Sensor de Xiaomi) también es uno de los más fáciles de instalar con Home Assistant.
- Aliexpress tiene los componentes más baratos para hacernos con un ejército de dispositivos inteligentes. Nuestra casa domótica a precios asequibles
- Cada vez más conocidos para usos profesionales, Influxdb y Grafana se integran perfectamente en Home Assistant.
- Superforecasters: Maestros de la Predicción y la Toma de Decisiones
- Home Assistant ha encontrado un aliado en AppDaemon para soluciones avanzadas de automatización, y avanzado no significa difícil.