101
Universidad Autónoma de Nuevo León Facultad de Ingeniería Mecánica y Eléctrica División de Estudios de Posgrado Simulación de una línea de espera no homogénea por Efraín Soto Apolinar en opción al grado de Maestría en Ciencias en Ingeniería de Sistemas San Nicolás de los Garza, Nuevo León enero 2010

Universidad Autónoma de Nuevo Leónpisis.fime.uanl.mx/ftp/pubs/thesis/msc/2010-efrain_soto/efrain... · Un sistema de líneas de espera está formado por clientes y servidores. El

Embed Size (px)

Citation preview

Universidad Autónoma de Nuevo León

Facultad de Ingeniería Mecánica y Eléctrica

División de Estudios de Posgrado

Simulación de una línea de espera no

homogénea

por

Efraín Soto Apolinar

en opción al grado de

Maestría en Ciencias

en Ingeniería de Sistemas

San Nicolás de los Garza, Nuevo León enero 2010

Universidad Autónoma de Nuevo León

Facultad de Ingeniería Mecánica y Eléctrica

División de Estudios de Posgrado

Simulación de una línea de espera no

homogénea

por

Efraín Soto Apolinar

en opción al grado de

Maestría en Ciencias

en Ingeniería de Sistemas

San Nicolás de los Garza, Nuevo León enero 2010

Universidad Autónoma de Nuevo LeónFacultad de Ingeniería Mecánica y Eléctrica

División de Estudios de Posgrado

Los miembros del Comité de Tesis recomendamos que la Tesis «Simulación de

una línea de espera no homogénea», realizada por el alumno Efraín Soto Apolinar,

con número de matrícula 1474027, sea aceptada para su defensa como opción al

grado de Maestría en Ciencias en Ingeniería de Sistemas.

El Comité de Tesis

Dr. César Emilio Villarreal Rodríguez

Asesor

Dr. Fernando López Irraragori Dr. José Arturo Berrones Santos

Revisor Revisor

Vo. Bo.

Dr. Moisés Hinojosa Rivera

Subdirector de Posgrado

División de Estudios de Posgrado

San Nicolás de los Garza, Nuevo León, enero 2010

Este trabajo está dedicado a:

Mis padres por la educación que me dieron.

Mi hermana Elizabeth y su esposo Gabriel, por apoyarme por más de doce años en

Quintana Roo, y a mis sobrinos por soportarme todo ese tiempo.

Anita, porque continuamente me está motivando a hacer las cosas mejor cada vez.

Índice

Agradecimientos xii

Resumen xiii

1 Introducción 1

1.1 Descripción del problema . . . . . . . . . . . . . . . . . . . . . . . . . 1

1.2 Antecedentes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

1.3 Justificación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

1.4 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

1.5 Metas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2 Aplicaciones de los sistemas de líneas de espera 9

2.1 Supermercados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

2.2 Restaurantes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

2.3 Hospitales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

2.4 Telefonía celular . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

2.5 Internet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

2.6 Procesamiento de información . . . . . . . . . . . . . . . . . . . . . . 14

v

Índice vi

2.7 Tránsito vehicular . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

2.8 Casetas de cobro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

2.9 Estacionamientos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

2.10 Otras aplicaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

3 Plataforma propuesta 19

3.1 Características . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

3.1.1 Naturaleza de las llegadas . . . . . . . . . . . . . . . . . . . . 20

3.1.2 Tasa de servicio . . . . . . . . . . . . . . . . . . . . . . . . . . 20

3.1.3 Atributos de los clientes . . . . . . . . . . . . . . . . . . . . . 21

3.1.4 Comportamiento de los clientes . . . . . . . . . . . . . . . . . 21

3.1.5 Mecanismo de servicio . . . . . . . . . . . . . . . . . . . . . . 21

3.1.6 Capacidad del sistema . . . . . . . . . . . . . . . . . . . . . . 22

3.1.7 Tamaño de la población . . . . . . . . . . . . . . . . . . . . . 22

3.1.8 Disciplina de la fila . . . . . . . . . . . . . . . . . . . . . . . . 23

3.2 Visualización . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

3.3 Reportes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

3.4 Otras consideraciones . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

4 Prototipo de simulador 27

4.1 Prototipo LenH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

4.2 Algoritmo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

4.3 Descripción del parser . . . . . . . . . . . . . . . . . . . . . . . . . . 32

Índice vii

4.4 Características del equipo de cómputo . . . . . . . . . . . . . . . . . 34

4.5 Validación del simulador . . . . . . . . . . . . . . . . . . . . . . . . . 35

4.6 Sistemas ficticios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

4.6.1 Variación de la frecuencia . . . . . . . . . . . . . . . . . . . . 37

4.6.2 Variación de la media . . . . . . . . . . . . . . . . . . . . . . . 38

4.6.3 λ(t) definida por intervalos . . . . . . . . . . . . . . . . . . . . 40

5 Análisis de resultados 48

5.1 Variaciones en la función λ . . . . . . . . . . . . . . . . . . . . . . . . 48

5.1.1 Variación de la frecuencia . . . . . . . . . . . . . . . . . . . . 48

5.1.2 Variación de la media . . . . . . . . . . . . . . . . . . . . . . . 51

5.1.3 Funciones definidas por intervalos . . . . . . . . . . . . . . . . 53

5.2 Conclusiones y recomendaciones . . . . . . . . . . . . . . . . . . . . . 54

6 Trabajo futuro 56

6.1 Plataforma propuesta . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

6.2 Prototipo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

6.3 Simulaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

A Apéndices 60

A.1 Definiciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60

A.2 Resultados de las simulaciones . . . . . . . . . . . . . . . . . . . . . . 61

A.2.1 Variación de la frecuencia . . . . . . . . . . . . . . . . . . . . 61

Índice viii

A.2.2 Variación de la media . . . . . . . . . . . . . . . . . . . . . . . 62

A.2.3 λ(t) definidas por intervalos . . . . . . . . . . . . . . . . . . . 62

A.3 Instructivo del prototipo . . . . . . . . . . . . . . . . . . . . . . . . . 77

A.3.1 Botones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

A.4 Diagrama de clases . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83

Lista de figuras

1.1 Elementos de una línea de espera. . . . . . . . . . . . . . . . . . . . . 1

4.1 Interfaz gráfica del simulador LenH. . . . . . . . . . . . . . . . . . . 30

4.2 Algoritmo usado por el simulador . . . . . . . . . . . . . . . . . . . . 43

4.3 Periodo de la función cosenoidal. . . . . . . . . . . . . . . . . . . . . 44

4.4 Variación de L y Lq al cambiar la frecuencia de la función periódica

λ(t) con µ = 40.0. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

4.5 Variación de ρ al cambiar la frecuencia de la función periódica λ(t)

con µ = 40.0. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

4.6 Variación de L y Lq al cambiar λ. . . . . . . . . . . . . . . . . . . . . 45

4.7 Variación de ρ al cambiar λ. . . . . . . . . . . . . . . . . . . . . . . . 46

4.8 Variación de L y Lq al cambiar λ. . . . . . . . . . . . . . . . . . . . . 46

4.9 Variación de ρ al cambiar λ. . . . . . . . . . . . . . . . . . . . . . . . 47

A.1 Diagrama de dependencia de clases del simulador LenH. . . . . . . . 83

ix

Lista de tablas

4.1 Resultados usados en la validación del prototipo LenH . . . . . . . . 35

4.2 Variación de parámetros de desempeño al cambiar la frecuencia de la

función periódica λ(t) con µ = 40.0. . . . . . . . . . . . . . . . . . . . 38

4.3 Variación de parámetros de desempeño al cambiar λ con µ = λ+ 5.0. 39

4.4 Variación de parámetros definiendo λ. . . . . . . . . . . . . . . . . . . 42

A.1 Resultados de la simulación usando λ(t) = 25 cos(2 · πt) + 30 . . . . . 61

A.2 Resultados de la simulación usando λ(t) = 25 cos(πt) + 30 . . . . . . 62

A.3 Resultados de la simulación usando λ(t) = 25 cos(t) + 30 . . . . . . . 63

A.4 Resultados de la simulación usando λ(t) = 25 cos(πt/2) + 30 . . . . . 64

A.5 Resultados de la simulación usando λ(t) = 25 cos(πt/4) + 30 . . . . . 65

A.6 Resultados de la simulación usando λ(t) = 25 cos(πt/8) + 30 . . . . . 66

A.7 Resultados de la simulación usando λ(t) = 25 cos(πt/12) + 30 . . . . . 67

A.8 Resultados de la simulación usando λ(t) = 10 cos(2πt) + 10 . . . . . . 68

A.9 Resultados de la simulación usando λ(t) = 10 cos(2πt) + 20 . . . . . . 69

A.10 Resultados de la simulación usando λ(t) = 10 cos(2πt) + 30 . . . . . . 70

A.11 Resultados de la simulación usando λ(t) = 10 cos(2πt) + 40 . . . . . . 71

x

Lista de tablas xi

A.12 Resultados de la simulación usando λ = 0.55 . . . . . . . . . . . . . . 72

A.13 Resultados de la simulación usando λ = 0.65 . . . . . . . . . . . . . . 73

A.14 Resultados de la simulación usando λ = 0.75 . . . . . . . . . . . . . . 74

A.15 Resultados de la simulación usando λ = 0.85 . . . . . . . . . . . . . . 75

A.16 Resultados de la simulación usando λ = 0.95 . . . . . . . . . . . . . . 76

Agradecimientos

Al Programa de Posgrado en Ingeniería de Sistemas (PISIS) por permitirme ser parte

de la familia.

A la Universidad Autónoma de Nuevo León y a la Facultad de Ingeniería

Mecánica y Eléctrica por todo el apoyo otorgado todo este tiempo.

Al Consejo Nacional de Ciencia y Tecnología (CONACYT) por el apoyo económico

otorgado, sin el cual la realización de esta meta hubiera sido casi imposible.

A todos los profesores del PISIS por la ayuda que ofrecen continuamente a

todos sus estudiantes y por motivarnos a llegar a ser lo que somos capaces de ser.

A la comunidad PISIS por tolerarme y auxiliarme cada vez que necesité algún

apoyo.

A mi esposa por apoyarme incondicionalmente.

A mi familia por el apoyo moral.

A Dios por permitirme llegar hasta aquí.

xii

Resumen

Efraín Soto Apolinar.

Candidato para el grado de Maestro en Ciencias

con especialidad en Ingeniería de Sistemas.

Universidad Autónoma de Nuevo León.

Facultad de Ingeniería Mecánica y Eléctrica.

Título del estudio:

Simulación de una línea de espera no

homogénea

Número de páginas: 86.

Objetivos y método de estudio: El objetivo principal del presente trabajo

consiste en proponer una plataforma para simular sistemas de líneas de espera no

homogéneas para que sirva de apoyo a los administradores de sistemas que puedan

estudiarse a través de este modelo.

Contribuciones y conlusiones: Se desarrolló un prototipo de simulador de

líneas de espera no homogéneas que permite al usuario definir la tasa de llegadas de

clientes al sistema como una función del tiempo.

Con el uso de este prototipo se analiza el efecto que tiene la variación de la

tasa de llegadas en los parámetros de desempeño del sistema de líneas de espera.

xiii

Resumen xiv

En particular, se consideran funciones periódicas de tasa de llegadas de clientes

al sistema. Se estudia el efecto del cambio de la frecuencia de la función periódica,

así como del valor promedio de la función.

También se consideran funciones escalonadas, definidas constantes por inter-

valos y se propone un parámetro para medir la fracción del tiempo que la tasa de

llegadas de clientes al sistema está por encima de la tasa media.

Se define el parámetro λ, que mide la fracción del tiempo en que siendo λ(t)

constante en un intervalo, cumple: λ(t) > λ en un sistema de líneas de espera no

homogéneas. En este trabajo se muestra que este parámetro tiene una relación lineal

con el coeficiente de ocupación del servidor (ρ).

Firma del asesor:

Dr. César Emilio Villarreal Rodríguez

Capítulo 1

Introducción

1.1 Descripción del problema

Una línea de espera consiste básicamente de una fila. Por ejemplo, la fila que forman

los pacientes en un consultorio médico. Otro ejemplo lo constituye la fila de vehículos

que se forma cuando esperan a que la luz del semáforo cambie a color verde.

Un sistema de líneas de espera está formado por clientes y servidores. El

término cliente se refiere a cualquier cosa (persona, máquina, camión, etc.) que

llega al sistema porque requiere de algún servicio. El término servidor se refiere a

aquello que provee el servicio requerido (cajero, mecánico, chofer, etc.)

Población

de clientes

Clientes

Servidor µλ

Figura 1.1: Elementos de una línea de espera.

Una vez que llega un cliente al sistema, si existe un servidor desocupado, éste

atenderá al cliente que acaba de llegar. En caso contrario, el cliente hará fila para

esperar su turno.

Más especificamente, los elementos que describen a un sistema de líneas de

espera son los que se describen a continuación.

1

Capítulo 1. Introducción 2

Número de servidores: Un servidor es una unidad de servicio que atiende a un

cliente a la vez. Los servidores pueden formar arreglos en serie o en paralelo o

una combinación de ambos.

Capacidad del sistema: nos indica el número máximo de clientes que pueden es-

tar dentro del sistema simultáneamente, algunos en servicio y otros esperando

en la fila.

Disciplina de la fila: indica el criterio que se usa para atender a los clientes que

están dentro del sistema. FIFO se refiere a que se atiende al cliente en el

mismo orden en que fueron llegando, en LIFO se atiende primero al último

que entró al sistema, también se puede asignar Prioridad a cada cliente, o dar

el servicio al clientes en orden aleatorio, o bien dar servicio primero al que

toma menos tiempo servirlo. O también es posible servir simultáneamente

a todos los clientes, como ocurre en algunas estrategias de procesamiento de

información en una computadora.

Mecanismo de servicio: se refiere a la forma como se acomodan los servidores.

Comportamiento de los clientes: Los usuarios del sistema de líneas de espera

pueden ser pacientes y esperar el tiempo que se requiera para su servicio en

algunos sistemas. En otros casos pueden ser impacientes y abandonar el sis-

tema cuando el tiempo de espera se ha prolongado demasiado, por ejemplo, en

un banco. Igualmente, es posible que los clientes no puedan cambiar de una

fila a otra dentro del sistema una vez que han decidido unirse a una fila, pero

también es posible que puedan cambiarla, como ocurre frecuentemente en los

supermercados.

El sistema se ve afectado por los siguientes elementos:

Población: representa a los clientes potenciales del sistema. Lo que nos interesa de

la población es su tamaño, si es finita o infinita. El tamaño de la población

Capítulo 1. Introducción 3

indicará si existe un cambio en la probabilidad de que lleguen más clientes al

sistema dependiendo del número de clientes en él.

Naturaleza de las llegadas de clientes al sistema: tasa de llegadas, es decir,

el número de clientes que llegan al sistema por unidad de tiempo y cómo

están distribuidos los tiempos entre llegadas. En general, cuando suponemos

que los clientes llegan de manera independiente unos de otros, la distribución

exponencial es aplicable. Sin embargo, es posible que lleguen en grupos, como

por ejemplo, la llegada de comensales a un restaurante.

El estudio de las líneas de espera se justifica al intentar mejorar el desempeño

de estos sistemas.

El desempeño de una línea de espera se puede medir a partir de algunos de los

siguientes parámetros:

Longitud esperada de la fila: el número de clientes promedio que esperan servi-

cio.

Número esperado de clientes en el sistema: el promedio del número de clientes

que están en servicio, más los que esperan servicio en la fila. Este parámetro

también se denomina estado del sistema.

Tiempo promedio de un cliente en el sistema: que indica el promedio del tiempo

que un cliente permanece en el sistema.

Si la longitud de la fila crece indefinidamente, entendemos que la tasa de llegada

λ es mayor que la tasa de servicio µ.

En general, los tiempos entre llegadas de los clientes al sistema puede presentar

distintas distribuciones de probabilidad.

Cuando tasa de llegadas de clientes al sistema no cambia a lo largo del tiempo

que opera el proceso, lo llamamos homogéneo. Por otra parte, cuando esta tasa

Capítulo 1. Introducción 4

depende del tiempo en que ocurre el evento, y posiblemente del estado del sistema,

la línea de espera es no homogénea.

Algunos procesos pueden estudiarse adecuadamente como una línea de espera

homogénea. Sin embargo existen muchos otros que no solo no es conveniente, sino

que cuando se consideran como procesos homogéneos, los resultados terminan siendo

evidentemente incorrectos.

Entonces se justifica definir la tasa de llegadas de clientes al sistema como una

función del tiempo λ(t), para obtener resultados de los análisis que se hagan del

sistema en estudio más apegados al sistema real.

Cuando la tasa de servicio (µ) es constante a lo largo del tiempo y λ es una

función del tiempo el problema se hace interesante, pues existe la posibilidad de que

en algunos intervalos se viole la condición λ < µ.

La pregunta que surge es: “¿cuánto tiempo le tomará al sistema volver a un

estado estable dadas µ y λ(t) para un tk para el cual se cumple λ(tk) > µ?”

El prototipo de simulador elaborado en este trabajo (LenH), servirá para en-

contrar respuesta a este tipo de preguntas, que por ahora son analíticamente muy

difíciles, si no imposibles, de responder.

1.2 Antecedentes

Existe una infinidad de sistemas que presentan problemas de optimización donde se

involucra la operación de una línea de espera.

Como ejemplo consideremos el caso de un inversionista que está interesado

en iniciar un restaurante de comida mexicana. Él requiere saber cuánto personal

necesita para su nuevo restaurante de manera que no tenga demasiado personal

inactivo, pero que a su vez los comensales no esperen demasiado desde el momento

en que ordenan sus platillos hasta que lo reciben en su mesa.

Capítulo 1. Introducción 5

La cantidad de cocineros, meseros, así como el tamaño del local, cantidad de

mesas que requiere, etc., son importantes para no invertir en materias y/o personal

de manera innecesaria.

Con una inversión inicial superior a lo requerida, el inversionista reducirá su

ganancia debido a que pagará demasiado en salarios e invirtió mucho en equipo

(refrigeradores, quemadores, etc.) y materiales (mesas, sillas, etc.). Seguramente

alquiló (o construyó) un local más grande de lo requerido y eso implica mayores costos

en acondicionamiento (aire acondicionado, iluminación, etc.) y en mantenimiento.

La línea de espera en el restaurante se forma por la lista de personas que va

ordenando platillos y que llegan a la cocina para ser preparados.

Con las demás condiciones iguales, si los comensales esperan demasiado para

recibir los platillos que ordenaron, la próxima vez preferirán ir a otro restaurante

donde el tiempo de espera sea menor. Este es un lujo que el administrador del

restaurante no se puede dar.

Para estimar los parámetros que miden el desempeño de una línea de espera en

sistemas como el antes mencionado se puede desarrollar una simulación a través de

una computadora. A través de la simulación, podemos experimentar con diferentes

escenarios ficticios y obtener información que ayudará al administrador a tomar

decisiones más apegadas a la situación de su establecimiento.

En la actualidad existe mucho software diseñado especialmente para la

elaboración de simulaciones. Entre el software existente se encuentran los lenguajes

de alto nivel (C++, ANSI-C, JAVA, etc.) y otros paquetes diseñados para la simu-

lación de procesos, por ejemplo: GPSS, SIMAN, ARENA, SIMSCRIPT, SLAM II,

MODSIM III, Scilab, Octave, etc.

También existen otros paquetes elaborados para realizar cálculo simbólico o

programación con fines de simulación. Entre estos últimos se pueden mencionar:

Maple, Mathematica, Matlab, entre otros.

Capítulo 1. Introducción 6

Inclusive, algunos de ellos (por ejemplo, Maple) cuentan con una interfaz exclu-

siva para realizar simulaciones. Sin embargo, estas interfaces no eximen la necesidad

de la habilidad de programación para simular sistemas no homogéneos.

1.3 Justificación

Una simulación permite el estudio de un sistema real sin necesidad de afectarlo en

su operación diaria.

El analista de sistemas de líneas de espera con esta herramienta podrá encontrar

información que le ayudará a tomar decisiones para mejorar el desempeño del sistema

simulado.

Por ejemplo, ¿en cuánto se reduce el tiempo promedio de un cliente en el

sistema si agregamos un servidor más?, ¿qué fracción del tiempo la fila es mayor a

12 clientes?, etc.

Un simulador de sistemas de líneas de espera auxiliará al tomador de decisiones

de una manera sencilla, rápida y eficaz en la evaluación de distintos escenarios del

sistema real que está siendo simulado sin necesidad de afectarlo en su desempeño

debido a las pruebas.

Los analistas de sistemas de líneas de espera no homogéneas requieren conocer

los parámetros de desempeño del sistema para sugerir mejoras al administrador del

sistema.

Sin embargo, actualmente no se tienen fórmulas para el cálculo de estos parámet-

ros de una manera analítica, de forma que se necesariamente debemos realizar una

simulación de la línea de espera.

Al ver este requerimiento de los usuarios, decidimos elaborar un prototipo de

simulador que permita la simulación de sistemas de líneas de espera no homogéneas

donde el usuario pueda especificar directamente la función de intensidad de llegadas

Capítulo 1. Introducción 7

de clientes al sistema dependiente del tiempo: λ = f(t).

La ventaja de realizar la simulación de la línea de espera considerando la tasa de

llegadas de clientes al sistea consiste en que los tiempos entre llegadas generados por

la simulación estarán más apegados al comportamiento real del sistema, supuesto que

el sistema en estudio se apegue con muy buena aproximación a la función λ = λ(t).

Esto puede favorecer un estudio a detalle del comportamiento del sistema sim-

ulado.

Además, cuando los parámetros de desempeño de un sistema de línea de espera

no homogénea dependen de la naturaleza de la función λ(t).

Es decir, si calculamos los parámetros de desempeño del sistema no homogéno

como si se tratara de un caso homogéneo utilizando el promedio de λ(t), los resultados

podrían ser diferentes y a causa de esto, el analista del sistema sugerir medidas

erróneas que no tendrán el mismo efecto en el sistema simulado.

1.4 Objetivos

Los objetivos que se persiguen en este trabajo son los siguientes:

1. Adquirir, mediante un estudio profundo, el conocimiento de la estructura del

problema y sus características particulares.

2. Verificar resultados teóricos de los procesos de Poisson no homogéneos a través

de una simulación de computadora.

3. Simular sistemas ficticios o reales para su estudio y para validar el prototipo de

simulador.

4. Obtener una herramienta pedagógica para la enseñanza de las teorías de líneas de

espera que muestre la utilidad de la simulación de sistemas a través de lenguajes

de programación de alto nivel.

Capítulo 1. Introducción 8

5. Proponer una plataforma para la simulación de sistemas o parte de los mismos

que se puedan estudiar a través de la teoría de las líneas de espera.

Finalmente, el simulador propuesto puede servir para dar inicio a una infinidad

de propuestas de líneas de trabajo futuro, por ejemplo, la optimización del tránsito

vehicular en la ciudad y zona metropolitana de Monterrey, N.L., que estan fuera del

alcance de este trabajo.

1.5 Metas

Para el desarrollo de este trabajo se han establecido las siguientes metas:

1. Crear un prototipo de simulador de líneas de espera no homogéneas en el lenguaje

de programación Java.

2. Validar el prototipo de simulador.

3. Elaborar un análisis de los diferentes sistemas donde se pueden presentar proble-

mas relacionados con las líneas de espera y describir los posibles retos que pueden

encontrar los administradores de los mismos.

4. Utilizar el prototipo de simulador para estimar los principales parámetros de

desempeño de diferentes sistemas de líneas de espera no homogéneas.

Capítulo 2

Aplicaciones de los sistemas de

líneas de espera

Frecuentemente, cuando se requiere del estudio de una línea de espera no homogénea,

debido a la carencia de un simulador para sistemas de este tipo se utiliza uno de

líneas homogéneas y se supone la tasa de llegadas de clientes al sistema constante

por intervalos.

Esto puede ocasionar resultados erróneos y sugerir conclusiones que en lugar

de mejorar el desempeño del sistema ocasionen desempeño más pobre [6].

En este capítulo consideramos algunos ejemplos de aplicaciones de líneas de

espera que justifican el desarrollo de un simulador de sistemas de líneas de espera

no homogéneas.

2.1 Supermercados

Llamamos supermercado a una tienda de autoservicio que cuenta con una o varias

cajas registradoras arregladas en paralelo donde los clientes pagan los productos que

desean adquirir.

En general, la cantidad de clientes que llegan a un supermercado depende de

la hora del día, y al menos en México, del día del mes o de la semana.

9

Capítulo 2. Aplicaciones de los sistemas de líneas de espera 10

Al inicio de su operación, el administrador debe, a partir de una estimación

basada en información recolectada de negocios cercanos, determinar cuántas cajas

abrir los primeros días en que se abre el supermercado en cuestión.

En estos días de inicio, generalmente los administradores elaboran una estrate-

gia de publicidad muy fuerte para atraer la mayor cantidad de clientes al negocio.

Para su desgracia, algunas (si no es que todas sus cajeras) tienen apenas unas horas

de experiencia y los clientes potenciales que visitan por primera vez el supermercado

pueden llevarse una mala experiencia debido al tiempo que deben esperar para pagar

los productos que han decidido comprar.

Por otra parte, una vez que el negocio ya ha alcanzado una estabilidad en

cuanto a la cantidad de clientes que reciben en un día promedio, el administrador

ahora debe decidir la cantidad de cajas que operarán y designar un horario para sus

cajeras.

Un análisis estadístico de la cantidad de clientes que se atienden y la distribu-

ción de la cantidad de productos que compran se puede elaborar a partir de la

información recopilada en las cajas que se guarda para cuestiones administrativas y

hacendarias.

En las fechas en que se celebran fiestas, como la navidad, el día de las madres,

etc., en general, las cajeras no se dan abasto y eso ocasiona largas filas y grandes

tiempos de espera. Para estos días el administrador necesita conocer cuántas cajas

rápidas1 debe abrir, y además, otros problemas que se podrían analizar como líneas

de espera, por ejemplo, los pedidos a los proveedores de diferentes insumos.

2.2 Restaurantes

En un restaurante se abre con cero clientes y se espera a que lleguen los comensales

cerca de la hora del desayuno, de la comida, o de la cena, aunque rara vez también1Una caja rápida atiende a clientes que pagarán menos de 10 productos, generalmente.

Capítulo 2. Aplicaciones de los sistemas de líneas de espera 11

llegan clientes en otras horas.

El restaurante cuenta con una cantidad de mesas donde los clientes pueden sen-

tarse a seleccionar los platillos que ordenarán, esperarán a que éstos sean preparados

y después consumirán.

Para una cantidad dada de clientes se requieren además de mesas y sillas,

personal que realiza tareas interdependientes.

El recepcionista reserva una mesa a los clientes conforme se van solicitando o

se asigna conforme van llegando, los meseros ofrecen el menú en cuanto los clientes

llegan a la mesa y esperan a recibir la órden del cliente.

Una vez que la reciben, envían ésta al área de cocina donde los cocineros

preparan los platillos y una vez preparados avisan al jefe de meseros para que los

meseros lleven la orden a la mesa correspondiente.

Entretanto, el cliente puede solicitar bebidas, botanas, etc., y cualquier otro

aperitivo a los meseros.

Mientras los clientes consumen sus platillos pueden también solicitar bebidas o

algún otro requisito, como un plato vacío, más servilletas, hielo, un tenedor, palillos,

etc.

En cuanto los clientes han consumido sus alimentos y están listos para mar-

charse, piden la cuenta a un mesero, quien irá a la caja a solicitarla.

Los clientes salen del restaurante en cuanto han pagado su cuenta y abandonan

la sala.

Sin embargo, los meseros deben limpiar la mesa y dejarla lista para que otro

cliente la encuentre agradable en el momento de llegar a ella.

En este sistema es obvio que el administrador requiere calcular la cantidad de

mesas que debe acomodar en su local, el número de cocineros y ayudantes en el

área de cocina, la cantidad de meseros que trabajaran cada día y, en caso de que

Capítulo 2. Aplicaciones de los sistemas de líneas de espera 12

ofrezca el servicio de entrega a domicilio, el número de repartidores y motocicletas

(o cualquier otro medio de transporte) que requerirá para satisfacer la demanda de

los clientes que soliciten sus alimentos en esta modalidad.

2.3 Hospitales

En un hospital podríamos considerar varios sistemas de líneas de espera en cada

una de los consultorios y departamentos o áreas. Por ejemplo, en el área de urgen-

cias tenemos la llegada de pacientes con algún padecimiento grave que requiere de

atención inmediata.

Una vez que el paciente llega, se determina el grado de urgencia que su padeci-

miento amerita y se le atiende en caso de que no haya otro paciente que se considere

de mayor urgencia.

En otras palabras, la disciplina de la línea de espera en un hospital necesaria-

mente debe modelarse usando prioridad a la llegada de cada cliente del sistema.

El tiempo de servicio también es muy variable y depende directamente de la

gravedad del paciente, de manera que la distribución del tiempo de servicio en este

caso puede no ser exponencial. Probablemente se trate de una distribución general

o en su defecto, dependiente de la distribución de la gravedad de los pacientes que

van llegando al área de urgencias.

Para los pacientes que llegan a otras áreas, como por ejemplo, consultorios

de diferentes especialidades pueden presentar distribuciones exponenciales u otras

distribuciones en los tiempos de servicio de los pacientes, características de la espe-

cialidad, que pueden o no ser conocidas.

Capítulo 2. Aplicaciones de los sistemas de líneas de espera 13

2.4 Telefonía celular

Las comunicaciones a través de la telefonía celular han sufrido un crecimiento acen-

tuado por el avance en la tecnología electrónica y con ello, nuevos retos para los

administradores de estos sistemas.

Los administradores generalmente estan midiendo cuántas llamadas hace en

promedio el cliente y cuánto tarda en promedio cada llamada.

Al administrador le interesa, en particular, la distribución de estas dos canti-

dades, especialmente a la hora pico, del día más cargado de llamadas de la semana.

La distribución de estas cantidades se puede calcular a partir de los datos que se

almacenan en sus bases de datos para calcular los costos de las llamadas y estimar la

probabilidad de que una llamada no se pueda realizar debido a que todos los canales

para realizarla están ocupados, dada una población de clientes del sistema.

Obviamente, el administrador preocupado por dar el mejor servicio posible

a sus usuarios requiere conocer el número de llamadas que se pierden debido a la

capacidad del sistema (que ocurre en la hora pico de requerimiento de servicio).

Este parámetro le permitirá decidir más acertadamente en la necesidad de

aumentar el equipo que tiene para satisfacer una mayor demanda en esos intervalos

de tiempos.

2.5 Internet

Los datos se transfieren a través de Internet en forma de paquetes de información a

través de un número de switches, siguiendo un camino que se forma por las inter-

conexiones desde el punto de origen donde se solicita o envía información hasta un

destino.

En cada una de las interconexiones se forman filas durante el trayecto del punto

Capítulo 2. Aplicaciones de los sistemas de líneas de espera 14

origen al destino.

Generalmente un switch tiene una cantidad fija de puertos donde puede recibir

o enviar información a través de líneas de comunicación.

Cuando llega información a un switch de entrada, se crean paquetes de infor-

mación, normalmente del mismo tamaño, y estos paquetes son enviados a través de

la red.

El administrador requiere conocer el efecto de abrirN puertos en la distribución

de la longitud de la fila dada una carga de flujo de información. También desea

conocer si la longitud de la fila se ve afectada por la forma del proceso de llegada de

los paquetes de información.

Para el estudio de estos sistemas se consideran dos casos. En el primero se

considera que para cada paquete se conoce que el trayecto será independiente de los

demás con una probabilidad p. Esta suposición ocasiona que el proceso de llegadas

siga una distribución binomial con parámetros N y p.

En el segundo caso se supone que los procesos de llegadas de paquetes de infor-

mación a diferentes switches son independientes, pero que existe cierta correlación

entre las llegadas en cada una de las líneas de comunicación. El proceso de llegadas,

entonces, toma valores discretos, y es una cadena de Markov de parámetro discreto.

2.6 Procesamiento de información

Cuando una computadora está trabajando, generalmente están ocurriendo varios

procesos sin que el usuario lo note. Puede, por ejemplo, estar escuchando música,

editando un documento en un procesador de texto, y a la vez, descargando informa-

ción desde Internet.

Todo esto ocurre gracias a que dentro de la computadora hay un programa

(scheduler) que va asignando periodos de tiempo a cada uno de los procesos para

Capítulo 2. Aplicaciones de los sistemas de líneas de espera 15

que sean atendidos por el procesador.

Dependiendo de la pioridad asignada a cada uno de los procesos, el scheduler

indica qué proceso puede entrar al procesador para ser atendido temporalmente.

La fila de procesos que se forma para ser atendidos por el procesador (o los

procesadores, en caso de que la computadora tenga más de uno), debe ser atendida

considerando la priodidad asignada a cada proceso optimizando el tiempo total de

procesamiento.

Las longitudes de las filas en el scheduler crecen mucho en el arranque de la

computadora, porque debe cargar ciertos programas que le permiten a la computa-

dora funcionar correctamente (manejadores de hardware) y en algunos casos en los

que el usuario trabaja con muchas aplicaciones de manera simultánea y cada una de

ellas requiere de una buena carga de procesamiento.

2.7 Tránsito vehicular

Es muy bien conocido que la cantidad de vehículos que hay en una intersección

depende fuertemente de la hora del día a la que se realiza la observación.

Las autoridades de cada municipio siempre están tratando de mejorar el nivel

de vida de los habitantes de su municipio y eso conlleva la optimización de los

tiempos de transporte desde sus casas hasta sus lugares de trabajo, estudio y/o

esparcimiento.

La optimización del flujo de vehículos en una ciudad es un problema complejo,

independientemente del tamaño de la ciudad, pero obviamente, el número de inter-

secciones que tenga la red de calles y avenidas, los cambios en los números de carriles

en una misma avenida o de una avenida a otra en una intersección, la duración de la

luz verde en cada semáforo, el clima, la cultura vial de los conductores, entre otros

factores, afectan el desempeño de este complejo sistema que demanda optimización.

Capítulo 2. Aplicaciones de los sistemas de líneas de espera 16

Evidentemente, cada ciudad tiene sus particularidades. Una ciudad con una

mala planeación de crecimiento generalmente tiene un pésimo tránsito vehicular.

Otra ciudad con mejor planeación tendrá mejor tráfico, pero en ambas siempre es

deseable mejorar la vialidad para no aumentar los niveles de estrés de los habitantes

y disminuir los tiempos de traslado de un lugar a otro.

En estos sistemas se requiere conocer el tiempo que debe tardar cada una de

las luces del semáforo para optimizar el tránsito en cada cruce de avenidas y/o calles,

las avenidas y cruces de avenidas con mayor número de tránsito vehicular, el tipo de

vehículos que transitan esas vías (coches compactos, autobúses, camiones de carga,

etc.), la carga vehicular (número de vehículos que pasan por un punto de la vía de

comunicación en cuestión por unidad de tiempo), la capacidad de las avenidas y/o

calles de las intersecciones, entre otras variables que le ayudarán a tomar decisiones

para mejorar el desempeño del sistema.

A partir de esta información el administrador podrá decidir si es conveniente

invertir en la construcción de un paso a desnivel, abrir una nueva avenida para

desahogar el tránsito en una avenida con demasiada carga, modificar el tiempo que

tarda cada una de las luces del semáforo, entre otras medidas posibles para mejorar

la vialidad en su localidad.

2.8 Casetas de cobro

Cuando se construirá una autopista de cuota, se requiere, invariablemente de una

cantidad de casetas de cobro para que los viajeros cumplan con el pago de la cuota

debida al uso de la autopista.

El diseñador de la autopista debe determinar cuántas casetas construir a partir

de información estadística: cuántas personas podrían requerir el uso de la autopista,

crecimiento potencial de las ciudades que quedan conectadas por la autopista, número

de carriles que la autopista tendrá, etc.

Capítulo 2. Aplicaciones de los sistemas de líneas de espera 17

Una vez decidida la cantidad de casetas de cobro, se construyen y cuando

la autopista inicia su funcionamiento, se contrata al personal que atenderá a los

viajeros.

El diseñador debe tratar de estimar la respuesta a varias preguntas: ¿qué pasa

en los periodos de vacaciones si de inicio no se construyen casetas para todos los

carrilles y solamente se dejan una cantidad fija menor?, ¿cuál sería el ahorro en el

costo inicial del proyecto?, ¿cuánto aumenta el tiempo de espera de un cliente en la

época de vacaciones?, etc.

2.9 Estacionamientos

El diseño de un estacionamiento para un establecimiento comercial es de vital

importancia para utilizar de la manera más adecuada los recursos de espacio con

que se cuenta al inicio de un proyecto.

En este caso, la capacidad del sistema será finita, e igual al número de lotes

que se destinen a espacio para cada coche, la distribución de los tiempos de servicio

y de llegadas de los clientes al sistema dependerán de varios factores, entre los que

podemos mencionar ubicación dentro de la ciudad, tamaño de la ciudad, tipo de

establecimiento, etc.

No se comporta de la misma manera un estacionamiento de una tienda de

autservicio al de un estadio de fútbol, por ejemplo.

Una vez que el establecimiento comercial se diseñó y se contruyó, el administra-

dor debe conocer la fracción de los clientes que no encuentran espacio en el esta-

cionamiento y en qué días de la semana y las horas en las que esto ocurre más

frecuentemente.

También le interesa saber si algunos clientes dejan de visitar su establecimiento

a causa de que el estacionamiento es insuficiente en esos periodos de tiempo, y en

caso de ser así, qué fracción de los clientes se pierden y la posible disminución en sus

Capítulo 2. Aplicaciones de los sistemas de líneas de espera 18

ingresos debida a la pérdida de clientes.

2.10 Otras aplicaciones

Las aplicaciones mencionadas son simplemente una pequeña muestra de la inmensa

cantidad de sistemas que se pueden estudiar a través de una simulación de una línea

de espera no homogénea.

Muchas otras aplicaciones se pueden encontrar en otros sistemas como las ofic-

inas postales, centros de llamadas (call center), sistemas de producción, redes de

carreteras, servicios de transporte, etc.

Igualmente, a través de una simulación se pueden estudiar redes de líneas de

espera, que consisten en sistemas que contienen varias líneas de espera interrela-

cionadas unas con otras de manera que podemos analizar cómo afectan los parámet-

ros de desempeño de todo el sistema las características de cada subsistema.

Capítulo 3

Plataforma propuesta

En este capítulo se presenta una propuesta para el desarrollo de un simulador de

sistemas de líneas de espera que pueda ser aplicado a la mayor cantidad de sistemas

reales posibles.

Se consideran para esta propuesta los requerimientos básicos de los casos men-

cionados en el capítulo anterior.

Esta plataforma servirá para generar información como apoyo en la toma de

decisiones de los sistemas que se pueden modelar adecuadamente a través de líneas

de espera no homogéneas.

3.1 Características

Se estudiarán sistemas de líneas de espera que presentan diferencia en la naturaleza

de las llegadas de clientes al sistema y con tiempos de servicio con parámetro µ

constante respecto del tiempo.

Las que se han considerado para la plataforma propuesta son las que más

frecuentemente se han encontrado en los sistemas analizados en el capítulo anterior

de acuerdo a las referencias consultadas.

19

Capítulo 3. Plataforma propuesta 20

3.1.1 Naturaleza de las llegadas

Las distribuciones que más frecuentemente se encontraron en los tiempos entre lle-

gadas de los clientes al sistema y que se proponen para incluirse en la plataforma

son:

• Exponencial, Erlang,

• Binomial,

• Determinista,

• Constante,

• General.

Considerar también llegadas de varios clientes al sistema de manera simultánea (en

grupo).

3.1.2 Tasa de servicio

Las distribuciones que más frecuentemente se encontraron en las tasas de servicio de

los clientes por el sistema y que se proponen para incluirse en la plataforma son:

• Exponencial, Erlang,

• Binomial,

• Determinista,

• Constante,

• General.

Capítulo 3. Plataforma propuesta 21

3.1.3 Atributos de los clientes

Dependiendo del sistema, un cliente puede tener diferentes atributos.

Por ejemplo, en un supermercado, el número de productos que compra, en el

área de emergencias de un hospital, la gravedad del paciente, etc.

La distribución de cada una de estos atributos puede en algunos casos ser

conocida y el administrador puede querer incluirla en la simulación de su sistema.

Las que se pueden incluir en estos casos son:

• General,

• Determinista,

• Constante.

3.1.4 Comportamiento de los clientes

El comportamiento de los clientes dentro del sistema o justo antes de entrar puede

afectar de una manera importante los parámetros de desempeño del sistema.

Los que se sugiere se incluyan en la plataforma propuesta son:

• Si decide entrar o no al sistema, dependiendo del estado del mismo y/o de su

capacidad.

• Si se permite o no salirse del sistema después de esperar un rato en la fila.

• Si se permite o no cambiar de fila.

3.1.5 Mecanismo de servicio

El mecanismo de servicio se refiere a la forma como se acomodan los servidores en

el sistema para atender a los clientes.

Capítulo 3. Plataforma propuesta 22

Es posible encontrar sistemas con un único servidor, sistemas con varios servi-

dores arreglados en paralelo, como ocurre en los supermercados o en los bancos, un

único arreglo de servidores en serie como en las oficinas de gobierno al tramitar una

licencia de conducir, o un arreglo de servidores de p servidores en paralelo y s en

serie.

3.1.6 Capacidad del sistema

El sistema se debe considerar con capacidad finita cuando el número de clientes que

pueden estar dentro de él es constante y conocido.

Cuando el número de clientes que pueden estar en el sistema puede crecer tanto

como se requiera, entonces el sistema se modelará como un sistema con capacidad

infinita.

El simulador debe permitir la simulación de sistemas que trabajen en cualquiera

de estos casos.

3.1.7 Tamaño de la población

Con la finalidad de simplificar los cálculos estadísticos, se considera una población

finita cuando la probabilidad de que un cliente llegue al sistema en un intervalo

de tiempo dado se ve afectada por la cantidad de clientes que se encuentran en el

sistema.

Podemos considerar el tamaño de la población infinita cuando la probabilidad

de que llegue un cliente al sistema en un intervalo de tiempo dado no se vea afectada

por la cantidad de clientes que han llegado al mismo.

El simulador debe incluir a ambos.

Capítulo 3. Plataforma propuesta 23

3.1.8 Disciplina de la fila

La disciplina de la fila se refiere al criterio que se utiliza para determinar cuál es el

siguiente cliente que será atendido por el servidor una vez que esté desocupado.

Los más frecuentes son:

• FIFO, es decir, los clientes se atienden en el mismo orden que llegaron al

sistema.

• LIFO, en el cual los clientes se atienden en el orden inverso al que llegaron al

sistema.

• Pr, Asignando prioridades a los clientes.

• SIRO, Servir en orden aleatorio.

• SPT, Servir primero a los que toma menos tiempo en servir.

• SIM, Servir a todos los clientes de manera simultánea.

• BATCH, Servir a los clientes por grupos.

Se sugiere se incluyan al menos estas disciplinas de la fila para permitir una amplia

gama de posibilidades para los administradores de los sistemas de líneas de espera.

3.2 Visualización

El simulador debe permitir (de manera opcional) ver cómo avanza la simulación en

una ventana que muestre los clientes que llegan al sistema, cómo éstos van de un

servidor a otro en el arreglo de servidores en serie, cómo salen del sistema, etc.

En caso de que los clientes tengan características distintivas, como por ejemplo,

un grado de molestia, que puede ser proporcional al tiempo que llevan en el sistema e

inicialmente proporcional a la longitud de la fila que encuentra al llegar, el simulador

Capítulo 3. Plataforma propuesta 24

debe indicar a través de un cambio gradual de color (por ejemplo, del negro al rojo)

cómo va aumentanto el grado de molestia de cada cliente dentro del sistema, de

manera que al llegar a una intensidad de rojo puro (100%) decida abandonar el

sistema y no volver.

El usuario del simulador podrá variar la velocidad de la simulación a través

de una slide bar, por múltiplos enteros (al doble, al triple, etc.) del tiempo real

(equivalente al tiempo de procesamiento) vs. el tiempo del sistema (el tiempo que

el sistema simulado ha estado trabajando, de acuerdo a la simulación).

Igualmente, para un control estadístico y para el auxilio en la toma de decisiones,

el simulador debe permitir al usuario mostrar un histograma de las proporciones de

los tiempos que el sistema se encuentra en los diferentes estados (cero clientes, un

cliente, etc.)

Esto sugerirá al administrador la necesidad de cambiar el número de servidores

del sistema o de cambiar la disposición de los mismos o bien, la disciplina de la

fila. Igualmente, es posible arrancar con algunos servidores que atiendan a clientes

que cumplan con una característica especial (por ejemplo, que tengan un grado de

molestia alto).

Igualmente, es conveniente que el simulador genere la simulación sin una visual-

ización y se grabe toda la información en un archivo. El simulador debe permitir leer

la información de este archivo y mostrar de manera visual cada evento, avanzando el

el tiempo, o en sentido inverso. Esto ayudará a los analistas como al administrador

del sistema a entenderlo mejor.

3.3 Reportes

Diferentes administradores están interesados en distintos aspectos de su sistema.

El simulador debe dar una amplia gama de posibilidades de reportes. El usuario

debe poder indicar qué variables incluir en el reporte final de la simulación.

Capítulo 3. Plataforma propuesta 25

Entre las variables y estimadores que el administrador pudiera requerir están:

• Número promedio de clientes en el sistema

• Número de clientes máximo y la hora a la que ocurrió

• Tiempo promedio de espera en fila del cliente

• Tiempo promedio de un cliente en el sistema

• Fracción del tiempo que el servidor está ocioso

• Fracción del tiempo que el número de clientes en el sistema es 0, 1, 2, etc.

(sistemas con un único servidor)

• Gráfica de la distribución del número de clientes en el sistema (sistemas con

varios servidores).

• Fracción del tiempo en que la fila promedio en el sistema es mayor a un valor

k ∈ N, dado.

• El tiempo promedio entre arribos calculado a partir de los valores de los tiem-

pos entre llegadas generado por el simulador.

• El tiempo total de operación del sistema de acuerdo a la simulación.

• El tiempo total que se requirió para que el simulador hiciera el procesamiento.

• Fracción de los clientes que abandona el sistema debido a que alcanzó el nivel

máximo de molestia.

• Fracción de los clientes que se pierden debido a la capacidad del sistema.

• Fracción de los clientes que deciden no entrar al sistema debido a su estado a

la hora a la que llegan al mismo.

Capítulo 3. Plataforma propuesta 26

3.4 Otras consideraciones

Cada reporte debe incluir los datos del sistema: número de servidores y cómo están

arreglados, disciplina de la fila, función λ(t), capacidad del sistema, etc.

Para facilitar el análisis de sistemas reales es recomendable que el simulador

permita al usuario leer datos desde un archivo, por ejemplo, los valores de los tiempos

en los que ocurrieron las llegadas de los clientes al sistema y que el software calcule

los parámetros del sistema de acuerdo a esos datos históricos.

Igualmente, incluir herramientas para determinar si un conjunto de datos pre-

sentan alguna distribución con algún parámetro conocido, o calcular alguna estadís-

tica de datos grabados en archivo.

Esto permitirá al usuario conocer mejor su sistema y tomar decisiones para su

óptimo funcionamiento.

En algunos sistemas es muy frecuente el uso de servidores que tienen diferente

tasa de servicio. Por ejemplo, en los supermercados, consideran cajas rápidas para

atender clientes que desean adquirir una cantidad pequeña de productos. Incluir

en la plataforma este tipo de opciones permitirá al usuario obtener resultados más

apegados al sistema que administra en la realidad.

Capítulo 4

Prototipo de simulador

Para este trabajo se desarrolló un prototipo de simulador de líneas de espera no

homogéneas que hemos denominado LenH, y que se describe enseguida.

4.1 Prototipo LenH

El prototipo de simulador LenH permite simular sistemas con procesos de llegadas

Poisson no homogéneos, es decir, tasas de llegadas de clientes al sistema λ(t) como

una función del tiempo (siendo t la variable tiempo) y distribución con parámetro

λ(t) evaluada en el valor de t en el cual la simulación se encuentra.

El sistema simulado a través de este prototipo consta de c servidores que tra-

bajan en paralelo. La tasa de servicio de cada uno de los servidores es una variable

aleatoria independiente que presenta una distribución exponencial con parámetro

constante y conocido µ.

Una vez que un cliente llega al sistema, ingresa a la fila que tenga la menor

longitud de fila que encuentra en el sistema.

La disciplina de la fila del sistema simulado es FIFO, es decir, los clientes son

atendidos por los servidores en el mismo orden en que fueron ingresando a sus filas

respectivas.

El sistema simulado tiene una capacidad infinita. La población de clientes

27

Capítulo 4. Prototipo de simulador 28

potenciales que pueden llegar al sistema es infinita.

El usuario debe indicar la cantidad de unidades de tiempo que se realizará la

simulación del sistema junto con los otros parámetros antes indicados. Esto permite

al usuario simular funciones definidas por intervalos, de manera que al detenerse la

simulación el usuario puede definir una nueva función λ(t) y continuar la simulación

considerando los valores obtenido hasta desde 0 hasta ese valor del tiempo.

El simulador calculará los siguientes parámetros de desempeño del sistema

simulado:

3 Número de clientes promedio en el sistema (L(prom)),

3 Longitud de la fila promedio (Lq(prom))

3 Probabilidad de que el sistema esté vacío (P_0)

3 Intensidad de tránsito a través del sistema (rho)

También se indican para cada ciclo de la simulación el número de arribos y de

servicios realizados hasta ese valor de t, el número de clientes promedio en el sistema

y la fila promedio en el sistema para ese valor del tiempo en la simulación.

La interfaz gráfica del simulador también incluye una ventana de texto que

muestra datos particulares de cada uno de los eventos que se generan en la simulación,

a lo largo de ésta.

El primer renglón de la caja de texto muestra la siguiente cadena de caracteres:

# t_L t_Q t_Serv t_Sal L_bar t lambda(t) Serv L(t)[Id]

Esta cadena de caracteres servirá como referencia para mostrar en la misma caja de

texto los valores de las diferentes variables que idenfican a cada uno de los eventos

que ocurren en el sistema simulado, de acuerdo con la simulación.

• El primer signo (#) indicará, bien A, bien S, en un arribo o en una salida,

respectivamente.

Capítulo 4. Prototipo de simulador 29

• t_L → es el tiempo en que llegó el cliente al cual se refiere el evento de ese

renglón (cliente actual).

• t_Q → es el tiempo que el cliente actual permaneció en la fila.

• t_Serv → es el tiempo de servicio del cliente actual.

• t_Sal → el tiempo en el cual salió el cliente actual del sistema.

• L_bar → es el número de clientes en el sistema promedio desde que inició

la simulación.

• t → es el tiempo en el que está ocurriendo el evento actual.

• lambda(t) → es la tasa de arribos de clientes al sistema para ese valor del

tiempo.

• Serv → es un número entero ∈ [0, c] que identifica al servidor en el cual

ocurrió el evento actual.

• L(t)[Id] → es el número de clientes en el servidor actual. [Id] → es

el identificador del cliente.

La interfaz gráfica del simulador se muestra en la figura 4.1 .

Al realizar una simulación, el usuario obtiene, además de los parámetros mostra-

dos en la interfaz gráfica, varios archivos de texto. Cada uno de los archivos de texto

contienen diferentes variables que pueden servir para graficar en un software para

ese fin.

Los archivos generados por el simulador son:

• L.txt que contiene el número de clientes en el sistema en el tiempo t y el valor

del tiempo t.

• Lbar.txt que contiene el número de clientes promedio en el sistema (de toda

la simulación) hasta el tiempo t y el valor del tiempo t.

Capítulo 4. Prototipo de simulador 30

Figura 4.1: Interfaz gráfica del simulador LenH.

• resultados.txt que contiene los mismos datos que se incluyen en la ventana

de resultados de la interfaz gráfica del simulador.

Al inicio de cada uno de los archivos se graba información referente al sistema que

está siendo simulado, de manera que el lector conozca su origen. La forma como se

graba esta información es como se muestra a continuación:

# Simulacion de una linea de espera no homogenea.

# Informacion del sistema simulado:

# lambda(x) = 25.0 * cos(PI * x / 12.0) + 27.85

# x representa la variable <<tiempo>>

# mu = 39.75

# Servidores en paralelo = 1

Inmediatamente después se graban los datos que le corresponden a cada archivo,

iniciando siempre con el valor del tiempo en la simulación.

De manera semejante, al final de cada archivo se indican los valores de los

parámetros que tienen mayor importancia en el desempeño del sistema de líneas de

espera, como se muestra enseguida:

Capítulo 4. Prototipo de simulador 31

# No. clientes en el sistema [promedio]: 27.41258

# No. clientes en fila [promedio]: 26.72335

# Maximo No. clientes en fila: 152

# Tasa de arribos [promedio]: 27.51222

# Tiempo entre arribos [promedio]: 0.03635

# Total de arribos: 13757

# Tasa de servicio [promedio]: 39.8957

# Tiempo de servicio [promedio]: 0.02507

# Total de servicios: 13750

# Tiempo en la fila [promedio]: 0.99681

# Intensidad de tráfico: 0.68924

# Fracción de tiempo de ocio: 0.31076

#

# Tiempo de procesamiento: 11 minutos y 41.998 segundos.

4.2 Algoritmo

El algoritmo utilizado para la simulación del sistema de líneas de espera es el que se

muestra en la figura 4.2 .

Básicamente el algoritmo inicia declarando valores iniciales para cada una de

las variables requeridas y la generación de tiempos de próxima llegada y de servicio

del primer cliente en el sistema.

Después inicia el ciclo principal (líneas 6 a 26). En éste, se tienen tres fases

principales.

Entrará a la primera fase (líneas 11 a 16) si el valor del tiempo en la simulación

coincide con el valor del tiempo de la siguiente llegada. En caso de entra a esta fase

genera una nueva llegada y aumenta el contador de número de clientes en el sistema.

A la segunda fase (líneas 17 a 21) entrará si el tiempo en la simulación es igual

Capítulo 4. Prototipo de simulador 32

al tiempo de la siguiente salida. En este caso, se disminuye el contador de clientes

en el sistema y el tiempo de siguiente servicio se iguala con un número postivo muy

grande para evitar salidas de clientes cuando éste está vacío.

La tercera y última fase (líneas 22 a 25) permite identificar si es posible atender

más clientes. Si es así, entonces se genera el tiempo de servicio del cliente en el

servidor.

Finalmente el algoritmo indica reportar los resultados de los cálculos.

Esta explicación del algoritmo (grosso modo) solamente muestra la estructura

general. Obviamente, el programa elaborado en Java incluye muchos otros cálculos

para estimar los valores de los parámetros de desempeño del sistema de líneas de

espera simulado.

Para evitar tiempos de procesamiento excesivamente grandes se utilizó una

lista enlazada como estructura de datos en el manejo de la fila en cada servidor del

sistema simulado.

Esto evita el requerimiento de copiar un vector de clientes a otro de mayor

tamaño, necesitando solamente un cambio en cada evento.

4.3 Descripción del parser

Un parser se define como un analizador de cadena de caracteres compuesto de una

sucesión de expresiones o símbolos para determinar su estructura gramatical con

respecto a una gramática definida con anterioridad.

En nuestro caso, el parser servirá de apoyo para que el protitopo de simulador

al interpretar la cadena de caracteres que el usuario introduzca como la función λ(t).

El parser creará una estructura de árbol donde se elaborarán las operaciones en el

orden correcto de acuerdo a la prioridad de las operaciones matemáticas indicadas

en la función λ(t).

Capítulo 4. Prototipo de simulador 33

El parser que se utilizó en el prototipo del simulador LenH es de distribución

libre y de código abierto, escrito por Dr. Leigh Brookshaw1 (1996) en el lenguaje

Java.

El parser se obtuvo de Internet 2 y tiene definidas, entre otras, las siguientes

constantes, operaciones y funciones matemáticas:

• + → suma

• − → resta

• ∗ → multiplicación

• / → división

• ^ → potencia

• PI → π ≈ 3.14159265358979

• e → base neperiana de los logaritmos (e ≈ 2.718281828)

• sin → función seno

• cos → función coseno

• tan → función tangente

• asin → función arco seno

• acos → función arco coseno

• atan → función arco tangente

• log → función logaritmo común

• sqrt → función raíz cuadrada

• log10 → función logaritmo en base diez1University of Southern Queensland. Department of Mathematics and Computing.2http://www.java2s.com/Code/Java/Advanced-Graphics/DrawMathFunctionYourOwn.htm

Capítulo 4. Prototipo de simulador 34

• exp → función exponencial

• sinh → función seno hiperbólico

• cosh → función coseno hiperbólico

• tanh → función tangente hiperbólica

• asinh → función arco seno hiperbólico

• acosh → función arco coseno hiperbólico

• atanh → función arco tangente hiperbólica

Debe tenerse en cuenta que cualquiera de las operaciones, constantes y fun-

ciones antes mencionadas puede ser utilizada al definir el parámetro λ como una

función del tiempo.

Sin embargo, es importante recalcar que el valor del parámetro λ necesaria-

mente debe ser positivo, pues no tiene sentido físico definir una tasa de llegadas de

clientes al sistema con valor negativo.

En caso de que en algunos intervalos en el dominio de la función λ, ésta se

haga negativa, el valor de t se incrementará hasta que se encuentre un valor de λ se

haga positivo mayor o igual a 0.1.

Sin embargo, si se llega a tener un valor del tiempo para el cual la función

λ no esté definida, la simulación se detendrá en ese punto e indicará al usuario el

problema que se encontró.

4.4 Características del equipo de cómputo

Todas las simulaciones que a continuación se mencionan se llevaron a cabo en una

computadora portátil (laptop) marca Hewlett–Packard modelo HP 530 Notebook

Capítulo 4. Prototipo de simulador 35

No L Lq ρ tproc

1 4.45329 3.65335 0.79994 379.68521

2 3.92574 3.12542 0.80033 366.84892

3 3.52093 2.73659 0.78434 357.18521

4 3.95257 3.14911 0.80346 373.01946

5 3.61687 2.82813 0.78874 371.16345

6 3.81286 3.01848 0.79438 376.54024

7 3.96549 3.16985 0.79563 374.06010

8 3.85938 3.06705 0.79233 380.60114

9 4.08598 3.27858 0.8074 393.07383

10 3.98331 3.18409 0.79923 353.56135

Promedios: 3.91764 3.12107 0.79658 372.57389

Desviación estándar: 0.25503 0.24997 0.00693 11.48161

Teóricos: 4.00000 3.20000 0.80000

Tabla 4.1: Resultados usados en la validación del prototipo LenH

PC con un procesador Intel c© Core c© DUO T 2400 @ 1.83 GHz × 2, 1524 MB de

memoria (RAM) sobre un sistema operativo de 32 bits.

Las pruebas se realizaron sobre la plataforma Windows Vista.

4.5 Validación del simulador

Para validar el simulador se consideró un sistema de líneas de espera homogénea, que

trabaja con un único servidor, con tasa de llegadas de clientes al sistema λ = 20.0 y

una tasa de servicio µ = 25.0

Se realizaron un total de 10 repeticiones de simulación del sistema y los datos

se resumen en la tabla 4.1.

Capítulo 4. Prototipo de simulador 36

Los valores teóricos de los parámetros de desempeño de este sistema son los

siguientes:

• Número de clientes esperado en el sistema:

L =λ

µ− λ=

20

25− 20= 4.0

• Número de clientes esperado en la fila:

Lq =λ2

µ (µ− λ)=

202

25 · (25− 20)=

400

125= 3.2

• Tránsito a través del sistema (ocupación del servidor):

ρ =λ

µ=

20

25= 0.8

Para justificar este resultado de manera estadística se realizó una prueba de medias

para cada uno de los parámetros antes mencionados.

Para esta prueba se consideraron:

H0 : µ = x

Ha : µ 6= x

usando el estadístico de prueba:

T =x− µS/√n

donde n = 10 es el número de repeticiones, S es la desviación estándar y x la media

muestrales.

En este caso, la región de rechazo es |t| > tα/2 con ν = 9 grados de libertad.

El valor del nivel de confianza α para esta prueba en cada caso es:

L Lq ρ

x 3.91764 3.12107 0.79658

µ 4.00000 3.20000 0.80000

t −1.02121 −0.99857 −1.56216

α 0.16691 0.17205 0.07634

Capítulo 4. Prototipo de simulador 37

Estos valores se calcularon con el uso del programa Calc de OpenOffice 3.1.0.

4.6 Sistemas ficticios

Como muestra de la utilidad que se puede dar a un simulador desde el punto de vista

teórico, se realizan algunas simulaciones de sistemas ficticios donde se considera la

función λ(t) como una función periódica con media y frecuencia conocidas y se

analizan los efectos del cambio de la media y la frecuencia en los parámetros de

desempeño del sistema sin cambiar el número de servidores en el mismo.

También se muestran los resultados de las simulaciones de sistemas que traba-

jan con tasas de llegadas definidas constantes por intervalos.

Esto permitirá obtener información que el administrador puede utilizar para

tomar decisiones para optimizar alguna cuestión dentro del mismo.

4.6.1 Variación de la frecuencia

Para observar cómo afecta a los parámetros de desempeño principales de una línea

de espera no homogénea la frecuencia de la función λ(t) siendo ésta periódica, se

realizaron simulaciones de sistemas con un solo servidor y se consideró la función

λ(t) con media en λ = 30.0 y frecuencias variables.

La frecuencia de la función: λ(t) = cos(ωt) + k, es: f = ω/2π. En otras

palabras, la función ejecuta ω/2π ciclos por unidad de tiempo. Es decir, esta función

tiene un periodo de longitud: p = 2π/ω. La media de λ(t) = cos(ωt) + k es λ = k,

como se muestra en la figura 4.3 .

Para cada una de las pruebas que se muestran en la tabla 4.2 se realizaron 10

simulaciones del mismo sistema con exactamente los mismos parámetros λ(t) y µ,

siempre considerando solamente un servidor. Las tablas que resumen los resultados

de cada una de las diez corridas para cada función λ(t) considerada se incluyen en

Capítulo 4. Prototipo de simulador 38

λ(t) L Lq ρ f

25 cos(2 · πt) + 30 3.20385 2.58150 0.62235 1

25 cos(πt) + 30 5.47499 4.77700 0.69799 1/2

25 cos(πt/2) + 30 8.88111 8.14860 0.73251 1/4

25 cos(t) + 30 12.08318 11.34364 0.73954 1/2π

25 cos(πt/4) + 30 14.20324 13.46032 0.74292 1/8

25 cos(πt/8) + 30 25.57674 24.82570 0.75104 1/16

25 cos(πt/12) + 30 34.39592 33.65169 0.74423 1/24

Tabla 4.2: Variación de parámetros de desempeño al cambiar la frecuencia de la

función periódica λ(t) con µ = 40.0.

los apéndices de este trabajo (sección A.2).

Los mismos resultados de forma gráfica se muestran en las figuras 4.4 y 4.5 .

4.6.2 Variación de la media

Para verificar cómo se afectan los parámetros de desempeño de una línea de espera

estimados por el prototipo al variar la media, cuando λ(t) es una función periódica,

se consideraron funciones de la forma:

λ(t) = 10 cos(2 πt) + k (4.1)

donde los valores de k se variaron desde k = 10, 20, 30 y 40.

Para cada una de las funciones λ(t) así construidas, se realizaron 10 corridas

de exactamente el mismo sistema, que consistió de un servidor, con tasa de servicio

µ constante e igual a k − 5.0, con el fin de que el sistema tuviera algunos intervalos

donde se cumpliera λ > µ y otros en los que λ < µ.

En estas pruebas habrá algunas funciones para las cuales la tasa de llegadas

esté tomando valores menores a 0.1. Recuérdese que el prototipo de simulador para

Capítulo 4. Prototipo de simulador 39

λ(t) L Lq ρ λ

10 cos(2πx) + 10 0.76617 0.50583 0.26034 10.0

10 cos(2πx) + 20 4.08152 3.30508 0.77644 20.0

10 cos(2πx) + 30 6.05583 5.20216 0.85367 30.0

10 cos(2πx) + 40 7.80487 6.92129 0.88357 40.0

10 cos(2πx) + 50 9.70255 8.79708 0.90547 50.0

Tabla 4.3: Variación de parámetros de desempeño al cambiar λ con µ = λ+ 5.0.

λ(t) < 0.1 incrementará el valor de t hasta que λ(t) > 0.1.

Lo interesante en estos casos será el comportamiento de los parámetros esti-

mados por el prototipo de simulador.

En la tabla 4.3 se resumen los resultados obtenidos para cada una de las simula-

ciones elaboradas como se indica antes.

Gráficamente, estos mismos resultados se muestran en la figura 4.6 .

La gráfica que corresponde a la variación de ρ con los cambios en λ se muestran

en la figura 4.7 .

Para el caso de λ = 50.0 se realizó solamente una corrida y se obtuvieron los

siguientes resultados:

No.clientes en el sistema (promedio): L = 9.70255

No. clientes en fila (promedio): Lq = 8.79708

Maximo No. clientes en el sistema: Lmax = 50

Tasa de arribos (promedio): λ = 50.10378

Tiempo entre arribos (promedio): 1/λ = 0.01996

Tasa de servicio (promedio): µ = 55.27751

Capítulo 4. Prototipo de simulador 40

Tiempo de servicio (promedio): 1/µ = 0.01809

Intensidad de tráfico: ρ = 0.90547

Fracción de tiempo de ocio : P0 = 0.09453

Tiempo en la fila (promedio): Wq = 0.19363

Tiempo de procesamiento: 31 minutos y 19.082 segundos.

los cuales se incluyen en la tabla 4.3 (último renglón) como en las gráficas 4.6

y 4.7 .

4.6.3 λ(t) definida por intervalos

Para realizar los experimentos de esta sección se definió el parámetro λ, el cual se

explica enseguida.

En algunos intervalos el valor de λ > µ. Para esos intervalos el valor de λ se

denota por λ+ y la longitud del intervalo de tiempo que trabaja el sistema de líneas

de espera bajo esa condición se denota por ‖λ+‖. Por otra parte, en otros intervalos

se cumple: λ < µ. Para estos casos usaremos el símbolo λ− para indicar el valor de

λ en esos intervalos y ‖λ−‖ para la magnitud del intervalo de tiempo que dura esa

condición.

El parámetro λ está definido de la siguiente manera:

λ =‖λ−‖

‖λ+‖+ ‖λ−‖(4.2)

Es decir, λ es igual a la fracción del tiempo que ha trabajado el sistema simulado

cumpliendo: λ < µ. Observe que si ‖λ+‖+ ‖λ−‖ = 1, entonces λ = ‖λ−‖

El valor de λ se puede calcular como una media ponderada:

λ =(

1− λ)· λ+ + λ · λ− (4.3)

Capítulo 4. Prototipo de simulador 41

De la relación (4.3) podemos escribir λ en términos de las demás cantidades:

λ =λ− λ+

λ− − λ+=

λ+ − λλ+ − λ−

(4.4)

lo cual nos permite dar una segunda interpretación al parámetro λ. Observe que

λ+− λ representa el incremento en la tasa de arribos del clientes al sistema respecto

de la media, mientras que λ+ − λ− representa el incremento en la tasa de aribos de

clientes al sistema respecto del valor λ−.

Entonces, λ no es sino una razón de diferencias que puede interpretarse como

sigue: λ es igual al número de unidades que aumenta la tasa de llegadas de clientes

al sistema (respecto de la media λ) cuando tiene el valor λ+, por cada unidad que

aumenta respecto de su valor mínimo λ−.

Para las experimentaciones que se llevaron a cabo, los intervalos en los cuales se

fueron haciendo los cambios en λ tenían una magnitud de 10 unidades de tiempo, de

manera que si λ = 0.75, por ejemplo, las primeras 7.5 unidades de tiempo se define

λ = λ−, y las siguientes 2.5 unidades de tiempo se define λ = λ+. Inmediatamente

después se redefine λ = λ− durante otras 7.5 unidades de tiempo y después cambia a

λ = λ+ por 2.5 unidades de tiempo y así sucesivamente durante toda la simulación.

La tasa de servicio considerado para todas estas pruebas fue de µ = 25.0. Las

tasas de arribo de clientes al sistema para estas pruebas se fijaron en: λ+ = 30 y

λ− = 20.

Los valores de λ se fueron variando desde 0.55, 0.65, 0.75, 0.85 y 0.95 y se

registraron las estimaciones de los parámetros L, Lq y ρ devueltos por el prototipo

de simulador.

En la tabla 4.4 se resumen los resultados que se obtuvieron de la simulación

de sistemas de líneas de espera donde la tasa de llegada está definida constante con

diferentes valores en distintos intervalos.

La columna de la derecha (en la tabla mencionada) muestra el valor de ρ

Capítulo 4. Prototipo de simulador 42

λ L Lq λ ρ ρ

0.95 4.51987 3.70063 20.5 0.81925 0.82

0.85 7.22542 6.36634 21.5 0.85908 0.86

0.75 10.51866 9.62423 22.5 0.89444 0.90

0.65 20.80238 19.85948 23.4 0.94290 0.94

0.55 43.01149 42.03402 24.5 0.97747 0.98

Tabla 4.4: Variación de parámetros definiendo λ.

teórico, calculado usando la relación:

ρ =λ

µ(4.5)

En forma gráfica, los resultados se muestran en las figuras 4.8 y 4.9 .

Utilizando el método de mínimos cuadrados podemos calcular la recta de re-

gresión para aproximar el valor del parámetro ρ a partir del valor de λ. El método

arroja la recta de regresión:

ρ = −0.40026 λ+ 1.19882 (4.6)

con un coeficiente de correlación r = −0.9983 para los datos de las variables calcu-

lados por el prototipo de simulador.

Capítulo 4. Prototipo de simulador 43

1: τ ← 0; R← 0; L← 1;

2: Arribos← 1; Servicios← 0;

3: Leer T ;

4: Generar A,D;

5: tA ← τ + A; tD ← τ +D;

6: while τ < T do

7: τprev ← τ ;

8: τ ← min(tA, tD);

9: δ ← τ − τprev;

10: R← R + δ · L;

11: if τ = tA then

12: L← L+ 1;

13: Generar A;

14: tA ← τ + A;

15: Arribos← Arribos+ 1;

16: end if

17: if τ = tD then

18: L← L− 1;

19: tD ←∞;

20: Servicios← Servicios+ 1;

21: end if

22: if L > 0 & tD =∞ then

23: Generar D;

24: tD ← τ +D;

25: end if

26: end while

27: Reportar resultados;

Figura 4.2: Algoritmo usado por el simulador

Capítulo 4. Prototipo de simulador 44

t

λ(t)

λ(t) = cos(ωt) + k

2π/ω

k

Figura 4.3: Periodo de la función cosenoidal.

0 0.2 0.4 0.6 0.8 10

5

10

15

20

25

30

35

frecuencia

L,L

q

L

Lq

Figura 4.4: Variación de L y Lq al cambiar la frecuencia de la función periódica λ(t)

con µ = 40.0.

Capítulo 4. Prototipo de simulador 45

0 0.2 0.4 0.6 0.8 1

0.62

0.64

0.66

0.68

0.7

0.72

0.74

0.76

frecuencia

ρ

ρ

Figura 4.5: Variación de ρ al cambiar la frecuencia de la función periódica λ(t) con

µ = 40.0.

10 20 30 40 50

0

2

4

6

8

10

λ

L,L

q

L

Lq

Figura 4.6: Variación de L y Lq al cambiar λ.

Capítulo 4. Prototipo de simulador 46

10 20 30 40 500.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

λ

ρ

ρ

Figura 4.7: Variación de ρ al cambiar λ.

0.6 0.7 0.8 0.90

10

20

30

40

λ

L,L

q

L

Lq

Figura 4.8: Variación de L y Lq al cambiar λ.

Capítulo 4. Prototipo de simulador 47

0.6 0.7 0.8 0.9

0.82

0.84

0.86

0.88

0.9

0.92

0.94

0.96

0.98

λ

ρ

ρ

Figura 4.9: Variación de ρ al cambiar λ.

Capítulo 5

Análisis de resultados

5.1 Variaciones en la función λ

En este apartado se discuten los resultados obtendidos de las simulaciones elaboradas

para analizar el comportamiento de los parámetros de desempeño de las líneas de

espera cuando se varían la frecuencia y la media de la tasa de llegadas λ = λ(t).

5.1.1 Variación de la frecuencia

De la tabla 4.2, o bien de las figuras 4.4 y 4.5 se hace evidente que a pesar de que

la función λ siendo periódica con el mismo valor promedio y la misma amplitud, el

número de clientes promedio en el sistema (L), la longitud de la fila esperada al largo

plazo (Lq) y la intensidad de tránsito ρ estimadas cambian al variar la frecuencia f

de la misma.

De acuerdo a los resultados encontrados podemos concluir (figura 4.4 ) que

la frecuencia f de la función λ guarda una relación inversamente proporcional tanto

con L como Lq. Esto es, al crecer f , tanto L como Lq decrecen.

Si la tasa de llegadas de clientes al sistema λ es una función periódica que

depende del tiempo exclusivamente, con periodo f , entonces f está en relación in-

versamente proporcional tanto con L como Lq. Esto es, al crecer f , tanto L como

Lq disminuyen.

48

Capítulo 5. Análisis de resultados 49

Esto se puede explicar de la siguiente manera.

Recordemos que la función λ es mayor que el parámetro µ en algunos intervalos,

y en otros intervalos es menor. De otra forma tanto L como Lq crecerían sin límite.

Para los intervalos en los que se cumple λ(t) > µ para algún intervalo (τ1, τ2)

del tiempo (t ∈ (τ1, τ2)), entonces en promedio llegan más clientes por unidad de

tiempo de los que un servidor puede atender (en promedio). Luego, el número de

clientes en el sistema, como la longitud de la fila en (τ1, τ2) en general crecerá.

De manera semejante, para los intervalos (τ2, τ3) en los cuales λ(t) < µ con

t ∈ (τ2, τ3), tanto el número de clientes como la longitud de la fila decrecerá.

Observe también que la tasa de servicio µ se ha considerado constante mientras

que la tasa de arribos de clientes al sistema es variable con el tiempo, de manera que

se puede escribir como una función λ = λ(t).

Para intervalos en los cuales la tasa de llegada es mayor a la media, los tiempos

entre arribos son muy pequeños de manera que ocurren arribos más frecuentemente.

Pero si la tasa de llegada es menor a la media, entonces la ocurrencia de estos eventos

sucede con menor frecuencia y los tiempos entre llegadas son mayores.

Esto significa que en promedio llegan menos clientes al sistema cuando la tasa

de llegadas es menor, además de que el servidor puede servir más clientes de los que

llegan (supuesto que en esos intervalos se cumpla µ > λ) y la fila tiende a decrecer.

Por otra parte, cuando λ está por arriba del promedio las llegadas de los clientes

ocurren muy frecuentemente y el número de eventos que ocurre por unidad de tiempo

es mayor, comparado con los intervalos en los que λ está por debajo de la media.

Además, los servicios que ocurren en el sistema tienen una tasa constante, de

manera que la tasa de la ocurrencia de esos eventos prácticamente no cambia.

Debido a que en unos intervalos llegan muchos clientes y en otros llegan muy

pocos, y siempre se sirven a los clientes al mismo ritmo, cuando la frecuencia de la

Capítulo 5. Análisis de resultados 50

función λ aumenta, la longitud de los intervalos en los cuales λ > µ decrece, así que

L no tiene oportunidad de crecer demasiado, debido a que rápidamente λ vuelve a

bajar de intensidad, hasta cumplir λ < µ permitiendo al servidor atender a los pocos

clientes que llegaron y disminuir el número de clientes en el sistema.

Cuando la frecuencia de λ es muy pequeña, los intervalos en los cuales la tasa

de llegadadas de clientes al sistema es mayor al promedio son más largos, aunado

al hecho de que ocurren más llegadas por unidad de tiempo (en promedio) y que

ocurren la misma cantidad de servicios por unidad de tiempo, el número de clientes

que hay en el sistema L, como la longitud de la fila Lq crecen por un buen rato. Esto

ocasiona que la longitud de la fila crezca mucho.

Cuando llega el intervalo en el cual la tasa de llegadas de clientes al sistema

es menor a la media, ambos parámetros L y Lq disminuyen y se quedan en un valor

muy cercano a cero mientras λ < µ.

El problema del crecimiento de las estimaciones de los parámetros L y Lq se

deben a que la longitud de la fila permanece con un valor muy grande un intervalo

de tiempo más largo que cuando la frecuencia es mayor. Recuérdese que el valor

estimado de L como de Lq se calculan a partir del área debajo de curvas escalonadas

con bases de longitud igual a la longitud del tiempo que se mantuvieron en un valor

constante y de altura L(t) y Lq(t) respectivamente.

Al aumentar el tiempo que se mantienen L y Lq grandes, los valores de las áreas

debajo de cada curva aumenta y por tanto, los valores de los parámetros estimados.

El parámetro ρ parece estabilizarse en el intervalo (0.72, 0.76).

Esto ocurre así porque cuando la frecuencia tiende a cero, ocurren intervalos

cada vez más largos para los cuales λ > µ y otros para los cuales λ < µ. Durante

los primeros (λ > µ) el número de clientes en el sistema crece mucho. Sin embargo,

cuando los valores de t lleguen a valores para los cuales se cumpla λ < µ las longitudes

de las filas decrecerán.

Capítulo 5. Análisis de resultados 51

Entonces, a pesar de que los otros parámetros de desempeño (L y Lq) estimados

por el prototipo van cambiando, el valor de ρ se estabiliza gracias a que existen

intervalos para los cuales la tasa de servicio es mayor a la tasa de llegadas de clientes

al sistema.

En esta discusión se ha supuesto que λ < µ. Si ocurre lo contrario, tanto la

longitud de la fila como el número de clientes en el sistema crecerá sin limite y ρ

tenderá a la unidad.

5.1.2 Variación de la media

De acuerdo con el sentido común, al aumentar el valor de k en la función

λ(t) = 10 cos(2πt) + k

los valores estimados para los parámetros L y Lq crecen con él.

Lo mismo puede decirse del parámetro ρ.

Sin embargo, hay algunas cuestiones dignas de mencionarse. Para k < 10, los

valores estimados de los parámetros de desempeño de la línea de espera son muy

poco confiables.

Esto puede explicarse de la siguiente manera.

Cuando λ(t) es negativo, el valor de t se incrementa hasta que λ toma un

valor mayor a 0.1. Entonces genera un número pseudo-aleatorio con distribución

exponencia y parámetro λ para asignarlo al valor del tiempo entre llegadas. Si λ es

muy pequeño, el número generado será muy grande, pues en promedio llegan pocos

clientes al sistema por unidad de tiempo.

Esto ocasiona que el cálculo de los parámetros se acerque muy poco a la función

λ(t).

Recuerde que los parámetros de desempeño del sistema dependen de la integral

de λ(t) desde cero hasta el valor del tiempo que ha estado trabajando el sistema de

Capítulo 5. Análisis de resultados 52

acuerdo a la simulación:

λ =1

T

T∫0

λ(t) dt (5.1)

Lq = L− 1 (5.2)

ρ =λ

c · µ(5.3)

Dado que la simulación avanza de manera discreta entre cada evento, sin con-

siderar valores intermedios entre éstos, el cálculo aproximado de la integral antes

mencionada es mejor cuando los intervalos entre eventos son muy pequeños.

Cuando los intervalos entre eventos crecen, el valor aproximado de la inte-

gral mencionada se aleja del valor verdadero de la misma y por tanto, los valores

estimados de los parámetros de desempeño del sistema.

Además se debe tomar en cuenta que cada una de las simulaciones realizadas

se desarrollaron para 500 unidades de tiempo. Para los casos en los cuales λ es

grande, ocurren una gran cantidad de eventos. Pero cuando λ es muy pequeña, el

número de eventos que ocurren en el sistema es muy pequeño (comparado con los

anteriores) porque el promedio del tiempo entre llegadas de clientes al sistema crece

y el sistema muy probablemente no alcance el estado estable.

Para evitar esto se sugiere que se cambie la unidad de tiempo considerada en

cada simulación de manera que la tasa de llegadas de clientes al sistema sea de al

menos 20 unidades en los intervalos donde la función λ(t) tome sus valores mínimos.

Igualmente, para los casos en los que λ ∈ (0, 20), se sugiere permitir a la

simulación avanzar basándose, no en el tiempo, sino en el número de eventos que

ocurran en el sistema, por ejemplo, hasta que ocurran 10 000 llegadas.

Sin embargo, debe mencionarse que esto no evitará que los estimadores resulten

con valores alejados de los cálculados analíticamente.

Capítulo 5. Análisis de resultados 53

5.1.3 Funciones definidas por intervalos

Cuando el valor de λ aumenta, la proporción del tiempo que el valor de λ está por

debajo de la media aumenta y viceversa.

Conforme λ tiende a 0.5, tanto L como Lq crecen. Esto se debe a que el sistema

tiene a ser semejante a un sistema con tasa de llegadas igual a la tasa de servicio.

Esta condición, como es conocido, causa que el sistema explote.

El valor de ρ calculado por el prototipo de simulador (vea la tabla 4.3) es

siempre muy cercano al valor teórico calculado usando la relación (4.5). Esto nos

indica que el valor de λ calculado como una media ponderada es correcto y que la

relación (4.4) se satisface. Esto puede verificarse sustituyendo los valores de λ+, λ−,

λ y observando que la igualdad se cumple.

Más aún, si se satisface: ‖λ+‖+ ‖λ−‖ = 1, entonces,

‖λ−‖ = λ =λ+ − λλ+ − λ−

(5.4)

En este caso particular1, ‖λ−‖ se puede interpretar como λ.

Observe que la relación (4.3) y la condición ‖λ+‖+‖λ−‖ = 1 de normalización

implican: λ = ‖λ+‖ · λ+ + ‖λ−‖ · λ−. Note también que si los valores λ+, λ− no son

constantes, se tiene analíticamente que, si las tasa de llegadas de clientes al sistema

cambia desde λ+ hasta λ−, manteniendo la proporción de áreas debajo de la curva

(escalonada para λ constante por intervalos), entonces los valores de los parámetros

de desempeño del sistema serán iguales en ambos casos.

Es muy notoria la relación lineal entre los parámetros ρ y λ en la figura 4.9 .

La siguiente gráfica muestra la antes mencionada agregando ahora la recta de mejor

ajuste de acuerdo al método de mínimos cuadrados:1En realidad, siempre es posible hacer la normalización ‖λ+‖+ ‖λ−‖ = 1.

Capítulo 5. Análisis de resultados 54

0.6 0.8 1

0.8

0.85

0.9

0.95

1

λρ

ρ

ρ(λ)

La recta de regresión (ρ(λ)) que aparece en la figura anterior tiene por ecuación:

ρ+ 0.4 λ = 1.19882 (5.5)

En palabras, la ecuación dice que el valor estimado de la intensidad de tránsito

a través del sistema (factor de utilización del servidor) guarda una relación lineal

negativa con el parámetro λ para λ ∈ (0.55, 0.95), que es el intervalo en el cual se

estuvo variando este parámetro en las pruebas que se elaboraron para este trabajo.

5.2 Conclusiones y recomendaciones

Como se mencionó al inicio de este capítulo (sección 5.1) cuando λ es una función

cosenoidal, al aumentar la frecuencia los parámetros L y Lq decrecen.

Esto sugiere que, para sistemas en los cuales el administrador puede cambiar la

frecuencia de la función λ, es conveniente, para mejorar los parámetros de desempeño

del sistema, aumentar la frecuencia de la misma.

Por ejemplo, en el caso del tránsito de una ciudad, es una buena idea imple-

mentar variación en los horarios de entrada a la escuela y el trabajo.

Podría probarse, por ejemplo, sugerir entrada a las escuela 9:00 A.M., y al

trabajo 9:00 A.M. Para la salida de la escuela se puede sugerir 12:00 y para la del

Capítulo 5. Análisis de resultados 55

trabajo 5:00 P.M.

Así, la diferencia de horarios por la mañana permitirá desahogar primero el

tránsito debido al transporte de los estudiantes a sus escuelas y por otra parte, al

generado por los trabajadores cuando se dirigen a sus fuentes de empleo.

Sin embargo, debe puntualizarse que la diferencia de horarios debe ser sufi-

cientemente grande para que pueda reducirse el número de clientes en el sistema del

primer intervalo para el cual λ > µ, y la carga vehicular ocasionada debido a los

primeros haya sido evacuada de la red de calles y avenidas de la ciudad.

Si el intervalo propuesto antes es insuficiente, se requerirá de un valor mayor.

Eso dependerá del tamaño de la ciudad, de la red de calles y avenidas de la misma,

de la cultura vial de los que transitan, entre otros aspectos.

Para el caso de las simulaciones en las cuales se varió la media de la función

λ(t), la lección aprendida consiste en que es mejor cambiar las unidades de tiempo

de manera que la tasa de llegadas de clientes al sistema sea de al menos 20 en los

intervalos donde λ tiene mínimos.

De esta manera se evitará que el simulador genere tiempos entre llegadas de-

masiado grandes que ocasionen resultados muy alejados de los valores esperados del

sistema.

Con el método que se utilizó para la simulación de funciones definidas por in-

tervalos se pueden simular sistemas de líneas de espera no homogéneas cuando se

carece de un simulador que permita incluir la función λ como una función explícita

del tiempo. Esto es lo que comúnmente se hace cuando se desea simular sistemas de

este tipo. La ventaja de contar con el simulador que permita definir λ(t) explícita-

mente es que los resultados serán más cercanos a los valores del sistema real.

Capítulo 6

Trabajo futuro

En este capítulo se incluyen ideas que fueron surgiendo conforme se avanzó en el

desarrollo de este trabajo.

Las ideas aquí propuestas pueden servir para inciar nuevas líneas de investi-

gación y desarrollo, no solamente de herramientas computacionales, sino también en

el área de líneas de espera.

6.1 Plataforma propuesta

La plataforma propuesta en este trabajo para el diseño de un simulador de líneas de

esperas no homogéneas considera solamente una cantidad específica de sistemas que

no pretende ser exhaustiva.

Una primera propuesta de trabajo futuro, desde luego, incluye la revisión de

otras aplicaciones de las líneas de espera y las tendencias de otras ramas de la

ingeniería y de la industria. Es posible que surjan más y nuevos requerimientos en

cuanto a la cantidad de distribuciones en los tiempos entre llegadas y en las tasas

de servicio, al igual que en la forma como se arreglan los servidores y el mecanismo

de servicio.

Recientemente se dió a conocer el lenguaje de programación CUDA. Según se

menciona en sus manuales, este lenguaje está diseñado para trabajar con simulación

de sistemas muy complejos y/o que requieren de demasiado procesamiento.

56

Capítulo 6. Trabajo futuro 57

El lenguaje se diseñó para facilitar el trabajo del programador y para trabajar

de una manera muy eficiente en cuanto al uso de los recursos computacionales con

que se cuente.

Una sugerencia para las personas que desarrollen la plataforma propuesta en

este trabajo consiste en que consideren seriamente el lenguaje antes mencionado para

la elaboración del simulador.

6.2 Prototipo

El prototipo que se generó en este trabajo sirve para mostrar algunas de las ventajas

de la simulación de líneas de espera. Sin embargo, es perfectible y pueden agregársele

muchas otras características deseables para un administrador de sistemas que pueden

ser estudiados a través de una simulación de líneas de espera.

Entre las características que se pueden incluir están las siguientes:

1. Agregar una parte visual del sistema, de manera que el administrador vea cómo

van llegando los clientes al sistema y cómo se forman las filas.

2. Permitir aumentar o disminuir la velocidad de la simulación de acuerdo al gusto

del usuario, para que la parte visual pueda mostrar una idea de cómo se comporta

el sistema al administrador del mismo.

3. Agregar un generador de histogramas, donde se muestre la distribución de L.

Esto permitirá conocer al administrador qué longitudes de fila se encuentran con

mayor frecuencia en el sistema.

4. Permitir simular sistemas que trabajen con arreglos de servidores en serie. Ac-

tualmente el prototipo trabaja con arreglos de servidores en paralelo solamente.

5. Permitir trabajar con distribuciones de los tiempos entre llegadas diferentes a la

exponencial. Para eso se tendrá que incluir un menú de distribuciones de llegada.

Capítulo 6. Trabajo futuro 58

6. Permitir trabajar con otras distribuciones en los tiempos de servicio. Preferente-

mente, tasas de servicio no homogéneas, dependiendo del tiempo y del estado del

sistema.

7. Permitir definir diferentes tasas de servicio para diferentes servidores del sistema.

8. Permitir trabajar con sistemas de capacidad finita. En las simulaciones de este

tipo de sistemas medir otros parámetros de desempeño de interés para el administra-

dor del mismo, como la fracción de los clientes que se pierde debido a la capacidad.

9. Permitir definir la llegada de diferentes tipos de clientes.

10. Definir más parámetros y diferentes comportamiento para cada cliente que sean

de interés para el administrador del sistema simulado. Por ejemplo, el nivel de

molestia que tenga un cliente, dependiendo del estado del sistema a la hora de

su llegada. Esto es aplicable a los sistemas donde los clientes son personas, por

ejemplo los bancos.

11. Calcular la proporción de la longitud de los intervalos para t que cumplan λ(t) > µ

y λ(t) < µ para que el sistema se no logre alcanzar la estabilidad. En otras

palabras, para que el número de clientes en el sistema crezca sin límite y el valor

de ρ se tienda a la unidad.

6.3 Simulaciones

Una buena cantidad de simulaciones se realizaron para la elaboración de este tra-

bajo. Algunas observaciones sugirieron la realización de muchas otras pruebas para

estudiar el comportamiento de los parámetros de desempeño del sistema bajo otras

condiciones.

• Estudiar sistemas con servidores que tienen diferente tasa de servicio.

• Estudiar sistemas en los cuales las tasas de servicio son no homogéneas.

Capítulo 6. Trabajo futuro 59

• Hacer un estudio del tiempo que requiere un sistema de líneas de espera no

homogéneo para que alcance la estabilidad. Este estudio se puede realizar

considerando funciones periódicas o no periódicas.

• Estudiar el comportamiento de los parámetros de desempeño del sistema de

líneas de espera para otras funciones.

Apéndice A

Apéndices

A.1 Definiciones

En este apartado se dan las definiciones [3] que se requieren para entender la discusión

del capítulo 4.

Definición A.1 Frecuencia de una función periódica.

Sea f(t) una función periódica con periodo fundamental κ. El número 1/κ se llama

frecuencia de f(t).

Definición A.2 Periodo fundamental.

Sea f(t) una función periódica. El menor κ para el cual se cumple: f(t+ κ) = f(t)

para toda t en el dominio de f , se llama periodo fundamental de f .

Teorema A.3

Sea f(t) una función cosenoidal de la forma:

f(t) = α cos (ωt) + κ

Entonces, el periodo fundamental de f es: p = 2π/ω y su frecuencia es: f = ω/2 π.

60

Apéndice A. Apéndices 61

A.2 Resultados de las simulaciones

A.2.1 Variación de la frecuencia

Se muestran los resultados devueltos por el simulador en cada una de las corridas

resumidos en forma de tablas.

En el pie de cada tabla se indica la función λ(t) que se definió para cada grupo

de simulaciones.

El orden de las columnas (izquierda a derecha) de cada una de las tablas de

esta sección es el siguiente: número de clientes promedio en el sistema (L), número

de clientes en fila promedio (Lq), intensidad de tránsito estimada (ρ) y el tiempo de

procesamiento (en segundos) requerido por el equipo de cómputo utilizado (tproc).

No L Lq ρ tproc

1 3.36396 2.74506 0.61891 506.46629

2 3.28357 2.64102 0.64255 539.17801

3 3.46567 2.82378 0.64189 547.17979

4 3.09413 2.47724 0.61689 502.42089

5 3.09997 2.48739 0.61259 508.94313

6 3.29833 2.66365 0.63468 545.75479

7 3.29833 2.66365 0.63468 545.75479

8 2.93197 2.32303 0.60894 519.13957

9 3.20411 2.58057 0.62354 535.65911

10 2.99848 2.40961 0.58887 485.84445

Promedios: 3.20385 2.58150 0.62235 523.63408

Desv. Est.: 0.16909 0.15584 0.01678 21.92938

Tabla A.1: Resultados de la simulación usando λ(t) = 25 cos(2 · πt) + 30

Apéndice A. Apéndices 62

No L Lq ρ tproc

1 5.05285 4.36049 0.69235 627.03600

2 4.96190 4.28513 0.67677 641.02997

3 5.80690 5.10174 0.70515 653.23683

4 6.38117 5.65299 0.72818 666.60147

5 5.37610 4.68249 0.69361 645.62254

6 5.36043 4.66551 0.69492 645.06479

7 5.59681 4.88921 0.70761 663.05368

8 5.27217 4.58356 0.68861 618.02802

9 5.70899 4.99751 0.71148 659.32304

10 5.23258 4.55138 0.6812 645.99225

Promedios: 5.47499 4.77700 0.69799 646.49886

Desv. Est.: 0.41702 0.40265 0.01534 15.31310

Tabla A.2: Resultados de la simulación usando λ(t) = 25 cos(πt) + 30

A.2.2 Variación de la media

Las tablas A.8 a A.11 correspoden a los resultados devueltos para las diez cor-

ridas realizadas consideradas para cada función λ(t) = 10 cos(2πt) + k, donde

k = 10, 20, 30, 40 y 50.

Para todos los casos se consideró un valor del parámetro µ = k + 5.

A.2.3 λ(t) definidas por intervalos

Las tablas A.12 a A.16 resumen los resultados obtenidos de la simulación de los

sistemas de líneas de espera con tasas de llegadas de clientes al sistema definidas por

intervalos consideradas en este trabajo.

Al pié de cada una de ellas se indica la proporción del tiempo que λ > µ

Apéndice A. Apéndices 63

No L Lq ρ tproc

1 10.72478 10.00832 0.71646 732.26057

2 13.05819 12.31211 0.74608 798.93175

3 12.30882 11.57023 0.73859 741.82074

4 12.29798 11.54883 0.74915 757.82619

5 12.43531 11.69022 0.74509 733.91086

6 12.79965 12.05358 0.74607 783.25354

7 11.85452 11.11088 0.74364 775.64274

8 12.32797 11.58933 0.73865 795.50737

9 11.72378 10.98306 0.74071 696.74989

10 11.30077 10.56984 0.73093 690.23275

Promedios: 12.08318 11.34364 0.73954 750.61364

Desv. Est.: 0.69792 0.689760 0.00963 38.49129

Tabla A.3: Resultados de la simulación usando λ(t) = 25 cos(t) + 30

durante la simulación lo cual se denota por: λ, definido en la ecuación (4.2).

Apéndice A. Apéndices 64

No L Lq ρ tproc

1 8.77755 8.0416 0.73595 672.44564

2 8.49862 7.78145 0.71717 670.00591

3 8.84613 8.10694 0.73919 717.06591

4 8.19947 7.47991 0.71955 651.17129

5 9.18269 8.44823 0.73446 707.41676

6 9.64757 8.89905 0.74852 718.23045

7 9.11688 8.37825 0.73864 730.58333

8 9.14860 8.41350 0.73510 717.33316

9 8.51408 7.79300 0.72108 693.43903

10 8.87948 8.14403 0.73545 712.86268

Promedios: 8.88111 8.14860 0.73251 699.05542

Desv. Est.: 0.41675 0.40790 0.01002 26.15570

Tabla A.4: Resultados de la simulación usando λ(t) = 25 cos(πt/2) + 30

Apéndice A. Apéndices 65

No L Lq ρ tproc

1 13.34585 12.60856 0.73728 746.25985

2 14.77257 14.02211 0.75046 742.66177

3 13.28334 12.55515 0.72820 766.33967

4 14.41111 13.66085 0.75026 790.96573

5 15.11644 14.36176 0.75469 799.69960

6 11.88815 11.16887 0.71928 748.25021

7 14.96742 14.21376 0.75367 780.99829

8 13.45376 12.71808 0.73568 769.69795

9 14.93305 14.19443 0.73862 733.90265

10 15.86066 15.09964 0.76101 960.14563

Promedios: 14.20324 13.46032 0.74292 783.89214

Desv. Est.: 1.18169 1.16947 0.01321 65.63245

Tabla A.5: Resultados de la simulación usando λ(t) = 25 cos(πt/4) + 30

Apéndice A. Apéndices 66

No L Lq ρ tproc

1 25.64468 24.89673 0.74795 784.65877

2 26.52910 25.76869 0.76041 756.37328

3 25.89363 25.13967 0.75396 770.80800

4 24.32898 23.58506 0.74393 753.62993

5 23.42197 22.68199 0.73998 753.20094

6 25.76545 25.01850 0.74695 769.81317

7 26.82796 26.06779 0.76017 755.96482

8 25.97111 25.21661 0.7545 754.23769

9 26.53749 25.78161 0.75588 808.11369

10 24.84705 24.10034 0.74671 818.65865

Promedios: 25.57674 24.82570 0.75104 772.54589

Desv. Est.: 1.07621 1.06980 0.00694 23.92670

Tabla A.6: Resultados de la simulación usando λ(t) = 25 cos(πt/8) + 30

Apéndice A. Apéndices 67

No L Lq ρ tproc

1 32.78242 32.04085 0.74157 739.2844

2 37.18689 36.42537 0.76152 781.44271

3 32.16928 31.43346 0.73583 750.09330

4 40.96401 40.20066 0.76335 780.87265

5 36.74193 35.98946 0.75247 789.65340

6 30.51676 29.78369 0.73307 732.50335

7 35.29522 34.55134 0.74388 724.80527

8 34.09888 33.36082 0.73806 710.14089

9 31.8905 31.15588 0.73462 697.14604

10 32.31333 31.57539 0.73795 722.35824

Promedios: 34.39592 33.65169 0.74423 742.83003

Desv. Est.: 3.17199 3.16155 0.01108 31.97598

Tabla A.7: Resultados de la simulación usando λ(t) = 25 cos(πt/12) + 30

Apéndice A. Apéndices 68

No L Lq ρ tproc

1 0.79383 0.53051 0.26332 16.26637

2 0.91306 0.63591 0.27715 18.79189

3 0.90894 0.64056 0.26838 16.63553

4 0.87403 0.56469 0.30934 24.42462

5 0.71588 0.46215 0.25373 17.53429

6 0.67406 0.42312 0.25094 16.23288

7 0.68125 0.43103 0.25022 16.18962

8 0.89459 0.60971 0.28488 20.76595

9 0.53632 0.30719 0.22913 15.14198

10 0.66972 0.45343 0.21629 10.13306

Promedios: 0.76617 0.50583 0.26034 17.21162

Desv. Est. 0.12962 0.10877 0.02689 3.724980

Tabla A.8: Resultados de la simulación usando λ(t) = 10 cos(2πt) + 10

Apéndice A. Apéndices 69

No L Lq ρ tproc

1 4.17298 3.38954 0.78344 380.69112

2 4.00313 3.23414 0.76899 353.41797

3 3.99874 3.21741 0.78132 351.39782

4 4.13748 3.36461 0.77287 357.05769

5 3.78524 3.01417 0.77107 341.63114

6 4.35198 3.56492 0.78705 350.48251

7 4.49272 3.72132 0.77140 346.66234

8 4.01350 3.23248 0.78102 348.33947

9 3.99250 3.21526 0.77724 346.39617

10 3.86692 3.09691 0.77001 342.54082

Promedios: 4.08152 3.30508 0.77644 351.86171

Desv. Est.: 0.21425 0.21226 0.00642 11.17302

Tabla A.9: Resultados de la simulación usando λ(t) = 10 cos(2πt) + 20

Apéndice A. Apéndices 70

No L Lq ρ tproc

1 5.82621 4.96893 0.85728 726.75274

2 5.51050 4.66879 0.84170 720.70325

3 6.36549 5.51331 0.85218 736.47241

4 6.33238 5.46767 0.86471 771.67510

5 5.91419 5.05104 0.86315 726.14962

6 6.06051 5.21103 0.84947 714.37312

7 5.93203 5.08309 0.84895 719.16944

8 5.71263 4.86266 0.84997 730.70371

9 7.25829 6.39097 0.86732 758.59476

10 5.64609 4.80414 0.84194 736.30056

Promedios: 6.05583 5.20216 0.85367 734.08947

Desv. Est. 0.50437 0.49780 0.00912 18.08198

Tabla A.10: Resultados de la simulación usando λ(t) = 10 cos(2πt) + 30

Apéndice A. Apéndices 71

No L Lq ρ tproc

1 10.26162 9.36448 0.89714 1280.96717

2 8.31466 7.44103 0.87363 1231.27733

3 6.25448 5.38466 0.86982 1450.19935

4 7.29479 6.41727 0.87753 1223.63187

5 8.29064 7.40017 0.89047 1205.45843

6 8.18589 7.28886 0.89702 1232.12238

7 6.96636 6.09431 0.87205 1211.11574

8 7.30154 6.41814 0.88340 1248.70206

9 7.71580 6.82647 0.88933 1248.18809

10 7.46287 6.57753 0.88534 1276.95569

Promedios: 7.80487 6.92129 0.88357 1260.86181

Desv. Est. 1.07610 1.06892 0.01003 71.06483

Tabla A.11: Resultados de la simulación usando λ(t) = 10 cos(2πt) + 40

Apéndice A. Apéndices 72

No L Lq ρ tproc

1 34.55815 33.58482 0.97333 526.03891

2 33.65264 32.68937 0.96326 511.67306

3 36.38887 35.41308 0.97579 528.40538

4 44.78020 43.80072 0.97949 521.30111

5 42.24343 41.25931 0.98411 507.44842

6 37.42647 36.44978 0.97669 511.77972

7 34.69894 33.72380 0.97514 518.01770

8 42.64139 41.67034 0.97104 517.15234

9 56.90517 55.92477 0.9804 511.06560

10 66.81961 65.82419 0.99542 523.76364

Promedios: 43.01149 42.03402 0.97747 517.66459

Desv. Est. 10.88788 10.88103 0.00849 7.10829

Tabla A.12: Resultados de la simulación usando λ = 0.55

Apéndice A. Apéndices 73

No L Lq ρ tproc

1 18.22302 17.27376 0.94925 568.08583

2 20.75752 19.81595 0.94157 481.61660

3 33.28031 32.32728 0.95302 483.96173

4 25.27906 24.33124 0.94781 525.29279

5 19.24277 18.30547 0.93730 477.68954

6 16.00170 15.06743 0.93427 721.49476

7 21.09166 20.14588 0.94578 484.82507

8 16.22398 15.28334 0.94064 475.87431

9 16.13646 15.20775 0.92871 477.60551

10 21.78736 20.83672 0.95064 469.10190

Promedios: 20.80238 19.85948 0.94290 516.55480

Desv. Est. 5.28793 5.28232 0.00781 78.14245

Tabla A.13: Resultados de la simulación usando λ = 0.65

Apéndice A. Apéndices 74

No L Lq ρ tproc

1 11.59712 10.70115 0.89596 593.38664

2 9.75562 8.85546 0.90017 438.48068

3 9.87305 8.97987 0.89318 441.44717

4 10.11877 9.23144 0.88733 430.27246

5 10.54335 9.65931 0.88405 421.48800

6 10.64562 9.75654 0.88908 415.30681

7 12.18744 11.28385 0.90359 451.05647

8 8.98855 8.09954 0.88901 426.87517

9 8.71345 7.82702 0.88644 429.22446

10 12.76362 11.84809 0.91554 443.82150

Promedios: 10.51866 9.62423 0.89444 449.13594

Desv. Est. 1.32344 1.31629 0.00970 51.82182

Tabla A.14: Resultados de la simulación usando λ = 0.75

Apéndice A. Apéndices 75

No L Lq ρ tproc

1 7.08619 6.23450 0.85169 394.95646

2 6.34091 5.48779 0.85312 393.17320

3 7.51147 6.65724 0.85423 418.88645

4 8.08803 7.20972 0.87831 434.12981

5 6.80670 5.94215 0.86455 410.61728

6 7.24006 6.39608 0.84399 419.64129

7 8.59563 7.71872 0.87691 415.15538

8 6.89146 6.03571 0.85576 404.48435

9 7.91549 7.04595 0.86954 416.16329

10 5.77826 4.93558 0.84268 386.05409

Promedios: 7.22542 6.36634 0.85908 409.32616

Desv. Est. 0.84081 0.83087 0.01269 14.635780

Tabla A.15: Resultados de la simulación usando λ = 0.85

Apéndice A. Apéndices 76

No L Lq ρ tproc

1 4.54750 3.74079 0.80671 374.84140

2 3.99553 3.18406 0.81146 378.09433

3 4.23746 3.42606 0.81140 377.56930

4 4.92308 4.09084 0.83224 383.27294

5 4.74672 3.92656 0.82016 383.42949

6 4.62459 3.78864 0.83595 374.22405

7 4.32246 3.50376 0.81870 373.46245

8 4.73336 3.91753 0.81583 368.44449

9 4.95484 4.12016 0.83468 364.88986

10 4.11319 3.30785 0.80534 364.29764

Promedios: 4.51987 3.70063 0.81925 374.25260

Desv. Est. 0.33658 0.32846 0.01141 6.77257

Tabla A.16: Resultados de la simulación usando λ = 0.95

Apéndice A. Apéndices 77

A.3 Instructivo del prototipo

En esta sección se incluye un pequeño instructivo de uso del prototipo del simulador

LenH.

Enseguida se muestra la interfaz gráfica (IG) del prorotipo de simulador LenH.

La parte superior de la IG requiere de 4 datos del sistema que se va a simular.

En primer dato se refiere a la función λ(t), que se utilizará para calcular la

intensidad de la tasa de llegadas de clientes al sistema para cada valor del tiempo

(t).

Es importante mencionar que λ(t) debe ser estrictamente positiva. No tiene

sentido físico alguno definir una función con una tasa de llegadas de clientes al

sistema menor a cero.

En caso de que el usuario defina una función en la cual λ(t) < 0 en algunos

intervalos de su dominio, el prototipo LenH incrementará el valor de t en pasos de

tamaño 0.1 hasta alcanzar un valor tk para el cual λ(tk) > 0.1.

En otras palabras, el simulador tendrá entonces, una tasa de llegadas de clientes

al sistema con intensidad de al menos 1 cliente cada diez unidades de tiempo.

Apéndice A. Apéndices 78

La intensidad de la tasa de llegadas de clientes al sistema es un número que

indica al programa el promedio del número de clientes que llegan al sistema por

unidad de tiempo en el largo plazo.

El prototipo LenH permite trabajar con expresiones algebraicas para la tasa

de llegadas de clientes al sistema formada por las operaciones (suma +, resta -,

multiplicación *, división/, potencia (ARG)^(x), raíz cuadrada sqrt(ARG)etc.), con-

stantes (π ≈ 3.141592 PI y e ≈ 2.7182818, etc.) y funciones matemáticas común-

mente utilizadas ( seno sin(ARG), coseno cos(ARG), tangente tan(ARG), arco coseno

acos(ARG), arco seno asin(ARG), arco tangente atan(ARG), raíz cuadrada sqrt(ARG),

exponencial exp(ARG), logaritmo natural log(ARG), logaritmo común log10(ARG),

coseno hiperbólico cosh(ARG), seno hiperbólico sinh(ARG), tangente hiperbólica

tanh(ARG), arco coseno hiperbólico acosh(ARG), arco seno hiperbólico asinh(ARG),

arco tangente hiperbólico atanh(ARG), entre otras. )

Para agrupar términos se permite el uso de los paréntesis ( ) solamente.

No está permitido el uso de otro agrupador (como por ejemplo, corchetes[ ] o

llaves{ }).

Otro parámetro que el usuario debe indicar al prototipo LenH es el valor del

parámetro µ, que corresponde a la tasa de servicio de un servidor. Este valor le

indica al programa en promedio cuántos clientes son ser atendidos por unidad de

tiempo en el largo plazo.

El prototipo LenH supone que los tiempos entre llegadas de clientes al sistema

como de los tiempos de servicio presentan una distribución exponencial de parámet-

ros λ(t) y µ respectivamente, de acuerdo a lo que define el usuario antes de iniciar

la simulación.

El siguiente parámetro que debe indicar el usuario al programa es el número

de servidores que tiene el sistema simulado.

En la simulación se supone que todos los servidores trabajan de manera par-

alela. Sin embargo, los tiempos entre llegadas corresponden al sistema y no a cada

Apéndice A. Apéndices 79

servidor individual. De manera que cuando llega un cliente al sistema siempre se

formará en el servidor que tenga la fila más corta.

Finalmente, el tiempo que se va a simular el sistema. Se sugiere que este valor

sea suficientemente grande para que los resultados de la simulación sean cercanos a

os que se observarían en un sistema real.

Dependiendo de la tasa media de llegadas de clientes al sistema, el valor del

tiempoa simular puede variar entre 250 y 500 unidades.

El prototipo LenH automáticamente considera:

• λ(t) = 25.0 cos(2 πx) + 27.85,

• µ = 39.75,

• 1 servidor en el sistema, y

• 1000 unidades de tiempo a simular.

El usuario puede cambiar cualquiera de los valores antes mencionados.

Los parámetros de desempeño que el prototipo LenH estima conforme avanza

la simulación son:

• L, representado por L(prom), que representa el número de clientes promedio

en el sistema,

• Lq, representado por Lq(prom), que representa el número de clientes promedio

en la fila,

• ρ, representado por rho, que representa la fracción del tiempo que el servidor

está ocupado. Este parámetro también se conoce como intensidad de tránsito

a través del sistema,

• L(t), representado por L(t), que representa el número promedio (por cada

servidor) de clientes en el sistema en el tiempo actual (t) en la simulación,

Apéndice A. Apéndices 80

• Lq(t), representado por Lq(t), que representa la longitud de la fila promedio

(en cada servidor) en el tiempo actual (t) en la simulación,

• P0, representado por P_0 que representa la fracción del tiempo que el servi-

dor está desocupado. Este parámetro también se puede interpretar como la

probabilidad de que el sistema esté vacío en el momento de la llegada de un

cliente.

• El número de arribos de clientes al sistema hasta ese valor del tiempo (t),

representado por Arribos, y

• El número de servicios completados hasta ese valor del tiempo (t) representado

por Servicios.

El valor del tiempo t se puede modificar, pero no es recomendable. El prototipo

va modificando su valor de acuerdo a como van ocurriendo los eventos.

El tamaño de cada intervalo de tiempo incrementado depende de las tasas de

servicio y de tiempo entre arribos de clientes al sistema. Es decir, se simulan eventos

con pasos discretos en el tiempo, no de forma contínua.

La ventana blanca que tiene el siguiente texto:

# t_L t_Q t_Serv t_Sal L_bar t lambda(t) Serv L(t)[Id]

incluirá la información de cada evento que va ocurriendo en el sistema conforme

vayan ocurriendo.

Toda esta información se graba en un archivo de nombre resultados.txt de

manera automática en la carpeta donde se encuentren los archivos en codigo Java.

Si el usuario inicia el prototipo LenH sin cambiar de nombre o mover los

archivos antes generados, automáticamente se borran los contenidos de los mismos.

Además del archivo antes mencionado, se graban los siguientes archivos:

• lambda.txt, que contiene las coordenadas (t, λ(t)) para cada valor de t en el

Apéndice A. Apéndices 81

cual ocurrió un evento durante la simulación, donde λ(t) es la función que el

usuario definió como intensidad de tasa de llegadas de clientes al sistema,

• L.txt, que contiene las coordenadas (t, L), donde L es el número de clientes

(promedio de toda la simulación) en el sistema en el tiempo t, y

• Lq.txt, que contiene las coordenadas (t, Lq), donde Lq es el número de clientes

en la fila (promedio de toda la simulación) en el tiempo t.

Estos archivos se generan con la intención de generar gráficos con alguna herramienta

de graficación para observar de manera gráfica el comportamiento de estos parámet-

ros conforme avanza el tiempo en la simulación.

Finalmente, es importante mencionar que si el usuario ingresa valores que no

tengan algún sentido, por ejemplo, una letra u otros símbolos en alguna de las cajas

de texto donde deben agregar números o una función λ(t) que no está correctamente

escrita, el programa indicará cambiando el color de las letras de ese valor erróneo y

cambiará la etiqueta que aparece en el pié izquierdo de la IG, que inicialmente dice

Ayuda para el usuario.

Conforma la simulación avanza esta misma etiqueta estará mostrando un texto

similar al siguiente:

lambda(11.54248) = 52.85 t_Proc = 10 s,

que indica el valor de λ(t) en el tiempo t y el tiempo de procesamiento que ha

requerido la computadora para elaborar la simulación hasta ese punto.

A.3.1 Botones

Para iniciar la simulación o pausarla una vez que ha iniciado, podemos usar el

botón superior que dice Iniciar al inicio o Pausar mientras la simulación está siendo

ejecutada.

Si el usuario pausa la simulación, puede cambiar parámetros del sistema sim-

ulado y continuar la simulación a partir de ese punto considerando los resultados

Apéndice A. Apéndices 82

obtenidos con los parámetros que se habían definido antes. Esto se puede hacer

tantas veces como se requiera.

El botón intermedio (Limpiar) permite borrar todos los resultados que se han

obtenido de la simulación. Este botón puede usarse aún si la simulación está lleván-

dose a cabo, aunque esto no es recomendable.

El botón Salir permite cerrar todos los archivos donde se han grabado la in-

formación generada por el prototipo LenH, y finalmente, salir del programa.

Apéndice A. Apéndices 83

A.4 Diagrama de clases

En la figura A.1 se muestra el diagrama de dependencia de las clases utilizadas en

el simulador LenH.

LenH

Sistema

Simulation ServidorVentana

ParseFunction

ScanString

RngStream Fila

Cliente

Figura A.1: Diagrama de dependencia de clases del simulador LenH.

Bibliografía

[1] Blumenfeld, Dennis. Operations research calculations handbook CRC Press

EE.UU. 2001.

[2] Professional Java. JDK 6.0 Clay Richardson, W.; et al. Ed. Wiley Publishing,

Inc. EE.UU. 2007.

[3] Clark, Douglas N. Dictionary of Analysis, Calculus and Differential Equations

Ed. CRC Press. EE.UU. 2000.

[4] Daigle, John N. Queueing theory with applications to packet telecommunication

Ed. Springer. EE.UU. 2005.

[5] Dagpunar, J.S. Simulation and Monte Carlo with applications in finance and

MCMC Ed. John Wiley & Sons. England. 2007.

[6] Deng, Qing Queues with Regular Variation Eindhoven University of Technology

(PhD Theses). 2001

[7] Garrido, José; Lu, Yi. On double periodic non-homogeneous Poisson processes

Business Economics Series 16 October 2002.

[8] Hancke, John E.; Reitsch, Arthur G. Estadística para negocios 2da Ed Ed.

McGraw-Hill España. 1997.

[9] Hillier, Frederick S.; Lieberman, Gerald J. Introduction to operations research

7th. Ed. Ed. McGraw-Hill EE.UU. 2001.

84

Bibliografía 85

[10] Lowe, Doug. Java. All in one Desk reference. Ed. Wiley Publishing. EE.UU.

2005.

[11] Stirzaker, David. Stochastic Processes and Models Ed. Oxford EE.UU. 2005.

[12] Taha, Hamdy H. Operations Research Ed. Macmillan Publishing Co. EE.UU.

1976.

[13] Tijms, H.C. A First Course in Stochastic Models Ed. John Wiley & Sons. Eng-

land. 2003.

[14] Trueman, Richard E. An Introduction to Quantitative Methods for Decision

Making Ed. Holt Rinehard and Winston, Inc. EE.UU. 1974.

Ficha autobiográfica

Efraín Soto Apolinar

Candidato para el grado de Maestro en Ciencias

con especialidad en Ingeniería de Sistemas

Universidad Autónoma de Nuevo León

Facultad de Ingeniería Mecánica y Eléctrica

Tesis:

Simulación de una línea de espera no

homogénea

Nací el 12 de marzo de 1976 en Tuxpam de Rodríguez Cano, Veracruz, México.

He realizado estudios en escuelas públicas exclusivamente.

Primaria: Esc. prim. Urb. Fed. Ford 111 Lázaro Cárdenas del Río.

Secundaria: Esc. Sec. Fed. Constituyentes de Querétaro.

Bachillerato: Colegio de Bachilleres del Estado de Quintana Roo.

Plantel Chetumal Dos.

Superior: Universidad de Quintana Roo. Campus Chetumal.

Viví mis primeros 18 años en Cerro Azul, Ver., Mexico.

86

Ficha autobiográfica 87

Después cursé mis estudios de nivel medio superior en el Colegio de Bachilleres

del Estado de Quintana Roo, Plantel Chetumal Dos, en Chetumal, Quintana Roo

(1994 – 1997).

Soy Ingeniero en Sistemas de Energía por la Universidad de Quintana Roo,

Campus Chetumal (1997 – 2002).

Al egresar de la Universidad de Quintana Roo trabajé compo profesor de

matemáticas y física en el Instituto Cumbres de Quintana Roo, en Chetumal, Quin-

tana Roo (2002 – 2004).

Después trabajé como profesor y director de un Centro de Asesoría Escolar

llamado Academia Gauss en Chetumal, Quintana Roo (2004 – 2006).

Antes de iniciar con mis estudios de posgrado, trabajé como Coordinador de

Matemáticas en Ingeniat, empresa que se dedica a sugerir mejoras en instituciones

de educación de todos los niveles académicos con sede en Monterrey, N.L. (2006 –

2007).