Categoría: Soluciones

  • 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...

  • 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

  • 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