Story Transcript
Diseño de Experimentos
Contenido Introducción .................................................................................................................... 2 Experimentación ............................................................................................................. 3 Experimento de Screening ......................................................................................... 3 Experimento de Usuario .............................................................................................. 3 Optimización de Experimentos ................................................................................... 3 Anova y modelos estadísticos ........................................................................................ 6 Selección de factores ..................................................................................................... 10 Streams de números aleatorios (randoms) ................................................................. 11 Características de los experimentos ............................................................................ 11 Experimentos PLUS ................................................................................................. 11 Matriz de resultados ................................................................................................. 13 Visualización de una matriz de resultados ............................................................... 13 Inicialización de una matriz de resultados ............................................................... 15 El Procedimiento ANOVA ....................................................................................... 16 La Tabla de ANOVA .................................................................................................. 17 Tabla de residuos ...................................................................................................... 18 Experimentos de usuario ......................................................................................... 18 Generadores automáticos de Experimento ............................................................ 19 El Run Procedure ..................................................................................................... 19 Experimentos de Screening ..................................................................................... 20 Creación del experimento de Screening ................................................................... 20 Ejecución del experimento ........................................................................................ 23 Experimentos de Optimización y Superficies de Respuesta ................................ 24 Ejemplos ........................................................................................................................ 27 Conclusión ..................................................................................................................... 40
Introducción En estadística el análisis de varianza (ANOVA, analysis of variance) es una colección de modelos estadísticos y sus procedimientos asociados. El análisis de varianza, sirve para comparar si los valores de un conjunto de datos son significativamente distintos, a los valores de otro o más conjuntos de datos. El procedimiento para comparar estos valores, está basado en la varianza global observada en los grupos de datos a comparar. Típicamente, el análisis de varianza se utiliza para asociar una probabilidad a la conclusión de que, la media de un grupo de puntuaciones es distinta de la media de otro grupo de puntuaciones.
GPSS nos brinda la posibilidad de realizar un estudio de análisis de varianza, a través, del procedimiento ANOVA.
Se puede observar que cuando se repite una simulación en el mismo periodo de sesiones, se puede obtener resultados diferentes a causa de los efectos aleatorios. Estos efectos, deben ser cuidadosamente distinguidos de los efectos reales causados por nuevos diseños y modificaciones en el sistema modelado. El procedimiento ANOVA, ofrece una técnica para establecer si los resultados son diferentes significativamente del nivel del ruido, causado por el azar.
Con el fin de medir la cantidad de ruido aleatorio, deben repetirse las simulaciones sin cambiar nada, excepto la semilla de los generadores de números aleatorios, de este modo se generan ejecuciones (repeticiones) que son importantes porque sirven para medir el ruido estadístico, es decir, el error debido al azar en el experimento. En el esquema más simple, cada diseño que se elige para simular se debe repetir varias veces. A continuación, el procedimiento ANOVA utiliza los datos para detectar si los efectos de los factores del experimento resultan significativamente mayores que el nivel de ruido estadístico. Los resultados de este análisis aparecen automáticamente en la Journal window. El procedimiento ANOVA calcula intervalos de confianza y hace un ANOVA de los resultados de la simulación. Normalmente durante un experimento, se tiene una matriz global llamada matriz de resultados, que precisamente tiene los resultados de la simulación y luego se pasa esta matriz como argumento del procedimiento ANOVA. En GPSS se pueden realizar distintos tipos de experimentos, para quien va a realizar una experimentación es necesario entender el análisis de varianza junto con los modelos estadísticos y la descripción de la tabla ANOVA. También es necesario conocer cómo se especifica la matriz de resultados, las características del procedimiento ANOVA y la tabla de residuos, también es necesario conocer los experimentos de usuario y los generadores automáticos de experimentos.
2
Experimentación La fase inicial de un proyecto de simulación, presupone la existencia de un desarrollo plenamente probado en el cual están representados todos los factores importantes. GPSS brinda tres tipos de experimentos: Screening Experiments, User Experiments, y Optimizing Experiments.
Los experimentos generados por GPSS usan experimentos con factores parciales, con un número fijo de niveles de tratamiento en cada factor. Al crear un experimento propio no existe esta restricción, hay un límite de 6 factores, cada uno de los cuales puede tener cualquier número de niveles de tratamiento, entonces se debe definir un camino o experimento ortogonal, se guardan los resultados en una matriz en cada ejecución, y luego se pasa dicha matriz al procedimiento ANOVA. A continuación se describen los tres tipos de experimentos provistos por GPSS: Experimento de Screening
Un experimento de Screening es generalmente usado para identificar los factores más importantes, afectados por la simulación. Esta información es esencial para dirigir el resto de la investigación, de la manera más eficiente. Los resultados de un experimento de screening muestran qué factores no son eficaces y deben recibir una prioridad baja en estudios futuros. Experimento de Usuario
Son los experimentos más flexibles, son creados y ejecutados por el usuario, no obstante GPSS provee soporte para esto. El objetivo es que se proporcionen los datos necesarios al proceso ANOVA, el cuál analizará el experimento de hasta 6 factores incluyendo 2 y 3 iteraciones entre los factores, el requerimiento principal consiste en pasar al procedimiento ANOVA, la matriz con los resultados del experimento. Experimentos de Optimización La optimización y la predicción cuantitativa del comportamiento de un sistema a menudo son los principales objetivos de un proyecto de simulación. Ambas características son posibles de evaluar usando GPSS. Una “superficie de respuesta” es una ecuación que predice el resultado de la simulación. Es conveniente definir una superficie de respuesta para abreviar los resultados, proporcionando una metodología de predicción, la cuantificación de la sensibilidad de los resultados numéricos y otras hipótesis, y la determinación de niveles óptimos de tratamiento. A partir de un experimento de optimización se busca encontrar los valores óptimos para la simulación. 3
Experimentación y análisis de varianza Las simulaciones no son completamente fieles al mundo real del sistema que se pretende representar, son representaciones que intentan captar las características de comportamiento más importantes del sistema a modelizar.
Una de las principales diferencias con el mundo real es que las simulaciones son perfectamente repetibles. Es decir, si repetimos una simulación muchas veces, tenemos exactamente los mismos resultados cada vez. Entonces intencionalmente se introduce variabilidad en nuestras simulaciones con el fin de que parezca más realista. Esto suele ser esencial para captar el comportamiento del sistema objeto del modelo.
Otra fuente de variabilidad que no se produce en las simulaciones, es debido a la medición propiamente dicha. Mientras que en el mundo real los instrumentos de medición tienen ruido, en el entorno simulado esto no ocurre. El punto es que las observaciones de las simulaciones son (de manera poco natural) nuevas, y pueden ocasionalmente revelar los efectos que existen en el mundo real, pero son extremadamente difíciles de observar allí. A diferencia de los experimentos realizados en el mundo real, en la simulación tenemos mucho más control sobre la variabilidad introducida para imitar la aparente aleatoriedad de repetidas mediciones del mundo real. En general, se introduce uno o más streams de números "pseudo" aleatorios, que pueden pasar algunas pruebas estadísticas de aleatoriedad. Cuando se selecciona una distribución de probabilidad se hace pensando reflejar el comportamiento del sistema. GPSS provee más de veinte de ellos, que serán seleccionadas y utilizadas por el analista de simulación.
El análisis de la varianza, o ANOVA, es una metodología muy desarrollada para extraer información de los resultados de un experimento. En esencia, se separa la varianza de las observaciones, y sus partes componentes se asocian con factores del experimento y sus interacciones. Una parte, llamada el término de error, se asocia con la inevitable aleatoriedad intrínseca de las observaciones. En un sentido, ANOVA intenta dar cuenta de toda la variabilidad de las observaciones en su medio. Lo que se deja aparte, es el "error": una variación que no ha sido explicado por la asociación con las condiciones experimentales. Se trata de una estimación de la variabilidad intrínseca de las observaciones llamado Error Estándar. Por lo general, sólo los efectos que superan la magnitud del error estándar se supone que son reales y no se deben a las fluctuaciones aleatorias. Una prueba F se utiliza normalmente para determinar esto: la magnitud de la relación entre cada parte de la variabilidad con el error se compara con los puntos de la función F tabulada en función de dos parámetros que son los grados de libertad y el nivel de confianza.
Se debe tener cuidado de distinguir la varianza introducida por el realismo de la varianza encontrada en los modelos estadísticos, el error estándar. En general, no queremos distorsionar la primera porque a menudo causa que se pierda de nuestra simulación el comportamiento que simula el mundo real. El objetivo es 4
modelar la aleatoriedad del mundo real con baste precisión, y no reducirla. Por otra parte el propósito del diseño de experimentos es el de reducir la variabilidad que no se puede separar o modelizar en el análisis estadístico. Esto es una cosa y otra la variabilidad introducida ex profeso para simular la aleatoriedad del mundo real. Hay que disminuir la variabilidad de las observaciones en el ANOVA sin distorsionar el modo en que representamos la aleatoriedad del mundo real. Disminuir la variabilidad de las observaciones implica reducir el error standard lo que permite que emerjan los efectos distinguiéndose del ruido. En el manual se discuten dos métodos, uno está muy claro: aumentar la cantidad de observaciones. El segundo es cambiando el modelo estadístico subyacente. Cuando llevamos a cabo un experimento se comienza por seleccionar uno o más valores que cuantifiquen el estado del sistema en función del interés del estudio, lo que normalmente solemos llamar variable de salida que es justamente lo que queremos medir, mejorar, optimizar. Las mediciones de estas cantidades se denominan “observaciones” o “rendimiento” y el conjunto de todas las observaciones constituye el resultado del experimento.
Cuando se diseña el experimento se busca examinar uno o varios factores que influyen en el valor de estas observaciones. A los factores se les va a asignar valores _niveles de tratamiento_ que especifican las condiciones en cada ejecución de la simulación. Si el efecto de algún factor se ve influenciado por otro factor, se dice que hay una interacción entre los dos factores, las interacciones se dan entre los distintos factores y pueden haber presentes en un modelo, muchas, el muchas no es un número cualquiera, tiene que ver naturalmente con la cantidad de factores, por ejemplo si hay 3 factores, no podrán existir (significativas o no) más que interacciones de orden 3: A.B.C.
Se va a simular el sistema en múltiples oportunidades, cada una de las cuales constituirá una corrida experimental. Las combinaciones elegidas para los tratamientos especifican cada ejecución a partir de las cuales obtenemos las observaciones de los resultados. Cuando las condiciones de un conjunto de ejecuciones son las mismas a excepción del azar, las corridas serán consideradas réplicas del experimento, constituyendo una celda, término que se supone lo toman de la propia construcción de la tabla de ANOVA, que es el objeto a analizar. En el análisis de varianza hecho por GPSS las observaciones se particionan en sus partes componentes cada una de las cuales se denominan efectos y que se presumen de la influencia de los factores aislados (factores principales) y sus interacciones. Esta partición se hace en base a un modelo estadístico. Una variación aleatoria causa que las observaciones difieran ligeramente en la suma de los efectos en el modelo estadístico. El término del error es lo que resta en el modelo estadístico. Dado que el error es la cantidad sobrante se la suele llamar error residual. El efecto de un factor es el cambio en la respuesta/variable de salida producido por el cambio en el nivel del factor en cuestión. A esto se lo llama normalmente efecto principal, para medir la diferencia en la respuesta usamos el promedio, es decir, 5
supongamos que existen dos factores A y B y que cada uno tiene dos niveles, supongamos que los valores de la variable de interés nos dan según la tabla: A1 A2
B1 20 40
B2 30 52
En rojo la variable de interés, variable de salida, objeto de la experimentación. Efecto A: 40+52/2 - 20+30/2 = 92/2 – 50/2 = 21 Similarmente, Efecto B = 11 Es importante observar la tabla y tratar de extraer conclusiones, por ejemplo, ¿se puede anticipar algo respecto de la interacción de los factores?. ¿Por qué?. Otra cuestión importante es graficar, por ejemplo la variable de salida en función de los factores. Para experimentos con más de un factor, el análisis de varianza en GPSS requiere que el experimento sea ortogonal, esto significa que los estimadores en el análisis no deben estar correlacionados. En la práctica, se logra proporcionando el mismo número de ejecuciones dentro de cada combinación de un tratamiento en un diseño balanceado.
Para fraccionar un diseño factorial, un pequeño número de efectos son elegidos por el diseñador como generadores, a fin de especificar el conjunto de ejecuciones en el experimento. Lamentablemente, esto también causa que algunos efectos sean indistinguibles. GPSS soporta la experimentación a través de procedimientos internos y a través de la biblioteca PLUS (Programming Language Under Simulation).
Anova y modelos estadísticos
El análisis de varianza permite extraer el mayor número de información disponible en un conjunto de mediciones, cuantificar la variación de las observaciones en relación con la media global, y luego separar la variación en partes adjudicables a diferentes causas. Si no se puede afirmar que un factor experimental induce variabilidad en la medición, decimos que no tiene un efecto significativo para la misma. Por otro lado, si un factor parece inducir variabilidad, ésta debe ser comparada con el valor de la variabilidad intrínseca de la observación, el error estándar. Se hace esto para descartar efectos aparentes que no son más que fluctuaciones aleatorias. El nivel de comparación es necesario porque la variación de cualquier fuente debe ser “mucho mayor” que el error estándar a fin de ser considerado un efecto significativo. La prueba F (llamada así por Fisher), se usa 6
para este propósito, es el criterio por el cual se declaran los efectos de los factores experimentales y sus interacciones como estadísticamente significativos o no.
Implícito al uso de ANOVA está la existencia de un modelo matemático aditivo utilizado para explicar los componentes de la variación en las observaciones, que se denomina modelo estadístico. El modelo estadístico más simple es:
y i = m + ei
En este ejemplo, cada observación se divide en dos componentes, la media de todas las observaciones, m, y el componente aleatorio, e, cada observación tiene un punto de partida, la gran media de población, y a continuación “se adiciona” una desviación aleatoria que conduce a su valor final. La media no varía de observación en observación mientras que sí el componente aleatorio (por eso el subíndice). Este modelo no se usa en el análisis de los resultados de un experimento ya que asigna todas las variaciones de las observaciones a las fuentes aleatorias y no a los factores, por lo que no es muy útil. Modelo utilizado para datos de un solo factor, el factor A:
yi,j = m + ai + ei,j
Se introduce un término a el cual denota el efecto de cada i-ésimo nivel tratamiento en el único factor. El experimento debe incluir una o más ejecuciones para cada nivel del tratamiento del factor A. todas las observaciones obtenidas son analizadas usando el mismo valor para a. El número de combinaciones de tratamiento es el número de niveles de tratamiento del factor. Se tendrá un análisis de varianza sobre la base de este modelo estadístico en una tabla ANOVA que particiona la variación de las observaciones debido al tratamiento del factor A y debido a las variaciones aleatorias. Modelo estadístico con dos factores:
yi,j,k = m + ai + bj + i(ab)i,j + ei,j,k
En modelo estadístico con dos factores, se introduce un término para la interacción entre los factores A y B este término puede diferir en cada combinación del tratamiento y además tiene dos subíndices i y j por cada factor. Recordemos que si el efecto de dos factores juntos no es la suma de sus efectos separados hay una interacción entre ellos. La interacción de los factores A y B será mostrada en la tabla de ANOVA. 7
A continuación se puede ver la tabla de ANOVA:
Las letras A y B denotan factores mientras que AB denota la interacción. El total de la suma de los cuadrados (Sum of Squares) se divide y los componentes son asociados con los efectos de los factores y sus interacciones. Lo que queda, es decir la suma residual de los cuadrados se muestra en la línea del error. La media de la suma de los cuadrados del término de error se utiliza para calcular el error estándar del experimento. Cada Suma de Cuadrados tiene asociado un divisor llamado Grados de Libertad (Degrees of Freedom). Los grados de libertad se usan para crear un estimador insesgado del Error Estándar.
Cada factor y la interacción en el modelo estadístico están representados por una línea en la tabla de ANOVA. En cada línea tenemos la suma de los cuadrados y los grados de libertad asociados con la estimación, a continuación la F resultante de dividir cada cuadrado medio por el cuadrado medio del error. El valor umbral usado para hacer la comparación se denomina Valor Crítico de F (Critical Value of F) y se coloca justo a la derecha de la F de cada factor recién expresada. Si la F calculada excede el valor crítico, el efecto en cuestión se considera significativo. La tabla de ANOVA anterior, muestra el efecto del factor A, es importante y los efectos de los factores B y AB (la interacción) que no son significativos. 8
A veces un experimento no detecta un efecto, aunque existe en realidad. De acuerdo con la tabla ANOVA, hay dos maneras de hacer un experimento en mejores condiciones para detectar efectos reales. Para obtener más resultados positivos necesitamos o una F más grande o un Critical Value de F menor. Es deseable eliminar cualquier parte de la suma de los cuadrados que no tenga un efecto importante y que no va a ser tenida en cuenta en el análisis del error. Si podemos hacer esto, nuestra F estadística generalmente será mayor.
En la experimentación en las ciencias naturales, esto se hace por comparaciones en un entorno homogéneo, una técnica conocida como "bloqueo". Sin embargo, en estudios de simulación el objetivo es la identificación de factores adicionales que deben incluirse en el experimento.
Otros dos enfoques se dirigen a aumentar los grados de libertad del término del error. La primera es simplemente aumentar el número de repeticiones en el experimento. Esta es normalmente la más costosa, pero puede ser muy eficaz. La segunda posibilidad se relaciona con el diseño del experimento y del modelo estadístico, tras el análisis de la varianza. La Mean Square del error es de hecho el término residual que queda después todos los demás cuadrados se han eliminado. Si podemos encontrar una forma aceptable para permitir más de los datos que quedan después que los efectos se eliminan, tendremos una estimación del error estándar que tiene más grados de libertad. El valor crítico resultante de F será menor, aumentando así el poder de los análisis. Esto es lo que intentamos hacer cuando decidimos hacer caso omiso de algunas de las interacciones. En muchos experimentos multifactoriales se elige remover las interacciones de mayor orden con el fin de mejorar la información disponible sobre los efectos principales y las interacciones de menor orden. Se puede hacer esto utilizando el tercer argumento del Procedimiento ANOVA. Si es cierto que estos efectos de interacción no existen, esto permitirá GPSS adicionar grados de libertad para lograr una mejor estimación de la F estadística. Más grados de libertad significan un menor valor crítico de F. Sin embargo, debemos darnos cuenta de que la eliminación de los términos del modelo estadístico, se da por supuesto que no hay una orden de alto efecto. Si hay una posibilidad razonable de una, que sería mejor agregar repeticiones para mejorar las estadísticas en lugar de limitar el análisis a fin de baja interacción. Repeticiones se dan a conocer a la ANOVA de procedimiento en su segundo argumento. El modelo estadístico de dos factores pero sin interacciones es el siguiente:
yi,j,k = m + ai + bj + ei,j,k
Si es cierto que el efecto interacción no existe, se puede mejorar el poder de discriminación del análisis de la varianza, proporcionando más grados de libertad para la el error. Al optar por aplicar esta técnica, sólo tiene que cambiar el tercer 9
argumento de la invocación de ANOVA para retirar las interacciones de orden superior en el análisis.
Selección de factores
Cuando se utiliza el procedimiento ANOVA se define una entidad matriz llamada Matriz de Resultados para guardar los resultados de cada ejecución, si se quiere analizar más de un métrica se debe definir más de una matriz de resultado. La matriz puede tener hasta 6 dimensiones, cada una de cualquier tamaño.
Cuando se escribe un experimento lo más importante es seleccionar los factores del experimento. Estas son las cantidades que se pueden controlar (los hay incontrolables) con el fin de optimizar el sistema. Cada factor está representado por una variable de usuario que toma niveles de tratamiento como valores. Después de correr cada simulación en el experimento, se guarda el resultado en la matriz de resultados para que la información sea analizada por ANOVA.
La posición de cada resultado en la matriz está determinada por la combinación del tratamiento. Por ejemplo si en el experimento se consideran 4 tipos de maquinas y dos velocidades para cada una, el resultado de la tercera maquina de alta velocidad se guarda en posición [3,2]. Cada repetición es etiquetada al final, la primera ejecución en esta combinación de tratamiento es la posición [3,2,1] de la matriz de resultado. Cada dimensión de la matriz es analizada como un factor por el procedimiento ANOVA. El tamaño de la dimensión de la matriz de resultados debe ser al menos tan grande como el número, de niveles de tratamiento de ese factor o el número máximo de repeticiones. No hay un límite arbitrario para el número de niveles de tratamiento dentro de un factor, sólo la impuesta por la memoria virtual de cada computadora.
Se puede examinar cualquier efecto dándole su propia dimensión en la Matriz de Resultados. Se puede incluso separarlos en streams de números aleatorios y tratarlos individualmente como distintos factores. Cada semilla de número aleatorio representa un nivel de tratamiento. Esto proporcionaría información sobre la importancia relativa de cada proceso de entrada aleatoria. Por lo general, sin embargo, se utiliza una sola dimensión de réplicas, y se varían todas las semillas de una replica a la siguiente dentro de una misma combinación de tratamiento. A continuación, se da a conocer la dimensión al procedimiento ANOVA que se utiliza para repeticiones. Esto se hace en el segundo argumento.
No todos los experimentos necesitan una dimensión de réplica ya que ANOVA es capaz de extraer una estimación del error estándar, sin una, se muestra un ejemplo en el modelo LATIN SQUARE. Sin embargo, dependiendo del diseño del experimento, a veces no hay suficientes datos residuales para estimar el error estándar, en ese caso el análisis de la varianza no será capaz de calcular las F estadística de la Tabla ANOVA, cuando esto ocurre se deben añadir réplicas o eliminar las interacciones de alto nivel del modelo estadístico a fin de proporcionar datos suficientes para la estimación del error estándar. Ambos métodos requieren un cambio en la invocación del procedimiento ANOVA. 10
Streams de números aleatorios (randoms) Una guía a menudo utilizada en el diseño de experimentos es la siguiente: controlar todos los factores que se puede, bloquear los que no se pueden controlar, y lo que no se puede bloquear hacerlo aleatoriamente. Esto implica el uso de streams.
Para tratar streams de números aleatorios como factores se aloca una dimensión para cada streams y se usa cada semilla como nivel de tratamiento. Aunque es posible ver el streams de número aleatorio como factores, para examinar sus efectos relativos, puede ser mejor hacer un estudio separado. Para la investigación central de efectos e iteraciones se está más interesados en usar streams de números randoms para representar fuentes naturales e inevitables de aleatoriedad, reservando las dimensiones en la matriz de resultado para los factores en estudio.
El enfoque más común combina todos los flujos de número aleatorio en un único pseudo-factor, en el que cada nivel de tratamiento es un conjunto de distintas semillas para todos los flujos de número aleatorio. Una sola dimensión, la Dimensión de Replica, es alocada en la matriz de resultados para este fin y se lo da a conocer al procedimiento ANOVA. Esto tiene algunas similitudes con el bloqueo, donde se realizan todas las comparaciones dentro de cada bloque homogéneo. El procedimiento ANOVA puede tratar la Dimensión de Replica por separado para una mejor estimación de error estándar del experimento. El experimento consiste entonces de una "celda" experimental para cada combinación de tratamiento, con varias replicas de ejecuciones dentro de cada celda.
Si estos planteamientos son demasiado caros, o no hay una dimensión de la matriz de resultados de más, las ejecuciones deben ser "completamente al azar". Esto significa que la asignación al azar no debe limitarse de ninguna manera, y que el número aleatorio de semillas no deben repetirse dentro de un mismo stream de números random. Si este procedimiento no proporciona suficientes grados de libertad para el análisis, es posible que se tenga que limitar el nivel de las interacciones que se incluirán en el modelo estadístico.
Características de los experimentos Experimentos PLUS PLUS es un lenguaje de programación simple pero potente que es una parte importante del entorno de simulación GPSS. Comenzó como una fuente para subrutinas programables en GPSS y ha progresado hasta convertirse en un lenguaje de control que puede dirigir los detalles de las ejecuciones en un experimento, y el informe sobre los resultados. Un experimento es un procedimiento PLUS donde la palabra clave PROCEDURE se sustituirá por la palabra clave EXPERIMENT. Los experimentos pueden hacer 11
todo lo que pueden los procedimientos normales, y mucho más. Un experimento es invocado por el Comando CONDUCT que invoca el nombre del experimento y le pasa algún argumento que pudiera necesitar.
El poder de un experimento PLUS se basa en su capacidad de invocar procedimientos de la biblioteca "DoCommand". Casi todos los comandos GPSS pueden ser ejecutados por una invocación DoCommand con una cadena de comandos como argumento. No sólo pueden invocar un experimento DoCommand, sino también por lo que puede cualquier procedimiento PLUS normal que ha sido llamado durante la ejecución de un experimento. Esto añade una gran flexibilidad a la programación de experimentos complejos. Un ejemplo de una invocación DoCommand es:
DoCommand("START 1000"); El argumento de la función DoCommand es un string compilado en el alcance global, por esto no se pueden hacer referencia a variables locales en este argumento. Si se necesita pasar a DoCommand valores, se debe utilizar un string de comandos para crear un argumento string incluyendo resultados evaluados. Por ejemplo: ******************************************************* * The Run Execution Procedure * ******************************************************* PROCEDURE SEM_GetResult() BEGIN /* Run Simulation and Log Results. */ /* Treatments have already been set for this run. */ TEMPORARY CurrentYield,ShowString,CommandString; /* Run Procedure Call */ RunProc(SEM_NextRunNumber); /* Place Run Results in Journal. */ ShowString = PolyCatenate("Run ",String(SEM_NextRunNumber),". ", "" ); ShowString = PolyCatenate(ShowString," Yield=",String(CurrentYield),". "); ShowString = PolyCatenate(ShowString," Factor1=",String(Factor1), ";" ); ShowString = PolyCatenate(ShowString," Factor2=",String(Factor2), ";" ); ShowString = PolyCatenate(ShowString," Factor3=",String(Factor3), ";" ); CommandString = PolyCatenate("SHOW """,ShowString,"""", "" ); DoCommand(CommandString); SEM_NextRunNumber = SEM_NextRunNumber + 1; RETURN CurrentYield; END;
Este procedimiento usa un comando show en 3 pasos. Registra el resultado y las condiciones de la ejecución en el Journal. En primer lugar, se crea una cadena temporal, ShowString, que contiene las variables evaluadas a nivel local. En segundo lugar, se construye la cadena con el comando Show completado en la 12
variable temporal CommandString. Finalmente, se invoca el procedimiento DoCommand. Tales procedimientos deben ser llamados, ya sea directa o indirectamente, por un experimento PLUS. En experimentos con muchas ejecuciones, es conveniente usar un Procedimiento PLUS para realizar la puesta en marcha de cada simulación en el experimento. Este procedimiento inicializa los generadores de números aleatorios y las cuestiones de comandos de control de la simulación. Se puede configurar el Experimento PLUS para llamar al Run Procedure cada vez que una simulación se ejecute. Matriz de resultados
La principal fuente de información de un experimento se mantiene en la Matriz de Resultados. La entidad matriz puede tener un máximo de 6 dimensiones. Cada uno de los factores que deben incluirse en el experimento se asigna a una de las dimensiones de la Matriz de Resultados. Además, dependiendo del diseño del experimento, es probable que se desee utilizar una de las dimensiones para réplicas. Si el experimento tiene más de un resultado métrico, se tiene que definir una matriz de resultados para cada uno y, a continuación, utilizar el procedimiento ANOVA para cada uno. Visualización de una matriz de resultados Las entidades matrices se pueden ver en la ventana que muestran las matrices o impresa en el informe estándar. Desde GPSS no es posible ver las 6 dimensiones al mismo tiempo, solo presenta una porción en dos dimensiones. Un pequeño cuadro de diálogo se utiliza para seleccionar la porción de la matriz que se quiere ver. A continuación se muestra esta opción:
13
En este caso tenemos una matriz de 3X4X2 dimensiones. Para usarla primero se selecciona las dos dimensiones para formar las filas y las columnas en la ventana de la matriz y, a continuación, se utiliza el índice de las restantes dimensiones para seleccionar porciones más profundas, excepto la primera. Una vez que la ventana de la matriz, está abierta es posible desplazarse a cualquier lugar dentro de esa “porción”. La otra forma de ver los elementos de una entidad matriz es incluir los resultados en el informe estándar. Para configurarlo se va al menú Editar>Configuración que tiene una casilla de verificación que, cuando se selecciona, pone una línea para cada elemento de la matriz en el informe estándar. A continuación se muestra esta opción:
14
Inicialización de una matriz de resultados Las Variables dentro de GPSS pueden tomar una variedad de tipos de datos sin intervención del usuario. Los valores se convierten de una forma a otra, según sea necesario. Por ejemplo, una cadena se convierte en un número real si el operador que utilice ese valor requiere de un argumento real.
Los elementos de las variables y la Matriz pueden tomar el valor UNSPECIFIED para indicar que ningún valor aún se ha asignado. Por razones de compatibilidad, cuando se crean matrices GPSS o se borran (clear), se les da el valor de 0. Sin embargo, la matriz debe tener todos los elementos inicializados como UNSPECIFIED antes de la ejecución del experimento. De esta manera, el procedimiento ANOVA puede detectar cuando faltan ejecuciones. La inicialización de una matriz es la siguiente: INICIAL MatrixName, UNSPECIFIED
Este comando hace que todos los elementos en la matriz se establecen en el estado UNSPECIFIED. Esta sentencia va por fuera del experimento.
Además de mostrar que faltan datos, el uso de UNSPECIFIED en la matriz de resultados permite a un experimento ser salvado y reiniciado sin repetir ejecuciones que ya han sido completadas. Para ser reiniciable, el experimento debe probar que el elemento de destino sea UNSPECIFIED antes de llamar al Run Procedure. Los experimentos automáticos de screening utilizan este método. Ejemplo de la creación e inicialización de una matriz de resultados:
15
MyResults MATRIZ ,3,5,4,3 INITIAL MyResults,UNSPECIFIED En este ejemplo, se crea una Matriz de Resultados que puede almacenar los resultados de un experimento con 4 factores, o uno con 3 factores con repeticiones. El Factor A puede tener hasta 3 niveles de tratamiento, el factor B puede tener un máximo de 5, y así sucesivamente. Posteriormente con la sentencia INITAL se establecen los elementos de la matriz a UNSPECIFIED. El Procedimiento ANOVA El paso final en un experimento de usuario suele ser el análisis de los resultados. El procedimiento ANOVA puede manejar un análisis de la varianza considerando hasta 6 factores y hasta 3 niveles de interacciones, de todas las combinaciones de los principales factores. Hay 3 argumentos para el Procedimiento ANOVA, el primero es el nombre de la Matriz de Resultados, El segundo argumento es opcional, una dimensión de la matriz de resultados, que se utilizarán para repeticiones, cada nivel en esta dimensión representa una ejecución con números aleatorios distintos. El Procedimiento ANOVA utiliza toda la información asociada como parte de la estimación del error estándar. Esto proporciona una estimación con mayor información y más grados de libertad. En caso de no utilizar repeticiones va 0 como segundo argumento. El tercer argumento, controla las interacciones de los factores, que se incluirán en el modelo estadístico. Si el argumento es 2, sólo dos interacciones se incluyen en el análisis. Si el argumento es 1, no se incluyen términos de interacción. Un valor de 3 o más causa, la inclusión de las interacciones de orden 2 y 3. GPSS no soporta interacciones de orden 4. La razón por la que se quiere limitar los términos de interacción en el modelo estadístico es la siguiente: cuando se eliminan términos de interacción del modelo, la información adicional y los grados de libertad de que se dispone dan una mejor estimación del error estándar. ANOVA(Results,2,1)
• Donde Results es la matriz de resultados. • 2 indica, dimensión de la matriz de resultado para repeticiones • 1 indica que no se incluyen interacciones.
El principal objetivo del procedimiento ANOVA es crear una tabla que contenga la estadística resultante F y su valor crítico, al llamar al procedimiento ANOVA desde una subrutina Plus el valor del error estándar es devuelto al completarse el procedimiento ANOVA. 16
La Tabla de ANOVA
Como se puede ver en la tabla, cada factor y la interacción del modelo estadístico son representados por una línea en la tabla de ANOVA. En cada línea están los cálculos básicos y la estadística F para tal efecto. Cuanto mayor sea el valor F más importante será el efecto. Se considera significativo si es superior a lo que se llama el valor crítico de F. La tabla de ANOVA anterior muestra el efecto de un factor A el cual es importante y los efectos de los factores B y AB (la interacción) que no son significativos.
Lo siguiente en la tabla de ANOVA muestra rangos e intervalos de confianza para cada combinación de tratamiento en el experimento, basado en una estimación agrupada del error estándar. Aunque los intervalos de confianza asociados con las combinaciones de los tratamientos no son independientes, los rangos pueden ser usados por ANOVA. Cuando estos varían enormemente la homogeneidad de la varianza en los residuos se puede poner en duda. En este caso surge la necesidad de examinar los datos en mayor detalle antes de sacar conclusiones, una forma de 17
hacerlo es definir una Table para almacenar los residuos calculados en el análisis de varianza. Tabla de residuos
Cuando el procedimiento ANOVA realiza su análisis, busca una Entidad Table denominada de la misma manera que el nombre de la matriz de resultados, salvo que se le adjunta la cadena "_Residuals". En cuyo caso se van tabulando los residuos de los análisis a los efectos de verificar las hipótesis usadas por ANOVA.
Se puede detectar en esta tabla la falta de homogeneidad de varianza, “heterocedasticidad”, y en la estadística descriptiva en el informe que sigue a la tabla ANOVA. Esto se ve en la apariencia de los residuos que por ejemplo muestran valores inusitados o algún tipo de sesgo.
Experimentos de usuario
El objetivo inmediato de un experimento de usuario es proporcionar la información necesaria para que sea incorporada en el procedimiento ANOVA. Esto significa que el usuario debe llenar una matriz con los resultados de todos los resultados del experimento. Si se prefiere, puede hacerse directamente a través de la utilización de listas de comandos y entradas manuales. Sin embargo, el lenguaje PLUS, permite escribir experimentos programables simplificando las cosas.
Se debe empezar por la selección de los factores cuyos efectos serán estudiados. Por ejemplo, puede que se desee medir el efecto del número de líneas telefónicas en el tiempo medio de espera en una central telefónica. El Factor A de la prueba sería el número de líneas telefónicas, y esto debería ser asignado a la primera dimensión de la Matriz de Resultados. A continuación se debe decidir cuántos niveles de tratamiento (es decir, número de líneas telefónicas) se estudiarán. Si queremos simular intercambios con 4, 8, y 16 líneas. Entonces se necesita 3 posiciones en la Matriz de Resultados para cada una de las tres condiciones. Por lo tanto, la primera dimensión de la matriz de resultados tiene un tamaño de 3.
Se sigue añadiendo factores al experimento de esta forma, utilizando el número de niveles de tratamiento como el tamaño de la dimensión correspondiente en la Matriz de Resultados. Normalmente, se utiliza la última dimensión para repeticiones. El tamaño de la Replicate Dimension debe ser, lo suficientemente grande como para contener los resultados de una celda (es decir, la combinación de tratamiento) en el experimento. La única restricción es que el número total de dimensiones no puede exceder de 6. Al analizar los datos, se debe informar explícitamente a la rutina ANOVA qué dimensión se utiliza para repeticiones. La matriz de resultados debe ser inicializa como UNSPECIFIED, antes de comenzar a almacenar los resultados en ella. De esta forma, es evidente para la rutina ANOVA cuando una ejecución no se ha realizado. Cuando se llama a la rutina ANOVA con los resultados, también se debe decidir si desea excluir de 3 o 2 caminos de las interacciones, en el análisis. Esto mejora la estadística en la tabla de ANOVA. 18
Generadores automáticos de Experimento GPSS puede generar experimentos de Screening u Optimizaciones. Estos pueden ser usados, para descartar factores irrelevantes o para encontrar la mejor combinación de tratamientos. El proceso inserta un Experimento PLUS en su modelo de objetos y, opcionalmente, carga una tecla de función con el Comando CONDUCT apropiado. Esto se hace en 4 pasos: 1. 2. 3. 4.
Se completa el cuadro de diálogo, accedido desde el menú Editar. Se crea el RUN Procedure y se hace clic en Aceptar. Traducir el modelo (Ctrl + Alt + S). O a través de Command>Create Simulation Presione la tecla de función.
Con esto se ejecutará el experimento PLUS, generando un informe. En el caso de un Experimento de Optimización, el informe incluirá una descripción matemática de la superficie de respuesta alrededor de la óptima.
Ambos experimentos requieren un Run Procedure, pero es responsabilidad del programador establecer las condiciones necesarias para su adecuado funcionamiento, este proceso es llamado cada vez que se hace una ejecución de la simulación
El Run Procedure
El Run Procedure es una conexión flexible entre los experimentos generados y la simulación de usuario. Es usado por los experimentos de screening y optimización. Los experimentos generados llaman repetidamente al Run Procedure definido en la ventana de creación para ejecutar cada corrida del experimento.
Cada experimento debe tener un Run Procedure escrito por el usuario o por GPSS. Este se utiliza para establecer el período de medición durante la simulación que se va a observar. Y estable cada ejecución en función de las necesidades y luego se invoca por cada una de ellas. Los Run Procedure son procedimientos Plus y por lo tanto, pueden ser llamados por experimentos y pueden contener llamadas a la biblioteca DoCommand. Normalmente el Run Procedure contiene comandos de configuración para la simulación como RMULT para controlar el Generador de números aleatorios, y START y RESET para establecer el período de medición de la ejecución. Algunas consideraciones son las siguientes:
Se utiliza CLEAR OFF para eliminar las transacciones viejas entre las replicaciones, pero conservando la matriz de resultados. Si el experimento no establece el nivel de los tratamientos se hará en base a argumentos del Run Procedure. 19
Se utiliza RMULT para configurar el Generador de números aleatorios de acuerdo a un argumento del Run Procedure. Si no se ha definido una dimensión de réplica en la matriz de resultados, la utilización de números aleatorios diferentes para cada flujo de semillas en cada ejecución deberá ser "completamente al azar". Se Utiliza String para crear los argumento de DoCommand.
Se Utiliza START para comenzar el período de puesta en marcha. Y el período de medición. Se utiliza RESET para restablecer las estadísticas.
Cuando un experimento se genera automáticamente se crea una plantilla del Run Procedure que puede ser editada para adecuarla al experimento. Experimentos de Screening Estos experimentos se utilizan para buscar los factores que deben ser investigados más a fondo o que deben considerarse irrelevantes. Sin embargo, la naturaleza combinatoria en la medición de los efectos principales y de todas las posibles interacciones _experimento factorial completo_ puede ser demasiado largo para ejecutarse. Entonces para hacer más manejable el procedimiento, se limita el número de niveles de tratamiento a dos por factor, y se buscan formas de ejecutar sólo una fracción de las posibles ejecuciones, sin sacrificar la información más importante.
Cuando se reduce un experimento de screening en una fracción de ejecuciones se pueden mezclar algunos efectos haciendo imposible distinguirlos en el análisis de varianza. Quizás aún peor que eso, es posible que dos fuertes efectos en el mismo grupo de alias se cancelen unos a otros, ocultando así los efectos de cada factor.
Es muy conveniente tener más de un efecto principal en el Alias Group. Sin embargo, normalmente es posible organizar el Alias Group de forma de tener cada efecto principal y las interacciones más importantes en el grupo de alias, con sólo las interacciones de orden superior. A través de GPSS se pueden cambiar los Alias Groups por defecto en caso que los valores por defecto no sean los deseables. Siempre deben examinarse los Alias Groups antes de correr el experimento de Screening si no se separan los efectos principales en grupos es difícil el análisis. Creación del experimento de Screening
El primer paso para crear un experimento de screening es abrir el cuadro de dialogo desde el menú editar seleccionar la opción y hacer click en el ítem . Se debe tener un modelo de objetos activos, para realizar lo anterior. Esto se puede ver en la siguiente imagen: 20
A continuación se muestra el cuadro de diálogo para crear el experimento de screening:
Para especificar el Experimento PLUS que será generado, se completa los campos del diálogo. El campo "Experiment Name" y el campo "‘Run Procedure’ Name" se utilizan como nombres del procedimiento de la experimentación. El experimento llama Al Run Procedure repetidamente. 21
Luego se completan los factores del experimento. Cada nombre de factor es en realidad el nombre de una variable de usuario y debe obedecer las convenciones de nomenclatura de GPSS. Se puede especificar para cada factor dos niveles de tratamiento. Los factores se especifican consecutivamente desde el factor A. La elección del nivel de tratamiento es muy importante y requiere una experimentación previa para que la elección sea buena. Luego sigue la sección “fraction” esto permite especificar que fracción del total del experimento que se ejecutará. Se elige una fracción más pequeña para reducir el tiempo de ejecución. Tipos de DFF: • Full: evaluamos todas las posibles interacciones • Half: solo la mitad de las interacciones • Quarter: solo un cuarto • Eigth: 1/8 de las alternativas posibles • Sixteenth: 1/16 de las alternativas posibles
En "Results Expression" se debe especificar una expresión a ser evaluada como métrica de la simulación, la misma es evaluada y el resultado almacenado en la matriz de resultados. A continuación tenemos dos checkboxes que nos permiten seleccionar opciones adicionales. En primer lugar, se puede pedir que GPSS genere una plantilla del Run Procedure que se podrá editar para adaptarlo a las necesidades del usuario. En segundo lugar, se puede establecer que se cargue el Comando CONDUCT con F11. Si elige esto, después de crear la simulación de objetos, sólo tienes que pulsar F11 para ejecutar el experimento. Antes de generar el experimento se debe examinar los Alias group, para esto:
22
Desde el cuadro de diálogo Alias Group podemos ver que este diseño experimental aísla todos los factores principales. Se puede cambiar la partición de los efectos con el botón . Se tiene que tener en cuenta que cualquier efecto en el conjunto más amplio de los generadores no aparecerá en el informe de los efectos. Esto significa que no se debe elegir los generadores que producen un efecto importante que ocurre en el conjunto más amplio de los generadores. Puede volver a la propuesta de generadores por defecto haciendo clic en el botón “Use Default”. El paso siguiente es inserta el código plus en el modelo objeto de la simulación, primero se da en el cuadro de dialogo Alias Group , y después se hace click en el botón . También se puede personalizar el Run Procedure. Ejecución del experimento Para ejecutar un experimento se utiliza el comando Conduct. La sintaxis es similar a una llamada a procedimiento. Otra forma está en la ventana de dialogo de generación de experimento se puede elegir que se cargue el comando en la tecla F11, esto puede verse desde las configuraciones del modelo objeto. Se puede ver en , que abre la siguiente ventana:
Para iniciar la ejecución del experimento, que tenemos que hacer dos cosas.
1. En primer lugar tenemos que traducir el modelo, creando así la simulación de objetos. Click en Command / Create Simulation o presionar Ctrl+Alt+S. 2. Luego presione la Tecla de función F11. Esto entra el Comando CONDUCT. El experimento comienza a trabajar, reportando la salida en la Journal Windows. 23
Experimentos de Optimización y Superficies de Respuesta La optimización y la predicción cuantitativa del comportamiento de un sistema a menudo son los principales objetivos de un proyecto de simulación. Ambos son provistos por GPSS con el Generador de Experimentos Optimización. La Metodología de Superficie de Respuesta, es un conjunto de técnicas estadísticas para la construcción de modelos empíricos y los modelos de exploración. Aunque se suele utilizar para estimar los niveles óptimos de tratamiento, también pueden proporcionar información importante para las predicciones generales de la prueba de rendimiento bajo condiciones de espera. La simulación analista establece las condiciones iníciales del usuario, en unos pocos diálogos GPSS crea automáticamente una superficie de respuesta que busca experimentar un valor óptimo. Idealmente, se puede iniciar el experimento y dejar que se ejecute sin vigilancia hasta que encuentra el valor. Se debe completar el cuadro de diálogo, llamado a “Local Experimental Region” que se desplaza sobre el conjunto de los niveles permisibles del factor. Si se hace demasiado pequeña, el experimento requerirá más ejecuciones para encontrar a la óptima. Si se hace demasiado grande, las estimaciones de los niveles óptimos de tratamiento serán menos precisas de lo que podría ser. GPSS aplica diferentes metodologías, que explora la superficie de respuesta de un objeto de simulación. El primer concepto es el de “Local Experimental Region” que se define por el usuario en el cuadro de diálogo de configuración. Para definirlo, se asocian cada uno de los factores (5 factores) que deben estudiarse con dos valores que definen el alcance de la “Local Experimental Region”. Entonces, la región se mueve en el espacio del factor. El objetivo, que no siempre se logra, es obtener la óptima dentro de la región local, se realiza una confirmación de ejecutar y, a continuación, informa las condiciones óptimas y el modelo matemático que se utilizó. GPSS utiliza varios experimentos de complejidad cada vez mayor para obtener la información que necesita. Intenta encajar bien un modelo lineal o un modelo de segundo orden (incluida la interacción de dos vías) con los datos. Se inicia mediante el Método de “Steepest Ascent”. La dirección está determinada por la pendiente del primer modelo que se ajuste a los datos. Si la prueba falla para el primer orden, se usa el modelo de segundo orden.
Una vez que se calcula un gradiente, el centro de la “Local Experimental Region” se mueve hasta, volver a disminuir, o encontrar el límite confirmado en el cuadro de diálogo de la configuración. Cada paso no debe superar nunca el ancho definido en la configuración. Si el rango es demasiado estrecho necesitará más pasos para finalizar (alcanzar el gradiente). Cada paso requiere una simulación en el centro de la “Local Experimental Region” y es reportado en el Journal. Cuando el movimiento se detiene, Y la región experimental no contiene un valor óptimo, entonces el experimento puede avanzar en una nueva dirección. Esta reorientación se puede suprimir desde el Redirection Limit en el cuadro de diálogo del Optimizing Experiment Generator. 24
Para poder realizar un experimento de optimización se debe insertarlo a través del menú . A partir de allí se debe completar el siguiente cuadro de dialogo:
Para especificar el Experimento PLUS que está a punto de ser generado, se completan los campos del diálogo anterior. El “Experiment Name" y el "‘Run Procedure’ Name" se utilizan como nombres del PROCEDIMIENTO. El EXPERIMENTO llama al Run Procedure repetidamente.
A continuación se especifican los factores, cada uno de ellos se corresponde con una variable de usuario. Se definen los niveles de tratamiento y el límite de movimiento de las condiciones optimas, se especifican los nombres y dos niveles de tratamiento para los factores.
La sección del cuadro de diálogo “Movement Limits” le da la oportunidad de restringir la circulación de la “Local Experimental Region”. Es posible que se deba ingresar a los límites de cada uno de los factores para que el tiempo no se malgaste en simulaciones inviables. La “Redirection Limit” es otra manera de restringir la búsqueda. Este valor se establece un límite en el número de veces que el experimento puede empezar a avanzar en una nueva dirección en el espacio del factor. Este límite puede evitar que un ciclo sin fin se produzca. 25
La "Expresión de resultados" es obligatoria. Debe especificar una expresión a ser evaluada como la métrica de la simulación Por último, hay dos casillas que permiten seleccionar opciones adicionales. En primer lugar, generar una plantilla del Run Procedure, la cuál puede ser editada. En segundo lugar, permite ejecutar el experimento a través de la Tecla de función F12. El último paso, es insertar el experimento en el modelo objeto de nuestra simulación. Para realizar la ejecución se debe:
1. Crear la simulación de objetos con >Comando /Crear Simulación>, o simplemente pulse . 2. Al presionar la Tecla F12 se ejecuta el experimento y el resultado será informado en el Journal Windows.
Cuando tiene éxito, se informa los resultados de cada ejecución. El experimento PLUS generado intenta mover la “Local Experimental Region”a fin de que incluya las condiciones óptimas. El experimento termina cuando esto ocurre, o cuando la redirección de limitar o un movimiento límite son alcanzados.
Cuando el movimiento se detiene, son provistos los resultados del experimento y la ecuación para la superficie de respuesta. Entonces, el experimento PLUS intenta verificar la predicción de las condiciones de funcionamiento óptimo de una simulación.
26
Ejemplos Un ejemplo sencillo Se va a mostrar el funcionamiento del procedimiento ANOVA, la definición de la matriz de resultado y se dará una descripción de la tabla de ANOVA resultante:
El ejemplo se basa en el modelo del barbero de GPSS, el experimento tiene por objetivo determinar si decrementando el tiempo de cada corte de pelo se reduciría el tiempo de espera de los clientes en la barbería.
El código del ejemplo es el siguiente:
********************************************************************** * Barber Shop Simulation * Time is in minutes * ********************************************************************** GENERATE 5,1.7 ;Create next customer. QUEUE Barber ;Begin queue time. SEIZE Barber ;Own or wait for barber. DEPART Barber ;End queue time. ADVANCE Cut_Time ;Cut takes a few min. RELEASE Barber ;Give up the barber. TERMINATE 1 ;Terminate.
Para realizar este experimento se hará una comparación entre el barbero 1 con un tiempo promedio de corte de 6,8 minutos contra el barbero 2 con un tiempo promedio de corte de 5 minutos. Estos tiempos representan entonces dos niveles del tratamiento. Y se harán 4 ejecuciones. Ya que tenemos 1 tratamiento con dos niveles, necesitamos 2 dimensiones en nuestra matriz de resultados. La última dimensión de una matriz de resultados es siempre de repeticiones, y vamos a tener cuatro de ellos en cada nivel de tratamiento. Por lo tanto vamos a utilizar una matriz de 2 x 4.
Se utilizará el comando EQU para establecer en la variable CUT_TIME el tiempo promedio de corte, primeramente se setea a 6,8 minutos. Luego, después de tres ejecuciones de la simulación y la recogida de datos, el tiempo está establecido en 5 minutos. Para diferencia cada nivel de tratamiento se definió otra variable TREATMENT que toma los valores 1 para el primer tratamiento y 2 para el segundo tratamiento. El comando Clear off, se utiliza entre cada ejecución para reiniciar la matriz de resultados.
27
A través de RMULT se setean las semillas de números randoms, en ambas serie de ejecuciones se utilizan las mismas semillas para evitar que el azar influya sobre el factor. Cada ejecución es iniciada con un START NP evitando así que se imprima el reporte estándar.
A continuación se muestra el archivo (ctlanova_belen.txt) que se incluirá para generar las ejecuciones:
RESULTS MATRIX ,2,4
Definición de la matriz de resultado.
Cut_Time EQU 6.8 Treatment EQU 1 RMULT 411 Start 100,NP MSAVEVALUE RESULTS,1,1,QT$Barber
Primer tratamiento.
Clear Off RMULT 421 Start 100,NP MSAVEVALUE RESULTS,1,2,QT$Barber Clear Off RMULT 431 Start 100,NP MSAVEVALUE RESULTS,1,3,QT$Barber Clear Off RMULT 441 Start 100,NP MSAVEVALUE RESULTS,1,4,QT$Barber Segundo tratamiento.
Clear Off Cut_Time EQU 5 Treatment EQU 2 RMULT 411 Start 100,NP MSAVEVALUE RESULTS,2,1,QT$Barber Clear Off RMULT 421 Start 100,NP MSAVEVALUE RESULTS,2,2,QT$Barber Clear Off RMULT 431 Start 100,NP MSAVEVALUE RESULTS,2,3,QT$Barber Clear Off RMULT 441 Start 100,NP MSAVEVALUE RESULTS,2,4,QT$Barber
Los pasos siguientes describen la ejecución del experimento: 28
1. Se tiene un modelo de simulación bien probado. En este caso utilizo el modelo de la Barbería. 2. Se crea el modelo objeto de la simulación 3. Una vez escrito el archivo utilizado para la ejecución, se incluye el mismo, con y se escribe: INCLUDE "ctlanova_belen.txt"
4. A partir de la inclusión del archivo anterior comienza a ejecutar el experimento. Luego se analizan los resultados con el procedimiento ANOVA. Se va a y se escribe: SHOW ANOVA(Results,2,1)
A continuación se muestra la tabla de ANOVA:
29
Conclusión: se puede ver a partir de la tabla de ANOVA, que el valor crítico F en el 95% es de 5.99. Y el valor de F es mucho mayor, por lo tanto, el efecto de un peluquero más rápido es significativo. Se puede ver también que el valor del error estándar retornado por el procedimiento ANOVA es de 5,9257677.
Ejemplo experimento en PLUS
En este ejemplo se va a mostrar cómo se puede programar la ejecución de un experimento a través del lenguaje PLUS.
La principal característica de estos experimentos es que son definidos con la palabra clave EXPERIMENT, en lugar de PROCEDURE. Aunque no hay diferencia en la sintaxis de ambos, dentro de los EXPERIMENT se puede utilizar los procedimientos de la biblioteca DoCommand. Estos experimentos pueden ser insertados en el modelo objeto de la simulación. CONDUCT BestLines(1,4,1)
Donde BestLines es en nombre del experimento Plus y 1,4,1 son los valores que se les asigna a los argumentos. A partir que comienza la ejecución del experimento, la interacción es limitada, pero se puede ver el funcionamiento del reloj del sistema.
El ejemplo consiste en determinar el número óptimo de líneas telefónicas. Los resultados la ejecución son guardados en la matriz de resultados y en un archivo, denominado Result_belen.txt, luego se invoca al procedimiento ANOVA. A continuación se muestra el código del experimento, se resaltó cada línea importante, que denota las características de la programación del experimento en sí.
********************************************************************** * Matriz de resultado* *********************************************************************** * 4 niveles del tratamiento para el factor, y 3 repeticiones* MainResult MATRIX ,4,3
Definición e inicialización de la matriz de resultado.
*Inicialización de la Matriz, sin datos INITIAL MainResult,UNSPECIFIED
Definición de la tabla de residuos.
* Tabla de residuos de ANOVA MainResult_Residuals TABLE ,-5,1,10 ***********************************************************************
Encabezado del experimento.
EXPERIMENT BestLines(LeastLinesToRun, MostLinesToRun, Increment) BEGIN
/* Se escribe en el Header del Journal Windows*/ DoCommand("SHOW """" "); DoCommand("SHOW (""**** Experimento Best_Line****"")"); DoCommand("SHOW """" ");
30
/* Se guarda los datos en Result_belen. */ Open(2,"RESULT_belen.TXT"); /* Open Stream 2 For Statistical data */ Seek(10000,2); /* Append the Results */ Write(2,"**** EXPERIMENT BestLines() ****"); /* Header*/ LevelOfFactor1 = 1;
/* Nivel del factor inicial.*/
CurrentLines = LeastLinesToRun; /*Numero de líneas telefónicas a usar*/ WHILE ((CurrentLines , o simplemente pulse . b. Presionar la Tecla F12. El resultado será informado en el Journal Windows. Se muestra a continuación:
38
Al finalizar el experimento se muestra el valor óptimo encontrado junto con el modelo utilizado.
39
Conclusión GPSS provee una variada posibilidad de realizar experimentos en los modelos simulados, nos brinda tres tipos de experimentos: de usuario, de screening y optimización. Permite la utilización de los generadores automáticos de experimentos de screening y de optimización, ayudando al usuario a realizar experimentos de una manera más fácil y rápida. También a través de la utilización del lenguaje PLUS permite realizar experimentos de usuarios muy flexibles.
La utilización de experimentos permite establecer con mayor precisión factores importantes de los sistemas, a su vez permite estudiar estos factores individualmente o combinados con otros factores determinando su efecto. A través del procedimiento ANOVA se puede decidir si un factor es o no significativo para el sistema, esto permite también focalizarnos en los factores realmente importantes.
Esta serie de experimentos nos permite entonces, estudiar el comportamiento del sistema modelado. Ya sea a través de la identificación de los factores importantes, viendo si las variables de entrada influyen en la variable de salida. Para luego, encontrar valores óptimos, tratando de ajustar así estas variables importantes.
40