Simulaciones en MATLAB de Las Cadenas de Markov
Short Description
Download Simulaciones en MATLAB de Las Cadenas de Markov...
Description
Simulaciones en MATLAB de las Cadenas de Markov
Ejercicio # 1: En Venezuela existen 3 operadores principales de telefonía móvil como lo son: Movilnet, movistar y digitel. Todas estas operadoras representan los estados. Los porcentajes estimados por cada operador en el mercado actual indican que movilnet tiene el 0.4, movistar posee el 0.25 y digitel el 0.35. Todo esto indica el estado inicial.
Se tiene la siguiente información un usuario actualmente de movilnet tiene una probabilidad de permanecer en movilnet de 0.60, de cambiarse a movistar 0.2 y de pasar a digitel de 0.2; si en la actualidad un usuario el cliente de movistar tiene una probabilidad de mantenerse en la misma del 0.5, de que esta persona se cambie a movilnet 0.3 y que se pase a digitel 0.2; si el usuario es cliente en la actualidad de digitel la probabilidad de que permanezca en digitel es de 0.4 de que se cambie a movilnet de 0.3 y de que se cambie a movistar 0.3. Cabe destacar que el estudio se hace a lo largo de un semestre. Partiendo de esta información podemos elaborar la matriz de transición. La suma de las probabilidades de cada estado debe ser igual a 1.
Matriz de Transición E1 Movilnet E2 Movistar E3 Digitel
Movilnet 0.6 0.3 0.3
Movistar 0.2 0.5 0.3
( )
Digitel 0.2 0.2 0.4
=1 =1 =1
Se requiere estimar los estados de los siguientes pasos o tiempos.
Aplicando Código en MATLAB %Generación de una secuencia de prueba TRANS = [.6 .2 .2; .3 .5 .2; .3 .3 .4]; EMIS = [0.4 0.25 0.35;0 0 0;0 0 0]; [seq,states] = hmmgenerate(1000,TRANS,EMIS); %Estimación de la secuencia de estado [estimateTR,estimateE] = hmmestimate(seq,states); %Estima el numero de secuencias de estados likelystates = hmmviterbi(seq,TRANS,EMIS); %disp(estimateTR); %disp(estimateE); [TRANS_EST, EMIS_EST] = hmmestimate(seq,states);%Estima hmmestimate(seq,states);%Estima el numero de secuencias de estados disp(TRANS_EST) disp(EMIS_EST) TRANS_GUESS = [.6 .2 .2; .3 .5 .2; .3 .3 .4]; EMIS_GUESS = [0.4 0.25 0.35;0 0 0;0 0 0]; [TRANS_EST2, EMIS_EST2] = hmmtrain(seq, TRANS_GUESS, EMIS_GUESS); %Estima el numero de secuencias de estados disp(TRANS_EST2) disp(EMIS_EST2) maxiter=100; tol=0.5; hmmtrain(seq,TRANS_GUESS,EMIS_GUESS,'maxiterations' hmmtrain(seq,TRANS_GUESS,EMIS_GUESS, 'maxiterations',maxiter) ,maxiter) hmmtrain(seq, TRANS_GUESS, EMIS_GUESS, 'tolerance' 'tolerance', , tol) %Estimación de probabilidades a posteriori del Estado [PSTATES,logpseq] = hmmdecode(seq,TRANS,EMIS); disp (PSTATES) disp (logpseq) %Cambio de la distribución inicial del Estado TRANS_HAT = [0 p; zeros(size(TRANS,1),1) TRANS]; EMIS_HAT = [zeros(1,size(EMIS,2)); EMIS];
Comportamiento de la Cadena de Markov en Función del Tiempo Ei=[.4, .25, .35]; %Estado Inicial T=[.6, .2, .2; .3 .5 .2; .3, .3, .4]; % Matriz de Transicion x=Ei*T^6; disp(Ei) % x = 0.4286
0.3214
0.2500
plot (x) title('Comportamiento title('Comportamiento de la Cadena de Markov') Markov') xlabel('Tiempo xlabel('Tiempo (t)') (t)') ylabel('Probabilidad ylabel('Probabilidad (P)') (P)')
Comportamiento de la Cadena de Markov 0.44
0.42
0.4
0.38
) P ( d a d i l i b a b o r P
0.36
0.34
0.32
0.3
0.28
0.26
0.24
1
1.2
1 .4
1.6
1.8
2 Tiempo (t)
2.2
2.4
2.6
2.8
3
Ejercicio # 2:
Suponga que una una aeronave tiene 2 opciones (estados) para aterrizar con la ayuda ayuda de los sistemas de la radionavegación aérea en el Aeropuerto Internacional de Barquisimeto, la primera de las opciones es el procedimiento ILS y la segunda es el procedimiento DVOR. El modelo de Markov utiliza:
La probabilidad de que utilice el procedimiento ILS es 0.95 y la probabilidad de cola es 0.05.
La probabilidad de que utilice el procedimiento DVOR es 0.90 y la probabilidad de cola es 0.10.
La probabilidad que utilice uno de los procedimientos es 0.5.
Dado a que la aeronave puede aterrizar por la 090 o por la 027 de la pista de aterrizaje, la probabilidad es 0.5.
Dada una secuencia de emisiones, ¿Cuál es la ruta de estado más probable?
Dada la secuencia de emisiones, ¿Cómo se puede estimar la probabilidad de transición y emisión del modelo?
¿Cuál es la probabilidad posterior generada por la secuencia dada?
¿Cuál es la probabilidad posterior de que el modelo esta en un estado particular, en cualquier punto de la secuencia?
Matriz de Transición
Aplicando Código en MATLAB %Generación de una secuencia de prueba TRANS = [.95 .05; .9 .1]; EMIS = [.5 .5; .5 .5]; [seq,states] = hmmgenerate(1000,TRANS,EMIS); %Estimación de la secuencia de estado [estimateTR,estimateE] = hmmestimate(seq,states); %Estima el numero de secuencias de estados likelystates = hmmviterbi(seq,TRANS,EMIS); disp(estimateTR); disp(estimateE); [TRANS_EST, EMIS_EST] = hmmestimate(seq,states);%Estima hmmestimate(seq,states);%Estima el numero de secuencias de estados disp(TRANS_EST) disp(EMIS_EST) TRANS_GUESS = [.95 .05; .9 .1]; EMIS_GUESS = [.5 .5; .5 .5]; [TRANS_EST2, EMIS_EST2] = hmmtrain(seq, TRANS_GUESS, EMIS_GUESS); %Estima el numero de secuencias de estados disp(TRANS_EST2) disp(EMIS_EST2) maxiter=100; tol=0.5; hmmtrain(seq,TRANS_GUESS,EMIS_GUESS,'maxiterations' hmmtrain(seq,TRANS_GUESS,EMIS_GUESS, 'maxiterations',maxiter) ,maxiter) hmmtrain(seq, TRANS_GUESS, EMIS_GUESS, 'tolerance' 'tolerance', , tol) %Estimación de probabilidades a posteriori del Estado [PSTATES,logpseq] = hmmdecode(seq,TRANS,EMIS); disp (PSTATES) disp (logpseq) %Cambio de la distribución inicial del Estado TRANS_HAT = [0 p; zeros(size(TRANS,1),1) TRANS]; EMIS_HAT = [zeros(1,size(EMIS,2)); EMIS];
Comportamiento de la Cadena de Markov en Función del Tiempo Ei=[.5, .5]; %Estado Inicial T=[.95, .05; .90 .10]; % Matriz de Transicion x=Ei*T^2; disp(x)
% x = 0.9463
plot (x)
0.0538
title('Comportamiento title('Comportamiento de la Cadena de Markov') Markov') xlabel('Tiempo xlabel('Tiempo (t)') (t)') ylabel('Probabilidad ylabel('Probabilidad (P)') (P)')
Comportamiento de la Cadena de Markov 1
0.9
0.8
0.7
0.6
) P ( d a d i l 0.5 i b a b o r P
0.4
0.3
0.2
0.1
0
1
1.1
1.2
1.3
1.4
1. 5 Tiempo (t)
1.6
1.7
1.8
1.9
2
Ejercicio # 3:
Considere que el departamento de electrónica clasifica las fallas de un RADAR primario de vigilancia trimestralmente a nivel de potencia, transmisión, recepción y el grupo de antenas. Las probabilidades de que una de las secciones se averíe son:
Potencia 0.1.
Transmisión 0.4.
Recepción 0.5.
Matriz de Transición
E1 Potencia E2 Transmisión Transmisió n E3 Recepción
Potencia 0.1 0.3 0.4
Transmisión Transmisió n Recepción 0.3 0.6 0.4 0.3 0.1 0.5
=1 =1 =1
( ) Se requiere estimar los estados de los siguientes pasos o tiempos.
Aplican Código en MATLAB %Generación de una secuencia de prueba TRANS = [.1 .3 .6; .3 .4 .3; .4 .1 .5]; EMIS = [.33 .33 .33; .1 .4 .5; .0 .0 .0]; [seq,states] = hmmgenerate(1000,TRANS,EMIS); %Estimación de la secuencia de estado [estimateTR,estimateE] = hmmestimate(seq,states); %Estima el numero de secuencias de estados likelystates = hmmviterbi(seq,TRANS,EMIS); disp(estimateTR); disp(estimateE); [TRANS_EST, EMIS_EST] = hmmestimate(seq,states);%Estima hmmestimate(seq,states);%Estima el numero de secuencias de estados disp(TRANS_EST)
disp(EMIS_EST) TRANS_GUESS = [.1 .3 .6; .3 .4 .3; .4 .1 .5]; EMIS_GUESS = [.33 .33 .33; .1 .4 .5; .0 .0 .0]; [TRANS_EST2, EMIS_EST2] = hmmtrain(seq, TRANS_GUESS, EMIS_GUESS); %Estima el numero de secuencias de estados disp(TRANS_EST2) disp(EMIS_EST2) maxiter=100; tol=0.5; hmmtrain(seq,TRANS_GUESS,EMIS_GUESS,'maxiterations' hmmtrain(seq,TRANS_GUESS,EMIS_GUESS, 'maxiterations',maxiter) ,maxiter) hmmtrain(seq, TRANS_GUESS, EMIS_GUESS, 'tolerance' 'tolerance', , tol) %Estimación de probabilidades a posteriori del Estado [PSTATES,logpseq] = hmmdecode(seq,TRANS,EMIS); disp (PSTATES) disp (logpseq) %Cambio de la distribución inicial del Estado TRANS_HAT = [0 p; zeros(size(TRANS,1),1) TRANS]; EMIS_HAT = [zeros(1,size(EMIS,2)); EMIS];
Comportamiento de la Cadena de Markov en Función del Tiempo Ei=[.4, .25, .35]; %Estado Inicial T=[.1, .3, .6; .3 .4 .3; .4, .1, .5]; % Matriz de Transicion x=Ei*T^3; disp(x) % x = 0.2879
0.2279
0.4843
plot (x) title('Comportamiento title('Comportamiento de la Cadena de Markov') Markov') xlabel('Tiempo xlabel('Tiempo (t)') (t)') ylabel('Probabilidad ylabel('Probabilidad (P)') (P)')
Comportamiento de la Cadena de Markov 0.5
0.45
0.4 ) P (
d a d i l i b a b o r P
0.35
0.3
0.25
0.2
1
1. 2
1. 4
1. 6
1. 8
2 2. 2 Tiempo (t)
2. 4
2. 6
2. 8
3
View more...
Comments