E LEMENTOS DE SIMULACI ÓN Un enfoque práctico con Witness Marzo 2012 Universidad Politécnica de Madrid Alvaro Garcı́a Sánchez Miguel Ortega Mier David Izquierdo Delgado Índice general Índice general PROLOGO A quién va dirigido el libro Cómo utilizar el libro No es un tratado exhaustivo de cómo utilizar Witness No es un libro de teorı́a de simulación De qué tipos de sistema se ocupa el libro Explicar el formato del texto: cuadros grises, cuadros blancos, ¿más? Sobre los materiales. Nomenclatura de los archivos, cómo están organizados, etc. Tipografı́as Criterio de tipografı́a: Nombres de archivos Modelo.mod,Libro.xls palabras resevadas de Witness PULL, PUSH Palabras correspondientes a código: ((LOGNORML(2,0.2))) Rutas para seguir menús: Menú / Submenú /Subsubmenú Nombre de elementos en Witness Maquina001 3 Capı́tulo 1 INTRODUCCIÓN A LA SIMULACIÓN 1.1. Introducción Este libro se ocupa, con un carácter eminentemente práctico, de las estapas que hay que realizar para desarrollar un estudio de simulación discreta. En este capı́tulo se presentan los conceptos fundamentales sobre esta técnica a modo de marco general para el conjunto de problemas y técnicas que se abordan en el resto de los capı́tulos. En primer lugar, se justifica la necesidad de recurrir a la simulación para estudiar determinados problemas (1.2). A continuación, se presenta un ejemplo sencillo realizado con una hoja de cálculo para ilustrar cómo opera un modelo de simulación discreta (4.2). Sin embargo, un modelo de simulación es más complejo que lo que se presenta en ese ejemplo, por lo que en el epı́grafe 1.4 se explica de qué elementos consta un modelo de simulación completo. Más adelante, en el apartado 1.5, se explica con qué se alimenta y qué se obtiene de un modelo de simulacı́ón. Además, junto con los aspectos relacionados con la programación, un estudio de simulación implica otras actividades, las cuales se presentan en el apartado 1.6. Finalmente, en el apartado 1.7 se describen las alternativas disonibles para constuir un modelo de simulación. 1.2. Estructura del capı́tulo Por qué simular La utilización de modelos facilita el estudio de muchos sistemas. Generalmente, frente a la alternativa a ensayar directamente sobre el sistema estudidado, resulta menos costoso y menos arriesgado elaborar un modelo del sistema y estudiar su comportamiento mediante el análisis de ese modelo. Por ejemplo, para el estudio del comportamiento de un edificio es recomendable elaborar un modelo de la estructura correspondiente. A partir del análisis del modelo se pueden establecer las caracterı́sticas de las vigas, los pilares, etc. para poder garantizar que la estructura cumplirá los requisitos establecidos para su correcto funcionamiento. La utilidad de los modelos Capı́tulo 1. INTRODUCCIÓN A LA SIMULACIÓN 5 Igualmente, el rediseño de una lı́nea de montaje de automóviles o la modificación de la operación de una empresa logı́stica se pueden estudiar mediante modelos. Aunque la elaboración de un modelo puede ser relativamente costosa, con frecuencia, resulta menos costosa que los posibles costes derivados de una decisión poco acertada. Existen modelos de muy diferente naturaleza, tan diferentes entre sı́ como los modelos fı́sicos y los modelos de simulación discreta. La naturaleza de dichos problemas condiciona la idoneidad de los modelos utilizados y de las técnicas apropiadas para explotar dichos modelos. Existen multitud de modelos Los problemas que se plantean en Ingenierı́a de Organización consisten, en con carácter muy general, obtener un buen (y si se puede, el mejor) funcionamiento de un sistema que opera con recursos limitados y sujeto a diferentes restricciones. Por ejemplo, la Ingenierı́a de Organización se ocupa de la asignación de recursos a tareas, del rediseño de instalaciones, de la programación de actividades, etc. La Ingenierı́a de Organización Estos problemas se pueden abordar mediante modelos exactos. La Programación Lineal, la Teorı́a de Colas, la Programación Dinámica son ejemplos de modelos para cuyo tratamiento existen técnicas exactas. Los modelos de este tipo permiten representar en términos analı́ticos tanto el problema como el objetivo que se persigue con su estudio. Para muchos de estos modelos existen técnias que permiten obtener la mejor solución para el problema estudiado. En general, los métodos exactos son preferibles frente a otros. Los métodos exactos Capı́tulo 1. INTRODUCCIÓN A LA SIMULACIÓN 6 UN MODELO EXACTO Una empresa fabrica bicicletas y triciclos. Con la venta de una bicicleta obtienen un beneficio de 10 unidades monetarias (um) y con la de un triciclo 5 um. Como es natural, cada bicicleta necesita dos ruedas y cada triciclo tres. Tanto las bicicletas como los triciclos necesitan el mismo tipo de manillar. Si la empresa dispone de semanalmente de 100 ruedas y de 30 manillares, ¿cuál es la producción que le reporta un mayor beneficio? Si se definen x1 como el número de bicicletas producidas semanalmente y x2 el de triciclos, el beneficio se puede computar como 10x1 + 5x2 . Por otro lado, el consumo de ruedas será 2x1 + 3x2 y no puede superar las 100 ruedas disponibles, con lo que deberá cumplirse 2x1 + 3x2 ≤ 100. Igualmente, para los manillares deberá cumplirse x1 + x2 ≤ 30. Por último, se debe cumplir que x1 , x2 ≥ 0. El modelo siguiente es un modelo de Programación Lineal, para cuya resolución existen técnicas de resolución exactas, como el método del Simplex, que permiten obtener la mejor solución al problema. max z =10x1 + 5x2 sujeto a: 2x1 + 3x2 ≤ 100 (1.1) x1 + x2 ≤ 30 x1 , x2 ≥ 0 Este es es un ejemplo muy sencillo de modelo de Programación Lineal, pero exiten otros modelos de naturaleza diferente Sin embargo, en ocasiones, no es posible construir modelos abordables con métodos exactos. A veces, no es posible representar de la operación del sistema en términos analı́ticos o no es posible hacerlo en términos suficientemente sencillos. En otras ocasiones, los modelos exactos son tan complejos que no es posible obtener soluciones en tiempos de computación razonables. En estas ocasiones, la simulación de eventos discretos puede ser muy interesante. ¿Cuándo recurrir a la simulación? La simulación es especialmente adecuada en sistemas: altamente complejos (donde no son válidos los modelos exactos), de carácter dı́námico (es decir, el sistema estudiado evoluciona con el tiempo) y con fenómenos de carácter estocástico. Existen muchos tipos de simulación y en muchas disciplinas. La dinámica de sistemas o el método de Montecarlo, por ejemplo, son tipos de simulación aplicados a problemas de Ingenierı́a de Organización. Varios tipos de simulación Capı́tulo 1. INTRODUCCIÓN A LA SIMULACIÓN La simulación de eventos discretos se caracteriza, fundamentalmente, por la existencia de eventos (llegada de un cliente, finalización de la reparación de una máquina), que desencadenan el cambio del estado de los elementos del sistema (asignación de un vendedor al cliente, liberación del operario para realizar otras tareas) y desencadenan nuevos eventos para los cuales se calcula el instante en el que se producirán (llegada del nuevo cliente, nueva averı́a de la máquina). Como resultado de lo anterior, en la simulación discreta el estado del sistema cambia de forma discreta con el tiempo y no existen funciones que dependan explı́citamente del tiempo. 7 Eventos y estados A continuación, en la sección (4.2), se presenta un ejemplo sencillo de simulación discreta mediante la utilización de una hoja de cálculo y, más adelante, (en la sección 1.4) se presentan los elementos especı́ficos de un modelo de simulación discreta. Conviene señalar que los modelos de simulación son de carácter descriptivo. Esto significa que permiten reproducir el comportamiento del sistema pero, por sı́ solos, no ofrecen soluciones buenas u óptimas con respecto a algún criterio. Los modelos normativos, como la Programación Lineal, permiten describir el comportamiento del sistema y sı́ guı́an el proceso de búsqueda de soluciones. Por ello, es importante la intervención del analista para la explotación de un modelo de simulación. También, en ocasiones, se combina la simulación con técnicas para la búsqueda de soluciones en lo que se conoce, en inglés, como Simulation Optimization. 1.3. Un ejemplo sencillo En este epı́grafe se presenta un problema sencillo que puede ser tratado mediante el desarrollo de un modelo de simulación basado en una hoja de cálculo. Este tipo de simulación se conoce como Método de Montecarlo, en el que se utilizan los números aleatorios distribuidos entre 0 y 1 para resolver problemas en los que aparecen fenómenos tanto de carácter aleatorio como determinista. Modelos descriptivos Capı́tulo 1. INTRODUCCIÓN A LA SIMULACIÓN Un depósito que contiene carbón atiende una demanda diaria de cantidad variable, de manera que cada dı́a se expide con un camión con una carga de entre 70 y 130 Tm. A partir de datos históricos se ha establecido la frecuencia de ocurrencia para los distintas cantidades exedidas, que figuran en la tabla siguiente. Salidas (Tm) % casos observados 70 7 80 10 90 18 100 28 110 21 120 10 130 6 El aprovisionamiento del depósito se realiza por medio de trenes que transportan una cantidad de carbón constante, pero que llegan a intervalos de tiempo variables (variando entre los 2 y los 8 dı́as). Las frecuencias de ocurrencia de los diferentes valores para el intervalo de tiempo entre llegadas figuran en la tabla siguiente. Tiempo entre llegadas (dı́as) % casos observados 2 5 3 13 4 17 5 27 6 23 7 10 8 5 Teniendo en cuenta los patrones de demanda y del intervalo entre trenes, se ha fijado el lote con el que cada tren alimenta el depósito en 500 Tm. Por otra parte, para cubrirse frente la aleatoriedad de la demanda y del tiempo entre llegadas de los trenes, a primeros de año se puede comprar a un suministrador exterior una cierta cantidad que permite comenzar el año con un nivel de inventario inicial. La demanda no se puede diferir, es decir, la demanda que no se atiende un dı́a no se sirve otro dı́a, se trata de demanda perdida. El coste de almacenaje (CA) es 0,2 u.m./(dı́a y Tm) y el coste de carencia (CC) es 100 u.m. cada dı́a que se produce una carencia, es decir, este coste es independiente de la cantidad no servida. Se trata de determinar el nivel inicial de inventario que permita minimizar el coste total. Este problema es sencillo y se podrı́a abordar de forma exacta mediante la aplicación de la Teorı́a de Colas. A modo de introducción, a continuación, se presenta un modelo de simulación, realizado con Excel, bastante simple con el que poder estudiar el comportamiento del sistema para diferentes valores del nivel se stock inicial. El archivo Ejemplo1-1.xls está elaborado para facilitar la construcción dicho modelo y poder llegar al resultado, disponible en Ejemplo1-1 Solucion.xls 8 Capı́tulo 1. INTRODUCCIÓN A LA SIMULACIÓN 9 Como en cualquier modelo (y en particular si es de simulación), es necesario realizar hipótesis acerca del sistema. En primer lugar, se admite que la frecuencia relativa de los casos observados es igual a la probabilidad de que ocurra cada valor. Es decir, se espera que la probabilidad de que la demanda de carbón correspondiente a un dı́a cualquiera sea de 80 Tm es 0.1. Hojas de cálculo y simulación Para reproducir el comportamiento del sistema se admite que el tiempo avanza en intervalos de tiempo constantes e iguales a un dı́a. Ası́, para simular la evolución del sistema se obtendrá el estado del sistema a lo largo de los 365 dı́as de un año. Hipótesis del modelo El archivo consta de dos hojas: una con las distribuciones (((Distribuciones))) y otra con la simulación (((Simulacion))) Estructura del archivo .xls La hoja ((Distribuciones)) contiene la información necesaria para generar valores de las variables aleatorias correspondientes a la llegada de trenes y a la demanda diaria, conforme a las probabilidades que se han admitido como válidas. En la figura 1.1 aparecen las celdas correspondientes a la generación de la demanda diaria. Las tres primeras columnas contienen la siguiente información: la función de probabilidad (primera columna), la función de distribución (segunda columna) y los posibles valores que puede tomar la variable aleatoria (tercera columna). A partir de esas tres columnas, hay otras dos columnas dispuestas de tal manera que mediante la función de Excel ((CONSULTARV)) (o ((BUSCARV)) para versiones anteriores a Office 2010) y a partir de un valor aleatorio entre 0 y 1 es posible generar valores de la demanda consistentes con la función de probabilidad (ver cuadro 1.3). Generación de números aleatorios PENDIENTE: poner captión al cuadro, que aparece referenciado como cuadro 1.3 FUNCIÓN ((CONSULTARV)) EN EXCEL La ((CONSULTARV(Valor buscado;Matriz buscar en;- función Indicador columnas;Ordenado))) busca en una tabla el Valor buscado en la primera columna, situada más a la izquierda, ve el valor que está en la fila del Valor buscado na para situada los en datos la de posición la hoja Indicador columnas. Distribuciones, al y devuel- en la colum- De esta invocar ((CONSULTARV(0.59;Distribuciones!G19:H26;2;VERDADERO))), la se manera, función busca en la primera columna de las celdas sombreadas de la figura 1.1 el primer valor que supera 0.59 y devuelve el valor que está situado a su derecha: 100. Capı́tulo 1. INTRODUCCIÓN A LA SIMULACIÓN 10 Figura 1.1: datos históricos para la demanda diaria (en Tm). La hoja ((Simulación)) contiene la información relativa a la evolución del sistema. Por un lado, a modo de resumen, en la parte superior (figura 1.2) aparece el valor del stock inicial (que es objeto de decisión) y los costes del stock, de las carencias y la suma de los dos para un posible año de operación del sistema. Figura 1.2: resumen del comportamiento del sistema. El resto de la hoja contiene la información relativa a la simulación del sistema. Existen cuatro grupos de columnas, que permiten estudiar diferentes aspectos. Contador de tiempos (columna A), donde se registran los enteros entre 1 y 365, de manera que cada fila contiene la información correspondiente a cada uno de los de los 365 dı́as del año. Llegada de trenes (columnas B-E), que contiene el dı́a en en las que llegará el siguiente tren, información con la cual se actualiza el valor del stock cuando corresponde. Generación de la demanda (columnas F y G), en las que se genera la demanda diaria de carbón. Evolución del stock (columnas H-J), donde se calculan los valores del stock. Cómputo de los costes (columnas K y L, que permite calcular los costes de stock y los costes de carencia. Existen tantas filas como dı́as más una fila inicial en la que se genera la información relativa a la llegada del primer tren. Cada fila contiene la información correspondiente a los trenes, la demanda, el stock y los costes de ese dı́a. La simulación propiamente dicha Capı́tulo 1. INTRODUCCIÓN A LA SIMULACIÓN 11 Las columnas B-E, sombreadas en azul, reproducen el la información relativa a la llegada de trenes. La primera fila sirve para realizar la inicialización del modelo. Para generar cuándo tendrá lugar la llegada del primer tren. Para ello, tal y como se explica en el epı́grafe 3.5 del capı́tulo 3, se genera un número aleatorio entre 0 y 1, con lo que se genera el tiempo hasta la llegada del primer tren. Este mismo proceso habrá que realizarlo cada vez que llegue un tren. El evento “llegada de un tren” desencadena el siguiente evento llegada de tren. En la columna B figuran los números aleatorios necesarios para generar los intervalos entre trenes y en la columna C figuran los valores de los intervalos correspondientes a los números aleatorios generados. La columna D almacena el instante (no intervalo) en el que llegará el siguiente tren. Para el caso del primer tren, ese instante coincide con el valor del intervalo (porque el instante inicial es 0). Para el resto de trenes, cada vez que llega un tren se calcula el instante en el que llegará el siguiente como el dı́a actual más los dı́as correspondientes al intervalo entre llegadas, valor generado en la columna C. Cuando no hay llegada de tren, el dı́a en el que llegará el siguiente tren no se modifica. Por último, la columna E indica si el dı́a correspondiente llega o no llega tren. Si llega, será necesario modificar el valor del stock y generar la llegada del siguiente tren. Figura 1.3: llegada de trenes. Por ejemplo, el la figura 1.3 se observa que el dı́a 5 llega un tren. Cuando eso ocurre, se genera un nuevo valor para la próxima llegada (columna D), el dı́a 11. Para ello, primero se genera un número aleatorio entre 0 y 1 (columna B), a partir del cual se obtiene el número de dı́as hasta el siguiente tren (columna C), en este caso es 5. Finalmente, el dı́a en el que llegará el siguiente tren se obtiene como el dı́a actual (5) más el número de dı́as hasta el siguiente tren (6). En las filas siguientes, el valor de dicha columna no cambia hasta que el contador de dı́as (columna A) tiene el valor 11. Cuando esto es ası́, se realiza la misma operación nuevamente. Llegada de trenes Capı́tulo 1. INTRODUCCIÓN A LA SIMULACIÓN 12 Las columnas F y G, sombreadas en amarillo, permiten generar la demanda. Todos los dı́as existe una demanda. Para cada dı́a (cada fila) se genera, primero una número aleatorio entre 0 y 1 (columna F ), y con ese valor, se genera un valor de la demanda (columna G) Las columnas H-J, sombreadas en gris, reproducen la evolución del stock. Consta de tres columnas que permiten registrar: el stock teórico, columna H, como resultado de la diferencia entre lo que entra al depósito y lo que sale, y que puede ser negativo; el stock real, columna I, que es el máximo entre el stock teórico y 0; y la existencia de carencia o no, columna J; se produce una carencia si el stock teórico es menor que el real (es decir, cuando el stock real es igual a 0 y no se ha podido atender la demanda de ese dı́a). Generación de la demanda Evolución del stock Las columnas K y L, en color salmón, computan los de cada dı́a. Costes de stock, columna K. Para cada dı́a se puede calcular el coste del stock como el proucto del stock del depósito multimplicado por el coste unitario por dı́a y Tm de carbón. Costes de carencia, columna L. Cuando se producen una carencia (figura un “SI” en la columna J se computa el coste de carencia, de 100 um. Cómputo de los costes Las celdas B6 contiene el coste para la simulación de uño completo, que es la suma de todos los costes de stock (computados en B4) y todos los cotes de carencia (computados en B5). En las opciones de Excel, se ha activado la opción de actualización manual. Se puede modificar esta opción accediendo a Herramientas/Opciones/Calcular, tal y como se puede observar en la figura 1.4. Al pulsar F 9 se generan nuevos valores aleatorios en todas las celdas que contengan la expresión ((ALEATORIO())). Análisis Capı́tulo 1. INTRODUCCIÓN A LA SIMULACIÓN Figura 1.4: opciones de Excel. Calcular automática o manualmente. Pulsando repetidamente F 9 se obtienen diferentes valores de los costes. Adicionalmente, se puede modificar la celda correspondiente al stock inicial B3 y obtener, igualmente, diferentes valores del coste para dicho stock inicial. Realizando esto, se pueden comprobar varias cosas. En primer lugar, para un determindado valor del stock inicial, cada vez que se actualizan los valores de los números aleatorios, se producen eventos en instantes diferentes y, por lo tanto, los costes son diferentes. Además, en general, para valores elevados del stock inicial se obtienen costes de carencia altos y costes de stock reducidos. Al contrario, si el stock inicial es elevado, el coste de carencia es reducido a costa de asumir un coste de stock mayor Se ha reproducido el comportamiento del sistema durante un año. Cada vez que se modifican los números aleatorios se obtiene un posible comportamiento del sistema durante un año, se dice que realiza una replicación. A pesar de poder observar varios fenómenos, como los que se han comentado, existen algunas cosas que no quedan resueltas: Para alimentar el modelo, la probabilidad de que cada variable aleatoria tome un determinado valor es igual a la frecuencia relativa con la que se ha observado dicho valor, pero ¿es esto válido? Los valores de las variables aleatorias se he realizado a partir de la función ((ALEATORIO())), ¿es correcto? Una sóla replicación puede no ser representativa del comportamiento del sistema, y como no es posible saberlo, realizar una sola replicación es insuficiente. Es necesario realizar varias repliaciones, pero ¿cuántas? Incluso sabiendo el número de replicaciones adecuado, ¿basta con obtener la media de los costes de todas las repliaciones? En este caso, interesarı́a comparar los costes para diferentes valores del stock inicial. ¿Basta comparar las medias obtenidas para un conjunto de replicaciones? 13 Capı́tulo 1. INTRODUCCIÓN A LA SIMULACIÓN Las cuestiones anteriores son algunos ejemplos de los aspectos que hay que tener en cuenta al realizar un estudio de simulación. A lo largo de los capı́tulos del libro se abordan las cuestiones más importantes para realizar de forma correcta un estudio de simulación. 14 Algunas cuestiones pendientes El ejemplo planteado es un caso sencillo de simulación discreta en el que la realización de determinados eventos desencadena otros y modifica el estado de los elementos del sistema. Por ejemplo, el evento llegada de un tren genera otro evento (la llegada del siguiente tren) y modifica el estado de un elemento (el stock se incrementa en 500 Tm. En el siguiente epı́grafe se describen todos los elemntos de un modelo de simulación discreta. 1.4. Elementos de un modelo de simulación Los problemas que se abordan mediante simulación discreta son más complejos que el sistema del ejemplo anterior. En esos sistemas hay más elementos, más eventos y más estados. Por ejemplo, un puesto en una lı́nea de montaje puede estar en diferentes estados: ocioso, trabajando, averiado, esperando a un operario, etc. Igualmente, puede haber diferentes eventos: averı́a del puesto, fin de operación, comienzo de operación, fin de reparación, etc. La generación de eventos y la modificación de estados son aspectos nucleares de la simulación de eventos discretos. En el siguiente apartado se presentan todos los elementos de un modelo de simulación de eventos discretos. Eventos y estados Para gobernar de forma sistemática estos cambios, un modelo de simulación consta de (ver [1], pág. 9): El estado de sistema, es decir, un conjunto de variables que permitan describir el estado de los diferentes elementos del sistema El reloj de la simulación, que es un contador que guarda registro del instante en el que se encuentra la simulación. La lista de eventos, donde se almacenan los eventos que deben tener lugar y cuándo deben ocurrir (por ejemplo, la lista de eventos puede contener la inforamción siguiente “cuando el reloj de la simulación tome el valor 32.27 el llegará una nueva llamada al sistema”). Un procedimiento de inicialización, es decir, un programa para que el estado del modelo de simulación sea el deseado. Un procedimiento de actualización del reloj, para gobernar cómo avanza el reloj de la simulación. Un procedimiento para la generación de eventos, para generar eventos a partir de la ejecución de eventos previos y del cambio de estado de los elementos del sistema. Procedimientos para la generación de valores de variables aleatorias. Elementos de un modelo de simulación Capı́tulo 1. INTRODUCCIÓN A LA SIMULACIÓN 15 Un generador de informes, que por defecto ofrece información sobre el comportamiento del sistema (contadores, niveles de ocupación, etc.) El programa principal, que gobierna la ejecución de todo el modelo e invoca, cuando corresponde, a cada uno de los elementos interiores. El ejemplo anterior, a pesar de ser muy sencillo, incluye una versión poco sofisticada de algunos de estos elementos. Por ejemplo, la celda que contiene el valor del stock inicial forma parte de la inicialización. Las columnas donde se almacenan tanto la demanda como el siguiente dı́a en el que se producirá una llegada de tren actúan como las variables de un modelo de simulación. Por último, la primera columna hace las veces del reloj de la simulación, y para cada lı́nea se puede observar el estado del sistema. Todos los paquetes de simulación comerciales incluyen estos elementos y facilitan enormemente el desarrollo y la explotación de modelos de simulación. En particular, en el capı́tulo 2, se presentará la forma que adoptan estos elementos para el caso de Witness. 1.5. Variables de entrada. Variables de salida. Parámetros El ejemplo del apartado 4.2 se ha presentado un modelo que podrı́a utilizarse para determinar el nivel del stock inicial necesario para conseguir el mı́nimo valor posible de los costes de stock y de carencia. Y para ello, se disponı́a la información relativa los comportamientos tanto de la demanda y como de la llegada de trenes. Toda la información anterior se puee clasificar de la siguiente manera. Datos de entrada, que son aquellos datos que sirven para alimentar el modelo, dentro de los cuales se pueden distinguir dos tipos. • Los datos relativos a los trenes y a la demanda, sobre los cuales el decisor no tiene control. Para este problema, la demanda es algo que no se puede moficiar, como tampoco la cantidad de carbón y el tiempo entre llegada de los trenes • El valor de stock inicial, sobre el cuál el decisor sı́ tiene control. De hecho, el estudio se realiza para determinar el valor del stock inicial más adecuado. Datos de salida, que son los datos que se obtienen al ejecutar el modelo, que son los costes de stock y de carencia. Estos tres grupos de datos aparecen en cualquier estudio de simulación y se denominan, respectivamente, variables de entrada, parámetros y variables de salida (figura 1.5) Variables y parámetros para el ejemplo de la hoja de cálculo Capı́tulo 1. INTRODUCCIÓN A LA SIMULACIÓN Variables de entrada MODELO 16 Variables de salida Parámetros de diseño Figura 1.5: variables y parámetros. En general, los datos que alimentan y los que se obtienen de un modelo se definen de la siguiente manera. Variables de entrada. Las variables de entrada son todos aquellos datos de entrada sobre los cuales el decisor no tiene control. Por ejemplo: la frecuencia con la que llegan las llamadas de a un centro de atención telefónica, el tiempo entre averı́as de una máquina, la demanda de un determinado prodcuto, etc. Parámetros. Los parámetros son aquellos datos de entrada sobre los cuales el decisor tiene control. Tı́picamente, en un estudio de simulación se trata de obtener un conjunto de valores de los parámetros (es decir, una configuración del sistema) satisfactoria o buena de acuerdo con algún criterio. Por ejemplo: el número de puestos de atención al cliente en una oficina, la cantidad de operarios con los que se cuenta en el sistema, el orden en que se realiza un conjunto de operaciones (el emabarque a un avión), etc. Variables de salida. Las variables de salida son todos aquellos valores que permiten conocer la bondad del funcionamiento del sistema estudido. Como se ha dicho, con el desarrollo de un estudio de simulación se pretende obtener una buena solución con respecto a algún criterio. Los valores de las variables de salida permiten evaluar el sistema. Por ejemplo: el beneficio derivado de una nueva instalación, el nivel de saturación de los controladores aéreos, la productividad de una lı́nea de montaje, etc. Por último, conviene notar que según el estudio del que se trata un mismo elemento puede ser o bien una variable de entrada o bien un parámetro. Por ejemplo, en el diseño de las instalaciones de un nuevo aeropuerto, la tasa de averı́as de las máquinas que realizan el escaneado de las maletas puede ser un parámetro, ya que en ese tipo de estudio se pueden emplear diferentes tipos de máquina, cada una de ellas con su tasa de averı́as correspondiente. Sin embargo, en el rediseño de las operaciones de control de equipaje de un aeropuerto existente (salvo si existe la posibilidad de invertir en nuevas máquinas), el dato de la tasa de averı́as es una variable de entrada. Definiciones y ejemplos Capı́tulo 1. INTRODUCCIÓN A LA SIMULACIÓN Para desarrollar de forma correca un estudio completo de simulación, es importante, en cada caso, identificar cuáles son las variables de cada tipo y cuáles son los parámetros. A continuación se presentas todas las etapas que componen un estudio. 1.6. Etapas de un estudio de simulación Hasta el momento se han presentado algunos aspectos esenciales de la simulación discreta y se ha construido un primer ejemplo sencillo. El pequeño ejercicio de modelado con la hoja de Excel representa sólo una etapa de todas las que componen un estudio de simulación. En la figura 1.6 se presentan un posible conjunto de etapas en las que se separan todas las tareas del estudio. A pesar de que la figura las muestra de forma secuencia, es frecuente que los resultados de una etapa o la adquisición de nueva información obliguen a volver a alguna etapa previa. DE O E DE O DEL EM E O D DE D O MODELO O E L MODELO OM O MODELO O M O E LO D E O DE E E ME O DO ME M L E L DO Figura 1.6: etapas de un estudio de simulación. La definición del sitema y de los objetivos que se persiguen con el estudio es una primera tarea que condiciona el resto del estudio. La definición del sistema pasa por establecer cuáles son los elementos que son parte del sistema y cuáles no. 17 Capı́tulo 1. INTRODUCCIÓN A LA SIMULACIÓN Por otro lado, los objetivos que se persiguen con el estudio de simulación condicionan la selección de variables de salida y el nivel de detalle del modelo. Por ejemplo, un modelo de un operador logı́stico que quieres realizar un estudio para determinar el tamaño de la flota de camiones es muy diferente un modelo para establecer la forma de operación de los muelles de un almacén. Mientras en el segundo caso será neceario reproducir con detalle los movimientos del material destinado a la manutención de la mercancı́a, en el segundo no lo será. Igualmente, las variables de salida de uno y otro modelo serán diferentes. 18 Definición del sistema y de los objetivos Para poder continuar es necesario recopilar información relevante para la construcción del modelo, relativas a las variables de entrada, a los posibles valores de los parámetros, respecto a la forma en la que opera el sistema o las formas en las que puede operar, etc. La realización de cualquier modelo de un sistema real exige asumir ciertas hipótesis simplificadoras. Lo deseable es disponer de un sistema sencillo y que represente suficientemente bien el sistema estudiado. El conjunto de hipótesis que se realizan al respecto del funcionamiento del sistema se conoce como modelo conceptual. Por ejemplo, el tiempo de realizacion de una tarea por parte de un opeario de una linea de montaje no es perfectamente determinista y, sin embargo, se puede admitir como válido que sı́ lo es. Igualmente, a pesar de que un proceso quı́mico es continuo, en un estudio se puede realizar un tratamiento discreto, admitiendo que todas las cantidades de productos se pueden representar en términos de paquetes de 100 m3 . Recogida de datos En un estudio de simulación es habitual que participen profesionales muy diferentes: el responsable último que aprueba y toma decisiones a partir del modelo, la persona que va a emplearlo cuando sea necesario, programador del modelo, el interlocutor entre el programador y el decisor, etc. Los conocimientos sobre programación y simulación de todos los participantes es muy dispar. Por ello y para garantizar que todas las partes comparten las directrices del trabajo que hay que realizar, se construye un modelo comunicativo, que puede ser interpretado, modificado, utilizado, etc. por los participantes en el proyecto. Modelo conceptual La figura 1.7 ofrece un posible modelo comunicativo en el que se explicitan algunas de las hipótesis del modelo. Por ejemplo, se admite que la demanda tiene lugar después de que llegue el tren, el dı́a en el que llega un tren. Podrı́a haberse admitido el orden inverso, y habrı́a tenido efectos sobre el resultado de la simulación. Este modelo comunicativo no contiene expresiones matemáticas, pero podrı́a haberlo incluı́do. Dependiendo de los participantes en el estudio, convendrá utilizar diferentes elementos en el modelo comunicativo. Modelo comunicativo Capı́tulo 1. INTRODUCCIÓN A LA SIMULACIÓN 19 Inicialización Stock inicial Costes Actualización del reloj de la simulación sí Aumento del stock en 500 Tm ¿Llega tren? no Generación de la demanda no sí ¿Hay stock para atender la demanda? no Actualización del nivel de stock de acuerdo con la demanda Cómputo del coste de carencia Nivel del stock a 0 Cómputo del coste del stock ¿Se ha simulado un año? sí Informe con costes Figura 1.7: ejemplo de modelo comunicativo. Una vez definido el estudio que se quiere realizar (habiendo realizado las etapas anteriores), es necesario construir el modelo informático. Dado que la simulación de sistemas complejos implica la realización de numerosos cálculos, es absolutamente necesario desarrollar un programa que reproduzca el comportamiento previsto por el modelo conceptual, alimentarlo con las variables de entrada adecuadas y con el que examinar diferentes valores de los parámetros. Cuando se dispone del modelo informático, es el momento de realizar su explotación. Para ello es necesario definir diferentes experimentos con los que evaluar diferentes alternativas y extraer conclusiones al respecto del funcionamiento del sistema estudidado. Modelo informático Capı́tulo 1. INTRODUCCIÓN A LA SIMULACIÓN 20 Tras haber realizado el estudio correctamente, es el momento de tomar decisiones consistentes con el análisis realizado gracias al modelo. Explotación y diseño de experimentos Finalemente, y como en proyectos de otra naturaleza, es neceario documentar el trabajo realizado. Para poder explotar de forma correcta el modelo en ocasiones sucesivas, para poder introducir modificiaciones consistentes con posibles cambios del sistema modelado, etc. conviene documentar de forma exhaustiva el trabajo realizado. De no ser ası́, es altamente probable que el modelo no sea de utilidad en el futuro. Documentación e implantación de resultados A lo largo de todo el proceso hay tres aspectos esenciales y que aparecen reflejados en la figura 1.6, de los cuales depende el éxito de un estudio de simulación Validación. Se dice que un modelo es válido si ofrece una representación correcta para los objetivos perseguidos. Para que un modelo sea válido debe “comportarse como la realidad”. En la figura 1.6 aparece en dos puntos del proceso. Por un lado, el modelo conceptual debe ser adecuado para el sistema estudiado. Es decir, las hipótesis admitidas deben ser aceptables. Sin embargo, algunas la validez de esas hipótesis no se puede contrastar en esa etapa del proceso, sino que es necesario disoner del modelo de simulación construido y, entonces, comparar el comportamiento del sistema real con los resultados que ofrece el modelo de simulación. En el caso de que no exista el sistema, no es posible hacer esto, porque no existe sistema real con el que comparar, por lo que conviene utilizar otras estrategias de validación. Verificación. La verificación de un modelo consiste en depurar el modelo, es decir, garantizar que el modelo “se comporte como nostros queremos que lo haga”. El modelo debe ser consistente con el modelo conceptual y, por lo tanto, con el modelo comunicativo donde está especificado. Credibilidad. Por último, para que un estudio de simulación se realice con éxito, es necesario que sea creı́ble, es decir, que la personas responsables del sistema concedan crédito a dicho modelo. Es relativamente frecuente encontrar buenos estudios de simulación que no cuentan con el apoyo de los directivos o de los responsables que deberı́an hacer uso de ellos y de sus resultados. En esos casos, el modelo resulta inútil. En este libro, a lo largo de los capı́tulos, se presentan los aspectos más imporantes de las etapas que se han comentado. En cada caso, se ofrecen las técnicas más frencuentemente utilizadas, primero con una introducción teórica y después con ejercicios de aplicación práctica. Verificación, validación y credibilidad Capı́tulo 1. INTRODUCCIÓN A LA SIMULACIÓN Algunos aspectos quedan fuera de o que se puede abordar en un texto de la naturaleza de este. Por ejemplo, la credibilidad de un modelo es de difı́cil tratamiento si no es es un caso real. Igualmente, la validación de un modelo pasa por disponer de un sistema del cuál obtener datos para contrastar en qué medida los resultados que ofrece el modelo de simulación correspondiente se ajustan a aquellos datos. 1.7. Software para la elaboración de modelos de simulación La etapa central de un estudio de simulación es la construcción del modelo informático. Existen diferentes alternativas para desarrollar el modelo. Hojas de cálculo (como en el epı́grafe 4.2). Las hojas de cálculo, aun cuando pueden incluir algún tipo de macro para modelar situaciones mas compleas, permiten abordar sistemas poco sencillos y son demasiado pobres para represenar medianamente complejas. Software de propósito general. Lenguajes de programación como C++, C#, Java, etc. permiten construir cualquier modelo de simulación, por complejo que sea. Software especı́fico. En los comienzos de la simulación discreta existı́an lenguajes de programación desarrollados para la construcción de modelos de simulacion, algunos de los cuales existen y se siguen utilizando, como GPSS o GPSS/H. Actualmente existen entornos de simulación basados en lenguajes parecidos y que incluyen elmentos especı́ficos y un entorno gráfico para la construcción de modelos. Además, ofrecen más prestaciones, como por ejemplo, módulos de representación en 3D, de análisis de datos o paquetes de “optimización”. Witness, Arena, Promodel o Simul8 son algunos de ejemplos de estos tipos de entornos.) 21 Capı́tulo 1. INTRODUCCIÓN A LA SIMULACIÓN - Hojas de cálculo Para casos muy sencillos Lenguajes de propósito general C++, C#, Java… Lenguajes de simulación Coste del software Esfuerzo de programación + Entornos de simulación Witness - Arena Promodel Simul8 + Figura 1.8: alternativas de software para el desarrollo de modelos de simulación. Tal y se indica en la figura 1.8 existe un compromiso entre el precio de la solución adoptada para construir el modelo y el esfuerzo necesario para construir un modelo de simulación. Los entornos de simulación son relativamente caros pero facilitan enormemente la construcción de elementos. Todos los ejercicios prácticos que empleados en este libro (salvo el de este capı́tulo) se han desarrollado usando Witness 2008, herramienta desarrollada por Lanner Group, a cuyo estudio se dedica el capı́tulo siguiente. 1.8. Resumen La utlización de modelos facilita el estudio de muchos sistemas. En general, los métodos exactos son preferibles, pero en muchos casos no es posible formular modelos exactos o no es posible resolverlos. Principalmente en estos casos, la simulación discreta consituye una herramienta muy valiosa. La simulación de eventos discretos se caracterı́za por la descripción del sistema estudiado en términos del estado de sus elementos, que cambia con la ocurrencia de eventos, que, a su vez, desencadenan nuevos eventos. Mediante un modelo informático se incorporan estos aspectos, para lo cual se dispone de diferentes alternativas. Sin embargo, la parte de construcción del modelo informático es sólo una de las etapas de las que consta un estudio de simulación, que comienza con la definición del sistema y de los objetivos del estudio y finaliza con la implementación de los resultados y la documentación del tra- 22 Capı́tulo 1. INTRODUCCIÓN A LA SIMULACIÓN bajo realizado. En los capı́tulos que siguen se presentan las técnicas más importantes para la realización de un estudio de simulación de eventos discretos correspondientes a las etapas descritas en el epı́grafe 1.6. Cada capı́tulo consta de una introducción de carácter teórico con la presentación de los aspectos esenciales. Después, se proponen ejemplos de aplicación sencillo desarrollados en Witness. 23 Capı́tulo 1. INTRODUCCIÓN A LA SIMULACIÓN dd 24 Capı́tulo 2 CONSTRUCCIÓN DE MODELOS CON WITNESS 2.1. Introducción Para la construcción de modelos de simulación existen diferentes alternativas, tal y como se comentó en 1.7. Una de ellas, consiste en utilizar entornos especı́ficos de simulación. Estos entornos son más caros que las herramientas de programación de carácter general. Como contrapartida, facilitan enormemente la tarea de contrucción, verificación y explotación de los modelos. En primer lugar, incorporan elmentos especı́ficos para construir los modelos. En segundo, disponen de múltiples funcionalidades para generar valores de variables aleatorias, realizar animaciones, analizar los valores de las variables de salida, etc. Witness es uno de estos entornos profesionales, desarrollada por Lanner Group Ltd, Witness permite construir modelos de forma sencilla y ofrece todas herramientas para poder crear modelos complejos y representar multitud de sistemas reales. Witness El el apartado siguiente, 2.2, se presenta el conjunto de módulos que acompañan a Witness y que permiten realizar diferentes tareas relacionadas con el desarrollo de un estudio de simulación. En el apartado 2.3 se describen los aspectos fundamentales relativos a la manera en la que se construyen los modelos usando Witness. A continuación, los elementos que permiten constuir modelos se presentan en el epı́grafe 2.4. Finalmente, en los apartados 2.5 - 2.9 se desarrollan cinco modelos sencillos que ilustran todo lo anterior. Estrucutra del capitulo Este capı́tulo no pretende ser un manual exhaustivo orientado al aprendizaje de Witness. El objetivo es, por un lado, dar a conocer los aspectos fundamentales que permitan entender e, incluso, elaborar todos los modelo que se utilizan en es texto. Además, este capı́tulo permite una primera toma de contacto con Witness. Objetivo del capı́tulo Capı́tulo 2. CONSTRUCCIÓN DE MODELOS CON WITNESS Para aprender más sobre la programación con Witness, recomendamos la lectura del documento Getting Started (referencia PENDIENTE), la consulta de la ayuda de Witness y de los ejemplos que se proporcionan en la carpeta Demo en el directorio de instalación de Witness. Para conocer más sobre la aplicación de Witness a diferentes situaciones, recomendamos visitar la página de Lanner, http://www.lanner.com/. 2.2. 26 Para profundizar Witness 2008 Con Witness es posible desarrollar y explotar modelos de simulación. Para extender las posiblidades, Lanner ofrece un conjunto de módulos que se pueden utilizar junto con Witness, que son las siguientes. Witness Scenario Manager. Este módulo facilita la explotación de los resultados de los modelos elaborados. Permite, de forma sencilla, gestionar el número y la longitud de las replicaciones, el tiempo de calentamiento. Facilita el estudio de diferentes configuraciones, es decir, de diferfentes valores de las caracterı́sticas de un modelo. Por ejemplo, es sencillo evaluar el tiempo medio de los clientes en una cola, para diferentes escenarios corresondientes a diferentes número de personas que atienden la cola. Admemás, permite obtener de forma sencilla intervalos de confianza para diferntes valores. La información que obtiene del modelo se puede exportar a otro software (hoja de cálculo, software de estadı́stica) para realizar análisis más avanzados. Witness Optmizer. Con este módulo es posible gobernar la búsqueda de soluciones buenas para el modelo estudiado mediante algoritmos de búsqueda eficientes. Por ejemplo, el tiempo que tarda un donante en realizar todo el proceso de donación en un hospital puede depender, del número de profesionales de cada tipo (administrativos, enfermeros, médicos) del número de camas, del reparto de tareas entre el personal, etc. Generalmente, el número de combinaciones es muy elevado y resulta inviable evaluar toda las combinaciones. El módulo Witness Optmizer incluye diferentes algoritmos para explotar combinaciones y encontrar buenas soluciones. Witness Presentation Manager. Este módulo permite presentar de forma muy visual los resultados de un modulo de simulación, con diferentes tipos de elementos parecidos al cuadro de mandos de una máquina. De esta manera, se puede disponer de forma muy visual la información relevante del comportamiento del sistema, tanto durante su ejecución como al final de la misma. Realidad Virtual. El modelo de realidad virtual permite constuir animaciones en tres dimensiones de los modelos de Witness. Esto puede permitir disponer de una visión más realista del comportamiento del sistema. En particular, los resonsables del sistema para el que se desarrolla el Witness Suite Capı́tulo 2. CONSTRUCCIÓN DE MODELOS CON WITNESS 27 modelo de simulación pueden establecer más sencillamente la analogı́a entre el modelo y su sistema. Documentor. Por último, con el módulo Documentor se puede generar un archivo .rtf que permite recopilar de forma sistemática toda la información de los elmentos de un modelo y de su comportamiento. Como se verá a lo largo del texto, el código en un modelo de simulación aparece en diferentes elementos y algunas caracterı́sticas pueden no quedar bien documentadas. Este módulo facilita esta tarea. Además, Lanner ofrece herramientas de simulación de carácter especı́fico para algunas actividades, por ejemplo, para el sector farmacéutico. De todo el conjunto de productos, Witness es la herramienta más importante. A continuación se presenta la lógica para constuir modelos. 2.3. Otros productos Cómo construir modelos Al arrancar Witness desde el menú de Inicio, se abre el archivo StartUp.mod por defecto, cuyo aspecto es el de la figura 2.1. Este archivo se encuentra en la carpeta \ Demo, dentro de la carpeta de instalación de Witness En esa primera pantalla se puede ver lo siguiente. La ventana de Selección de elementos, a la izquierda, que contiene tres pestañas, una de ellas, Modelo contiene diferentes tipos de elementos para construir el modelo. La Ventana 1, que ocupa la mayor parte de la pantalla, que es una de las ventanas en las que aparece la representación gráfica del modelo. La ventana de los Elementos predefinidos, que contiene varias pestañas. Por defecto, aparece selccionada la pestaña Básico con algunos de los elementos de Witness. Un conjunto de barras de herramientas con botones para acceder a diferentes funciones Una pequeña ventana con un reloj analógico que indica el instante en el que se encuentra la simulación. El entorno Capı́tulo 2. CONSTRUCCIÓN DE MODELOS CON WITNESS 28 Figura 2.1: aspecto de Witness al abrir el archivo StartUp.mod. La lógica general con la que se construyen los modelos es la siguiete. Existen entidades que circulan por el modelo. Las entidades pueden represetar muchos elementos de un sistema real; por ejepmlo, piezas de un taller de mecanizado, personas un centro comercial, llamadas telefónicas. Estas entidades se pueden transformar, agrupar, separar, almacenar, transportar, etc. Las piezas en un taller mecánico pueden ser torneadas, pulidas, etc. Los clientes de un centro comercial pueden acumularse y esperar en las colas de las cajas. Las llamadas telefónicas pueden ser atendidas, rechazadas, acumuladas en una cola de llamadas, transferidas entre departamentos, etc. Entidades o piezas El resto de los elementos actividades, colas, caminos, etc gobiernan el control del flujo de las entidades mediante lo que se conoce como reglas. Por ejemplo, cuando un viajero (entidad) ha terminado de realizar la facturación en un aeropuerto, debe haber alguna regla que conduzca a ese cliente hacia el control de suguridad. La sintaxis de Witness permite constuir una regla equivalente a empujar al viajero a la cola del control de seguridad. Igualmente, habrá que introducir alguna regla del tipo empujar el equipaje del viajero a la zona de manutención de equipajes. Reglas Además, para completar la lógica del modelo, generalmente hay que utilizar acciones, que modifican el estado de los elementos. Por ejemplo, tras finalizar la facturación del viajero, una acción puede actualizar el contador que registra cuántos viajeros han realizado la facturación para ese vuelo en particular. Para Acciones Capı́tulo 2. CONSTRUCCIÓN DE MODELOS CON WITNESS 29 ello habrı́a que introducir alguna acción del tipo incrementar el contador del número viajeros en una unidad. 2.4. Tipos de elementos Los modelos se construyen a partir de elementos de diferente tipo. Caracterizando de forma correcta el comportamiento de estos elementos, se puede constuir un modelo que, en conjunto, represente de forma correcta el sistema estudiado. Configurar los elementos, significa, por un lado, indicar cómo funcionan y, por otro, cómo se relacionan con el resto de los elmentos del modelo. Elementos Existen dos ediciones de Witness, que se diferencia únicamente en la nomenclatura de los elementos. Por ejemplo, el elemento de tipo pieza en la edición de fabricación es equivalente al elemento tipo entidad de la edición de servicios. Ambos elementos son idénticos y sólo se diferencian en el nombre. Igualmente, las versiones de edición y fabriación tienen algunas funciones idénticas pero con diferente nombre. Por ejemplo, la función ((NPARTS)) y ((NENTS)) devuelven el mismo valor. En cualquier caso, un modelo construido con una edición se puede abrir, modificar y ejecutar con la otra. En el texto se emplean ambas terminologı́as, en cada caso la que resulte más natural. Servicios y fabricación Los elmentos se pueden dividir en tres grandes grupos atendiendo a su naturaleza: Según su naturaleza Elementos de tı́po fı́sico. Son elementos pueden representar elementos existente en un sistema real. Por ejemplo, los elementos de tipo pieza o entidad (según la edición) pueden representar muchos elementos de un sistema real, como se ha comentado. Los elementos de tipo máquina o actividad realizan algún tipo de operación con las entidades y permiten representar, por ejemplo, un torno, una planta de fabricación entera, un puesto de atención al público... Un buffer o cola son lugares donde se almacenan entidades y pueden representar, por ejemplo, un área de almacenamiento de producto intermedio, una cola de personas a la espera de ser atendidas, un lugar donde se somete a un proceso de enfriamiento a las piezas que llegan. Otros elementos de tipo fı́sico son: las cintas transportadoras, los recursos, las vı́as, los vehı́culos, los caminos, etc. En los modelos de este texto, los elementos de este tipo que se han utilizado son piezas, máquinas, buffers y caminos. Estos elementos también pueden no representar elementos fı́sicos del sistma real. Por ejemplo, una actividad puede servir para computar el valor de determinadas variables cada cierto tiempo. Elementos fı́sicos Capı́tulo 2. CONSTRUCCIÓN DE MODELOS CON WITNESS 30 Elementos de tipo lógico. Son los elmentos que permiten gestionar la información y la lógica del modelo. En particular, en este texto se utlizan: variables, atributos, distribuciones (tanto predefinidas como definidas por el usuario) y funciones (de usuario y predefinidas). Elementos logicos Elementos de tipo gráfico. Son elementos que permiten visualizar gráficamente algún aspecto del modelo, como, por ejemplo, la evolución del tiempo medio de entrega de pedidos o el número de productos enviados a los clientes. En los modelos que siguen se han utilizado diagramas de tarta e histogramas. Elementos gráficos Los elementos también se pueden clasificar según la forma en la que se almacenan, que condiciona la forma en la que se utilizan. Estos tipos de elementos están organizados en cuatro carpetas, cuyo contenido se puede visualizar en la ventana de Seleción de elementos (figura ). Según cómo se almacenan Figura 2.2: tipos de elementos. La carpeta Tipo contiene todos los tipos de elementos básicos a partir de los cuales se pueden contruir los modelos en Witness. Estos elementos están disponibles en su versión más simple, es decir, sin ningún tipo de caracterización. Por ejemplo, existe un elemento variable, pero no está configurada como variable entera, real, etc. Carpeta Tipo La carpeta Sistema almacena un conjunto de elementos especiales. Por ejemplo, el elemento TIME que almacena el tiempo del reloj de la simulación, el elemento WORLD que permite introducir piezas al modelo. Carpeta Sistema En la carpeta Predefinidos existen diferentes tipos de elementos, organizados por grupos, que aparecen, también, en diferentes pestañas en la ventana de Elementos predefinidos. Cuando se selecciona una pestaña en esta ventana, los elementos correspondientes se muestran en la carpeta verde Predefinidos. Los elementos predefinidos, son elementos que pueden tener algún grado de configuración. Por ejemplo, una variable puede estar definida como un vector de cinco componentes de tipo entero. Estos elementos están disponibles para, a partir de ellos, crear elementos idénticos en el modelo. Por ejemplo, si una actividad representa una caja en un centro comercial, es posible definir un elmento predefinido tipo Carpeta Predefinidos Capı́tulo 2. CONSTRUCCIÓN DE MODELOS CON WITNESS 31 actividad para representar una caja y, con ella, como se muestra más adelante, crear tantas cajas como sean necesarias en uno o varios modelos. Por último, la carpeta Simulación contiene los elementos de la simulación propiamente dicha, es decir, aquellos que representan, efectivamente, el comportamiento del sistema real. Esta carpeta, por defecto, está vacı́a, ya que el archivo StartUp.mod está vacı́o. Para introducir elementos de la simulación se pueden emplear los elementos de la carpeta Tipo o de la carpeta Predefinidos. Para introducir elementos en el modelo y caracterizar la forma en la que funcionan, hay que realizar tres pasos: definir, configurar y representar cada uno de los elementos. Definir. Esta operación consiste en introducir elementos en el modelo, es decir, en la carpeta, Simulación. Existen dos formas de introducir un elemento en el modelo. La primera consiste en hacer uso de los elementos predefinidos. Para ello hay que hacer clic con el botón principal en un elemento de la ventana Elementos predefinidos y hacer clic de nuevo (sin arrastar) en la Ventana 1. De esta manera se crea un elemento en la carpeta Simulación que es idéntico al elemento predefinido correspondiente, con el mismo nombre seguido de “001”, por elemplo, Pieza001, como en la figura 2.3. Figura 2.3: definición de elementos a partir de elementos predefinidos. La segunda manera consiste en hacer clic con el botón secundario del ratón y, en menú contextual que aparece, seleccionar la opción Definir. Carpeta Simulación Introducción de elementos. Tres pasos Definir Capı́tulo 2. CONSTRUCCIÓN DE MODELOS CON WITNESS 32 Figura 2.4: definición de elementos. Se abre una nueva ventana, como la de la figura 2.4, en la que hay que introducir el nombre y seleccionar el tipo de elemento en el cuadro desplegable Tipo de elemento. Para algunos tipos de elementos hay que introducir algún dato más. En este segundo caso, se puede seleccionar (arriba) si el elemento se crea como elemento de la simulación o como elemento predefinido (para ser reutilizado de nuevo de la manera anterior). Configurar Una vez que se ha definido el elemento, ya se puede configurar, es decir, establecer cuál es su comportamiento. Esto significa, por ejemplo, determinar cuánto dura la realización de una actividad, con qué frecuencia se producen las averı́as, cómo entran y salen las entidades de las colas, etc. La configuración también incluye la introducción de las reglas que gobiernan el movimiento de las entidades y las acciones que modifican los estados del sistema. Para configurar un Configurar elmento se puede hacer de dos maneras. La primera, haciendo doble clic en el nombre correspondiente en la ventana de Selección de elementos o bien haciendo clic con el botón secundario y seleccionando la opción Configurar. Representar La representación de un elemento no es un paso estrictamente necesario para que el elemento funcione dentro del modelo. De hecho, se podrı́a construir un modelo sin ningún tipo de represéntación gráfica. Sin embargo, la animación de la representación gráfica proporciona información tanto durante la construción como durante la explotación del modelo. Los elementos creados a partir de elementos predefinidos incorporan la representación gráfica del elemento utilizado. Por ejemplo, Representar Capı́tulo 2. CONSTRUCCIÓN DE MODELOS CON WITNESS al crear el elemento Pieza001, la representación gráfica incorpora dos cosas: el nombre de la entidad y un sı́mbolo (un cı́rculo rojo) con el que aparecerán representadas las entidades de ese tipo en todo el modelo (figura 2.3. Tanto la representación de elementos que no han sido creados a partir de los elementos predefinidos como la actualización de la representación de cualquier elemento se puede hacer de la siguiente manera. Haciendo clic con el botón secundario sobre el elemento (bien en su nombre dentro de la carpeta Simulación o en cualquiera de sus elementos representados) y eligiendo Representar dentro del menú contextual, se muestra la ventana de la figura 2.5 Figura 2.5: representación de elementos. La ventana de representación permite, bien dibujar nuevos elementos en la representación o bien actualizar los elementos existentes. Al seleccionar Dibujar en el primer menú desplegable, en el segundo se pueden encontrar todos los elementos de representación que se pueden añadir y que dependen del tipo de elemento. Cuando se selecciona Actualizar, en segundo menú desplegable, aparecen los elementos de representación ya existentes y que se pueden modificar. En el caso de la pieza Pieza001, se puede actualizar el sı́mbolo, haciendo clic en el botón situado más a la izquierda (con el icono de un lápiz) y aparece una nueva ventana como la de la figura 2.7. Figura 2.6: representación de elementos. 33 Capı́tulo 2. CONSTRUCCIÓN DE MODELOS CON WITNESS 34 En los ejemplos siguientes, se realizan estas tres operaciones para introducir diferentes tipos de elementos en un modelo de simulación sencillo, se indica cómo ejecutar el modelo y cómo obtener alguna información preliminar sobre el resultado de la simulación. 2.5. Ejemplo 1 Construir un modelo para representar un torno que tornea redondos de acero y tarda 5 minutos por pieza. Siempre existen redondos para tornear y, una vez procesados, se expulsan fuera del sistema. En este ejemplo, se presentan los siguientes aspectos de Witness: • máquinas de tipo simple, • piezas pasivas, • reglas ((PULL)), ((PUSH)) y ((WAIT)), • ejecución paso a paso, • representación del flujo de elementos. Resumen Para crear este modelo solo son necesarios dos elementos, uno de tipo pieza para representar los redondos y otro de tipo máquina simple para representar el torno. En primer lugar, hay que definir un elemento pieza, por ejemplo, haciendo uso de los elementos predefinidos, como se ha indicado en el apartado anterior. Entrando en la ventana de configuración (figura 2.9) es posible modificar el nombre del elemento. Piezas pasivas Capı́tulo 2. CONSTRUCCIÓN DE MODELOS CON WITNESS 35 Figura 2.7: ventana de configuración de la pieza Redondo. Las piezas pasivas son aquellas que sólo entran en el modelo porque algún elemento del modelo hace que entren. En este caso, cada vez que el torno termine de realizar una operación, obtendrá una nueva pieza Redondo del elemento de sistema WORLD y la introducirá en el modelo. La ventana de configuración de un elemento tiene algunas pestañas especı́ficas y otras que son comunes a todos los elementos: General, Acciones, Costes, Notas e Informes. La pestaña General de una pieza permite introducir el nombre de la pieza (Redondo), el tipo (pasiva, en este caso) y permite configurar aspectos relativos a los eventos correspondientes a la entrada y a la salida del sistema de cada pieza. A contiunuación, hay que introducir una máquina a partir de los elementos predefinidos. La configuración de este nuevo elemento (figura 2.8) también presenta varias pestañas (comúnes y especı́ficas). Por ejemplo, la pestaña General, permite definir algunos aspectos básciso como el nombre (Torno) o el tipo. Las másquinas simples toman las piezas de una en una, las procesan y pasan a otro elemento del sistema. Existen otros tipos de máquinas que, por ejemplo, producen piezas a partir de una dada o trabajan con lotes. Torno es una máquina simple. Máquinas simples Capı́tulo 2. CONSTRUCCIÓN DE MODELOS CON WITNESS 36 Figura 2.8: ventana de configuración de la máquina Torno. Además, en la pestaña General se pueden configurar aspectos relativos a la entrada, a la salida de las piezas, y al proceso que son sometidas. En particular, se puede configurar la regla de entrada de la máquina haciendo clic en el botón Desde.... Figura 2.9: regla de entrada de Torno. La regla que aparece por defecto es ((WAIT)). Esta regla significa que Torno no trata de conseguir piezas de entrada, sino que sólo procesa piezas si algún otro elemento hace que le lleguen. Tecleando la regla ((PULL from Redondo out of WORLD)), como en la figura 2.9, Torno introducirá una pieza Redondo en el modelo e, inmediatamente, la comenzara a tornear. Regla ((PULL)) Capı́tulo 2. CONSTRUCCIÓN DE MODELOS CON WITNESS 37 Una vez que Redondo tiene una pieza puede comenzar su ciclo, cuya duración se indica dentro del cuadro de texto Duración. En este caso, el valor es 5. De esta manera, se admite que una unidad del reloj de la simulación simula el transcurso de un minuto de la realidad, y será necesario mantener la consistencia a lo largo de todos los valores que se introduzcan en el modelo. Tiempo de ciclo Por último, si la configuración de Torno se deja en este punto, lo que ocurrirá es que tras tornear el primer Redondo, quedará bloqueada y no realzará más operaciones, debido a que no tiene asignada una relga de salida y no hay ningún otro elemento en el modelo que trate de tomar el Redondo de Torno. Por eso es necesario introducir una regla de salida haciendo clic en Hacia.... En este caso, con la regla ((PUSH to SERVED)) el torno, tras finalizar el proceso de torneado, expulsa la pieza fuera del modelo (al elemento de sistema SERVED) y está en condiciones de coger una nueva pieza y repetir el ciclo. Regla ((PUSH)) Existe una forma que facilita la comporobación de que las reglas se han editado correctamente. Activando la opción Flujo de elementos del menú Ver, haciendo clic en Aceptar, se puede muestra lı́neas que enlazan los elementos de acuerdo con las reglas del modelo. En este caso, el aspecto del modelo tras activa el Flujo de elementos es el de la figura 2.10. Flujo de elementos Figura 2.10: Ejecución del modelo Paso a paso. Con esto el modelo ya tiene los dos elementos y está configurado para funcionar como se desea. Este modelo, ya construido, corresponde al archivo Ejemplo2-1.mod. Existen diferentes formas de ejecución del modelo. Una de ellas es la opción Paso a paso. Al ejecutar el modelo de esta manera se ejecutan los eventos uno tras otros y se muestra la evolución del estado del sistema en una nueva ventana: la Ventana de interacción. Ejecución paso a paso Capı́tulo 2. CONSTRUCCIÓN DE MODELOS CON WITNESS 38 En la figura 2.10 se puede ver la barra de herramientas Ejecutar, en la que aparece el botón Paso a paso dentro de un marco rojo. Al hacer clic en él varias veces, aparecen mensajes en la Ventana de interacción, en las que se describe la entrada de la primera pieza Redondo a Torno en el instante 0,00. Después, simplemente, se actualiza el contador de tiempo y no se produce ningún evento hasta que no finaliza la operación de torneado en el instante 5,00. En ese instante, Torno finaliza con la pieza que estaba procesando, la expulsa a SERVED y toma inmediatamente una nueva pieza para procesar. Figura 2.11: Representación gráfica del modelo con Flujo de elementos. 2.6. Ejemplo 2 Modificar el modelo anterior para representar lo siguiente. Los redondos llegan a un stock previo al torno con un tiempo entre llegadas que se distribuye según una exponencial de media 8 minutos. El proceso de torneado no es determinista, sino que sigue una distribución normal logarı́tmica de media 5 minutos y desviación tı́pica de 0,2. En este ejemplo, se presentan los siguientes aspectos de Witness: • buffers, • distribuciones, • opción ejecutar, • opción ejecución ralentizada e • informes de Witness. Resumen Capı́tulo 2. CONSTRUCCIÓN DE MODELOS CON WITNESS 39 Para modificar el modelo solo es necesario introducir un nuevo elemento de tipo buffer para el stock de redondos a la espera de ser procesados. El archivo Ejemplo2-2.mod contiene el modelo correspondiente a este ejemplo, construido tal y como se indica a continuación. En primer lugar, hay que añadir un elemento de tipo buffer al modelo, por ejemplo, utilizando los elementos predefinidos. Accediendo a la Ventana de configuración del elemento, aparecen las pestañas de este tipo de elemento. En particular, en la pestaña General es posible modificar el nombre (para llamarlo Cola), establecer el número de entidades que puede albergar y los aspectos relativos a la entrada, la salida y la permanencia de las piezas en el buffer (figura 2.12). Figura 2.12: ventana de configuracion del elemento Cola. Por defecto, las piezas entran por detrás y salen por delante, y no hay ningún requisito con respecto al tiempo de permanencia en el buffer, con lo que la disciplina de cola por defecto es FIFO. Se pueden establecer condiciones tanto en la entrada como en la salida, para que las piezas entren o salgan según alguna condición, por ejemplo. También se puede establecer un tiempo máximo o un tiempo mı́nimo de permanencia. Por ejemplo, esto permite representar el hecho de que los clientes que llevan más de 10 minutos esperando en una cola abandonan el sistema. Buffers Capı́tulo 2. CONSTRUCCIÓN DE MODELOS CON WITNESS A diferencia del modelo anterior, ahora las piezas entran al sistema de forma autónoma, de acuerdo con un tiempo entre llegadas. Para ello, es necesario modificar la configuración de Redondo y convertirla en pieza activa, con lo que la Ventana de configuración muestra un aspecto diferente, como el de la figura 2.13. 40 Piezas activas Figura 2.13: ventana de configuracion de Redondo, pieza activa. Para configurar una pieza activa, hay que establecer, entre otras cosas, el número máximo de llegadas de ese tipo, el instante en el que llega la primera, el tamaño de lote y la regla de salida, es decir a qué elemento trata de acceder cuando llega al modelo. Para configurar esto último hay que acceder a las reglas de salida, haciendo clic en el botón Hacia... En este caso, estas piezas llegan a Cola, por lo que la regla serı́a: ((PUSH to Cola)). Además, hay que indicar, para Redondo, cual es el intervalo entre llegadas en el cuadro de texto correspondiente de su Ventana de configuración. Este valor no es determinista, sino que es una variable aleatoria: una exponencial de media 8 minutos. Witness permite generar variables aleatorias de diferentes tipos. En este caso, el valor para el el Intervalo entre llegadas es ((NEGEXP(8))). Aleatoriedad. Distribuciones Una vez construido el modelo, se puede ejecutar como se presentó en el ejercicio anterior para comprobar su evolución paso a paso. Alternativamente, se puede utilizar la opción Ejecutar, mediante la cual, se pone en marcha el modelo y se muestra cómo se modifica la representación gráfica de los elementos a medida que transcurre el tiempo. Además, se puede fijar un valor para el tiempo durante el cuál ejecutar el modelo. Ejecución Run Capı́tulo 2. CONSTRUCCIÓN DE MODELOS CON WITNESS 41 Para ello, tal y como se puede ver en la figura 2.14, hay que dejar pulsado el botón que contiene el icono de un reloj, a su derecha teclear el instante en el que el modelo se detendra y, finalmente, pulsar en el botón Ejecutar (un triángulo negro apuntando hacia la derecha). Figura 2.14: ventana de configuracion de Redondo, pieza activa. Adicionalmente, se pueden representar gráficamente los movimientos de las entidades entre los diferentes elementos. Al pulsar en el botón que contiene un icono de un muñeco se activa esta opción, ejecución ralentizada, y con la barra de desplazamiento que está a su derecha se establece la velocidad con las que las entidades se mueven. Ejecución ralentizada Una vez el modelo se ha ejecutado hasta el instante 100, se pueden obtener informes de tipo estándar de los elementos del modelo. Para ello, en la ventana de selección de elementos se pueden marcar todos los elementos, hacer clic con el botón secundario y seleccionar Estadı́sticas. Informes Figura 2.15: informes estándar del modelo. Capı́tulo 2. CONSTRUCCIÓN DE MODELOS CON WITNESS 42 De esta manera se muestra una ventana parecida a la de la figura 2.15. Por ejemplo, para el elemento Cola se indica cuántas entidades han entrado (15), cuántas han salido 13, el número medio 0,46, el tiempo medio de permenencia, 3,08, etc. Para conocer las estadı́sticas de otros elementos, basta con hacer clic en los botones que tienen flechas hacia la izquierda y hacia la derecha. Para cada elmeentos se ofrece diferente tipo de información. Por ejemplo, para las máquinas se indica el número de operaciones o el porcentaje de timpo que han permanecido en cada uno de los posibles estados. Conviene notar que los resultados que se obtienen con la ejecución del modelo dependen de los números aleatorios que se utilicen para generar los distintos eventos. Por eso, los números obtenidos pueden ser diferentes. En el capı́tulo 6 se comenta más detalle el efecto de los números aleatorios sobre el análisis de los datos de salida. 2.7. Ejemplo 3 Además de las piezas que llegaban antes (redondos de tipo A), ahora llega también otros redondos (de tipo B) con otras caracterı́sticas. Al llegar al sistema, cada tipo se almacena de forma independiente antes de ser torneado. Los nuevos redondos llegan según una exponencial de media 18 minutos. Cuando el torno termina una operación, toma un redondo del stock que contenga más piezas. Ambos tipos de piezas pueden ser o bien de calidad alta (el 20 %) o alta (80 % baja), de manera que el tiempo de tornado depende de la calidad y del tipo de redondo. En particular, los tiempos de torneado son variables normales logarı́tmicas conlas medias y las desviaciones de la siguiente tabla: Pieza A Pieza B c. baja (5,0, 0,10) (4,5, 0, 12) c. alta (6, 0,15) (5,2, 0,16) Se pide modificar el modelo para representar esta nueva situación. Informes y aleatoriedad Capı́tulo 2. CONSTRUCCIÓN DE MODELOS CON WITNESS En este ejemplo, se presentan los siguientes aspectos de Witness: • atributos de sistema y atributos de usuario, • sentencias de control ((IF... ELSE... ENDIF)), • funciones de predefinidas y funciones de usuario, • ejecución acelerada, • acciones de elementos, • modificaciones de la representación de los elementos. 43 Resumen Para modificar el modelo solo es necesario introducir cuatro nuevos elementos: una nueva entidad, un nuevo buffer, un atributo y una función. El archivo Ejemplo2-3.mod contiene el modelo correspondiente a este ejemplo, construido tal y como se indica a continuación. En primer lugar, para distinguir los dos tipos de redondo, se puede renombrar el elemento Redondo y llamarlo RedondoA, ası́ como llamar ColaA a Cola. A contnuación, hay que definir una nueva entidad, RedondoB, y un nuevo buffer, ColaB. También es necesario que las reglas de salida de RedondoA y RedondoB sean ((PUSH to ColaA)) y ((PUSH to ColaB)), respectivamente. Para distiguir unas piezas de otras durante la animación, se puede modificar el aspecto con el que aparece RedondoB. Para ello, se puede acceder a la Representación (similar a la figura ). Se puede modificar el color (y cambiar el rojo por el verde, por ejemplo) y mantener el icono de una pequeño cı́rculo. Cambio de la representación Capı́tulo 2. CONSTRUCCIÓN DE MODELOS CON WITNESS 44 Figura 2.16: definición del atributo Calidad. También es necesario definir un atributo. Tal y como se ha explicado ya con otros elementos, se puede definir un atributo de tipo cadena de caracteres con el nombre Calidad (ver figura ). Cuando se define el atributo Calidad, cada entidad que entra al modelo tiene asociada una cadena de caracteres, que se puede leer y modificar. Un atributo opera como una tarjeta adhesiva liagada a cada entidad donde se almacena información especı́fica de dicha entidad, en este caso, la calidass cada redondo. Cuando un redondo deba ser torneado, el tiempo que dure la operación dependerá del valor de este atributo. Atributos de usuario Cuando un RedondoA o un RedondoB entra al modelo, hay que asignar un valor a su atributo Calidad, a través de las Acciones al crear cada pieza, a las que se puede acceder a través de la ventana de configuración de RedondoA y de RedondoB (figura 2.17). Acciones a crear Capı́tulo 2. CONSTRUCCIÓN DE MODELOS CON WITNESS 45 Figura 2.17: acciones al crear RedondoA. Para asignar un valor a Calidad, se genera un valor aleatorio entre 0 y 1 mediante la función predefinida ((RANDOM())) Funciones predefinidas. RANDOM() Cuando el valor devuelto por ((RANDOM())) es menor que 0.2 Calidad toma el valor “alta” (lo que ocurre el 20 % de los casos) y toma el valor “baja” el resto de los casos. Para esto se utiliza una sentencia ((IF... ELSE... ENDIF)) tal y como aparecen en la figura 2.17. Sentencia IF Una posible forma de incorporar en el modelo la manera según la cual se toman redondos de las respectivas colas, es utilizando una sentencia ((IF)) junto con la función ((NENTS())), que devuelve el número de entidades dentro del elemento al que se aplica la función. Funciones predefinidas. NENTS() Capı́tulo 2. CONSTRUCCIÓN DE MODELOS CON WITNESS 46 Figura 2.18: nueva regla para Torno. De esta manera, cuando Torno queda libre, si hay más piezas en ColaA o en ColaB y toma una del que tenga más, o de ColaA si la cantidad es la misma. La duración del tiempo de torneado depende de la calidad y del tipo de redondo. Por ello, lo que se puede hacer es crear una función que devuelva el valor deseado dependiendo de los atributos correspondientes y en la Duración de Torno, llamar a esta función con la información de la pieza procesada. Figura 2.19: Pestaña General de TiempoTorno. Funciones de usuario Capı́tulo 2. CONSTRUCCIÓN DE MODELOS CON WITNESS 47 Por lo tanto, hay que definir una función, TiempoTorno. Esta función devuelve un valor real a partir de dos parámetros, uno de tipo cadena (llamado CalidadPieza) y otro de tipo nombre (TipoPieza (ver figura 2.19). El cuerpo de la función es el código que se ejecuta con los valores de los parámetros. La función incluye sentencias de tipo ((RETURN)) con las que se indica el valor devuelto por la función. Figura 2.20: Cuerpo de TiempoTorno. TYPE es un atributo de sistema de todas las entidades que almacena el tipo de entidad. Para las entidades RedondoA, TYPE toma el valor RedondoA. Por último, en la Duración de Torno, se puede introducir ((TiempoTorno (Calidad,TYPE))). De esta manera se invoca a la función TiempoTorno con los valores de los atributos Calidad y TYPE y se obtiene un valor de acuerdo con el código del cuerpo de la función TiempoTorno. Atributos de sistema. TYPE Capı́tulo 2. CONSTRUCCIÓN DE MODELOS CON WITNESS Para finalizar este ejemplo, se puede ejecutar el modelo con la opción de Ejecución acelerada. Como en el ejemplo anterior, señalando una instante para finalizar la simulación, se puede omitir la animación gráfica, de manera que sólo se consumen recursos de computación para la generación de eventos y para la actualización de los estados de los elementos. Para ello, se puede utilizar el botón con dos triángulos apuntando hacia la derecha (botón de Ejecución acelerada). 2.8. 48 Ejecución acelerada Ejemplo 4 Una vez que los redondos son torneados, se acumulan en una zona de almacenamiento intermedio. Para llegar hasta ese punto desde el torno, siguen una trayectoria en la que se tarda 5 minutos. Los palés torneados se agrupan en palés de cinco en cinco, del mismo tipo (no necesariamente de la misma calidad). Existen dos máquinas que montan los palés, una con redondos A y la otra con redondos B, y tardan en montar cada palé exactamente 10 minutos, desde el momento en el que los cinco redondos han entrado en la máquina. En ocasiones, con un 1 % de probabilidad, al montar el palé, el procedimiento no realiza de forma correcta, y ese palé se debe desechar. Modificar el modelo del ejemplo anterior para representar la situación anterior. Además: • representar los elementos ColaA y ColaB como un único elemento, (Cola), con cantidad 2 y • sustituir la regla de entrada del torno por una regla de tipo ((MOST ENTITIES)). En este ejemplo, se presentan los siguientes aspectos de Witness: • los elementos de tipo camino, • las máquinas de tipo ensambladora • las reglas ((PERCENT)) y ((MOST ENTITIES)), • las funciones ((CHANGE)) y ((ELEMENT)) • gestión de elmentos con cantidad superior a 1, El archivo ejemplo2-4.mod contiene una propuesta para representar la situación descrita. Este modelo incorpora tres nuevos elementos: un camino, una máquina, un buffer y dos nuevas piezas. Resumen Capı́tulo 2. CONSTRUCCIÓN DE MODELOS CON WITNESS 49 Primero, como se ha hecho en los ejercicios anteriores, hay que definir: • una máquina, que tendrá el nombre slPaletizadora, • un buffer, con el nombre de ColaPaletizadora, • dos nuevas entidades, llamadas PaleA y PaleB y • un camino, con el nombre CaminoAPale. Nuevos elementos En primer lugar, se puede renombrar el elemento ColaA, llamarlo Cola y modificar su cantidad, de manera que sea 2. Al hacer todo esto, la representación de este elemento se modifica y aparecen dos flechas, una correpondiente al lugar donde aparecerán acumuladas las entidades del primer elemento de Cola y otro donde aparecen las del segundo elemento. Cantidad de un elemento Ahora, es posible referirse a cada uno de los dos elementos con la sintaxis cola(1) y Cantidad de un elemento , en definitiva, al tener un elemento con cantidad superior a 1 es parecido a tener un vector de elementos con todas las componentes indénticas. Cantidad de un elemento Para ser consistente con el cambio de notación, hay que mofificar las reglas de salida de las piezas RedondoA y RedondoB. Ahora serán, respectivamente, ((PUSH to Cola(1))) y ((PUST to Cola(2))). Cantidad de un elemento La regla de entrada del torno, que antes utilizaba una sentencia ((IF)) se puede modificar por la siguiente regla ((MOST ENTITIES Cola(1), Cola(2))), lo cual significa que Torno, al quedar libre, evaluará en cuál de los dos elementos (Cola(1) y Cola(2)) hay más entidades y, de aqué que tenga más, cogerá una. Regla MOST ENTITIES El elemento ColaB ya no es necesario, porque ahora Cola(2) hace la función de stock de redondos de tipo B a la espera de ser torneados. Una forma de eliminar un elemento consiste en hacer clic con el botón secundario sobre su nombre o sobre algún algún elemento de representación del mismo y elegir la opción Eliminar del menú contextual que aparece. Sólo es posible eliminar elementos que no estén referenciados en ninguna otra parte del modelo. Eliminar elementos Los caminos permiten conectar dos elementos, de tal manera que al desplazarse las entidades entre esos dos elementos, pueden hacerlo siguiendo ese camino. Los aspectos más importantes de la configuración de un camino son los dos elementos que conecta y el tiempo de tránsito entre estos dos elementos. Configuración del camino Capı́tulo 2. CONSTRUCCIÓN DE MODELOS CON WITNESS 50 Tal y como aparece en la figura 2.21, el tiempo de recorrido es 5 minutos y conecta los elmentos Torno (elemento de origen) y ColaPaletizadora (elemento de destino) Figura 2.21: Configuración de CaminoAPale. Para que las piezas transiten por el camino, es necesario modificar la regla de salida del Torno ((PUSH to Cola using Path)). Si no se modifica la sintaxis, el desplazamiento se realiza de forma inmediata. ((Using Path)) Con respecto a la máquina que agrupa los redondos, como toma 5 redondos y devuelve un palé, se trata de una máquina de ensamblado. En la ventana de configuración de Paletizadora se puede indicar el Tipo, y en la cantidad de entrada, indicar 5. El tiempo de ciclo es de 10 minutos. Por último, como existen 2 máquinas que montan los palés, la cantidad de este elemento debe ser 2. Configuración Paletizadora Paletizadora tiene cantidad igual a 2, pero no operan de forma idéntica, sino que Paletizadora(1) monta palés de RedondoA y Paletizadora(2) de RedondoB. Para poder introducir esta distinción en el código, una alternativa consiste en hacer uso de la variable de sistema N. Esta variable opera de la siguiente manera: cada uno de los elementos que forman Paletizadora tiene asociado un valor de N, para Paletizadora(1), N = 1 y para Paletizadora(2), N = 2. Variable N Capı́tulo 2. CONSTRUCCIÓN DE MODELOS CON WITNESS 51 Figura 2.22: regla de entrada de Paletizadora. Por eso, con la regla de la figura 2.22, Paletizadora(1) sólo busca entidades de tipo RedondoA y Paletizadora(2) sólo busca entidades de tipo RedondoB Para que efecivamente, la regla anterior funcione correctamente es necesario modificar la opción de Salida de ColaPaletizadora y que sea Cualquiera. Con la opción Primero, sólo podrı́a salir la primera entidad (ya fuera por delante o por detrás, según la configuración), y si esa entidad no coincide con la que uno de los elementos de Paletizadora trata de retirar, no podrı́a continuar montando el palé. La regla de salida de Paletizadora se puede construir con una sentencia de tipo ((IF)). Sin embargo, Witness proporciona una regla más compacta que opera tal y como se desea en este caso. Con ((PERCENT SERVED 99.00 ,LOST 1.00 )), todas las piezas salen del sistema, el 99 % se dirigen a SERVED y el resto a LOST. Si fuera necesario, se pueden poner otros destinos (más de dos), que pueden ser diferentes elementos del modelo. Regla PERCENT Por último, dado que la piezas que salen de Paletizadora ya no son redondos, sino que son palés, conviene reflejar ese cambio en el modelo. Con la función CHANGE es posible cambiar un tipo de pieza en otra. Tal y como aparece en la figura se puede realizar el cambio en las acciones al finalizar el ciclo de Paletizadora Función CHANGE Capı́tulo 2. CONSTRUCCIÓN DE MODELOS CON WITNESS 52 Figura 2.23: acciones al finalizar el ciclo de Paletizadora. 2.9. Ejemplo 5 Modificar el modelo del ejemplo anterior de la siguiente manera. • Generalizar el tamaño de los palés, de forma que el la cantidad de ensamblado de Paletizadora dependa de una variable. • Representar en una serie temporal el palés servidos por hora. • Representar en un diagrama de tarta la proporción de tiempo que Paletizadora(1) ha estado montando palés y el tiempo que ha estado sin operar. • Representar gráficamente el número de redondos de tipo A y de tipo B que contiene ColaPaletizadora. • Detener la ejecución del modelo cuando, en total, han entrado al modelo 200 redondos En este ejemplo, se presentan los siguientes aspectos de Witness: • elementos de representación gráfica: serie temporal y diagrama de tarta, • variables, • funciones predefinidas ((NCREATE)), ((NSERVED)), ((STOP)) y • acciones de inicialización. Resumen En primer lugar, para que el número de redondos que componen un palé no sea neceariamente 5 se puede hacer lo siguiente. En primer lugar, haciendo uso de los elementos predefinidos se puede definir una variable de tipo entero (VInteger en la pestaña Variables), con el nombre TamañoPale. Después, en Paletizadora, en vez de asignar a la cantdad Variables Capı́tulo 2. CONSTRUCCIÓN DE MODELOS CON WITNESS 53 de entrada el valor 5, se puede introducir el nombre de la variable TamañoPale. Si se ejecuta el modelo con esa modificación, se producirá un error por el hecho de que, por defecto, las variables se inicializan a 0, y una máquina de ensamblado no puede operar con una cantidad de entrada igual a 0. A través del menú (Modelo / Acciones de inicialización) se puede acceder a una ventana en la que se pueden introducir todas aquellas acciones que se deben realizar antes de comenzar la ejecución del modelo. En este caso se puede introducir, por ejemplo, la acción ((TamañoPale = 6)). Se podrı́a solicitar por pantalla al usuario, mediante un cuadro de diálogo, que indicara el valor de TamañoPale, o se podrı́a leer desde un archivo .xls o desde un .mdb. Acciones de inicialización Las series temporales permiten representar gráficamente al evolución de algún valor del modelo mediante un eje de coordenadas, donde en las abscisas se representa el tiempo y en las ordendadas los valores observados. Haciendo uso del elemento predefinido Serie temporal en la pestaña de Informes se puede crear un elemento de este tipo con el nombre PalesMontados. Serie temporal Para representar el número de palés servidos por hora, es necesario computar todos los que se han servido hasta el momento y dividirlo por el número de horas transcurridas. Para conocer el número de elementos PaleA y PaleB servidos, se puede utilizar la función ((NSERVED)) y el número de horas trascurridas es ((TIME/60)), de manera que las dos magnitudes que hay que represenar son ((NSERVED(PaleA)/(TIME/60)))) Y ((NSERVED(PaleA)/(TIME/60)))). Estas expresiones son las que deben figurar en los campos Gráf.1 y Graf.2 del histograma (como en la figura 2.24). NSERVED Capı́tulo 2. CONSTRUCCIÓN DE MODELOS CON WITNESS 54 Figura 2.24: ventana de configuración de PalesMontados. Se puede modificar la representación de PalesMontados y actualizar el elemento de representación Serie temporal, y acceder a la ventana de representación. Existen diferentes valores que permiten modificar el aspecto de la serie temporal. Con los valores que aparecen en la figura 2.25 es aspecto de PalesMontados es adecuado. Figura 2.25: representación de PalesMontados. Representación de series temporales Capı́tulo 2. CONSTRUCCIÓN DE MODELOS CON WITNESS 55 Se puede definir un diagrama de tarta a partir de los elementos predefinidos y renombrarlo como TasaPaletizadora. Al hacer esto aparece ya una primera representación gráfica de ese elemento. Diagrama de tarta Con el Diagrama de tarta se pueden mostrar diferentes magnitudes, este caso, la proporción del tiempo que Paletizadora(1) ha estado ocupada y la que ha estado operando. La forma de obtener estos valores es mediante la fucción ((PUTIL)). Por ejemplo, la expresión ((PUTIL (Paletizadora(1),1))) devuelve la proporción del tiempo que Paletizadora(1) ha estado estado en el estado de disponible, mientras que ((PUTIL (Paletizadora(1),2))) devuelve la proporción del tiempo que ha estado operando. En la ayuda de Witness se pueden consultar los diferentes estados en los que se puede encontrar cada uno de los diferentes elementos. Función PUTIL. Estados de un elemento Las dos expresiones anteriores deben aparecer en la configuración de TasaPaletizadora1, tal y como aparece en la figura 2.26. En este caso, el diagrama cuenta con dos sectores, pero se pueden añadir más haciendo clic en el botón que tiene el icono de un rectángulo con lı́nea discontinua. Figura 2.26: configuración de TasaPaletizadora1. Capı́tulo 2. CONSTRUCCIÓN DE MODELOS CON WITNESS Para completar la representación gráfica, se puede mostrar el número de piezas de cada tipo que contiene ColaPaletizadora. Para ello se puede definir una variable de tipo entero con cantidad igual a 3 con el nombre de RedondosEnCola. Esta variable tiene tres componentes. La primera almacenará el número total de piezas en ColaPaletizadora, la segunda el número de redondos de tipo A y la tercera los de tipo B. 56 Variables Cada vez que una entidad entra o sale de ColaPaletizadora se modifica el número total de entidades en ese elemento y el número que contiene de alguno de los dos tipos de entidades, por lo que habrá que introducir acciones al entrar y accones al salir de ColaPaletizadora para actualizar los valores de la variable RedondosEnCola. Las función ((NENTS)) devuelve el número de entidades del elemento al que se aplica. ((NENTS(ColaPaletizadora))) devuelve el número de entidases en ColaPaletizadora. Por otro lado, para conocer el número de entidades de un determinado tipo se puede utilizar la función ((NENTS2)). ((NENTS(ColaPaletizadora, RedondoA, 0))) devuelve el número de entidades RedondoA que hay en ColaPaletizadora. De la manera análoga se puede proceder con RedondoB. Funciones NENTS y NENTS2 Figura 2.27: acciones al entrar de ColaPaletizadora. Por último, para detner el modelo cuando ha entrado el redondo número 200 es necesario evaluar cual es el número total de entidades que ha entrado cada vez que entra una nueva. Por ello, es necesario ampliar las acciones al crear de las dos entidades RedondoA y RedondoB. La función ((NCREATE)) devuelve el número de entidades de un determinado tipo que han sido creadas. Por otro lado, la función ((STOP)) detiene la ejecución del modelo. Si se incluyen las acciones de la figura 2.28 en las acciones al entrar de RedondoA y de RedondoB, el modelo se detiene NCREATE. STOP Capı́tulo 2. CONSTRUCCIÓN DE MODELOS CON WITNESS cuando entra el redondo número 200. Figura 2.28: ampliación de acciones al crear de RedondoA y RedondoB. 2.10. Bla, bla Resumen 57 Capı́tulo 3 REPASO DE ESTADÍSTICA 3.1. Introducción Como se comentó en 1.2, la mayorı́a de los sistemas que se estudian mediante simulación presentan fenómenos de carácter estocástico. Para garantizar la validez de los resultados obtenidos es necesario tener presente las caracterı́sticas que presentan estos fenómenos y aplicar las técnicas estadı́sticas apropiadas. La necesidad de aplicar estas técnicas se pone de manifiesto a largo de todo un estudio de simulación (ver figura 3.1). A continuación se comentan los aspectos más importantes. • En primer lugar, para alimentar de forma correcta un modelo con los valores correspondientes a las variables de entrada (ver 1.5) es necesario, primero, analizar de forma correcta los datos históricos del sistema estudiado para caracterizar los fenómenos a los que se refieren dichos datos. • Además, es necesario generar valores de las variables de entrada de acuerdo con los resultado del análisis anterior para poder reproducir un comportamiento consistente con el comportamiento real del sistema. • Para validar del modelo se deben emplear técnicas para comparan los resultados que ofrece el modelo con los datos históricos del sistema real. • Dado que, generalmente, las variables de entrada son estocásticas, las variables de salida también lo son. Para una determinada configuración de un sistema, se debe caracterizar correctmente el comportamiento de una variable de salida. Una primera caracterización consiste en una estimación puntual del valor esperado (junto al de un intervalo de confianza de dicha estimación). • Generalmente, en un estudio de simulación se evalúan diferentes configuraciones alternativas, por lo que es necesario identificar si hay diferencias siginificativas entre los comportamientos de dichas configuraciones. La estadı́stica a lo largo de un estudio de simulación Capı́tulo 3. REPASO DE ESTADÍSTICA 59 • Adicionalemnte, puede ser interesante evaluar la influencia de determinados factores sobre el funcionamiento del sistema. Para ello es adecuado realizar un diseño de experimentos con varios factores. Validación EM E L Análisis de resultados Generación de variables aleatorias O MODELO ... O Test de ajuste Experimentación Figura 3.1: la simulación está presente en muchas etapas de un estudio de simulación Este capı́tulo no pretende ser un amplio tratado de estadı́stica. El objetivo es proveer al lector de una guı́a clara y concisa (en la mayorı́a de los casos sin entrar en demostraciones) de los principios de estadı́stica y probabilidad necesarios para desarrollar un estudio de simulación. 3.2. Variables aleatorias en simulación Los estudios de simulación emplean tı́picamente variables aleatorias, es decir, variables cuyos valores vienen determinados por el azar. Tanto en el caso de las variables de entrada como en el de las variables de salida, generalmente lo que se estudia es una muestra finita de una población infinita y el objetivo es inferir las propiedades de la población a partir de dicha muestra. El objetivo es modelar el comportamiento de un fenómeno mediante una función de distribución que establece una relación entre lo observado (muestra) y lo desconocido (población). Muestra y población El conjunto de posibles valores que puede tomar la variable estudiada se conoce como espacio muestral, mientras que el valor que toma en un caso concreto se conoce como valor puntual u observación. A lo largo los capı́tulos que componen este texto, las variables aleatorias se denotan mediante letras mayúsculas (X, Y , Z) mientras que las observaciones se representan mediante letras minúsculas (x, y, z). Notación Capı́tulo 3. REPASO DE ESTADÍSTICA Dos variables aleatorias X e Y son independientes cuando el conocimiento de los valores que toma una de ellas no aporta información respecto de los valores de la otra, y son dependientes en el caso contrario. En otros términos, la probabilidad de que la variable X tome el valore x no está condicionado por el valor que tome la variable Y . Además de esta clasificación, las variables aleatorias pueden dividirse en dos categorı́as que se explican a continuación: discretas y continuas. 3.2.1. 60 Variables aleatorias independientes Variables aleatorias discretas Se dice que una variable aleatoria es discreta cuando puede tomar un número contable de valores. Algunos ejemplos de variables aleatorias discretas son: el resultado del lanzamiento de una moneda al aire, cuyo resultado puede ser cara o cruz o la nota entera correspondiente a la calificación de un examen, que puede tomar valores enteros entre 0 y 10. Definición El comportamiento de una variable discreta se puede caracterizar mediante dos funciones: la función de probabilidad (de carácter puntual) y la función de distribución (de carácter acumulativo). Caracterización de una variable discreta Función de probabilidad La función de probabilidad de una variable discreta, que se deonta por p(x), representa la probabilidad de que X tome un valor concreto x, es decir: p(xi ) = P (X = xi ) (3.1) Si S representa el espacio muestral, debe cumplirse la siguiente propiedad: p(xi ) = 1 (3.2) i/xi ∈S Función de distribución Una forma equivalente de caracterizar el comportamiento de X es a partir de la función de distribución, F (x), que en cada punto xi representa la probabilidad de que la variable tome un valor menor o igual que xi . Es decir: F (xi ) = P (X ≤ xi ) (3.3) Si X puede tomar los valores x1 , x2 , · · · , xn , la siguiente expresión indica como calcular F (x) a partir de p(x): Capı́tulo 3. REPASO DE ESTADÍSTICA F (xi ) = i p(xj ) 61 (3.4) j=1 F (x) cumple las siguientes propiedades: a) 0 ≤ F (x) ≤ 1 para todo x. b) F (x) debe ser no decreciente en su dominio (es decir, si x1 < x2 , entonces F (x1 ) ≤ F (x2 )). c) lı́m F (x) = 1 y lı́m F (x) = 0 x→∞ 3.2.2. x→−∞ Variables aleatorias continuas Se dice que una variable aleatoria es continua cuando en un intervalo puede tomar un número infinito e incontable de valores. Algunos ejemplos de este tipo de variables son: el volumen de agua que contiene un recipiente o la tiempo entre llegadas de dos autobuses a una determinada estación. Función de densidad Es equivalente a la función de probabilidad en el caso de variables aleatorias discretas. Se denota por f (x) y cumple las siguientes propiedades: a) f (x) ≥ 0 ∞ b) f (x)dx = 1 −∞ Estrictamente, la probabilidad de que una variable tome un valor exacto es cero (por ejemplo, que una pieza mida 15,456324841... cm), y debe estudiarse la probabilidad dentro de un intervalo de valores (por ejemplo, entre 15,450 cm y 15,455 cm). El conocimiento de la función de densidad permite calcular, por integración, la probabilidad de que X pertenezca a un determinado intervalo: x0 x1 P (X ≤ x0 ) = f (x)dx ; P (x0 ≤ X ≤ x1 ) = f (x)dx −∞ x0 Función de distribución La función de distribución de una variable aleatoria X, que se denota por F (x), al igual que en el caso discreto, representa la probabilidad de que la variable X tome un valor menor o igual que x, es decir: F (x1 ) = P (X ≤ x1 ) Definición Capı́tulo 3. REPASO DE ESTADÍSTICA 62 La relación entre la función de distribución y la de probabilidad se establece mediante la siguiente expresión (análoga a 3.4): F (x1 ) = P (X ≤ x1 ) = f (x) = x1 −∞ f (x)dx dF (x) dx (f (x) → F (x)) (3.5) (F (x) → f (x)) (3.6) Además, se verifican las siguientes propiedades: a) lı́m F (x) = 0 x→−∞ b) lı́m F (x) = 1 x→∞ c) Es no decreciente en su dominio (si x1 < x2 , entonces F (x1 ) ≤ F (x2 )). 3.2.3. Medidas caracterı́sticas de una variable aleatoria Las funciones anteriores permiten suficiente para caracterizar el comportamiento de una variable. Existen otras medidas que permiten disponer de información derivada de dichas funciones que, entre otras cosas, permite disponer de información más elaborada. A continuación, se presenta un conjunto de medidas que complementan a f (x) y F (x). Las más importantes son las de centralización, que indican la tendencia del valor medio de los datos, y las de dispersión, que miden su variabilidad. Medidas de centralización La medida de centralización más utilizada es la media, μ, o esperanza matemática, E(X). Se obtiene a partir de la suma de los posibles valores que puede tomar la variable aleatoria ponderados por sus respectivas posiblidades: ⎧ ⎪ variables discretas ⎪ ⎨ xi p(xi ) μ = E(X) = (3.7) ⎪ ⎪ ⎩ ∞ xf (x)dx variables continuas −∞ Otra medida de centralización es la mediana, xme . Representa el valor para el cual las probabilidades de que X sea mayor y de que sea menor que xm son idénticas. Su expresión matemática es la siguiente: revisar definicion xme = PENDIENTE ⎧ ⎪ ⎪ ⎨F (x) ≤ 0, 5 variables discretas ⎪ ⎪ ⎩F (x) < 0, 5 variables continuas (3.8) Capı́tulo 3. REPASO DE ESTADÍSTICA revisar definicion Una medida menos utilizada es la moda, xmo , que representa el valor más frecuente de X y su expresión matemática es 3.9: xmo /f (xmo ) = 63 PENDIENTE (3.9) Medidas de dispersión La medida de dispersón más utilizada es la varianza. Se denota por σ 2 y mide la dispersión de X de los valores de X en torno a la media, E(X), como muestra la figura 3.2. Se calcula de la siguiente manera: 2 σ = Var(X) = ⎧ 2 ⎪ ⎪ ⎨ (xi − μ) p(xi ) variables discretas ⎪ ⎪ ⎩ ∞ (x − μ)2 f (x)dx −∞ variables continuas (3.10) La varianza cumple las siguientes propiedades: 1. Var(X) ≥ 0. 2. Var(cX) = c 2 Var(X). n n 3. Var( i=1 Xi ) = i=1 Var(Xi ), si las variables Xi son independientes. Otra forma habitual de caracterizar la dispersión es mediante la desvia√ ción estándar, definida como σ = σ 2 . Conocer la media y la desviación tı́pica de una variable aleatoria permite calcular la proporción de una distribución que está situada entre μ ± kσ , siendo k una constante positiva, mediante la acotación de Tchebychev: P (μ − kσ ≤ X ≤ μ + kσ ) ≥ 1 − 1/k2 (3.11) Por ejemplo, la probablidad de que la variable X tome un valor perteneciente al intervalo μ ± 3σ es de, al menos, el 89 % y para μ ± 4σ es de, al menos, el 94 %. Interpretación de la varianza: la desviación tı́pica Capı́tulo 3. REPASO DE ESTADÍSTICA σ2 baja σ2 alta μ μ (a) (b) Figura 3.2: funciones de densidad de una variable continua con varianza alta (a) y baja (b) Medidas de relación lineal de dos variables Al estudiar dos variables aleatorias, X e Y , puede interesar conocer si existe una relación lineal entre ellas. La covarianza permite cuantificar dicha relación y se define como sigue: Cov(X, Y ) = E[(X − μX )(Y − μY )] = E[XY ] − μX μY (3.12) donde μX y μY son los valores de las medias de X e Y , respectivamente. La interpretación de su valor es la siguiente: • Si X e Y son independientes, su covarianza es nula. No se cumple lo contrario, es decir, la covarianza nula no indica, en general, independencia (salvo en el caso de que ambas variables sigan una distribución normal). • Si Cov(X, Y ) > 0, se dice que X e Y están correlacionadas positivamente. En este caso, si x > μX en una determinada observación, existe una tendencia a que y > μY , y si x < μX la tendencia es y < μY . Cuando Cov(X, Y ) < 0 se dice que están correlacionadas negativamente y la tendencia es la contraria a la del caso anterior (x > μX ⇒ y < μY ; x < μX ⇒ y > μY ) La covarianza no es una medida adimensional, lo cual representa un incoveniente ya que varia al cambiar las unidades de medida de las variables. Por ejemplo, la covarianza es diferente si X e Y representan longitudes en cm que si se hace en m, por lo que, aunque su signo aporta información, su valor absoluto es difı́cil de interpretar. 64 Capı́tulo 3. REPASO DE ESTADÍSTICA 65 Para eliminar este inconveniente se define el coeficiente de correlación como: Cov(X, Y ) ρ(x, y) = (3.13) σX σY Una medida adimensional de la dependencia Se puede demostrar que −1 ≤ ρ(X, Y ) ≤ 1 y su signo tiene el mismo significado que el de Cov(X, Y ). Además, cuanto más cerca esté ρ(X, Y ) de 1, mayor es la correlación positiva entre X e Y . Del mismo modo, cuanto más se acerca ρ(X, Y ) a -1, mayor es la correlación negativa. 3.2.4. Media y varianza de una combinación lineal de variables aleatorias La obtención de un intervalo de confianza para la media de una variable de salida es el análisis más sencillo de un modelo de simulación. La obtención de dicho intervalo se basa, entre otras cosas, en la expresión de la meida y la varianza correspondientes a variable aleatoria, Y , definida como una combinación lineal de n variables aleatorias independientes, X1 , X2 , · · · , Xn : Y = k1 X1 + k2 X2 + · · · + kn Xn A continuación se expresan las principales medidas de Y en función de las de X1 , X2 , · · · , Xn : Media: E(Y ) = k1 E(X1 ) + k2 E(X2 ) + · · · + kn E(Xn ) = n ki E(Xi ) (3.14) i=1 Varianza: Var(Y ) = k21 Var(X1 ) + k22 Var(X2 ) + · · · + k2n Var(Xn ) = n k2i Var(Xi ) (3.15) i=1 Varianza de sumas y diferencias de dos variables La varianza de una variable Z definida como la suma o la diferencia de X e Y puede calcularse mediante las siguientes expresiones: Z = X + Y ⇒ Var(Z) = Var(X) + Var(Y ) + 2Covar(X, Y ) (3.16) Z = X − Y ⇒ Var(Z) = Var(X) + Var(Y ) − 2Covar(X, Y ) (3.17) Capı́tulo 3. REPASO DE ESTADÍSTICA 3.2.5. 66 Estimadores de máxima verosimilitud En muchas ocasiones, se desea caracterizar algún fenómeno, que corresponde a una variable aleatoria, de la cual se conocen algunas observaciones. Por ejemplo, el tiempo que se tarda en realizar el montaje de un subconjunto en una planta de fabricación no es determinista, sino que es de carácter aleatorio. En este caso, puede interesar caracterizar el comportamiento de dicho tiempo en términos de una variable aleatoria. Si se admite, por ejemplo, que el tiemo sigue una exponencial, será necesario estimar cuál es el parámetro de dicha exponencial. En general, interesa estimar los parámetros de la variable aleatoria de la que se pueda tratar a partir de un conjunto de observaciones. Justificación Dado un conjunto de n observaciones x1 , x2 , ..., xn , y dada una función de distribución, φ, con un parámetro, θ, la función de máxima verosmilitud, L(θ), se define como Función de máxima verosimilitud L(θ) = pθ (x1 ) · pθ (x2 ) · · · pθ (xn ) (3.18) si φ es discerta, donde pθ (x1 ) es la función de probabilidad de φ, o bien se define como L(θ) = fθ (x1 ) · fθ (x2 ) · · · fθ (xn ) (3.19) si φ es continua, donde fθ (x1 ) es la función de densidad de φ, o bien se define como La función de verosimilitud, indica, para cada valor del parámetro θ, cuál es la probabilidad de que obtener ese conjutnto valores x1 , x2 , ..., xn . El estimador máximo verosı́mil es aquel valor de θ que hace máximo el valor de la función φ, es decir, la probabilidad de que se obtengan los valores xi . Interpretación Por ello, para obtener el valor de θ, hay que resolver la siguiente ecuación: Procdeimiento dL(θ) =0 dθ (3.20) En el caso de que existiera más de un parámetro, el razonamiento serı́a análogo, pero con una función de varias variables, en cuyo caso, habrı́a que igualar a cero las derivadas parciales con respecto a cada uno de los parámetros. En las funciones que se presentan más adelante se indica cuáles son los estimadores de máxima verosimilitud de los parámetros correspondientes. Más de un parámetro Capı́tulo 3. REPASO DE ESTADÍSTICA 3.3. Variables aleatorias frecuentes en simulación En esta sección se presentan las variables aleatorias más frecuentemente empleadas en simulación, y se ofrece una breve descripción de sus propiedades. Se han agrupado en dos bloques: continuas y discretas. Para cada una de ellas se indica lo siguiente: Principales aplicaciones de la distribución. Función de densidad (variables continuas) o de probabilidad (discretas). Función de distribución. Descripción de sus parámetros. Rango de valores que puede tomar la variable. Media, varianza y moda. Estimadores máximo-verosı́miles de sus parámetros. Comentarios acerca de la distribución. 3.3.1. Distribuciones continuas Uniforme Posibles aplicaciones U(a, b) Se emplea cuando una variable toma valores en un rango finito de valores equiprobables. Sirve como primera aproximación cuando se conoce el rango de valores de una variable pero no se tiene información acerca de su distribución. Densidad Distribución f (x) = F (x) = ⎧ 1 ⎪ ⎪ ⎨ b−a si a ≤ x ≤ b ⎪ ⎪ ⎩0 resto de casos ⎧ ⎪ 0 ⎪ ⎪ ⎪ ⎪ ⎨ x−a ⎪ ⎪ b−a ⎪ ⎪ ⎪ ⎩1 si x < a si a ≤ x ≤ b si x > b Parámetros a y b son números reales con a < b. Rango [a, b] Media a+b 2 67 Capı́tulo 3. REPASO DE ESTADÍSTICA Varianza (b − a)2 12 Moda Todos los valores en (a, b) son equiprobables. Estimadores = máx xi = mı́n xi , b a 1≤i≤n 1≤i≤n f (x) 1/(a − b) 0 a b x Figura 3.3: función de densidad de U(a, b) Triangular Posibles aplicaciones Densidad Distribución triang(a, b, m) Modelo aproximado en ausencia de datos. f (x) = F (x) = ⎧ 2(x−a) ⎪ ⎪ ⎪ (b−a)(m−a) ⎪ ⎪ ⎪ ⎪ ⎪ ⎨ 2(b−x) (b−a)(b−m) ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎩0 si a ≤ x ≤ m si m ≤ x ≤ b resto de casos ⎧ ⎪ 0 ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ (x−a)2 ⎪ ⎪ ⎪ ⎨ (b−a)(m−a) ⎪ ⎪ ⎪ ⎪ ⎪ ⎪1 − ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎩1 (b−x)2 (b−a)(b−m) si x < a si a ≤ x ≤ m si m ≤ x ≤ b si x > b 68 Capı́tulo 3. REPASO DE ESTADÍSTICA Parámetros a, b y m números reales con a < m < b. Rango [a, b] Media a+b+m 3 Varianza a2 + b2 + m2 − ab − am − bm 18 Moda m Estimadores Dado que se emplea en ausencia de datos, los estimadores no son relevantes. f (x) 2/(b − a) 0 0 a m Figura 3.4: función de densidad de triang(a, b, m) b x 69 Capı́tulo 3. REPASO DE ESTADÍSTICA Exponencial Posibles aplicaciones Exp(β) Tiempo entre llegadas de clientes o piezas a un sistema. Tiempo entre averı́as de un equipo. No resulta apropiada para tiempos de espera. Densidad Distribución f (x) = F (x) = ⎧ 1 −x/β ⎪ ⎪ ⎨βe si x ≥ 0 ⎪ ⎪ ⎩0 resto de casos ⎧ −x/β ⎪ ⎪ ⎨1 − e si x ≥ 0 ⎪ ⎪ ⎩0 resto de casos Parámetros β>0 Rango [0, ∞] Media β Varianza β2 Moda 0 Estimadores = x(n) β Comentarios Es un caso de especial de Gamma(1, β) y Weibull(1, β). 70 Capı́tulo 3. REPASO DE ESTADÍSTICA f (x) 1 0.8 0.6 0.4 0.2 0 0 1 2 3 4 5 6 7 x Figura 3.5: función de densidad de Exp(1) Gamma Posibles aplicaciones Densidad Distribución Gamma(α, β)) Tiempo para completar una tarea. Por ejemplo: duración de un servicio o de una reparación. ⎧ −α α−1 −x/β ⎪β x e si x > 0 ⎪ ⎨ Γ (α) f (x) = ⎪ ⎪ ⎩0 resto de casos F (x) = ⎧ α−1 −x/β ⎪ ⎪ j=0 ⎨1 − e (x/β)j j! ⎪ ⎪ ⎩0 si x > 0 resto de casos donde Γ(α) es la función gamma completa definida por Γ (α) = ∞ t z−1 e−t . 0 Parámetros α>0yβ>0 Rango [0, ∞] Media αβ Varianza αβ2 Moda β(α − 1) si α ≥ 1, 0 si α < 1 . Estimadores - 71 Capı́tulo 3. REPASO DE ESTADÍSTICA 1. Exp(β)=Gamma(1, β). Comentarios 2. lı́m f (x) = x→∞ ⎧ ⎪ ⎪ ∞ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎨ 1 β ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎩0 si α < 1 si α = 1 si α > 1 f (x) 1.2 1 α= 0.8 1 2 α=1 0.6 α=2 0.4 α=3 0.2 0 1 2 3 4 5 6 7 x Figura 3.6: función de densidad de Gamma(α, 1) para algunos valores de α Normal Posibles aplicaciones N(μ, σ 2 ) Variables que representan la suma de otras variables. Variables con distribución simétrica (por ejemplo, tiempos de ciclo) Dependiendo de los parámetros empleados, la función puede devolver valores negativos. Densidad Distribución f (x) = ⎧ ⎪ ⎪ ⎪ ⎨ √1 e x 2π σ 2 ⎪ ⎪ ⎪ ⎩0 −(x−μ)2 2σ 2 si x > 0 resto de casos No tiene expresión analı́tica. 72 Capı́tulo 3. REPASO DE ESTADÍSTICA Parámetros μ ∈ (−∞, ∞) , σ > 0 Rango [0, ∞] Media μ Varianza σ2 Moda μ n = μ Estimadores i=1 n xi 2 = σ , n−1 2 S (n) n 1. Si la correlación lineal entre dos variables distribuidas normalmente es nula, también son independientes. Comentarios 2. A la función N(0, 1) = Φ(x) se conoce como normal estándar y se encuentra tabulada. Es sencillo obtener el valor de cualquier normal a partir de ella mediante la siguiente relación: N(μ, σ 2 ) = Φ( x−μ ) σ (3.21) 3. Si X N(μ, σ 2 ), entonces eX sigue una distribución lognormal. f (x) 0.5 0.4 0.3 0.2 0.1 -3 -2 -1 0 1 2 Figura 3.7: función de densidad de N(0, 1) 3 x 73 Capı́tulo 3. REPASO DE ESTADÍSTICA Lognormal Posibles aplicaciones LN(μ, σ 2 ) Su principal aplicación se da en variables que son el producto de un gran número de variables aleatorias (por ejemplo, la producción total de un sistema en el que hay varias categorı́as de piezas). Tiempo para completar una tarea. Tiene una forma similar a gamma(α, β) o weibull(α, β), pero con su máximo más cerca de x = 0. Modelos aproximados donde no hay muchos datos. Densidad f (x) = ⎧ ⎪ ⎪ ⎪ ⎨ √1 e x 2π σ 2 −(ln x−μ)2 2σ 2 ⎪ ⎪ ⎪ ⎩0 si x > 0 resto de casos Distribución No tiene expresión analı́tica. Parámetros eμ > 0 y σ > 0 Rango [0, ∞] Media eμ+σ Varianza e2μ+σ Moda eμ−σ Estimadores = μ 2 /2 2 /2 2 /2 n Comentarios (eσ − 1) ln xi n i=1 , 2 = σ n i=1 2 ln xi − μ n 1. Se dice que una variable X se distribuye según una lognormal(μ, σ 2 ) cuando se cumple: X LN(μ, σ 2 ) ⇐⇒ ln X N(μ, σ 2 ) Es decir, si x1 , x2 , · · · , xn se distribuyen según una lognormal, ln x1 , ln x2 , · · · , ln xn lo hacen según una normal. Esta relación afecta a: la hipótesis de qué distribución sigue una muestra, la estimación de parámetros y tests de bondad, entre otras cosas. 74 Capı́tulo 3. REPASO DE ESTADÍSTICA 2. Mientras que en Excel (y en la mayorı́a de las aplicaciones informáticas) los parámetros de la función son los indicados anteriormente, en Witness μ representa E(X) y σ 2 representa 2 Var(X). Por tanto, si (μe , σe2 ) y (μw , σw ) son los parámetros en Excel y Witness respectivamente, la relación entre ellos es la siguiente: n μw = e μe w = ⇒ μ i=1 xi n 2 2 e2 = σw = e2μe +σe /2 (eσe − 1) ⇒ σ f (x) 1 σ = n i=1 2 w xi − μ n 3 2 σ = 0.8 0.6 1 2 σ =1 0.4 0.2 0 1 2 3 4 5 x Figura 3.8: función de densidad de LN(0, σ 2 ) Weibull Posibles aplicaciones Weibull(α, β) Tiempo para completar alguna tarea. Intervalo entre dos averı́as de un equipo. Tiempo de vida de un dispositivo. Modelos aproximados donde no hay muchos datos. Densidad f (x) = ⎧ −α α−1 −(x/β)α ⎪ e ⎪ ⎨αβ x si x > 0 ⎪ ⎪ ⎩0 resto de casos 75 Capı́tulo 3. REPASO DE ESTADÍSTICA Distribución F (x) = ⎧ −(x/β)α ⎪ ⎪ ⎨1 − e si x > 0 ⎪ ⎪ ⎩0 resto de casos Parámetros α>0,β>0 Rango [0, ∞] Media β Γ α Varianza β2 α Moda Estimadores 1 α 2Γ 2 α 2 1 1 − Γ α α ⎧ α−1 1/α ⎪ ⎪ β ⎪ α ⎨ si α ≥ 1 ⎪ ⎪ ⎪ ⎩0 si α < 1 Se deben cumplir las siguientes 2 ecuaciones1 : n α i=1 xi ln xi n α i=1 xi = β Comentarios 1 la n i=1 xiα − 1 = α n ln xi n i=1 1/α n 1. La distribución Weibull(2, β) también se conoce como distribución de Rayleigh, denotada por Rayleigh(β) ⎧ ⎪ ⎪ ∞ si α < 1 ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎨ 2. lı́m f (x) = β1 si α = 1 ⎪ x→∞ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎩0 si α > 1 primera de ellas debe resolverse numéricamente (ver [1], pág. 286) 76 Capı́tulo 3. REPASO DE ESTADÍSTICA f (x) 1.4 α=3 1.2 1 α=2 0.8 0.6 α=1 0.4 α = 0,5 0.2 0 0 1 2 3 4 5 x Figura 3.9: función de densidad de Weibull(α, 1). 3.3.2. Distribuciones discretas Bernoulli Posibles aplicaciones Bernoulli(p) Suceso aleatorio con dos posibles valores. Base de otras distribuciones discretas (binomial, geométrica, binomial negativa...) Probabilidad Distribución ⎧ ⎪ ⎪ 1 − p si x = 0 ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎨ p(x) = p si x = 1 ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎩0 resto de casos ⎧ ⎪ ⎪ 0 si x < 0 ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎨ F (x) = 1 − p si 0 ≤ x < 1 ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎩0 si x ≥ 1 Parámetros p ∈ (0, 1) Rango 0, 1 Media p 77 Capı́tulo 3. REPASO DE ESTADÍSTICA p(1 − p) Varianza ⎧ ⎪ ⎪ ⎪0 ⎪ ⎪ ⎪ ⎪ ⎪ ⎨ 0y1 ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎩1 Moda si p < 1 2 si p = 1 2 si p > 1 2 = x(n) p Estimadores 1. La distribución Bernoulli(p) representa un experimento con dos posibles resultados: éxito (1) o fracaso (0). A este tipo de experimentos se les conoce por ensayos de Bernoulli. Comentarios 2. Si X1 , X2 , · · · , Xt son t variables aleatorias independientes distribuidas según Bernoulli(p), entonces X1 + X2 + · · · + Xt se distribuye según una Binomial(t, p). 3. Si X representa el número de fracasos antes de observar el primer éxito en ensayo de Bernoulli, X geom(p). El numero de facrasos antes de observar el s-ésimo éxito se distribuye según una binomial negativa con parámetros s y p. p(x) p 1−p 0 1 x Figura 3.10: función de probabilidad de Bernoulli(p) con p > 0, 5. 78 Capı́tulo 3. REPASO DE ESTADÍSTICA Binomial Posibles aplicaciones Binomial(n, p) Número de fallos en un lote de piezas. Tamaño de un lote de piezas o de un grupo de personas. Cantidad de piezas de un pedido. Probabilidad p(x) = ⎧ t x t−x ⎪ ⎪ ⎨ x p (1 − p) si x ∈ 0, 1, · · · , t ⎪ ⎪ ⎩0 resto de casos t donde es el coeficiente binomial expresado por: x t t! = x x!(t − x)! Distribución ⎧ ⎪ ⎪ 0 si x < 0 ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎨ x t i 1−i F (x) = si 0 ≤ x ≤ t i=0 i p (1 − p) ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎩0 si x > t donde x representa el mayor número entero menor que x. Parámetros t entero positivo, p ∈ (0, 1) Rango 0, 1, · · · , t Media tp Varianza tp(1 − p) ⎧ ⎪ ⎪ ⎨p(t + 1) − 1 y p(t + 1) si p(t + 1) es entero Moda ⎪ ⎪ ⎩p(t + 1)resto de casos Estimadores = p x(n) t 79 Capı́tulo 3. REPASO DE ESTADÍSTICA 1. Si X1 , X2 , · · · , Xt son t variables aleatorias independientes distribuidas según Bernoulli(p), entonces X1 + X2 + · · · + Xt Binomial(t, p). Comentarios 2. Es simétrica si y solo si p = 1/2. 3. Binomial(1, p)=Bernoulli(p). p(x) 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 0 1 2 3 4 5 6 7 8 x Figura 3.11: función de probabilidad de Binomial(8, 0, 2). Geométrica Posibles aplicaciones geom(p) Número de piezas inspeccionadas antes de encontrar la primera defectuosa. Tamaño de un lote de piezas o de un grupo de personas. Cantidad de piezas de un pedido. Probabilidad p(x) = ⎧ x ⎪ ⎪ ⎨p(1 − p) si x ∈ 0, 1, · · · ⎪ ⎪ ⎩0 resto de casos 80 Capı́tulo 3. REPASO DE ESTADÍSTICA F (x) = Distribución ⎧ x+1 ⎪ ⎪ ⎨1 − (1 − p) si x ≥ 0 ⎪ ⎪ ⎩0 resto de casos Parámetros p ∈ (0, 1) Rango 0, 1, · · · Media 1−p p Varianza 1−p p2 Moda 0 Estimadores = p 1 x(n) + 1 1. Si X representa el número de fracasos antes de observar el primer éxito en ensayo de Bernoulli, X geom(p). Comentarios 2. Es el equivalente a una distribución exponencial en el caso de variables discretas. p(x) 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 0 1 2 3 4 5 6 7 Figura 3.12: función de probabilidad de geom(0,5). 8 x 81 Capı́tulo 3. REPASO DE ESTADÍSTICA Poisson Posibles aplicaciones Poisson(λ) Número de eventos que ocurren en u intervalo de tiempo cuando esos eventos suceden de uno en uno y con una tasa constante. Tamaño de un lote de piezas o de un grupo de personas. Cantidad de piezas de un pedido. Probabilidad Distribución p(x) = F (x) = ⎧ −λ x e λ ⎪ ⎪ ⎨ x! si x ∈ 0, 1, · · · ⎪ ⎪ ⎩0 resto de casos ⎧ ⎪ ⎪ ⎨0 si < 0 ⎪ ⎪ ⎩−λ x Parámetros λ>0 Rango 0, 1, · · · Media λ Varianza λ Moda Estimadores λi i=0 i! si x ≥ 0 ⎧ ⎪ ⎪ ⎨λ − 1 si λ es entero ⎪ ⎪ ⎩ λ resto de casos =x λ 82 Capı́tulo 3. REPASO DE ESTADÍSTICA 1. Si la distribución Poisson(λ) describe el número de eventos por unidad de tiempo, la distribución exp(1/λ) representa el tiempo que transcurre entre dos eventos sucesivos. Comentarios 2. Si X1 , X2 , · · · , Xn son variables aleatorias independientes distribuidas según Poisson(λi ) respectivamente, entonces X1 + X2 + · · · + Xn se distribuye según una Poisson(λ1 + λ2 + · · · + λn ). p(x) 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 0 1 2 3 4 5 6 7 8 x Figura 3.13: función de probabilidad de Poisson(0,2). 3.4. 3.4.1. Estimación de la media y de la varianza Estimación puntual En muchos casos, sobre todo cuando se estudian variables de salida, no es necesario conocer con profundidad como se comporta una variable aleatoria X y basta con obtener información al respecto de sus caracterı́sticas principales: la media y la varianza. En este apartado se explica como estimar estas propiedades de X. 83 Capı́tulo 3. REPASO DE ESTADÍSTICA 84 Se supone que se dispone de una muestra x1 , x2 , · · · , xn compuesta por valores independientes idénticamente distribuidos de X, donde μ y σ 2 son, respectivamente, la media y la varianza de la población de dicha variable. Para estimar μ se puede emplear la media de la muestra expresada por: n xi (3.22) μ = x(n) = i=1 n Estimación de la media de una variable aleatoria es un estimador centrado o insesgado de μ, es decir, independientedonde μ mente del tamaño de la muestra: =μ E(μ) La estimación de la varianza de X se puede realizar a partir de la varianza de la muestra: n 2 [xi − x(n)] 2 = S2 (n) = i=1 σ (3.23) n−1 Estimación de la varianza de una variable aleatoria que es un estimador centrado, es decir E(S2 (n)) = σ 2 . aun siendo un estimador centrado, en k muestras Por la propia definición de μ, toma k valores que, en general, son diferentes. En unos casos, los valores μ también es anteriores están más cerca de μ que en otros. Esto se debe a que μ una variable aleatoria, que depende de los valores observados en la muestra, cuya varianza Var[x(n)] se expresa por: ⎛ Var [x(n)] = ⎛ ⎞ ⎞ n n 1 1 Var ⎝ xi ⎠ = 2 Var ⎝ xi ⎠ n i=1 n i=1 = n 1 Var(xi ) n2 i=1 = 1 σ2 2 nσ = n2 n (porque xi son independientes) (3.24) Dado que E[x(n)] = μ, cuanto menor es el valor de su varianza mayor es su precisión como estimador, es decir, menor es la distancia esperada entre x(n) y el verdadero valor de μ. El valor de Var[x(n)] se puede estimar aplicando la ecuación 3.23 en la expresión anterior: [x(n)] = Var S 2 (n) = n n [xi − x(n)] n(n − 1) i=1 2 (3.25) Por todo ello, no se puede garantizar que la media de una muestra tome un valor cercano a μ. Lo que sı́ es cierto es que, en general, a medida que aumenta se acerque a μ. El método más el tamaño de la muestra es más probable que μ como estimador de μ es acompañar al habitual de evaluar la precisión de μ valor puntual de un rango de valores dentro del cual se encuentra μ con una probabilidad determinada. A ese rango de valores se le conoce por intervalo de confianza y se trata con más detalle en el siguiente apartado. Un estimador puntual no es suficiente... Capı́tulo 3. REPASO DE ESTADÍSTICA 3.4.2. Intervalos de confianza para la media Como se ha visto anteriormente, junto al valor del estimador de la media conviene dar un intervalo de valores entre los cuales se encuentre μ con una probabilidad alta, conocido como intervalo de confianza. A partir de ahora, cuando se habla de un intervalo de confianza para μ con un nivel de confianza 1 − α se hace referencia a un intervalo [a, b] que cumple que el 100 · (1 − α) % de los intervalos ası́ construidos contienen al verdadero valor de μ (a y b dependen de la muestra analizada). A continuación, se indica cómo construir un intervalo de confianza para el valor esperado de una variable aleatoria X a partir de un conjunto de n observaciones x1 , x2 , · · · , xn . Sean μ y σ 2 los valores de la media y la varianza de X respectivamente. Para ello se define una nueva variable aleatoria Zn mediante la siguiente expresión: Zn = |x(n) − μ| σ 2 /n (3.26) y se denota por Fn (z) a la función de distribución de dicha variable. A continuación se enuncia el teorema central del lı́mite: Teorema 1 Fn (z) → Φ(z) cuando n → ∞, independientemente de la distribución que siga la variable aleatoria X, donde Φ(z) es la función de distribución normal con parámetros μ = 0 y σ 2 , también conocida como normal estándar (ver apartado 3.3). Según este teorema, si n es lo “suficientemente” grande, Zn se aproxima a una distribución normal estándar. Pero la aplicación del teorema anterior para construir un intervalo para μ tiene un inconveniente: generalmente no se conoce σ 2 . Sin embargo, como S2 (n) converge a σ 2 a medida qu crece n, el teorema central del lı́mite sigue siendo cierto si en la expresión 3.26 se sustituye σ 2 por S2 (n) como sigue: |x(n) − μ| Zn = S2 (n)/n (3.27) La variable Zn ası́ definida sigue una distribución N(0,1) para valores elevados de n. Como se conoce su distribución, se puede construir un intervalo [a, b] donde P (a ≤ z ≤ b) = 1 − α. Si el intervalo [a, b] se construye centrado en x(n), entonces a = −z1−α/2 y b = z1+α/2 que tienen el siguiente significado (ver figura 3.14): P (Z < −z1−α/2 ) = 1 − α/2 P (Z > z1−α/2 ) = 1 − α/2 85 Capı́tulo 3. REPASO DE ESTADÍSTICA 86 f (x) P (z ∈ área sombreada) = 1 − α −z1−α/2 x(n) x z1−α/2 Figura 3.14: función de densidad normal estándar Estos valores se pueden consultar en la tabla 1. Para valores altos de n se cumple la siguiente expresión: Cambiar tabla 1 por un comando ref. PENDIENTE x(n)−μ P −z1−α/2 ≤ √ 2 ≤ z1−α/2 S (n)/n ⎛ = P ⎝x(n) − z1−α/2 ≈ 1−α S 2 (n) ≤ μ ≤ x(n) + z1−α/2 n ⎞ S 2 (n) ⎠ n (3.28) Por lo tanto, para valores altos de n, con una probabilidad de (1−α), μ esté pertenecerá al intervalo: S 2 (n) (3.29) x(n) ± z1−α/2 n El intervalo de confianza para μ = E(X) se construye a partir de la expresión anterior: ⎡ ⎤ 2 (n) 2 (n) S S ⎣x(n) − z1−α/2 ⎦ , x(n) + z1−α/2 (3.30) n n Su interpretación es la siguiente: si se dispone un número elevado de muestras de n observaciones, con n lo “suficientemente”grande, construyendo un número elevado de intervalos de confianza con un nivel (1 − α) para cada una de estas muestras, la proporción de intervalos que contienen a μ es aproximadamente (1 − α). Capı́tulo 3. REPASO DE ESTADÍSTICA El problema de las expresiones anteriores es que se considera que n es “suficientemente” grande. Normalmente, n toma un valor demasiado pequeño para aplicar el teorema central del lı́mite. Si se considera que X sigue una distribución normal, entonces la variable definida por la siguiente expresión 87 ¿Cuándo n es “suficientemente” grande? |x(n) − μ| S2 (n)/n se distribuye según una distribución t con n − 1 grados de libertad y se puede calcular un intervalo para μ de la siguiente manera: x(n) ± tn−1,1−α/2 S 2 (n) n (3.31) donde el valor tn−1,1−α/2 se puede consultar en la tabla 2. En general, se considera que para n ≥ 30 se puede aplicar el teorema central del lı́mite. Eliminar tabla 2 y poner comando ref PENDIENTE En realidad, lo más frecuente es que X no se distribuya normalmente. En estos casos la afirmación de que el intervalo dado por la expresión 3.31 cubre el 100 · (1 − α) % de las casos se hace aún más aproximada, sobre todo si X sigue una distribución asimétrica. A pesar de ello, como tn−1,1−α/2 > z1−α/2 , el intervalo proporcionado por la expresión 3.31 es mayor que el que se obtiene mediante 3.29, por lo que, generalmente, es más probable que cubra el nivel de confianza (1 − α) y se puede considerar como válido. Por este motivo se recomienda emplear la expresión 3.31 para construir el intervalo de confianza para la media de una variable aleatoria. En el capı́tulo 6 se aplica este procedimiento de manera práctica mediante el cálculo de varios intervalos de confianza para anlalizar variables de salida. ¿Y si X no sigue una distribución normal? 3.5. Generación de valores de variables aleatorias Los sistemas estudiados mediante simulación, tı́picamente, incluyen fenómenos de carácter estocástico. Como es necesario reproducir el comportamiento de esos fenómenos, es necesario generar valores que se comoporten de forma consistente con dicho comportamiento. Por ejemplo, si se conoce que el intervalo entre la llegada de dos clientes a una gasolinera sigue una exponencia de media 52 segundos, es necesario generar valores que se comorten de esa manera. Una manera de obtener esos valroes es, primero, generar números aleatorios entre 0 y 1 (U (0, 1)) y, con ellos, generar los valores deseados. A continuación se presenta una forma de obtener valores de variables aleatorias. Capı́tulo 3. REPASO DE ESTADÍSTICA 3.5.1. 88 Generación de números aleatorios para U(0,1) Existen numerosos métodos para generar valores de una variable aleatoria. La mayorı́a de ellos se basan en la utilización de números aleatorios, definidos como valores independientes de una muestra uniforme continua en el intervalo (0,1). Si se considera una muestra de n números aleatorios, se denota por ri el i-ésimo de estos valores. De su definición se deducen las siguientes propiedades: La probabilidad de que ri tome un valor concreto es independiente de los valores que toma en el resto de la muestra. Todos los puntos tienen la misma probabilidad de aparecer. Si se considera una muestra de N observaciones y se divide el intervalo (0,1) en n subintervalos de igual longitud, el número esperado de observaciones en cada intervalo es N/n. En los sistemas reales, los números aleatorios aparecen de manera natural y se pueden aprovechar esos fenómenos para conseguir secuencias de valores ri . Por ejemplo, las primeras tablas de números aleatorios construidas en España se obtuvieron a partir de la secuencia de números premiados en la loterı́a nacional. Otra posibilidad consiste en generarlos con algún método que no es, de hecho, aleatorio. En la práctica, existen diversas técnicas para obtener secuencias de valores ri . A diferencia de lo que ocurre en la naturaleza, estos números no son aleatorios ya que al conocerse el método mediante el cual son generados, la secuencia está perfectamente determinada. No obstante, se pueden obtener valores que cumplen las principales propiedades de los números aleatorios: uniformidad e independencia. Por ello, son conocidos como números pseudo-aleatorios y, a efectos prácticos, se pueden considerar números aleatorios (en adelante, salvo especificación previa, se consideran aleatorios). Números aleatorios y pseudoaleatorios Por lo tanto, una alternativa a la generación de números aleatorios es construir tablas de valores ri que se almacenen en el ordenador. El principal inconveniente es que, debido a la gran cantidad de valores necesarios, ocuparı́an mucha memoria de almacenamiento (por ejemplo, Witness incluye cerca de 3 × 1057 números aleatorios). La generación de números aleatorios resuelve este problema ya que, en la mayorı́a de los casos, se generan mediante algoritmos sencillos que permiten generar números aleatorios cuando son necesarios, con un uso mucho más eficiente de los recursos de computación. Si existen en la naturaleza, ¿por qué generarlos? Capı́tulo 3. REPASO DE ESTADÍSTICA Uno de los métodos más utilizados para la generación de números aleatorios es el llamado de congruencia lineal. Con este método se obtiene una muestra de números aleatorios en el intervalo de números naturales [0, m − 1] mediante un cálculo recurrente, en el cual un nuevo número aleatorio se obtiene a partir del último generado aplicando la siguiente expresión: zi = (a · zi−1 + b)mod(m) donde el valor inicial z0 se denomina semilla, a es la constante multiplicativa, c es el incremento, y m es el módulo2 , todos ellos enteros no negativos. El i-ésimo número aleatorio entre 0 y 1 se obtiene a partir de zi de la siguiente manera: zi ri = m Los números aleatorios ası́ generados tienen las siguientes propiedades: La precisión de ri está limitada por 1/m, es decir, los posibles valores de ri son: 0/m, 1/m, · · · , m − 1/m. El número de valores diferentes que se pueden generar es finito y, como máximo, igual al valor del parámetro m. Ejemplo 1.1: generación de números aleatorios mediante el método de congruencia lineal con z0 = 53, a = 13, b = 38 y m = 100. z1 = (a · z0 + b)mod(m) = (13 · 53 + 38)mod(100) = 727mod(100) = 27 r1 = z1 100 = 27 100 = 0, 27 z2 = (13 · 27 + 31)mod(100) = 89 r2 = 89 100 = 0, 89 vdots Cabe destacar que la selección de los parámetros del generador afecta considerablemente a las propiedades ideales y a la longitud del ciclo. Para obtener más información acerca de el generador congruente lineal o de otros métodos de generación de números aleatorios se recomienda consultar [1]. 2 La operación (x)mod(y) da como resultado el resto de la división de x entre y. 89 Método de congruencia lineal Capı́tulo 3. REPASO DE ESTADÍSTICA 90 Los programas de simulación incorporan o bien algoritmos para generar números aleatorios, o listas de estos números. Por ejemplo, el paquete de simulación Witness no genera valores ri cuando los necesita, si no que incorpora una lista de números aleatorios organizados en series y subseries (para más información acerca de este tema se recomienda consultar la ayuda de Witness). Números aleatorios en los programas de simulación Revisar si esto es cierto o no PENDIENTE 3.5.2. Generación de valores de variables aleatorias Hasta ahora se ha visto un método para generar valores de una variable aleatoria que se distribuye uniformemente en el intervalo (0,1). Sin embargo, en general, las variables aleatorias necesarias para construir un modelo de simulación tienen distribuciones diferentes de la uniforme. A continuación, se explica uno de los numerosos métodos existentes para generar valores de una variable aleatoria, cuya función de distribución es conocida: el método de la transformada inversa. ¿Cómo se utilizan los números aleatorios? La idea en la que se fundamenta el método de la transformada inversa es la siguiente: generar un número aleatorio ri entre 0 y 1, y evaluar la inversa de la función de distribución, F (x), en ese punto. La figura 3.15 ilustra gráficamente como se aplica el método. Se puede demostrar que los valores generados de esta manera se distribuyen según F (x) y que si los valores ri son independientes entre sı́, también lo son los valores xi . Los números aleatorios introducen la aleatoriedad que permite imitar el comportamiento estocástico de ciertos fenómenos, mientras que mediante el método de la transformada inversa se consigue que los valores generados se distribuyan según una función concreta. Método de la transformada inversa En el cuadro 3.12 se indica cómo aplicar el método anterior a varias funciones de distribución utilizadas frecuentemente en simulación. En dichas expresiones, r indica siempre un número aleatorio (U (0, 1)), y x el valor de la variable aleatoria que se desea generar. Aplicación para algunas funciones Los paquetes de simulación permiten controlar la generación de números aleatorios para garantizar que los valores generados sean independientes. En particular, Witness permite al analista elegir qué subserie de números aleatorios se utilizan en cada variable. Mediante el control de la generación de números aleatorios es posible obtener mejores resultados computacionales, como se explica en el capı́tulo 9 dedicado a la presentación de técncias de reducción de la varianza. Programas de simulación Capı́tulo 3. REPASO DE ESTADÍSTICA F (x) 1 0.8 ri 0.6 0.4 0.2 0 0 1 2 xi 3 4 5 x Figura 3.15: método de la transformada inversa para una función continua 91 Capı́tulo 3. REPASO DE ESTADÍSTICA U(a,b) x = a + (b − a)r Exp(β) x = −β ln r 1. v1 = 2r1 − 1 v2 = 2r2 − 1 2. w = v12 + v22 3. Si w < 1 volver al paso 1. Si w ≥ 1: N(0,1) y = −2 ln w/w x1 = v1 y x2 = v2 y 4. Si N(μ, σ 2 ), hacer: x = μ + xσ weibull(α, β) x = β(− ln r )1/α x = xj tal que se cumpla la siguiente expresión: Funciones discretas j−1 i=1 p(xi ) ≤ r ≤ j p(xi ) i=1 Cuadro 3.12: generación de variables aleatorias de varias funciones de distribución mediante el método de la transformada inversa. 92 Capı́tulo 4 ANÁLISIS DE DATOS DE ENTRADA METER OTRAS FORMAS DE ALIMENTAR EL MODELO EN WITNESS: .PAR, DISTRIBUCIONES 4.1. Introducción Uno de los elementos de los que depende la calidad de un estudio de simulación es la calidad de los datos con los que se alimenta dicho modelo. Como se explicó en el apartado 1.5, las variables de entrada son aquellos datos de entrada sobre los que el decisor no tiene control. Sin embargo, las variables de entrada no pueden tomar cualquier valor. Para representara de forma correcta el comportamiento del sistema, conviene caracterizar bien cómo se comportan las variables de entrada y generar valores de acuerdo con esa caracterización Por ejemplo, si en el resideño de la distribución en planta de un taller no se disonen de datos correctos respecto a la composición de la demanda de ese taller, el resultado puede ser muy poco válido, bien infradimensionando o bien sobredimensionando las instalaciones. En los sistema objetos de estudio, genralmente no se conoce en términos analı́ticos o precisos el comportamiento de las variables de entrada. En ocasiones sı́ se dispone de datos históricos en más o menos cantidad (no ası́ si el sistema no existe). A partir de los datos históricos o de alguna otra manera conviene establecer de forma adecuada el comportamiento de las variables de entrada. En este capı́tulo se muestran diferentes formas de alimentar un modelo de simulación y se presentan técnicas para obtener distribuciones que permitan alimentar bien el modelo. Cuando se dispone de datos históricos del sistema estudiado, existen tres posibles maneras de alimentar el modelo de simulación corresondiente: con los propios datos históricos, con una función de distribución empı́rica o con una función de distribución teórica. 1. La primera posibilidad consiste en alimentar al modelo con los datos históricos tal y como se han recogido. Por ejemplo, si se estudia el modelo de un muelle de descarga de camiones, en la simulación se utilizan Formas de alimentar un modelo de simulación Capı́tulo 4. ANÁLISIS DE DATOS DE ENTRADA los valores observados correspondientes a la operación de descarga, de manera que cada operación de descarga tiene una duración idéntica a una operación real que tuvo lugar en algún momento. Figura 4.1: alimentación del modelo mediante datos históricos 2. Una segunda alternativa consiste en construir una distribución empı́rica a partir de los datos históricos y, con ella, generar valores de la variable de entrada. Para ello, se divide el espacio muestral en intervalos (o valores puntuales en caso de las variables discretas) y se asigna a cada uno de ellos una probabilidad proporcional a la frecuencia con la que aparecen en la muestra histórica. A diferencia de la alternativa anterior, esta permite obtener un número infinito de valores comprendidos entre el máximo y el mı́nimo de los valores históricos. Figura 4.2: alimentación del modelo con datos obtenidos de una distribución empı́rica 3. La última alternativa consiste en obtener una distribución teórica, mediante un test de ajuste, que caracterice de forma aceptable el comportamiento de la variable de entrada. Por ejemplo, dada una muestra del número de clientes que llegan a una tienda en una hora, se comprueba si el número de clientes que llegan en cada intervalo de tiempo se puede caracterizar suficientemente bien mediante una distribución de Poisson. Figura 4.3: alimentación del modelo con datos obtenidos mediante una distribución teórica La primera alternativa no es muy interesante desde el punto de vista de la explotación del modelo de simulación ya que presenta las siguientes desventajas. Se dispone de un número limitado de valores para utilizar durante la ejecución el modelo, por lo que se podrán obtener un número limitado 94 Capı́tulo 4. ANÁLISIS DE DATOS DE ENTRADA 95 de valores de salida que, además, sólo representan algunas situaciones de todas las posibles. Por otro lado, ya se conoce la respuesta del sistema en esos casos debido a que han ocurrido en la realidad. Por lo tanto, en el mejor de los casos obtendremos un conjunto de resultados parecidos a lo que sucedió en el sistema real. Sin embargo, los datos históricos son muy valiosos para la validación del modelo, es decir, para confirmar que el modelo representa de forma adecuada el sistema estudiado, contrastando los resultados obtenidos en la simulación con lo ocurrido en el sistema real. En el caso de formar una distribución empı́rica con las observaciones se pueden generar todos los valores entre los el menor y el mayor valor. Por lo tanto, en términos de su utilidad para la explotación del modelo no presentan los inconvenientes que aparecen con la alimentación del modelo con los datos históricos. Las principales desventajas de este método son dos. Distribución empı́rica Debido a la aleatoriedad del fenómeno observado, la muestra puede presentar irregularidades, sobre todo si se han recogido pocos datos. Al emplear una distribución empı́rica solo se pueden generar valores dentro del rango de los datos recogidos, y quizá la probabilidad de obtener valores fuera de ese rango no sea cero. El uso de una función teórica presenta ventajas sobre el uso de una distribución empı́rica, sobre todo si el número de datos no es muy elevado. Distribución teórica Se obtiene una función consistente en todo el rango, sin posibles irregularidades. Mediante distribuciones teóricas se pueden generar valores fuera de los lı́mites de los datos observados durante el periodo de muestreo. Es más compacta y fácilmente modificable en el caso de querer estudiar el efecto de cambios en las condiciones de entrada. Por todo lo anterior, esta última suele ser la mejor opción y sólo en caso de no encontrar una distribución teórica que se ajuste bien a los datos históricos se justifica el uso de funciones empı́ricas. A continuación, se muestra cómo alimentar con distribuciones empı́ricas un modelo de simulación construido con Witness. A continuación se presenta el proceso de ajuste de los datos históricos a distribuciones teóricas. En la sección 4.3 se indican los pasos del ajuste y en un cuadro se resume el proceso. En la sección ?? se explica como hacer este ajuste usando una hoja de cálculo mediante un ejemplo práctico. Para finalizar, en el último apartado se resuelve el mismo problema usando una aplicación especı́fica. Estructura del capı́tulo Capı́tulo 4. ANÁLISIS DE DATOS DE ENTRADA fr elativa 0.4 0.3 0.2 0.1 0 0 2.5 5 7.5 x 7.5 x (a) Distribución empı́rica fr elativa 0.4 0.3 0.2 0.1 0 0 2.5 5 (b) Distribución teórica Figura 4.4: representación gráfica para una muestra de 50 datos de la función empı́rica y de una posible función teórica. 4.2. Ejemplo 1. Distribuciones empı́ricas en Witness A partir de los datos correspondientes al tiempo entre llegadas del ejemplo 4.2 del capitulo 1, construir una función de distribución empı́rica en Witness. Tiempo entre llegadas (dı́as) % casos observados 2 5 3 13 4 17 5 27 6 23 7 10 8 5 96 Capı́tulo 4. ANÁLISIS DE DATOS DE ENTRADA Witness dispone de un tipo de elemento, llamado distribución para introducir variables aleatorias empı́ricas. Se puede crear un elemento de tipo con la opción Definir (como en la figura 4.5). Existen diferentes tipos de distribuciones, según devuelva un número entero, un número real o un nombre y según sea discreta, continua o se defina de acuerdo a una curva de probabilidad acumulada. En este caso, se trata de una distribución discreta que devuelve valores enteros. 97 Elemento Distribución Figura 4.5: definición de la distribución TiempoEntreCamiones. Esta función se puede configurar introduciendo los datos correspondientes a las frecuencia obsevada para cada uno de los valores de la variable “tiempo entre camiones”. Ası́, se pueden introducir todos los pares Valor-Peso, 2 − 5, 3 − 13, ..., 8 − 5. La suma de todos los pesos no tiene que ser necesariamente 100. La figura 4.6 muestra cómo el aspecto de la ventana de configuración tras introducir todos los datos. Configuración Capı́tulo 4. ANÁLISIS DE DATOS DE ENTRADA 98 Figura 4.6: configuración de la distribución TiempoEntreCamiones. Una vez definida y configurada la distribución, se puede utilizar en el modelo, de la misma manera que, por ejemplo, se utiliza la distribución predefinida ((NEGEXP(10))). Como se ha comentado, tal y como se ha definido la distribución no es posible obtener valores menores que 2 ni mayores que 8. Por otro lado, modificar una distribución empı́rica exige un poco más de trabajo que modificar una función teórica. Por eso, en la medida de lo posible, es preferible utilizar distribuciones teóricas, para lo cual es necesario realizar un test de ajuste a partir de los datos históricos, tal y como se indica en el próximo epı́grafe. 4.3. Utilización Tests de ajuste Tal y como se ha discutido, cuando es posible, conviene alimentar el modelo con distribuciones teóricas. Para ello, es necesario disponer de un conjunto de n datos históricos, x1 , x2 , · · · , xn correspondientes a una variable de entrada, X. El objetivo es ajustar el comportamiento de X a una función de densidad (o probabilidad en el caso de que X sea discreta) poder generar valores con los que ejecutar el modelo. Para ello, en primer lugar se estudia la manera en la que se distribuyen los valores de la muestra para establecer una hipótesis como la siguiente: H0 : H1 : La variable X se ajusta a la distribución de probabilidad f (x) con parámetros α, β, · · · . La variable X no se ajusta a la distribución anterior. Contraste de hipótesis Capı́tulo 4. ANÁLISIS DE DATOS DE ENTRADA El siguiente paso es comprobar, mediante un test de ajuste, si la hipótesis H0 es cierta. Si no se puede demostrar que sea falsa, se acepta como cierta. Para realizar estos tests se establece un nivel de confianza, α, que representa la probabilidad de rechazar H0 siendo cierta. A continuación se presenta de forma detallada todo el procedimiento. 99 Capı́tulo 4. ANÁLISIS DE DATOS DE ENTRADA 1. Comprobar la independencia de los datos históricos. Se agrupan los datos en parejas (xi , xi+1 ) y se representan en el espacio XY. Se puede apreciar gráficamente si los datos están correlacionados (ver figura 4.7). 2. Identificar la distribución. Se divide el rango de las observaciones en k intervalos √ de igual amplitud (se recomienda k > n). A partir de esta división se construye un histograma donde la altura de cada barra representa la frecuencia relativa con la que aparecen los valores de la muestra en ese intervalo. A partir del aspecto de esta gráfica se eligen las posibles distribuciones para el ajuste. 3. Estimar los parámetros. Para ello se aconseja emplear los estimadores máximo verosı́miles. En el capı́tulo dedicado a repaso de estadı́stica se detalla ampliamente como llevar a cabo este paso para cada distribución (ver 3.2.5). 4. Formular la hipótesis del test. Se formula la hipótesis nula conforme a la elección de la distribución y la estimación de sus parámetros. Test de la χ 2 Test de Kolmogorov-Smirnov 4. Dividir el rango de las observaciones en k intervalos. Es aconsejable que estos intervalos sean equiprobables para la función f (x) considerada. En este caso la probabilidad de que una valor de la variable X pertenezca a cada intervalo es p = 1/k y se recomienda tomar k tal que np > 5 5. Construir el estadı́stico: χ2 = k (Ni − npi )2 npi i=1 (4.1) donde Nj es el número de observaciones pertenecientes al intervalo i-ésimo y pi es la probabilidad (según la función teórica elegida) de que un valor pertenezca a ese mismo intervalo. 6. Aplicar el criterio de decisión. No se rechaza H0 si: 2 χ 2 < χk−m−1,1−α 2 donde χk−m−1,1−α es el valor obtenido en la tabla 3, α el nivel de confianza y m representa el número de parámetros estimados. 4. Ordenar las observaciones en orden creciente (asignando a x(1) el menor valor de xi y a x(n) el mayor). 5. Calcular la función de distribución empı́rica de la muestra, Fn (x), que se define como: ⎧ ⎪ ⎪ 0, si x ≤ x(1) , ⎪ ⎨ Fn (x) = ni , si x(i) ≤ x ≤ x(i+1) , (4.2) ⎪ ⎪ ⎪ ⎩1, si x ≥ X (n) 6. Calcular para cada observación x(i) : Di = máx % % %& $% % % % % %Fn (X(i−1) ) − F̂ (X(i) )% , %Fn (X(i) ) − F̂ (X(i) )% 7. Aplicar el criterio de decisión. No se rechaza H0 si: D(α, n) ≥ máx Di donde D(α, n) es un valor obtenido en la tabla 4 y α el nivel de confianza. 100 Capı́tulo 4. ANÁLISIS DE DATOS DE ENTRADA Cuáles son las tabla 3 y 4 (a la que se refiere el cuadro resumen del test) Figura 4.7: diagrama de dispersión de una muestra no correlacionada y de otra correlacionada linealmente 4.4. Ejemplo 2 En este apartado se presentan un ejemplo en el que se emplea una hoja de cálculo para reproducir todos los cálculos resumidos anteriormente. En este apartado, se presenta el análisis de un conjunto de datos históricos, y se realizan los dos tests de ajuste presentados haciendo uso de Excel para reproducir los cálculos. Para seguir la explicación se recomienda trabajar sobre los siguientes archivos: Ejemplo2-1.xls, que contiene los datos de partida y las hojas necesarias para reproducir todos los cálculos. Ejemplo2-1 solucion.xls, donde están todos cálculos ya hechos. 4.4.0.1. Primer paso: comprobación de la independencia En la hoja ((Datos)) del archivo Ejemplo2-1.xls se muestran los valores de las 500 observaciones que se analizan en este ejemplo. De acuerdo con el cuadro de la sección 4.3, en primer lugar, hay que comprobar la independencia de las observaciones. Para ello hay que hacer lo siguiente. 1. Agrupar los valores en parejas (xi , xi+1 ) para formar puntos en el espacio XY, de manera que queden n − 1 puntos (x1 , x2 ), (x2 , x3 ), · · · , (xn−1 , xn ). Para ello, lo que hay que hacer es copiar en dos columnas adyacentes los valores observados de tal modo que cada xi tenga a su derecha el valor xi+1 . 101 PENDIENTE Capı́tulo 4. ANÁLISIS DE DATOS DE ENTRADA 2. Representar gráficamente estos puntos para decidir, de manera visual, si la muestra está compuesta por datos independientes. Para ello, es necesario crear un gráfico en Excel: ( Gráfico / Tipo de gráfico / XY (Dispersión) ). En la figura 4.8 se muestra el resultado de este proceso. No se observa que los puntos se agrupen de acuerdo con ninguna relación particular, y se puede admitir que los datos de la muestra son independientes. xi+1 200 150 100 50 0 0 50 100 150 200 xi Figura 4.8: ejemplo de gráfico de dispersión XY 4.4.0.2. Segundo paso: identificación de la función de probabilidad A continuación hay que identificar, mediante un histograma, a qué posibles funciones pueden asociarse los datos de la muestra. Para construir dicho histograma hay que agrupar las observaciones en k intervalos de igual amplitud. √ Una orientación a la hora de elegir el k es escoger un valor cercano a n. En √ este caso se ha elegido dividir en 20 intervalos ( 500 = 22, 36) cuya longitud es: 172, 93 − 0, 01 = 8, 646 20 Para completar el histograma se recomienda seguir los siguientes pasos: 1. Ordenar los datos en orden creciente y copiarlos en la hoja ((Identificación función)). 2. Encontrar el número de datos de la muestra que pertenecen a cada intervalo. Mediante la función matricial de Excel ((FRECUENCIA)) (ver cuadro 102 Capı́tulo 4. ANÁLISIS DE DATOS DE ENTRADA 4.4.0.2 o la ayuda de Excel) se obtiene el número de valores pertenecientes a cada intervalo. Para obtener la frecuencia relativa se divide cada uno de estos valores entre el tamaño de la muestra, n = 500. 3. Representar las frecuencias relativas en un histograma como el de la figura 4.9 ( Gráfico / Tipo de gráfico / Columnas ). Figura 4.9: tabla de frecuencias e histograma en Excel La forma del histograma sugiere como variables potencialmente interesantes, entre otras, una distribución lognormal o una exponencial. En adelante se analizan cada una de estas posibilidades, comparando los resultados para ambos casos. 103 Capı́tulo 4. ANÁLISIS DE DATOS DE ENTRADA FUNCIÓN FRECUENCIA EN EXCEL La función ((FRECUENCIA(datos;grupos))) calcula la frecuencia con la que se repiten los valores de un rango en un conjunto de datos. Se trata de una función matricial, ya que da como resultado un conjunto de valores en forma de matriz. Por lo que su uso es diferente al de una función normal. Para introducirla en una celda, hay que seguir los siguientes pasos. 1. Seleccionar las celdas donde se quieren obtener las frecuencias observadas para cada intervalo. 2. Introducir ((=frecuencia()). 3. Seleccionar las celdas donde se encuentran los datos de la muestra. 4. Introducir ((;)). 5. Seleccionar las celdas donde se encuentran los lı́mites superiores de los intervalos. 6. Mantener pulsadas las teclas Ctrl+Mayúsculas+Enter. Como resultado se obtienen las frecuencias absolutas con las que se repiten las observaciones en cada rango de valores. Para este caso concreto, la expresión es ((FRECUENCIA(B2:B501;F6:F25))). 4.4.0.3. Tercer paso: estimación de parámetros Dependiendo de la función considerada, se deben estimar parámetros diferentes. En la sección 3.3 pueden encontrarse estimadores máximo verosı́miles para las distribuciones teóricas más comunes. En este caso, los estimadores son: Lognormal (LN(μ, σ 2 )) n σˆ2 = ln xi n i=1 μ̂ = n i=1 Exponencial (exp(β)) β̂ = x(n) ln xi − μ̂ 2 n Cuadro 4.1: estimadores MLE para lognormal y exponencial Mediante estas expresiones se obtienen los paráemtros corresponeientes a la lognormal, μ̂ = 2, 62 y σˆ2 = 1, 89, y el correspondiente a la exponencial β̂ = 26, 09. 4.4.0.4. Cuarto Paso: test de ajuste Test χ 2 104 Capı́tulo 4. ANÁLISIS DE DATOS DE ENTRADA En primer lugar se realiza el test χ 2 para la hipótesis lognormal y después para la exponencial. En el primer caso, la formulación de la hipótesis es la siguiente: H0 : La variable X se ajusta a la distribución de probabilidad LN(2, 62, 1, 89). H1 : La variable X no se ajusta a la hipótesis anterior. A continuación se presenta como realizar el contraste χ 2 de H0 paso a paso: 1. Calcular la amplitud de los intervalos. Se divide la función en k intervalos equiprobables y para cumplir la recomendación np > 5 se toman 20 intervalos (p = 1/k = 0, 05 ⇒ np = 500 · 0, 05 = 25 > 5). Los intervalos se constituyen de tal manera que la probabilidad de que una variable que se distribuya según una LN(2, 62, 1, 89) tome valor dentro de él sea p = 1/20 = 0, 05. 2. Calcular el extremo superior e inferior de cada intervalo. Para cada intervalo i hay que evaluar la inversa de la función de distribución en x = 0, 05 · (i − 1) y en x = 0, 05 · i. La inversa de una distribución de probabilidad se obtiene despejando la variable x en la función de distribución: y = F (x) ⇒ x = F −1 (y) En el caso de la lognormal, no se puede despejar directamente debido a la forma de la función de distribución. Excel dispone de la función ((DISTR.LOG.INV(probabilidad;media;desv-estándar))) que proporciona directamente el valor de x tal que P (X < x) = probabilidad. La expresión para calcular los extremos del intervalo i es la siguiente: lı́mite inferior → DISTR.LOG.INV(0,05 * (i-1) ;2,62;RAIZ(1,89)) lı́mite superior → DISTR.LOG.INV(0,05 * i ;2,62;RAIZ(1,89)) Procediendo de este modo se obtienen unos intervalos como los del cuadro 4.2. 3. Calcular el número de observaciones pertenecientes a cada intervalo. Se lleva a cabo aplicando de nuevo la función matricial ((FRECUENCIA)), esta vez con los lı́mites superiores obtenidos en el paso anterior. El resultado se muestra en la columna Ni del cuadro 4.1. 4. Calcular el estadı́stico χ 2 mediante la ecuación 4.1. 2 para α = 0,9, α = 0,95, y α = 0,99. 5. Obtener el nivel crı́tico χk−m−1,1−α Para ello se emplea la función de Excel ((PRUEBA.CHI.INV(probabilidad ; grados-de-libertad))), donde probabilidad toma el valor 1 − α (nótese que el número de grados de libertad es 20-1-1=18). 105 χ 2 , lognormal Capı́tulo 4. ANÁLISIS DE DATOS DE ENTRADA Intervalo Limite inferior Limite superior Frecuencia observada (Ni ) Frecuencia esperada (npi ) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 1,43 2,36 3,30 4,32 5,43 6,67 8,08 9,69 11,55 13,72 16,31 19,44 23,31 28,22 34,68 43,64 57,05 79,90 131,66 ∞ 30 21 18 16 25 20 22 15 21 20 37 27 27 33 32 38 40 30 25 3 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 0,00 1,43 2,36 3,30 4,32 5,43 6,67 8,08 9,69 11,55 13,72 16,31 19,44 23,31 28,22 34,68 43,64 57,05 79,90 131,66 106 (Ni − npi )2 npi 1,00 0,64 1,96 3,24 0,00 1,00 0,36 4,00 0,64 1,00 5,76 0,16 0,16 2,56 1,96 6,76 9,00 1,00 0,00 19,36 χ 2 = 60, 56 Cuadro 4.2: intervalos equiprobables, frecuencias y estadı́stico hipótesis lognormal Comparando el estadı́stico experimental con el nivel crı́tico (cuadro 4.4) se rechaza la hipótesis de que la muestra siga una distribución lognormal con parámetros μ̂ = 2, 62 y σ̂ 2 = 1, 89 con un nivel de confianza 90 %. Alternativamente, se puden formular las hipótesis correspondientes a la distribución exponencial: H0 : La variable X se ajusta a la distribución de probabilidad Exp(26, 09). H1 : La variable X no se ajusta a la hipótesis anterior. Al contrario que en el caso anterior, la inversa de la exponencial se puede despejar directamente y no existe una función en Excel para calcularla. Por tanto, para obtener los extremos de los intervalos debe introducirse la expresión matemática que se obtiene despejando de su distribución de distribución: y = F (x) = ⎧ ⎨1 − e−x/β si x ≥ 0 ⎩0 otros casos χ 2 , exponencial Capı́tulo 4. ANÁLISIS DE DATOS DE ENTRADA x = F −1 (y) = −β ln(1 − p) (4.3) donde p es el valor en el que se evalúa dicha función. Procediendo como en el caso anterior se obtiene un cuadro como 4.3: Intervalo Limite inferior Limite superior Frecuencia observada (Ni ) Frecuencia esperada (npi ) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 1,33 2,74 4,24 5,82 7,50 9,30 11,23 13,32 15,59 18,08 20,83 23,90 27,38 31,41 36,16 41,99 49,49 60,07 78,15 ∞ 28 31 24 35 28 19 18 21 34 24 22 20 24 15 29 21 31 24 24 28 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 0,00 1,33 2,74 4,24 5,82 7,50 9,30 11,23 13,32 15,59 18,08 20,83 23,90 27,38 31,41 36,16 41,99 49,49 60,07 78,15 (Ni − npi )2 npi 0,36 1,44 0,04 4,00 0,36 1,44 1,96 0,64 3,24 0,04 0,36 1,00 0,04 4,00 0,64 0,64 1,44 0,04 0,04 0,36 χ 2 = 22, 08 Cuadro 4.3: intervalos equiprobables, frecuencias y estadı́stico hipótesis exponencial Como el estadı́stico χ 2 es menor que χ18,0,99 (cuadro 4.4), se deduce que la hipótesis de que la muestra sigue una distribución exponencial con β̂ = 26, 09 no se puede rechazar al nivel 99 % por lo que, según este test de ajuste, esta distribución podrı́a ser suficientemente buena para alimentar al modelo de simulación al que se refieren los datos históricos disponibles. 107 Capı́tulo 4. ANÁLISIS DE DATOS DE ENTRADA χ18,0,9 χ18,0,95 χ18,0,99 25,989 28,869 34,805 Lognormal χ 2 = 127, 6 RECHAZADA RECHAZADA RECHAZADA 108 Exponencial χ 2 = 22, 08 ACEPTADA ACEPTADA ACEPTADA Cuadro 4.4: criterio de decisión del test χ 2 . Test de Kolmogorov-Smirnov Igual que con es test anterior, en primer lugar se realiza el contraste correspondiente a la distribución lognormal. El procedimiento para realizar el test de Kolmogorov-Smirnov es el que sigue. K-S, lognormal 1. Ordenar los valores de la muestra en orden creciente y copiarlos en el lugar correspondiente de la hoja ((Test K-S)). A partir de ahora, x(1) es el primero de estos valores y x(n) el último. 2. Calcular la función Fn (x) en cada punto x(i) . En la celda i-ésima de la columna Fn (x) se calcula el valor de esta función para x(i) ) mediante la expresión: i Fn = 500 3. Obtener Di para cada valor xi . Para ello, se calculan en cada x(i) las dos siguientes expresiones1 : % % a) %Fn (x(i−1) ) − F (x(i) )% % % b) %Fn (x(i) ) − F (x(i) )% y en cada punto Di toma el mayor de los valores anteriores. 4. Obtener el valor del estadı́stico de contraste D(α, n) de la tabla 4. En el cuadro 4.5 se muestran los valores de D(0, 9, 500), D(0, 95, 500) y D(0, 99, 500) con los que se compara máx Di . Referencias a la tabla 4 Como D > D(0, 9, 500), se rechaza la hipótesis de que la muestra sigue una distribución lognormal con parámetros μ = 2, 62 y σ 2 = 1, 89 (ver cuadro 4.6). 1 para evaluar LN(μ, σ 2 ) en x en Excel se emplea la expresión ((DISTR.LOG.NORM(x; μ, σ ))). PENDIENTE Capı́tulo 4. ANÁLISIS DE DATOS DE ENTRADA 109 i x(i) Fn (x(i) ) F (xi ) % % %Fn (x(i−1 ) − F (xi )% % % %Fn (x(i ) − F (xi )% Di 1 0,01 0,002 0,000 - 0,002 0,002 2 0,03 0,004 0,000 0,002 0,004 0,004 3 0,05 0,006 0,000 0,004 0,006 0,006 4 0,08 0,008 0,000 0,006 0,008 0,008 5 0,23 0,010 0,001 0,007 0,009 0,009 .. . .. . .. . .. . .. . .. . .. . 496 127,34 0,992 0,947 0,043 0,045 0,045 497 128,19 0,994 0,948 0,044 0,046 0,046 498 136,26 0,996 0,953 0,041 0,043 0,043 499 158,80 0,998 0,963 0,033 0,035 0,035 500 172,93 1,000 0,967 0,031 0,033 D = máx Di = 0, 087 Cuadro 4.5: test de Kolmogorov-Smirnov para la hipótesis LN(2, 62, 1, 89). D0, 9, 500 D0, 95, 500 D0, 99, 500 0,055 0,061 0,073 Lognormal D = 0, 124 RECHAZADA RECHAZADA RECHAZADA Exponencial D = 0, 044 ACEPTADA ACEPTADA ACEPTADA Cuadro 4.6: criterio de decisión del test K-S. Procediendo de manera análoga para la hipótesis exponencial2 se obtiene que según este test no se puede rechazar con un nivel de confianza del 99 % que la muestra siga una distribución Exp(26, 9). Por lo tanto, al igual que sucede en el test χ 2 , se rechaza la hipótesis lognormal y se acepta la exponencial. K-S, Exponencial Cabe destacar que, aunque en este caso coincidan, los resultados de los dos tests pueden ser diferentes. En estos casos se puede recurrir a otros tests como Anderson-Darling (ver Law 2001 [1], págs. 351-352). Comentarios 2 para evaluar exp(β) en x en Excel se emplea la expresión ((DISTR.EXP(x; 1/β;VERDADERO)))). Capı́tulo 4. ANÁLISIS DE DATOS DE ENTRADA 4.5. Ejemplo 3. Test de ajuste empleando Bestfit A continuación muestra una herramienta, Bestfit, que permite realizar un test de ajuste para el conjunto de datos anterior, x1 , x2 , · · · , x500 . Bestfit, desarrollado por Palisade, forma parte del paquete @Risk, del cual es posible descargar versiones de prueba desde la página de Palisade (www.Palisade.com) Para obtener los resultados del test, hay que realizar lo siguiente. 1. Introducir los datos de entrada. El programa permite analizar tres tipos de datos: muestras, curvas de densidad o curvas de distribución (Fitting / Input Data Options...) Igualmente, permite elegir entre variables discretas o continuas. En este caso, el tipo de datos coincide con la configuración por defecto (muestra de una variable continua). Para introducir los 500 datos, basta con copiar directamente desde Excel y se pegar sobre la columna Sample. 2. Seleccionar la función para realizar el ajuste. Bestfit permite hacerlo de dos maneras: o bien se especifica la función que se desea ajustar y sus parámetros, o se deja que sea el programa el que estime los parámetros de las funciones que elija el usuario. Esto se selecciona en (Fitting / Specify Distributions to Fit...) En este ejemplo se deja que el programa estime los parámetros y compare las siguientes funciones: beta, exponencial, gamma, lognormal23 , normal, triangular, uniforme y weibull. 3. Realizar el ajuste. Para realizar el ajuste se elige Run Fit en el menú Fitting. 4. Interpretar los resultados. Después del paso anterior se abre una ventana como la de la figura 4.10. En ella se pueden distinguir tres bloques de información. a) A la izquierda se enumeran las distribuciones seleccionadas en orden creciente de bondad del ajuste según tres tests: χ 2 , Kolmogorov-Smirnov y Anderson-Darling. El test se selecciona en la pestaña desplegable de la parte inferior del bloque. b) En la parte central aparece una gráfica que compara el histograma de la muestra con las función teórica. Además se pueden seleccionar otros tres tipos de gráficos: Difference, que muestra la diferencia en cada punto entre la muestra y la función teórica, P-P, donde se representa la probabilidad de la función empı́rica de la muestra frente a la función de densidad considerada (interesa que sea lo más lineal posible), y Q-Q, donde se representan los percentiles 3 Besfit tiene dos formatos para esta función y este es el que coincide con el utilizado en este texto. 110 Capı́tulo 4. ANÁLISIS DE DATOS DE ENTRADA de la muestra frente a los de la inversa de la función de densidad considerada. c) En la parte derecha aparece un informe de las caracterı́sticas principales de la función ajustada como son: valor de los parámetros estimados, rango, media, varianza... Seleccionando la opción GOF se muestran los resultados de los 3 tests de ajuste. Figura 4.10: ventana de resumen de los resultados del ajuste en Bestfit Los resultados de cada test se presentan en el cuadro 4.7. No existe una regla para decidir qué test es mejor en cada caso. Cada uno tiene sus ventajas e inconvenientes por lo que una buena opción es estudiar los resultados de los tres conjuntamente. En este caso, por ejemplo, no hay ninguna razón para pensar que la muestra no se ajusta a una Exp(26,08), ya que los resultados de los tres para esta función son aceptables. Aunque también es razonable aceptar que se distribuye según una Beta(0,88 , 27,35), que es la que proporciona un ajuste mejor según los test χ 2 y K-S. 111 Capı́tulo 4. ANÁLISIS DE DATOS DE ENTRADA Orden χ2 K-S A-D 1o beta beta exp 2o exp exp lognormal 3o lognormal lognormal normal 4o normal normal uniforme o triangular triangular beta 6o uniforme uniforme triangular 5 Cuadro 4.7: orden de las funciones en función de la bondad del ajuste. La estimación de los parámetros se realiza mediante una versión mejorada de los estimadores máximo verosı́miles (para obtener más información acerca de ello ver la ayuda del programa). En algunas funciones los parámetros de Bestfit no coinciden con los presentados en la sección 3.3, por lo que es conveniente consultar la ayuda para saber que representan exactamente en cada. 4.6. Resumen Alimentar un modelo de simulación de la forma correcta es un requisito imprescindible (aunque no el único) para realizar un análisis correcta del sistema estudiado. Existen tres formas de alimentar un modelo. Con datos históricos, con datos generados a partir de una distribución empı́rica y con datos generados a través de una distribución teórica. Con los datos históricos es posible realizar la validación del modelo. Sin emgargo, como el número de valores de los datos históricos no suele ser muy grande, no resultan útiles para explorar diferentes configuraciones y evaluar el comportamiento del sistema para tomar una decisión. Al utilizar variables aleatorias se resuelve el problema anterior. Sin embargo, generalmente, es preferible utilizar distribuciones teóricas. Por un lado, permiten generar valores dentro de un rango más amplio, son más manejables y permiten evitar los errores derivados de las observaciones históricas atı́picas. Para alimentar un modelo con una función de distribución teórica, es necesario realizar un test de ajuste, tal y como se realizado, primero con Excel y, después, con Bestfit. 112 Capı́tulo 4. ANÁLISIS DE DATOS DE ENTRADA En el siguiente capı́tulo se presentan diferentes estrategias de verificación y validación, para lo cual es necesario disponer de buenos datos de entrada, tal y como se ha presentado en este capı́tulo. 113 Capı́tulo 5 VERIFICACIÓN Y VALIDACIÓN DE MODELOS PENDIENTE: REVISAR CALIDAD IMÁGENES 5.1. Introducción Para que un modelo sea de utilidad debe estar “bien hecho”. Esto significa dos cosas: primero, debe estar bien programado y, segundo, debe representar bien la realidad. Al proceso que garantiza que un modelo está bien programado, se le denomina verificación, mientras que el que se refiere a la representación adecuada del sistema estudiado, se denomina validación. Dicho de otra manera, en términos de las etapas de un estudio de simulación, la verificación garantiza que el modelo informático es coherente con el modelo comunicactivo desarrollado, que es reflejo del modelo conceptual. Por su parte, la validación garantiza el modelo conceptual representa de forma correcta el sistema estudiado para los objetivos fijados. En la figura 5.4, el término validación aparece reflejando esto último y aparece también en la etapa de explotación. La explicación es que si se desea comparar los resultados que ofrece el modelo con los del sistema real (cuando existe) es necesario disponer del modelo informático construido para comprobar que, efectivamente, es válido. Finalemente, la credibilidad de un modelo está relacionada con la confianza que se deposita en él en términos de la puesta en práctica de las conclusiones que se obtienen a partir de su análisis. PENDIENTE: mejorar calidad figura Definiciones Capı́tulo 5. VERIFICACIÓN Y VALIDACIÓN DE MODELOS DE O E 115 DE O DEL EM E O D DE D O MODELO O E L MODELO OM O MODELO O M O E LO D E O DE E E ME O DO ME M L E L DO Figura 5.1: verificación, validadación y credibilidad en un estudio de simulación. Un modelo no verificado difı́cilmente puede ser válido. Sin embargo, un modelo bien verificado no necesariamente es válido, ya que un modelo puede estar muy bien programado para representar un modelo conceptual muy alejado del sistema real. A lo largo del capı́tulo se presentan algunas técnicas relativas a la verficación y la validación de modelos, se plantean algunos ejemplos sencillos para ilustrar cómo verificar modelos y se presentan las caracterı́sticas más importantes de Witness para facilitar la verificación de modelos. 5.2. Cómo verificar un modelo A continuación se presentan algunas técnicas de carácter general para verificar modelos (consultar Law para profundizar más). Emplear, cuando sea posible, una estructura modular. Al construir un modelo conviene identificar subsistemas independientes, modelarlos y verificarlos por separado. Además, estos subsistemas se pueden repetir en un modelo o se pueden reutilizar para otros modelos, de forma que si se dispone de un módulo bien verificado, se podrá reutilizar con buenos resultados. Por ejemplo, al modelar una planta de montaje de automóviles, puede ser interesante modelar de forma independiente, el montaje en bruto, la sección de pintura y el montaje final, depurar cada módulo Técnicas de verificación Capı́tulo 5. VERIFICACIÓN Y VALIDACIÓN DE MODELOS por separado y, finalmente, construir el modelo con todos los elementos. Es recomendable elaborar los modelos con un grado creciente de detalle, comenzando con modelos sencillos e incrementando la complejidad a medida que se comprueba que el modelo está bien programado en cada caso. En el ejemplo anterior, en una primera aproximación, la linea auxiliar que prepara los motores puede representarse como una única actividad, tras comprobar que el modelo es correcto, se puede sustituir esa actividad por un conjunto de actividades que representen los puestos de dicha linea. La participación de varias personas puede facilitar la detección de errores, el intercambio de impresiones al respecto de cómo elaborar el modelo de forma más eficaz y eficiente, etc. Por otra parte, esto facilitará que el modelo sea más legible, ya que si varias personas deben trabajar sobre el mismo código, será más sencillo que este se elabore de tal manera que sea fácilmente inteligible por otros programadores. Si se dispone de suficiente información, se puede ejecutar el modelo asignando valores a los parámetros para los cuales se conocen los resultados que deberı́an obtenerse. Por ejemplo, un sistema de espera, para determinadas pautas para los tiempos de servicio y para las llegadas de los clientes puede modelarse con teorı́a de colas. Por ello, si se alimenta el modelo de acuerdo con esos suspuestos, se podrı́an comparar con los resultados teóricos. Tras verificarlo, se deberı́an introducir los valores origninales. Para conocer en detalle cómo se comporta el modelo, se puede realizar un seguimiento de los eventos a medida que se ejecutan y ası́ comprobar que el modelo informático reproduce el comportamiento deseado. También se pueden utilizar hipótesis simplificadoras, para las cuales se conoce el comportamiento del sistema y comprobar si el resultado es correcto. Una forma sencilla puede ser establecer todos los tiempos como deterministas y observar si el comportamiento es el esperado. Los entornos de simulación comerciales ofrecen la posiblidad de crear una animación, cuya observación puede permitir identificar posibles errores del modelo. Por ejemplo, al representar el movimientos de las traspaletas en un almacén, puede ocurrir que existan colisiones que no se identifiquen si no es a través de la representación gráfica de sus movimientos. La generación de números aleatorios debe ser consistente con las distribuciones seleccionadas y, en general, se deben generar valors independientes. Por ello, se puede comprobar que la media y la varianza de los valores generados corresponden a los espeardos y, adicionalmente, se puede realizar algún test de independencia de los valores generados. 116 Capı́tulo 5. VERIFICACIÓN Y VALIDACIÓN DE MODELOS En general, las herramientas comerciales ofrecen herramientas especı́ficas para realizar la verificación, lo cual constituye una ventaja con respecto a los lenguajes de programación general a la hora de construir un modelo. En el siguiente apartado se muestran algunos ejemplos de verificación para modelos sencillos construidos con Witness y, además, se comentan las herramientas especı́ficas de este entorno que resultan útiles para la depuración. 5.3. Ejemplos de verificación Los ejemplos que se muestran en este epı́grafe son sencillos, con lo cual, muchas de las comprobaciones pueden parecer triviales, pero en modelos complejos, son extremadamente útiles. 5.3.1. Ejemplo 1 El siguiente ejemplo ilustra la estrategia de verificación consistente en configurar el modelo con datos de entrada para los cuales se conoce el resultado teórico. Un centro de atención telefónica recibe dos tipos de llamadas: llamadas VIP y llamadas normales. Los tiempos entre llegadas de dichas llamadas siguen dos exponenciales, de medias 20 y 1.5 minutos, respectivamente. A medida que las llamadas llegan quedan en una única cola. Existen cuatro operadores de nivel 1 que atienden las llamadas de la cola, de manera que las lamadas VIP tienen preferencia sobre las llamadas normales. Tiempo de atención de las llamadas sigue una exponencial de media 4 minutos, independientemente del tipo de llamada. Después se derivan a otros operadores especı́ficos. El tiempo que permanecen después en el sistema sigue una normal logarı́tmica de media 6 minutos y desviación tı́pica 0.5. Se pide constuir el modelo, realizar una analogı́a con la teorı́a de colas y comprobar que el modelo es correcto. El archivo Ejemplo5-1.mod ofrece un posible modelo para representar el sistema anterior. Este modelo consta de los siguientes elementos: LlamadaVIP y LlamadaNormal, elementos tipo entidad activa con un intervalo entre llegadas de ((NEGEXP(20))) Y ((NEGEXP(1.5))), respectivamente. 117 Capı́tulo 5. VERIFICACIÓN Y VALIDACIÓN DE MODELOS LlamadasEnEspera es una cola donde se almacenan todas las llamadas, donde la opción de salida es ((Cualquiera)), para permitir que el elemento que representa a los operadores de nivel 1 pueda atender las llamadas VIP de forma preferente. La actividad OperadoresNivel1, con cantidad igual a 4, mediante la regla ((PULL from LlamadaVIP out of LlamadasEnEspera, LlamadaNormal out of LlamadasEnEspera)) atienden primero las llamadas VIP y, al finalizar, las envı́an al resto del sistema. La cola RestoSistema tiene un tiempo de permanencia máximo de ((LOGNORML (6,0.5))) para representar el tiempo durante el cual las llamadas permancen aún en el sistema. Finalmente, tras ese tiempo, las llamadas se expulsan del modelo. Según la Teorı́a de Colas, si n servidores en paralelo cuyos tiempos de servicio siguen exponenciales de media μ atienden a clientes que llegan según una exponencial de media λ, su nivel de ocupación, ρ, viene dado por la expresión siguiente: ρ= μ nλ (5.1) En el caso del ejercicio, no existe la llegada de un sólo cliente, sino dos diferentes, que siguen distribuciones exponenciales. En una hora, por término medio, llegan 3 llamadas VIP y 40 llamadas normales, es decir, 43 llamadas en conjunto. El tiempo entre llamadas (independientemente del tipo) es 60 43 , que es el valor de λ para la expresión 5.1. Por otra parte, n = 4 y μ = 4, por lo que el tiempo medio de ocupación esperado será: ρ= 4 60 4 43 = 71,67 (5.2) Una posible forma de comprobar si esto es ası́ es la que se ofrece en el archivo Ejemplo5-1 solucion.mod. La solución consiste en lo siguiente. Existe un nuevo elemento, de tipo Diagrama de tarta, con dos sectores, uno con el valor ((PUTIL(OperadoresNivel1,2))) (para mostrar la proporción del tiempo durante el cual los operadores de nivel 1 han estado ocupados) y el otro con el complemento a 100 de dicho valor. En la figura 5.2 aparece la ventana de configuración del diagrama de tarta. Para generar nuevos sectores es necesario hacer clic en el botón sobre el cual está el cursor en dicha figura. PENDIENTE mejorar calidad imagen 118 Capı́tulo 5. VERIFICACIÓN Y VALIDACIÓN DE MODELOS Figura 5.2: configuración del diagrama de tarta Se han creado nuevos elementos en la representación del elemento OperadoresNivel1. El más importante es el elemento de representación de tipo expresión, para representar ((PUTIL(OperadoresNivel1,2))). Figura 5.3: tasa de ocupación de OperariosNivel1 La figura 5.3 muestra el valor de la tasa de ocupación de OperadoresNivel1 cuando se ha ejecutado el modelo durante un tiempo relativamente grande y, se observa, que el valor obtenido (71.59 %) es muy próximo al valor esperado según la teorı́a de colas (71,67 %). 119 Capı́tulo 5. VERIFICACIÓN Y VALIDACIÓN DE MODELOS El tiempo de servicio no suele ser exponencial. Incluso el tiempo entre las llegadas de los clientes podrı́a no seguir una distribución exponencial. En este caso, una posible forma de proceder serı́a modificar el modelo e introducir distribuciones exponenciales, comprobar que el resultado es correcto para esa configuración y, después, volver a introducir las distribuciones originales. Se entiende que si los valores son correctos cuando las distribucinoes son exponenciales, la lógica del modelo es correcta y los seguirá siendo al cambiar las expresión de los tiempos de servicio y del tiempo entre llegadas de clientes. 5.3.2. Ejemplo 2 Otra manera de verificar el modelo es examinar qué eventos y en qué instante se producen cuando se ejecuta el modelo. Confirmar mediante la Ventana de interacción que, efectivamente, tal y como está programado el modelo, las llamadas VIP se atienden preferentemente. Una posible propuesta, correspondiente al modelo del archivo Ejemplo5-2 solucion.mod, consiste en los siguiente: Modificar el código en acciones al entrar y en acciones al salir de LlamadasEnEspera para registrar y mostrar la cantidad de llamadas de cada tipo que existe cuando entra y cuando sale, respectivamente, una llamada a la cola LlamadasEnEspera. Ejecutar el modelo Paso a paso Analizar el resultado en la Ventana de interaccion La figura 5.4 muestra el código correspondiente a las acciones al entrar. Este código opera de la siguiente manera. Si la llamada que entra es Normal (((TYPE=LlamadaNormal))) se imprime una cadena de caracteres donde aparece un texto seguido del número de entidades que hay en el Cola de un determinado tipo (utilizando la función ((NENTS)), ver el apartado 2.7). IF TYPE = LlamadaNormal PRINT "\n" + "Llamadas VIP en espera " + NENTS2 (ELEMENT,LlamadaVIP,0) PRINT "Llamadas normales en espera " + STR (NENTS2 (ELEMENT,LlamadaNormal,0)) ELSE PRINT "\n" + "Llamadas VIP en espera " + STR (NENTS2 (ELEMENT,LlamadaVIP,0)) PRINT "Llamadas normales en espera " + NENTS2 (ELEMENT,LlamadaNormal,0) ENDIF Figura 5.4: acciones al entrar del elemento LlamadasEnEspera 120 Capı́tulo 5. VERIFICACIÓN Y VALIDACIÓN DE MODELOS 121 El código correspondiente a las acciones al salir es de naturaleza similar, con la única diferencia de que hay que restar una unidad al valor obtenido mediante ((NENTS)) para el tipo de pieza que sale de ColaLlamadas. La instrucción ((Print)) muestra en la Ventana de interacción aquello que le sigue. ((PRINT \n)) introduce un retorno de carro y permite separar texto el lı́neas diferentes. ((PRINT \f)) borra todo el contenido de la Ventana de interacción La figura 5.5 muestra parte de lo que se puede visualizar en la Ventana de interacción. En el instante 16.73 llega una llamada VIP , entra en LlamadasEnEspera y se muestra por pantalla el contenido del este elemento. Como hay una llamada VIP, esta es la primera que deberı́a salir en cuanto un operador se desocupe. Efectivamente, en 16.90 el segundo operador queda libre y de las cuatro llamadas que hay en cola, la que se atiende es la llamada VIP. Acciones de entrada y salida Para este caso, se puede comprobar visualmente el comportamiento del sistema. Sin embargo, en sistemas más complejos no es tan sencillo y la ejecución del modelo siguiendo la ejecución de eventos puede ser muy útil. Figura 5.5: análisis de los eventos en la Ventana de Interacción 5.3.3. Ejemplo 3 Otra estrategia de depuración es el análisis detallado de la animación. En los ejercicios anteriores, se ha hecho uso de las herramientas de carácter gráfico para mostrar información, como por ejemplo, al utilizar un diagrama de tarta o introduciendo la representación gráfica del valor de una variable. Ejecución paso a paso Capı́tulo 5. VERIFICACIÓN Y VALIDACIÓN DE MODELOS A modo de ilustración, en el archivo Ejemplo5-3.mod se muestra un ejemplo muy sencillo de una intersección de carreteras en T, representadas por elementos de tipo camino. Los coches entran al modelo desde tres localizaciones en los extremos de la T y se dirigen a alguno de los otros dos extremos. Simplemente, al representar los coches con iconos sencillo, se puede comprobar que la animación permite identificar visualmente colisiones entre esos iconos. Una representación más detallada, permitirı́a evaluar esas posbiles colisiones para casos más realistas. 5.3.4. Ejemplo 4. Funcionalidades de Witness En este apartado se presentan algunas funcionalidades adicionales de Witness que facilitan la verificación de modelos. En una parte de una planta pintan y secan productos para servidos a otra parte de la fábrica. Los productos que hay que pintar llegan a un almacén previo a la zona de pintado según una exponencial de media 4 minutos. El proceso de pintado puede realizarse con tres calidades: baja, media y alta. Las proporciones en las que deben pintar productos con estas calidades son 20, 40 y 40 %, respectivamente. Igualmente, los productos son de tres tamaños: pequeño, mediano y grande, en proporciones del 15, 50 y 35 %. Los tiempos de pintado siguen distribucinoes lognormales de parámetros (μ, σ ) dependientes del tamaño y de la calidad, y son los que se indican en la siguiente tabla t. pequeño t. mediano t. grande c. baja (2,0, 0,22) (2,3, 0, 2) (2,5, 0,2) c. media (2,5, 0,30) (2,6, 0,24) (2,8, 0,30) c. alta (3,0, 0,3) (3,2, 0,30) (3,6, 0,35) El tiempo de secado es de 30 minutos y es independiente de las caracterı́sticas del producto. Los productos se transportan a la siguiente área de trabajo en palés completos de cinco unidades, donde los palés puede estar formados por productos de diferente tipo. Una posible forma de representar el sistema descrito es el correspondiente al archivo Ejemplo5-4.mod, cuyas caracterı́sticas son las siguientes: Tamaño y Calidad son dos atributos de tipo cadena de caracteres, donde se registrarán las caracterı́sticas de los productos que se pintan. Producto es una entidad que llega al sistema según una distribución ((NEGEXP(4))). En las Acciones a la entrada hay un código que asigna valores a los atributos anteriores de acuerdo con las proporciones dadas. 122 Capı́tulo 5. VERIFICACIÓN Y VALIDACIÓN DE MODELOS ColaPintura y ColaEnvio son dos colas que almacenan, respectivamente, las entidades a la espera de ser pintadas y las piezas pintadas y secas. Secado es un un colas con tiempos de permanencia máximo y mı́nimo e iguales a 30 minutos. Esto junto con la regla de salida ((PUSH to ColaEnvio)) hace que las entidades, una vez que han pasado 30 minutos en este cola se dirijan a ColaEnvio a la espera de salir del sistema. TiempoPintura es una función que devuelve el valor del tiempo de pintado, en función de dos argumentos Cal y Tam. Pintura es una actividad que representa el proceso de pintado. El tiempo de ciclo se obtiene invocando la función interior con los valores de los atributos del Producto que se va a pintar. Figura 5.6: regla de entrada para Envio Por último, Envio es una actividad que permite retirar cinco unidades de Producto cuando están cinco o más disponible. Para ello, la Regla de entrada es ((PULL from ColaEnvio)) cuando se cumple ((IF NENTS (Envio) + NENTS (ColaEnvio) >= 5)) (ver la figura 5.6). 5.3.4.1. Acciones inmediatas 1. Mostrar en la Ventana de interacción diferentes valores del tiempo de ciclo dePintura y comprobar que los valores parecen correctos. 2. Analizar el contenido del cola Secado. En particular, detener el modelo cuando haya más de dos productos en este almacén y mostrar en la Ventana de interacción el valor del atributo Calidad para el producto situado en la segunda posición del cola Secado. 3. Modificar el valor del atributo Calidad del una pieza almacenada en ColaPintura. Witness dispone de un tipo de acciones conocidas como Acciones inmediatas. Con estas acciones se puede ejecutar código cuando el modelo está detenido. Para ejecutar Acciones inmediatas, es necesario utilizar la barra de herramientas Modelo, que tiene el aspecto de la figura 5.7. Si esta barra no está visible, se puede mostrar haciendo clic en Ver / Barras de Herramientas / Modelo. 123 Capı́tulo 5. VERIFICACIÓN Y VALIDACIÓN DE MODELOS 124 En el cuadro de texto se puede teclear el código de la acción. Al hacer clic en el icono situado inmediatamente a la izquierda del cuadro de texto (con un rayo) se ejecuta dicho código. Alternativamente, se puede hacer clic en Ejecutar / Acciones inmediatas. Figura 5.7: barra de herramientas Modelo Mediante la instrucción ((Print)) es posible mostrar en la Ventana de interacción aquello que sigue a dicha expresión. Por ejemplo, al ejecutar ((Print TiempoPintura(“grande”,“alta”))) varias veces, se obtiene una secuencia de valores como los que se muestran en la figura 5.8, que no parecen inconsistentes con los valores esperados. Figura 5.8: resultado de la acción ((Print)). También se pueden utilizar las Acciones inmedaitas para modificar el estado de algún elmento del sistema. Para comprobar esto, se recomienda ejecutar el modelo hasta que haya, por ejemplo, dos entidades en Secado. La expresión ((Nombre Elemento at Numero Entero:Nombre Atributo)) se refiere al valor del atributo Nombre-Atributo de la pieza situada en la posición Numero-Entero del elemento Nombre-Elemento. En particular, ((Secado at 2:Calidad)) se refiere al atributo Calidad de la pieza situada en la segunda posición de Secado. Si en la ventana de Acciones inmediatas se teclea ((Print Secado at 2:Calidad)) aparecerá en la Ventana de interacción el valor de dicho atributo. Alternativamente, para conocer el contenido de un elemento, se puede utilizar la opción Examinar. En concreto, haciendo clic con el botón derecho en cualquier elemento aparece un menú contextual que contiene la opción Examinar.... Al seleccionar esta opción para Secado, aparece una ventana con el contenido de dicho elemento, tal y como aparece en la figura 5.9 print Capı́tulo 5. VERIFICACIÓN Y VALIDACIÓN DE MODELOS Figura 5.9: opción Examinar... La figura 5.9 muestra el contenido de Secado. Su estado es normal y contiene dos entidades Producto, en las posiciones 1 y 2 respectivamente. Para cada una de las entidades, se indican, entre otras cosas, los valores de sus atributos y, entre ellos, Calidad y Tamaño. Por último, mediante las Acciones inmediatas es posible modificar el estado de algún elemento del modelo. Siguiendo el ejemplo previo, al teclear ((Secado at 2:Calidad=“alta”)) se accede al atributo Calidad de la entidad situada en la segunda posición de Secado y se modifica su valor para que sea “alta”. En definitiva, para obtener información del modelo en un determinado instante se puede utilizar la instrucción ((Print)) combinanda con las Acciones inmediatas y la Ventana de interacción. También se puede modificar el estado de los elementos mediante las Acciones inmediatas. 5.3.4.2. Acciones de usuario Otra forma de ejecutar códido en un instante determinado, con el modelo detenido, es mediante las Acciones de Usuario. La cadena de caracteres que se puede escribir en las Acciones inmediatas tiene un lı́mite, por lo que no sirve para comprobar el comportamiento de un conjunto de acciones relativamente grande. Haciendo uso de las Acciones de usuario imprimir por pantalla los valores de los atributos Calidad y Tamaño de las entidades que están en Secado. 125 Capı́tulo 5. VERIFICACIÓN Y VALIDACIÓN DE MODELOS Seleccionando la opción Modelo / Acciones de usuario se abre una ventana similar a otras ventanas en las que se introducen acciones. Figura 5.10: código de las Acciones de usuario Si se introduce y ejecuta el código de la figura 5.10 se mostrará en la Ventana de Interacción el contenido de Secado: el número de entidades y dos de los atributos de esas entidades, tal y como se puede observar en la figura 5.11. Para ejecutar estas acciones hay que hacer clic en el icono situado a la izquierda, en la barra de herramientas Modelo (con los iconos de un rayo y un icono). Alternativamente, se puede hacer clic en Ejecutar / Acciones de usuario. Figura 5.11: resultado tras la ejecución de las Acciones de usuario. 5.3.4.3. Archivos .trc. Registro en archivo Se puede disponer de un archivo .trc que ofrece el resultado que se obtiene en la Ventana de interacción cuando se ejecuta el modelo Paso a paso. Esto se puede hacer de dos maneras, bien haciendo clic en el icono que se muestra en la figura 5.12 o bien activando la opción Ejecutar / Registro en archivo Figura 5.12: activación y desactivación de generación de archivo .trc 126 Capı́tulo 5. VERIFICACIÓN Y VALIDACIÓN DE MODELOS Al activar esta opción se solicita el nombre del archivo al que se enviará la información. Una vez activado, se puede ejecutar el modelo hasta un determinado instante. El resultado es un archivo como Ejemplo5-4-3.trc. 5.3.4.4. Archivo .log. Registro de piezas y fluidos Se puede generar un archivo .log en el que se registran todas las moficicaciones relativas a las entidades y a los fluidos del modelo. La activación de esta opción también se puede hacer de dos maneras, bien haciendo clic en el icono que se muestra en la figura 5.13 o bien activando la opción Ejecutar / Registro de piezas y fluidos Figura 5.13: activación y desactivación de generación de archivo .log. Operando de forma similar al caso anterior, se puede generar un archivo como Ejemplo5-4-4.log. Este archivo ofrece la información a cada entidad que se ha generado. La figura 5.14, por ejemplo, muestra la información correspondiente a una entidad de tipo Producto. Esta entidad se creo en el instante 0, fue empujada a ColaPintura, de donde fue capturada por Pintura(1), ası́ hasta ser enviada fuera del sistema en el instante 68.34. Adicionalmente, se indica el tiempo que ha permanecido en el modelo (que en este caso coincide con el valor del instante en el que se envı́a fuera del sistema). Adicionalemnte, al final del archivo .log se puede encontrar un resumen de la información de las entidades del modelo. Figura 5.14: contenido del archivo .log. 5.3.4.5. Archivo .txt. Seguimiento de variables Existe un tercer tipo de archivo que devuelve información al respecto de cómo ha evolucionado el sistema y que muestra los diferentes valores que toman algunas o todas las variables definidas en el modelo. 127 Capı́tulo 5. VERIFICACIÓN Y VALIDACIÓN DE MODELOS 128 Crear una variable que registre el número de entidades que se han servido de tipo calidad alta y tamaño grande. Comprobar que representa la proporción esperada, dadas las probabilidades con las que llegan ese tipo de productos. Una posilbe forma de computar la cantidad y la proporción de entidades de tipo Producto que son grandes y de calidad alta es la siguiente (y que figura en el archivo Ejemplo5-4-5.mod). Crear dos variables: Contador, de tipo entero, y Proporcion, de tipo real. En las acciones al salir de Envio se actualiza Contador si la entidad que se sirve es grande y con calidad de pitado alta. Y en cualquier caso, se actualiza Proporcion como ((Proporcion = Contador/NCREATE(Producto))). Figura 5.15: activación y desactivación de generación de archivo .txt Una vez creadas las variables, para obtener el archivo de seguimiento de variables, hay que activar esa opción, bien haciendo clic en el botón de la figura 5.15 o mediante Ejecutar / Seguimiento. Además, es necesario seleccionar las variables de las cuales se va a realizar el seguimiento, accediendo al fomulario que se muestra en la figura 5.16. Figura 5.16: selección de las variables para hacer su seguimiento Información del archivo .log Capı́tulo 5. VERIFICACIÓN Y VALIDACIÓN DE MODELOS Después de hacer todo lo anterior se puede ejecutar el modelo durante un tiempo determinado y se obtiene un archivo como Ejemplo5-4-5.txt, del que se ofrece un fragmento en la figura 5.17. Figura 5.17: contenido del archivo de Seguimiento .txt 5.3.4.6. Depurador Witness ofrece también la herramienta del Depurador, que sirve para ejecutar el código de manera que sea más sencillo evaluar si ha sido programado correctamente. A modo de ejemplo, se puede utilizar el depurador para comprobar cómo se ejecuta el código de la función TiempoPintura. Para activar el depurador, es necesario activar la opción Detener y abrir depurador al entrar, tal y como aparece en la figura 5.18. Figura 5.18: activación del depurador. 129 Capı́tulo 5. VERIFICACIÓN Y VALIDACIÓN DE MODELOS Después de activar el depurador, al ejecutar el modelo, cuando sea invocada la función se motrará un formulario como el de la figura 5.19. A la derecha aparecen algunos botones que permiten gobernar el avance de la ejecución del código. Por ejemplo, se puede ejecutar el código Paso a paso y comprobar cuáles instrucciones se ejecutan y cuáles no. Además, se muestran la información local del código que se está ejecutando, que en este caso son los argumentos de la función Tam y Cal, de manera que, en este caso, se puede comprobar si el valor devuelto por la función es el deseado de acuerdo con los valores de dichos argumentos. Adicionalmente, se puede realizar el seguimiento de otros valores Figura 5.19: depurador para el cuerpo de la función TiempoPintura. 5.3.4.7. Estructura modular Por último, otra práctica que facilita la construcción de modelos bien verificados es mediante el uso de módulos, que, una vez verificados, se pueden reutilizar bien en un mismo modelo o bien en diferentes modelos. Crear un módulo con Pintura, Secado, ColaEnvio y Envio y duplicar estos elementos. 130 Capı́tulo 5. VERIFICACIÓN Y VALIDACIÓN DE MODELOS La forma más sencilla para crear un módulo consiste en seleccionar los elementos que se desea que formen parte del módulo en y hacer clic en el botón como el de la figura 5.19. A continuación, Witness solicita el nombre del nuevo módulo. En el archivo Ejemplo5-4-7.mod a este módulo se le ha dado el nombre PinturaSecado. Figura 5.20: botón para crear módulos Al igual que se puede hacer con cualquier elemento que forma parte del modelo de simulación, es posible clonar módulos. Seleccionando el elemento, en este caso el módulo PinturaSecado, con Elementos / Clonar se genera un módulo idéntico al anterior, pero con un nombre distinto, PinturaSecado01, como se muestra en la figura 5.21. Figura 5.21: elementos de la simulación tras clonar el módulo. Los módulos se pueden almacenar como archivos de tipo .mdl, añadirlos al conjunto de elementos predefinidos y reutilizarlos en nuevos modelos donde ese módulo forme parte de los elementos predefinidos. Se recomienda consular la ayuda de Witness para conocer las diferentes maneras de crear y gestionar módulos. 5.3.4.8. Documentor Uno de los aspectos más importantes para mantener un modelo bien verificado es disponer de una buena documentación del mismo. Como se ha podido comprobar, el código de un modelo de Witness aparece en diferentes elementos y, dentro de cada elemento, en diferentes ventanas. El módulo Documentor permite recopilar toda esta información de manera sistemática en un archivo de texto .rtf. 131 Capı́tulo 5. VERIFICACIÓN Y VALIDACIÓN DE MODELOS Figura 5.22: ventana para configurar el informe .rtf Para ello, se puede acceder al menú (Modelo / Documentor...) y aparece una ventana como la de la figura 5.22. El informe que se genera puede contener información de carácter general, como el nombre del modelo, las notas, las acciones de inicialización, etc. y también información relativa a cada uno de los elementos. De cada uno de los elementos del modelo, se puede elegir documentar diferentes aspectos, como las caracterı́sticas generales (pestaña General de la configuración), las reglas. etc. En la imagen 5.22 se muestra la ventana para obtrener un informe correspondiente al modelo del elemplo 5.3.1 y en la imagen Figura 5.23: fragmento de un informe .rtf correspondiente a la entidad LlamadaNormal. 132 Capı́tulo 5. VERIFICACIÓN Y VALIDACIÓN DE MODELOS 5.4. 133 Validación y credibilidad La validación de un modelo consiste en el proceso mediante el cual se garantiza la adecuación de este al sistema estudiado para los objetivos propuestos. Por la propia naturaleza de la tarea, no es posible ofrecer, de manera sencilla, ejemplos de carácter práctico como el resto de los que se proponen en este libro. A continuación se citan algunas técnicas para mejorar la validez de losmodelos construidos (para más detalle, consultar Law). Es necesario recopilar información de calidad y de las fuentes adecuadas. En ocasiones esto puede significar hablar con las personas que trabajan en el sistema estudiado. Por ejemplo, para conocer el detalle de la operación de un stock intermedio en una lı́nea de montaje, puede ser muy interesante preguntar al encargado de esa operación en la propia planta. En otras ocasiones, será necesario preguntar a los gestores del sistema en cuestión. Cuando la información no está disponible puede ser adecuado tomar medidas de la operación del propio sistema o revisar literatura existente al respecto, bien de carácter teórico o bien a través de trabajos de naturaleza similar. Los directivos o responsables de la decisiones relacionadas con el modelo deben estar implicados en el proceso. En la medida en la que esto sea ası́, los objetivos estarán mejor definidos, se dispondrá de acceso a más y mejor información, etc. Es muy valioso explicitar las hipótesis del modelo y documentarlas de forma exhaustiva. Existen muchos motivos por los cuales se deben documentar los modelos. En primer lugar, dado que existen diferentes participantes en un estudio de simulación, si se explicitan las hipótesis, es posible que alguno de ellos identifique asunciones no válidas. Como es posible que diferentes personas programen el código, de esta manera se evitan inconsistencias en el desarrllo del modelo. Igualmente, cuando se modifica un modelo previamente desarrollado, conviene tener presentes todas las hipótesis que se admitieron cuando se construyó inicialmente, para comprobar si esas hipótesis siguen siendo válidas o no. Se deben utilizar técnicas cuantitativas para validar el modelo. Por ejemplo, cuando se generan números aleatorios para fenómenos que son independientes, conviene garantizar que esto sea ası́. Para ello, se pueden realizar tests sobre los valores correspondientes a dichos fenómenos. Por otro lado, para aspectos relativamente importantes del modelo es interesante realizar un análisis de sensibilidad. Por ejemplo, el análisis de sensibilidad se puede referir al nivel de detalle. Si se representa un conjunto de procesos quı́micos, se puede discretizar el problema y representar todo el fluido en paquetes de determinado volumen. El análisis Configuración del informe Capı́tulo 5. VERIFICACIÓN Y VALIDACIÓN DE MODELOS 134 de sensibilidad permitirı́a obtener un tamaño adecuado de los paquetes sin un consumo de recursos de computación demasiado elevado. Cuando el modelo está finalmente construido hay que analizar los resultados finales con detalle. Es posible constrastar los resultados del modelo con datos históricos del mismo. Para esta tarea es adecuado alimentar al modelo con datos históricos, y comparar los valores de las variables de salida que ofrece el modelo con los que se dieron en la realidad. En caso de que el sistema no exista, conviene discutir los resultados con expertos, conocedores del comportamiento de sistemas parecidos al estudiado o, incluso, comparar los resultados de ese modelo con el de otros de naturaleza parecida y que hayan sido validados previamente. La animación puede ser de gran utilidad para realizar el estudio, ya que puede permitir observar la evolución del modelo y que las personas que pueden contribuir a la validación del modelo dispongan de más información. Por último, la credibilidad de un modelo consiste en la confianza que depositan en ese modelo las personas responsables de tomar decisiones. Queda fuera del alcance de este texto discutir en profundidad cómo construir modelos creı́bles, aunque es una tarea de gran importancia. Algunas de las pautas relativas a la validación también contribuyen positivamente a la credibilidad de un modelo. Por ejemplo, la implicación de los directivos o la aprobación por parte de algún experto con crédito para los directivos pueden concederle más credibilidad al modelo. Por último, conviene señalar que un modelo podrá ser tanto más creı́ble cuanto más válido sea, aunque no existen garantı́as de que un modelo perfectamente validado resulte creı́ble. 5.5. Resumen Los procesos de verificación y validación garantizan, respectivamente, que un modelo de simulación está bien programado y que un modelo representa de forma adecuada el sistema estudiado para los objetivos propuestos. Existen diferentes técnicas, algunas de las cuales se han presentado brevemente en este capı́tulo. En particular, se han mostrado algunos ejemplos de verificación y se han presentado las herramientas más importantes de las que dispone Witness para realizar las tareas de verificación. Validación Un modelo bien verificado y validado se pueden explotar para ayudar a la toma de decisiones. Para ello, es necesario realizar el análisis de las variables de salida de forma rigurosa, que es a lo que se dedica el capı́tulo siguiente. Técnicas para la validación Capı́tulo 6 ANÁLISIS DE DATOS DE SALIDA. ANÁLISIS DE UNA ALTERNATIVA 6.1. Introducción En un estudio de simulación, cuando se dispone de un modelo bien construido y alimentado con datos de entrada correctos, es posible realizar la explotación del modelo. Realizar el análisis de comportamiento de las variables de salida de forma correcta es especialmente importante, ya que de ese análisis dependerán las decisiones que se adopten. El propósito más frecuente de un estudio de simulación suele ser analizar el comportamiento de un sistema (para una configuración determinada) o comparar dos o más configuraciones alternativas para dicho sistema. En este capı́tulo se trata el primer caso, y en el capı́tulo 7 se aborda cómo realizar la comparación de alternativas. Durante la simulación, para reproducir el comportamiento del sistema estudiad se usan valores aleatorios de las variables de entrada, que siguen distribuciones conocidas (por ejemplo, la frecuencia de llegada de clientes a un banco puede seguir una exponencial). Los resultados de la simulación dependen de estos valores y, debido a ello, las variables de salida también son aleatorias pero con el inconveniente de que en este caso no se conoce su distribución. Es necesario analizar con rigor los datos de salida Existen dos errores que se cometen con frecuencia en relación con la naturaleza estocástica de los sistemas que se analizan mediante simulación. El primero consiste en analizar el comportamiento durante un solo periodo de tiempo, es decir, realizar una sola replicación. Por ejemplo, serı́a erroneo extraer conclusiones sobre el funcionamiento de un puerto mediante en análisis del modelo durante un solo mes. Los datos correspondientes a ese mes pueden no ser representativos. Es necesario realizar varias replicaciones y obtener información significativa a patir de ellas. El segundo error consiste en realizar la experimentación de forma poco rigurosa y estadı́sticamente errónea. Por ejemplo, si existe correlación entre los datos obtenidos en una replicación y los datos de la anterior, en análisis que se propone aquı́ no tiene validez y las conclusiones pueden ser equivocadas. Dos errores comunes Capı́tulo 6. ANÁLISIS DE DATOS DE SALIDA. ANÁLISIS DE UNA ALTERNATIVA 136 En primera aproximación, se puede caracterizar una variable aleatoria mediante un valor puntual acompañado de un intervalo de confianza que mida el error de esta estimación. También se pueden realizar análisis de otra naturaleza para caracterizar aspectos diferentes del valor esperado para las variables de salida, como, por ejemplo, la probabilidad de que ocurra un determinado fenómeno (la probabilidad de que se produzca, por ejemplo, un rotura de stock). Caracterización de un sistema A lo largo del resto del capı́tulo se presenta cómo realizar el análisis de una alternativa. En primer lugar, en la sección 6.2 se presenta la diferencia entre le régimen permanente y el régimen transitorio. En la sigiente sección, 6.3, se describen los tipos de simulación atendiendo al tipo de análisis que requiere cada una de ellas: las simulaciones con terminación, cuyo análisis se presenta con detalle en la sección 6.4 y las simulaciones sin terminación, a las que se dedica la sección 6.5. En la sección 6.6 se proponen dos ejemplo, uno para cada tipo de simulación. Finalmente, se resumen las ideas más importantes del capı́tulo en la sección 6.7. Estructura del capı́tulo 6.2. Régimen transitorio y régimen estacionario Para ilustrar el concepto de régimen permanente, vamos a emplear un ejemplo sencillo. Imaginemos una lı́nea de montaje de electrodomésticos. Una variable de salida para en un estudio de simulación de dicha lı́nea podrı́a ser la producción de electrodomésticos. Podrı́amos, en particular, considerar las variables de salida Yi como el número de productos finalizados en la hora i-ésima. Existen varias consideraciones importantes al respecto de estas variables. Yi en una variable aleatoria, es decir, la producción de durante la hora i no es un valor determinista. Dado que la evolución del sistema depende de fenómenos aleatorios, la producción en cada hora no se puede determinar de forma inequı́voca. Sin embargo, sı́ que existe una función de distribución para las variables Yi , FYi (y) = p(Yi ≤ y). Siempre existen condiciones inciales del sistema, I. Para este ejemplo, las condiciones iniciales podrı́an ser: el contenido de la lı́nea al comienzo de la simulación, el tiempo restante hasta la siguiente averı́a de cada una de las máquinas, etc. La producción horaria dependerá de las condiciones iniciales del sistema durante un determinado periodo de tiempo. En efecto, si la lı́nea está inicialmente vacı́a, la producción correspondiente a las primeras horas será menor que si está llena. Tı́picamente, a patir de cierto instante, el comportamiento de Yi no depende de las condiciones iniciales y, además, no cambia con el tiempo. Es decir, FYi (y) = FYi−1 (y), lo que siginifica que el comportamiento de la variable de salida se ha estabilizado. Es decir, la función de distribución de la variable de salida no cambia. Esto no siginifica que el valor de la variable de salida ya no se modifique. Para cada valor de i, una vez Comportamiento de las variables de salida Capı́tulo 6. ANÁLISIS DE DATOS DE SALIDA. ANÁLISIS DE UNA ALTERNATIVA 137 estabilizado el comportamiento de Y , se obtendrá un posible valor de acuerdo con la función de distribución FY (y) {PENDIENTE: poner figura con evolución de las Fs y referencia a ella en el texto} En los sistemas en los que, efectivamente, el comportamiento de las variables se estabiliza a partir de un cierto instante, se puede distinguir entre el régimen transitorio y el régimen permanente. El régimen transitorio es el tiempo durante el cual las funciones de distribución de Yi cambian con el tiempo. El régimen permanente se alcanza una vez que dichas variables aleatorias ya no se modifican con el tiempo. El régimen transitorio sı́ depende de las condiciones iniciales. El tiempo en el que se tarda en alcanzar el régimen permanente depende de las condiciones iniciales, pero no ası́ el régimen permanente propiamente dicho. 6.3. Régimen transitorio y régimen permanente Tipos de simulación La importancia relativa y el tratamiento de los regı́menes transitorio y estacionario dependen del tipo de simulación. En este sentido, existen dos tipos de simulación: simulación sin terminación y simulación con terminación. Una simulación con terminación es aquella en la que el final de la misma está definido por un evento interno que sucede en t = TE y, por lo tanto, tiene una duración definida en el intervalo temporal [0, TE ]. Tı́picamente, tras este instante el sistema es devuelto un estado determinado, a partir del cual vuelve a comenzar a operar. Por ejemplo, la operación de la sucursal de un banco puede ser una simulación terminación, donde al final de cada joranada el banco se vacı́a y al dı́a siguiente se comienza de nuevo con la sucursal vacı́a. Simulaciones con terminación Por otro lado, una simulación sin terminación es aquella en la que no hay un evento que marque el fin de la misma y en la que el inicio tampoco suele una parte representativa del mismo. Las simulaciones sin terminación pueden ser de tres tipos. Con régimen permanente, en las que, como se ha comentado antes, el comportamiento de las variables de salida se estabiliza y a partir de cierto instante ya no varı́a. Con régimen permanente periódico, en que se puede observar un comportamiento cı́clico de las variables de salida. Otros tipos en los que no se puede hablar de ningún régimen permanente ni cı́clico. Simulaciones sin terminación En este texto nos ocuparemos de las simulaciones sin terminación y las similuaciones con terminación y con régimen permanente. Capı́tulo 6. ANÁLISIS DE DATOS DE SALIDA. ANÁLISIS DE UNA ALTERNATIVA Los problemas especı́ficos de los que depende el análisis de las simulaciones con terminación son dos: establecer las condiciones inciales y caracterizar las variables de salida. Condiciones inciales. Para obtener resultados fiables, es necesario representar, con la herramienta de software correspondiente, las condiciones iniciales a partir de las cuales opera el sistema. Estimación de media y de otros parámetros. Tı́picamente, en un primer análisis se obtiene una estimación de la media de la variable de salida estudiada y un intervalo de confianza para la misma. Por supuesto, se pueden realizar análisis más amplios. En el caso de las las simulaciones sin terminación, los problemas son los siguientes. Estimar cuándo se ha alcanzado el régimen permanente para deterimnar cuál es el tiempo de calentamiento durante el cual se debe correr el modelo y a partir del cual se deben tomar resultados. Estimación de media y de otros parámetros, como en el caso de las simulaciones con terminación. En este caso, como se comentará, existen dos alternativas. 138 Análisis de las simulaciones conn terminación Análisis de las simulaciones sin terminación A continuación se trata detalladamente cómo realizar estos dos tipos de análisis, explicando cómo caracterizar los resultados de la simulación. 6.4. Análisis de los datos de salida de simulaciones con terminación Partiendo de n replicaciones de un modelo con terminación, donde cada una empieza con las mismas condiciones iniciales y termina con el evento E, la independencia de estas replicaciones depende de la independencia de los números aleatorios usados en cada una de ellas. Por simplicidad, se supone a partir de ahora que únicamente interesa el resultado de una variable del modelo Y , donde el valor tomado en cada replicación se expresa mediante yj (j = 1, · · · , n). A continuación se detalla cómo llevar a cabo el análisis de este tipo de simulaciones. 6.4.1. Estimación de parámetros Generalmente, la primera forma de caracterizar un sistema es mediante la estimación del valor esperado (media) de la variable de salida estudiada, μY . Realizando n replicaciones independientes, se obtiene una muestra y1 , · · · , yn cuya media Y (n) es un estimador sin sesgo del valor esperado de la variable de salida. Sin embargo, aunque sea un estimador sin sesgo, como se ha Estimación de la media Capı́tulo 6. ANÁLISIS DE DATOS DE SALIDA. ANÁLISIS DE UNA ALTERNATIVA 139 obtenido a partir de una muestra finita de valores, se desconoce cómo de cerca está Y (n) de μY . Por este motivo conviene acompañar a este valor de un intervalo de confianza cuya expresión es: ⎡ ⎣Y (n) − tn−1,1−α/2 donde Y (n) = n i=1 n yi y S2 = n i=1 S 2 (n) , Y (n) + tn−1,1−α/2 n ⎤ S 2 (n) ⎦ n (6.1) 2 (yi −Y (n)) n−1 La probabilidad de que μY esté contenido en el intervalo anterior es cercana a 1 − α (tanto más cuanto más cerca esté Y de una distribución normal). En general, se obtienen mejores resultados con variables que siguen una distribución simétrica y con valores de n altos (consultar el capı́tulo 3, de repaso de estadı́stica). Cuanto mayor es el nivel de confianza, 1 − α, mayor es la amplitud del intervalo que acompaña al valor puntual y, por lo tanto, menor la precisión de la estimación de la variable deseada. Explicado de otra manera, para un determinado número n de observaciones de la variable de salida, cuanto mayor es la amplitud del intervalo mayor será la probabilidad de que dicho intervalo contenga, efectivamente, a la media. Para aumentar esta precisión, o lo que es lo mismo reducir la amplitud del intervalo para un α determinado, existen dos alternativas: Intervalo de confianza para la media Obtener una precisión concreta Aumentar el número de observaciones de la variable de salida, es decir, aumentar el número de replicaciones n. Reducir la varianza de la muestra. Este punto es ampliamente descrito en el capı́tulo 9 A continuación se explica cómo determinar el número de replicaciones necesarias para estimar μY con un error de precisión concreto. Estimación de la media con un determinado error absoluto máximo El error en la estimación de la media es β = |Y (n) − μY |, por 2lo que el error absoluto máximo de la estimación de la media es tn−1,1−α/2 S (n) . En efecto, si la media pertenece al intervalo de confianza dado por la expresión 6.1, en el peor de los casos, el error máximo se comete si la media μY es igual a uno de los dos extremos del intervalo, en cuyo caso, el error cometido al estimar la media con Y (n) es igual a la semiamplitud del intervalo. Por lo tanto el número de replicaciones necesarias, na (β), para obtener un error absoluto máximo en la estimación, β : ⎧ ⎨ na (β) = min i ≥ n tal que ⎩ ti−1,1−α/2 ⎫ ⎬ S 2 (n) ≤β ⎭ i (6.2) Número de replicaciones para obtener un error absoluto máximo Capı́tulo 6. ANÁLISIS DE DATOS DE SALIDA. ANÁLISIS DE UNA ALTERNATIVA 140 Para calcular na (β) hay que seguir los siguientes pasos: 1. Realizar n ≥ 2 replicaciones y calcular S 2 (n). 2. Para ese valor de S 2 (n), iterar incrementando i hasta encontrar un valor que cumpla ti−1,1−α/2 S 2 (n) ≤β i 3. Una vez encontrado ese valor de i, realizar na (β) − n replicaciones adicionales. Con las na (β) observaciones de Y , calcular un intervalo como el de la expresión 6.1 La precisión de 6.2 depende de la efectividad de S 2 (n) como estimador de V ar (Y ), por lo que n debe ser suficientemente alto. Estimación de la media con un determinado error relativo máximo Alternativamente se puede perseguir un intervalo de confianza con un error relativo máximo, que %viene dado por la expresión Y (n) tiene un error relativo % % % γ, donde %Y (n) − μY % / |μY | = γ. Para encontrar el número de replicaciones necesarias para obtener esa precisión se calcula: ⎫ ⎧ 2 ⎪ ⎪ S (n) ⎨ ti−1,1−α/2 γ ⎬ i na (γ) = min i ≥ n tal que (6.3) ≤ ⎪ 1−γ⎪ Y (n) ⎭ ⎩ Número de replicaciones para obtener un error relativo máximo El proceso para obtener una estimación de μY , con un error relativo γ y un nivel de confianza 1 − α, es el siguiente: 1. Realizar n ≥ 2 replicaciones y calcular S 2 (n). 2. Para ese valor de S(n)2 , calcular na (γ), según 6.3. 3. Realizar na (γ) − n replicaciones adicionales y tomar Y (na (γ)) como estimador puntual de μY con un intervalo de confianza: + * S 2 (na (γ)) S 2 (na (γ)) , Y (na (γ)) + tna (γ)−1,1−α/2 Y (na (γ)) − tna (γ)−1,1−α/2 na (γ) na (γ) Estimación de otros parámetros Hay casos en los que interesa estudiar otros valores relativos al comportamiento del sistema diferentes al valor esperado de una variable. Por ejemplo, si se analiza el funcionamiento de una cola, puede interesar, además del tiempo medio de espera, conocer en profundidad como se distribuye esa espera: la probabilidad de que el tiempo en cola supere un valor concreto, la tasa de ocupación de los puestos de servicio, etc. En otro caso, por ejemplo, puede ser interesante conocer la probabilidad de que un pedido se rechace porque el sistema de fabricación esté saturado. Capı́tulo 6. ANÁLISIS DE DATOS DE SALIDA. ANÁLISIS DE UNA ALTERNATIVA 141 Aunque queda fuera del alcance de este texto revisar en profundidad este tipo de análisis, a continuación, a tı́tulo ilustrativo, se comenta un ejemplo. Para estimar la probabilidad p de que una variable Y tome algún valor dentro del intervalo B, es decir, P (Y∈ B) basta con realizar n replicaciones independientes, con las que se obtiene una muestra y1 , · · · yn . Sea S el número de observaciones que caen dentro del intervalo B. La variable S se distribuye según una binomial de parámetros p y n. El valor de p y su intervalo de confianza asociado (con un nivel 1 − α) se estima mediante las expresiones: Estimación del parámetro de una distribución binomial S n ⎡ ⎤ p̂(1 − p̂) p̂(1 − p̂) ⎣p̂ − z1−α/2 ⎦ , p̂ − z1−α/2 n n p̂ = (6.4) donde z1−α/2 es la probabilidad de que una variable que se distribuye según un normal estándar sea menor que 1 − α/2. 6.4.2. Elección de las condiciones iniciales Como se indica en la sección 6.3, la elección de las condiciones iniciales es una parte importante en el análisis de simulaciones con terminación, ya que el comportamiento durante el régimen transitorio es relevante para el análisis. En algunos casos las condiciones iniciales están bien definidas y su elección no constituye un problema. En ejemplo de la sucursal bancaria, al comienzo de cada jornada no hay clientes ni en las colas de espera ni en los puestos. Pero en otros casos esta elección no es tan sencilla. Por ejemplo, si se pretende estudiar el funcionamiento de la oficina bancaria solo entre las doce del mediodı́a y el cierre de la misma. A continuación se explican dos métodos para la elección de las condiciones iniciales, ilustradas con el ejemplo anterior. El primero de ellos consiste en comenzar la simulación desde un estado previo conocido y ejecutar el modelo hasta el instante a partir del cual se desea realizar el análisis del modelo. En el ejemplo del banco, se simuları́a desde la apertura de la oficina hasta el cierre, pero solo se tendrı́an en cuenta los tiempos de espera a partir las 12:00 pm. Este método presenta dos desventajas: la primera de ellas es el coste de un tiempo de simulación ya que el modelo corre durante un tiempo solo para que esté las condiciones iniciales adecuadas a partir del instante inicial del periodo que se desea analizar; la segunda desventaja es que no ofrece garantı́as de que el estado a partir del cual comienza la toma de datos sea representativo de las verdaderas condiciones iniciales del sistema. El problema de establecer las condiciones iniciales Comenzar desde un estado previo conocido Capı́tulo 6. ANÁLISIS DE DATOS DE SALIDA. ANÁLISIS DE UNA ALTERNATIVA El segundo método consiste en recoger datos del estado de las variables en el sistema real y modelar las condiciones iniciales a partir de las distribuciones de probabilidad que mejor se ajusten a los mismos. De este modo, las condiciones iniciales de cada replicación vendrán determinadas por variables aleatorias independientes. Aplicándolo al ejemplo, se tratarı́a de tomar muestras en el sistema del número de clientes a las 12:00 pm, e intentar ajustar estos datos mediante una función de probabilidad para, posteriormente, al iniciar cada replicación generar valores de dichas variables con los cuales configurar el estado inicial del modelo. 6.5. 142 Reproducir el estado inicial a patir de datos históricos Análisis de los datos de salida de simulaciones sin terminación En las simulaciones sin terminación, las condiciones iniciales y la duración de la simulación no son relevantes para la evaluación del comportamiento del sistema y, generalmente, interesa el comportamiento durante el régimen estacionario. En estos casos, hay que aislar la parte de la simulación perteneciente al régimen transitorio, que depende del estado inicial del modelo, para no incluirla en el análisis. Si no se hace ası́, dado que el valor esperado de la variable de salida es diferente en el régimen transitorio con respecto al estacionario, la estimación obtenida tiene un sesgo respecto al verdadero valor esperado durante el régimen estacionario. Independientemente de las condiciones iniciales elegidas, pasado un tiempo, la simulación converge al régimen estacionario sin afectar al valor esperado, aunque el tiempo que tarda en converger sı́ depende de las condiciones iniciales. Por lo tanto, es necesario identificar el régimen transitorio y ejecutar el modelo durante un periodo de tiempo hasta que el comportamiento de la variable de salida (y en particular su valor esperado) se estabilice. Cuando se alcanza este momento, a partir del estado en el que se encuentra el modelo, se comienza la toma de datos de las variables de salida para el análisis del sistema. El tiempo durante el cual hay que correr el modelo antes de tomar datos se conoce como tiempo de calentamiento del modelo. El problema del tiempo de calentamiento Si se denomina Y(j) a la variable aleatoria que caracteriza el comportamiento de la variable de salida Y en el j-ésimo valor observado en la simulación, el objetivo es encontrar: μY = lı́m E(Y(j) ) Expresión matemática del problema j→∞ Si se dispone de un conjunto de m valores de la variable de salida Y , y(1) , · · · , y(m) , correspondientes a los instantes el valor 1, 2, · · · , m, estimar de μY a patir de la media de todos esos valores Y (m) = m y(j) m j=1 es claramen- te erróneo ya que existen observaciones que pertenecen al régimen transitorio y, por lo tanto, no corresponden a valores de la variable aleatoria Y una vez su comportamiento de ha estabilizado. Capı́tulo 6. ANÁLISIS DE DATOS DE SALIDA. ANÁLISIS DE UNA ALTERNATIVA 143 Un estimador menos sesgado que el anterior consistirı́a en eliminar todos aquellos valores que pertenecen al régimen transitorio. Es decir, obtener el siguiente estimador, donde l representa el conjunto de observaciones que pertenecen al régimen permanente: m Y (m, l) = j=l+1 y(j) m−l (0 ≤ l ≤ m − 1) Y (m, l) es un estimador de μY menos sesgado que Y (m) al haber eliminado las observaciones dependientes de condiciones iniciales. El problema del tiempo de calentamiento consiste, entonces, en determinar l, es decir cuanto tarda el sistema en alcanzar aproximadamente el régimen estacionario. Convierte señalar, que la elección de un valor demasiado elevado para l se traduicirı́a en una menor eficiencia de computación, ya que se descartarı́an valores de la variable de salida que sı́ pertenecen al régimen permanente, con lo que se estarı́a empleando un tiempo de computación mayor del estrictamente necesario para obtener un estimador de la media. Por otro lado, la elección de un valor de l demasiado pequeño harı́a que el estimador fuera sesgado, que es, precisamente, lo que se trata de evitar. Por ello, es importante disponer de una técnica que permita obtener un valor de l suficientemente grande como para evitar el incluir observaciones del régiment tansitorio pero sin incurrir en elevados tiempo de computación. 6.5.1. Errores en el cálculo del tiempo de calentamiento Cálculo del tiempo de calentamiento El método de Welch es un método sencillo, de carácter gráfico, que permite determinar el tiempo de calentamiento. En general, es difı́cil determinar l ya que, a pesar de que con la evolución de la simulación E(y(j) ) → μY , cualquier muestra analizada y(1) , y(2) , · · · está compuesta por valores aleatorios y esta tendencia, generalmente, no se aprecia de forma nı́tida (ver figura 6.1). El método de Welch Capı́tulo 6. ANÁLISIS DE DATOS DE SALIDA. ANÁLISIS DE UNA ALTERNATIVA Figura 6.1: representación de una muestra y(j) . El método de Welch se basa en contrarrestar esta aleatoriedad estudiando, en vez de una sola muestra, el promedio de las observaciones de varias replicaciones. En lo que sigue, se denota con yi(j) a la j-ésima observación de la replicación i-ésima (i = 1, · · · , n y j = 1, · · · , m). El método de Welch consta de cuatro pasos: 1. Realizar n replicaciones (n ≥ 5) de longitud m, donde m debe ser grande en relación al valor esperado de l. 2. Obtener: n y (j) = yi(j) n i=1 para i = 1, 2, · · · , m. La serie y (1) , y (2) , · · · , y (n) tiene un valor esperado E(Y (j) ) = E(Y(j) ) y varianza V ar (Y (j) ) = V ar (Y(j) )/n. 3. Para alisar las oscilaciones de alta frecuencia de y (1) , y (2) , · · · (pero manteniendo la tendencia de su evolución) se define la media móvil y (j) (w) como: y (j) (w) = ⎧ w ⎪ ⎨ s=−w y (j+s) , si j = w + 1, · · · , m − w, ⎪ ⎩ si j = 1, · · · , w 2w+1 j−1 s=−(j−1) y (j+s) , 2j−1 (6.5) 4. Representar Y (j) (w) para j = 1, 2, · · · , m − w y darle a l el valor de j para el que la serie y (1) (w), y (2) (w), · · · parezca converger (ver figura 6.3). 144 Capı́tulo 6. ANÁLISIS DE DATOS DE SALIDA. ANÁLISIS DE UNA ALTERNATIVA 145 Figura 6.2: cálculo de la media móvil para w = 1. {PENDIENTE.Ampliar la figura, cambiar el PIE para que quede mejor ilustrado} Figura 6.3: representación gráfica de una media móvil (w = 20). Al aplicar este método es recomendable: Realizar 5 ó 10 replicaciones con m mucho mayor que el valor previsto para l. En particular, m debe ser lo bastante grande para permitir que ocurran eventos poco frecuentes (p.e. averı́as en las máquinas). Representar Y (i) (w), aumentando el valor de w hasta que la curva aparezca razonablemente lisa. A partir de esta gráfica elegir l. Si no se encuentra ningún w que alise la gráfica lo suficiente, aumentar el número de replicaciones y repetir el proceso desde el paso 2. El principal inconveniente de este método es que el número de replicaciones necesarias para elegir l puede ser relativamente alto si la variable Y presenta mucha variabilidad. A esto hay que sumar que la elección de l no se realiza de una manera objetiva. Recomendaciones para el método de Welch Capı́tulo 6. ANÁLISIS DE DATOS DE SALIDA. ANÁLISIS DE UNA ALTERNATIVA 6.5.2. Estimación de parámetros Para estimar el valor esperado de una variable de salida, existen dos alternativas: realizar varias replicaciones o realizar una única replicación de mayor longitud. A continuación se presentan estas dos alternativas. Múltiples replicaciones Una primera forma de obtener estimación de parámetros consiste en lo que se denomiena método de replicación/eliminación, que consiste en realizar n replicaciones independientes de longitud m, descartando la parte correspondiente al tiempo de calentamiento en cada una de ellas. Los datos restantes se analizan como en el caso de simulaciones con terminación (ver apartado 6.4). Suponiendo que se realizan n replicaciones de longitud m cada una (donde m es mucho mayor que l), se define yi como: m yi = j=l+1 yi(j) m−l con i = 1, 2, · · · , n, entonces E(yi ) ≈ μY y para dar una estimación acompañada de un intervalo de confianza al (1 − α) para la variable de salida se emplea la siguiente expresión: ⎡ ⎤ 2 (n) 2 (n) S S ⎣Y (n) − tn−1,1−α/2 ⎦ , Y (n) + tn−1,1−α/2 (6.6) n n donde Y (n) y S 2 tiene la misma expresión que en 6.1. {PENDIENTE. Cambiar figura, que ponga Y mayúscula} 146 Capı́tulo 6. ANÁLISIS DE DATOS DE SALIDA. ANÁLISIS DE UNA ALTERNATIVA Figura 6.4: estimación de parámetros en simulaciones sin terminación. Método de múltiples replicaciones. Replicación única En el método de replicación única sólo se hace una replicación pero con un tamaño muy superior a las anteriores. Una vez eliminadas las primeras l observaciones, se agrupan los datos restantes en k lotes de longitud m que se analizan de la misma forma que en el método replicación/eliminación. Por lo tanto, la duración total de la replicación es l + k · · · m (ver figura 6.5). Como ventaja, solamente hay que eliminar un tiempo de calentamiento que tiene la misma duración que el eliminado en cada una de las replicaciones anteriores. {PENDIENTE. Cambiar figura, que ponga Y mayúscula} 147 Capı́tulo 6. ANÁLISIS DE DATOS DE SALIDA. ANÁLISIS DE UNA ALTERNATIVA 148 Figura 6.5: estimación de parámetros en simulaciones sin terminación. Método de replicación única. La dificultad de este método se encuentra en la elección de m, por la siguiente razón. Dado que el comienzo de cada conjunto de datos está obtenido a partir de la situación en la que quedó el modelo después del conjunto de datos inmediatamente anterior, existe correlación entre los valores de la variable de salida de un lote y del inmediatamente anterior. Cuanto mayor es el valor de m, más debil es la correlación, de manera que para valores relativamente grandes, la correlación es despreciable y el análisis propuesto es válido. El problema consiste, por lo tanto, en escoger un valor de m suficientemente elevado para que la correlación no sea apreciable pero no tan elevado como para que el esfuerzo computacional resulte ineficiente. Para obtener más información acerca de cómo elegir k se recomienda consultar Banks, 2000. 6.6. Ejemplos de aplicación A continuación se proponen dos ejemplos. En el primero, se estima la media y la probabilidad de que una variable de salida tome valores dentro de un determinado intervalo. En el segundo se calcula el tiempo de calentamiento para un sistema dado. El inconveniente de realizar una única replicación Capı́tulo 6. ANÁLISIS DE DATOS DE SALIDA. ANÁLISIS DE UNA ALTERNATIVA 6.6.1. 149 Ejemplo 6.1: análisis de los datos de salida de un estudio de simulación sin terminación Una sucursal bancaria abre a las 9:00 de la mañana y cierra sus puertas a las 14:00, pero la sucursal no termina el servicio hasta que son atendidos todos los clientes que están dentro en el momento del cierre. La oficina tiene tres puestos de servicio: dos cajas, donde se atienden las operaciones más rápidas, y una mesa, donde se llevan a cabo los servicios de mayor importancia que, además, requieren más tiempo. Los clientes se pueden agrupar en tres tipos, cuya caracterización viene dada por la tabla siguiente: Tiempo entre llegadas (min) Tiempo servicio caja (min) Tiempo servicio en mesa (min) Cliente A Exp(4) Gamma(6,1) - Cliente B Exp(20) Gamma(4,2) Gamma(3,5) Cliente C Exp(50) Gamma(6,5) Se pide estimar: el tiempo medio que los clientes pasan en la cola, acompañado de un intervalo de confianza al 90 % con un error relativo máximo para la estimación de la media menor del 15 %; la probabilidad de que el servicio se extienda más allá de las 14:00. Calcular el valor puntual acompañado de un intervalo de confianza al 90 %. Para resolver el ejemplo, inicialmente se realizan 20 replicaciones del modelo, y a partir de S 2 (n) de esta muestra se calcula el número total de replicaciones necesarias para conseguir la precisión pedida. Con los valores de la variable de salida obtenidos se estima el valor esperado del tiempo de espera, acompañado de su intervalo de confianza. Para completar el ejemplo se calcula la probabilidad de que en un dı́a concreto haya clientes esperando a ser servidos a la hora de cerrar las puertas. Para seguir la resolución del ejemplo se recomienda trabajar sobre los siguientes ficheros: Ejemplo1-1.mod: contiene el modelo del sistema en Witness. Ejemplo6-1.xls: es la hoja de cálculo donde se propone resolver el ejemplo. Ejemplo6-1 experimento1.xpt: archivo preparado para obtener 20 replicaciones independientes. Ejemplo6-1 experimento2.xpt: archivo preparado para obtener las replicaciones adicionales. Planteamiento Capı́tulo 6. ANÁLISIS DE DATOS DE SALIDA. ANÁLISIS DE UNA ALTERNATIVA 150 Ejemplo6-1 solucion.xls: muestra cómo debe quedar la hoja de cálculo una vez resuelto el ejemplo. El experimento El primer paso es abrir el modelo Ejemplo1-1.mod. Se compone, principalmente, de: Tres elementos de tipo entidadpara modelan los tres tipos de clientes. Tres elementos actividadpara los puestos de servicio. Un elemento colaque representa la cola antes del servicio. La variableTcierre, que registra la hora en la que se termina de atender al último cliente. A continuación se debe abrir el experimento Ejemplo1-1 experimento.xpt (Modelo / Experimento / Abrir...) y se puede ejecutar la simulación (Modelo / Experimento / Ejec. acel.) Salida csv modelo Al realizar el experimento, se vuelcan los informes del experimento en un archivo csv (en este caso Ej611.csv, tal y como está configurado el archivo xpt). Tal y como está configurado el modelo, en este csv de salida solo se guardan los informes de dos elementos: la cola y la variable Tcierre. Archivos disponibles Capı́tulo 6. ANÁLISIS DE DATOS DE SALIDA. ANÁLISIS DE UNA ALTERNATIVA 151 La ayuda de Witness ofrece la información que los archivos csv contienen para cada tipo de elemento. Para acceder a esta información, tras abrir la ayuda (F1), hay que seleccionar la pestaña de “Buscar” y realizar una búsqueda del término csv. El sistema de ayuda ofrece un conjunto de entradas: “CSV output for buffers”, “CSV output for carrieres”, etc. Seleccionando cada una de las entradas se puede acceder la explicación del contenido del csv, como, por ejemplo, al de las entidades (parts). El tiempo medio que los elementos entidad pasan en un elemento tipo cola se almacena en la columna número 13 del archivo de salida csv. Esta información se utiliza para obtener el tiempo medio que los clientes pasan en la cola en cada replicación. Con la variable Tcierre se registra la salida del último cliente para comprobar si la duración de esa replicación es mayor de 300 minutos (columna 9 del fichero csv). Contenido del archivo csv Capı́tulo 6. ANÁLISIS DE DATOS DE SALIDA. ANÁLISIS DE UNA ALTERNATIVA El análisis estadı́stico Se recomienda seguir los siguientes pasos: 1. Importar el archivo Ej611.csv en la primera hoja del fichero (Datos / Obtener datos externos / Importar datos ...) de manera que el primer dato quede en la celda A1. Para hacerlo correctamente, marcar ((Delimitados)) en la primera ventana del asistente; en la segunda ((Coma)) como separador y en la tercera, dentro de la opción ((Avanzadas)), seleccionar como separador decimal (( . )) y como separador de miles (( , )). 2. Ordenar los datos importados, primero por ((columna E)) y después de ((columna B)) (Datos / Ordenar). De esta manera queda agrupada la información de Cola y la de Tcierre y, a su vez, quedan ordenadas por orden creciente de replicaciones. 3. Copiar los 20 valores del tiempo medio de espera en la hoja ((Cálculo rep. adicionales)) (columna 13 del csv, ((columna M)) una vez importado). 4. Rellenar esta hoja de acuerdo con el contenido del cuadro 1 6.1. Como el cociente entre la semiamplitud del intervalo y la estimación de la media γ (0.2) es mayor que 1−γ = 0,15 es necesario realizar replicaciones adicionales. 5. Para hallar el número de replicaciones necesarias se aplica la expresión √ t (S 2 (n)/i) 6.2. En particular, se trata de evaluar el valor del cociente i−1,0,95Y (n) , donde se admite que Y (n) y S 2 (n), obtenidas con las n primeras replicaciones, son buenas estimaciones de la media y de la varianza de Y , respectivamente. Examinando diferentes valores de i, se obtiene que, si la varianza se mantiene, es suficiente realizar un total de 25 replicaciones: √ ti−1,0,95 (S 2 (n)/i) i Y (n) 21 24 25 0.194 0.180 0.176 6. Realizar cinco nuevas replicaciones (cargando el experimento Ejemplo6-1 experimento2.xpt ) y repetir los pasos anteriores. Con cuatro replicaciones podrı́a ser suficiente, ya que para n = 24, se alcanza exactamente el valor de 0.18, pero con ánimo conservador se realiza una replicación adicional a las que en teorı́a son estrictamente necesarias. El cociente entre la semiamplitud del intervalo y la estimación de la media es igual a 0.18, por lo que el nuevo intervalo cumple con el requisito establecido en términos del error relativo máximo admitido. 1 A la hora de calcular t n−1,1−α/2 hay que tener en cuenta que los parámetros de esta función en Excel son ((DISTR.T.INV(α,grados de libertad))) 152 Capı́tulo 6. ANÁLISIS DE DATOS DE SALIDA. ANÁLISIS DE UNA ALTERNATIVA Función en Excel(n=20) Valor(n=20) Valor(n=25) Y (n) PROMEDIO(D14:D33) 4.98 4.98 S 2 (n) VAR(D14:D33) 6.56 7.00 t49,0,95 DISTR.T.INV(0.1;19) 1.73 1.71 D7*RAIZ(D6/20) 0.99 0.91 Limite sup. D5-D8 3.99 4.08 Limite inf. D5+D8 5.97 5.89 Semi-ampl/Promedio D8/D5 0.20 0.18 Semi-amplitud intervalo 153 Cuadro 6.1: resultado del análisis estadı́stico del ejemplo 6.1. Según el análisis realizado, con un 90 % de probabilidad, el valor esperado para el tiempo medio de espera de los clentes está comprendido en el intervalo [5,10, 6,75]. Para completar el ejemplo, hay que estimar la probabilidad de que queden clientes por servir a las 14:00. Si en una replicación el valor de la variable Tcierre es mayor que 300 minutos (tiempo transcurrido desde las 9:00 a las 14:00), el banco presta servicio después de cerrar sus puertas. En primer lugar, se copian los valores de la variable Tcierre en las 25 replicaciones anteriores en la hoja ((Probabilidad cierre)). En segundo lugar, se calcula el número de veces que Tcierre>300 (función de Excel ((CONTAR.SI(B8:B68;”>300”)))). Según la expresión 6.4 se obtiene: 9 S = = 0,36 n 25 0,36 · 0,64 p̂(1 − p̂) = 0,36 ± 1,64 = 0,36 ± 0,16 p̂ ± z1−α/2 n 25 p̂ = Se estima que la probabilidad de que en un dı́a el banco cierre más tarde de las 14:00 se encuentra en el intervalo [0,20, 0,52], con un 90 % de probabilidad. La función en Excel para calcular z0,95 es ((DISTR.NORM.ESTAND.INV(0.95))). Probabilidad de queden clientes a las 14h Capı́tulo 6. ANÁLISIS DE DATOS DE SALIDA. ANÁLISIS DE UNA ALTERNATIVA 6.6.2. Ejemplo 6.2: análisis de los datos de salida de un estudio de simulación con terminación. Cálculo del tiempo de calentamiento Se pretende estimar el número medio de piezas producidas por hora en un pequeño taller de fabricación. El taller consta de un centro de mecanizado y un centro de inspección colocados en serie como muestra la figura 6.6. Se sabe que los pedidos llegan a la fábrica con un tiempo entre llegadas que sigue una distribución exponencial de media 1.3 minutos. El tiempo de procesado en el centro de mecanizado puede aproximarse mediante una distribución uniforme en el intervalo [0,65, 0,7] minutos, mientras que el tiempo necesario para inspeccionar una pieza es uniforme en el intervalo [0,75, 0,8] minutos. El 90 % de las piezas inspeccionadas se aceptan como válidas, mientras que el 10 % restante deben ser mecanizadas de nuevo. El centro de mecanizado a veces se averı́a. El tiempo entre cada dos averı́as consecutivas sigue una distribución exponencial de media 6 horas. El tiempo de reparación es uniforme en el intervalo [8, 12] minutos. Si el centro de mecanizado está procesando una pieza cuando ocurre una averı́a, esta se termina de mecanizar cuando acaba la reparación. A partir de los datos anteriores se pide proporcionar un intervalo de confianza al 95 % que contenga el valor esperado del número de piezas producidas por hora calculando, previamente, el tiempo de calentamiento del modelo. Figura 6.6: esquema del taller de fabricación. Se trata de una simulación sin terminación de un sistema del que interesa, básicamente, su comportamiento una vez alcanzado el régimen permanente. Por lo tanto, el primer paso para estimar la producción media por hora en régimen estacionario, μY , consisten en el cálculo del tiempo de calentamiento, expresado por el número de horas l que hay que dejar pasar para superar el régimen transitorio. Una vez que se conozca l, se puede estimar el valor esperado de la variable de salida acompañado de un intervalo de confianza. 154 Capı́tulo 6. ANÁLISIS DE DATOS DE SALIDA. ANÁLISIS DE UNA ALTERNATIVA 155 Para abordar el problema que se recomienda utilizar los archivos siguientes: Ejemplo6-2.mod: contiene el modelo del sistema en Witness. Ejemplo6-2 Experimento.xpt: es el experimento para realizar 10 replicaciones de 160 horas (9600 minutos) de duración de manera que en el archivo csv de salida se recojan datos cada 60 minutos). Ejemplo6-2.xls: es la hoja de cálculo donde se propone abordar el problema. Ejemplo6-2 solucion.xls: muestra cómo debe quedar la hoja de cálculo una vez resuelto el ejemplo. El experimento Planteamiento Primero, es necesario obtener la muestra yi(j) (donde yi(j) representa el número de piezas producidas en la hora j-ésima en la replicación i-ésima, i = 0. · · · , 10 y j = · · · , 160). A partir de esa muestra se obtendrán los valores de y (j) y, finalmente, los valores alisados y(j) (w). Para ello, se deben seguir los siguientes pasos. 1. Abrir el archivo Ejemplo1-2.mod. 2. Cargar el experimento Ejemplo1-2 experimento.xpt y ejecutarlo (Modelo / Experimento / Ejec. acel.) 3. Los datos de la simulación se almacenan en el fichero Ej62.csv. Importar dicho archivo a la hoja ((CSV)) del archivo Ejemplo6-2.xls. (a) Datos / Ordenar (b) Datos / Filtro / Autofiltro Figura 6.7: ordenar y filtrar los datos del ejemplo en Excel. Cálculo del tiempo de calentamiento: método de Welch 1. Ordenar los datos de la hoja ((CSV)) primero por el instante al que corresponden los datos (columna D) y después por replicación (columna C), como en la figura 6.7(a). Archivos disponibles Capı́tulo 6. ANÁLISIS DE DATOS DE SALIDA. ANÁLISIS DE UNA ALTERNATIVA 2. Copiar los 10 × 160 valores de yi(j) en el lugar correspondiente de la hoja ((Tiempo de calentamiento)). Estos valores se encuentran en la columna 8 (ver ayuda de Witness para achivos csv corresondientes a entidades). La columna C de la hoja ((Tiempo de calentamiento)) debe contener la producción de entidades de tipo pieza cada hora para cada una de las replicaciones. Por ejemplo, el rango C4:C13 debe contener la producción de entidades durante la primera hora para las diez replicaciones (C4 contendrá la producción para la primera hora de la primera replicación y C13 contendrá la producción para la primera hora de la décima replicación). Igualmente, el rango C14:C23 contendrá la producción de entidades durante la segunda hora para las diez replicaciones, y ası́ sucesivamente con las 160 horas. 3. Calcular, en las celdas sombreadas de la columna D, 2 el promedio, para cada hora j, del número de piezas producidas en las 10 replicaciones (y(j) ). De esta manera se obiene la media para los grupos de valores correspondientes a los rangos C4:C13 (primera hora, j = 1), C14:C23 (segunda hora), C24:C33 (tercera hora), etc. 4. Filtrar las celdas no vacı́as (figura 6.7(b)) y copiar los 160 valores y(j) en la columna G. 5. Calcular, según la expresión 6.5, la media alisada del conjunto y(j) aumentando w hasta apreciar con claridad el paso de régimen transitorio a estacionario. En concreto, tomar w = 5, w = 10 y w = 15. y representar gráficamente dichos valores (figura 6.8). Figura 6.8: medias alisadas para w = 5, w = 10 y w = 15. A patir del gráfico correspondiente a y (j) (15) (w = 15) se puede admitir que tras 25 horas para que el sistema ha alcanzardo el régimen permanente. Es decir, l = 25. 2 función en Excel ((=SI(B5=B4;;PROMEDIO(C5:C14)))) 156 Capı́tulo 6. ANÁLISIS DE DATOS DE SALIDA. ANÁLISIS DE UNA ALTERNATIVA Estimación del valor esperado Para estimar el número de piezas producidas por hora, solo se tienen en cuenta los valores yi(j) con i = 1, · · · , 10 y j = 26, · · · , 160: 1. Ordenar los datos de la hoja CSV primero por replicación y después por hora (al contrario que para el tiempo de calentamiento). 2. Copiar los 10 × 135 valores de yi(j) en el lugar correspondiente de la hoja ((Estimación de la producción)). 3. Calcular, para cada replicación, el promedio de las piezas producidas en una hora. Copiar los valores obtenidos en la columna yi 4. Para concluir el análisis, completar un cuadro como 6.2. Función en Excel Valor Y (n) PROMEDIO(H13:H22) 59.58 S 2 (n) VAR(H13:H22) 0.49 t9,0,975 DISTR.T.INV(0.05;9) 2.26 H5*RAIZ(H4/10) 0.50 Lı́mite sup. H3-H6 59.07 Lı́mite inf. H3+H6 60.08 Semi-amplitud intervalo Cuadro 6.2: resultados del análisis estadı́stico del ejemplo 6.2. Como conclusión del análisis, el valor esperado del número de piezas que se producen por hora se encuentra en el intervalo [59,07, 60,08], con una probabilidad de 95 %. 6.7. Resumen En análisis riguroso y de un modelo de simulación es de gran importancia. Existen diferentes formas de caracterizar el comportamiento de sistema. Uno de los aspectos más importantes es estimar el valor esperado de las variables de salida y construir un intervalo de confianza para dicho valor. Exiten dos tipos de simulación que requieren anñalisis especı́ficos: las simulaciones con terminación (en las que hay que determinar las condiciones iniciales de la simulación) y las simulaciones sin terminación (para las cuales, si existe un régimen permanente, es necesario estimar el tiempo de calentamiento). Este capitulo se ha dedicado al análisis de una configuración. En otras ocasiones, es necesario comparar el comportamiento de un sistema para diferentes configuraciones, que es a lo que se dedica el capı́tulo 7. 157 Capı́tulo 7 ANÁLISIS DE DATOS DE SALIDA. COMPARACIÓN DE VARIAS ALTERNATIVAS 7.1. Introducción En el capı́tulo anterior se ha explicado la importancia de completar el estudio de simulación de un sistema con un análisis estadı́stico para extraer conclusiones correctas. En este capı́tulo se explica cómo llevar a cabo ese análisis cuando se comparan varios sistemas con el objetivo de identificar el mejor. Este tipo de estudios tienen una gran importancia ya que una de las utilidades de la simulación es ayudar a tomar la decisión de qué alternativa implementar cuando se tienen varias opciones. Una manera intuitiva de tratar este problema es ejecutar los modelos durante un tiempo determinado y, dependiendo de si interesa un valor alto o bajo de la variable de salida, elegir el que tenga mejor respuesta. Pero, al igual que sucede en el caso de estudiar una configuración única, la salida de estos modelos es un fenómeno estocástico y no hay garantı́as de que la alternativa elegida por este método sea la adecuada. En este capı́tulo se presentan varios métodos para resolver problemas de comparación de configuraciones alternativas. En la sección 7.2 se trata el caso de comparar dos alternativas mediante el intervalo de confianza de la diferencia de sus variables de salida. En la sección 7.3 se discute cómo hacer la comparación cuando se tienen más de 2 alternativas. Estos conceptos se ponen en práctica en la sección 7.4 mediante la resolución de dos ejercicios sencillos. Para finalizar el capı́tulo, se proponen 2 problemas acompañados de su solución. 7.2. Comparación de dos configuraciones alternativas En esta sección se explica cómo comparar dos alternativas suponiendo que se evalúa su comportamiento a través de una única variable de salida1 . A partir de ahora y1i representa el valor en la i-ésima replicación de la variable de salida en la primera alternativa (Y1 ) y que su valor esperado es υ1 = E(Y1 ) (υ2 = E(Y2 ) para la segunda alternativa). La comparación se hace a partir de una nueva variable aleatoria, Z, definida como la diferencia de la variable de salida en las alternativas 1 y 2, Z = Y1 − Y2 . 1 cuando se quiere estudiar el comportamiento de más de una variable simultáneamente, el problema se conoce como decisión multicriterio y su resolución se escapa del objetivo de este texto. Para más información se recomienda consultar la referencia Law, 2001 Capı́tulo 7. ANÁLISIS DE DATOS DE SALIDA. COMPARACIÓN DE VARIAS ALTERNATIVAS El problema de comparar las dos alternativas consiste entonces en calcular el signo de E(Z) = ζ = υ1 − υ2 . Construyendo un intervalo de confianza para esa variable se considera que existe una diferencia significativa entre ambas configuraciones si dicho intervalo no contiene al cero. A continuación se explica detalladamente este proceso suponiendo que se trata de un modelo de simulación con terminación (ver sección ??). En el caso de que interese el comportamiento en estado estacionario se procede de forma similar pero teniendo en cuenta el problema del tiempo de calentamiento de cada configuración por separado. NOTA: Y1 e Y2 son variables aleatorias que representan un fenómeno a lo largo de una replicación completa. Por ejemplo, y1i puede ser el tiempo medio de espera de los barcos que quieren amarrar en un puerto a lo largo de un dı́a (considerando que la duración de cada replicación es de un dı́a), pero no el tiempo que tiene que esperar un único barco. En caso de querer comparar dos configuraciones que se representan mediante modelos de simulación con terminación se aconseja seguir los siguientes pasos: 1. Obtener un conjunto de observaciones independientes [(y11 , · · · , y1n ) , (y21 , · · · , y2n )]. Se consigue haciendo n replicaciones independientes de cada modelo. 2. Calcular (z1 , · · · , zn ), donde zi = y1i − y2i . 3. Construir un intervalo de confianza para ζ a partir de (z1 , · · · , zn ): S 2 (n) z(n) ± tn−1,1−α/2 n donde: n z(n) = i=1 n zi n y S 2 (n) = i=1 (7.1) [zi − z(n)]2 n−1 Si Z está normalmente distribuida, la probabilidad de que ζ esté contenido en este intervalo es de (1 − α); en el resto de casos esta probabilidad se aproxima para valores altos de n (teorema central del lı́mite, sección 3.4.2). Por tanto, si el intervalo no contiene a 0, la probabilidad de que el valor esperado de ambas alternativas sea diferente es de 1 − α. En este caso se considera que la diferencia es significativa y según su signo se elige la más favorable. 7.3. Comparación de varias alternativas En la sección 7.2 se explica como comparar dos alternativas mediante el intervalo de confianza de su diferencia. Pero es frecuente encontrar problemas donde se barajen más de dos alternativas y en este caso el proceso de selección es más complejo. 159 Capı́tulo 7. ANÁLISIS DE DATOS DE SALIDA. COMPARACIÓN DE VARIAS ALTERNATIVAS Una manera intuitiva de resolver el problema es hacer varios intervalos de confianza comparando todas las alternativas dos a dos. Pero este método tiene una limitación: si se forman k intervalos de confianza Is para las variables νs , donde el nivel de confianza en cada uno de ellos es αs , puede demostrarse que la probabilidad de que se cumplan todos simultáneamente está limitada por la desigualdad de Bonferroni: P (νs ∈ Is para todos = 1, 2, · · · , k) ≥ 1 − k αs (7.2) s=1 Por lo tanto si queremos que el nivel de confianza asociado a k intervalos sea al menos 1−α, el nivel de confianza de cada intervalo particular se debe elegir de manera que se k cumpla s=1 αs = α. Si se toma el mismo valor para todos ellos, αs = α/k. Por ejemplo, suponiendo que se quieren comparar 5 alternativas mediante este método es necesario hacer 10 intervalos Iij (donde i y j representan las alternativas comparadas). Para conseguir que el nivel de confianza de la elección sea 90 %, es decir que la probabilidad de que se cumplan simultáneamente todos los Iij sea del 90 %, y considerando que se toma el mismo nivel de confianza: 10 · αij = α ⇒ αij = 0, 1 = 0, 01 10 por lo que el nivel de confianza de cada intervalo individual es 99 %. El resultado es que los intervalos son más amplios y posiblemente no significativos, ya que es más probable que contengan a 0. Esto hace que este método sea poco aconsejable. A continuación se exponen dos métodos: el primero de ellos para comparar varios sistemas respecto a uno que se considera la referencia, y el segundo para seleccionar la mejor alternativa cuando se dispone de varias. 7.3.1. Comparación de varias alternativas frente a una referencia A partir de ahora se supone que se tienen k alternativas y se pretende comparar su rendimiento con una de ellas que se toma como referencia (por ejemplo, porque es la que actualmente existe y se estudia la posibilidad de reemplazarla por otra del conjunto). En este caso, y siempre que k no sea muy grande, se puede aplicar el método anterior construyendo k − 1 intervalos de confianza para las diferencias ν2 − ν1 ,ν3 − ν1 · · · , νk − ν1 . Teniendo en cuenta la ecuación 7.2, para que la probabilidad de que todos ellos se cumplan simultaneamente sea al menos 1 − α, el nivel de confianza de los intervalos individuales debe ser 1 − α/(k − 1). La interpretación de los resultados obtenidos es la siguiente: si ningún intervalo contiene el valor 0, la probabilidad de que todas las alternativas sean significativamente diferentes a la de referencia es al menos 1 − α. Por el contrario, si el intervalo Ii contiene el valor 0 se puede decir que no existe diferencia significativa entre la alternativa i y a la de referencia. Otra forma de aplicar este método, además del caso en el que se quiera contrastar posibles alternativas frente a una existente, es comparar varias alternativas tomando como referencia la que tenga una media menor (o mayor, depende de que se busque). De este modo se comprueba si la alternativa aparentemente mejor realmente es significativamente diferente al resto. 160 Capı́tulo 7. ANÁLISIS DE DATOS DE SALIDA. COMPARACIÓN DE VARIAS ALTERNATIVAS 7.3.2. Clasificación y selección de la mejor alternativa Hasta ahora se ha explicado cómo comparar varias alternativas entre sı́ cuando el número de opciones disponibles es mayor de dos. El objetivo de esta sección es más ambicioso: se expone un método para elegir la mejor alternativa de k posibles con un nivel de confianza determinado. Sea Yji la variable de interés de la alternativa j en la replicación i y sea νj = E(Yji ). Para aplicar este método es necesario que los valores Yji se hayan obtenido a partir de replicaciones independientes para cada sistema y que se distribuyan normalmente2 . Debido a la aleatoriedad de Yji no se puede asegurar al 100 % que la elección a partir de una muestra sea la correcta, pero si es posible fijar una probabilidad de acierto P ∗ . Del mismo modo, no tiene sentido complicar en exceso los cálculos para discernir qué alternativa es la mejor si la diferencia entre las 2 mejores es muy pequeña. Por tanto es aceptable fijar un d∗ tal que si la alternativa elegida es ν1 , la diferencia entre esta y cualquier otra no supere dicho valor (es decir, νi − ν1 ≤ d∗ para todo i). En resumen, aplicando este método se puede afirmar que, con probabilidad P ∗ , la diferencia de las medias de la alternativa elegida y la mejor del conjunto no supera el valor d∗ . Planteamiento del método El método se estructura en dos etapas claramente diferenciadas: en la primera, a partir de los resultados de n replicaciones, se busca el número de replicaciones necesarias para elegir una alternativa. En la segunda se realizan las replicaciones adicionales necesarias y, a partir de una media ponderada de los resultados de las replicaciones de las dos etapas, se elige la mejor. A continuación se enumeran los pasos para aplicarlo. Aplicación Primera etapa 1. Realizar n0 replicaciones independientes de las k alternativas y calcular la media y la varianza de cada muestra obtenida: (1) y j (n0 ) n 0 = i=1 yji n0 n 0 y Sj2 (n) = i=1 (1) [yji − y j (n0 )]2 n0 − 1 Se recomienda que como mı́nimo n0 = 20. 2. Calcular el número total de replicaciones, Nj , necesarias para llevar a cabo la selección: - , 2 2 h1 Sj (n0 ) (7.3) Nj = máx n0 + 1, (d∗ )2 donde x es el mayor entero menor o igual que x y h1 es una constante tabulada que se puede consultar en la tabla 5. Segunda etapa 2 Aunque esta última suposición parezca un problema no lo es en realidad ya que no es muy sensible ante pequeñas variaciones 161 Capı́tulo 7. ANÁLISIS DE DATOS DE SALIDA. COMPARACIÓN DE VARIAS ALTERNATIVAS 1. Realizar las Nj − n0 replicaciones que faltan para alcanzar Nj y calcular su media: Nj (2) Y j (Nj − n0 ) = i=n0 +1 Yji Nj − n0 (7.4) 2. Calcular los pesos Wj1 y Wj2 para i = 1, 2, · · · , k: Wj1 . ⎡ / / (Nj − n0 )(d∗ )2 Nj n0 ⎣ 0 1+ 1− 1− = Nj n0 h21 Sj2 (n0 ) Wj2 = 1 − Wj1 ⎤ ⎦ (7.5) (7.6) 3. Calcular la media ponderada de cada alternativa: (1) (2) X̃j (Nj ) = Wj1 Y j (n0 ) + Wj2 Y j (Nj − n0 ) 4. Finalmente se elige la alternativa con menor (o mayor) X̃j (Nj ). Los valores de P ∗ y d∗ son elección del analista y dependerán de los objetivos del estudio de simulación. Logicamente, cuanto mayor sea P ∗ y menor d∗ mayor será el coste de computación pero mejores los resultados obtenidos. 162 Capı́tulo 7. ANÁLISIS DE DATOS DE SALIDA. COMPARACIÓN DE VARIAS ALTERNATIVAS 7.4. Ejemplos de aplicación 7.4.1. Ejemplo 4.1: comparación de dos alternativas La empresa municipal de transportes de una ciudad se plantea internalizar el servicio de mantenimiento de sus vehı́culos. El ingeniero responsable del proyecto, después de recoger toda la información necesaria y analizar el problema, considera dos posibles soluciones para el taller de reparaciones (figura 7.1): 1. Un puesto de inspección y dos de reparación. 2. Dos puestos de inspección y uno único de reparación. La llegada de vehı́culos al taller se puede modelar mediante una distribución exponencial de media 1 hora. El tiempo medio de inspección de cada autobús se aproxima a una distribución uniforme entre 0,5 y 1,1 horas mientras que el tiempo de reparación lo hace según una gamma de parámetros α = 2, 2 y β = 1. A partir de los datos históricos se estima que el 30 % de los vehı́culos que se revisan necesitan alguna reparación, mientras que el resto sale del taller sin ser sometidos a ninguna otra operación. Todas las colas siguen una disciplina FIFO. Dado que el coste de un centro de inspección y de uno de reparación es muy parecido, se decide seleccionar la alternativa en la que el tiempo medio que los vehı́culos pasan en el taller sea menor. Si fuese el encargado de tomar la decisión, ¿qué alternativa elegirı́a? Figura 7.1: configuraciones alternativas para el taller del ejemplo 4.1 La variable de salida es el tiempo medio que cada vehı́culo pasa en el sistema una vez que la simulación alcanza el estado estacionario. Para resolver el problema, se toma como tiempo de calentamiento 720 horas (se deja su cálculo como ejercicio) y se realiza un experimento como el que se muestra en el cuadro 7.1. La resolución del problema consiste, básicamente, en obtener un intervalo de confianza (en este caso al 99 %) de la diferencia de la variable de salida en cada modelo, Y1 e Y2 . El ejemplo se desarrolla siguiendo los siguientes archivos: Planteamiento 163 Capı́tulo 7. ANÁLISIS DE DATOS DE SALIDA. COMPARACIÓN DE VARIAS ALTERNATIVAS Número de replicaciones Tiempo de calentamiento Longitud de cada replicación Variable de salida 40 720 horas 4000 horas Tiempo medio en el sistema Cuadro 7.1: caracterı́sticas del estudio de simulación. La duración de replicación no incluye el tiempo de calentamiento Ejemplo4-1a.mod : contiene el modelo de la primera alternativa en Witness. Ejemplo4-1b.mod : contiene el modelo de la segunda alternativa en Witness. Ejemplo4-1.xls : es la hoja de cálculo donde se debe resolver el ejemplo. Ejemplo4-1 experimento.txt : Preparado para obtener 40 replicaciones independientes de longitud 4000 horas y un tiempo de calentamiento de 120 horas. Ejemplo4-1 solucion.xls : muestra como debe quedar la hoja de cálculo una vez resuelto el ejemplo. (a) Alternativa 1 (b) Alternativa 2 Figura 7.2: modelo en Witness de las dos alternativas El experimento El primer paso es obtener las dos muestras (y11 , y12 , · · · , y140 ) e (y21 , y22 , · · · , y240 ) a partir de las que se evalúan las configuraciones alternativas. Estos valores se obtienen del informe del elemento ((Autobus)) del archivo de salida CSV de la simulación. Se deben seguir los siguientes pasos: 1. Abrir el modelo de la primera alternativa, Ejemplo4-1a.mod , y cargar el experimento Ejemplo4-1 experimento.txt (Model / Experiment / Open). 164 Capı́tulo 7. ANÁLISIS DE DATOS DE SALIDA. COMPARACIÓN DE VARIAS ALTERNATIVAS 2. Seleccionar Ejemplo4-1a.mod como el modelo de ejecución del experimento (Model / Experiment / Define / Situations). 3. Importar los datos del archivo ((Ej4-1.csv)) en la hoja ((CSV alternativa 1)) del archivo Ejemplo4-1.xls . 4. Los tiempos medios de espera en la cola se guardan en la columna N. Ordenar los datos por número de replicación ( Datos / Ordenar / Columna B) y copiarlos en el lugar correspondiente de la hoja ((Comparación de alternativas)). 5. Repetir el proceso para la segunda configuración (Ejemplo4-1b.mod). Análisis estadı́stico 1. Calcular, en la hoja ((Comparación de alternativas)), la diferencia de los valores de salida en las dos alternativas en cada replicación (zi ). 2. Completar el análisis calculando un cuadro como 7.2. Función Excel Valor z(n) PROMEDIO(F13:F52) 0,68 S 2 (n) VAR(F13:F52) 0,04 t39,0,995 DISTR.T.INV(0,01;39) 2,71 Semi-longitud del intervalo 99 % F6*RAIZ(F5/60) 0,07 Lı́mite superior F4+F7 0,61 Lı́mite inferior F4-F7 0,75 Cuadro 7.2: resultado de la comparación de las dos alternativas. El análisis es significativo. Según este análisis, el valor esperado de la variable Z = Y1 −Y2 se encuentra en el intervalo (0, 61, 0, 75) con una probabilidad del 99 % y su estimación puntual es ζ̂ = 0, 68 . Como el objetivo es elgir la alternativa con menor valor esperado y según este análisis, conviene poner en funcionamiento la segunda alternativa (2 centros de inspección y uno de reparación). 165 Capı́tulo 7. ANÁLISIS DE DATOS DE SALIDA. COMPARACIÓN DE VARIAS ALTERNATIVAS 7.4.2. Ejemplo 4.2: comparación de varias configuraciones alternativas Un sistema de fabricación esta compuesto por 5 máquinas iguales que trabajan de manera independiente. La máquinas operan continuamente con la única excepción de las paradas por averı́as y en la actualidad un único mecánico se encarga de las reparaciones de todas las máquinas. El tiempo que cada máquina funciona sin tener una averı́a puede aproximarse a una distribución exponencial de media 8 horas y la duración de una reparación se asemeja a una exponencial de media 2 horas. El mecánico encargado de las reparaciones ha sugerido a su superior que el coste de mantenimiento se reducirı́a si la plantilla de mecánicos se ampliase, ya que considera que es muy frecuente que más de una máquina esté averiada a la vez. Ante esta situación el departamento de mantenimiento decide hacer un estudio de simulación para comparar la respuesta del sistema cuando varı́a el número de mecánicos, hasta un máximo de 4. Se considera que los únicos costes de mantenimiento son el coste por parada de las máquinas (55 €/h·máquina) y el coste de la mano de obra de reparación (10€/hora·mecánico). Se pide hacer un estudio de simulación para averiguar cuál es el número óptimo de mecánicos para minimizar dicho coste. En este caso, se consideran 4 configuraciones alternativas donde la única diferencia entre ellas es el número de mecánicos. Al igual que en el ejercicio anterior interesa el comportamiento durante el estado estacionario y para ello basta con tomar un tiempo de calentamiento de 200 horas (se deja su cálculo como ejercicio). El coste de mantemiento, que es la variable de salida que hay que comparar, se calcula de la siguiente manera: Y = Tpar ada × 55 + Thor as × nmecanicos × 10 En primer lugar, se compara el sistema actual de un solo mecánico con el resto de alternativas mediante intervalos de confianza individuales (apartado 7.3.1). Después se utiliza el método explicado en 7.3.2 para clasificar las alternativas y seleccionar la mejor. A continuación se presentan los archivos que acmpañan al enunciado: Ejemplo4-2.mod : contiene el modelo del sistema en Witness. Ejemplo4-2a.xls : es la hoja de cálculo donde se debe resolver el ejemplo tomando el sistema actual como referencia. Ejemplo4-2a solucion.xls : muestra como debe quedar la hoja de cálculo anterior una vez resuelto el ejemplo. Planteamiento 166 Capı́tulo 7. ANÁLISIS DE DATOS DE SALIDA. COMPARACIÓN DE VARIAS ALTERNATIVAS Ejemplo4-2b.xls : es la hoja de cálculo donde se debe resolver el ejemplo mediante el método de selección de la mejor alternativa. Ejemplo4-2b solucion.xls : muestra como debe quedar la hoja de cálculo anterior una vez resuelto el ejemplo. Ejemplo4-2a experimento.txt : Preparado para obtener 40 replicaciones independientes de longitud 4000 horas y un tiempo de calentamiento de 200 horas. Ejemplo4-2b experimento1.txt : Preparado para obtener las replicaciones adicionales en el método de selección de una alternativa de la configuración 1. Ejemplo4-2b experimento2.txt : Preparado para obtener las replicaciones adicionales en el método de selección de una alternativa de la configuración 2. Ejemplo4-2b experimento3.txt : Preparado para obtener las replicaciones adicionales en el método de selección de una alternativa de las configuraciones 3 y 4. Figura 7.3: modelo en Witness del sistema del ejemplo 4.2. SISTEMA ACTUAL COMO REFERENCIA El experimento Para cambiar el número de mecánicos (y ası́ cambiar de alternativa), se modifica la propiedad ((Quantity)) del elemento mecanicos. En la variable Tparada se almacena el número total de horas que las máquinas han estado paradas debido a una averı́a una vez superado el tiempo de calentamiento, que es el único valor que se extrae de cada replicación. 167 Capı́tulo 7. ANÁLISIS DE DATOS DE SALIDA. COMPARACIÓN DE VARIAS ALTERNATIVAS Los pasos para realizar obtener los datos de la simulación son los siguientes: 1. Abrir el modelo Ejemplo4-2.mod y comprobar que el número de mecánicos es 1. 2. Abrir el experimento Ejemplo4-2a experimento.txt (Model / Experiment / Open) y ejecutarlo (Model / Experiment / Batch). 3. Importar los datos del archivo Ej4-2.csv en la hoja ((CSV alternativa 1)) del archivo Ejemplo4-2a.xls . 4. El tiempo total que han estado paradas las 5 máquinas en cada replicación se guarda en la columna I. Ordenar los datos por número de replicación ( Datos / Ordenar / Columna B) y copiarlos en el lugar correspondiente de la hoja ((Comparación de alternativas)). 5. Repetir el proceso anterior cambiando el número de mecánicos (2, 3, y 4). Cálculo del coste de mantenimiento A primera vista se aprecia que el tiempo de parada se reduce considerablemente al pasar de 1 mecánico a 2. También se observa que al aumentar el número de mecánicos a 3 y 4, aunque también se produce una reducción, el efecto no es tan alto. A pesar de ello, lo que realmente interesa es la repercusión en el coste de mantemiento. Los siguientes pasos son: 1. Calcular el coste de mantenimiento de cada replicación en la columna y1i . Por ejemplo, para la y11 , el coste de mantenimiento (expresado en miles de €) se calcula de la siguiente manera: y11 = (976, 33 × 55 + 800 × 1 × 10)/1000 = 61, 70 2. Repetir el proceso anterior cambiando el número de mecánicos (2, 3, y 4) para obtener el coste de mantemiento en el resto de configuraciones (y2i , y3i e y4i ). Análisis estadı́stico La comparación se realiza sobre la diferencia de las alternativas (2, 3 y 4) con la de referencia (1). Para ello se deben seguir los siguientes puntos: 1. Calcular las diferencias z2i = y2i − y1i , z3i = y3i − y1i y z4i = y4i − y1i . Estos valores representan el coste de mantenimiento en miles de euros. 168 Capı́tulo 7. ANÁLISIS DE DATOS DE SALIDA. COMPARACIÓN DE VARIAS ALTERNATIVAS 2. Realizar para cada una de estas diferencias un intervalo de confianza al 97 %, de manera análoga al ejemplo anterior. Los resultados se presentan en el cuadro 7.3. Función Excel alternativa 1 z2i z2i z2i -14,15 -8,26 -0,44 z(n) PROMEDIO(M13:M32) S 2 (n) VAR(M13:M32) 8,34 10,41 10,51 t19,0,985 DISTR.T.INV(0,03;19) 2,35 2,35 2,35 Semi-longitud del intervalo 99 % M6*RAIZ(M5/60) 0,07 0,98 0,98 Lı́mite superior M4+M7 0,61 -9,24 -1,42 Lı́mite inferior M4-M7 0,75 -7,28 0,54 Cuadro 7.3: intervalos individuales al 97 % para las comparaciones con el sistema actual. Valores en miles de euros Los dos primeros intervalos no contienen al cero y son negativos por lo que se puede decir que hay una mejora significativa al tener un total de 2 ó 3 mecánicos en plantilla. Por otro lado, con estos datos no se pude afirmar que exista una diferencia significativa entre el sistema actual y tener 4 mecánicos. NOTA: la probabilidad de que se cumpla cada una de las afirmaciones anteriores por separado es del 97 % mientras que la probabilidad de que se cumplan conjuntamente es del 90 %. SELECCIÓN DE LA MEJOR ALTERNATIVA Con el método anterior se sabe que el coste de mantenimiento al contratar más mecánicos se reduce, pero no permite elegir entre tener 2 ó 3 mecánicos. Dado que el coste de mantenimiento ronda los 60.000€, parece suficiente tomar d∗ = 1,000; para P ∗ se elige 90 %. A continuación se aplica el método de selección visto en 7.3.2. Primera etapa Para la primera etapa se pueden aprovechar los valores de yji obtenidos anteriormente. Por tanto n0 = 20 y se siguen los siguientes pasos: 1. Copiar la matriz de valores 3 × 20 de yji en la hoja ((Primera etapa)) del archivo Ejemplo4-2b.xls . Conclusión 169 Capı́tulo 7. ANÁLISIS DE DATOS DE SALIDA. COMPARACIÓN DE VARIAS ALTERNATIVAS 2. Calcular la media y la varianza de cada muestra yji : j y ( 1)j (20) Sj2 (20) 1 68,79 19,72 2 54,63 3,66 3 60,53 1,86 4 68,34 1,88 3. Obtener de la tabla h1 el valor de h21 . Para k = 5, n0 = 20 y P ∗ = 0, 90, h1 = 2, 583. 4. Calcular Ni , que representa el mayor valor3 entre n0 + 1 (21 en este caso) y el valor de la expresión 4 : ⎡ ⎤ h2 S 2 (n ) ⎢ 1 j 0 ⎥ ⎢ (d∗ )2 ⎥ ⎢ ⎥ Para cada alternativa, Nj toma los siguientes valores: 3 j n0 h21 Sj2 (n0 ) (d∗ )2 1 21 2 4 Nj replicaciones adicionales 131,55 132 112 21 24,40 25 5 3 21 12,42 21 1 4 21 12,57 21 1 5. Realizar, para cada alternativa, las replicaciones adicionales necesarias para la segunda etapa. Para ello ejecutar los experimentos Ejemplo4-2b experimento1.xls para 1 mecánico, Ejemplo4-2b experimento2.xls para 2 mecánicos y Ejemplo4-2b experimento4.xls para 3 y 4 mecánicos e importar los datos generados en las hojas ((CSV adicional j )). 6. Calcular para los valores obtenidos en las nuevas replicaciones el coste de mantenimiento como se hizo en para las 20 replicaciones originales. 3 la función de EXCEL ((MAX(n1; n2; · · · ))) devuelve el valor máximo del conjunto n1, n2, · · · calcular x puede emplearse, entre otras, la función ((MULTIPLO.SUPERIOR(x;1))) 4 para 170 Capı́tulo 7. ANÁLISIS DE DATOS DE SALIDA. COMPARACIÓN DE VARIAS ALTERNATIVAS Segunda etapa 1. Calcular las medias de las nuevas observaciones: j 1 2 3 4 (2) y j (Nj − 20) 69,96 55,21 58,75 66,64 2. Calcular los pesos W1i y W2i a partir de la ecuación 7.6 (ver cuadro 7.4). 3. Calcular el coste medio ponderado de cada alternativa. Primera etapa no mec. 1 2 3 4 (1) y i (20) 68,79 54,63 60,53 68,34 Si2 (20) 19,72 3,66 1,86 1,88 Segunda etapa Ni 132 25 21 21 (2) y i (20) 69,96 55,21 58,75 66,64 W1i 0,17 0,86 1,13 1,13 W2i 0,83 0,14 -0,13 -0,13 ỹi 69,76 54,71 60,76 68,56 Cuadro 7.4: intervalos individuales al 97 % para las comparaciones con el sistema actual Como se aprecia en el cuadro 7.4, la mejor opción es tener en plantilla 2 mecánicos (con una probabilidad del 90 %). Conclusión 171 Capı́tulo 8 DISEÑO DE EXPERIMENTOS Y SUPERFICIES DE RESPUESTA 8.1. EL MODELO HA CAMBIADO Y HAY QUE REPETIR TODA LA EXPERIMENTAICÓN Y CAMBIAR IMÁGENES Y TODO 8.2. Introducción Un estudio de simulación se puede realizar para evaluar un conjunto de alternativas ya conocidas. Por ejemplo, para el diseño de una gasolinera se pueden estudiar varias configuraciones para la disposición de los surtidores y de los productos que se sirven en cada uno. En estos casos, el análisis que se debe realizar debe ser conforme lo que se ha presentado en el capı́tulo 7. Sin embargo, en otros estudios las alternativas pueden estar menos claramente definidas. Por ejemplo, puede ser interesante estudiar cuál es el tamaño de lote de transferencia´más ventajoso en un taller, es decir, el número de piezas que componen cada lote, de tal manera que hasta que no se procesan todas las piezas de ese lote en una parte del taller, no se envı́a el conjunto a la siguiente etapa. Pueden existir, de hecho, diferentes factores que condicionan el comportamiento del sistema. En este caso, el interés puede ser buscar un conjunto de valores para dicho parámetros que de lugar a un comportamiento del sistema suficientemente bueno (si no el mejor). Sin embargo, evaluar todas las posibles combinaciones de todos los factores puede ser computacionalmente inviabel, por el elevadı́simo número de alternativas. En este capı́tulo se presenta, primero, una metodologı́a para evaluar la influencia de los parámetros, para conocer si su influencia es significativa (diseño de experimentos), y, después, una forma de obtener un modelo del propio modelo de simulación para poder precedir el comportamiento del modelo y elegir una buena combinación de factores (superficie de respuesta). Naturaleza de las alternativas Capı́tulo 8. DISEÑO DE EXPERIMENTOS Y SUPERFICIES DE RESPUESTA 173 Cuando se realizan diseños de experimentos, se habla de factores y de respuestas. Los factores son aquellos datos de entrada que condicionan los valores de las variables de salida y cuyo efecto se pretende estudiar. Los factores generalmente se refieren a los parámetros del modelo de simulación, es decir, a aquellos datos sobre los que el decisor tiene contro. Sin embargo, una variable de entrada podrı́a ser un parámetro (por ejemplo, puede ser interesante realizar un análisis de sensibilidad y evaluar el comportamiento del sistema frente a diferentes valores de la demanda). Factores En una lı́nea de montaje, un factor puede ser el tamaño de los stocks intermedios; el un centro de atención telefónica, el número de teleoperadores de los que se dispone en cada nivel; en un supermercado, la disciplina de colas que se adopta en las cajas. Ejemplos Por otra parte, la respuesta del sistema es el valor que toma la variable de salida considerada. Cuando existen varios factores que pueden condicionar la respuesta del sistema, el objetivo es evaluar el efecto de estos factores para alcanzar una combinación de sus valores que ofrezca una buen valor de la respuesta. Respuestas Cuando sólo hay un parámetro que modificar, evaluar su efecto pasa por ejecutar el modelo para cada uno de los posibles valores de ese parámetro (o para un conjunto de valores) y emplear las técnicas presentadas en el capı́tulo 7. Un solo parámetro Cuando existen más de dos parámetros, factores de ahora en adelante, una posible estrategia podrı́a consistir en fijar el valores de todos los parámetros menos uno, Fi . A continuación, modificar el valor de Fi y evaluar si tiene un impacto significativo sobre la respuesta del sistema. Este enfoque tiene dos deficiencias: Varios factores primero, es muy poco eficiente, porque si el número de factores es relativamente algo, el número de combinaciones que hay que estudiar es muy alto y hace que el análisis sea computacionalmente inviable; segundo, este análisis sólo permite evaluar el efecto de la modificación de cada factor por separado, pero no evalua las interacciones. Por ejemplo, aumentar la plantilla o aumentar la capacidad de la maquinaria en una planta, por separado, no permitan aumentar la producción, pero al hacerlo de forma conjunta sı́ se obtenga un incrementos significativo. En el siguiente epı́grafe se presenta una manera de salvar estas dos deficiencias, mediante el diseño de un conjunto de experimentos que permiten, de forma más eficiente, estudiar el efecto de cada uno de los factores y, también, el de sus intreacciones. Capı́tulo 8. DISEÑO DE EXPERIMENTOS Y SUPERFICIES DE RESPUESTA 8.3. 174 Diseños factoriales En este epı́grafe se explica cómo realizar un disñeo factorial 2k . Existen otros diseños de experimentos más complejos, que quedan fuera del alcance de este texto. Para realizar el diseño de experimentos, se siguen los siguientes pasos: 1. Se identifcan k factores y se seleccionan dos niveles para cada unos de ellos. Se suele representar con signo menos al nivel inferior de los factores y signo más para el valor superior de los factores. 2. Se estudia el valor de la respuesta para cada una de las posibles combinaciones de valores, que en total son 2k . En un entorno determinista, bastarı́a con calcular una vez la respuesta para cada combinación. En un modelo de simulación con fenómenos estocásticos es necesario realizar varias replicaciones (n) para cada combinación. Por ejemplo, Para un estudio con tres factores, la tabla 8.3 muestra todas las posibles combinaciones. 3. Se identifica el efecto de cada uno de los factores y de sus interacciones. Cuadro 8.1: Combinaciones de factores para un diseño factorial 23 . Combinación c 1 2 3 4 5 6 7 8 F1 − + − + − + − + F2 − − + + − − + + F3 − − − − + + + + Rc R1 R2 R3 R4 R5 R6 R7 R8 A continuación se presenta cómo se pueden calcular los efectos a partir de las respuestas Rc , con c = 1, ..., 2k obtenidas al realizar los diferentes experimentos. Primero, se admitirá que el sistema es determinista, con lo cual la respuesta que se obtiene al analizar una determinada combinación de factores es siempre el mismo. Después se extiende la metodologı́a al caso estocástico. Procedimiento general Capı́tulo 8. DISEÑO DE EXPERIMENTOS Y SUPERFICIES DE RESPUESTA El efecto principal del factor Fi , que se denota por ei , mide el efecto en la respuesta al modificar modificar el factor Fi del nivel − al nivel +, mientras el resto de factores mantienen sus niveles. En particular, los valores de e1 , e2 y e3 vendrı́an dado por la expresiones 8.1 e1 = (R2 − R1 ) + (R4 − R3 ) + (R6 − R5 ) + (R8 − R7 ) 4 e2 = (R3 − R1 ) + (R4 − R2 ) + (R7 − R5 ) + (R8 − R6 ) 4 e3 = (R5 − R1 ) + (R6 − R2 ) + (R7 − R3 ) + (R8 − R4 ) 4 −R1 + R2 − R3 + R4 − R5 + R6 − R7 + R8 4 1 2 e13 = 1 2 e23 = 1 2 (R4 − R3 ) + (R8 − R7 ) (R2 − R1 ) + (R6 − R5 ) − 2 2 (R6 − R5 ) + (R8 − R7 ) (R2 − R1 ) + (R4 − R3 ) − 2 2 (R7 − R5 ) + (R8 − R6 ) (R3 − R1 ) + (R4 − R2 ) − 2 2 Regla sencilla (8.2) Existe la posiblidad de que la influencia de un factor Fi dependa del nivel de otro factor Fj , es decir, que exista interacción entre ellos. La interacción entre estos dos factores se calcula como la diferencia entre el efecto del factor Fi cuando Fj está en su nivel + y el efecto del factor Fi cuando Fj está un su nivel −, en ambos casos mateniéndose al mismo nivel el resto de los factores. Por convención, se divide esta diferencia, entre dos, tal y como aparece en las expresiones 8.3. e12 = Efectos principales (8.1) Existe una forma sencilla de computar los efectos principales con ayuda de la tabla 8.3. Por ejemplo, si se reordenan los términos que aparecen en e1 en la expresión 8.1, se puede obtener la expresión 8.2, en la que cada respuesta aparece con el signo con el que aparece el nivel del F1 en dicha tabla. e1 = 175 Interacciones i×j (8.3) De nuevo, existe una forma sencilla de computar estos efectos. En la tabla 8.3 se muestran tres nuevas columnas, en particular, aparece una nueva con la cabecera F1 × F2 , donde, para combinación de factores aparece el producto del signo correspondiente al nivel del factor F1 por el signo correspondiente a F2 . Aplicando estos signos a cada una de las respuestas Rc , se obiene la expresión Regla sencilla Capı́tulo 8. DISEÑO DE EXPERIMENTOS Y SUPERFICIES DE RESPUESTA 176 8.4 que es la misma que se obtendrı́a ordenando la que aparece en 8.3 e12 = R1 − R2 − R3 + R4 + R5 − R6 − R7 + R8 4 (8.4) Cuadro 8.2: Tabla para construir los efectos principales y ls interacciones de los factores para un diseño factorial 23 Combinación c 1 2 3 4 5 6 7 8 F1 − + − + − + − + F2 − − + + − − + + F3 − − − − + + + + F1 × F2 + − − + + − − + F1 × F3 + − + − − + − + F2 × F3 + + − − − − + + F1 × F2 × F3 − + + − + − − + Rc R1 R2 R3 R4 R5 R6 R7 R8 Por último, para este ejemplo, se puede evaluar el efecto de la interacción de los tres factores, que se define como la semidiferencia entre la interacción de los factores F1 y F2 cuando el factor F3 está en su nivel + y la interacción de los factores F1 y F2 cuando el factor F3 está en su nivel −, tal y como se puede ver en la expresión 8.5. e123 = 1 2 (R8 − R7 ) + (R6 − R5 ) (R4 − R3 ) + (R2 − R1 ) − 2 2 (8.5) Reorganizando la expresión anterior, se puede comprobar que los signos de la columna F1 × F2 × F3 permiten reconstruir de forma sencilla la expresión e123 , asignando a cada término Rc el signo que indica aquella columna. e123 = −R1 + R2 + R3 − R4 + R5 − R6 − R7 + R8 4 Interacciones i×j×k Regla sencilla (8.6) En este ejemplo sólo hay tres factores, de manera que no existen interacciones de nivel superior. Sin embargo en diseños con 4, 5, etc factores se podrı́an definir de forma análoga y evaluar, todas y cada una de las posibles interacciones. Más interacciones Capı́tulo 8. DISEÑO DE EXPERIMENTOS Y SUPERFICIES DE RESPUESTA Tı́picamente, en un modelo de simulación cada vez que se calcula Rc para una combinación de factores se obtiene un valor dierente. La forma de abordar un estudio con respuestas estocásticas es la siguiente. 1. Realizar n replicaciones para cada combinación de factores. Ası́ Rcn serı́a la respuesta del sistema para la replicación r -ésima de la combinación c (r = 1, ..., n y c = 1, ..,2k ). 2. Estimar tantos valores de ei , eij . etc. como replicaciones: eir , eijr , etc. con r = 1...n. Por ejemplo, para el efecto principal del factor F1 en un diseño 23 y realizando 10 replicaciones (k = 3, n = 10), se obtendrı́an 10 valores e1r : e1r = −R1r + R2r − R3r + R4r − R5r + R6r − R7r + R8r 4 (8.7) Eso mismo se podrı́a realizar con el resto de factores y con sus interacciones. 3. Caluclar, para cada factor y para cada una de sus interacciones, un intervalo de confianza con un determinado nivel de confianza. La expresión corresponde al intervalo para el mismo efecto principal F1 . ⎛ ⎝e1 (n) − tn−1,1−α/2 Se21 (n) , e1 (n) + tn−1,1−α/2 n ⎞ Se21 (n) ⎠ n (8.8) donde: e1 (n) = n Se21 ( n) = r =1 n e1r r =1 2 (e1r − e1 (n)) n−1 (8.9) . En el siguiente apartado se propone un ejercicio para elaborar un diseño de experimentos con dos factores para una polı́tica de gestión de stocks. 177 Carácter aleatorio de Rc Capı́tulo 8. DISEÑO DE EXPERIMENTOS Y SUPERFICIES DE RESPUESTA 8.4. 178 Ejemplo 1 Una empresa mayorista sirve productos a sus cliente, que son minoristas. La empresa compra productos a un proveedor, los almacena, y de ahı́ sirve a sus clientes. La demanda diaria agragada para todos los minoristas sigue una distribución uniforme entre 240 y 260 productos. El Lead time del proveedor sigue una lognormal de media 2 dı́as y desviación tı́pica 0.5. Existe relacionados con la gestión de stocks para atender la demanda son los siguientes. Coste unitario de stock o de almacenamiento: 1 unidad monetaria (um) por unidad de producto (up) y por dı́a. Coste de carencia 10 um por unidad de producto no servido. Coste de emisión de un pedido: 250 um. d La demanda no atendida en un dı́a determinado se pierde, es decir, la empresa no entrega productos con retraso. La polı́tica que se quiere evaluar consiste en pedir un lote de productos al proveedor cuando el stock disponible, que es la cantidad de productos en el almacén más la cantidad de productos pendientes de recibir, cae por debajo de un determinado nivel. Las diferentes formas que puede adptar esta polı́tica se caracteriza mediante los dos parámetros siguientes: el tamaño de pedido, Q y el nivel de reaprovisionamiento, s, que es el valor tal que cuando el stock disponible es inferior a él, se lanza un pedido al proveedor. Se pide realizar un diseño de experimentos para analizar el efecto de los factores s y Q. Para realizar este análisis, se recomienda el uso de lo siguientes archivos: Ejemplo8-1.mod, que contiene un modelo para representar la polı́tica estudiada, Ejemplo8-1.xls, con lo que se facilita reproducir los cálculos que siguen a continuación. Ejemplo8-1 solucion.xls, donde se puede encontrar el análisis realizado. Ejemplo8-10R.xpt, para facilitar la realización de las replicaciones de las diferentes combinaciones de factores. Material disponible Capı́tulo 8. DISEÑO DE EXPERIMENTOS Y SUPERFICIES DE RESPUESTA 8.4.1. El modelo El modelo que se ofrece en Ejemplo8-1.mod, y cuya representación gráfica se muestra en la figura 8.1, está contruido de la siguiente manera: En primer lugar, existen dos variables de tipo entero: s y Q que son los parámetros del modelo, los factores del diseño de experimentos. Dos piezas, Producto y NoServido, representan, respectivamente, las unidades de producto servidas y las unidades de producto no servidas. El buffer Stock representa el stock fı́sico del que dispone la empresa. Desde este buffer se retiran los productos para atender la demanda y es adonde llegan los productos que entrega el proveedor. La Máquina Clientes reproduce el comportamiento de la demanda. Cada dı́a genera un valor de la demanda. Y con ese valor, trata de retirar unidades de producto de Stock. Cuando no hay suficientes, obtiene piezas NoServido de ((WORLD)). Al final de cada operación (de cada dı́a) se computan los costes (esto se comenta con más detalle más adelante). El buffer StockProveedor permite reproducir el lead time del proveedor. Cuando un Producto enviado desde el proveedor al stock del cliente, permanece un tiempo en este buffer correspondiente al lead time. La máquina Proveedor gobierna la resposición del stock. Cuando la cantidad de Productos que hay en Stock más la cantidad de productos que hay en StockProveedor cae por debajo del valor de s, se lanza un pedido de tamaño Q, que Proveedor genera y empuja hacia StockProveedor. Además, existen todos las variables para calcular los costes de cada tipo y el coste total y las variables correspondientes a los valores de la demanda y del lead time. Para representar la evolución del stock fı́sico y del stock disponible, hay un histograma que se actualiza cada dı́a simulado. Por último, en Acciones de inicialización es donde se da valores a los parámetros y donde se genera el primer valor de Demanda. 179 Capı́tulo 8. DISEÑO DE EXPERIMENTOS Y SUPERFICIES DE RESPUESTA 180 Figura 8.1: representación gráfica correspondiente al modelo. Para computar los costes, se calculan los tres costes: carencia, emisión y almacenamiento como con el código de la figura . En particular: El coste de almacenamiento (CosteStock) se calcula como sigue. El producto del número medio de Productos en Stock por el valor de TIME es igual a la suma, para todas las piezas producto del tiempo que ha permanecido cada una de ellas en Stock. Al multiplicar el valor anterior por el coste unitario de almacenamiento, se obtiene el coste total de almacenamiento hasta el instante TIME. El costes de carencia se computa, simplemente, como el número de piezas de tipo NoServido por el coste unitario de carencia, ya que cada vez que se deja de atender la demanda de un Producto se genera una pieza de tipo NoServido. El coste de emisión se calculan como el producto de las veces que se ha realizado un pedido (que es igual al número de ciclos de la máquina Proveedor por el coste unitario de emitir un pedido. El coste total se actualiza cada dı́a calculando la suma de los tres costes anteriores. Figura 8.2: código para el cómputo de los costes. Cómputo de los costes Capı́tulo 8. DISEÑO DE EXPERIMENTOS Y SUPERFICIES DE RESPUESTA 8.4.2. 181 Experimentación Si el problema fuera determinista, se puede demostrar (PENDIENTE, buscar referencia) que el tamaño de lote óptimo, Q∗ es igual a la siguiente expresión: ∗ Q = 2 × D × CE CA + CC CA CC Estimaciones preliminares (8.10) Si el problema fuera determinista con los valores medios, entonces D = 250. Los datos correspondientes a los costes son CE = 200, CC = 10 y CA = 1, por lo que, de acuerdo con la expresión , el tamaño de lote económico óptimo serı́a, redondeando, Q∗ = 331. Estimación de Q Por otro lado, si el lead time del proveedor fuera determinista e igual a 2 dı́as, el nivel de reaprovisionamiento serı́a igual a la demanda correspondiente a ese periodo, es decir, s = 2 × 250 = 500. Estimación de s Para determinar el efecto de los factores s y Q, se pueden estudiar dos valores para cada factor, uno inferior y otro superior al valor teórico que se habrı́a obtenido en el caso no estocástico. Estos valores se muestran en el cuadro 8.4.2. Niveles de s y Q Cuadro 8.3: combinaciones de los factores s y Q. Q(−) Q(+) s(−) 450 R1 R2 315 345 s(+) 550 R3 R4 Por último, se puede construir la tabla correpondiente a estas combinaciones de factores tal y como se muestra en el cuadro . Cuadro 8.4: tabla con los experimentos para los factores s y Q. Combinación c 1 2 3 4 s − + − + Q − − + + s×Q + − − + Rc R1 R2 R3 R4 Capı́tulo 8. DISEÑO DE EXPERIMENTOS Y SUPERFICIES DE RESPUESTA 182 En primer lugar, como se trata de un modelo de simulación sin terminación, hay que calcular en tiempo de calentamiento. Se deja al lector como ejercicio que lo calcule. Empleando el método de Welch, se comprueba que un tiempo de calentamiento de 60 dı́as es suficiente para alcanzar el régimen permanente. Con respecto a la longitud de las replicaciones, es razonable estudiar los costes asociados a un periodo de un año. Con ello, cada replicación tendrá un tiempo de calentamiento de 60 dı́as y una duración (una vez alcanzado el régimen permanente) de 365 dı́as. Tiempo de calentamiento y longitud de las replicaciones Lo primero que hay que hacer es realizar un conjunto de diez replicaciones (n = 10) para cada una de las combinaciones de factores. Para eso hay que hacer los siguiente: Replicaciones 1. Abrir el archivo Ejemplo8-1.mod, y modificar las Acciones de inicialización para fijar los valores deseados de s y Q. 2. Abrir el libro Ejemplo8-1.xls y seleccionar la hoja Experimentos y superficie. 3. Abrir (si no está ya abierto) el archivo de experimentación Ejemplo8-1 10R.xpt. 4. Ejecutar el archivo anterior (Modelo / Experimento / Ejec. acel.) 5. Importar el contenido del archivo Exp.csv a una hoja auxiliar. 6. Seleccionar los valores correspondientes a la variable CosteTotal para cada replicación y copiarla en las celdas con fondo azul del libro de Excel, en la fila que corresponda según la combinación de factores estudiada. Imágenes del xls PENDIENTE A continuación, hay que calcular los efectos principales y la interacción de los dos efectos para las diez replicaciones, para lo cual se puede usar zona sombreada de color amarillo. En la figura , por ejemplo, se han introducido las fórmulas, de manera que los valores −63,55, −41,67 y 22,71 se calculan a partir de los valores para la primera replicación de cada combinación: 293,18, 250,05, 260,99 y 240,57. Por ejemplo: −63,55 = −293,18 + 250,05, −260,99 + 240,57. Cálculo de es , eQ y eSQ Capı́tulo 8. DISEÑO DE EXPERIMENTOS Y SUPERFICIES DE RESPUESTA 183 Figura 8.3: cálculo de los efectos para cada replicación Una vez que se dispone de los valores de los efectos para cada replicación, se puede calcular un intervalo de confianza para cada uno de ellos, como se muestra en la figura 8.4. Para ello, de la misma manera que en el capı́tulo 6, se calcula estiman la media y la varianza, se establece un nivel de confianza y se obtiene la semiamplitud del intervalo, con lo que, finalmente, se pueden calcular los extremos superior e inferior del intervalo. Intervalos para es , eQ y eSQ Figura 8.4: intervalos de confianza para los efectos Los intervalos que se han obtenido para los efectos principales y para la interacción de los dos factores son: Análisis de resultados es ∈ (−68,78, −53,51) eQ ∈ (−43,20, −16,74) (8.11) esQ ∈ (−10,89, −6,59) Se puede concluir que cuando sı́ que existe PENDIENTE. Intepretación Capı́tulo 8. DISEÑO DE EXPERIMENTOS Y SUPERFICIES DE RESPUESTA Cuidado con 8.5. 184 PENDIENTE Superficies de respuestas Como se ha mostrado en los apartados anteriores, con el diseño de experimentos se puede evaluar si el efecto de los factores (F1 , F2 , ..., Fk ) y los efectos de sus interacciones sobre la respuesta del modelo (R) son significativos o no. Un paso más puede consiste en disponer de un metamodelo: un modelo que relacione el valor de los factores con el valor de la respuesta del modelo de simulación, de la forma E[R] = ϕ(F1 , F2 , ..., Fk ) Un metamodelo Con un metamodelo bien construido es posible Optimización 1. predecir el comportamiento del sistema para diferentes valores de los factores (especialmente interesante cuando el la ejecución de un modelo lleva mucho tiempo) y 2. buscar los valores de dichos factores que proporcionen un valor óptimo de la respuesta. A partir del diseño de experimentos con dos factores a dos niveles del ejemplo anterior, se puede construir un primer modelo de regresión de primer orden de la siguiente forma: E [R(s, Q)] = β0 + βs xs + βQ xQ + βsQ xs xQ (8.12) Donde las variables xs y xQ se definen de la siguiente manera: 2(s − s) Δs 2(Q − Q) xQ = ΔQ xs = (8.13) y s y Q representan, respectivamente, la media corresondiente a los dos niveles para el factor s y el factor Q; y Δs y ΔQ representan, respectivamente, la diferencia entre los dos valores de los factores s y Q. Las definiciones de xs y xQ son tales que cuando s y Q toman, respectivamente el valor correspondient al nivel − en el diseño de experimentos (en el ejemplo (450 y 315), xs y xQ toman el valor −1. Cuando s y Q alcanzan el nivel +, xs y xQ toman el valor −1 Modelo de regresión Capı́tulo 8. DISEÑO DE EXPERIMENTOS Y SUPERFICIES DE RESPUESTA 185 Al sustituir las expresión de xs y xQ en 8.17, se obtiene un modelo donde la respuesta es función de los valores de s y Q: E [R(s, Q)] = β0 + βs 2(s − s) 2(Q − Q) 2(s − s) 2(Q − Q) + βQ + βsQ (8.14) Δs ΔQ Δs ΔQ Se puede demostrar que los mejores estimadores de los valores de β0 , βs , βQ y βsQ son los siguientes (ver Montgomery [?]): Estimadores 0 = R F (n) β s = es (n) β 2 e (n) Q Q = β 2 e (n) sQ sQ = β 2 (8.15) Donde es (n), eQ (n) y esQ (n) son los valores medios de las respuesta correspondientes a las cuatro combinaciones de los niveles de los factores al realizar n replicaciones. R F (n) es el valor medio de la respuesta para todas las combinaciones y para las n replicaciones. El metamodelo anterior es un modelo de regresión de primer orden. Sin embargo, no existen garantı́as de que la superficie se ajuste bien al verdadero comportamiento de la respuestas dentro de los valores correspondientes a los niveles − y + de los factores. Para comprobar si, efectivamente, la aproximación es válida, una alternativa consiste en reproducir la propia superficie de respuestas reales del modelo y comparar con las previsiones que se pueden realizar con el metamodelo. Obviamente, precisamente es esto de lo que se prentende huir con la construcción de la superficie. Validez de la superficie Figura con el punto C y comentarios PENDIENTE Como solución alternativa, se puede estudiar en qué medida el metamodelo predice bien el comportamiento del sistema para el punto central C, definido por s = s y Q = Q. Con las n replicaciones realizadas para construir la superficie de respuesta se puede realizar la predicción del metamodelo, E[R(s, Q)] que cuando s = s y Q = Q toma el valor E[R(s, Q)] = RF (n). Por otro lado, se pueden realizar n repliaciones del modelo para el punto central, RC (n). Se podrı́a calcular la diferencia entre RC (n) y RF (n). Sin embargo esta serı́a una posible observación de la variable aleatorio D(n) = RF (n) − RC (n), que mide la diferencia entre el comportamiento del modelo y del metamodelo, y comprobar si esta diferencia es significativa, para lo cual hay que construir un intervalo de confianza para la media de D(n). Comprobación Capı́tulo 8. DISEÑO DE EXPERIMENTOS Y SUPERFICIES DE RESPUESTA Para obtener un intervalo de confianza para la media de la variable D(n) = RF (n) − RC (n). Para ello es necesario, obtener m observaciones de RF (n) y otras tantas de RC (n) y obtener un intervalo de confianza a partir de estos valores. Si el intervalo contiene al 0, no existe diferencia significativa entre los valores que ofrecen el modelo y el metamodelo para el punto C: la curva se considera suficientemente buena. 186 Diferencia significativa Para cada dos de los 2 × m valores anteriores, se puede calcular D j (n) como j j la diferencia entre los valores del modelo RC (n) y del metamodelo RF (n), con j = 1, ..., m, de manera que el intervalo para la media de D(n) = RF (n)−RC (n), con un nivel de confianza α vendrı́a dado por la expresión siguiente: . . ⎞ / 2 / 2 /S /S (m) 0 Dj (n) 0 Dj (n) (m) ⎟ ⎜ , D(n) + tm−1,1−α/2 ⎝D(n) − tm−1,1−α/2 ⎠ m m ⎛ (8.16) Para cada una de los m valores anteriores es necesario realizar n replicaciones para cada una de las combinaciones de lo factores (4) y para el punto C. Es decir, hay que realizar m × n × 5 repliaciones. En el caso de que se identificara que hay diferencia significativa entre el modelo y la superficie para el punto C, habrı́a que evaluar la posibilidad de contruir un modelo de regresión de segundo orden o cuadrático, de la forma siguiente: 2 E [R(s, Q)] = β0 + βs xs + βQ xQ + βsQ xs xQ + βss xs2 + βQQ xQ Otras superficies (8.17) Para obtener los coeficientes βss y βQQ es necesario definir nuevas combinaciones de los valores de los factores adicionales a las utilizadas para la superficie de primer orden. Para conocer cómo construir la superficie, se recomienda consultar Montgomery [?]. Por último y admitiendo que la superficie fuera adecuada es posible explotar el modelo para buscar óptimos locales cercanos a los puntos correspondientes a las combinaciones de las factores estudiadas. Incluso si la superficie no es suficientemente buena se puede hacer lo siguiente. A partir de la expresión corresondiente al modelo de regresión de primer orden sin el término no lineal, E [R(s, Q)] = β0 + βs xs + βQ xQ ) se puede, operando, expresar la superficia en función de los factores s y Q, E [R(s, Q)] = γ0 +γs xs + γQ xQ ) . A continuación se puede proceder de la siguiente manera. A partir del punto central C, identificar la dirección en la que disminuye más rápidamente el valor de la respuesta: (−γs , −γQ ) (gradiente). Explotación del metamodelo Capı́tulo 8. DISEÑO DE EXPERIMENTOS Y SUPERFICIES DE RESPUESTA 187 Desplazarse desde el punto considerado (inicialmente C) hacia otro punto según la dirección anteior (o a un lugar punto próximo, dada la condición de integralidad de s y Q). Ejecutar el modelo para esa configuración. Si el el valor de la respuesta es significativamente menor, continuar avanzando en esa dirección. En caso de que no sea ası́, realizar de nuevo un diseño factorial en el entorno del último punto evaluado. A continuación avanzar de acuerdo con el nuevo gradiente hasta que no se pueda reducir el valor de la respuesta. Detener el proceso cuando al obtener una superficie de respuestas se obtiene una superficie plana. 8.6. Ejemplo 2 Para la situación del ejemplo 1: Obtener una superficie de respuesta, tanto dependiendo de xs y sQ y de s y Q Comprobar el comportamiento de la superficie para el punto C (xs = 0 y xQ = 0). Para realizar este ejercicio, además del material disponible para el ejercicio anterior, se puede utilizar el archivo Ejemplo8-1 100R.xpt para facilitar la j realización de las replicaciones que permiten obtener las diferencias RC (n) y j RF (n) En primer lugar, para obtener la expresión de la superficie 8.17, hay que obtener la estimación de β0 , βs , βQ y βsQ de acuerdo con las expresiones 8.15. Para ello, en la fila 20 de la hoja Experimentos y superficie hay que introducir las fómulas, que se refieren a los efectos de los factores calculados en las celdas P13:P15. Haciendo esto se obtienen los valores β0 = 263,65,βs = −30,57, βQ = −14,99 y βsQ = −1,08, de manera que la superficie, en función de xs y de xQ tiene la forma siguiente: E [R(s, Q)] = 263,25 − 30,57xs − 14,99xQ − 1,08xs xQ (8.18) Estimación de las βs Superficie en función de xs y xQ Capı́tulo 8. DISEÑO DE EXPERIMENTOS Y SUPERFICIES DE RESPUESTA Para poder hacer predicciones a partir del metamodelo, si se utiliza la expresión anterior, es necesario obtener los valores de xs y sQ a partir de s y Q. 2(s − 500) s − 500 2(s − s) = = Δs 100 50 2(Q − 330) Q − 330 2(Q − Q) = = xQ = ΔQ 30 15 188 Valores de xs y sQ xs = (8.19) En términos del archivo de Excel, se puede hacer los siguiete: Introducir en las celdas correspondientes Cálculos auxiliares Introducir en las celdas corresopndientes a Valores de loo factores algunos puntos que se desee evaluar. En la hoja con la solución aparecen los vértices y el centro del cuadro de la figura PENDIENTE. Para cada par de valores de s y Q, obtener los valores de las variables xs y sQ en las celdas Variables Auxiliares. Finalmente, en la fila Previsión del metamodelo se puede construir la expresión de la respeusta prevista para cada par de valores de los factores. Adicionalmente, existen algunas celdas de fondo blando para poder evaluar en qué medida la predicción fue correcta. Se trata de un cálculo de carácter académico. En un estudio de un modelo complejo, se realzarı́a una comprobación del punto central, C a través de un intervalo de confianza. En este caso se ilustra la diferencia para varias observaciones. Para hacer esto hay que realizar lo siguiente: • Modificar las Acciones de inicialización del modelo para que las variables s y Q tomen los valroes deseados. • Abrir y ejecutar el experimento contenido en Ejemplo1-10R.xpt, con lo que se dispondrá de 10 valores de la respuesta del modelo. • Importar los dat0s del archivo csv resultante a la hoja de cálculo (la hoja CSV tiene incorporada la búsqueda de datos). Copiar los valores de las 10 observaciones de CosteTotal a la columna correspondiente en la hoja Experimentos y superficie. Figura 8.5: previsiones realizadas con la superficie. Predicciones Capı́tulo 8. DISEÑO DE EXPERIMENTOS Y SUPERFICIES DE RESPUESTA 189 Alternativamente, se puede obtener la superficie en función de los valores de s y Q, operando a partir de los valores de xs y xQ y se podrı́an realizar previsiones, igualmente, con esta expresión. Superficie en función de s y Q E [R(s, Q)] = 662,095 − 0,138s − 0,282Q − 0,001sQ (8.20) Para la comprobación de la validez de la superficie hay que caluclar un intervalo de confianza para la variable D(n) = RF (n) − RC (n). La hoja Comprobacion punto C está diseñada para facilitar la tarea. Comprobaciones Existen 10 cuadros azules, cada uno correspondiente las m = 10 observacioj j nes de RF (n) y las m = 10 observaciones de RC (n). Cada cuadro contiene cinco filas corresondientes a cuatro combinaciones de los factores de experimentación. Los cuatro primeros, correspondientes a un diseño 22 y la quinta corresondiente al punto C. Cada cuadro tiene además tantas columnas disponibles como las replicaciones que hay que realizar en cada caso (n = 10). Para j j cada cuadro, es posible obtener los valores de RF (n) y RF (n) Estructura hoja Comprobacion punto C En la parte superior aparecen tres filas corresondientes a los diferentes valoj j res de RF (n), RC (n) y D j (n), a partir de los cuales obtener el intervalo de confianza y comprobar si existe diferencia significativa o no. Figura 8.6: Cálculo de RF1 (10) y RC1 (10). Para obtener el intervalo, se recomienda hacer lo siguiente: 1. Seleccionar una combinación de factores y modificar las Acciones de inicialización. 2. Abrir y ejecutar el experimento Ejemplo8-1 100R.xpt e importar los datos del archivo .csv generado. 3. Emplear los datos corresondientes a las diez primeras replicaciones para j = 1, las diez siguientes para j = 2 y ası́ sucesivamente hasta j = m. Para ello, copiar los valores en 4. Hacer todo lo anterior para las cinco combinaciones. j j 5. Para cada valor de j = 1, ..., m, calcular RC (10) y RF (10) Procedimiento Capı́tulo 8. DISEÑO DE EXPERIMENTOS Y SUPERFICIES DE RESPUESTA 190 6. Con los valores anteriores, en las celdas superiores, construir un el intervalo de confianza para la media de D(10), como se ha hecho en otras ocasiones para otras variables. j j Figura 8.7: Diferenicias entre RF (10) y RC (10). El intervalo obtenido en el archivo Ejemplo8-1 solucion.xls es (7,11, 7,86), que no contiene al 0, con lo que sı́ existe diferencia significativa entre la estimación realizada con la superficie para el punto C y el comportamiento del sistema para ese valor. Para disponer de una superficie más fiel a la realidad 2 serı́a necesario introducir los términos en xs2 y xQ , y habrı́a que estimar nuevos coeficientes. Para ello se deben realizar cálculos parecidos a los que se han presentado en este capı́tulo y se remite al lector al texto Montgomery [?] para profundizar más. 8.7. Resumen El análisis del comportamiento de un sistema puede estar condicionado por los varores de diferentes datos de entrada. Es decir, la respuesta del sistema (variable de salida) puede depender de varios datos de entrada (variables de entrada o parámetros). Mediante el disñeo de experimentos se puede estudiar de forma eficaz y eficiente la existencia o no de influencia significativa del valor de dichos factores sobre la respuesta del sistema. El caso más sencillo es el del diseño factorial 2k donde se estudian k factores, para cada uno de los cuales se consideran dos posibles niveles (alto y bajo). Si los modelos son muy pesados, y su ejecución lleva mucho tiempo, puede resultar interesante disponer de un metamodelo que permita predecir el comportamiento del modelo para diferentes valores de los factores sin necesidad de realizar replicaciones. En primera aproximación, un modelo de regresión de primer orden puede ser suficiente. Si no lo fuera, se pueden construir metamodelos de orden superior, que son más fieles al modelo pero exigen un mayor tiempo de computación. Análisis de los resultados Capı́tulo 9 REDUCCIÓN DE LA VARIANZA 9.1. Introducción Como se ha dicho en capı́tulos anteriores, el resultado de alimentar un modelo con entradas aleatorias son salidas también aleatorias. Por tanto, para extraer conclusiones correctas, es necesario aplicar técnicas estadı́sticas para caracterizar estos datos de salida. Pero la mayorı́a de los modelos complejos requieren una gran cantidad de recursos para ser simulados (tanto en tiempo de computación como espacio para almacenar datos) y las técnicas estadı́sticas generalmente se basan en la realización de múltiples replicaciones. Por este motivo, en algunos casos, el coste de un análisis estadı́stico es demasiado alto en relación a los resultados que se obtienen (medidos por la amplitud del intervalo de confianza). La calidad de los resultados se puede medir según la amplitud del intervalo de confianza que acompaña al valor estimado, expresado por: y(n) ± tn−1,1−α/2 S 2 (n) n (9.1) Uno de los caminos para aumentar la eficiencia de la simulación es mejorar la programación para conseguir modelos que requieran menos recursos para su ejecución. De este modo, con el mismo esfuerzo de computación, se puede aumentar el número de replicaciones (n) por lo que el intervalo anterior se estrecha. Otro camino se dirige a mejorar la , es decir, que los datos de salida de la simulación tengan una varianza menor. Si se consiguen datos con menor varianza, S 2 (n) disminuye y el intervalo de confianza será más estrecho. Por tanto la precisión de los resultados crece sin aumentar la duración de la simulación. Al conjunto de técnicas empleadas para lograr este propósito se les conoce como técnicas de reducción de la varianza (en inglés de ((Variance Reduction Techniques)), VRT ) y su aplicación puede ser la única manera de obtener resultados útiles de un proyecto. Cómo mejorar la eficiencia Capı́tulo 9. REDUCCIÓN DE LA VARIANZA 192 Como se explica más adelante, la forma de aplicar estas técnicas depende de cada modelo en particular y no se puede saber de antemano los beneficios en la reducción de la varianza de aplicarlas. Como consecuencia, la mayorı́a de las estas técnicas necesitan un estudio previo para saber si su aplicación contribuye a una mejora en la eficiencia de los recursos o si, por el contrario, conllevan una pérdida de rendimiento. ¡Las VRT no siempre funcionan! En la secciones 9.2 y 9.3 se desarrollan brevemente los fundamentos de dos técnicas de reducción de la varianza (números aleatorios comunes y variables antitéticas). Estas técnicas se desarrollan de forma práctica en la resolución de un problema real mediante simulación (sección 9.4). Estructura del capı́tulo 9.2. 9.2.1. Números aleatorios comunes Fundamentos La primera de las técnicas de reducción de la varianza que se expone en este capı́tulo se conoce como números aleatorios comunes (en inglés ((Common Random Numbers)), CRN ) y se aplica para comparar dos o más configuraciones alternativas. Se basa en la idea de estudiar el comportamiento de las alternativas bajo ((condiciones de simulación similares)), es decir, alimentándolas con entradas lo más parecidas posible. De este modo, se asegura que las diferencias en los datos de salida se deben principalmente al comportamiento de los modelos y no a fluctuaciones en el valor de las variables de entrada. A partir de ahora se considera que se quieren comparar dos alternativas (1 y 2) en función del comportamiento de una variable de salida (Y1 e Y2 ). Se denota por y1i e y2i los valores de estas variables en la i-ésima replicación. La comparación se lleva a cabo a través de una nueva variable, (Y ), que representa la diferencia de las anteriores, Y = Y1 − Y2 , y que toma los valores yi = y1i − y2i ). El análisis se realiza mediante el siguiente intervalo: n n yi y1i − y2i = i=1 y(n) = i=1 n n y(n) ± tn−1,1−α/2 S 2 (n) Para más información acerca de este intervalo se recomienda ver el capı́tulo 6 de este texto. Por tanto, para mejorar la precisión del análisis es necesario reducir la varianza de y(n), que se puede expresar mediante la expresión (ver el apartado 3.2.4): V ar [y(n)] = V ar (y1i ) + V ar (y2i ) − 2Cov(y1i , y2i ) V ar (yi ) = n n (9.2) Capı́tulo 9. REDUCCIÓN DE LA VARIANZA Por tanto, si se consigue que los valores de cada par (y1i , y2i ) se correlacionen positavemente, V ar [y(n)] se reduce, y el intervalo de confianza se estrecha. Se puede conseguir esta correlación si en cada replicación i se usan los mismos números aleatorios para generar1 las variables de entrada de ambas alternativas. De este modo se simulan situaciones similares en ambos modelos por lo que es de esperar que las salidas también estén relacionadas. Cada número aleatorio ri (0, 1) se utiliza para generar variables equivalentes en las dos alternativas. Ejemplo 5.2.1 Una empresa decide instalar un sistema telefónico de atención al cliente (a partir de ahora SAT). Para ello cuenta con dos propuestas y realiza un estudio de simulación para elegir aquella que ofrezca un tiempo total medio de llamada menor. En ambos modelos existen dos variables de entrada: tiempo entre llamadas (T ) y duración de cada llamada (D). Si cada replicación se finaliza tras 100 llamadas, serán necesarios 100 valores tj y otros 100 dj (donde j toma valores entre 1 y 100) que se generan a partir de 200 números aleatorios. Para aplicar CRN se utilizan los mismos 200 números aleatorios en ambas alternativas de manera que cada pareja (y1i , y2i ) comparte los 100 valores (tj , dj ). Si en una replicación el conjunto d1 , · · · , d100 , por ejemplo, toma valores altos tanto y1i como y2i tenderán a ser mayores y de este modo se introduce una correlación positiva en cada par. 9.2.2. Sincronización La mayor dificultad de aplicar esta técnica reside en conseguir utilizar los mismos números aleatorios con el mismo propósito en ambas configuraciones. Si se utiliza el número aleatorio ri (0, 1) en la primera alternativa con un propósito determinado debe utilizarse con ese mismo propósito también en la segunda. A diferencia del ejemplo anterior, cada configuración puede necesitar un número diferente de ri (0, 1), y si se quieren hacer n replicaciones se complica localizar donde se ha empleado cada número aleatorio. Para solucionar este problema la mayorı́a de los programas de simulación agrupan sus números aleatorios en series numeradas a las que se puede acceder selectivamente. De este modo se puede sincronizar el uso de los números aleatorios empleando una serie concreta con un el mismo propósito en las dos configuraciones. Este método de sincronización se conoce como series dedicadas. 1 ver sección 3 193 Capı́tulo 9. REDUCCIÓN DE LA VARIANZA Ejemplo 5.2.2 En el cuadro 9.2.2 se organiza el uso de los números aleatorios para el caso del SAT del ejemplo anterior en el caso de hacer 10 replicaciones. Se utilizan los primeros 100 números de cada serie para generar 100 valores de tj o de dj . Rep. 1 2 3 4 5 6 7 8 9 10 9.2.3. Configuración 1 t d Serie 10 Serie 20 Serie 11 Serie 21 Serie 12 Serie 22 Serie 13 Serie 23 Serie 14 Serie 24 Serie 15 Serie 25 Serie 16 Serie 26 Serie 17 Serie 27 Serie 18 Serie 28 Serie 19 Serie 29 Configuración 2 t d Serie 10 Serie 20 Serie 11 Serie 21 Serie 12 Serie 22 Serie 13 Serie 23 Serie 14 Serie 24 Serie 15 Serie 25 Serie 16 Serie 26 Serie 17 Serie 27 Serie 18 Serie 28 Serie 19 Serie 29 Estudio preliminar Como se ha dicho anteriormente, no se sabe de antemano si con la aplicación de esta técnica se mejora la precisión del análisis o por el contrario empeora. Además, en el caso de funcione, no se sabe que mejora se puede esperar. Por tanto, si es posible, se recomienda hacer un pequeño estudio preliminar para asegurar que su aplicación es útil. En el caso de dos configuraciones alternativas los pasos son: 1. Realizar n replicaciones de cada modelo aplicando CRN. Se obtienen y1i e y2i . 2. Calcular para cada replicación yi = y1i − y2j y Sy2 (n). 3. Hacer n replicaciones de cada modelo sin aplicar CRN y calcular Sy2 1 (n) y Sy2 2 (n). 4. Si Sy2 (n) < Sy2 1 (n) + Sy2 2 (n) se recomienda usar CRN. 9.3. 9.3.1. Variables antitéticas Fundamentos La técnica de variables antitéticas (en inglés ((Antithetic Variables)) , AV ) es aplicable al análisis de resultados de una única configuración. La idea básica (1) (2) es estudiar el promedio de la salida de dos replicaciones (yi , yi ), agrupadas de tal modo que si la salida en una de ellas tiene un valor bajo, se 194 Capı́tulo 9. REDUCCIÓN DE LA VARIANZA compense con un valor alto en la otra (es decir, que estén correlacionadas negativamente). El promedio de estas parejas tiene el mismo valor esperado que la salida del modelo pero con una varianza menor. Esta idea se fundamenta matemáticamente de la siguiente manera: (1) mi = yi (2) + yi 2 ⇒ E(M) = E (1) V ar [m(n)] = Y (1) + Y (2) 2 = μY + μY = μY 2 (2) (1) (2) V ar (yi ) + V ar (yi ) + 2Covar (yi , yi ) V ar (mj ) = n n (1) (2) y, por tanto, cuanto mayor sea la correlación negativa entre yi e yi menor es la varianza de m(n). Como E(M) = E(Y ), M(n) es un estimador sin sesgo de μ = E(Y ) y los resultados del análisis de M son aplicables a Y . Como ventaja, tiene una varianza menor por lo que se obtiene un intervalo de confianza más estrecho. 9.3.2. Aplicación Para conseguir esta correlación se utilizan números aleatorios complementarios en las replicaciones que forman cada par. Ası́, si se emplea rk para generar (1) el valor de una variable de entrada en Yi , se utiliza 1 − rk para su equivalen(2) te en Yi . Suponiendo que las variables se generan mediante el método de la (1) transformada inversa, si rk genera un tiempo de servicio alto en Yi (2) , 1 − rk ge- nera uno bajo en Yi . Haciendo lo mismo con todos los valores de entrada de cada pareja se consigue la correlación negativa buscada. A las variables generadas a partir de los números aleatorios originales se les denomina regulares mientras que a las generadas a partir de sus complementarios se les conocen como antitéticas. La mayorı́a de programas de simulación permiten elegir con qué tipo de variables alimentar al modelo. Para aplicar AV es necesario utilizar series dedicadas para cada propósito, empleando las mismas series para obte(1) (2) ner yi e yi pero seleccionando el modo ((variables regulares)) y ((variables antitéticas)) respectivamente. 195 Capı́tulo 9. REDUCCIÓN DE LA VARIANZA Rep. 1 2 3 4 5 6 7 8 9 10 Y (1) Variables: regulares t d Serie 10 Serie 20 Serie 11 Serie 21 Serie 12 Serie 22 Serie 13 Serie 23 Serie 14 Serie 24 Serie 15 Serie 25 Serie 16 Serie 26 Serie 17 Serie 27 Serie 18 Serie 28 Serie 19 Serie 29 Y (2) Variables: antitéticas t d Serie 10 Serie 20 Serie 11 Serie 21 Serie 12 Serie 22 Serie 13 Serie 23 Serie 14 Serie 24 Serie 15 Serie 25 Serie 16 Serie 26 Serie 17 Serie 27 Serie 18 Serie 28 Serie 19 Serie 29 Cuadro 9.1: aplicación de AV para una de las configuraciones del ejemplo 5.2.1 9.4. Ejemplos de aplicación 9.4.1. Ejemplo 5.1: aplicación de CRN La sucursal de un banco decide cambiar su cajero automático y debe elegir entre dos alternativas: un cajero modelo Zippy o dos modelo Klunky. Aunque el primer modelo Zippy permite realizar las operaciones más rápidamente que el Klunky, su coste es aproximadamente el doble, por lo que no se considera el coste como criterio de decisión. El director encarga un estudio de simulación al departamento de asesorı́a y desarrollo de la sede central para elegir la alternativa que reduzca el tiempo que los clientes esperan para ser atendidos, ya que considera que este es el punto más molesto para ellos. La llegada de clientes a la sucursal puede aproximarse a una distribución de Poisson con un ratio de un cliente por minuto. Según los datos recogidos en otras sucursales del grupo, el tiempo de servicio por cliente de un cajero Zippy se puede aproximar a una exponencial con media 0,9 minutos. El comportamiento de los cajeros Klunky es similar pero con media 1,8 minutos cada uno. Se considera que en las dos alternativas se forma una única cola de tipo FIFO. Se elegirá la alternativa que tenga un tiempo medio de espera en cola menor para los 100 primeros clientes. Si fuese el analista al que se encarga dicho trabajo, ¿qué alternativa aconsejarı́a instalar? Fuente: Law A, 2001 196 Capı́tulo 9. REDUCCIÓN DE LA VARIANZA 197 En primer lugar se resuelve el ejemplo anterior sin aplicar ninguna técnica de reducción de la varianza y después se resuelve aplicando CRN. Como conclusión se comparan los resultados obtenidos por ambos métodos. Por tanto, el objetivo de esta sección es doble: por un lado, exponer de manera práctica como aplicar el método CRN y, por otro, demostrar el gran beneficio que en algunos casos supone aplicar este tipo de técnicas. Objetivos del ejemplo En la figura 9.1 se muestra un esquema del procedimiento para resolver el problema. Se define la variable Y como la diferencia entre el tiempo medio de espera de los 100 primeros clientes en la alternativa 1, Y1 , y en la 2, Y2 , es decir, Y = Y1 − Y2 . A partir de 100 replicaciones de cada alternativa se calcula un intervalo de confianza al 90 % para E(Y ). Si E(Y ) > 0 en todo el intervalo, se considera que el tiempo de espera de la primera alternativa es significativamente mayor que el de la segunda, en cuyo caso se elige la segunda alternativa. Si, por el contrario, E(Y ) < 0, es de esperar que los clientes pasen menos tiempo en cola en la alternativa 1, por lo que esta será la elegida. Si el intervalo de confianza contiene al cero, la diferencia entre ambas alternativas se considera no significativa. Planteamiento Figura 9.1: esquema del procedimiento para obtener un intervalo de confianza para E(Y ). El problema del ejemplo puede resolverse analı́ticamente aplicando teorı́a de colas (para más información acerca de esta disciplina se recomienda consultar Saaty, 1983). De este modo se obtiene que los valores esperados del tiempo medio de espera de los 100 primeros clientes en las dos alternativas son: E(Y1 ) = 4, 13 y E(Y2 ) = 3, 70. Por lo tanto, se debe elegir la alternativa 2 ya que la espera de cada cliente se reduce en 0,43 minutos de media respecto a la alternativa 1. Mediante estos valores se pueden evaluar los resultados obtenidos mediante simulación. El resultado se conoce de antemano... Capı́tulo 9. REDUCCIÓN DE LA VARIANZA A continuación se presentan los archivos necesarios para seguir la resolución de este ejemplo: Ejemplo5-1a.mod : contiene el modelo la alternativa de 1 en Witness. Ejemplo5-1b.mod : contiene el modelo la alternativa de 2 en Witness. Ejemplo5-1 Experimento.txt : con este experimento se consiguen 100 replicaciones independientes. Ejemplo5-1.xls : es la hoja de cálculo donde se debe resolver el ejemplo. Ejemplo5-1 solucion.xls : muestra como debe quedar la hoja de cálculo una vez resuelto el ejemplo. (a) Vista del modelo en Witness de la alternativa 1 (b) Datos / Filtro / Autofiltro Figura 9.2: vista del modelo en Witness de la alternativa 2 198 Capı́tulo 9. REDUCCIÓN DE LA VARIANZA 199 Primer experimento (sin aplicar CRN) Si se desconocen las técnicas de reducción de la varianza, la simulación se realiza sin controlar el uso de semillas, es decir, del mismo modo que en los ejemplos de los capı́tulos anteriores. Los pasos para realizar las 100 replicaciones independientes de la primera alternativa son los siguientes: 1. Abrir el modelo Ejemplo5-1a.mod. 2. Cargar el experimento Ejemplo5-1 Experimento.txt (Model / Experiment / Open). 3. Ejecutar el experimento (Model / Experiment / Batch). 4. Importar los datos del archivo generado Ej5-1.csv en la hoja ((CSV 1)) del archivo Ejemplo5-1.xls . 5. Ordenar los datos importados según el número de replicación (columna B). 6. En la columna M se almacenan los tiempos medios de espera en cola, y1i . Copiarlos en la columna correspondiente de la hoja ((Análisis CRN)). A continuación se describe el proceso para obtener los tiempos medios de espera de la segunda alternativa, y2i : 1. Abrir el modelo Ejemplo5-1b.mod . 2. Cargar el experimento Ejemplo5-1 Experimento.txt (Model / Experiment / Open). 3. Seleccionar el modelo Ejemplo5-1b.mod en (Model / Experiment / Define). 4. Proceder como en el caso anterior para llevar los datos generados al lugar correspondiente de la hoja ((Análisis CRN)). Segundo experimento (aplicando CRN) Las semillas de Witness se organizan en series y subseries tal y como muestra la figura 9.3. Hay un total de 400.000 series, divididas a su vez en 10.000 subseries. Cada subserie contiene 7, 5x1047 números aleatorios. Estos números aleatorios se usan como semillas para generar valores de las variables aleatorias del modelo (ver sección 3.5). Se puede controlar el uso de semillas asignando series concretas las funciones. La sintaxis para hacerlo es la siguiente: FUNCIÓN(parámetros, serie) FUNCIÓN(parámetros, serie,subseries) Los argumentos serie y subserie son opcionales, es posible asignar la serie y la subserie, solamente la serie o ninguna de las dos. Si no se especifica ninguna Semillas en Witness Capı́tulo 9. REDUCCIÓN DE LA VARIANZA 200 de las dos, Witness asigna automáticamente una serie que no se emplea en ninguna otra función (para obtener más información acerca del uso de semillas se recomienda consultar la ayuda de Witness) Como se explica en la sección 9.2, la base de la técnica CRN es la sincronización. En los dos modelos se utilizan números aleatorios con los mismos propósitos: generar tiempos entre llegadas de nuevos clientes y generar duraciones de servicio. La sincronización se consigue asignando la misma serie en las dos alternativas, para cada uno de estos propósitos. Figura 9.3: estructura de las series de semillas en Witness. Los pasos para resolver el ejemplo aplicando CRN son los siguientes: Primera alternativa: 1. Abrir el modelo Ejemplo5-1a.mod . 2. Asignar una serie a la función mediante la que se generan los tiempos entre llegadas de clientes. Para ello, sustituir, por ejemplo, POISSON(1) por POISSON(1,100) en Cliente / Inter arrival time. 3. Asignar una serie a la función mediante la que se generan las duraciones de los servicios. Para evitar qué se solapen2 las series utilizadas en esta función y la anterior hay que dejar como mı́nimo 100 series entre ambas (tantas como replicaciones). Por tanto, sustituir, por ejemplo, NEGEXP(0.9,200) por NEGEXP(0.9,200)) en Zippy / Cycle Time. 4. Guardar los cambios Experimento.txt . y cargar el experimento Ejemplo5-1 5. Seleccionar el modelo Ejemplo5-1a.mod en (Model / Experiment / Define). 6. Ejecutar el experimento (Model / Experiment / Batch). 7. Importar los datos del archivo Ej5-1.csv generado en la hoja ((CSV CRN 1)) del archivo Ejemplo5-1.xls . 8. Ordenar los datos importados según el número de replicación (columna B). 2 Debido a la estructura del archivo Ejemplo5-1 Experimento.txt , al cambiar de replicación también se cambia de serie. Por ejemplo, si en una función se emplea la serie 50 en la replicación 1, al pasar a la replicación 2 se emplea la serie 51 Como asignar las series para aplicar CRN en el ejemplo Capı́tulo 9. REDUCCIÓN DE LA VARIANZA 201 9. Como en el experimento anterior, los tiempos medios de espera en cola se almacenan en la columna M. Copiarlos en el lugar correspondiente de la hoja ((Análisis CRN)). Segunda alternativa: 1. Abrir el modelo Ejemplo5-1b.mod . 2. Asignar las mismas series que en la alternativa anterior (cambiar POISSON(1) por POISSON(1,100) en ((Cliente)) y NEGEXP(1.8,200) por NEGEXP(1.8,200) en los elementos ((Klunky1)) y ((Klunky2))). 3. Guardar los cambios Experimento.txt . y cargar el experimento Ejemplo5-1 4. Seleccionar el modelo Ejemplo5-1b.mod en (Model / Experiment / Define). 5. Ejecutar el experimento (Model / Experiment / Batch). 6. Proceder como en el caso anterior para copiar los datos generados al lugar correspondiente de la hoja ((Análisis CRN)). El análisis de los datos Una vez que se tienen los datos y1,1 , · · · , y1,100 e y2,1 , · · · , y2,100 , se calculan los 100 valores de Y . Se obtienen dos conjuntos de 100 de yi , que representan la diferencia del tiempo medio de espera de los 100 primeros clientes en la replicación i aplicando CRN y sin aplicarlo. A partir de estos valores se obtiene un cuadro como 9.2 donde se presentan los resultados del análisis. NOTA: Existe una fuerte correlación entre y1i e y2i (0,72) a pesar de no haberla inducido intencionadamente. Se debe a que con la asignación automática de Witness se consigue una sincronización parcial debido a la sencillez del modelo. Para apreciar este concepto se presentan los resultados para un experimento donde las series se han escogido intencionadamente para que y1i e y2i sean completamente independientes. Como se menciona en el planteamiento del ejemplo, si se resuelve el mismo problema analı́ticamente se obtiene que E(Y1 ) = 4, 13 y E(Y2 ) = 3, 70, por lo que E(Y ) = 0, 43. De este modo se pueden evaluar los resultados obtenidos mediante los dos métodos: Si no se aplica CRN el valor estimado de la diferencia en ambas alternativas es 0,16 , mientras que si se aplica CRN este valor coincide con el valor esperado, 0,43. Conclusiones Capı́tulo 9. REDUCCIÓN DE LA VARIANZA Función Excel Independ. Sin CRN Con CRN 0,72 0,16 0,43 4,88 0,08 y(n) PROMEDIO(F14:F113) S 2 (n) VAR(F14:F113) 19,94 t99,0,95 DISTR.T.INV(0,1;99) 2,26 Semi-amplitud al 90 % F7*RAIZ(F6/60) 0,74 0,37 0,05 Lim. inferior F5-F8 0,02 -0,32 0,37 Lim. superior F5+F8 1,47 0,63 0,49 Covar(y1i , y2i ) COVAR (D16:D115;E16:E115) 1,43 6,05 11,16 ρ(y1i , y2i ) COEF.DE.CORREL (D16:D115;E16:E115) 0,13 0,72 1,00 Proporción de aciertos CONTAR.SI (F16:F115; > 0 )/100 56 % 55 % 96 % NO NO SI Resultado significativo Cuadro 9.2: resultados estadı́sticos de la aplicación de CRN Al aplicar CRN la varianza de yi se reduce de 4,88 a 0,08, es decir un 98,41 %. Esta reducción repercute en la semi-longitud del intervalo de confianza, que pasa de 0,37 a 0,05, una reducción del 87 %. Si no se aplica CRN solo el 55 % de los valores yi son positivos, mientras que aplicando CRN esta cifra se eleva hasta el 95 %. De esta cifra se deduce que, en el caso de realizar menos replicaciones, si no se aplica CRN la probabilidad de cometer una elección equivocada es mayor. Esta reducción de la varianza es consecuencia del aumento de la covarianza que pasa de 6,05 a 11,16. Analizando este aspecto adimensionalmente, el coeficiente de correlación pasa de 0,72 a 1,00. Los gráficos 9.4 y 9.5 ayudan a comprender la mejora experimentada. Además, como conclusión final, si no se aplica CRN los resultados obtenidos son no significativos por lo que no se podrı́a elegir una de las alternativas. Es un ejemplo de como, a partir de CRN, se pueden extraer resultados relevantes de un proyecto que, de otra manera, no se podrı́a. 202 Capı́tulo 9. REDUCCIÓN DE LA VARIANZA Figura 9.4: gráfico de correlación entre Y2i (eje vertical) e Y1i (eje horizontal) Figura 9.5: comparación del valor de los pares (Y1i , Y2i ) ordenados por replicación 9.4.2. Ejercicio 5.2: Aplicación de AV Después de ver los resultados del estudio de comparación de ambas alternativas, el director del banco del ejercicio 11.1 decide optar por la segunda alternativa, instalar dos cajeros Klunky. Debido a los buenos resultados obtenidos en el primer estudio decide encargar otro estudio para asegurarse de que el servicio prestado será correcto en términos del tiempo de espera. ¿Cuál serı́a su estimación del tiempo medio que pasarán los clientes en la cola antes de poder utilizar uno de los cajeros? El resultado debe expresarse en forma de un intervalo de confianza al 90 %. 203 Capı́tulo 9. REDUCCIÓN DE LA VARIANZA 204 Al igual que en el ejemplo anterior, en primer lugar se resuelve el problema como si no se conociese ninguna técnica de reducción de la varianza y después se resuelva aplicando una técnica de reducción de la varianza, en este caso AV. Para finalizar, se comparan los resultados obtenidos por los dos caminos anteriores. En este caso solo se considera una única alternativa, por lo que el problema consiste en estimar el tiempo medio de espera del servicio (como en el caso anterior se consideran solo los 100 primeros clientes). Para observar la reducción de la varianza resultante de aplicar AV , se lleva a cabo el estudio de simulación mediante dos experimentos con la misma duración: Planteamiento El primero de ellos consta de 200 replicaciones sin controlar la asignación de números aleatorios. Los valores obtenidos se analizan como 200 observaciones del tiempo medio de espera. El resultado se da en forma de un intervalo de confianza al 90 % para la media de esta variable. En el segundo, se realizan 100 pares de replicaciones aplicando AV. Promediando los dos resultados de cada par, se obtienen 100 observaciones de una variable que tiene la misma media que la del experimento anterior, pero menor varianza. Si se construye un intervalo a partir de estos datos también res válido para el valor esperado del tiempo medio de espera. Como se comentó en el ejemplo anterior, este problema se puede resolver analı́ticamente y el valor esperado de la variable de salida es E(Y ) = 3, 70. La comparación de los dos métodos se hace en función del valor puntual obtenido y de la amplitud del intervalo de confianza al 90 % que lo acompaña. Los archivos necesarios para seguir la resolución de este ejemplo son los siguientes: Ejemplo5-2.mod : coincide con el modelo Ejemplo5-2.mod . Ejemplo5-2 Experimento1.txt : es el experimento para conseguir 200 replicaciones sin aplicar CRN. Ejemplo5-2 Experimento2.txt : es el experimento para conseguir 200 replicaciones aplicando CRN. En las 100 primeras replicaciones se emplean valores regulares de las semillas y de la 101 a la 200 se emplean los valores antitéticos. Ejemplo5-2.xls : es la hoja de cálculo donde se debe resolver el ejemplo. Ejemplo5-2 solucion.xls : muestra como debe quedar la hoja de cálculo una vez resuelto el ejemplo. Experimento 1 (sin aplicar AV) Si no se aplica ninguna técnica de reducción de la varianza, la manera habitual de llevar a cabo el estudio de simulación es hacer un número n de replicaciones independientes y tratar cada observación como un valor de la variable de salida. Para hacer un experimento con 200 replicaciones independientes de la alternativa elegida hay que seguir los siguientes pasos: 1. Abrir el modelo Ejemplo5-2.mod . 2. Cargar el experimento Ejemplo5-2 Experimento1.txt (Model / Experiment / Open).y ejecutarlo (Model / Experiment / Batch). Ya se sabe el resultado... Capı́tulo 9. REDUCCIÓN DE LA VARIANZA 3. Importar los datos del archivo generado Ej5-2.csv en la hoja ((CSV)) del archivo Ejemplo5-2.xls . 4. Ordenar los datos importados según el número de replicación (columna B). 5. Copiar los tiempos medios de espera (columna M) en la columna correspondiente de la hoja ((Análisis de los datos)). Experimento 2 (aplicando AV) Para aplicar la técnica AV se realizan 100 pares de replicaciones (200 en total) (1) (2) de las que se obtienen 100 parejas (yi , yi ). Para obtener cada pareja se utilizan las mismas series de números aleatorios, pero en el primer caso con valores regulares y en el segundo con antitéticos. Esta diferencia se indica en la definición de los experimentos, dentro de los archivos Ejemplo5-2 Experimento1.txt y Ejemplo5-2 Experimento2.txt (figura 9.6). Figura 9.6: ejemplo de definición en Witness de un par de replicaciones: (1) (2) (Y8 , Y8 ) A continuación se enumeran los pasos para ejecutar correctamente el experimento: 1. Abrir el modelo Ejemplo5-2.mod . 2. Asignar una serie a la función mediante la que se generan los tiempos entre llegadas de clientes, tal y como se hizo en el ejemplo anterior (por ejemplo, POISSON(1) por POISSON(1,100)). 3. Del mismo modo, asignar una serie a la función mediante la que se generan las duraciones de los servicios. Para evitar qué se solapen sustituir, por ejemplo, NEGEXP(0.9,200) por NEGEXP(0.9,200). 4. Cargar el experimento Ejemplo5-2 Experimento2.txt (Model / Experiment / Open).y ejecutarlo (Model / Experiment / Batch). 5. Importar los datos del archivo generado Ej5-2.csv en la hoja ((CSV AV)) del archivo Ejemplo5-2.xls . 205 Capı́tulo 9. REDUCCIÓN DE LA VARIANZA 206 6. Ordenar los datos importados según el número de replicación (columna B). 7. Copiar los tiempos medios de espera (columna M) en la columna correspondiente de la hoja ((Análisis de los datos)), teniendo en cuenta que las 100 primeras (1) replicaciones son los valores obtenidos mediante semillas regulares, yi y de la (2) 101 a la 200 los obtenidos mediante semillas antitéticas, yi . El análisis de los datos Para analizar los datos del primer experimento se calcula directamente un intervalo de confianza de su media al 90 %. En el segundo experimento. Por otro lado, en el segundo experimento el intervalo ed confianza se calcula para el conjunto de (1) (2) valores obtenidos promediando cada par (yi , yi ). En el cuadro 9.3 se presentan los intervalos obtenidos mediante los dos métodos. Sin AV Con AV y(n) PROMEDIO(D14:D213) 4,11 PROMEDIO(H14:H113) 4,04 S 2 (n) VAR(D14:D213) 9,08 VAR(H14:H113) 3,79 t99,0,95 DISTR.T.INV(0,1;199) 1,65 DISTR.T.INV(0,1;99) 1,66 Semi-amplitud al 90 % D7*RAIZ(D6/100) 0,64 H7*RAIZ(H6/100) 0,42 Lim. inferior F5-F8 3,47 H5-H8 3,62 Lim. superior F5+F8 4,75 H5+H8 4,46 Covar(y1i , y2i ) COVAR (F15:F114;G15:G114) -4,53 ρ(y ( 1)i , y ( 2)i ) COEF.DE.CORREL (F15:F114;G15:G114) -0,38 Pronóstico acertado SI SI Cuadro 9.3: resultados estadı́sticos de la aplicación de AV Además, se observa que aunque en ambos casos el valor real esperado (Y = 3, 70) está contenido en el intervalo de confianza, el valor puntual se acerca más en el caso de aplicar AV. Capı́tulo 9. REDUCCIÓN DE LA VARIANZA 5 207 Capı́tulo 10 OPTIMIZACIÓN Y SIMULACIÓN 10.1. La simulación: una técnica descriptiva 10.2. Simulación y optimización 10.3. Ejemplo