Teoría de colas – Dos Servidores en secuencia

Referencia: Ross problema 8.15 p.570

Considere un sistema de servicio secuencial de dos servidores A y B.
Los clientes que llegan entran al sistema solo si el servidor A esta libre.
Si un cliente entra, entonces es atendido inmediatamente por el servidor A.
Cuando la atención del servidor A se completa, el cliente pasa a ser atendido por el servidor B siempre que esté libre, si B esta ocupado, el cliente sale del sistema.
Una vez que el cliente sale del servidor B, el cliente se parte del sistema.

Suponga que las llegadas de cientes son tipo Poisson con tasa de llegada de dos clientes por hora, y que los servidores A y B atienden a tasas exponenciales de cuatro y dos clientes por hora.

a) ¿Cuál es la proporción de clientes que entran al sistema?

b) ¿Cuál es la proporción de clientes que entraron al sistema son atendidos por el servidor B?

c) ¿Cuál es el número promedio de clientes en el sistema?

d) ¿Cuál es el monto promedio de tiempo que un cliente que entró se mantiene dentro del sistema?


Solución

los estados propuestos son:

00 P00
10 P10
01 P01
11 P11

El diagrama de transición entre estados propuesto, considerando de un solo evento por unidad de tiempo:

con lo que se puede plantear las ecuaciones de balanceo («sale=entra»):

2 P00 = 2 P01
4 P10 = 2 P00 + 2 P11
(2+2) P01 = 4 P10 + 4 P11
(4+2) P11 = 2 P01
P00 + P10 + P01 + P11 = 1

Resolviendo:

P00 = P01              ecuación(1)
2 P10 = P00 + P11      (2)
P01 = P10 + P11        (3)
3 P11 = P01            (4)
P00 + P10 + P01 + P11 = 1      (5)

de la ecuación (2) restando la ecuación (3)

2 P10 - P01 = P00 + P11 - P10 - P11
2 P10 - P01 = P00 - P10
3 P10 - P01 = P00

usando la ecuación (1)

3 P10 - P00 = P00
3 P10 = 2 P00
P10 = 2/3 P00

usando la ecuación (4) y (1)

P11 = (1/3) P01
P11 = (1/3) P00

usando la ecuación (5)

P00 + P10 + P01 + P11 = 1
P00 + P00 + (2/3) P00 + (1/3)P00 = 1
3 P00 = 1
P00 = 1/3

y se obtienen los otros valores para p

P01 = 1/3
P10 = (2/3)(1/3 )= 2/9
P11 = (1/3)(1/3) = 1/9

Con lo que se puede responder:

a) ¿Cuál es la proporción de clientes que entran al sistema?

P00 + P01 = 1/3 + 1/3 
         = 2/3

c) ¿Cuál es el número promedio de clientes en el sistema?

0*P00 +  1*P10 + 1*P01 + 2*P11 = 0 + 2/9 + 1/3 + 2*1/9 = 
     = (0+2+3+2)/9 = 7/9

d) ¿Cuál es el monto promedio de tiempo que un cliente que entró se mantiene dentro del sistema?

W = L/λA
W = (promedio de clientes en el sistema)/(tasa de los que entran)
W= (7/9)/[2(2/3)] = 7/12

Usando Numpy

resolviendo con numpy, se convierten las ecuaciones a matrices, sustituyendo una ecuación con la última (suma de probabilidades =1), se obtiene:

2 P00 = 2 P01
4 P10 = 2 P00 + 2 P11
(2+2) P01 = 4 P10 + 4 P11
(4+2) P11 = 2 P01
P00 + P10 + P01 + P11 = 1

reorganizando:

2 P00 -2 P01                = 0
2 P00        - 4 P10 + 2 P11 = 0
      -4 P01 + 4 P10 + 4 P11 = 0
       2 P01        - 6 P11 = 0
  P00  +  P01 +   P10 +  P11 = 1

se obtienen las matrices A y B para usar con la instrucción solver de numpy:

import numpy as np
A=np.array([
    [2,-2,0,0],
    [2,0,-4,2],
    [0,-4,4,4],
    [1,1,1,1]])
B=np.array([0,0,0,1])

p=np.linalg.solve(A,B)

print(p)
[ 0.33333333  0.33333333  0.22222222  0.11111111]

con lo que los valores buscados son:

P00=0.33333333
P01=0.33333333
P10=0.22222222
P00=0.11111111