Tema 5: Teoría de colas Ezequiel López Rubio Departamento de Lenguajes y Ciencias de la Computación Universidad de Málaga
Sumario z z z z z
Conceptos básicos Cola M | M | 1 Cola M | M | c Cola M | M | 1 | k Redes de colas z z
Redes de Jackson abiertas Redes de Jackson cerradas
Conceptos básicos
Concepto de cola z
Una cola es una línea de espera para determinado servicio z
z
Este servicio lo proporciona uno o varios dependientes
La teoría de colas analiza la causa de la formación de la cola, que es la existencia de momentos en los que hay una mayor demanda de servicio que la capacidad de servicio
Clasificación de sistemas de colas z
z
Llamaremos clientes, trabajos o tareas a los que demandan servicio, y dependientes, empleados o servidores a los que ofrecen servicio Un sistema de colas viene dado por varias características: z
1º Modelo de llegada de clientes, El índice de llegadas será el número medio de llegadas por unidad de tiempo, Alternativamente podemos usar el tiempo entre llegadas, que es el tiempo medio entre llegadas sucesivas
Clasificación de sistemas de colas z
z
2º Modelo de servicio, Puede venir dado por el tiempo de servicio o por el número de clientes atendidos por unidad de tiempo, Tendremos una variable aleatoria o bien un servicio determinista, Aquí supondremos que el modelo de servicio es independiente del de llegada 3º Disciplina de la cola, Establece el orden en que se va atendiendo a los clientes: z z z z
Por orden de llegada (FIFO) Por orden inverso al de llegada (LIFO) Selección aleatoria (RANDOM) Según prioridades (PRIORITY, PR), Dos subtipos:
Con interrupción, Si llega un cliente de más prioridad, el trabajo que se estaba sirviendo se interrumpe para atenderlo Sin interrupción, No se pueden interrumpir los trabajos Dentro de cada clase de prioridad se podrán aplicar disciplinas LIFO, FIFO o RANDOM,
Clasificación de sistemas de colas z
z
z
4º Capacidad del sistema, Es el número máximo de clientes que puede haber en el sistema (finito o infinito), Si llega un cliente y el sistema está lleno, se marcha, 5º Número de canales de servicio, Es el número de dependientes, Puede haber una cola para cada dependiente o bien una sola cola global 6º Número de estados de servicio, Puede haber varias partes en las que se subdivide el trabajo (estados), cada una con su cola y su dependiente, que deben ser completadas sucesivamente, P, ej,, tres estados:
Notación de Kendall z
La notación de Kendall nos permite escribir resumidamente todas las características que hemos estudiado, Un sistema de colas se notará como: A | B | X | Y | Z | V, donde: z
A es el modelo de llegadas, Valores posibles: z z z
z
M=tiempos entre llegadas exponenciales D=tiempos entre llegadas deterministas G=tiempos entre llegadas generales (cualquier distribución)
B es el modelo de servicio, Puede tomar los mismos valores que A
Notación de Kendall z z
z z
z
X es el número de dependientes (servidores) Y es la capacidad del sistema (número máximo de clientes en el sistema), Se puede omitir si es infinita Z es la disciplina, Se puede omitir si es FIFO V es el número de estados de servicio, Se puede omitir si es 1
Por ejemplo, M | M | 1 | ∞ | FIFO | 1 se escribe abreviadamente M | M | 1
Medidas de rendimiento z
Una vez descrito el sistema, nuestro objetivo es evaluar su rendimiento, Para ello tenemos varias medidas de rendimiento: z z z z
Número medio de clientes en el sistema, notado L Tiempo medio de espera de los clientes, W Número medio de clientes en la cola, Lq Tiempo medio de espera en cola de los clientes, Wq
Cola M | M | 1
Descripción del modelo z z
z
Hay una sola cola, cuya capacidad es infinita, y un solo servidor, La disciplina será FIFO Las llegadas se producen según un proceso de Poisson de razón λ, donde λ es el número medio de llegadas por unidad de tiempo y 1/λ es el tiempo medio entre llegadas, Los tiempos entre llegadas se distribuirán exponencialmente, Exp(λ) Los tiempos entre servicios también se distribuirán exponencialmente, Exp(μ), de tal manera que μ es el número medio de clientes que el servidor es capaz de atender por unidad de tiempo y 1/μ es el tiempo medio de servicio
Condición de no saturación z
Se demuestra que si λ≥μ, el sistema se satura, es decir, el número de clientes en la cola crece indefinidamente con el tiempo, Por consiguiente, la condición de no saturación será:
λ ρ < 1, donde ρ = μ z
Nosotros sólo estudiaremos las colas que no se saturan, Cuando una cola no se satura, también se dice que alcanza el estado estacionario,
Probabilidades z
z
El parámetro ρ se llama carga, flujo o intensidad de tráfico del sistema, puesto que mide la relación entre la cantidad de trabajos que llegan y la capacidad de procesarlos Suponiendo que el sistema no se satura, se deduce la siguiente fórmula para las probabilidades pn de que haya n clientes en el sistema, donde n∈N: pn = ρ (1 − ρ ) n
Medidas de rendimiento z
El número medio de clientes en el sistema, L, se calcula así: ∞
∞
∞
L = ∑ j p j = ∑ j ρ (1 − ρ ) = (1 − ρ )∑ j ρ j j
j =0
j =0
j =0
Sumamos la serie aritmético-geométrica: S = ρ + 2 ρ 2 + 3ρ 3 + 4 ρ 4 + ... − ρS =
− ρ 2 − 2 ρ 3 − 3ρ 4 + ...
(1 − ρ )S = ρ + ρ
2
+ ρ + ρ + ... =
⇒ L = (1 − ρ )
3
ρ
4
1− ρ
ρ ρ = (1 − ρ )2 1 − ρ
Medidas de rendimiento z
La utilización del dependiente, notada U, es la fracción de tiempo (en tanto por uno) que el dependiente permanece ocupado, Para hallarla, nos valemos de que cuando no hay saturación, el número medio de clientes que entran en el sistema debe ser igual al número medio de clientes que salen de él:
λ = Uμ ⇒ U = z
λ =ρ μ
Como para deducir la anterior fórmula no hemos usado ninguna característica especial del modelo de entrada ni del de salida, dicha fórmula es válida para colas G | G | 1
Medidas de rendimiento z
El tiempo medio de respuesta W es el tiempo medio que un trabajo permanece en el sistema, Si suponemos que un trabajo, al llegar al sistema, se encuentra con que hay por delante de él otros j trabajos, el tiempo medio que tardará en salir del sistema será j+1 veces el tiempo medio de servicio, Por lo tanto: ∞
W = ∑ ( j + 1) j =0
Tiempo que se pasa en el sistema si hay j por delante al llegar
1
μ
∞
pj = ∑ j j =0
1
μ
∞
pj + ∑ j =0
1
μ
pj =
L
μ
Probabilidad de que haya j por delante al llegar
+
1
μ
Medidas de rendimiento z
Podemos simplificar algo más: L 1 1 W= + = μ μ μ −λ
z
El tiempo medio de espera en la cola Wq se hallará restando a W el tiempo que tarda en ser servido el trabajo (esto es válido para cualquier tipo de cola): 1 Wq = W −
μ
z
En el caso particular de una cola M | M | 1, obtenemos:
Wq =
ρ
μ −λ
Ejemplo z
z
Unos mecánicos llegan a una media de 10 por hora a recoger piezas de repuesto, Estas piezas se las da un dependiente pagado con 5 €/hora y que tarda como media 5 min en servir, Cada hora que tiene que esperar un mecánico (en el sistema) le cuesta al taller 10 €, Queremos saber si merece la pena contratar a un ayudante de dependiente, pagado con 4€/hora, de forma que el tiempo medio de servicio se reduzca a 4 min Nota: Al resolver un problema de colas, tener siempre muy presente la coherencia de unidades
Ejemplo z
Tenemos dos opciones: z z
z z
Sin ayudante: 1/μ1 = 5 min = 1/12 h Con ayudante: 1/μ2 = 4 min = 1/15 h
En ambos casos, λ = 10 clientes/h Opción 1 (sin ayudante): 10 ρ1 10 = 12 = 5 mecánicos ρ1 = ; L1 = 12 1 − ρ1 1 − 10 12
Por tanto, perdemos 5·(10€/h) = 50€/h
Ejemplo z
Opción 2 (con ayudante): 10 ρ1 10 = 15 = 2 mecánicos ρ 2 = ; L1 = 15 1 − ρ1 1 − 10 15
Por tanto, perdemos 2·(10€/h) = 20€/h debido a la espera de los mecánicos, Pero también perdemos 4€/h debido al sueldo del ayudante, Por tanto, las pérdidas totales son 24€/h z En la opción 1 perdemos 50€/h y en la opción 2 perdemos 24€/h, con lo cual la más ventajosa es la opción 2,
Más medidas de rendimiento z
El número medio de trabajos en la cola Lq, se calcula restándole a L el número medio de trabajos que están siendo servidos:
ρ
ρ2 Lq = L − (1 − p0 ) = L − ρ = −ρ = 1− ρ 1− ρ
z
Probabilidad de que un cliente que llega pase más de t unidades de tiempo en el sistema:
W (t ) = e − t / W z
Probabilidad de que un cliente que llega pase más de t unidades de tiempo en la cola: Wq (t ) = ρe −t / W
Ejemplos z
Ejemplo: Un canal de comunicación se usa para enviar datos desde unos ordenadores fuente a uno central, Cada fuente envía paquetes de datos según un proceso de Poisson de razón 2 paquetes/seg, Además cada fuente envía independientemente de las otras, Todos los paquetes son idénticos, esperan en una cola común y después se transmiten de uno en uno, Los tiempos de transmisión se distribuyen exponencialmente, con media 25 mseg, Determinar el número máximo de fuentes que se pueden conectar al canal de tal manera que:
Ejemplos z
1º El canal no se sature z
z
Si tenemos k fuentes, llegarán a la cola 2k paquetes/seg, Por otro lado, 1/μ = 0,025 seg ⇒ μ = 40 paquetes/seg El canal no se satura cuando ρ<1:
λ 2k k ρ= = = < 1 ⇒ k < 20 fuentes μ 40 20
Ejemplos z
2º En media los paquetes no pasen en el sistema más de 100 mseg z
z
Tal como ocurría en el apartado anterior, llegarán a la cola 2k paquetes/seg, y tendremos μ = 40 paquetes/seg Nos exigen W≤0,1 seg:
1 1 W= = ≤ 0,1 ⇒ k ≤ 15 fuentes μ − λ 40 − 2k
Ejemplos z
3º En el estado estacionario se garantice que al menos el 95% de los paquetes tenga un tiempo de respuesta que no exceda de 100 mseg z z
Tal como ocurría en el apartado anterior, llegarán a la cola 2k paquetes/seg, y tendremos μ = 40 paquetes/seg Nos exigen que la probabilidad de que un paquete pase más de 100 mseg en el sistema sea inferior al 5%, es decir, W(100 mseg)≤0,05:
W (0,1) ≤ 0,05 ⇒ e −0,1(40− 2 k ) ≤ 0,05 ⇒ 0,2k − 4 ≤ ln 0,05 ⇒
4 + ln 0,05 k≤ ⇒ k ≤ 5,021 ⇒ k ≤ 5 fuentes (ya que k ∈ N) 0,2
Ejemplos z
Ejemplo: Supongamos que una cola M|M|1 con parámetros λ y μ se sustituye por n colas M|M|1 independientes de parámetros λ/n y μ/n, Es decir, dividimos la carga de trabajo y la capacidad de proceso en n partes iguales, Evaluar el efecto del cambio usando como medidas de rendimiento el tiempo medio de respuesta y el número medio de trabajos en el sistema
μ/n
λ/n λ
…
μ λ/n
μ/n
Ejemplos z
Alternativa 1 (una sola cola), λ1=λ, μ1= μ :
ρ1 λ L1 = = 1 − ρ1 μ − λ
1 1 = μ1 − λ1 μ − λ Alternativa 2 (n colas independientes), λ2=λ/n, μ2=μ/n : W1 =
z
λ
λ
n
ρ2 ρ2 λ μ n =n =n =n =n = nL1 L2 = ∑ λ λ μ −λ 1 − ρ2 1− i =1 1 − ρ 2 1− μ n μ n
μ
n
Ejemplos W2 =
z
z
1 = μ 2 − λ2
1 1 = = nW1 n μ λ μ −λ n − n
Como la alternativa 1 tiene menores valores para ambas medidas de rendimiento, concluimos que la dicha alternativa es mejor Esto nos indica que lo mejor es no dividir la capacidad de procesamiento, es decir, tener un único servidor que atienda a todos los clientes
Teorema de Little z
Sea un sistema de colas con cualquier distribución de llegadas y servicios y cualquier estructura, Sean L el número de trabajos presentes en el sistema en el estado estacionario, W es tiempo medio de respuesta en el estado estacionario y λ la razón de llegadas al sistema, Entonces:
L = λW
Teorema de Little Explicación intuitiva: Supongamos que cobramos 1€ a cada trabajo por cada unidad de tiempo que pasa en el sistema, Habría dos maneras equivalentes de medir las ganancias:
z
z
z
Colocando un recaudador a la entrada del sistema, le cobrará como media W a cada uno de los λ trabajos que vea pasar por unidad de tiempo Cada vez que transcurre una unidad de tiempo, cobro 1 € a cada uno de los L trabajos que como media hay en ese instante en el sistema
Teorema de Little z
Si aplico el teorema a la cola, dejando fuera del sistema al servidor, obtengo el siguiente resultado, también muy útil:
Lq = λWq z
Las dos fórmulas obtenidas nos sirven para ayudarnos a obtener los valores de las medidas de rendimiento, aunque necesitaremos otras ecuaciones para poder conseguir resultados explícitos
Cola M | M | c
Descripción del modelo z z
z
Hay una sola cola, cuya capacidad es infinita, y c servidores, La disciplina será FIFO Las llegadas se producen según un proceso de Poisson de razón λ, donde λ es el número medio de llegadas por unidad de tiempo y 1/λ es el tiempo medio entre llegadas, Los tiempos entre llegadas se distribuirán exponencialmente, Exp(λ) Los tiempos de servicio también se distribuirán exponencialmente, Exp(μ), de tal manera que μ es el número medio de clientes que cada servidor es capaz de atender por unidad de tiempo y 1/μ es el tiempo medio de servicio
Condición de no saturación z
Se demuestra que si λ≥cμ, el sistema se satura, es decir, el número de clientes en la cola crece indefinidamente con el tiempo, Por consiguiente, la condición de no saturación será:
λ ρ < 1, donde ρ = cμ z
Nosotros sólo estudiaremos las colas que no se saturan, Cuando una cola no se satura, también se dice que alcanza el estado estacionario,
Probabilidades z
Suponiendo que el sistema no se satura, se deducen las siguientes fórmulas para las probabilidades pn de que haya n clientes en el sistema, donde n∈N: ⎛ c ρ ( cρ ) ⎜ = + p0 ⎜ ∑ ( ) − ρ c ! 1 n! n =0 ⎝ c
c
c −1
n
⎞ ⎟ ⎟ ⎠
−1
⎧ (cρ )n p 0 , si n = 0,1,..., c ⎪⎪ p n = ⎨ cn! n ⎪ c ρ p , en otro caso 0 ⎪⎩ c!
Medidas de rendimiento z
z
Número medio de clientes en cola: c c ρ c +1 p 0 Lq = 2 c!(1 − ρ ) Usamos razonamientos ya vistos para obtener: W = Wq + L q = λW q
1
μ L = λW
Otras medidas de rendimiento z
Número medio de servidores ocupados, S, En el estado estacionario, la razón de las salidas será igual a la razón de las llegadas:
λ Sμ = λ ⇒ S = = cρ μ z
Probabilidad de que un trabajo tenga que esperar para recibir su servicio (fórmula de retraso de Erlang): c c ρ c p0 q= c!(1 − ρ )
Ejemplos z
Ejemplo: Usando L como medida de rendimiento, comparar estas dos alternativas: Alternativa 1:
λ
Alternativa 2:
μ
μ/2 λ μ/2
Ejemplos z
Alternativa 1: L1 =
z
ρ 1− ρ
Alternativa 2: ρ2 =
λ λ = =ρ μ μ 2 2
⎛ 2 ρ ( 2ρ ) ⎜ +∑ p02 = ⎜ ⎝ 2!(1 − ρ ) n =0 n! 2
2
2 −1
n
⎞ ⎟ ⎟ ⎠
−1
Ejemplos −1
⎛ 4ρ + 2 − 2ρ + 4ρ − 4ρ ⎞ ⎛ 4ρ p02 = ⎜⎜ + 1 + 2 ρ ⎟⎟ = ⎜⎜ 2(1 − ρ ) ⎝ ⎠ ⎝ 2(1 − ρ ) 2
2
2
−1
⎛ 2 + 2ρ ⎞ 1− ρ ⎟⎟ = p02 = ⎜⎜ 1+ ρ ⎝ 2(1 − ρ ) ⎠
⎛ 1⎞ 2λ L2 = λW2 = λ ⎜⎜Wq 2 + μ ⎟⎟ = λWq 2 + = λWq 2 + 2 ρ μ 2 ⎠ ⎝ 4 ρ 3 p02 2 ρ 3 (1 − ρ ) + 2ρ L2 = Lq 2 + 2 ρ = + 2ρ = 2 2 (1 − ρ ) (1 + ρ ) 2(1 − ρ )
⎞ ⎟⎟ ⎠
−1
Ejemplos 2ρ 3 2ρ 3 + 2ρ − 2ρ 3 2ρ L2 = = + 2ρ = (1 − ρ )(1 + ρ ) (1 − ρ )(1 + ρ ) (1 − ρ )(1 + ρ ) z
Para que la alternativa 1 sea mejor, ha de cumplirse que L1 0⎬ ⇒ 1 < 1 − ρ (1 + ρ )(1 − ρ ) ⎩1 − ρ 1+ ρ ⎭ ⇒ 1+ ρ < 2 ⇒ ρ < 1
z
Como ρ<1 siempre se cumple, tendremos que la alternativa 1 siempre es mejor, Es decir, no conviene dividir la capacidad de procesamiento en dos servidores
Ejemplos z
Ejemplo: Usando el número medio de clientes en el sistema como medida de rendimiento, comparar estas dos alternativas:
Alternativa 2:
Alternativa 1: λ/2
μ/2
μ/2 λ
λ/2
μ/2
μ/2
Ejemplos z
Alternativa 1 (nótese que hay 2 colas): ρ1 λ 2ρ L1 = 2 = , donde ρ = μ 1 − ρ1 1 − ρ
z
Alternativa 2 (es la alternativa 2 del ejemplo anterior): λ λ ρ2 = = =ρ μ μ 2 2
2ρ L2 = (1 − ρ )(1 + ρ )
Ejemplos z
Para que la alternativa 2 sea mejor, ha de cumplirse que L1>L2: ⎧ 2ρ ⎫ 2ρ 2ρ 1 > ⇒⎨ > 0⎬ ⇒ 1 > 1 − ρ (1 + ρ )(1 − ρ ) ⎩1 − ρ 1+ ρ ⎭ ⇒ 1+ ρ > 1 ⇒ ρ > 0
z
Como ρ>0 siempre se cumple, tendremos que la alternativa 2 siempre es mejor, Es decir, no conviene poner dos colas, sino tener una única cola global
Ejemplos z
z
Ejemplo: En una copistería se dispone de 3 máquinas fotocopiadoras a disposición del público, Cada máquina es capaz de servir, por término medio, 8 trabajos cada hora, A la copistería llegan como promedio 5 clientes a la hora, Parámetros del sistema: λ = 5 clientes/h, μ = 8 clientes/h, c = 3 servidores, El sistema no se satura porque ρ<1, 5 5 λ = = ρ= cμ 3·8 24
Ejemplos z
¿Cuál es la probabilidad de que las tres máquinas estén libres a la vez? n ⎞ c −1 ⎛ cc ρ c ( ) c ρ ⎟ + p0 = ⎜ ⎜ c! (1 − ρ ) ∑ n! ⎟ n=0 ⎝ ⎠ 0 1 2⎞ ⎛ 33 ρ 3 ( ) ( ) ( ) ρ ρ ρ 3 3 3 ⎟ ⎜ + + + ⎜ 3! (1 − ρ ) 0! 1! 2! ⎟⎠ ⎝
z
−1
−1
n ⎞ 2 ⎛ 33 ρ 3 ( ) 3 ρ ⎟ =⎜ + ⎜ 3! (1 − ρ ) ∑ n! ⎟ n =0 ⎝ ⎠
5 25 ⎞ ⎛ 125 =⎜ +1+ + ⎟ 2432 8 128 ⎝ ⎠
−1
=
−1
=
304 ≈ 0,5342706 569
¿Cuál es el número medio de clientes en la cola? 3 4 304 c c ρ c +1 p0 3 ρ 569 302 = = ≈ 0,00722643 clientes Lq = 2 2 41791 c! (1 − ρ ) 3! (1 − ρ )
Ejemplos z
¿Cuál es el tiempo medio de espera en la cola? Wq =
z
Lq
λ
=
302 52 = ≈ 0,00144529 h 5·41791 35979
¿Cuál es el tiempo medio de espera en el sistema? 1
52 1 514 W = Wq + = + = ≈ 0,126445 h μ 35979 8 4065 z
¿Cuál es el número medio de clientes en el sistema? 514 514 L = λW = 5· = ≈ 0.632226 clientes 4065 813
Cola M | M | 1 | k
Descripción del modelo z
z
z
Hay una sola cola, cuya disciplina será FIFO, La capacidad del sistema es limitada, de tal modo que sólo puede haber k clientes como máximo en el sistema, Por lo tanto, el número máximo de clientes en la cola es k–1, Si un cliente llega y el sistema está lleno, es rechazado y nunca más regresa Las llegadas se producen según un proceso de Poisson de razón λ, Los tiempos entre llegadas se distribuirán exponencialmente, Exp(λ) Los tiempos entre servicios también se distribuirán exponencialmente, Exp(μ), de tal manera que μ es el número medio de clientes que el servidor es capaz de atender por unidad de tiempo
Probabilidades z
z
El sistema nunca se satura, ya que la capacidad es limitada Se deduce la siguiente fórmula para las probabilidades pn de que haya n clientes en el sistema, donde n∈{0, 1, 2, …, k}: ⎧ ρ n (1 − ρ ) , si ρ ≠ 1 ⎪ k + 1 ⎪ pn = ⎨ 1 − ρ ⎪ 1 ⎪⎩ k + 1 , si ρ = 1
Probabilidades z
El valor de ρ determina cómo varían los pn: z
z
z
z
Si ρ<1, los estados más probables son los de menor número de clientes, porque la oferta de servicio supera a la demanda Si ρ>1, los estados más probables son los de mayor número de clientes, porque la demanda de servicio supera a la oferta Si ρ=1, todos los estados son equiprobables, Podemos llegar a la fórmula del caso ρ=1 aplicando la regla de L’Hôpital al límite para ρ→1 de la fórmula del caso ρ≠1
Si hacemos k→∞, llegamos al modelo M | M | 1
Medidas de rendimiento z
z
Tasa efectiva de llegadas, λef, Es el número medio de clientes admitidos al sistema por unidad de tiempo de entre los λ que intentan entrar (λef<λ): λef = λ (1 − p k ) Número medio de clientes en el sistema (este valor siempre debe ser inferior a k): ⎧ ρ ( k + 1)ρ k +1 − , si ρ ≠ 1 ⎪ k + 1 ⎪1 − ρ 1− ρ L=⎨ ⎪k ⎪⎩ 2 , si ρ = 1
Medidas de rendimiento z
Podemos obtener las demás medidas de rendimiento mediante razonamientos ya vistos, teniendo en cuenta que la tasa efectiva de llegadas al sistema es λef: W = Wq + Lq = λ ef Wq
1
μ L = λef W
Ejemplo z
z
A un taller mecánico llegan vehículos para el cambio de pastillas de freno, Los coches llegan a un promedio de 18 a la hora según un proceso de Poisson, El espacio físico del taller sólo permite que haya 4 vehículos, y las ordenanzas municipales prohíben esperar fuera, El taller puede servir a un promedio de 6 coches por hora de acuerdo a una distribución exponencial, Parámetros del sistema: λ = 18 vehículos/h, μ = 6 vehículos/h, k = 4 vehículos
ρ=
18 =3 6
Ejemplo z
¿Cuál es la probabilidad de que no haya ningún vehículo en el taller?
ρ 0 (1 − ρ ) 1− 3 −2 1 p0 = = = = ≈ 0,00826446 4 +1 4 +1 − 242 121 1− ρ 1− 3
z
¿Cuál es el promedio de vehículos que hay en el taller?
L=
ρ 1− ρ
( k + 1)ρ k +1 − = 1 − ρ k +1
( 3 4 + 1)34 +1 − = 4 +1 1− 3 1− 3
−3 1215 426 − = ≈ 3,5206611 vehículos 2 − 242 121
Ejemplo z
¿Cuánto tiempo pasa por término medio un coche en el taller? ⎛ ρ k (1 − ρ ) ⎞ ⎟= λef = λ (1 − pk ) = λ ⎜⎜1 − k +1 ⎟ 1− ρ ⎝ ⎠ ⎛ 34 (− 2 ) ⎞ 720 ⎟= 18⎜⎜1 − ≈ 5,950413 clientes/h 5 ⎟ 1 − 3 ⎠ 121 ⎝ W=
L
λef
=
426
121 = 426 = 71 ≈ 0,5916666 horas 720 720 120 121
Ejemplo z
¿Cuánto tiempo esperan por término medio en la cola los coches? 1
71 1 17 Wq = W − = − = = 0,425 horas μ 120 6 40 z
¿Cuál es la longitud media de la cola? 720 17 306 Lq = λef Wq = · = ≈ 2,52893 vehículos 121 40 121
Redes de colas
Redes de colas z
z
Una red de colas es un sistema donde existen varias colas y los trabajos van fluyendo de una cola a otra Ejemplos: z z z z
Fabricación (trabajos=artículos) Oficinas (trabajos=documentos) Redes de comunicaciones (trabajos=paquetes) Sistemas operativos multitarea (trabajos=tareas)
Enrutado de trabajos z
Criterios para decidir a qué cola se dirige un trabajo que acaba de salir de otra: z
z
Probabilístico: se elige una ruta u otra en función de una probabilidad (puede haber distintos tipos de trabajos, cada uno con sus probabilidades) Determinista: cada clase de trabajo se dirige a una cola fija
Tipos de redes de colas z
Se distinguen dos tipos de redes de colas: z
Abiertas: Cada trabajo entra al sistema en un momento dado, y tras pasar por una o más colas, sale del sistema, Dos subtipos: z z
z
Acíclicas: Un trabajo nunca puede volver a la misma cola (no existen ciclos) Cíclicas: Hay bucles en la red
Cerradas: Los trabajos ni entran ni salen del sistema, Por lo tanto permanecen circulando por el interior del sistema indefinidamente, Usualmente existe un número fijo de trabajos,
Red abierta acíclica
Red abierta cíclica
Red cerrada
Redes de Jackson abiertas
Definición z
Una red de colas abierta se dice que es de Jackson sii: z z
z
z z
Sólo hay una clase de trabajos Los enrutados son probabilísticos, donde rij ≥ 0 es la probabilidad de ir al nodo j después de haber salido del nodo i, Por otro lado, ri0 es la probabilidad de abandonar del sistema después de haber salido del nodo i, donde ri0 = 1– ∑jrij Cada nodo i es una cola .|M|ci
La tasa de llegadas externas al nodo i se notará γi El número total de nodos de la red se notará K
Ecuaciones de equilibrio z
Dado que el flujo total de entrada a un nodo debe ser igual al flujo total de salida del nodo, tendremos que: K
λ i = γ i + ∑ λ j rji , ∀i ∈ {1,..., K } j =1
z
Las K ecuaciones anteriores forman un sistema lineal con solución única, que resolveremos para hallar las tasas de llegada a cada nodo λi
Condición de no saturación z
Para que ninguna de las colas del sistema se sature, es preciso que se cumpla la siguiente condición:
λi ∀i ∈ {1,2,..., K }, ρ i < 1, donde ρ i = ci μi z
Nota: Se trata de la condición de no saturación del modelo M|M|c, aplicada a cada uno de los nodos por separado
Teorema de Jackson para redes abiertas z
Teorema: Sea una red de Jackson abierta que cumple la condición de no saturación, Entonces en el estado estacionario, la distribución del número de clientes en cada nodo es la que sigue: K
p(n) = ∏ pi ( ni ), ∀n1 ,…, nK ≥ 0 i =1
donde pi(ni) es la probabilidad de que haya ni clientes en el nodo i, calculada según las ecuaciones del modelo M|M|c
Consecuencias del teorema z
Corolario: Las medidas de rendimiento para cada nodo se calculan según las ecuaciones del modelo M|M|c, Además se tendrán las siguientes medidas: z
Tasa global de salidas del sistema (throughput), que es el número medio de trabajos que salen del sistema por unidad de tiempo, Coincide con el número de trabajos que entran en el sistema: K
λred = ∑ γ i i =1
Consecuencias del teorema z
Número medio de trabajos en el sistema, Lred, que es la suma de los número medios de trabajos en cada uno de los nodos: K
Lred = ∑ Li i =1
z
Tiempo medio en el sistema, Wred, que es el tiempo medio que pasa una tarea desde que entra en la red hasta que sale de ella:
Wred =
Lred
λred
Consecuencias del teorema z
Razón de visitas al nodo i, Vi, que es el número medio de veces que un trabajo visita el nodo i desde que entra en la red hasta que sale:
λi ∀i ∈ {1,2,..., K }, Vi = λred Nota: en una red acíclica habrá de cumplirse que Vi≤1 ∀i∈{1,2,,,,,K}, ya que cada tarea visitará cada nodo a lo sumo una vez
Ejemplo (red acíclica) 1,5
1
2
0,2 0, 8
3
0 ,6
4
0,4
5 1
0,5
6
μi = 2 ∀i ∈ {1,2,..,6}
Ejemplo (red acíclica) z
Ecuaciones de equilibrio:
λ1 = γ1; λ 2 = λ1r12 ; λ 3 = λ1r13 ; λ 4 = λ 3r 34 ; λ5 = λ 3r 35 +λ 6 r65 ; λ 6 = γ 6 z
En el ejemplo, γ1=1,5; r12=0,2; r13=0,8; r34=0,6; r35=0,4; γ6=0,5; r65=1; con lo cual la solución es:
λ1 = 1,5; λ 2 = 0,3; λ 3 = 1,2; λ 4 = 0,72; λ 5 = 0,98; λ 6 = 0,5
Ejemplo (red acíclica) z
Condición de no saturación (se cumple porque ρi<1): λ ρi = i ⇒ ρ1 = 0,75; ρ2 = 0,15; ρ3 = 0,6; μi
ρ4 = 0,36; ρ5 = 0,49; ρ6 = 0,25 z
Medidas de rendimiento (ecuaciones del modelo M|M|1):
ρi Li = ⇒ 1 − ρi
L1 = 3; L2 ≈ 0,1764; L3 = 1,5;
L4 = 0,5625; L5 ≈ 0,9607; L6 ≈ 0,3333
Ejemplo (red acíclica) 1 Wi = ⇒ W1 = 2; W2 ≈ 0,5882; W3 = 1,25; μi − λi
W4 = 0,78125; W5 ≈ 0,9803; W6 ≈ 0,6666
Wqi = Wi −
1
μi
⇒ Wq1 = 1,5; Wq 2 ≈ 0,0882; Wq 3 = 0,75;
Wq 4 = 0,28125; Wq 5 ≈ 0,4803; Wq 6 ≈ 0,1666
Red abierta cíclica 0,2
1
2
0,3 7 0,
0,8
3
0 ,1
0,9
μi = 3 ∀i ∈ {1,2,4} μi = 4 ∀i ∈ {3,5}
0,6
4
5
Ejemplo (red cíclica) z
Ecuaciones de equilibrio:
λ1 = γ1; λ 2 = λ1r12 ; λ 3 = γ 3 + λ1r13 + λ 5 r53 ; λ 4 = λ 3r 34 ; λ 5 = λ 3r 35 z
En el ejemplo, γ1=0,2; r12=0,3; r13=0,7; γ3=0,8; r53=0,6; r34=0,1; r35=0,9; con lo cual la solución es:
λ1 = 0,2; λ 2 = 0,06; λ 3 ≈ 2,0434; λ 4 ≈ 0,2043; λ 5 ≈ 1,8391
Ejemplo (red cíclica) z
Condición de no saturación (se cumple porque ρi<1): λ ρi = i ⇒ ρ1 ≈ 0,0666; ρ2 = 0,02; ρ3 ≈ 0,5108; μi
ρ4 ≈ 0,0681; ρ5 ≈ 0,4597 z
Medidas de rendimiento (ecuaciones del modelo M|M|1):
ρi Li = ⇒ 1 − ρi
L1 ≈ 0,0714; L2 ≈ 0,0204; L3 ≈ 1,0443;
L4 ≈ 0,0731; L5 ≈ 0,8511
Ejemplo (red cíclica) Wi =
1 ⇒ W1 ≈ 0,3571; W2 ≈ 0,3401; W3 = 0,5111; μi − λi
W4 ≈ 0,3576; W5 ≈ 0,4627 Wqi = Wi −
1
μi
⇒ Wq1 ≈ 0,0238; Wq 2 ≈ 0,0068; Wq 3 ≈ 0,2611; Wq 4 = 0,0243; Wq 5 ≈ 0,2127
Redes de Jackson cerradas
Definición z
Una red de colas cerrada se dice que es de Jackson sii: z z
z z
z
Sólo hay una clase de trabajos Los enrutados son probabilísticos, donde rij ≥ 0 es la probabilidad de ir al nodo j después de haber salido del nodo i, Cada nodo i es una cola .|M|ci Hay una cantidad constante M de trabajos en el sistema
El número total de nodos de la red se notará K
Ecuaciones de equilibrio z
Dado que el flujo total de entrada a un nodo debe ser igual al flujo total de salida del nodo, tendremos que: K
λ = ∑ λ*j rji , ∀i ∈ {1,..., K } * i
z
j =1
Las K ecuaciones anteriores forman un sistema lineal indeterminado con un grado de libertad, que resolveremos para hallar las tasas de llegada relativas a cada nodo λi*, Para ello fijaremos un valor positivo arbitrario para una incógnita, por ejemplo λ1*=1
Análisis del valor medio z
Hallaremos las siguientes medidas de rendimiento para M tareas en el sistema: z z
z
z
Li(M)=Número medio de tareas en el nodo i Wi(M)=Tiempo medio que cada tarea pasa en el nodo i cada vez que lo visita λi(M)=Tasa real de salidas del nodo i
Se trata de un algoritmo iterativo que va calculando Li(m), Wi(m) para valores crecientes de m a partir de m=0
Análisis del valor medio z
Las ecuaciones son: 1 L j (m − 1) W j ( m) = , + μj c jμ j L j ( m) = m
λ*jW j (m)
∑ i=1 λ Wi (m)
λ j ( m) =
K
* i
L j ( m) W j ( m)
∀j ∈ {1,..., K } ∀m ∈ {1,..., M }
, ∀j ∈ {1,..., K } ∀m ∈ {1,..., M }
, ∀j ∈ {1,..., K }∀ m ∈ {1,..., M }
L j (0) = 0, ∀j ∈ {1,..., K }
Red cerrada 1
1
0 ,3
0,7
1
2
1
3
4
μi = 5 ∀i ∈ {1,2,..,6}
Ejemplo (red cerrada) z
Ecuaciones de equilibrio: λ1* = λ*3r31 + λ*4 r41; λ*2 = λ1*r12 ; λ*3 = λ*2 r23 ; λ*4 = λ1*r 14
z
En el ejemplo, r12=0,3; r14=0,7; r23=1; r31=1; r41=1; con lo cual la solución es, tomando λ1*=1: λ1* = 1; λ*2 = 0,3; λ*3 = 0,3; λ*4 = 0,7
Ejemplo (red cerrada) W j ( m) =
1 + L j ( m − 1) 5
, ∀j ∈ {1,...,4}
L1 ( m) = m
W1 ( m) W1 ( m) + 0,3 ⋅ W2 ( m) + 0,3 ⋅ W3 ( m) + 0,7 ⋅ W4 ( m)
L2 ( m) = m
0,3 ⋅ W2 ( m) W1 ( m) + 0,3 ⋅ W2 ( m) + 0,3 ⋅W3 ( m) + 0,7 ⋅ W4 ( m)
L3 ( m) = m
0,3 ⋅ W3 ( m) W1 ( m) + 0,3 ⋅ W2 ( m) + 0,3 ⋅W3 ( m) + 0,7 ⋅ W4 ( m)
L4 ( m) = m
0,7 ⋅ W4 ( m) W1 ( m) + 0,3 ⋅ W2 ( m) + 0,3 ⋅W3 ( m) + 0,7 ⋅ W4 ( m)
Ejemplo (red cerrada) z
Primera iteración: 1 + L j (0) L j (0) = 0, ∀j ∈ {1,...,4} ⇒ W j (1) = = 0,2 5
0,2 L1 (1) = 1⋅ ≈ 0,4347 2,3 ⋅ 0,2 0,3 ⋅ 0,2 L2 (1) = 1⋅ ≈ 0,1304 2,3 ⋅ 0, 2 0,3 ⋅ 0,2 L3 (1) = 1⋅ ≈ 0,1304 2,3 ⋅ 0,2 0,7 ⋅ 0,2 L4 (1) = 1⋅ ≈ 0,3043 2,3 ⋅ 0,2
∀j ∈ {1,...,4}
Ejemplo (red cerrada) m
W1(m)
W1(m)
W1(m)
W1(m)
L1(m)
L2(m)
L3(m)
L4(m)
0
--
--
--
--
0
0
0
0
1
0,2
0,2
0,2
0,2
0,4348
0,1304
0,1304
0,3043
2
0,2870
0,2261
0,2261
0,2609
0,9483
0,2241
0,2241
0,6034
3
0,3897
0,2448
0,2448
0,3207
1,5360
0,2895
0,2895
0,8849
4
0,5072
0,2579
0,2579
0,3770
2,1913
0,3343
0,3343
1,1401
5
0,6383
0,2669
0,2669
0,4280
2,9065
0,3646
0,3646
1,3644
6
0,7813
0,2729
0,2729
0,4729
3,6737
0,3850
0,3850
1,5564
7
0,9347
0,2770
0,2770
0,5113
4,4852
0,3987
0,3987
1,7173
Ejemplo (red cerrada) L 16
14
Cola 1
12
10
8
6
4
Cola 4
2
Colas 2 y 3 0
0
2
4
6
8
10
12
14
16
18
20
m
Ejemplo (red cerrada) W 3.5
3
Cola 1 2.5
2
1.5
1
Cola 4
0.5
0
Colas 2 y 3 0
2
4
6
8
10
12
14
16
18
20
m
Ejemplo (red cerrada) Utilización del servidor (%) U=λ/μ= L/(Wμ)
100
Cola 1
90
80
70
Cola 4
60
50
40
30
20
Colas 2 y 3 10
0
2
4
6
8
10
12
14
m 16
18
20
Cuellos de botella z
z
z
Un cuello de botella en un sistema de colas es un nodo cuya capacidad de procesamiento determina el rendimiento de todo el sistema Definición: Sea una red de Jackson cerrada. Diremos que el nodo j es un cuello de botella sii Lj(m)→∞ cuando m→∞ En el ejemplo anterior el nodo 1 es un cuello de botella. Trabaja al límite de su capacidad mientras que los otros no (se quedan al 30% o al 70%). Para mejorar el rendimiento global del sistema habría que aumentar la capacidad de procesamiento del nodo 1