Documentaciónes_estocastica(P, tolerancia)
Nombre
es_estocastica - Verifica si una matriz de transicion es estocastica por filas.
Sinopsis
ok = markov.es_estocastica(P, tolerancia)
Descripcion
Comprueba que cada fila sume aproximadamente 1 y que todas las probabilidades sean no negativas.
Es la verificacion basica previa para trabajar con una cadena de Markov bien formada.
Formula:
Validaciones y casos borde
- Valida que
Psea una matriz cuadrada no vacia. - Valida que
toleranciasea mayor que cero. - Si alguna de esas condiciones falla, emite
ERROR(). - Si la matriz no cumple la condicion estocastica, retorna
FALSO.
Comportamiento
- Verifica primero que la matriz sea cuadrada.
- Rechaza filas con valores menores que
0o mayores que1fuera de tolerancia. - Suma cada fila y comprueba que el resultado sea aproximadamente
1. - Retorna
VERDADEROsi toda la matriz cumple la condicion estocastica.
Funciones API relacionadas
markov.estacionaria()markov.paso()markov.absorbente()
Parámetros
| Parámetro | Tipo | Descripción |
|---|---|---|
| P | MATRIZ | Matriz de transicion o probabilidades. |
| tolerancia | NUMERICO | Tolerancia numerica usada como criterio de validacion. |
Valor de retorno
LOGICO - VERDADERO si todas las filas cumplen la condicion estocastica; FALSO en caso contrario.
Ejemplo
ejemplo.blox
// Cadenas de MARKOV
//
// Problema
//
// Una cadena climática con 2 estados:
// 0 = Soleado
// 1 = Lluvioso
//
// Matriz de transición:
//
// P = [ [0.8, 0.2],
// [0.4, 0.6] ]
//
//
// Distribución inicial:
//
// pi0 = [1, 0]
//
// Objetivo
//
// Calcular la distribución después de 10 días.
// pi1 = pi0 * P <-- dia 1
// pi2 = pi1 * P <-- dia 2
// pi3 = pi2 * P <-- dia 3
// pi4 = pi3 * P <-- dia 4
// ...
INCLUIR "matrices.api"
INCLUIR "markov.api"
FUNCION PRINCIPAL
INICIO "ejemplo_stochastic"
MATRIZ P[2][2]
P[0][0] = 0.8 P[0][1] = 0.2
P[1][0] = 0.4 P[1][1] = 0.6
LOGICO ok
ok = markov.es_estocastica(P, 0.000001)
SI (ok == VERDADERO) ENTONCES
IMPRIMIR ("P es estocastica.")
SINO
IMPRIMIR ("P NO es estocastica.")
FIN_SI
FINAL