Documente Academic
Documente Profesional
Documente Cultură
Unidad 7
Unidad 7
inserta el Experimento PLUS terminado en su modelo y opcionalmente carga el comando CONDUCT apropiado en la tecla funcin F12. Despus, se debe comenzar el experimento, creando el objeto Simulacin (Ctrl+Alt+S) y presionando F12.
Pgina 2 de 12
Unidad 7
Y completar la informacin sobre el nombre del experimento a generar, el nombre del procedimiento que va a invocar las diferentes ejecuciones, el nombre y los posibles valores de las variables a utilizar como factores, el tipo de diseo, ya sea completo(2 k), Half(2k-1), Quarter(2k-2), etc; y finalmente la expresin que definir la variable de salida del experimento.
Pgina 3 de 12
Unidad 7
Esto agregar al cdigo original, toda la codificacin en PLUS para definir y correr el experimento, y mostrar sus resultados. Luego creamos la simulacin:
Pgina 4 de 12
Unidad 7
Pgina 5 de 12
Unidad 7
Pgina 6 de 12
Unidad 7
El lenguaje PLUS
PLUS es el lenguaje que nos permitir la definicin del experimento. Naci como una fuente para realizar subrutinas programables para ser accedidas durante las simulaciones. Con el tiempo evolucion hasta convertirse en un lenguaje de control que puede dirigir los detalles de las corridas de los experimentos y reportar los resultados. Un experimento es un Procedimiento PLUS en donde la palabra clave PROCEDURE es reemplazada por la palabra EXPERIMENT. Los experimentos pueden hacer todo lo que un procedimiento puede hacer, y bastante ms. Los comandos ms importantes que tenemos que conocer para poder realizar experimentos de usuario con PLUS son: EXPERIMENT Descripcin: el procedimiento PLUS que nos permite definir un experimento de usuario. Sintaxis: EXPERIMENT NombreExperimento (Parametro1,Parametro2,) BEGIN END; NombreExperimento: Nombre del experimento que vamos a definir. Parametro1, Parametro2,: son los valores que vamos a pasar al experimento por medio del comando CONDUCT.
Pgina 7 de 12
Unidad 7
PROCEDURE Descripcin: nos permite definir un procedimiento PLUS (funcin). Sintaxis: PROCEDURE NombreProcedimiento (Parametro1,Parametro2,) BEGIN END; NombreProcedimiento: Nombre del procedimiento que vamos a definir. Parametro1,Parametro2,: son los valores que vamos a pasar al procedimiento cuando lo llamemos. DOCOMMAND Descripcin: traduce el argumento entre parntesis y lo enva a la simulacin para ser ejecutado. Solo puede ser utilizado en procedimientos o experimentos. Sintaxis: DOCOMMAND (NombreComando)
NombreComando: Lo que vamos a ejecutar en la simulacin. WHILE DO Descripcin: permite realizar LOOPS dentro del experimento. Sintaxis: WHILE (Condicion) DO BEGIN END; Condicion: condicin de corte del loop While.
La Matriz de Resultados
En GPSS una entidad matriz puede tener hasta seis dimensiones, si bien no hay limitaciones para el tamao de cada dimensin ms all de la cantidad de memoria disponible en la PC. Hay que tener en cuenta que al tener seis dimensiones nos vemos limitados a esa misma cantidad de factores (Cinco factores en caso de utilizar repeticiones). La matriz puede verse tanto en la pantalla de Matriz como en el reporte estndar, pero hay que tener en cuenta que solo 2 dimensiones pueden ser vistas al mismo tiempo en el programa.
Pgina 8 de 12
Unidad 7
Ahora bien, para un experimento la fuente primaria de datos de una simulacin es guardada, como se dijo antes, en la Matriz de Resultados. Para que el procedimiento ANOVA pueda analizar los resultados de un experimento es necesario completar esta matriz correctamente. Para inicializar la matriz de resultados utilizamos el comando INITIAL de la siguiente manera: INITAL NombreMatriz,UNSPECIFIED Este comando causa que todos los elementos de la matriz sean establecidos en el estado UNESPECIFIED. Normalmente estableceremos este comando fuera del experimento de GPSS. Establecer de esta manera la matriz tambin nos permite que el experimento pueda ser guardado y reseteado sin repetir corridas que ya han sido hechas.
MatrizResultado: Nombre de la matriz en donde se encuentran los datos para realizar el ANOVA (requerido).
Pgina 9 de 12
Unidad 7
Repeticiones: la dimensin de la matriz en donde se encuentran las repeticiones de las corridas (opcional). En caso de no utilizar repeticiones esta columna se deja en 0. Interacciones: este argumento controla la cantidad de interacciones entre factores a ser incluida en la salida del ANOVA. El valor 1 en caso de no incluir interacciones. Y los valores 2 y 3 para interacciones de 2 y 3 factores. GPSS solo soporta hasta interacciones entre 3 factores. La salida del procedimiento es la siguiente:
En la misma podemos observar todos los datos pertinentes para obtener la significancia de los factores.
Ejecutar el Experimentos
Para poder ejecutar los experimentos que hemos realizado primero deberemos armar la simulacin, lo que permite que GPSS tome cuenta de los experimentos que hemos realizado. Para ello vamos a el men Command / Create Simulation o simplemente utilizamos el atajo Ctrl+Alt+S. GPSS nos mostrar por la salida que se han registrado los procedimientos que definimos.
Pgina 10 de 12
Unidad 7
Luego de esto deberemos ir al men Command nuevamente pero esta vez seleccionaremos Conduct, y llamaremos al procedimiento del experimento con los parmetros que seteamos, en el caso del ejemplo:
Pgina 11 de 12
Unidad 7
WHILE ((CapaEspera <= MaxSala)) DO BEGIN NF2 = 1; CantEmpleados = MinEmp; WHILE ((CantEmpleados <= MaxEmp)) DO BEGIN Repeticion = 1; WHILE (Repeticion <= 3) DO BEGIN HacerLaCorrida(CapaEspera,CantEmpleados,Repeticion); MatrizRdo[NF1,NF2,Repeticion] = QT$COLA_TOTAL; Repeticion = Repeticion + 1; END; NF2 = NF2 + 1; CantEmpleados = CantEmpleados + 1; END; NF1 = NF1 + 1; CapaEspera = CapaEspera + 1; END; DOCOMMAND("SHOW """" "); ANOVA(MatrizRdo,3,2); DOCOMMAND("SHOW """" "); END; ;======================================================================== ; Funcin Auxiliar ;======================================================================== PROCEDURE HacerLaCorrida(CapEspera,CantEmpleados,NumRepeticion) BEGIN TEMPORARY SemillaAleatoria1; SemillaAleatoria1 = 11 # NumRepeticion; DOCOMMAND("CLEAR OFF"); DOCOMMAND(Catenate("RMULT ",SemillaAleatoria1)); DOCOMMAND(Catenate("ESPERA STORAGE ",CapEspera)); DOCOMMAND(Catenate("EMPLEADOS STORAGE ",CantEmpleados)); DOCOMMAND("START 1,NP"); END; ;======================================================================== ; Cdigo GPSS ;======================================================================== GENERATE 120,100 QUEUE COLA_TOTAL QUEUE COLA_CALLE ENTER ESPERA DEPART COLA_CALLE ENTER EMPLEADOS LEAVE ESPERA DEPART COLA_TOTAL ADVANCE 240,80 LEAVE EMPLEADOS TERMINATE GENERATE 18000 TERMINATE 1
Pgina 12 de 12