Está en la página 1de 16

INFORME TEORIA DE COLAS

AUTOR

RONALDO BALLESTEROS SALGUERO

DOCENTE

DR. JESUS EMILIO PINTO LOPERA

UNIVERSIDAD DE LA AMAZONIA
MODELOS PROBABILISTICOS Y SIMULACION
FLOENCIA, CAQUETA
2022
INTRODUCCION
Este trabajo fue realizado para simular una cola de espera de varios servidores utilizando
la distribución exponencial que esta distribución. La distribución exponencial es aquella que
modela el tiempo transcurrido entre[1].
dos sucesos que se producen de forma independiente, separada y uniforme en el tiempo.
Se dice que una v.a. X sigue una distribución exponencial de parámetro λ, y
se denota por X ∼ exp(λ), si su función de densidad es.

1 1
e ( x )= e x
μ μ

Distribución exponencial 
 
Suele referirse a la cantidad de tiempo que transcurre hasta que se produce algún evento
específico. Por ejemplo, la cantidad de tiempo (que comienza ahora) hasta que se produzca
un terremoto tiene una distribución exponencial[1]. 
 
Este método es utilizado para la generación de variables aleatorias y utilizado los números
pseudoaleatorio que se generaron con el método congruencial 
 
 
Una función de distribución de una v.a Exponencial viene dada por 

 
Por el método de la inversa tenemos que considerando la igualdad u=Fx(x), tenemos que
para 0 =< x, se verifica que  
 
 

También para la simulación se utilizó El modelo asume que el tiempo entre la llegada y el
tiempo de servicio son variables aleatorias exponenciales, la disciplina es FIFO y la población es
infinita[2].
METODOLOGÍA

Para el desarrollo metodología de este trabajo se utilizó las siguientes librerías, random es que nos
sirve para la generación de numero aleatorios, math que es la que nos facilita las matemáticas,
SymPy es una libreria usada para manejar de forma algebraica las expresiones matemáticas. Se
requiere definir el símbolo que representa la variable en la expresión, plotly.graph_objects es una
biblioteca de gráficos declarativa de alto nivel. plotly.js incluye más de 30 tipos de gráficos,
incluidos gráficos científicos, gráficos en 3D, gráficos estadísticos, mapas SVG, gráficos
financieros y más. Como se observa en la ilustración 1.

Ilustración 1

Luego seguimos pidiendo por consola los parámetros que se van a utilizar que va ser el numero de
servidores, tiempo de llegada, tiempo de simulación y número de clientes como ser observa en la
ilustración 2.

Ilustración 2
En el siguiente paso se crean las variables de tiempo total de espera, duración de servicio total,
minutos en el que finaliza y minllegada como se observa en la ilustración 3.

Ilustración 3

También se crea un método llamado servicio que este método nos permitirá saber los tiempos de
servicios de los servidores primero definimos global dt para poder acceder a la variable dt
declarada anteriormente, se define R = random.random() para obtener un numero aleatorio y lo
guarda en R, También utilizamos la distribución exponencial tiempo_servicio = -
tiempo_simulacion * math.log(R) que es la distribución uniforme, después
yield env.timeout(tiempo_servicio) que nos permite correr el tiempo n minutos y por ultimo un
acumulador de tiempo dt = dt + tiempo_servicio como se observa en la ilustración 4.

Ilustración 4
Se crea el método cliente que resivira por parámetros env, name y personal que los vamos a
necesitar luego llamamos las variables te y fin en el método, creamos una variable llega igual a env
donde guarda el minuto de llegada del cliente se crea un with para la espera del turno con
yield request obtendrá el turno, pasa = env.now guarda el minuto cuando comienza a ser atendido,
luego con espera = pasa – llega se calcula el tiempo que espero y creamos un acumulador de los
tiempos de espera te = te + espera e invocamos el método servicios, después se guarda el minuto en
que termino el servicio y por ultimo con fin = deja conservamos globalmente el últimos minuto de
la simulación como se observa en la ilustración 5.

Ilustración 5

Para hacer la salida del algoritmo se necesitó de la librería plotly.graph_objects que nos permite
hacer una matriz para los datos se nos proporciona el algoritmo se creo un condicional donde
recibirá por parámetro name==Cliente y le pasamos todas la variables que queremos graficar en la
matriz como se observa en la ilustración 6.

Ilustración 6
Por ultimo creamos un método principal donde va a recibir por parámetro env y personal
inicializamos la variable llegada en 0, minllegada y i, la variable minmax=(TOT_HORAS)*60 para
que tome el tiempo en horas creamos un while que va a recibir minllegada<=minmax, en el while
igualamos R= random.random(), después utilizamos la distribución exponencial llegada = -
LLEGADA * math.log(r) y con el yield dejamos transcurrir un tiempo entre uno y otro como se
observa en la ilustración 7

Ilustración 7

Luego creamos un objeto entorno a la simulación, también se crea la cantidad de servidores, por
último, se llama al método principal y se inicializa la simulación como se observa en la ilustración 8

Ilustración 8
Ya por último es hacer las impresiones con los print donde vamos a obtener la totalidad de clientes
atendidos, la longitud promedio de la cola, tiempo de espera promedio, uso promedio de los
servidores, duracion de servicio total, promedio de atención servicio y tiempo final de atencion
como se observa en la ilustración 9

Ilustración 9
RESULTADOS

Prueba 1
Para la primera prueba que se realizó se utilizó 8 servidores, el tiempo de llegada de los clientes de
1 min, el tiempo de servicio del servidor de 12 min y las horas totales de atención 1 hora como se
observa en la ilustración 10.

Ilustración 10

Ya en la salida de la matriz podemos observar la cantidad de clientes tiempos de llegada por cliente,
tiempo de atención por cliente, tiempo de espera de cada cliente, tiempo de servicio del servidor y
tiempo en el que deja el servidor como se observa en la ilustración 11.
Ilustración 11

Y por último también obtenemos la longitud promedio de la cola, tiempo de espera promedio,
promedio de la instalación y la duración total de servicio como se observa en la ilustración 12.

Ilustración 12
Prueba 2

Para la primera prueba que se realizó se utilizó 4 servidores, el tiempo de llegada de los clientes de
2 min, el tiempo de servicio del servidor de 5 min y las horas totales de atención 1 hora como se
observa en la ilustración 13.

Ilustración 13

Ya en la salida de la matriz podemos observar la cantidad de clientes tiempos de llegada por cliente,
tiempo de atención por cliente, tiempo de espera de cada cliente, tiempo de servicio del servidor y
tiempo en el que deja el servidor como se observa en la ilustración 14.

Ilustración 14
Y por último también obtenemos la longitud promedio de la cola, tiempo de espera promedio,
promedio de la instalación y la duración total de servicio como se observa en la ilustración 15.

Ilustración 15
Prueba 3

Para la primera prueba que se realizó se utilizó 3 servidores, el tiempo de llegada de los clientes de
1 min, el tiempo de servicio del servidor de 10 min y las horas totales de atención 1 hora como se
observa en la ilustración 16.

Ilustración 16

Ya en la salida de la matriz podemos observar la cantidad de clientes tiempos de llegada por cliente,
tiempo de atención por cliente, tiempo de espera de cada cliente, tiempo de servicio del servidor y
tiempo en el que deja el servidor como se observa en la ilustración 17.

Ilustración 17
Y por último también obtenemos la longitud promedio de la cola, tiempo de espera promedio,
promedio de la instalación y la duración total de servicio como se observa en la ilustración 18.

Ilustración 18
CONCLUSIONES

Lo primero que se puede concluir es que cuando solo hay un servidor en servicio, después del
primer cliente siempre cola de espera para los demás clientes y el tiempo de servicio del servidor se
tuvo que ampliar con respecto al tiempo estipulado de funcionamiento para poder atender a los
clientes que estaban todavía en la cola.

Como segunda conclusión se puede observar que con 2 servidores en servicio solo hasta el 6 cliente
le toco esperar en la cola para ser atendido, pero igualmente al servidor le toco extender el tiempo
de servicio para poder terminar de atender a los clientes que todavía estaban en la cola del servidor.

Ya en la tercera prueba con 4 servidores se puede observar que a ningún cliente le toco esperar ya
pero se igual forma el tiempo del servicio del servidor le toco extender para poder atender todos los
clientes que estaban en la cola del servidor.
REFERENCIAS

[1] “5.2-Distribución Exponencial.”


http://cidecame.uaeh.edu.mx/lcc/mapa/PROYECTO/libro19/52distribucin_exponencial.html
(accessed Nov. 0+1, 2022).

[2] “Tema 4. Probabilidad y variables aleatorias.”


[3] P. Estadística Aplicada, “TEORÍA DE COLAS: MODELOS M/M/s.”

También podría gustarte