Está en la página 1de 33

UNIVERSIDAD AUTÓNOMA TOMAS FRÍAS

FACULTAD DE CIENCIAS PURAS

CARRERA DE INGENIERÍA INFORMÁTICA

PROYECTO FINAL
NOMBRE: ALEJANDRO BRAYAN MAMANI PINTO
ELIZARDO MAMANI HUANCA
YERKO FLORES MAMANI
WILLIAMS SÁNCHEZ CHAVEZ
DOCENTE: Lic. RICARDA TOLA PAQUI PH. D.
MATERIA: INVESTIGACIÓN OPERATIVA II
FECHA DE ENTREGA: 06 de diciembre del 2022

POTOSÍ – BOLIVIA
INTRODUCCIÓN

El trabajo actualmente desarrollado se lleva a cabo en el marco de la teoría de


colas, que es el estudio de factores como las métricas de rendimiento, en
particular, las métricas de rendimiento informático para modelos de filas y
servidores, y modelos de filas y servidores múltiples, implementados en el lenguaje
de programación C#. La calculadora tiene dos opciones de selección: Para
modelos de fila y servidor Para el modelo multiservidor de una sola línea, Debe
ingresar datos relacionados con el tiempo promedio que un cliente llega al sistema,
el tiempo promedio de servicio y la cantidad de servidores a partir de los cuales se
determinan todas las métricas de rendimiento. Está escrito en el lenguaje de
programación de alto nivel C#, cuya filosofía enfatiza la legibilidad de su código,
lo que le permite incluir una interfaz gráfica, lo que lo hace muy intuitivo de usar.

1.1 Breve historia del lenguaje de programación C#.

Durante el desarrollo de la plataforma NET, las bibliotecas de clases fueron escritas


originalmente usando un sistema de código gestionado llamado Simple Managed.
En abril de 1999, Anders Hejlsberg formo un equipo con la misión de desarrollar un
nuevo lenguaje orientado a objetos que obtuvo el nombre C#.

Adema C# ha añadido varias características importantes para dar cabida


programación de estilo funcional, que culmina con las extensiones LINQ con C# 3.0
y el empleo de tipos anónimos, métodos de extensión y expresiones lambda. Las
extensiones LINQ ayudan a los desarrolladores a reducir mucha cantidad de código
repetido.

Es un lenguaje de programación multiparadigma desarrollado y estandarizado por


la empresa Microsoft como parte de su plataforma, su sintaxis básicas deriva de
C/C++ y utiliza el modelo de objetos de la platafoema.NET similar al de java, aunque
C# es un lenguaje de programación independiente diseñado para generar
programas sobre dicha plataforma ,incluye mejoras derivadas de otros lenguajes.
El nombre C Sharp fue inspirado por el signo #, el cual se lee como Sharp en ingles
para notación musical .Esto es una metáfora de la superioridad de C# sobre su
antecesor C++,Microsoft.NET es la tecnología por la que sigue apostando la
compañía actualmente, y se ha transformado en una de las mas potentes hoy en
día, abrancado diferentes ámbitos en la programación, desde las aplicaciones de
escritorio hasta la creación de videojuegos.

La primera versión de C# fue entregada al publico el 2002 aquí se establecieron las


bases del lenguaje el uso de clases, estructuras, interfaces, modelo de herencia etc.

Luego de eso apareció muchas mas versiones mejoradas con nuevas


características en estas la mas reciente que es C# 10 Las funciones adicionales
están disponibles en el modo de vista previa C# 10 continua trabajando en temas
de ceremonia de eliminación, separación de datos de algoritmos y rendimiento
mejorado para NET Rutime.

1.2 Característica del lenguaje de programación C#.-

Alguna de sus características mas importantes son:

• Orientación a componentes hemos dicho que C# es el lenguaje orientado a


objetos, pero también a componentes por que permite definir propiedades sin
necesidad de crear métodos o usar eventos sin tratar con punteros a
funciones.
• Espacio de nombres se puede aislar o agrupar código mediante.
• Bibliotecas todos los compiladores de C# tienen un mínimo de biblioteca de
clases disponibles para usar.

2. OBJETIVO GENERAL

Resolver problemas de manera sistemática en el modelo de líneas de espera


aplicando el (Modelo de una fila y un servidor M/M/1), para ello se realizó un
programa desarrollado en el lenguaje c# que brindara un entorno gráfico ilustrado,
y el código donde se ejecutara los resultados de forma rápida y exacta.
2.1 OBJETIVOS ESPECÍFICOS:

• Construir el modelo de una fila y un servidor en un programa.


• Sintetizar los cálculos correspondientes en el modelo de una fila y un servidor
M/M/1.
• Procesar los datos de manera eficiente y exacta.
• Identificar patrones de comportamiento en los resultados.
• Predecir las probabilidades para una buena toma de decisión.
• Demostrar un entorno gráfico cómodamente para el usuario.

3. FUNDAMENTO TEÓRICO
Las líneas de espera se modelan como un proceso donde se tiene en cuenta el
número de transacciones entrantes, donde se toma el valor de variable aleatoria
con una probabilidad determinada de que esta suceda en datos estadísticamente
específicos. El sistema de línea de espera.

Un sistema de líneas de espera se define como un conjunto de clientes, servidores


y un orden en el cual los clientes son atendidos siendo un proceso de nacimiento-
muerte, donde se considera que un nacimiento sucede cuando un cliente entra a
las instalaciones del negocio para recibir el servicio; mientras que una muerte
ocurre cuando el cliente una vez que ha sido atendido, sale del establecimiento.
El estudio de estos modelos sirve para determinar la forma más efectiva de
gestionar un sistema de colas.
Las líneas de espera se definen de la siguiente forma
Un sistema de líneas de espera se define como un conjunto de clientes, servidores
y un orden en el cual los clientes son atendidos siendo un proceso de nacimiento
muerte, donde se considera que un nacimiento sucede cuando un cliente entra a
las instalaciones del negocio para recibir el servicio; mientras que una muerte
ocurre cuando el cliente una vez que ha sido atendido, sale del establecimiento.

El estudio de estos modelos sirve para determinar la forma más efectiva de


gestionar un sistema de colas.

Las líneas de espera se definen de la siguiente forma:


Una línea de espera y un solo servidor:
Entrada --> Línea de Espera --> Mecanismo de servicio --> Salida
Una línea de espera y varios servidores:
Entrada --> Línea de Espera --> Mecanismo de servicio --> Salida
• Una línea de espera y un solo servidor:

Entrada --> Línea de Espera --> Mecanismo de servicio --> Salida

• Una línea de espera y varios servidores:

Entrada --> Línea de Espera --> Mecanismo de servicio --> Salida

A diferencia de otros modelos, los de líneas de espera son descriptivos y no


normativos, ya que no son métodos de optimización, sino más bien modelos que
buscan describir el funcionamiento de un sistema dado mediante la estimación de
sus parámetros más importantes.
A diferencia de otros modelos, los de líneas de espera son descriptivos y no
normativos, ya que no son métodos de optimización, sino más bien modelos que
buscan describir el funcionamiento de un sistema dado mediante la estimación de
sus parámetros más importantes.

GRAFICO MODELO DE LINEA DE ESPERA


Un modelo de sistema de línea de espera debe especificar la distribución de

probabilidad de los tiempos de servicio para cada servidor.

Terminología

• Llegadas: Es la frecuencia de llegada de los clientes al negocio, definido por


el tiempo que transcurra entre la llegada de un cliente y el siguiente.
• Servicio: Tiempo de servicio, es decir el tiempo que ocupa un servidor para
atender a un cliente.
• Disciplina de la Línea de espera: Es el orden en el que se atienden a los
clientes.
• Capacidad del sistema: Es el número máximo de clientes que pueden estar
en el negocio, ya sea en la línea de espera o siendo atendidos.
• Estado del sistema: Es el número de clientes que hay en el negocio en un
momento dado cualquiera, ya sea en espera o en servicio.
• Longitud de la línea de espera: Es el número de clientes que hay en la línea
de espera.

Abandonado: Es cuando un cliente que está en la línea de espera, se sale


de ella y deja el establecimiento debido a que el tiempo de espera es muy
grande.
Rechazo: Sucede cuando un cliente que llega al negocio no entra a él
debido a que la línea de espera es demasiado grande.
• Abandonado: Es cuando un cliente que está en la línea de espera, se sale
de ella y deja el establecimiento debido a que el tiempo de espera es muy
grande.
• Rechazo: Sucede cuando un cliente que llega al negocio no entra a él debido
a que la línea de espera es demasiado grande.

3.1 Modelo M/M/1

En las situaciones cotidianas es fácil encontrar ejemplos de llegadas aleatorias,


puesto que las llegadas serán aleatorias en cualquier caso en la que una de ellas
no afecte a las otras. Un ejemplo clásico de llegadas aleatorias son las llamadas
que arriban a un conmutador telefónico o un servicio de emergencia.

Se ha determinada que las ocurrencias aleatorias de un tipo especial pueden


describirse a través de una distribución discreta de probabilidad bien conocida, la
distribución de Poisson. Este tipo especial de llegadas aleatorias supone
características acerca de la corriente de entrada. En primer lugar, se supone que
las llegadas son por completo independientes entre sí y con respecto al estado del
sistema.

En segundo lugar, la probabilidad de llegada durante un periodo especifico no


depende de cuando ocurre el periodo, sino más bien, depende solo de la longitud
del intervalo. Se dicen que estas ocurrencias carecen de "memoria".

Si conocemos el numero promedio de ocurrencias por periodo, podemos calcular


las probabilidades acerca del número de eventos que ocurrirán en un periodo
determinado, utilizando las probabilidades conocidas de la distribución de Poisson.

1. Los clientes son servidos con una política FIFO y cada arribo espera a ser
servido sin importar la longitud de la línea o cola.

2. Los arribos son independientes de arribos anteriores, pero el promedio de


arribos, no cambia con el tiempo.

3. Los arribos son discretos mediante la distribución de probabilidad de Poisson y


proceden de una población muy grande o infinita.

4. Los tiempos de servicio varían de cliente a cliente y son independientes entre


si, pero su ruta promedio es conocida.

Denotado por:

𝜆=𝑁ú𝑚𝑒𝑟𝑜 𝑝𝑟𝑜𝑚𝑒𝑑𝑖𝑜 𝑑𝑒 𝑎𝑟𝑟𝑖𝑏𝑜𝑠 𝑝𝑜𝑟 𝑝𝑒𝑟𝑖𝑜𝑑𝑜 𝑑𝑒 𝑡𝑖𝑒𝑚𝑝𝑜.


𝜇=𝑁ú𝑚𝑒𝑟𝑜 𝑝𝑟𝑜𝑚𝑒𝑑𝑖𝑜 𝑑𝑒 𝑔𝑒𝑛𝑡𝑒 𝑜 𝑐𝑜𝑠𝑎𝑠 𝑠𝑒𝑟𝑣𝑖𝑑𝑜𝑠 𝑝𝑜𝑟 𝑝𝑒𝑟í𝑜𝑑𝑜 𝑑𝑒 𝑡𝑖𝑒𝑚𝑝𝑜 𝜂=𝑛ú𝑚𝑒𝑟𝑜
𝑑𝑒 𝑢𝑛𝑖𝑑𝑎𝑑𝑒𝑠 𝑒𝑛 𝑒𝑙 𝑠𝑖𝑠𝑡𝑒𝑚𝑎.
𝐿𝑠=𝑁ú𝑚𝑒𝑟𝑜 𝑝𝑟𝑜𝑚𝑒𝑑𝑖𝑜 𝑑𝑒 𝑢𝑛𝑖𝑑𝑎𝑑𝑒𝑠(𝑐𝑙𝑖𝑒𝑛𝑡𝑒𝑠)𝑒𝑛 𝑒𝑙 𝑠𝑖𝑠𝑡𝑒𝑚𝑎.
𝐿𝑠=𝜆𝜇−𝜆
𝑊𝑠=𝑇𝑖𝑒𝑚𝑝𝑜 𝑝𝑟𝑜𝑚𝑒𝑑𝑖𝑜 𝑞𝑢𝑒 𝑢𝑛𝑎 𝑢𝑛𝑑𝑎𝑑 𝑝𝑒𝑟𝑚𝑎𝑛𝑒𝑐𝑒 𝑒𝑛 𝑒𝑙 𝑠𝑖𝑠𝑡𝑒𝑚𝑎 (𝑡𝑖𝑒𝑚𝑝𝑜 𝑑𝑒
𝑒𝑠𝑝𝑒𝑟𝑎+ 𝑡𝑖𝑒𝑚𝑝𝑜 𝑑𝑒 𝑠𝑒𝑟𝑣𝑖𝑐𝑖𝑜.)
𝑊𝑠=1𝜇−𝜆
𝐿𝑞=𝑁ú𝑚𝑒𝑟𝑜 𝑝𝑟𝑜𝑚𝑒𝑑𝑖𝑜 𝑑𝑒 𝑢𝑛𝑖𝑑𝑎𝑑𝑒𝑠 𝑒𝑛 𝑙𝑎 𝑐𝑜𝑙𝑎.
=𝜆2𝜇(𝜇−𝜆)= 𝜌 ∗𝐿𝑠
𝑊𝑞=𝑇𝑖𝑒𝑚𝑝𝑜 𝑝𝑟𝑜𝑚𝑒𝑑𝑖𝑜 𝑞𝑢𝑒 𝑢𝑛𝑎 𝑢𝑛𝑖𝑑𝑎𝑑 𝑒𝑠𝑝𝑒𝑟𝑎 𝑒𝑛 𝑙𝑎 𝑐𝑜𝑙𝑎
=𝜆𝜇(𝜇−𝜆)= 𝜌 ∗ 𝑊𝑠
𝑃𝑛=𝑃𝑟𝑜𝑏𝑎𝑏𝑖𝑙𝑖𝑑𝑎𝑑 𝑑𝑒 𝑞𝑢𝑒 n𝑐𝑙𝑖𝑒𝑛𝑡𝑒𝑠 𝑒𝑠𝑡𝑒𝑛 𝑒 𝑛 𝑒𝑙 𝑠𝑖𝑠𝑡𝑒𝑚𝑎.
𝑃𝑛=1−𝜆𝜇∗(𝜆𝜇)=(1−𝜌)∗𝜌𝑛
𝑃𝑜=𝑃𝑟𝑜𝑏𝑎𝑏𝑖𝑙𝑖𝑑𝑎𝑑 𝑑𝑒 0 𝑢𝑛𝑖𝑑𝑎𝑑𝑒𝑠 𝑒𝑛 𝑒𝑙 𝑠𝑖𝑠𝑡𝑒𝑚𝑎 (𝑙𝑎 𝑢𝑛𝑖𝑑𝑎𝑑 𝑑𝑒 𝑠𝑒𝑟𝑣𝑖𝑐𝑖𝑜 𝑒𝑠𝑡á 𝑣𝑎𝑐í𝑎)
𝑃𝑂=1−𝜆𝜇=(1−𝜌)
3.2 Modelo M/M/C

Este modelo supone llegadas y tiempos de servicio aleatorios para canales de


servicio múltiples, teniendo las mismas consideraciones que le modelo de canal
único de servicio (M / M / 1), excepto que ahora existe una sola fila de entrada que
alimenta los canales múltiples de servicio con iguales tasas de servicio.

El cálculo de las características de la línea de espera para el modelo M / M / S es


algo más complicado que los cálculos para el caso de canal único, y dado que
primordialmente nos interesa las implicaciones de estas características más que las
fórmulas necesarias para calcularlos, nos apoyaremos en el uso de tablas
elaboradas a partir de estas fórmulas para hacer los cálculos.

Características de operación:

En el modelo M / M / C, si m es la tasa promedio de servicio para cada uno de los


C canales de servicio, entonces ya no se requiere que m > l , pero Cm debe ser
mayor que l para evitar una acumulación infinita de líneas de espera. En el caso de
M / M / C, la característica que se utilizará para hacer los demás cálculos es la
probabilidad de que el sistema esté ocupado. En otras palabras, la probabilidad es
que haya S o más unidades en el sistema. En este caso todos los canales de
servicio se estarán utilizando y por ello se dice que el sistema está ocupado.
Teniendo como base:

Clientes llegan de acuerdo a una distribución de Poisson con una esperanza 𝜆.

El tiempo de atención se distribuye exponencialmente.

Existen K servidores, cada uno atiende a una tasa de 𝜇 clientes.

Existe una población infinita y la posibilidad de infinitas filas.

Condiciones para el modelo:

Dos o más servidores o canales están disponibles para atender a los clientes que
arriban.

Los clientes forman una sola cola y se los atiende de acuerdo al servidor que queda
libre.

Asumimos que los arribos siguen la distribución de probabilidad de Poisson y los


tiempos de servicio son distribuidos exponencialmente.

Los servidores se los hace de acuerdo a la política FIFO.

Denotada por:

𝑀=𝑛ú𝑚𝑒𝑟𝑜 𝑑𝑒 𝑐𝑎𝑛𝑎𝑙𝑒𝑠 𝑎𝑏𝑖𝑒𝑟𝑡𝑜𝑠.


𝜆=𝑡𝑎𝑠𝑎 𝑝𝑟𝑜𝑚𝑒𝑑𝑖𝑜 𝑑𝑒 𝑎𝑟𝑟𝑖𝑏𝑜.
𝜇=𝑡𝑎𝑠𝑎 𝑝𝑟𝑜𝑚𝑒𝑑𝑖𝑜 𝑑𝑒 𝑠𝑒𝑟𝑖𝑣𝑖𝑐𝑖𝑜 𝑒𝑛 𝑐𝑎𝑑𝑎 𝑐𝑎𝑛𝑎𝑙.
𝑃𝑜=𝑃𝑟𝑜𝑏𝑎𝑏𝑖𝑙𝑖𝑑𝑎𝑑 𝑑𝑒 𝑞𝑢𝑒 𝑒𝑥𝑖𝑠𝑡𝑎 𝐶𝐸𝑅𝑂 𝑝𝑒𝑟𝑠𝑜𝑛𝑎𝑠 𝑜 𝑢𝑛𝑖𝑑𝑎𝑑𝑒𝑠 𝑒𝑛 𝑒𝑙 𝑠𝑖𝑠𝑡𝑒𝑚𝑎.

𝐿𝑠=𝑛u𝑚𝑒𝑟𝑜 𝑝𝑟𝑜𝑚𝑒𝑑𝑖𝑜 𝑑𝑒 𝑝𝑒𝑟𝑠𝑜𝑛𝑎𝑠 𝑜 𝑢𝑛𝑖𝑑𝑎𝑑𝑒𝑠 𝑒𝑛 𝑒𝑙 𝑠𝑖𝑠𝑡𝑒𝑚𝑎:


𝐿𝑞=𝑁ú𝑚𝑒𝑟𝑜 𝑝𝑟𝑜𝑚𝑒𝑑𝑖𝑜 𝑑𝑒 𝑝𝑒𝑟𝑠𝑜𝑛𝑎𝑠 𝑜 𝑢𝑛𝑖𝑑𝑎𝑑𝑒𝑠 𝑒𝑛 𝑙𝑎 𝑙𝑖𝑛𝑒𝑎 𝑜 𝑐𝑜𝑙𝑎,𝑒𝑛 𝑒𝑠𝑝𝑒𝑟𝑎 𝑑𝑒
𝑠𝑒𝑟𝑣𝑖𝑐𝑖𝑜.

𝐿𝑞=𝐿𝑠−𝜆𝜇

𝐿𝑠− 𝜌

𝑊𝑞=𝑇𝑖𝑒𝑚𝑝𝑜 𝑝𝑟𝑜𝑚𝑒𝑑𝑖𝑜 𝑞𝑢𝑒 𝑢𝑛𝑎 𝑝𝑒𝑟𝑠𝑜𝑛𝑎 𝑜 𝑢𝑛𝑎 𝑢𝑛𝑖𝑑𝑎𝑑 𝑠𝑒 𝑡𝑎𝑟𝑑𝑎 𝑒𝑛 𝑙𝑎 𝑐𝑜𝑙𝑎 𝑒𝑠


𝑒𝑠𝑝𝑒𝑟𝑎𝑑𝑜 𝑝𝑜𝑟 𝑠𝑒𝑟𝑣𝑖𝑐𝑖𝑜.

𝑊𝑞=𝑊𝑠−1𝜇=𝐿𝑞𝜆

Tiene el propósito de dar a la investigación un sistema coordinado y coherente de


conceptos y proposiciones que permiten abordar el problema también se llega a
conocer del marco conceptual. Un marco conceptual es una herramienta analítica
con variaciones y contextos. Se puede aplicar en diferentes categorías de trabajo
donde se necesita una imagen general. Se usa para hacer distinciones
conceptuales y organizar ideas. Los sólidos marcos conceptuales capturan algo real
y lo hacen de una forma que es fácil de recordar y aplicar.

4. Desarrollo del programa en C#

Se utilizo el lenguaje de programación C#:

Ventajas. -Las principales ventajas que presenta el uso C# en comparación con


otros lenguajes es su potencia como lenguaje, pero también su flexibilidad soporta
la mayoría de paradigmas, destacando el paradigma funcional que combinado con
el paradigma orientado a objetos hacen del lenguaje uno de los más potentes.

➢ Declaraciones en el espacio de nombre al empezar a programar algo, se


puede definir una o más clase dentro de un mismo espacio de nombres.
➢ Tipos de datos: en C# existe un rango más amplio y definido de tipos de datos
que los que se encuentran en C, C++ o Java.
➢ Pase de parámetros aquí se puede declarar a los métodos para que acepten
un numero de variable de parámetros de forma predeterminada.
➢ Control de versiones C# permite mantener múltiples versiones de clases en
forma binaria, colocándolas en diferentes espacios de nombre, Esto permite
que versiones nuevas y anteriores de software puedan ejecutarse en forma
simultaneas,

Desventajas. -Las desventajas serian que se debe tener algunos requerimientos


mínimos del sistema para poder trabajar adecuadamente tales como contar con
Windows NT 4 o superior, tener alrededor de 4 Gb de espacio libre para la
instalación, se debe conseguir una versión reciente de visual studio.NET.

4.1 Descripción de la calculadora. -


La calculadora esta configurado para las personas que conozcan la teoría de filas y
quieran hacer cálculos rápidos, esta calculadora te va a ayudar mucho

1. Elige el modelo de filas que quieres calcular. M/M/C M/M1


2. Elige la tasa de llegada (Lambda) y de servicio (Mu). Nota que existe una
opción para incluir las unidades, en la práctica las unidades de la tasa de
llegada y de servicio pueden ser diferentes.
3. Luego ingresa el número de servidores en tu sistema (C) en caso de ser
M/M/C, el máximo número de entidades.
4. Presiona el botón de calcular.
5. Obtén los resultados de utilización del sistema, promedio de entidades en todo
el sistema (L), promedio de entidades en fila (Lq), Promedio de tiempo que
gasta un cliente en el sistema (W), promedio de tiempo que le toma a un cliente
en ser atendido (Wq), probabilidad de que hayan 'n' entidades en el sistema
en un momento dado (Pn), etc.

4.2 El desarrollo de la calculadora


La calculadora resuelve problemas de optimización relacionado con los modelos de
líneas de espera.
Donde la terminología utilizada es:
λ: Número promedio de llegadas por unidad de tiempo
µ: Número promedio de clientes atendidos por unidad de tiempo
U: Utilización
𝑳𝒒: Numero promedio de clientes en la fila
𝑊𝑞 : Tiempo promedio de espera en la fila
W: Tiempo promedio del sistema
L: Numero promedio de clientes en el sistema
𝜌0 : Probabilidad de que no haya clientes en el sistema
𝑷𝒘 : Probabilidad de que un cliente que llega tenga que esperar
𝑷𝒏 : Probabilidad de que no haya n clientes en el sistema
Ejemplo M/M/1
Una entidad financiera está trabajando con una sola ventanilla de atención, en la
que atiende a un cliente con un tiempo promedio de 2 minutos según una
distribución exponencial, los clientes llegan al banco con una tasa de 20 clientes
por hora. Calcular todas las medidas de desempeño

Número de llegadas por unidad de tiempo:


λ = 20 clientes / hora

Numero de tiempo por clientes atendidos por unidad de tiempo


μ = 30 clientes / hora
20 𝑐𝑙𝑖𝑒𝑛𝑡𝑒𝑠
λ
ρ=μ ρ= ℎ𝑜𝑟𝑎
30 𝑐𝑙𝑖𝑒𝑛𝑡𝑒𝑠 = 0.6667
ℎ𝑜𝑟𝑎

1. Numero promedio de clientes en la fila:


ρ2 0.66672
Lq = 1− ρ Lq= 1− 0.6667 = 1.334

En la fila esperan aproximadamente 1 cliente

2. Tiempo promedio de espera en la fila


𝐿𝑞 1.334
Wq = Wq = = 0.067
λ 20

El tiempo de espera de los clientes en la fila es 0.067 (4 minutos)

3. Tiempo promedio del sistema


1 1
W =𝑊𝑞 + μ W = 0.067 + 30 = 0.1

El tiempo promedio en el sistema es 0.1 horas (6 minutos)

4. Numero promedio de clientes en el sistema


L=λ*W L = 20 * 0.1 = 2
Esperan en total 2 clientes en el sistema

5. Probabilidad de que no haya clientes en el sistema


Ρ𝑜 = 1 – ρ = 1 – 0.6667 = 0.3333
Existe una probabilidad del 33.33% que no haya clientes en el sistema

6. Probabilidad de que un cliente que llega tenga que esperar


Pw= 1 – ρ𝑜 = ρ
Pw = 1 – 0.3333 = 0.6667
Existe una probabilidad del 66.67% de que un cliente que llega
tenga que esperar
7. Probabilidad de que no haya n clientes en el sistema
𝑷𝒏 = ρ𝑛 * ρ𝑜 n=2
n Pn
0 0.3333
1 0.2222
2 0.15
total 0.7055

Existe una probabilidad de 70% de que no haya mas de 2 clientes en


el sistema
8. Utilización
U = ρ = 0.6667
Existe una probabilidad del 66.67% de utilización.

Ejemplo M/M/c
El grupo de investigadores formado por 6 estudiantes, dispone de 6 terminales para
realizar cálculos. El trabajo promedio cálculo requiere de 20 minutos de tiempo de
terminal y el promedio entre solicitudes de servicio es de 30 minutos. Se supone
que estas solicitudes están distribuidas exponencialmente. Calcular todas las
medidas de desempeño.

Numero promedio de llegadas por unidad de tiempo:


λ = 30 terminales / minuto

Numero promedio de clientes atendidos por unidad de tiempo:


μ = 20 terminales / minuto
30 𝑡𝑒𝑟𝑚𝑖𝑛𝑎𝑙𝑒𝑠
λ
ρ=μ ρ= 𝑚𝑖𝑛𝑢𝑡𝑜
20 𝑡𝑒𝑟𝑚𝑖𝑛𝑎𝑙𝑒𝑠 = 1.5
𝑚𝑖𝑛𝑢𝑡𝑜

Numero de servidores: c = 6 investigadores

1: Probabilidad de que no haya clientes en el sistema:


1
𝜌0 = 𝑐−1
𝜌𝑛 𝜌𝑐 𝑐
(∑ )+( )×(
𝑛=0 𝑛! 𝑐! 𝑐 − 𝑃)
𝑐−1 𝑐−5
𝜌𝑛 𝜌𝑛 1.50 1.51 1.52 1.53 1.54 1.55
(∑ ) = (∑ ) = + + + + + = 4.46
𝑐! 𝑐! 0! 1! 2! 3! 4! 5!
𝑛=0 𝑛=0

𝜌𝑐 𝑐 1.506 6
( )×( )=( )×( ) = 0.021
𝑐! 𝑐−𝑃 6! 6 − 1.5
1
𝜌0 = = 0.223
4.46 + 0.021
Existe una probabilidad del 22.3% de probabilidad que no haya terminales en
el sistema.
2: Numero promedio de clientes en la fila
𝝆𝒄+𝟏 𝟏
𝑳𝒒 = ( )× × 𝝆𝟎
( 𝒄 − 𝟏)! (𝒄 − 𝒑)𝟐
𝟏. 𝟓𝟎𝟕 𝟏
𝑳𝒒 = ( )× × 𝟎. 𝟐𝟐𝟑 = 𝟎. 𝟎𝟎𝟏𝟓𝟔𝟖
( 𝟔 − 𝟏) ! (𝟔 − 𝟏. 𝟓𝟎)𝟐

El numero promedio de terminales en la fila es de ≈ 0

3: Tiempo promedio de espera en la fila


𝑳𝒒
𝝎𝒒 =
𝛌

𝟎. 𝟎𝟎𝟏𝟓𝟔𝟖
𝝎𝒒 = = 𝟎. 𝟎𝟎𝟎𝟎𝟓𝟐𝟑
𝟑𝟎

El tiempo promedio de una terminal en la fila es de 0.0000523 minutos


(0.0031 segundos).
4: Tiempo promedio en el sistema
𝟏
𝑾 = 𝑾𝒒 +
𝝁

𝟏
𝑾 = 𝟎. 𝟎𝟎𝟎𝟎𝟓𝟐𝟑 + = 𝟎. 𝟎𝟓
𝟐𝟎

Las terminales que llegan a solicitar el servicio, esperan como promedio en


el sistema 0.05 minutos (3 segundos).

5: Numero promedio de clientes en la fila


𝑳 = 𝝀∗𝑾
𝑳 = 𝟑𝟎 ∗ 𝟎. 𝟎𝟓 = 𝟏. 𝟓
Existe en promedio en el sistema ≈1 terminal

6: Probabilidad de que un cliente que llega tenga que esperar

𝟏 𝒄
𝑷𝒘 = × 𝝆𝒄 × × 𝝆𝟎
𝒄! 𝒄−𝝆

𝟏 𝟔
𝑷𝒘 = × 𝟏. 𝟓𝟎𝟔 × × 𝟎. 𝟐𝟐𝟑 = 𝟎. 𝟎𝟎𝟒𝟕
𝟔! 𝟔 − 𝟏. 𝟓𝟎

Hay una probabilidad del 0.47% de que una terminal que llega a solicitar
servicio tenga que esperar.

7: Probabilidad de que haya n clientes en el sistema

¿Cuál es la probabilidad de que no haya mas de 7 clientes en el sistema

n Pn
0 0.223
1 0.335
2 0.251
3 0.125
4 0.047
5 0.014
6 0.0035
7 0.0008

𝑷𝟎 + 𝑷𝟏 + 𝑷𝟐 + 𝑷𝟑 + 𝑷𝟒 + 𝑷𝟓 + 𝑷𝟔 + 𝑷𝟕
= 𝟎. 𝟐𝟐𝟑 + 𝟎. 𝟑𝟑𝟓 + 𝟎. 𝟐𝟓𝟏 + 𝟎. 𝟏𝟐𝟓 + 𝟎. 𝟎𝟒𝟕 + 𝟎. 𝟎𝟏𝟒
+ 𝟎. 𝟎𝟎𝟑𝟓 + 𝟎. 𝟎𝟎𝟎𝟖 = 𝟎. 𝟗9
La probabilidad de que no haya mas de 7 terminales en el sistema es del
99%.

7: Utilización
𝒄−𝟏 𝒄−𝟐 𝟏
𝑼 = 𝟏 − [𝑷𝟎 + ( ) ∗ 𝑷𝟏 + ( ) ∗ 𝑷𝟐 +. . + ( 𝒄 ) ∗ 𝑷𝒄−𝟏 ]
𝒄 𝒄

𝟔−𝟏 𝟔−𝟐 𝟔−𝟑


𝑼 = 𝟏 − [𝟎. 𝟐𝟐𝟑 + ( ) ∗ 𝟎. 𝟑𝟑𝟓 + ( ) ∗ 𝟎. 𝟐𝟓𝟏 + ( ) ∗ 𝟎. 𝟏𝟐𝟓
𝟔 𝟔 𝟔
𝟔−𝟒 𝟏
+( ) ∗ 𝟎. 𝟎𝟒𝟕 + ( ) ∗ 𝟎. 𝟎𝟏𝟒] = 𝟎. 𝟐𝟓
𝟔 𝟔

4.3 LINEAS DE CÓDIGO EN C#


La utilización es del 25%.
Codigo del Lenguaje C#
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace operativaII
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)


{
if (cmblineadeEspera.SelectedIndex == -1)
MessageBox.Show("Porfavor seleccione un modelo..! ");
if (cmblineadeEspera.SelectedIndex == 0)
{
double Wq, W, L, Po, Pw;
double lambda = double.Parse(txtlambda.Text);
double mu = double.Parse(txtMu.Text);
double p = Math.Round((lambda / mu), 4);
double Lq = Math.Round(((p * p) / (1 - p)), 4);
Wq = Math.Round((Lq / lambda), 4);
W = Math.Round(Wq + (1 / lambda), 4);
L = Math.Round((lambda * W), 4);
Po = Math.Round((1 - p), 4);
Pw = Math.Round((1 - Po), 4);
resultado.Text = "***MEDIDAS DE DESEMPEÑO***" + "\n" +
"Numero de promedio de llegadas por unidad de tiempo:" + "\n" + " λ="
+ lambda + "\n" +
"Numero de promedio de clientes atendido por unidad de tiempo: " + "\n"
+ " μ=" + mu + "\n" +
"1) P=" + p + "\n" + "\n" +
"2) Número promedio de clientes en la cola (que esperan el servicio): " +
"\n" + " Lq= " + Lq.ToString() + "\n" + "\n" +
"3) Tiempo promedio de espera en la Cola: " + "\n" + " Wq=" +
Wq.ToString() + "\n" + "\n" +
"4) Tiempo promedio en el Sistema: " + "\n" + " W=" + W.ToString() +
"\n" + "\n" +
"5) Número promedio de clientes en el sistema (número de clientes que
esperan en la cola más el número declientes que reciben servicio): " + "\n" + "
L=" + L.ToString() + "\n" + "\n" +
"6) Probabilidad de que no haya clientes en el sistema: " + "\n" + "
Po=" + Po.ToString() + "\n" + "\n" +
"7) Probabilidad de que un cliente que llega, tenga que esperar: " + "\n"
+ " Pw=" + Pw.ToString() + "\n" + "\n";
}
if(cmblineadeEspera.SelectedIndex == 1)
{
double lam, mu, c, p, Po, Lq, Wq, W, L, Pw,P,suma;
lam=double.Parse(txtlambdac.Text);
mu=double.Parse(txtmuc.Text);
c=double.Parse(txtc.Text);
suma = 1;
p =Math.Round(( lam / mu),4);
for (double i= 1;i<c;i++)
{
P = Math.Pow(p, i);
double Fac = 1;
for (double j=1;j<=i;j++)
{
Fac = Fac * j;
}
double x = P / Fac;
suma += x;
}
double f = 1;
for(double z=1;z<=c;z++)
{
f=f * z;
}
Po=Math.Round((1/(suma+((Math.Pow(p,c)/f)*(c/(c-p))))),4);
double ff = 1;
for(double z=1;z<c;z++)
{
ff = ff * z;
}
Lq = Math.Round(((((Math.Pow(p, c + 1)) / ff) * (1 / Math.Pow(c-p, 2)) *
Po)),6);
Wq=Math.Round(Lq/lam,6);
W=Math.Round((Wq+(1/mu)),6);
L = Math.Round(lam * W, 6);
Pw=Math.Round(((1/f)(Math.Pow(p,c))(c/(c-p))*Po),6);

resultado.Text += ("* MEDIDAS DE DESEMPEÑO***") + "\n";


resultado.Text += ("NUMERO PROMEDIO DE LLEGADAS POR
UNIDAD DE TIEMPO") + "\n";
resultado.Text += ("λ = " + lam + " ") + "\n";
resultado.Text += ("NUMERO PROMEDIO DE CLIENTES ATENDIDOS
POR UNIDAD DE TIEMPO") + "\n";
resultado.Text += ("µ = " + mu + " ") + "\n";
resultado.Text += ("NUMERO DE SERVIDORES") + "\n";
resultado.Text += ("c = " + c + " servidores") + "\n";
resultado.Text += ("p=" + p) + "\n";
resultado.Text += ("1. LA PROBABILIDAD DE QUE NO HAYA
CLIENTES EN EL SISTEMA:")+"\n";
resultado.Text += (" Po = " + Po) + "\n";
resultado.Text += ("R: Existe una probabilidad del " + Math.Round(Po *
100, 2) + "% de que no haya") + "\n";
resultado.Text += ("programas en el sistema") + "\n";
resultado.Text += ("2. NUMERO PROMEDIO DE CLIENTES EN LA
FILA:") + "\n";
resultado.Text += (" Lq = " + Lq) + "\n";
resultado.Text += ("R: El numero promedio de " + " en la fila es de") +
"\n";
resultado.Text += (" ≈ " + Math.Round(Lq) + " ") + "\n";
resultado.Text += ("3. TIEMPO PROMEDIO DE ESPERA EN LA FILA")
+ "\n";
resultado.Text += (" Wq = " + Wq) + "\n";
resultado.Text += ("R: Los "+"clientes"+" que llegan a solicitar servicio,
esperan") + "\n";
resultado.Text += ("como promedio en la fila " + Wq + " " + " ( " +
Math.Round(Wq * 60) + " " +")") + "\n";
resultado.Text += ("4. TIEMPO PROMEDIO EN EL SISTEMA") + "\n";
resultado.Text += (" W = " + W) + "\n";
resultado.Text += ("R: Los " + " que llegan a solicitar servicio, esperan
como") + "\n";
resultado.Text += ("promedio en el sistema " + W + " " + " ( " +
Math.Round(W * 60) + " " + " )") + "\n";
resultado.Text += ("5. NUMERO PROMEDIO DE CLIENTES EN EL
SISTEMA") + "\n";
resultado.Text += (" L = " + L) + "\n";
resultado.Text += ("R: Existen en promedio en el sistema " +
Math.Round(L) + " ") + "\n";
resultado.Text += ("6. PROBABILIDAD DE QUE UN CLIENTE QUE
LLEGA, TENGA QUE ESPERAR:") + "\n";
resultado.Text += (" Pw = " + Pw);
resultado.Text += ("R: Hay una probabilidad del " + Pw * 100 + "% de
que un ") + "\n";
resultado.Text += ("que llega a solicitar servicio, tenga que esperar") +
"\n";

private void Form1_Load(object sender, EventArgs e)


{
cmblineadeEspera.SelectedIndex = -1;
cmblambda.SelectedIndex = 0;
cmbmu.SelectedIndex = 0;
cmblambdac.SelectedIndex = 0;
cmbmuc.SelectedIndex = 0;

private void button2_Click(object sender, EventArgs e)


{
if (cmblineadeEspera.SelectedIndex == 0)
{

double Wq, W, L, Po, Pw, Pn;


double lambda = double.Parse(txtlambda.Text);
double mu = double.Parse(txtMu.Text);
double p = Math.Round((lambda / mu), 4);
double Lq = Math.Round(((p * p) / (1 - p)), 4);
Wq = Math.Round((Lq / lambda), 4);
W = Math.Round(Wq + (1 / lambda), 4);
L = Math.Round((lambda * W), 4);
Po = Math.Round((1 - p), 4);
Pw = Math.Round((1 - Po), 4);
int N = int.Parse(txtN.Text);
double suma = 0;
tabla.Text += " n | Pn*Po " + "\n";
tabla.Text += "------------------------------------------" + "\n";
for (int i = 0; i <= N; i++)
{
Pn = Math.Round(((Math.Pow(p, i)) * Po), 4);
tabla.Text += " " + i.ToString() + " | " + Pn + "\n";
suma += Pn;
if (i == N)
{
tabla.Text += "------------------------------------------" + "\n";
tabla.Text += "Total Σ = " + suma + "\n";
tabla.Text += "------------------------------------------" + "\n";
tabla.Text += "7) Existe una probabilidad del " + (suma * 100) + "
%de que no haya mas de " +
N + " en el sistema" + "\n";
tabla.Text += "---------------------------------------------" + "\n";
}
}
}
if(cmblineadeEspera.SelectedIndex == 1)
{
double lam, mu, c, p, Po, Lq, Wq, W, L, Pw, n, P,U, suma,Pn;
lam = double.Parse(txtlambdac.Text);
mu = double.Parse(txtmuc.Text);
c = double.Parse(txtc.Text);

suma = 1;
n = 0;
p = Math.Round((lam / mu), 4);
for (double i = 1; i < c; i++)
{
P = Math.Pow(p, i);
double Fac = 1;
for (double j = 1; j <= i; j++)
{
Fac = Fac * j;
}
double x = P / Fac;
suma += x;
}
double f = 1;
for (double z = 1; z <= c; z++)
{
f = f * z;
}
Po = Math.Round((1 / (suma + ((Math.Pow(p, c) / f) * (c / (c - p))))), 4);
double ff = 1;
for (double z = 1; z < c; z++)
{
ff = ff * z;
}
Lq = Math.Round((((Math.Pow(p, c + 1)) / ff) * (1 / Math.Pow(c - p, 2))
* Po));
Wq = Math.Round(Lq / lam, 6);
W = Math.Round((Wq + (1 / mu)), 6);
L = Math.Round(lam * W, 6);
Pw = Math.Round(((1 / f) * (Math.Pow(p, c)) * (c / (c - p)) * Po),6);
int N=int.Parse(txtN.Text);
tabla.Text += ("7. PROBABILIDAD DE QUE HAYA " + N + " CLIENTES
EN EL SISTEMA") + "\n";
tabla.Text += ("¿ Cual es la probabilidad de que no haya mas de " + N +
" " + " en el sistema?") + "\n";
tabla.Text += (" | n | Pn |")+"\n";
double [] v=new double[20];

double sumita = 0;
int ii = 0;
for (double i = 0; i <=N; i++)
{
double nn = 1;
for (double z = 1; z <= i; z++)
{
nn = nn * z;
}
if (i <= c)
{
Pn = Math.Round(((Math.Pow(p, i)) / nn)*Po, 4);
}
else
{
Pn = Math.Round(((Math.Pow(p, i)) / (f * (Math.Pow(c, N -
c))))*Po, 4);
}
v[ii] = Pn;
sumita += Pn;
ii++;
tabla.Text += (" | " + i + " | " + Pn + " |") + "\n";

tabla.Text += "total Σ = " + sumita.ToString()+"\n";


tabla.Text += ("R: La probabilidad de que no haya mas de " + N + " " + "
en el")+"\n";
tabla.Text += ("Sistema, es de " + Math.Round(sumita * 100, 2) +
"%")+"\n";
tabla.Text +="------------------------------------"+"\n";
tabla.Text += ("8. LA UTILIZACION")+"\n";
U = (1 - (v[0] + ((c - 1) / c) * v[1] + ((c - 2) / c) * v[2] + ((c - 3) / c) * v[3] +
((c - 4) / c) * v[4] + ((c - 5) / c) * v[5] + ((c - 6) / c) * v[6] + ((c - 7) / c) * v[7] + ((c - 8) /
c) * v[8] + ((c - 9) / c) * v[9] + ((c - 10) / c) * v[10]));
U = Math.Round(U, 2);
tabla.Text += ("U = " + U) + "\n";
tabla.Text += ("R: la utilizacion es de " + U * 100 + "%") + "\n";
}
}
private void label6_Click(object sender, EventArgs e)
{
}
private void button3_Click(object sender, EventArgs e)
{
resultado.Text = "";
tabla.Text = " ";
txtc.Text = "";
txtlambda.Text = " ";
txtlambdac.Text = "";
txtMu.Text = "";
txtmuc.Text = "";
txtN.Text = "";
cmblineadeEspera.SelectedIndex = -1;
}
}
}
5. SOLUCIÓN DE PROBLEMAS DE MMI Y MMC A TRAVÉS DEL PROGRAMA
DESARROLLADO EN EL LENGUAJE C#

MM1
Ejemplo M/M/1
1. Un avión tarda 4 minutos en aterrizar a partir del momento en que la torre de
control la da la señal de aterrizaje. Si las llegadas de los aviones se producen
por término medio, a razón de 8 por hora y siguiendo un proceso de Poisson,
¿cuánto debe esperar el piloto que va a tener que volar alrededor del
aeropuerto antes de recibir la señal de tierra? (λ= 8 aviones a la hora, µ= 15
aviones a la hora). Asimismo, determina todas las medidas de desempeño.
M/M/C
Ejemplo M/M/c
2. Un centro de cómputo está equipado con tres computadoras digitales, todas
del mismo tipo y capacidad. Cada programador tarda un tiempo
exponencial en escribir un programa, con una tasa media de 0.5 por hora.
Una vez que termina su programa, envía directamente al centro de cómputo
para su ejecución. El tiempo de cómputo por programa está distribuido
exponencialmente con tasa media de 2 por hora. Determinar todas las
medidas de desempeño
6. Conclusiones.
• Se realizo las interfaces graficas con las imágenes del proyecto a medida
que se iba realizando, la información sobre las versiones del lenguaje C# se
realizó con las búsquedas en internet de la pagina (Versiones de
Microsoft.NET) y (C Sharp-Wikipedia la enciclopedia libre), la historia del
lenguaje de programación C# fue investigada en internet, estudiada y
resumida (Historia del lenguaje C# -Microsoft Docs).
• También podemos decir que el tema de líneas de espera, es una herramienta
muy importante de operaciones puesto que sus resultados son aplicados en
una gran variedad de: negocios, comercios, industrias, etc. Así se podrá tener
una mejor atención al cliente, ya que con los cálculos será posible generar
confianza y fidelidad con el cliente.Y justamente con el programa que se
realizó en c# podemos ver cada uno de los pasos para que esta herramienta
se funcional al tipo de negocio que se necesite.
• Se puede observar que la calculadora resuelve el problema de acuerdo a las
medidas de desempeño resueltas en M/M/1 y M/M/c.
• También se pudo observar todo lo referido al modelo de desempeño
obtenemos los mismos resultados tanto de manera manual y en nuestro
programa.
7. Bibliografía.

Ph. D Ricarda Tola Paqui,” Teoría de grafos y modelos de Optimización con


Matlab” 2da Edición Potosí marzo de 2018.

• https://www.google.com/url?sa=t&source=web&rct=j&url=https://www.tokios
chool.com/noticias/c-que-
es/&ved=2ahUKEwjaxv3GpuP4AhVdDbkGHcKnC10QFnoECA8QBQ&usg=
AOvVaw29Gt01Urwn6MzzIcfhTPsD
• https://www.google.com/url?sa=t&source=web&rct=j&url=https://lenguajesd
eprogramacion.net/c-
sharp/&ved=2ahUKEwjaxv3GpuP4AhVdDbkGHcKnC10QFnoECC4QAQ&u
sg=AOvVaw0CL921pMm2R1AsCnzrZLEd

• https://www.google.com/url?sa=t&source=web&rct=j&url=https://es.m.wikipe
dia.org/wiki/C_Sharp&ved=2ahUKEwjaxv3GpuP4AhVdDbkGHcKnC10QFno
ECCcQAQ&usg=AOvVaw3y9k1TkyTpAVoSEKLuakac

• https://www.google.com/url?sa=t&source=web&rct=j&url=https://www.camp
usmvp.es/recursos/post/la-evolucion-del-lenguaje-
c.aspx%23:~:text%3DDesde%2520la%2520aparici%25C3%25B3n%2520d
e%2520C%2523,Actualizado)%2520(en%2520ingl%25C3%25A9s).&ved=2
ahUKEwiLg9ySp-
P4AhWtA7kGHZ82AbEQFnoECA0QBQ&usg=AOvVaw1eTfKdOHotb8gFM
MGbd167

• https://www.google.com/url?sa=t&source=web&rct=j&url=https://docs.micro
soft.com/en-us/dotnet/csharp/whats-new/csharp-version-
history&ved=2ahUKEwiLg9ySp-
P4AhWtA7kGHZ82AbEQFnoECDAQAQ&usg=AOvVaw3iswKMINP7ahRFZ
RewGI31

También podría gustarte