Está en la página 1de 27

COMUNICACIÓN DE DATOS

TEORIA DE COLAS
RAFAEL AUQUI
1

Contenido
Tablas ............................................................................................................................................ 2
Tema .............................................................................................................................................. 3
Objetivos ....................................................................................................................................... 3
Objetivo General ....................................................................................................................... 3
Objetivos Específicos ................................................................................................................. 3
Marco teórico ................................................................................................................................ 3
Descripción de un sistema de colas .......................................................................................... 3
Características ....................................................................................................................... 3
Notación de Kendall .................................................................................................................. 5
Medidas de rendimiento ........................................................................................................... 6
Datos a recoger en un sistema de colas .................................................................................... 7
Cola M | M | 1 ........................................................................................................................... 7
Descripción del modelo ......................................................................................................... 7
Condición de no saturación ................................................................................................... 7
Probabilidades ....................................................................................................................... 8
Medidas de rendimiento ....................................................................................................... 8
Teorema de Little ...................................................................................................................... 9
Cola M | M | c ......................................................................................................................... 10
Descripción del modelo ....................................................................................................... 10
Condición de no saturación ................................................................................................. 10
Probabilidades ..................................................................................................................... 10
Medidas de rendimiento ..................................................................................................... 10
Cola M | M | 1 | k ................................................................................................................... 11
Descripción del modelo ....................................................................................................... 11
No saturación ...................................................................................................................... 11
Probabilidades ..................................................................................................................... 11
Medidas de rendimiento ..................................................................................................... 12
Redes de colas ......................................................................................................................... 12
Tipos de redes de colas ....................................................................................................... 12
Redes de Jackson abiertas ....................................................................................................... 13
Definición ............................................................................................................................ 13
Ecuaciones de equilibrio ..................................................................................................... 13
Condición de no saturación ................................................................................................. 14
2

Teorema de Jackson para redes abiertas ............................................................................ 14
Redes de Jackson cerradas ...................................................................................................... 15
Definición ............................................................................................................................ 15
Ecuaciones de equilibrio ..................................................................................................... 15
Análisis del valor medio ...................................................................................................... 15
Cuello de botella ..................................................................................................................... 16
Definición ............................................................................................................................ 16
Teorema de Jackson para redes abiertas ............................................................................ 16
Algoritmos en MATLAB ............................................................................................................... 17
MM1 Código en matlab ....................................................................................................... 17
Graficas obtenidas ............................................................................................................... 19
Algoritmo para análisis de la red cerrada (ejemplo diapositiva 85-92) .............................. 21
Conclusiones ............................................................................................................................... 25
Recomendaciones ....................................................................................................................... 26
Bibliografía .................................................................................................................................. 26

Ilustraciones
Ilustración 1 Un sistema de cola básico ........................................................................................ 3
Ilustración 2 Sistema de cola multicanal ....................................................................................... 5
Ilustración 3 Sistema multietapa con retroalimentación .............................................................. 5
Ilustración 4 Red abierta acíclica ................................................................................................. 13
Ilustración 5 Red cerrada ............................................................................................................ 13
Ilustración 6 Numero promedio de clientes ............................................................................... 20
Ilustración 7 Promedio de retrasos en sistema ........................................................................... 20
Ilustración 8 Diagrama de utilización .......................................................................................... 21
Ilustración 9 Ejercicio red cerrada, diapositiva 85 ...................................................................... 21
Tablas
Tabla 1 Simbología de la notación ................................................................................................ 6






3

Tema
Teoría de colas
Objetivos
Objetivo General
Simular un sitema de colas simple mediante el software MATLAB.
Objetivos Específicos
- Establecer diferencias entre los distintos modelos de colas simples.
- Simular el sistema de cola simple M | M | 1.
- Desarrollar el ejercicio ejemplo de las diapositiva N 92 de las diapositivas guias
mediante matlab.
Marco teórico
Descripción de un sistema de colas
Un sistema de colas se puede describir como: “clientes” que llegan buscando un servicio,
esperan si este no es inmediato, y abandonan el sistema una vez han sido atendidos. En
algunos casos se puede admitir que los clientes abandonan el sistema si se cansan de esperar.
El término “cliente” se usa con un sentido general y no implica que sea un ser humano, puede
significar piezas esperando su turno para ser procesadas o una lista de trabajo esperando para
imprimir en una impresora en red.

Ilustración 1 Un sistema de cola básico
Aunque la mayor parte de los sistemas se puedan representar como en la ilustración 1, debe
quedar claro que una representación detallada exige definir un número elevado de
parámetros y funciones.
Características
Se cuenta con seis características básicas que se deben utilizar para describir
adecuadamente un sistema de colas:
- Patrón de llegada de los clientes
- Patrón de servicio de los servidores
- Disciplina de cola
- Capacidad del sistema
- Número de canales de servicio
- Número de etapas de servicio
4

Patrón de llegada de los clientes
En situaciones de cola habituales, la llegada es estocástica, es decir la llegada
depende de una cierta variable aleatoria, en este caso es necesario conocer la
distribución probabilística entre dos llegadas de cliente sucesivas. Además habría
que tener en cuenta si los clientes llegan independiente o simultáneamente. En
este segundo caso (es decir, si llegan lotes) habría que definir la distribución
probabilística de éstos.
También es posible que los clientes sean “impacientes”. Es decir, que lleguen a la
cola y si es demasiado larga se vayan, o que tras esperar mucho rato en la cola
decidan abandonar.
Por último es posible que el patrón de llegada varíe con el tiempo. Si se mantiene
constante le llamamos estacionario, si por ejemplo varía con las horas del día es
no-estacionario.
Patrones de servicio de los servidores
Los servidores pueden tener un tiempo de servicio variable, en cuyo caso hay que
asociarle, para definirlo, una función de probabilidad. También pueden atender en
lotes o de modo individual.
El tiempo de servicio también puede variar con el número de clientes en la cola,
trabajando más rápido o más lento, y en este caso se llama patrones de servicio
dependientes. Al igual que el patrón de llegadas el patrón de servicio puede ser
no-estacionario, variando con el tiempo transcurrido
Disciplina de cola
La disciplina de cola es la manera en que los clientes se ordenan en el momento de
ser servidos de entre los de la cola. Cuando se piensa en colas se admite que la
disciplina de cola normal es FIFO. Sin embargo en muchas colas es habitual el uso
de la disciplina LIFO (atender primero al último). También es posible encontrar
reglas de secuencia con prioridades, como por ejemplo secuenciar primero las
tareas con menor duración o según tipos de clientes.
En cualquier caso dos son las situaciones generales en las que trabajar. En la
primera, llamada en inglés “preemptive”, si un cliente llega a la cola con una orden
de prioridad superior al cliente que está siendo atendido, este se retira dando paso
al más importante. Dos nuevos subcasos aparecen: el cliente retirado ha de volver
a empezar, o el cliente retorna donde se había quedado. La segunda situación es la
denominada “no-preemptive” donde el cliente con mayor prioridad espera a que
acabe el que está siendo atendido.
Capacidad del sistema
En algunos sistemas existe una limitación respecto al número de clientes que
pueden esperar en la cola. A estos casos se les denomina situaciones de cola
finitas. Esta limitación puede ser considerada como una simplificación en la
modelización de la impaciencia de los clientes.
5

Número de canales del servicio
Es evidente que es preferible utilizar sistemas multiservidos con una única línea de
espera para todos que con una cola por servidor. Por tanto, cuando se habla de
canales de servicio paralelos, se habla generalmente de una cola que alimenta a
varios servidores mientras que el caso de colas independientes se asemeja a
múltiples sistemas con sólo un servidor.
En la ilustración 1 se dibujó un sistema mono-canal, en la ilustracion2 se presenta
dos variantes de sistema multicanal. El primero tiene una sola cola de espera,
mientras que el segundo tiene una sola cola para cada canal.

Ilustración 2 Sistema de cola multicanal
Etapas de servicio
Un sistema de colas puede ser unietapa o multietapa. En los sistemas multietapa
el cliente puede pasar por un número de etapas mayor que uno. Una peluquería
es un sistema unietapa, salvo que haya diferentes servicios (manicura, maquillaje)
y cada uno de estos servicios sea desarrollado por un servidor diferente.
En algunos sistemas multietapa se puede admitir la vuelta atrás o “reciclado”,
esto es habitual en sistemas productivos como controles de calidad y reprocesos.

Ilustración 3 Sistema multietapa con retroalimentación
Notación de Kendall
Para representar los problemas de puede hacerse uso de 6 símbolos separados por barras.
A / B / X /Y / Z /V
- A: indica la distribución de tiempo entre llegadas consecutivas (modelo de llegadas)
- B: alude al patrón de servicio de servidores, puede tomar los mismos valores de A
(modelo de servicios)
- X: es el número de canales de servicio (servidores)
- Y: es la restricción en la capacidad del sistema (numero máximos de clientes en el
sistema)
- Z: es la disciplina de cola. Se puede omitir si es FIFO
- V: es el número de estados de servicio, Se puede omitir si es 1
En la siguiente tabla se indican los símbolos más ocupados:
6

Tabla 1 Simbología de la notación

El símbolo G representa una distribución general de probabilidad, es decir, que el modelo
presentado y sus resultados son aplicables a cualquier distribución estadística (siempre que
sean Variables IID- Independientes e Idénticamente Distribuidas).
es FIFO, no se suelen
incorporar dichos símbolos en la notación así:
M/D/3 es equivalente a M/D/3/∞/FIFO
Significa que los clientes entran según una distribución exponencial, se sirven de manera
determinista con tres servidores sin limitación de capacidad en el sistema y siguiendo una
estrategia FIFO de servicio.
La notación anteriormente representada, por general, deja demasiados casos por resolver,
pero es suficiente para los casos más importantes.
Medidas de rendimiento
La tarea de un analista de colas puede ser de dos tipos:
- Establecer mecanismos para medir la efectividad del sistema o
- Diseñar un sistema “óptimo” (de acuerdo a algún criterio).
Diseñar eficientemente consiste, básicamente, en definir un sistema cuyo coste (de diseño y
operación) se justifique por el servicio que da. Dicho servicio se puede evaluar mediante el
coste de “no darlo”. De este modo al diseñar se pretende minimizar unos supuestos costes
totales.
A partir de los datos que nos suministra la teoría de colas se puede obtener la información
necesaria para definir el número de asientos necesarios en una sala de espera, o la estructura
de etapas de un proceso de atención al cliente.
En cualquier caso, para poder tomar decisiones hacen falta datos que la teoría de colas puede
dar en alguno de los siguientes aspectos:
- L: Número medio de clientes en el sistema
7

- W: Tiempo medio de espera de los clientes
- L
q
: Número medio de clientes en la cola
- W
q
:Tiempo medio de espera en cola de los clientes,
Datos a recoger en un sistema de colas
A priori se puede pensar que el método más adecuado para recoger datos al analizar un
sistema es establecer una plantilla y recoger los datos sobre el sistema cada cierto tiempo.
Esta técnica es “orientada al tiempo”
Es mejor, sin embargo, utilizar una técnica de recogida de información asociada a eventos. “La
información se recoge cuando algo ocurre”
En una cola convencional los únicos datos a recoger son:
• cada cuánto llega un cliente
• cuánto se tarda en servir a cada cliente
No es necesario recoger más información para, a partir de las relaciones expuestas en el
apartado anterior, definir cualquier medida de efectividad.
Cola M | M | 1
Descripción del modelo
Una cola M/M/1 tiene un único servidor y las tasas de llegada y de servicio siguen una
distribución de Poisson, siendo por tanto:
• La tasa de llegada es a(t)=

• La tasa de salida es a(t)=

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
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á:

Cuando una cola no se satura, también se dice que alcanza el estado estacionario.

µ
ì
µ µ = < donde , 1
8

Probabilidades
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 p
n
de que haya n clientes en el sistema, donde neN:

Medidas de rendimiento
El número medio de clientes en el sistema, L, se calcula así:


Sumamos la serie aritmético geométrica:





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:

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





( ) µ µ ÷ = 1
n
n
p
( ) ( )
¿ ¿ ¿
·
=
·
=
·
=
÷ = ÷ = =
0 0 0
1 1
j
j
j
j
j
j
j j p j L µ µ µ µ
... 4 3 2
4 3 2
+ + + + = µ µ µ µ S
... 3 2
4 3 2
+ ÷ ÷ ÷ = ÷ µ µ µ µS
( )
µ
µ
µ µ µ µ µ
÷
= + + + + = ÷
1
... 1
4 3 2
S
( )
( ) µ
µ
µ
µ
µ
÷
=
÷
÷ = ¬
1 1
1
2
L
µ
µ
ì
µ ì = = ¬ = U U
( )
µ µ µ µ µ
1 1 1 1
1
0 0 0
+ = + = + =
¿ ¿ ¿
·
=
·
=
·
=
L
p p j p j W
j
j
j
j
j
j

Tiempo que se
pasa en el sistema
si hay j por delante
al llegar
Probabilidad de
que haya j por
delante al llegar
9


Se puede simplificar algo más, obteniendo:


El tiempo medio de espera en la cola W
q
se hallará restando a W el tiempo que tarda en ser
servido el trabajo (esto es válido para cualquier tipo de cola):


Particularmente para una cola M|M| 1, se tiene:


El número medio de trabajos en la cola L
q
, se calcula restándole a L el número medio de
trabajos que están siendo servidos:

Probabilidad de que un cliente que llega pase más de t unidades de tiempo en el sistema:

Probabilidad de que un cliente que llega pase más de t unidades de tiempo en la cola:

Teorema de Little
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:

Si aplico el teorema a la cola, dejando fuera del sistema al servidor, obtengo el siguiente
resultado, también muy útil:

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.
ì µ µ µ ÷
= + =
1 1 L
W
µ
1
÷ =W W
q
ì µ
µ
÷
=
q
W
( )
µ
µ
µ
µ
µ
µ
÷
= ÷
÷
= ÷ = ÷ ÷ =
1 1
1
2
0
L p L L
q
( )
W t
e t W
/ ÷
=
( )
W t
q
e t W
/ ÷
= µ
10

Cola M | M | c
Descripción del modelo

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
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á:


Cuando una cola no se satura, también se dice que alcanza el estado estacionario.

Probabilidades
Suponiendo que el sistema no se satura, se deduce la siguiente fórmula para las
probabilidades p
n
de que haya n clientes en el sistema, donde neN:



Medidas de rendimiento
El número medio de clientes en el sistema, L, se calcula así:


Por otra parte tenemos:

µ
ì
µ µ
c
donde = < , 1
( )
¦
¦
¹
¦
¦
´
¦
=
=
caso otro en ,
!
,..., 1 , 0 si ,
!
0
0
p
c
c
c n p
n
c
p
n c
n
n
µ
µ
( )
( )
1
1
0
0
! 1 !
÷
÷
=
|
|
.
|

\
|
+
÷
=
¿
c
n
n c c
n
c
c
c
p
µ
µ
µ
( )
2
0
1
1 ! µ
µ
÷
=
+
c
p c
L
c c
q
11

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:


Probabilidad de que un trabajo tenga que esperar para recibir su servicio (fórmula de retraso
de Erlang):


Cola M | M | 1 | k
Descripción del modelo
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
No saturación
El sistema nunca se satura, ya que la capacidad es limitada
Probabilidades
Se deduce la siguiente fórmula para las probabilidades p
n
de que haya n clientes en el sistema,
donde ne{0, 1, 2, …, k}:



El valor de µ determina cómo varían los p
n
:
- 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
µ
µ
ì
ì µ c S S = = ¬ =
( ) µ
µ
÷
=
1 !
0
c
p c
q
c c
( )
¦
¦
¹
¦
¦
´
¦
=
+
=
÷
÷
=
+
1 si ,
1 k
1
1 si ,
1
1
1
µ
µ
µ
µ µ
k
n
n
p
12

- 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
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
<ì):

Número medio de clientes en el sistema (este valor siempre debe ser inferior a k):



Se puede obtener las demás medidas de rendimiento mediante razonamientos ya vistos,
teniendo en cuenta que la tasa efectiva de llegadas al sistema es ì
ef
:



Redes de colas
Una red de colas es un sistema donde existen varias colas y los trabajos van fluyendo de una
cola a otra, por ejemplo:
- Fabricación (trabajos=artículos)
- Oficinas (trabajos=documentos)
- Redes de comunicaciones (trabajos=paquetes)
- Sistemas operativos multitarea (trabajos=tareas)
Tipos de redes de colas
Se distinguen dos tipos de redes de colas:
Abiertas
Cada trabajo entra al sistema en un momento dado, y tras pasar por una o más colas,
sale del sistema, Dos subtipos:
• Acíclicas: Un trabajo nunca puede volver a la misma cola (no existen
ciclos)
• Cíclicas: Hay bucles en la red
( )
k ef
p ÷ = 1 ì ì
( )
¦
¦
¹
¦
¦
´
¦
=
=
÷
+
÷
÷
=
+
+
1 si ,
2
1 si ,
1
1
1
1
1
µ
µ
µ
µ
µ
µ
k
k
L
k
k
W L
ef
ì =
q ef q
W L ì =
µ
1
+ =
q
W W
13


Ilustración 4 Red abierta acíclica
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.

Ilustración 5 Red cerrada
Redes de Jackson abiertas
Definición
Una red de colas abierta se dice que es de Jackson si:
• Sólo hay una clase de trabajos
• Los enrutados son probabilísticos, donde r
ij
> 0 es la probabilidad de ir al
nodo j después de haber salido del nodo i, Por otro lado, r
i0
es la
probabilidad de abandonar del sistema después de haber salido del nodo i,
donde r
i0
= 1– ∑
j
r
ij

• Cada nodo i es una cola .M|M|c
i

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
Dado que el flujo total de entrada a un nodo debe ser igual al flujo total de salida del nodo,
tendremos que:


{ }
1
, 1,...,
K
i i j ji
j
r i K
=
ì = ¸ + ì ¬ e
¿
14

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
Para que ninguna de las colas del sistema se sature, es preciso que se cumpla la siguiente
condición:


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
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:


Donde p
i
(n
i
) es la probabilidad de que haya n
i
clientes en el nodo i, calculada según las
ecuaciones del modelo M|M|c.
Consecuencia
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:
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:


Número medio de trabajos en el sistema, L
red
, que es la suma de los número medios de
trabajos en cada uno de los nodos:


Tiempo medio en el sistema, W
red
, que es el tiempo medio que pasa una tarea desde que entra
en la red hasta que sale de ella:

{ }
i i
i
i i
c
donde K i
µ
ì
µ µ = < e ¬ , 1 , ,..., 2 , 1
1
1
( ) ( ), , , 0
K
i i K
i
p p n n n
=
= ¬ >
[
n
¿
=
=
K
i
i red
1
¸ ì
¿
=
=
K
i
i red
L L
1
red
red
red
L
W
ì
=
15


Razón de visitas al nodo i, V
i
, que es el número medio de veces que un trabajo visita el nodo i
desde que entra en la red hasta que sale:


En una red acíclica habrá de cumplirse que V
i
s1 ¬ie{1,2,,,,,K}, ya que cada tarea visitará cada
nodo a lo sumo una vez.
Redes de Jackson cerradas
Definición
Una red de colas cerrada se dice que es de Jackson si:
• Sólo hay una clase de trabajos
• Los enrutados son probabilísticos, donde r
ij
> 0 es la probabilidad de ir al nodo j
después de haber salido del nodo i,
• Cada nodo i es una cola .M|M|c
i

• 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
Dado que el flujo total de entrada a un nodo debe ser igual al flujo total de salida del nodo,
tendremos que:


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
Las siguientes medidas de rendimiento para M tareas en el sistema:
– L
i
(M)=Número medio de tareas en el nodo i
– W
i
(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 hallan mediante las siguientes ecuaciones:


{ }
red
i
i
V K i
ì
ì
= e ¬ , ,..., 2 , 1
{ }
* *
1
, 1,...,
K
i j ji
j
r i K
=
ì = ì ¬ e
¿
{ } { }
{ } { }
*
*
1
( 1)
1
( ) , 1,..., 1,...,
( )
( ) , 1,..., 1,...,
( )
j
j
j j j
j j
j K
i i
i
L m
W m j K m M
c
W m
L m m j K m M
W m
=
÷
= + ¬ e ¬ e
µ µ
ì
= ¬ e ¬ e
ì
¿
16






Se trata de un algoritmo iterativo que va calculando L
i
(m), W
i
(m) para valores crecientes de m
a partir de m=0
Cuello de botella

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 si L
j
(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

Teorema de Jackson para redes abiertas
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:


Donde p
i
(n
i
) es la probabilidad de que haya n
i
clientes en el nodo i, calculada según las
ecuaciones del modelo M|M|c.
Consecuencia
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:
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:


1
1
( ) ( ), , , 0
K
i i K
i
p p n n n
=
= ¬ >
[
n
¿
=
=
K
i
i red
1
¸ ì
{ } { }
( )
( ) , 1,..., 1,...,
( )
j
j
j
L m
m j K m M
W m
ì = ¬ e ¬ e
{ } (0) 0, 1,...,
j
L j K = ¬ e
17

Número medio de trabajos en el sistema, L
red
, que es la suma de los número medios de
trabajos en cada uno de los nodos:


Tiempo medio en el sistema, W
red
, que es el tiempo medio que pasa una tarea desde que entra
en la red hasta que sale de ella:


Razón de visitas al nodo i, V
i
, que es el número medio de veces que un trabajo visita el nodo i
desde que entra en la red hasta que sale:


En una red acíclica habrá de cumplirse que V
i
s1 ¬ie{1,2,,,,,K}, ya que cada tarea visitará cada
nodo a lo sumo una vez.
Algoritmos en MATLAB
MM1 Código en matlab
El siguiente código implementado en matlab, simula la cola simple MM1 para un total de 750
clientes, el limite mazimo del sistema será de 200000.
%Implementacion de una cola M/M/1
limite_cola=200000; %limite del sistema
tmedio_llegada(1:65)=0.01;
tmedio_servicio=0.01;
sim_paquete=750; %numero de clientes a ser simulados
util(1:65)=0;
prom_en_cola(1:65)=0;
prom_retraso(1:65)=0;
P(1:65)=1;

for j=1:64 %bucle para aumentar el tiempo medio de llegada
tmedio_llegada(j+1)=tmedio_llegada(j)+0.001;
num_eventos=2;
%inicializacion
t_sim = 0.0; %tiempo de simulacion
estado_servidor=0;
tam_cola=0;
t_ultimo_evento=0.0;

num_paq_ensist=0;
total_retrasos=0.0;
tiempo_en_cola=0.0;

¿
=
=
K
i
i red
L L
1
red
red
red
L
W
ì
=
{ }
red
i
i
V K i
ì
ì
= e ¬ , ,..., 2 , 1
18

tiempo_en_servidor=0.0;
retraso = 0.0;
t_prox_evento(1)=t_sim+exponential(tmedio_llegada(j+1));
t_prox_evento(2)=exp(30);
disp(['Simulando',num2str(j)]);

while(num_paq_ensist < sim_paquete)
mint_prox_evento=exp(29);
tipo_evento=0;
for i=1:num_eventos
if(t_prox_evento(i)<mint_prox_evento)
mint_prox_evento = t_prox_evento(i);
tipo_evento = i;
end;
end

if(tipo_evento == 0)
disp(['No evento a tiempo ',num2str(t_sim)]);
end

t_sim = mint_prox_evento;
t_desde_ultimo_evento = t_sim - t_ultimo_evento;
t_ultimo_evento = t_sim;
tiempo_en_cola = tiempo_en_cola + tam_cola *
t_desde_ultimo_evento ;
tiempo_en_servidor = tiempo_en_servidor + estado_servidor *
t_desde_ultimo_evento;


if (tipo_evento==1)

%disp(['paquete llegado']);
t_prox_evento(1) = t_sim + exponential(tmedio_llegada(j+1));

if(estado_servidor == 1)

num_paq_ensist = num_paq_ensist + 1;
tam_cola = tam_cola + 1 ;

if(tam_cola > limite_cola)
disp(['Tamano de cola = ', num2str(tam_cola)]);
disp(['Bloqueo del sistema en',num2str(t_sim)]);
pause
end

t_llegada(tam_cola) = t_sim;

else

estado_servidor = 1;
t_prox_evento(2) = t_sim + exponential(tmedio_servicio);

end

elseif (tipo_evento==2)

% ---------------servicio y salida---------------

19

if(tam_cola == 0)
estado_servidor = 0;
t_prox_evento(2) = exp(30);
else

tam_cola = tam_cola - 1;
retraso = t_sim - t_llegada(1);
total_retrasos = total_retrasos + retraso;
t_prox_evento(2) = t_sim + exponential(tmedio_servicio);

for i = 1:tam_cola
t_llegada(i)=t_llegada(i+1);
end
end

end

end

%resultados
util(j+1) = tiempo_en_servidor/t_sim;
prom_en_cola(j+1) = tiempo_en_cola/t_sim;
prom_retraso(j+1) = total_retrasos/num_paq_ensist;
P(j+1) = tmedio_servicio./tmedio_llegada(j+1);

End
%----------------------graficas--------------------------------
figure('name','Numero promedio de clientes en sistema(simulado)');
plot(P,prom_en_cola,'r');
Xlabel('P');
Ylabel('Numero promedio de clientes');
axis([0 0.92 0 15]);

figure('name','Promedio de retrasos en sistema(simulado)');
plot(P,prom_retraso,'m');
Xlabel('P');
Ylabel('Promedio retrasos (hrs)');
axis([0 0.92 0 0.15]);

figure('name', 'Diagrama de Utilizacion');
plot(P,util,'b');
Xlabel('P');
Ylabel('Utilizacion');
axis([0 0.92 0 1]);

Graficas obtenidas

20


Ilustración 6 Numero promedio de clientes

Ilustración 7 Promedio de retrasos en sistema
21


Ilustración 8 Diagrama de utilización
Algoritmo para análisis de la red cerrada (ejemplo diapositiva 85-92)

Ejercicio

Ilustración 9 Ejercicio red cerrada, diapositiva 85
Debemos conocer las ecuaciones de equilibrio:


En el ejemplo tenemos como datos:
r
12
=0,3; r
14
=0,7; r
23
=1; r
31
=1; r
41
=1;
* * * * *
1 3 31 4 41 2 1 12
; ; r r r ì = ì + ì ì = ì
* * * *
3 2 23 4 1 14
; r r ì = ì ì = ì
22

con lo cual la solución es, tomando ì
1
*=1:
Para el cálculo de las iteraciones ocupamos las siguientes formulas planteadas:








Algoritmo en matlab

%red cerrada, ejemplo diapositivas 85-93
%rafael auqui
%-------------------inicializacion de valores------------
%tasa de salidas relativas a nodo
lambda1=1
r12=0.3;
r14=0.7;
r23=1;
r31=1;
r41=1;
m=0;
%Ecuaciones de equilibrio
%lambda1=lamba3*r31+lambda4*r41 tomamos el valor de lambda1=1 como en
%ejemplo de las diapositivas
lambda2=lambda1*r12
lambda3=lambda2*r23
lambda4=lambda1*r14

%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

%----------para m=1---------------------------------------------------
---------------------
for i=1:4
L(i,1)=0;
end
for i=1:4
W(i,1)=(1+L(i,1))/5;
end
denominador=
lambda1*W(1,1)+lambda2*W(2,1)+lambda3*W(3,1)+lambda4*W(4,1)
L(1,1)= 1*(lambda1*W(1,1))/denominador;
L(2,1)= 1*(lambda2*W(2,1))/denominador;
L(3,1)= 1*(lambda3*W(3,1))/denominador;
{ }
1 ( 1)
( ) , 1,..., 4
5
j
j
L m
W m j
+ ÷
= ¬ e
1
1
1 2 3 4
( )
( )
( ) 0,3 ( ) 0,3 ( ) 0,7 ( )
W m
L m m
W m W m W m W m
=
+ · + · + ·
2
2
1 2 3 4
0,3 ( )
( )
( ) 0,3 ( ) 0,3 ( ) 0,7 ( )
W m
L m m
W m W m W m W m
·
=
+ · + · + ·
3
3
1 2 3 4
0,3 ( )
( )
( ) 0,3 ( ) 0,3 ( ) 0,7 ( )
W m
L m m
W m W m W m W m
·
=
+ · + · + ·
4
4
1 2 3 4
0,7 ( )
( )
( ) 0,3 ( ) 0,3 ( ) 0,7 ( )
W m
L m m
W m W m W m W m
·
=
+ · + · + ·
23

L(4,1)= 1*(lambda4*W(4,1))/denominador;
%----------para m=2---------------------------------------------------
---------------------
for i=1:4
W(i,2)=(1+L(i,1))/5;
end
denominador=
lambda1*W(1,2)+lambda2*W(2,2)+lambda3*W(3,2)+lambda4*W(4,2)
L(1,2)= 2*(lambda1*W(1,2))/denominador;
L(2,2)= 2*(lambda2*W(2,2))/denominador;
L(3,2)= 2*(lambda3*W(3,2))/denominador;
L(4,2)= 2*(lambda4*W(4,2))/denominador;

%----------para m=3---------------------------------------------------
---------------------
for i=1:4
W(i,3)=(1+L(i,2))/5;
end
denominador=
lambda1*W(1,3)+lambda2*W(2,3)+lambda3*W(3,3)+lambda4*W(4,3)
L(1,3)= 3*(lambda1*W(1,3))/denominador;
L(2,3)= 3*(lambda2*W(2,3))/denominador;
L(3,3)= 3*(lambda3*W(3,3))/denominador;
L(4,3)= 3*(lambda4*W(4,3))/denominador;
%----------para m=4---------------------------------------------------
---------------------
for i=1:4
W(i,4)=(1+L(i,3))/5;
end
denominador=
lambda1*W(1,4)+lambda2*W(2,4)+lambda3*W(3,4)+lambda4*W(4,4)
L(1,4)= 4*(lambda1*W(1,4))/denominador;
L(2,4)= 4*(lambda2*W(2,4))/denominador;
L(3,4)= 4*(lambda3*W(3,4))/denominador;
L(4,4)= 4*(lambda4*W(4,4))/denominador;
L % los datos de la columna i corresponden a los valores con m=i
W% los datos de la fila i corresponden a los valores con m=i

Resultados obtenidos en las diapositivas:
m W
1
(m) W
1
(m) W
1
(m) W
1
(m) L
1
(m) L
2
(m) L
3
(m) L
4
(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
24

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

Resultados del algoritmo

Donde:

Observamos que los datos obtenidos son los adecuados, concluyendo que el algoritmo
desarrollado es el correcto.
Graficas obtenidas

m=1 m=2 m=3 m=4
m=1
m=2
m=3
m=4
25




Podemos observar que las gráficas encontradas son iguales, se diferencian en el m empleado
para la simulación en el caso del algoritmo se empleó m=4, mientras que para el ejercicio de
las diapositivas se emplea un m=19
Conclusiones
• Una cola M | M | 1 | k, a diferencia de las colas simples M | M | 1 y M | M | c nunca
se satura puesto que su capacidad es limitada.
• No se pudo encontrar una fórmula para generar el número medio de tareas en el nodo
(Lj(m))y el tiempo medio que cada tarea pasa en el nodo (Wj(m)) esto se debe a que
W es dependiente de cálculos posteriores de L.
• Existe gran complejidad complejidad para generar el algoritmo para valores de m altos,
debido a esto se realizó la simulación de las colas del ejercicio ejemplo de las
diapositivas con valores de m hasta 4.
• Se logró desarrollar de manera correcta el script en MATLAB para el ejercicio
planteado en las diapositivas.
26


Recomendaciones
• Para el caso del segundo ejercicio se recomienda emplear un m mucho mayor, para
visualizar la perfecta concordancia con los datos del ejemplo de las diapositivas, pero
esto implica la optimización del algoritmo desarrollado, caso contrario el código sería
demasiado extenso.
Bibliografía
[1] Fuente: http://personales.upv.es/jpgarcia/LinkedDocuments/Teoriadecolasdoc.pdf. tomado el
sábado 28 de diciembre de 2013 a las 10:20 Hrs.
[2] Fuente: http://sisbib.unmsm.edu.pe/bibvirtualdata/publicaciones/electronica/Marzo_2002/pdf/,
tomado el sábado 28 de diciembre de 2013 a las 14:56 Hrs.