sábado, 29 de octubre de 2016

modelación y simulación de un fenómeno de espera; con la teoría de colas

Procesos en linea de espera:
Introducción:

En la mayoría de los procesos que se presentan en las empresas de manufactura y de servicio, aparecen las líneas de espera. Esto debido a que casi siempre, la capacidad de servicio (en algún momento) es menor que la capacidad demandada. Este proceso de generación de líneas de espera, trae consigo diferentes tipos de inconvenientes que se reflejan a corto y mediano plazo. Por tal motivo, se cuenta con un conjunto de modelos matemáticos que se enmarcan en el área de “La Teoría de Colas”. Estos modelos buscan encontrar el equilibrio entre el número de unidades que se encuentran en la línea de espera y la cantidad de servidores que satisfagan la demanda de servicio.

Diagrama de un "fenómeno de espera”


La teoría de colas es un conjunto de modelos matemáticos que describen sistemas de líneas de espera particulares. El objetivo principal es encontrar el estado estable del sistema y determinar una capacidad de servicio apropiada que garantice un equilibrio entre el factor cuantitativo (referente a costos del sistema) y el factor cualitativo (referente a la satisfacción del cliente por el servicio)

Son los clientes y los servidores. Entendiéndose por cliente una persona, una orden de servicio, un automóvil, una maquina en espera de mantenimiento, entre otros y el servidor será aquella estación que este en facultad de realizar la respectiva actividad de servicio sobre el cliente, por ejemplo un cajero, una secretaria, una máquina, etc.

Principales componentes de  la teoría de colas
1.-Las llegadas de los clientes.
 2. La capacidad de la cola.
3. La disciplina de la cola.
4. Los tiempos de servicio.
5. La cantidad de servidores.
6. Las etapas del sistema.


1.- Este concepto hace referencia al análisis de cómo se alimenta el sistema de colas en donde se evalúa variables como el tiempo que transcurre entre dos llegadas sucesivas a dicho sistema. Este valor es variable, por lo que se conoce como un proceso estocástico.Por lo tanto, es necesario analizar la distribución de probabilidad que presenta dicha variable.

2.- La Capacidad de la Cola. Es importante conocer de antemano cuál es la capacidad máxima de la cola, es decir, cuantos clientes pueden ubicarse en la línea de espera. Ya que se puede presentar casos en donde el sistema de colas presenta una línea de espera con capacidad limitada, otras donde es ilimitada y otras donde no hay líneas de espera (tal es el caso de un sistema de atención por vía telefónica en donde el usuario es bloqueado y rechazado si la línea telefónica se encuentra ocupada).

3.-La Disciplina de la Cola. Ésta hace referencia al modo como se acomodan las unidades o clientes en la cola antes de recibir el correspondiente servicio. Entre las formas más habituales se encuentran el sistema PEPS y el sistema UEPS. El primero se refiere a que la primera unidad que llega al sistema es la primera en ser atendida. El segundo indica que el último en ingresar a la cola es el primero en ser atendido. La aplicación de alguno de estos dos sistemas mencionados depende de la naturaleza de la unidad (Por ejemplo un producto no perecedero podrá ser trabajado con sistema UEPS, en cambio un producto perecedero deberá ser operado con un sistema PEPS

4.-Los Tiempos de Servicio. El servicio puede ser brindado por un servidor o por servidores múltiples. Éste varía de cliente a cliente, por tal motivo es necesario analizar la distribución de probabilidad asociada a dicha variable. El tiempo esperado de servicio depende de la tasa media de servicio la cual es evaluada a través del parámetro (µ).

5.-La Cantidad de Servidores. En esta fase es importante conocer o identificar cuántos servidores están disponibles para atender los clientes que llegan al sistema. De esta manera se pueden presentar diferentes estructuras de sistemas de colas.

Dado lo anterior, es importante tener claro las partes básicas que debe poseer un modelo, estas son:
 1.-  Los componentes, son las partes constituyentes del sistema. También se les denomina elementos o subsistemas.
2.-Las variables, son aquellos valores que cambian dentro de la simulación y forman parte de funciones del modelo o de una función objetivo.
3.-Los parámetros, son cantidades a las cuales se les asignar valores, una vez establecidos los parámetros, son constantes y no varían dentro de la simulación.
4.-Las relaciones funcionales, muestran el comportamiento de las variables y parámetros dentro de un componente o entre componentes de un sistema.
5.-Las restricciones, son limitaciones impuestas a los valores de las variables o la manera en la cual los recursos pueden asignarse o consumirse.
6.-Las funciones de desempeño, se definen explícitamente los objetivos del sistema y cómo se evaluarán, es una medida de la eficiencia del sistema

Notación de Kendall Lee
D.G. Kendall sugirió de una notación de utilidad para clasificar la amplia diversidad de los diferentes modelos de línea de espera que se han desarrollado. La notación de Kendall, de tres símbolos es como sigue: A/B/K Donde: A: indica la distribución de probabilidades de las llegadas B: Indica la distribución de probabilidades de tiempos de servicio • K: Indica el número de canales Dependiendo de la letra que aparezca en la posición A o B, se puede describir una amplia variedad de sistemas de línea de espera. Las letras que comúnmente se utilizan son: M: Designa una distribución de probabilidad de Poisson para las llegadas o distribución de probabilidad exponencial para el tiempo de servicio. D: Designa el hecho de que las llegadas o el tiempo de servicio es determinístico o constante. G: Indica que las llegadas o el tiempo de servicio tienen una distribución de probabilidad general, con media y varianza conocida.
Características de operación
Las características de operación son medidas de lo bien que funciona el sistema. En la mayoría de las aplicaciones de líneas de espera, el estado estable es de primera importancia. Los estados transitorios, como el de echar a andar y apagar el sistema, no se analizan. Las longitudes de las líneas de espera y los tiempos de espera se calculan en promedio.
Referencias:
Giraldo. G. Norman. Procesos Estocásticos. Universidad Nacional de Colombia. Medellín. 2006.
Hillier, Liberman. Introducción a la investigación de operaciones, Mc. Graw. Hill, 1999.
Winston, W., “Investigación de Operaciones: Aplicaciones y Algoritmos” Cuarta Edición. Editorial Thomson, 2005.
Eppen, G. D.; Gould, F. J. y Schmidt, C. P. Investigación de Operaciones en ciencia Administrativa. Edit. Prentice Hall. 1999.
Carson, Y. Anu, M. “Simulation Optimization: Methods and Applications”. Winter Simulation Conference. 1997.


viernes, 21 de octubre de 2016

números pseudoaleatorios, y sus características.

Números pseudoaleatorios.
¿Qué son los números pseudoaleatorios?
Se le denomina así a una serie de números  que dan la apariencia de ser aleatorios cuando no lo son, se sabe de antemano que han sido determinados mediante un modelo matemático.
Se llama números a una sucesión determinística de números en el intervalo [0,1] que tiene las mismas propiedades estadísticas que una sucesión de números aleatorios.

¿Por qué se les determina de esa manera?
Se les llama pseudoaleatorios por ser una sucesión de dígitos generada mediante una regla puramente determinística y que aparentan ser aleatorios, el objetivo en si es generar una lista lo suficientemente larga como para evitar llegar al comienzo del ciclo

Características mínimas de los métodos de generación de números pseudoaleatorios.
Un buen generador de números pseudoaleatorios debería tener las siguientes propiedades:
 Los números generados por dicho método deben:
*      Ajustarse a una distribución U(0,1).
*      Ser estadísticamente independientes (no debe deducirse un número conociendo otros ya generados).
*      Ser reproducibles (la misma semilla debe dar la misma sucesión) Esto nos puede permitir depurar fallos del modelo o simular diferentes alternativas del modelo en las mismas condiciones obteniendo una comparación más precisa.
*      Ciclo repetitivo muy largo.
*      Facilidad de obtención.
*      Debe ser rápido
*      Ocupar poca memoria.
*       
¿Qué es el método de Montecarlo?
Historia: La simulación de Monte Carlo está presente en todos aquellos ámbitos en los que el comportamiento aleatorio o probabilístico desempeña un papel fundamental -precisamente, el nombre de Monte Carlo proviene de la famosa ciudad de Mónaco, donde abundan los casinos de juego y donde el azar, la probabilidad y el comportamiento aleatorio conforman todo un estilo de vida.
La simulación de Monte Carlo es una técnica que combina conceptos estadísticos (muestreo aleatorio) con la capacidad que tienen los ordenadores para generar números pseudoaleatorios y automatizar cálculos.
La simulación de Monte Carlo es una técnica cuantitativa que hace uso de la estadística y los ordenadores para imitar, mediante modelos matemáticos, el comportamiento aleatorio de sistemas reales no dinámicos (por lo general, cuando se trata de sistemas cuyo estado va cambiando con el paso del tiempo, se recurre bien a la simulación de eventos discretos o bien a la simulación de sistemas continuos).
La clave de la simulación MC consiste en crear un modelo matemático del sistema, proceso o actividad que se quiere analizar, identificando aquellas variables (inputs del modelo) cuyo comportamiento aleatorio determina el comportamiento global del sistema.

PASOS PARA RREALIZAR UNA SIMULACIÓN POR MC “MONTE CARLO”
Una vez identificados dichos inputs o variables aleatorias, se lleva a cabo un experimento consistente en:
(1) Generar – con ayuda del ordenador- muestras aleatorias (valores concretos) para dichos inputs.
(2) analizar el comportamiento del sistema ante los valores generados.
Tras repetir n veces este experimento, dispondremos de n observaciones sobre el comportamiento del sistema, lo cual nos será de utilidad para entender el funcionamiento del mismo –obviamente, nuestro análisis será tanto más preciso cuanto mayor sea el número n de experimentos que llevemos a cabo.

Referencias:
Coss Bú, R. (1982). Simulación. México: Limusa.
→, V. (2011). Numeros pseudoaleatorios. Sistemasumma. Consultado 15  de Septiembre 2016, de https://sistemasumma.com/2011/09/05/numeros-pseudoaleatorios/

Introducción. (2016). Um.es. Consultado 15 de Septiembre 2016, de http://www.um.es/or/ampliacion/node16.html

Componentes y etapas de la simulación

Componentes y etapas de la simulación
Irving Santiago calderón caballero


Se ha escrito mucho acerca de los pasos necesarios para realizar un estudio de simulación.  Sin embargo, la mayoría de los autores opinan que los pasos  necesarios para llevar a cabo un experimento de simulación son:


Definición del sistema.
Para tener una definición exacta del sistema que se desea simular, es necesario hacer primeramente un análisis  preliminar del mismo, con el fin de determinar la interacción del sistema con otros sistemas, las restricciones del sistema, las variables que interactúan dentro del sistema y sus interrelaciones, las medidas de efectividad que se van a utilizar para definir y estudiar el sistema y los resultados que se esperan obtener del estudio.
Formulación del modelo.
       Una vez que están definidos con exactitud los resultados que se esperan obtener del estudio, el siguiente paso es definir y construir el modelo con el cual se obtendrán los resultados deseados. En la formulación del modelo es necesario definir todas las variables que forman parte de él, sus relaciones lógicas y los diagramas de flujo que describan en forma completa al modelo.
Colección de datos.
       Es posible que la facilidad de obtención de algunos datos o la dificultad de conseguir otros, pueda influenciar el desarrollo y formulación del modelo. Por consiguiente, es muy importante que se definan con claridad y exactitud datos que el modelo va a requerir para producir los resultados deseados. Normalmente, la información requerida por un modelo se puede obtener de registros contables, de órdenes de trabajo, de órdenes de compra, de opiniones de expertos y si no hay otro remedio por experimentación.
Implementación del modelo.
       En la computadora con el modelo definido, el siguiente paso es decidir si se utiliza algún lenguaje como fortran, basic, algol, etc., o se utiliza algún paquete como GPSS, simula, simscript, etc., para procesarlo en la computadora y obtener los resultados deseados.
Validación.
       Una de las principales etapas de un estudio de simulación es la validación. A través de esta etapa es posible detallar deficiencias en la formulación del modelo o en los datos alimentados al modelo. Las formas más comunes de validar un modelo son:
       1. La opinión de expertos sobre los resultados de la simulación.
       2. La exactitud con que se predicen datos históricos.
       3. La exactitud en la predicción del futuro.
       4. La comprobación de falla del modelo de simulación al utilizar datos que hacen fallar al sistema real.
       5. La aceptación y confianza en el modelo de la persona que hará uso de los resultados que arroje el experimento de simulación.
Experimentación.
       La experimentación con el modelo se realiza después de que este ha sido validado. La experimentación consiste en generar los datos deseados y en realizar análisis de sensibilidad de los índices requeridos.
Interpretación.
       En esta etapa del estudio, se interpretan los resultados que arroja la simulación y en base a esto se toma una decisión. Es obvio que los resultados que se obtienen de un estudio de simulación ayudan a soportar decisiones del tipo semi-estructurado, es decir, la computadora en si no toma la decisión, sino que la información que proporciona ayuda a tomar mejores decisiones y por consiguiente a sistemáticamente obtener mejores resultados.
Documentación.
       Dos tipos de documentación son requeridos para hacer un mejor uso del modelo de simulación. La primera se refiere a la documentación de tipo técnico, es decir, a la documentación que el departamento de Procesamiento de Datos debe tener del modelo. La segunda se refiere al manual del usuario, con el cual se facilita la interacción y el uso del modelo desarrollado. A través de una terminal de computadora.
Factores a considerar en el desarrollo del modelo de simulación.
       Ya que el proceso de simulación está basado fuertemente en la teoría de la probabilidad y  la estadística, en matemáticas, ciencias computacionales etc. Por ello dichos factores estadísticos matemáticos son fundamentales y deben ser considerados.


Generar variables aleatorias no-uniformes
       Si el modelo de simulación es estocástico, la simulación debe ser capaz de generar variables aleatorias no uniformes de distribuciones de probabilidad teóricas o empíricas. Lo anterior puede ser obtenido si se cuenta con un generador de números uniformes y una función que transforme estos números en valores de la distribución de probabilidad deseada. Por consiguiente  pueden ser utilizados los generadores de números no aleatorios para distribuciones normales, exponenciales binomiales  etc.


Lenguajes de programación
Las primeras etapas de un estudio de simulación se refieren a la definición del sistema a ser modelado y a la descripción del sistema en términos de relaciones lógicas de sus variables y diagramas de flujo. Sin embargo, llega el momento de describir el modelo en un lenguaje que sea aceptado por la computadora que se va a usar. En esta etapa se tienen dos cursos de acción a seguir si no se tiene nada de software sobre simulación: 1) Desarrollar el software requerido para estudios de simulación, ó 2) Comprar software (lenguajes de programación de propósito especial). Para esta alternativa es necesario analizar y evaluar varios paquetes de simulación (GPSS, GASP, etc.) antes de tomar la decisión final.


Condiciones iniciales
       La mayoría de los modelos de simulación estocástica se corren con la idea de estudiar al sistema en una situación de estado estable. Sin embargo, la mayoría de estos modelos presentan en su etapa inicial estados transigentes los cuales no son típicos del estado estable. Por consiguiente es necesario establecer claramente las Alternativas o cursos de acción que existen para resolver este problema. Algunos autores piensan que la forma de atacar este problema sería a través de:
       *Usar un tiempo de corrida lo suficientemente grande de modo que los períodos transigentes sean relativamente insignificantes con respecto a la condición de estado estable.
       *Excluir una parte apropiada de la parte inicial de la corrida.
       *Utilizar simulación regenerativa.
Tamaño de la muestra
       Uno de los factores principales a considerar en un estudio de simulación es el tamaño de la muestra. La selección de un tamaño de muestra apropiado que asegure un nivel de ya la vez minimice el costo de operación del modelo, es un problema algo difícil pero muy importante. Puesto que la información proporcionada por el experimento de simulación seria la base para decidir con respecto a la operación del sistema real, esta información de ser tan exacta y precisa como sea posible o al menos el grado de imprecisión presente en la información proporcionada por el modelo debe ser conocida. Por consiguiente, es necesario que un análisis estadístico sea realizado para determinar el tamaño de muestra requerido. El tamaño de la muestra puede ser obtenido de dos maneras:
       1. Previa e independientemente de la operación del modelo, o
       2. Durante la operación del modelo y basado en los resultados arrojados por el modelo. Para la última alternativa se utiliza la técnica estadística de intervalos de confianza.
Diseño de experimentos
       El diseño de experimentos es un tópico cuya relevancia en experimentos de simulación ha sido reconocida pero raramente aplicado. El diseño de experimentos en estudios de simulación puede ser de varios tipos, dependiendo de los propósitos específicos que se hayan planteado. Existen varios tipos de análisis que pueden ser requeridos. Entre los más comunes e importantes se pueden mencionar los siguientes:
       *Comparación de las medias y variancias de las alternativas analizadas.
       *Determinación de la importancia y el efecto de diferentes variables en los resultados de la simulación.
       *Búsqueda de los valores óptimos de un conjunto de variables.
ETAPAS DE UN PROYECTO DE SIMULACION
1.-ANÁLISIS DE OBJETIVOS Y CRITERIO: En esta Primera Fase, se agrupan el conjunto de tareas que tiene por fin definir el Marco del Problema y sus ámbitos de validez. Diseñar el Modelo y Validarlo.
2.-FORMULACIÓN PRECISA DEL PROBLEMA: Es necesario en primer lugar definir claramente los objetivos de nuestra investigación, antes de hacer cualquier intento encaminado a planear la realización de un experimento en simulación. Encontraremos que la exposición original del problema varía considerablemente de su versión final, ya que la formulación del problema es un proceso secuencial que generalmente requiere de una formulación continua y progresiva de refinamiento de los objetivos de experimento durante su realización:
Los ítems a trabajar en esta etapa son:
• Definición de hipótesis
• Causas y Efectos que deben predecirse, estimarse y evaluarse.
• Conjunto de criterios para evaluar los resultados.
• Decisión si es o no la Simulación la herramienta para estudiar.
       3.-RECOLECCIÓN DE DATOS REALES: Necesitaríamos colectar y procesar una cierta cantidad de datos cualitativos y cuantitativos antes de que exista la posibilidad de definir algún modelo. Para nuestros propósitos, resulta          completamente irrelevante que los requerimientos para el procesamiento de datos procedan la formulación del problema o viceversa; si hemos de dirigir experimentos de simulación, es importante que ambas funciones se lleven a cabo.
       4.-FORMULACIÓN DEL MODELO: La formulación de los modelos consiste en tres pasos:
       * Especificación de los componentes
       *Especificación de las variables y los parámetros que se deben incluir en el modelo.
       * Especificación de las relaciones funcionales.
       5.-ESTIMACIÓN DE PARÁMETROS Y ANÁLISIS ESTADÍSTICO: Una vez que hemos recolectado los datos apropiados del sistema que describen su comportamiento es necesario estimar los valores de los parámetros para el modelo y probar su significación estadística.
       6.-VALIDACIÓN DEL MODELO Y SUS PARÁMETROS: Es necesario hacer un juicio del valor inicial de la suficiencia de nuestro modelo, para probarlo. Esto se logra haciendo una comparación de las mediciones iniciales obtenidas por nuestro modelo de simulación con las obtenidas de la realidad.
       Este paso representa sólo la primera etapa en la prueba de un modelo de simulación previa a las corridas reales en la computadora, por lo que en este punto nuestro interés reside en probar las suposiciones o entradas que se programarán en la computadora.
       7.-IMPLEMENTACIÓN DEL PROCESAMIENTO: En esta Segunda Fase, se agrupan el conjunto de tareas que tiene por fin obtener una versión   del Modelo de Cómputo y sus Experimentos.
       8.-CODIFICACIÓN DEL MODELO: DIAGRAMAS DE FLUJO, PROGRAMACIÓN,COMPILACIÓN: La formulación de un programa para computadoras, cuyo propósito sea dirigir los experimentos de simulación con nuestros modelos del sistema bajo estudio, se debe escribir un programa de simulación para computadora la primera etapa requiere la formulación de un diagrama de flujo que bosqueje la secuencia lógica de los eventos que realizará la computadora, al generar los tiempos planificados para las variables endógenas de nuestro modelo.
       9.-VALIDACIÓN DE LOS PROGRAMAS: ESTIMACIÓN DE VARIABLES DE ENTRADA Y CONDICIONES INICIALES: Las Pruebas del software son tareas típicas que se integran dentro de las diferentes fases del Ciclo del software dentro de la Ingeniería de software. La idea principal es ejecutar un programa y mediante técnicas experimentales tratar de descubrir que errores tiene. La calidad de un sistema software es algo subjetivo que depende del contexto y del objeto que se pretenda conseguir. Para determinar dicho nivel de calidad se deben efectuar pruebas que permitan comprobar el grado de cumplimiento respecto de las especificaciones iniciales del sistema.
       Básicamente es una fase en el desarrollo de software consistente en probar las aplicaciones construidas: es un proceso de evaluación desde un punto de vista crítico, donde el "tester" (persona que realiza el testeo) somete el Modelo de Software a una serie de acciones inquisitivas, y el producto responde con su comportamiento como reacción.
       10.-DISEÑO DE EXPERIMENTOS DE SIMULACIÓN: VALORES DE INPUTS, ORDEN DE CORRIDAS, EXTENSIÓN: Una vez que estemos satisfechos con la validez de nuestro modelo para la computadora, estaremos en posibilidad de considerar su uso para dirigir efectivamente, los experimentos de simulación. De hecho, como ya hemos definido nuestro problema experimental, las variables endógenas y lo factores (variables exógenas y parámetros), deberemos interesarnos ahora por los detalles de diseño experimental.
       En esta fase, es posible identificar dos metas importantes: en primer lugar, seleccionaremos las variables iniciales y aquellas que se definan por Interfase al momento de la Simulación, o bien sus rangos de variación para la simulación.
       11.-SIMULACIÓN: EJECUCIÓN DEL MODELO DE SIMULACIÓN: Este es el momento de conducir los experimentos mediante el modelo de Simulación en corridas sucesivas y planificadas. Este proceso puede tardar algún tiempo o bien arrojar resultados inmediatos. De cualquier manera se deberán almacenar los valores de Salida de la Simulación del modelo para su estudio y análisis en la etapa siguiente.
       12.-ANÁLISIS DE RESULTADOS: La etapa final en el procesamiento requiere un análisis de los datos generados por la computadora, a partir del modelo que simular. Tal análisis consiste de tres pasos:
       1.- Recolección y procesamiento de los datos simulados.
       2.- Cálculo de la estadística de las pruebas.
       3.- Interpretación de los resultados.
       El análisis de los datos de simulación en computadora es, según los expertos, considerablemente más difícil que el análisis de los datos del mundo real.

Bibliografía consultada:
Coss Bú, R. (1982). Simulación. México: Limusa.
computación-de-sistemas - 1.6.-Etapas de un Proyecto de Simulación. (2016). Computacion-de-sistemas.es.tl. obtenido 5 Septiembre 2016, de http://computacion-de-sistemas.es.tl/1-.-6-.-_Etapas-de-un-Proyecto-de-Simulaci%F3n.htm