PMF – Teclado Qwerty

Referencia: Teclado Qwerty Wikipedia

Uso del teclado QWERTY

El nombre del teclado QWERTY proviene de las primeras seis letras de su fila superior, fue diseñado y patentado por Christopher Sholes en 1868 y vendido a Remington en 1873.

La distribución QWERTY se diseñó con objetivo de separar las letras más usadas de la zona central del teclado, para evitar que se atascaran las máquinas de escribir de primera generación. Actualmente, ésta propiedad no es más requerida, sin embargo se ha heredado la distribución en los teclados de computadora.

A partir de la frecuencia de uso de las letras del alfabeto, se requiere conocer la frecuencia de uso de cada fila del teclado. Los valores de frecuencia para cada letra se encuentran en el archivo: usoletras.txt que por cada línea registra la letra y frecuencia relativa separadas por una coma ‘,’.

archivo: usoletras.txt:
a, 0.11422682511 
b, 0.0118959769969 
c, 0.0464006717728 
d, 0.0543525280541 
...

Algoritmo en Python

# Analiza teclado QWERTY
# Datos desde Archivo 'usoletras.txt'
import numpy as np

# Ingreso
narchivo = input('Nombre del archivo:')
veces    = []
archivo  = open(narchivo,'r')
linea    = archivo.readline()
while not(linea == ''):
    partes = linea.split(',')
    letra  = partes[0]
    frecuencia = float(partes[1])
    veces.append([letra,frecuencia])
    linea = archivo.readline()
archivo.close()

# PROCEDIMIENTO
superior = 'qwertyuiop'
media    = 'asdfghjklñ'
inferior = 'zxcvbnm'
k = len(veces)
usofila = np.zeros(3,dtype=float)
for i in range(0,len(veces),1):
    if (veces[i][0] in superior):
        usofila[0] = usofila[0]+veces[i][1]
    if (veces[i][0] in media):
        usofila[1] = usofila[1]+veces[i][1]
    if (veces[i][0] in inferior):
        usofila[2] = usofila[2]+veces[i][1]

# SALIDA
print(usofila)

resultado:

[ 0.48999975  0.32815084  0.18184941]

La gráfica para pmf se obtiene al añadir las instrucciones:

# GRAFICA
% matplotlib inline
import matplotlib.pyplot as plt
plt.stem([0,1,2],usofila)
plt.title('PMF filas teclado QWERTY')
plt.xlabel('fila superior, media e inferior')
plt.show()

Tarea: En cada caso, realice la gráfica de funciones de probabilidad de masa (pmf) y la función de probabilidades acumulada (cdf)

  • Encuentre la frecuencia de uso de cada mano, presente la división propuesta de el teclado en dos partes: izquierda y derecha.
  • Realice el ejercicio para determinar la frecuencia de uso de cada dedo de cada mano. Presente un modelo gráfico de cada tecla, para mostrar de mejor forma la medida a obtener
  • con los resultados de éste ejercicio, considere llenar la siguiente tabla:
    mano izquierda mano derecha total fila
    superior
    media
    inferior
    total mano

PMF – Alfabeto

Referencia: Ross 2.2 p25, Telex, TTY o teletipo(Wikipedia)

Funciones de probabilidad de masa para alfabeto

Para el «TELEX», «TTY», «teletype» o sistema de tranmisión/recepción de mensajes de texto mecanografiados, al desconocer el contenido del mensaje se podría considerar que cada letra presenta un comportamiento aleatorio. Se puede intuir que hay letras que son poco comunes como ‘x’ y otras muy comunes como ‘e’.

Para el modelo se requiere estimar función de probabilidad de masa (pmf), tomando como base solo el alfabeto incluyendo la letra ‘ñ’, sin discriminar mayúsculas y minúsculas.

Para un ensayo, se usaría un texto con una cantidad considerable de letras, como por ejemplo una obra literaria.

Por ejemplo: ‘elaguacate_Letra.txt

Referencia: https://achiras.net.ec/el-aguacate-un-pasillo-ecuatoriano-sin-tiempo/

Para procesar el texto se usa como entrada un archivo en formato .txt, analizando por línea, por símbolo y contando las veces que aparece cada letra del alfabeto. La frecuencia relativa de cada letra respecto al total de letras, permitirá visualizar la forma de la función probabilidad de masa (pmf) para el alfabeto.

Nota: Considere solo el total de letras, no el total de símbolos (no incluye «,;.!?» etc.)

Algoritmo en Python

# procesar un archivo de texto
# Determinar la función de probabilidad de masa
# para las letras del alfabeto(incluye ñ)
import numpy as np

# INGRESO
# archivo=input('archivo a leer.txt: ')
nombrearchivo='elaguacate_Letra.txt'

# PROCEDIMIENTO
alfabeto='abcdefghijklmnñopqrstuvwxyz'
k=len(alfabeto)
veces=np.zeros(k,dtype=int)
total=0
# procesa el archivo
archivo = open(nombrearchivo,'r')
unalinea = archivo.readline()
while not(unalinea==''):
    n=len(unalinea)
    unalinea = unalinea.strip('\n')
    unalinea = unalinea.lower()
    m=len(unalinea)
    for j in range(0,m,1):
        unsimbolo=unalinea[j]
        donde = alfabeto.find(unsimbolo)
        if (donde>=0): #Si no encuentra es negativo
            veces[donde]=veces[donde]+1
            total=total+1
    unalinea = archivo.readline()
archivo.close()

frelativa=veces/total
alfa=np.arange(0,len(alfabeto))

# SALIDA
print('Letras contadas: ', total)
print('i,letra,veces,frelativa')
for i in range(0,len(alfabeto),1):
    print(i, alfabeto[i],veces[i], frelativa[i])

el resultado obtenido es:

Letras contadas:  253
i,letra,veces,frelativa
0 a 25 0.098814229249
1 b 1 0.00395256916996
2 c 5 0.0197628458498
3 d 7 0.0276679841897
4 e 25 0.098814229249
5 f 4 0.0158102766798
6 g 0 0.0
7 h 2 0.00790513833992
8 i 22 0.0869565217391
9 j 1 0.00395256916996
10 k 0 0.0
11 l 15 0.0592885375494
12 m 15 0.0592885375494
13 n 20 0.0790513833992
14 ñ 0 0.0
15 o 24 0.0948616600791
16 p 4 0.0158102766798
17 q 3 0.0118577075099
18 r 16 0.0632411067194
19 s 21 0.0830039525692
20 t 16 0.0632411067194
21 u 16 0.0632411067194
22 v 3 0.0118577075099
23 w 0 0.0
24 x 0 0.0
25 y 7 0.0276679841897
26 z 1 0.00395256916996

para la gráfica se añade al algoritmo:

# GRAFICA
% matplotlib inline
import matplotlib.pyplot as plt
plt.stem(alfa,frelativa)
plt.title('PMF alfabeto')
plt.xlabel(alfabeto)
plt.show()


otro experimento realizado con:
Poe, Edgar Allan. Eureka. Vol. 13. EDAF, 2006.

tiene el siguiente resultado:

Letras contadas:  78598
i,letra,veces,frelativa
0 a 8978 0.11422682511
1 b 935 0.0118959769969
2 c 3647 0.0464006717728
3 d 4272 0.0543525280541
4 e 10455 0.133018651874
5 f 658 0.00837171429298
6 g 818 0.010407389501
7 h 632 0.00804091707168
8 i 5792 0.0736914425303
9 j 161 0.00204839817807
10 k 36 0.000458026921805
11 l 4203 0.0534746431207
12 m 2541 0.0323290668974
13 n 6126 0.0779409145271
14 ñ 46 0.000585256622306
15 o 6725 0.0855619735871
16 p 2271 0.0288938649838
17 q 692 0.00880429527469
18 r 4899 0.0623298302756
19 s 5988 0.0761851446602
20 t 3792 0.0482455024301
21 u 3362 0.0427746253085
22 v 647 0.00823176162243
23 w 34 0.000432580981704
24 x 177 0.00225196569887
25 y 491 0.00624697829461
26 z 220 0.00279905341103

Será necesario que realizar el experimento muchas veces para tener un comportamiento más general, se propone realizar al estudiante su experimento con otros textos.

Con los resultados, se requiere:

  1. Realizar la pmf para vocales
  2. Realizar la pmf para consonantes
  3. determine las letras con menor probabilidad de cada grupo
  4. escriba alguna recomendación para mejorar el experimento
  5. escriba al menos una conlusión

Considere lo siguiente:

Si en una transmisión de texto, por ruido en el canal se cambian aleatoriamente algunos caracteres,

  • ¿Cuáles cambios serían los que afectan menos al mensaje?
  • ¿Cuáles cambios serían los que afectan más al mensaje?

En caso de presentar el resultado de frecuencias relativas en un archivo:

# Archivo
narchivo='usoletras.txt'
archivo=open(narchivo,'w')
for i in range(0,k,1):
    linea=alfabeto[i]+','+str(frelativa[i])+'\n'
    archivo.write(linea)
archivo.close()

s1Eva_IT2017_T3 Call Center Operadora y Dos Técnicos

1ra Evaluación I Termino 2017 Tema 3.Soluciones propuestas

Tema 3
usamos dos dígitos para representar (operadora,tecnicos) en cantidades de ocupado=0,1,2

Los estados de operadora libre serán: (00),(01),(02)
Los estados de operadora ocupada serán: (10),(11),(12)

Diagrama de Transición

Ecuaciones de Balanceo

λ P00 = μT P01T + λ) P01 = 2 μT P02 + μR P10
(2 μT + λ) P02 = μR P11 + μR P12
μR P10 = λ P00 + μT P11R + μT) P11 = λ P01 +  2 μT P12R + 2 μT) P12 = λ P02

P00 + P01 + P02 + P10 + P11+  P12 = 1

λ = 1/10, μR = 1/3, μT =1/15

reemplazando

1/10 P00 = 1/15 P01
(1/15 + 1/10) P01 = 2 (1/15) P02 + 1/3 P10
(2 (1/15) + 1/10) P02 = 1/3 P11 + 1/3 P12
1/3 P10 = 1/10 P00 + 1/15 P11
(1/3 + 1/15)P11 = 1/10 P01 +  2 (1/15) P12
(1/3 + 2 (1/15)) P12 = 1/10 P02

P00 + P01 + P02 + P10 + P11 + P12 = 1

reordenando para hacer la matriz que resuelve el sistema de ecuaciones:

1/10 P00 - 1/15 P01 = 0
    (1/15 + 1/10) P01 - 2 (1/15) P02 - 1/3 P10 = 0
(2 (1/15) + 1/10) P02 - 1/3 P11 - 1/3 P12 = 0
1/10 P00  - 1/3 P10 + 1/15 P11= 0
             1/10 P01 -  (1/3+1/15) P11 +  2 (1/15) P12 = 0
             1/10 P02 - (1/3 + 2 (1/15)) P12 = 0

P00 + P01 + P02 + P10 + P11 + P12 = 1

Resolver usando matrices, en python:

import numpy as np
A=np.array([
    [1/10,        -1/15,        0,   0,   0,   0],
    [   0,(1/15 + 1/10),    -2/15,-1/3,   0,   0],
    [   0,            0,2/15+1/10,   0,-1/3,-1/3],
    [1/10,            0,        0,-1/3,1/15,   0],
    [   0,         1/10,        0,   0,-(1/3+1/15),2/15],
    [   1,            1,        1,   1,   1,   1]
    ])

# Sustituyendo la ultima ecuación por la de suma de probabilidades,
# resolviendo por matrices y usando el vector de ceros excepto el último
k=len(A)
B=np.zeros(k,dtype=int)
B[-1]=1
Pncalc=np.linalg.solve(A,B)
print('A= ')
print(A)
print('B=',B)
print('Solucion P:')
print(Pncalc)
A= 
[[ 0.1     -0.0666667  0.        0.         0.         0.       ]
 [ 0.       0.1666667 -0.133333 -0.3333333  0.         0.       ]
 [ 0.       0.         0.233333  0.        -0.3333333 -0.3333333]
 [ 0.1      0.         0.       -0.3333333  0.0666667  0.       ]
 [ 0.       0.1        0.        0.        -0.4        0.1333333]
 [ 1.       1.         1.        1.         1.         1.       ]]
B= [0 0 0 0 0 1]
Solución P:
[ 0.2259007 0.3388510 0.2044791 0.0876339 0.099318  0.0438169]

e) Encuentre la probabilidad que los técnicos estén ocupados.

Ocupados al menos uno e independiente si esta o no ocupada la recepcionista

P01+P02+P11+P12 =

 0.33885102 + 0.20447907 + 0.0993184 + 0.04381694 = 
 0.68646543

f) ¿Cuál es la probabilidad que una llamada se pierda en la recepción?

para ello la operadora tiene que estar ocupada

P10 + P11 + P12 =

0.08763389 + 0.0993184  + 0.04381694 =
0.23076923000000002

g) ¿Cuál es la tasa de clientes satisfechos? (salida del sistema, throughput)

es la tasa de clientes que la operadora logra transferir a los técnicos:

P10 μR + P11 μR =

0.08763389 * (1/3) + 0.0993184 *(1/3) =
0.06231742999999999 

o también la tasa ponderada de partida de los atendidos por los técnicos:

P01 μT + P02 2 μT + P11 μT + P12T =

0.33885102*(1/15)+0.20447907*(2/15)+0.0993184*(1/15)+0.04381694 *(2/15) =
0.06231742933333334

s1Eva_IT2017_T4 Portabilidad numérica

1ra Evaluación I Termino 2017 Soluciones propuestas

Tema 4. Portabilidad Numérica

Tabla de datos:

Diagrama de estados

# Tema 4. Portabilidad numérica
import numpy as np

p=np.array([
    [0.9296,0.0626,0.0078],
    [0.1537,0.8288,0.0175],
    [0.0182,0.0162,0.9656]
    ])

e) Suponga que observa un abonado de la operadora ROJA:

1. Determine la probabilidad que en el siguiente periodo sea abonado de VERDE.

Se usa el valor de PRojaVerde = P12 = 0.0626

2. Luego el cliente del numeral anterior al segundo periodo decida cambiarse a la operadora AZUL

Usar la matriz en P2, considerando en dos periodos se cambia AZUL iniciando en Rojo P213 = 0.01587806

p2=np.linalg.matrix_power(p,2)
print(p2)
[[ 0.87391974  0.1102022   0.01587806]
 [ 0.27058458  0.69681456  0.03260086]
 [ 0.03698258  0.0302086   0.93280882]]

3. Para otro abonado de la operadora ROJA, determine la probabilidad que luego de tres periodos no termine en la operadora VERDE.

Usar la matriz en P3, iniciando en Rojo, puede seguir en Rojo o pasar a Azul P311 + P313 = 0.87391974 + 0.01587806 = 0.8897978

también como 1- 0.1102022 = 0.8897978

p3=np.linalg.matrix_power(p,2)
print(p3)
print(0.87391974 +  0.01587806)
[[ 0.87391974  0.1102022   0.01587806]
 [ 0.27058458  0.69681456  0.03260086]
 [ 0.03698258  0.0302086   0.93280882]]
0.8897978

f) Determine las probabilidades de transición a largo plazo.

n=200
pn=np.linalg.matrix_power(p,n)
print(pn)

k=len(p)
A=p.transpose()
A=A-np.identity(k, dtype=int)
A[-1,:]=np.ones(k,dtype=int)
B=np.zeros(k,dtype=int)
B[-1]=1
Pncalc=np.linalg.solve(A,B)
print('largo plazo')
print(Pncalc)
[[ 0.54340383  0.22099379  0.23560237]
 [ 0.54339955  0.2209924   0.23560805]
 [ 0.54332021  0.22096663  0.23571316]]
largo plazo
[ 0.54338318  0.22098708  0.23562973]

g) Para cada uno de los valores encontrados en el literal anterior, con sus palabras describa en una línea el significado referenciado al problema.

largo plazo
[ 0.54338318 0.22098708 0.23562973]

algunos ejemplos:

Representa cómo se distribuyó el mercado a largo plazo, que un abonado pertenezca a una de las operadoras….

el 54,33 % de probabilidad que un abonado sea de la operadora ROJA

el 22,09% de probabilidad que un abonano sea de la operadora VERDE

que en muy largo plazo, la operadora ROJA seguirá siendo el operador dominante
que de mantenerse la tendencia, el operador AZUL solo puede crecer hasta el 23,56% del mercado.
que el operador verde podría seguir perdiendo clientes y disminuir su participación de mercado desde el 29% al 22,09 %.

recordando que los periodos serían de 6 años…

1Eva_IT2017_T4 Portabilidad numérica

1ra Evaluación I Término 2017-2018. Junio 27, 2017

Portabilidad Numérica

Tema 4 (30 puntos). La portabilidad numérica para redes de telefonía móvil es una funcionalidad que permite que un abonado pueda conservar su número telefónico cuando decide cambiar de operador de red [1].

En Ecuador la portabilidad numérica es posible desde el final del año 2009 y de acuerdo al Ministerio de Telecomunicaciones, con esta iniciativa se garantiza el derecho de los usuarios, se estimula la competencia e innovación y se incentiva a que las operadoras evolucionen rápidamente y creen nuevos servicios, beneficiando a sus suscriptores [2].

Según los datos de Agencia de Regulación y Control de las Telecomunicaciones (ARCOTEL), durante los primeros 6 años de vigencia 1’351.989 usuarios del servicio móvil avanzado (SMA) ejercieron su derecho a la portabilidad numérica.

  • Desde la operadora ROJA dejaron el servicio 602.952 usuarios, 536.157 se cambiaron a VERDE y 66.795 a AZUL.
  • Mientras que salieron de la operadora VERDE 712.236 usuarios, 639.587 se cambiaron a ROJA y 72.649 a AZUL.
  • Desde la operadora AZUL dejaron de utilizar su servicio 36.801 líneas, 19.471 migraron a ROJA y 17.330 a VERDE.

En el año 2015 se registraron 13,8 millones de abonados de telefonía móvil, la participación de la operadora ROJA fue de 62,5%, le sigue VERDE con un 29% y AZUL de 8,5%. [3].

Suponga que los datos corresponden al final del año, tampoco considere las líneas que fueron anuladas por inactividad, como fue dispuesto en ese año por el organismo regulador.

Considerando todos los datos como un solo periodo y que la portabilidad de abonados supone un comportamiento aleatorio similar e independiente en cada periodo aproximado a un modelo tipo Markov, desarrolle las siguientes preguntas:

a) Determine y escriba los estados
b) Realice el diagrama de transición de estados
c) Usando los datos del enunciado, determine las probabilidades de cambio de operadora y ubíquelas en el diagrama de transición de estados.
d) Realice la matriz de transición equivalente

En adelante, para el ejercicio suponga que el resultado anterior es aplicable en varios periodos.

e) Suponga que observa un abonado de la operadora ROJA:

  1. Determine la probabilidad que en el siguiente periodo sea abonado de VERDE.
  2. Luego el cliente del numeral anterior al segundo periodo decida cambiarse a la operadora AZUL
  3. Para otro abonado de la operadora ROJA, determine la probabilidad que luego de tres periodos no termine en la operadora VERDE.

f) Determine las probabilidades de transición a largo plazo.
g) Para cada uno de los valores encontrados en el literal anterior, con sus palabras describa en una línea el significado referenciado al problema.

Rúbrica: literal a y b (8 puntos), literal c (5 puntos), literal d (5 puntos), literal e (4 puntos), literal f y g (8 puntos).

Referencias:
[1] http://www.arcotel.gob.ec/wp-content/uploads/2015/01/Portabilidad-Numerica-MOD.pdf
[2] http://www.eltelegrafo.com.ec/noticias/economia/8/13-millones-de-usuarios-de-la-telefonia-movil-cambiaron-de-operadora
[3] http://www.elcomercio.com/actualidad/ecuador-lineas-telefoniacelular-arcotel.html

 

1Eva_IT2017_T3 Call Center Operadora y Dos Técnicos

1ra Evaluación I Término 2017-2018. Junio 27, 2017

Call Center Operadora y Dos Técnicos

Tema 3 (30 puntos). Para obtener soporte técnico de un proveedor de internet se llama al número telefónico del call-center donde se encuentra una recepcionista y dos técnicos. Los clientes llaman a intervalos de tiempo de 10 minutos, distribuidos exponencialmente.

En una llamada, los clientes son atendidos por la recepcionista que toma los datos y redirige la llamada a uno de los técnicos disponibles. Si un cliente llama mientras la recepcionista atiende otra, el cliente recibe tono de ocupado y la pierde.

La recepcionista al pasar una llamada a los técnicos puede suceder que:

  • Si ambos están disponibles, se selecciona uno con igual probabilidad.
  • Si solo hay uno disponible, se le asigna la llamada.
  • Si los dos técnicos están ocupados, se pierde la llamada.

Considere a un cliente como “satisfecho” si su llamada fue procesada por la recepcionista y cualquiera de los técnicos.
Los tiempos de atención siguen distribuciones exponenciales: recepcionista es de 3 minutos y por técnico es de 15 minutos.

a) ¿Cuáles son los estados para un modelo Markov?
b) Dibuje un modelo de Markov para el problema.
c) Etiquete cada una de las conexiones.
d) En estado estable, ¿cuáles son las probabilidades de encontrarse en cada estado?
e) Encuentre la probabilidad que los técnicos estén ocupados.
f) ¿Cuál es la probabilidad que una llamada se pierda en la recepción?
g) ¿Cuál es la tasa de clientes satisfechos? (salida del sistema, throughput)


Referencias: Chun Tung Chou. COMP9334 Capacity Planning of Computer Systems and Networks.

Rúbrica: literal a y b (10 puntos), literal c (5 puntos), literal d (5 puntos), literal e (4 puntos), literal f y g (6 puntos).

s1eva_IT2017_T2 Cadena de Markov desde diagrama

Tema 2
Cadena de Markov, desarrollo a partir del diagrama

a) Identifique los estados transientes
estados 1 y 4

b) Identifique las clases de los estados recurrentes
estados 2 y 3 son de tipo recurrente m y el estado 5 es una clase (singlenton) o absorvente

c)Para cada clase recurrente, encuentre la probabilidad de estado estable \pi_i.
p = \begin{pmatrix} 1/3 & 2/3 & 0 & 0 & 0 \\ 0 & 0 & 1 & 0 & 0 \\ 0 & P_{32}& 1-P_{32}& 0 & 0 \\ 1/3 & 0 & 0 & 1/3 & 1/3 \\ 0 & 0 & 0 & 0 & 1 \end{pmatrix}

para la clase {2,3} se tiene que:
\pi_{2} = \pi_{3}P_{32}
\pi_{3} = \pi_{2} + (1-P_{32}) \pi_{3}
1 = \pi_{2} + \pi_{3}

usando la ecuacion (1) en ecuacion (3)
1 = \pi_{3}P_{32} + \pi_{3}
1 = (P_{32} + 1) \pi_{3}
\pi_{3} = \frac{1}{(P_{32} + 1)}
que reemplazando en (1)
\pi_{2} = \frac{P_{32}}{(P_{32} + 1)}

en el caso de \pi_{5} = [0,0,0,0,1] por ser absorvente.

d) Encuentre las probabilidades de transición para n pasos Pnij como una función de n. Con sus palabras describa cada una (no requiere ecuaciones).

1. Pn44 = (1/3)n debido las transiciones a si misma, cada vez son mas pequeñas y tenderían a cero.

2. Pn45 = (1/3 + (1/3)2 + … + (1/3)n = 1/2(1-(1/3)n). En el largo plazo solo hay dos opciones, o ir hacia 5 o ir hacia 1, por simetria de salida del estado 4.

3. Pn41 = n(1/3)n para cada n caminos para ir de 4 a 1 en n pasos, cada camino tiene una probabilidad de (1/3)n, pero debe tender a cero.

4. Pn43 + Pn42 = 1- Pn44– Pn45 – Pn41 = 1/2 – [(2n+1)/2] (1/3)n. Corresponde al otro camino complementario de ir al estado 5.
que debe ser distribuido entre la llegada al estado 2 y 3, que a su vez sumará 1/2.

5. de el caso anterior, el limite cuando n tiende a infinito, la suma de los estados 2 y 3 será 1/2. Usando el resultado del literal e, que sucedan las dos cosas implica multiplicar el pasar por la rama de 1, y lo que corresponde al estado 3, es decir:
\pi_{3} = \frac{1}{2} \frac{1}{(P_{32} + 1)}


OTRA FORMA, usando python

Se analiza el comportamiento a largo plazo, usando un valor para Pa , por ejemplo 0.5.
Para un exponente «grande» n=1000, se puede ver en la columna 4 lo que se escribió en la sección anterior, que solo hay dos caminos de salida ,y se distribuye la probabilidad por simetría en 0.5 y 0.5 hacia el estado absorvente {5} y el recurrente {2,3}

# Tema 2. diagrama de transicion
import numpy as np
a=0.5
p=np.array([
    [1/3,2/3,  0,  0,  0],
    [  0,  0,  1,  0,  0],
    [  0,  a,1-a,  0,  0],
    [1/3,  0,  0,1/3,1/3],
    [  0,  0,  0,  0,  1]
    ])

n=1000

pn=np.linalg.matrix_power(p,n)
print(pn)

# Resolviendo por matrices A= AT-I) y el vector de ceros terminado en 1
k=len(p)
A=p.transpose()
A=A-np.identity(k, dtype=int)
# la última fila se sustitute por la suma de probabilidades
A[-1,:]=np.ones(k,dtype=int) 
B=np.zeros(k,dtype=int)
B[-1]=1 # el último
Pncalc=np.linalg.solve(A,B)
print('largo plazo')
print(Pncalc)
[[ 0.          0.33333333  0.66666667  0.          0.        ]
 [ 0.          0.33333333  0.66666667  0.          0.        ]
 [ 0.          0.33333333  0.66666667  0.          0.        ]
 [ 0.          0.16666667  0.33333333  0.          0.5       ]
 [ 0.          0.          0.          0.          1.        ]]
largo plazo
[ 0. -0.  0. -0.  1.]

donde se pueden observar las clases…y los valores a largo plazo

1Eva_IT2017_T2 Cadena de Markov desde diagrama

1ra Evaluación I Término 2017-2018. Junio 27, 2017

Cadena de Markov desde un diagrama de transición de estados

Tema 2 (20 puntos). Considere la siguiente cadena de Markov con estados finitos:

a) Identifique los estados transientes

b) Identifique las clases de los estados recurrentes

c) Para cada clase recurrente, encuentre la probabilidad de estado estable \pi_i . Desarrolle paso a paso.

d) Encuentre las probabilidades de transición para n pasos P_{ij}^{n} como una función de n. Con sus palabras describa cada una (no requiere ecuaciones).

1. P_{44}^n

2. P_{45}^n

3. P_{41}^n

4. P_{43}^n + P_{42}^n

5. \lim_{n \rightarrow \infty} P_{43}^n


Referencia: Chun Tung Chou. COMP9334 Capacity Planning of Computer Systems and Networks. Quiz 2011
Rúbrica: literal a y b (5 puntos), literal c (5 puntos), literal d (10 puntos

s1Eva_IT2017_T1 Cadena de Markov desde matriz

1ra Evaluación I Término 2017-2018. Junio 27, 2017

Tema 1
Cadena de Markov, desarrollo a partir de la matriz

\begin{pmatrix} 1/2 & 1/2 & 0 & 0 \\ 9/10 & 0 & 1/10 & 0 \\ 0 & 1/10& 0 & 9/10\\ 0 & 0 & 1/2 & 1/2 \end{pmatrix}

Diagrama de Estados de transición:

Resolución planteando las ecuaciones

π0 = (1/2)π0 + (9/10)π1
π1 = (1/2)π0 + (1/10)π2
π2 = (1/10)π1 + (1/2)π3
π3 = (9/10)π2 + (1/2)π3
π0 + π1 + π2 + π3 = 1

usando ecuacion (1)
π0 -(1/2)π0 = (9/10)π1
(1/2)π0  = (9/10)π1
π1 = (5/9)π0

usando ecuacion(2)
(5/9)π0 = (1/2)π0 + (1/10)π2
(5/9)π0 - (1/2)π0 = (1/10)π2
[(10 - 9)/18] π0 = (1/10)π2
[1/18] π0 = (1/10)π2
π2 = (10/18) π0
π2 = (5/9) π0

usando ecuacion (3)
(5/9) π0 = (1/10)(5/9)π0 + (1/2)π3
(5/9) π0 - (1/10)(5/9)π0 = (1/2)π3
(1-1/10)(5/9) π0 = (1/2)π3
(9/10)(5/9) π0 = (1/2)π3
(1/2) π0 = (1/2)π3
π3 = π0

usando la ecuación (5)
π0 + (5/9)π0 + (5/9) π0 +  π0 = 1
(1 + 5/9 + 5/9 + 1) π0 = 1
(2 + 10/9) π0 = 1
(28/9) π0 = 1
π0 = (9/28)

π1 = (5/9)(9/28) = 5/28
π2 = 5/28
π3 = 9/28

resolución usando numpy de python

# Tema 1. matriz de transición
import numpy as np

p=np.array([
    [ 1/2, 1/2,   0,   0],
    [9/10,   0,1/10,   0],
    [   0,1/10,   0,9/10],
    [   0,   0, 1/2, 1/2]
    ])
n=200
pn=np.linalg.matrix_power(p,n)
print(pn)

# Resolviendo por matrices A= AT-I) y el vector de ceros terminado en 1
k=len(p)
A=p.transpose()
A=A-np.identity(k, dtype=int)
# la última fila se sustituye por la suma de probabilidades
A[-1,:]=np.ones(k,dtype=int)
B=np.zeros(k,dtype=int)
B[-1]=1  # el último
Pncalc=np.linalg.solve(A,B)
print('largo plazo')
print(Pncalc)
[[ 0.32142907  0.17857167  0.17857119  0.32142808]
 [ 0.321429    0.17857164  0.17857122  0.32142814]
 [ 0.32142814  0.17857122  0.17857164  0.321429  ]
 [ 0.32142808  0.17857119  0.17857167  0.32142907]]
largo plazo
[ 0.32142857  0.17857143  0.17857143  0.32142857]

verificando que las fracciones sean los valores encontrados por python:

print(5/28)
0.17857142857142858

1Eva_IT2017_T1 Cadena de Markov desde matriz

1ra Evaluación I Término 2017-2018. Junio 27, 2017

Tema 1 (20 puntos). Dibuje el diagrama de transición de estados y encuentre la distribución (estacionaria) de la cadena de Markov cuya matriz de transición es:

\begin{pmatrix} 1/2 & 1/2 & 0 & 0 \\ 9/10 & 0 & 1/10 & 0 \\ 0 & 1/10& 0 & 9/10\\ 0 & 0 & 1/2 & 1/2 \end{pmatrix}

Nota: Realice el desarrollo paso a paso, planteando las ecuaciones.

Referencia: Prob.12.8. Gubner, J. A. (2006). Probability and random processes for electrical and computer engineers. Cambridge University Press.

Rúbrica: diagrama (5 puntos), desarrollo paso a paso (10 puntos), resultados (5 puntos)