Lenguaje de Simulacin GPSS Sentencia GPSS Sentencia GPSS
Estructura de una sentencia de declaracin GPSSW
Nmero Puede ser entero o decimal. Se utilizan solo para las sentencias del programa salvable. Mximo 7 caracteres incluido el punto. Si ingresa una sentencia sin numerar sta solo es temporal. Generalmente se ingresan antes de inicializar la simulacin. Etiqueta Nmero o nombre para la localizacin de un bloque. Si se coloca un asterisco, la sentencia es de comentario. Verbo Nombre identificador para el control o el bloque. Operandos Dependen del severbo identificador utilizado. Comentario Para explicar brevemente el significado de la sentencia.
Se puede pensar en un bloque GENERATE como una puerta a travs de la cual entran las transacciones. No existe ningn lmite en cuanto a la cantidad de bloques GENERATE que puede contener un modelo.
La instruccin de bloque que permite generar las transacciones e ingresarlas en el modelo se llama GENERATE. Su sintaxis es:
GENERATE A,B,C,D,E,F A Es la tasa promedio a la cual se crean las transacciones en unidades de tiempo simulado. No se pueden utilizar parmetros. Default = 0 (opcional).
B Es la dispersin en el tiempo de creacin promedio de las transacciones, es decir, el tiempo de interarrivo de las transacciones al modelo ser de A + - B unidades de tiempo. Su valor por omisin es cero. Default = 0 (opcional)
C Es un operando donde se coloca el tiempo simulado al que llega la primera transaccin al modelo. El valor por omisin no est determinado.
D Es el nmero lmite de transacciones creadas y su valor por omisin es infinito. Default = (opcional)
E Es un operando donde se coloca la prioridad asignada a cada transaccin creada por el GENERATE. En GPSS/PC las prioridades posibles son de 0 a 127. La prioridad mayor tiene preferencia sobre las de prioridad inferior. Default = 0 (opcional)
En GPSS, las distribuciones de tiempos entre llegadas estn divididas en dos categoras: 1.- Distribucin uniforme 2.- Todas las otras distribuciones En esta seccin slo se consideran la generacin de acuerdo con la distribucin uniforme; otras distribuciones se vern en captulos posteriores. Bloque: Generate
Para la distribucin uniforme, el operando A del bloque GENERATE representa el tiempo medio entre llegadas, es decir, el tiempo promedio entre llegadas consecutivas de transacciones. El operando B representa la mitad del ancho del tiempo entre llegadas. El valor del operando B deber ser menor que el valor del operando A en todos los casos, de lo contrario ocurrira un error al intentar generar una transaccin en el tiempo negativo.
El operando C se utiliza cuando solo se requiere fijar el tiempo de generacin de la primera transaccin. La s transacciones subsecuentes se generan de acuerdo con los operandos A y B.
Ejemplos : Generate
GENERATE 6,4 Significa que el tiempo entre llegadas se distribuye uniformemente en el rango 6 4
GENERATE 8 Significa que el tiempo entre llegadas se distribuye uniformemente en el rango 8 0. Es decir que las llegaras ocurriran exactamente cada 8 unidades de tiempo.
GENERATE 6,4,10 Significa que la primera transaccin ser generada al tiempo 10 y las transacciones subsecuentes cada 6 4 a partir del tiempo 10.
GENERATE 6,4,,100 Significa que se generara un mximo de 100 transacciones que se distribuyen uniformemente con el tiempo entre llegadas de 6 4.
GENERATE ,,,100 Significa que se generaran 100 transacciones con un tiempo entre llegadas de 0 0, es decir, que se generaran 100 transacciones juntas (sin ningn tiempo entre ellas) al inicio de la simulacin (tiempo 0)
GENERATE 2700,200,1000,100,50 Crea transacciones cada 2700 200 unidades de tiempo, pero la primera transaccin se crea al tiempo 1000. Despus de 100 transacciones no se generan ms y cada una de las 100 generadas tendr una prioridad de 50.
GENERATE 30,FN$XPDIS Crea transacciones segn una distribucin exponencial negativa con media 30 unidades de tiempo.
TERMINATE se emplea para destruir o remover las transacciones activas que ingresen a ella, se puede emplear para simular que un elemento sale del sistema y ahorrar memoria. Ayuda a que se cumplan las condiciones de terminacin de un programa ya que puede afectar al contador del START. Su sintaxis es: Bloque Terminate TERMINATE A Donde A es un operando donde se coloca el nmero (entero) con el que se disminuir el contador de termino de la simulacin, cuyo nmero inicial se da en la instruccin de control START. Cuando el contador alcanza un valor menor o igual a cero se ejecuta la siguiente instruccin debajo del START, si es un END, la simulacin termina.
Ejemplos: Terminate TERMINATE Cada transaccin que ingresa a este bloque se destruye. Solo las acciones activas que pasen por el, pero no coloca el tiempo de corrida de simulacin. TERMINATE 5 Cada vez que una transaccin ingresa a este bloque se destruye y disminuye en 5 el contador de finalizacin de la simulacin. TERMINATE 1 START 100 En el momento en que una transaccin cruza por el TERMINATE, es destruida y sale del sistema pero decremento el valor del START en una unidad. De esta manera, cuando 100 transacciones cruzan por el TERMINATE, el valor de START llegara a cero y el proceso de simulacin se detendr. TERMINATE 2 START 1000 Cuando una transaccin es cruza por el TERMINATE, es destruida y sale del sistema, pero decrementa el valor START en dos unidades. De tal manera que cuando 500 transacciones crucen por el TERMINATE, el valor START llegara a cero y el proceso de simulacin se detendr.
El objetivo del bloque SEIZE es simular la captura de un servidor, proceso o instalacin. Este bloque acta como controlador del flujo de las transacciones y trabaja en conjunto con el bloque RELEASE. Su funcionamiento general consiste en el manejo de una variable interna llamada F, la que puede tomar los valores de 0 y 1; cuando una transaccin llega a este bloque y trata de entrar, lo podr hacer si el atributo numrico estndar (SNA) F tiene un valor de 0 (ocioso) e inmediatamente cambiar el estado del atributo F a 1 (ocupado). Si una transaccin llega al bloque y el atributo numrico estndar F tiene un valor de 1, la transaccin ser enviada a la cadena de eventos actuales en espera de que el valor de F cambie de 1 a 0.
Sirve para registrar el empleo de una unidad de servicio por parte de una transaccin que entra, de tal forma que la unidad queda ocupada hasta que la transaccin ingresa a una instruccin.
RELEASE. Una sola transaccin podra ocupar varias unidades de servicio simultneamente. Su sintaxis es:
SEIZE A Donde el operando A se emplea para dar la identificacin a la unidad que se ocupa (nmero o nombre). Ejemplo: SEIZE HORNO Registra la ocupacin de una unidad de servicio llamada HORNO. Bloque: Seize
Una instalacin puede ser capturada por una sola transaccin en un momento dado. Las transacciones restantes esperaran de acuerdo con la disciplina de primeras entradas primeras salidas para capturar la instalacin al menos que con otras instrucciones o bloques cambie la disciplina de captura. Por ejemplo SEIZE CAJA significa que la transaccin entrante capturara la instalacin con el nombre de CAJA.
El bloque RELEASE es la contraparte del bloque SEIZE y permite simular la liberacin del servidor, proceso o instalacin que haba sido capturada. La funcin de este bloque es cambiar el valor del atributo numrico estndar F de 1 (ocupado) a 0 (ocioso).
Sirve para desocupar la unidad de servicio ocupada previamente por la transaccin al haber ingresado a un bloque SEIZE. No se reciben negativas para entrar a este bloque. Su sintaxis es:
RELEASE A
El operando A indica la identificacin de la unidad que se libera.
Cada SEIZE requiere acompaarse por un RELEASE, donde el operando A en ambos casos es idntico. Una transaccin por medio de SEIZE captura una instalacin y por medio del RELEASE suelta la misma instalacin al terminar el servicio deseado.
Al utilizar los bloques de SEIZE y RELEASE, saldr un reporte con informacin relevante acerca de la instalacin. Este reporte incluye informacin tal como la utilizacin promedio del servidor, el tiempo de servicio por transaccin y el nmero de entradas al bloque SEIZE.
Ejemplo: RELEASE HORNO
Indica que la transaccin libera a la unidad de servicio HORNO que ocup con anterioridad.
Suspende el movimiento de una transaccin por una cantidad especfica de tiempo simulado. Puede emplearse para simular el tiempo que una persona tarda en ocupar un equipo, en una sala de espera, etc. Su sintaxis es: ADVANCE A,B Donde el operando A corresponde al tiempo de retardo para la transaccin y B es el intervalo de dispersin alrededor de A.
Ejemplos: ADVANCE 12,4 Retarda la transaccin 12 4 unidades de tiempo simulado. ADVANCE 15 Retarda exactamente 15 unidades de tiempo a la transaccin. Bloque: Release Bloque Advance ADVANCE 5,FN$XPDIS Retarda a la transaccin un tiempo distribuido exponencialmente con media 5.
Ejemplo 1 Elabore un programa de simulacin que represente el siguiente sistema: La operacin de un telfono que sirve para que los empleados hagan sus llamadas. El tiempo por llamada es de 3 a 7 min. con probabilidad uniforme; los empleados llegan al telfono cada 10 5 min. Simule 50 llamadas efectuadas. (Por ejemplo para saber si un telfono es suficiente o es necesario otro.
BLOQUE QUEUE El bloque QUEUE permite obtener estadsticas que se forman al momento que las transacciones esperan usar un servidor. El bloque QUEUE debe complementarse con el bloque DEPART. El bloque QUEUE se puede visualizar como punto de inicio para la toma de datos estadsticos de las colas que se pueden formar. La instruccin de bloque QUEUE se emplea para obtener estadsticas de las transacciones que pasan por una fila o cola. Su sintaxis es: QUEUE A,B
GENERATE 600,30
SEIZE TELEFON
ADVANCE 300,120
RELEASE TELEFON
TERMINATE 1
START 50 GENERA USUARIOS DE TELEF. U/C 60030 SEG
SOLICITAN ACCESO AL TELEFONO.
TPO. OCUPACION DEL TELEF: 300 120 SEG
LIBERAN EL TELEFONO DESPUES DE LLAMAR
SE CUENTA UNA LLAMADA.
SE SIMULAN 50 LLAMADAS
Comentario [C1]: 600 segundos (GENERATE) Donde el operando A se emplea para colocar el nombre de la fila a la que se le asignarn las estadsticas. Y B es el nmero de unidades que se deben sumar a la fila cuando una transaccin pasa por la instruccin. El valor por omisin es de uno. Ejemplo(s): QUEUE FILAA Declara una fila de nombre FILAA y le suma una unidad a la fila cuando una transaccin pasa por ella. QUEUE FILAB,3 Declara una fila de nombre FILAB y le suma 3 unidades cada vez que una transaccin pasa por ella.
Reduce el contenido de una fila declarada con QUEUE, en una o ms unidades. DEPART es el complemento de QUEUE ya que sirve para simular que un elemento de la fila se desforma y se va. Registra estadsticas que indican una reduccin en el contenido de la entidad de cola. El bloque DEPART puede visualizarse como punto de terminacin para la toma de datos estadsticos de las colas que se formaron. Su sintaxis es: DEPART A,B Donde A es el operando donde se aporta el nombre de la fila a la que se le removern B unidades, el valor por omisin de B es uno. Ejemplo(s): DEPART FILAA Descuenta una unidad de la fila FILAA que se debe definir antes. DEPART FILAB 3 La fila FILAB se reduce en 3 unidades cada vez que una transaccin pasa por esta instruccin. Al utilizar el bloque QUEUE y DEPART en el reporte aparece una serie de datos estadsticos en el reporte.
1.- Considere un torno manual que procesa piezas en 5 + - 2 minutos con distribucin uniforme. El tiempo entre llegadas al torno sigue una distribucin uniforme con parmetros de 7+-3 minutos. Realice un modelo en GPSS que simule el torneado de 500 piezas
QUEUE MAX CONT. ENTRY ENTRY(0) AVE.CONT. AVE.TIME AVE.(-0) RETRY COLA 500 500 500 0 248.934 1742.329 1742.329 0
FEC XN PRI BDT ASSEM CURRENT NEXT PARAMETER VALUE 501 0 3499.968 501 0 1
2.- Modifique el modelo anterior si desea simular ademas un rectificado de las piezas despus del torneado, en otro torno en el que el tiempo de operacin es de 6+ - 1 minuto con distribucin uniforme Generate seize torno advance 5,2 release torno queue cola2 seize torno2 depart cola2 advance 6,1 release torno2 terminate 1 start 500
GPSS World Simulation Report - Untitled Model 1.2.1
Tuesday, February 06, 2007 16:34:32
START TIME END TIME BLOCKS FACILITIES STORAGES 0.000 3471.564 11 2 0
NAME VALUE COLA 10000.000 COLA2 10002.000 TORNO 10001.000 TORNO2 10003.000
FEC XN PRI BDT ASSEM CURRENT NEXT PARAMETER VALUE 502 0 3472.055 502 0 1 501 0 3472.928 501 4 5 3.- Un puerto cuenta con una gra destinada a la descarga de barcos. Existen dos tipos de barcos que entran al puerto a descargar; los tiempos de descarga siguen una distribucin uniforme con parmetros de 10+- 2 y 17+- 5 horas para los barcos tipo1 y tipo 2 respectivamente. El tiempo entre llegadas entre los barcos sigue una distribucin uniforme con valores de 15+- 2 y de 24+- 5 horas para los del tipo 1 y tipo 2 respectivamente. a) simule el sistema portuario hasta que se hayan descargado 90 barcos.
generate 15,2 queue cola depart cola seize grua advance 10,2 release grua terminate 1
generate 24,5 queue cola seize grua depart cola advance 17,5 release grua terminate 1 start 90
GPSS World Simulation Report - Untitled Model 1.3.1
Tuesday, February 06, 2007 16:44:39
START TIME END TIME BLOCKS FACILITIES STORAGES 0.000 1629.703 13 1 0
QUEUE MAX CONT. ENTRY ENTRY(0) AVE.CONT. AVE.TIME AVE.(-0) RETRY COLA 4 3 17 2 1.441 14.236 16.134 0
FEC XN PRI BDT ASSEM CURRENT NEXT PARAMETER VALUE 19 0 178.463 19 0 8 20 5 180.118 20 0 1 11 0 182.664 11 12 13 21 0 336.000 21 0 15
ENTER
El bloque ENTER tiene dos funciones; en la primera se utiliza para simular la seleccin o captura de uno o ms servidores en paralelo; la segunda se utiliza para simular la entrada, el inicio de estadsticas y la ocupacin de un espacio dentro de una fila de capacidad finita
A: Nombre o nmero de almacenaje (storage) por utilizar. El operando debe ser nombre, entero positivo o SNA (requerido).
B: Nmero de unidades por las que se decrementa la capacidad disponible de almacenaje (storage). Default = 1. El operando debe ser nombre, entero positivo o SNA ( opcional) .
B A ENTER A, B El operando B se puede definir tambin como el nmero de servidores que captura por cada transaccin que entre al bloque ENTER. Para definir el nmero (capacidad) de servidores existentes en paralelo se requiere utilizar la instruccin STORAGE. La transaccin que entra al bloque ENTER capturar cualquier servido que est disponible en ese momento. En caso de no encontrar ningn servidor disponible (segn la capacidad definida en STORAGE), la transaccin en espera ser puesta a Delay Chain (cadena de espera).
SNA R: Capacidad disponible del storage S: Cantidad del storage que est en uso SA: Nmero promedio de transacciones que estn siendo atendidas(nmero de servidores ocupados) SC: Nmero de transacciones que han entrado al almacenaje SE: Regresa el valor de 1 si el storage est vaco, y 0 de otra manera SF: Regresa el valor de 1 si el storage esta lleno, y 0 de otra manera SR: Utilizacin de la capacidad de almacenaje SM: Nmero mximo de servidores ocupados ST: Tiempo promedio de utilizacin de almacenaje SV: Regresa 1 si el storage est en estado disponible, 0 de otra manera
LEAVE
Es la contraparte de bloque ENTER. Su funcin es la de simular la liberacin de uno o ms servidores o la salida y la desocupacin de un lugar en una fila finita.
A: Nombre o nmero de almacenaje (storage) por utilizar. El operando debe ser nombre, entero positivo o SNA requerido). B: Nmero de unidades de almacenaje (storage). Default = 1. El operando debe ser nombre, entero positivo o SNA (opcional)
Al utilizar los bloques ENTER y LEAVE, en el reporte aparece una serie de datos estadsticos que contiene la siguiente informacin:
1. Capacidad disponible para la corrida de la simulacin. 2. El contenido promedio de uso del almacenaje. 3. El nmero total de transacciones que llegaron al bloque ENTER. 4. El tiempo promedio de servicio por cada transaccin. 5. La utilizacin promedio de los servidores. 6. El nmero de servidores que estn ocupados (en uso) al final de la simulacin. 7. El nmero mximo de servidores utilizados en cualquier momento en la corrida de simulacin.
SNA
Son los mismos que el bloque ENTER.
STORAGE B A LEAVE A, B La instruccin STORAGE se utiliza para definir la capacidad mxima almacenaje de nmero de servidores paralelos utilizados en los bloques ENTER y LEAVE.
Nombre: Nombre de referencia (el mismo nombre usado por ENTER y LEA VE). Este campo debe ser nombre (requerido) Capacidad total de almacenaje (STORAGE). Debe ser un nmero entero (requerido)
Si se requiere usar un nmero en la referencia de STORAGE o en el operando A del ENTER o LEAVE, para usarlo en conjunto con los bloques SELECT O COUNT, debe seguir a la definicin del STORAGE una instruccin de QUEUE.
4.- Se desea simular el sistema portuario presentado con anterioridad durante 500 horas, suponiendo que existen tres gras. gruas storage 2 Generate 15,2 queue cola enter gruas depart cola advance 10,2 leave gruas terminate
generate 24,5 queue cola enter gruas depart cola advance 17,5 leave gruas terminate
generate 500 terminate 1 start 1
GPSS World Simulation Report - Untitled Model 1.7.1
FEC XN PRI BDT ASSEM CURRENT NEXT PARAMETER VALUE 55 0 503.727 55 0 1 56 0 509.777 56 0 8 53 0 511.259 53 12 13 57 0 1000.000 57 0 15
5.- Una prensa procesa piezas en 5 minutos. El tiempo entre llegadas sigue una distribucin uniforme con parmetros de de 7 +- 3 minutos. Al salir de la prensa se efecta una inspeccin de de 8 +- 2 minutos con distribucin uniforme, considerando la existencia de dos inspectores realice un modelo en gpss que simule el procesado de 100 piezas. inspector storage 2
generate 7,3 queue cola seize prensa depart cola advance 5 release prensa
FEC XN PRI BDT ASSEM CURRENT NEXT PARAMETER VALUE 102 0 724.217 102 5 6 103 0 725.728 103 0 1 101 0 725.803 101 10 11
BLOQUES INTERMEDIOS En este captulo se toma en cuenta que los tiempos entre llegadas y de servicio pueden ser distribuciones no uniformes y tener otras funciones probabilsticas. Adems, este captulo cubre la forma de guardar informacin para realizar clculos necesarios por medio de parmetros de modo permanente. Cubre adems la especificacin indirecta de los operandos de los bloques, En particular los bloques GENERATE y ADVANCE se pueden usar con este propsito.
FUNCTION .- Esta instruccin sirve para definir una distribucin de probabilidad en base de una serie ( en pares) de datos que provienen de las observaciones:
Nombre function a,b
Nombre.- es el nombre de la referencia de la funcin . Debe ser requerido A.- Argumento de la funcin. Deber ser, SNA o entero positivo (requerido )
B .- Tipo de funcin ( C,D,E,L,M ) seguido por el nmero de pares que aparecer en forma X i , Y i ( requerido )
SNA: FN .- El resultado de evaluar la funcin
EJMPLO1 Se ha observado en una mquina que el tiempo de proceso vara de acuerdo con la siguiente funcin de probabilidad discreta:
Tiempo de proceso ( minutos ) 35 36 37 38 39 40 Frecuencia Relativa ..10 .20 .30 .20 .10 .10 Frecuencia Acumulada .10 .30 .60 .80 .90 1
TPROC FUNCTION RN1,D6
.1,35/.3,36/.6,37/.8,38/.9,39/1,40
EJEMPLO 2 Suponga que el tiempo de muestreo del tiempo de proceso de una mquina arroja los datos mostrados en la tabla:
Tiempo de proceso Frecuencia Relativa Frecuencia Acumulada Minutos Menos de 35 0.00 0.00 De 35 a 40 0.05 0.05 De 40 a 45 0.12 0.17 De 45 a 50 0.33 0.50 De 50 a 55 0.40 0.90 De 55 a 60 0.10 1.00
TPROC FUNCTION RN1,C6
0,35/.05,40/.17,45/.50,50/.9,60/1,60 Una vez que la funcin queda definida se llama mediante las palabras FN$nombre, o FNj usadas como operandos de algunos bloques, por ejemplo.:
Advance FN$TPROC
De tal forma que al cruzar cualquier transaccin por estos bloques, el tiempo de procesamiento ser el correspondiente a la evaluacin de las funciones.
Ejemplo: En un sistema de produccin el tiempo entre llegadas de las piezas sigue una distribucin de probabilidad exponencial con media de 4 minutos. Al llegar las piezas se envan a un torno manual, donde el tiempo de proceso se representa en la siguiente tabla: Tiempo Proceso ( minutos) 1 2 3 4 5 Frecuencia Relativa .40 .30 .15 .10 .05
Modele el sistema durante 8 horas con el fin de determinar el nmero de piezas que fueron procesadas en ese intervalo.
TRAB FUNCTION RN1,D5 .4,1/.7,2/.85,3/.95,4/1,5 GENERATE (EXPONENTIAL(1,0,4)) QUEUE COLA SEIZE MAQUINA DEPART COLA ADVANCE FN$TRAB RELEASE MAQUINA TERMINATE GENERATE 480 TERMINATE 1 START 1
GPSS World Simulation Report - Untitled Model 1.1.1
Tuesday, February 06, 2007 18:21:58
START TIME END TIME BLOCKS FACILITIES STORAGES 0.000 480.000 9 1 0
NAME VALUE COLA 10001.000 MAQUINA 10002.000 TRAB 10000.000
QUEUE MAX CONT. ENTRY ENTRY(0) AVE.CONT. AVE.TIME AVE.(-0) RETRY COLA 697 697 922 1 337.997 175.964 176.155 0
FEC XN PRI BDT ASSEM CURRENT NEXT PARAMETER VALUE 226 0 480.086 226 5 6 924 0 481.179 924 0 1 925 0 960.000 925 0 8
2.- El tiempo entre llegadas de los clientes a una pequea tienda sigue una distribucin exponencial con media de 10 minutos/ cliente. En la tienda existen 15 carritos; los clientes llegan y no encuentran carrito disponible se retiran a otra tienda. El tiempo real que ocupa cada cliente para seleccionar sus artculos sigue una distribucin normal con media de 8 minutos y una varianza de 4, despus de lo cual el cliente se dirige al cajero que lo atiende con una distribucin normal con media de 3 minutos y una varianza de 1. Simule 10 horas el sistema para determinar el nmero de clientes perdidos por falta de carrito.
3.-Un componente se manufactura por medio de una secuencia de tres procesos, cada uno seguido por dos minutos de inspeccin. El primer proceso requiere que el 20 % de los componentes sea reprocesado . El segundo y tercer proceso requieren de 15% y 5% de reproceso respectivamente. El 60 % de los componentes reprocesados se tiran y el resto es tomado como producto aceptable.. La manufactura del componente en promedio inicia cada 30 minutos distribuido exponencialmente. El tiempo para el primer proceso se da en la siguiente tabla:
Frecuencia .1 .13 .16 .22 .19 .15 Tiempo Proceso 10 14 21 32 38 45 El segundo proceso toma de 18+ - 6 minutos, y el proceso final toma24+ - 4 minutos ambos distribuidos uniformemente. Construya un modelo y simule la fabricacin de 100 componentes, determine adems: a) El tiempo que tom la simulacin b) El nmero de componentes rechazados BLOQUE TRANSFER: El bloque transfer causa que una transaccin activa se dirija a una nueva ubicacin dentro del modelo de simulacin.
A
D
B C
Transfer A,B,C,D
A Modalidad de transferencia. El operando debe ser BOTH, ALL, FN, PIC, P, SBR, SIM, fraccin, nombre, SNA o nulo, (opcional).
B. Nmero o ubicacin del bloque. Debe ser nombre o nmero cuando est en la modalidad de p. El operando debe ser nombre SNA o nulo ( opcional )
C Nmero de ubicacin del bloque. Debe ser el valor del incremento cuando est en la modalidad de P o Fn, El operando debe ser nulo nombre o SNA opcional.
D Numero del incremento del bloque cuando est en la modalidad de ALL default = 1, el operando debe ser nulo, nombre o SNA opcional.
Modalidad incondicional 30 TRANSFER , reg
La transaccin que entra a este bloque se dirigir hacia el bloque con la etiqueta de reg.
Modalidad aleatoria ( fraccional
El bloque transfer entra en la modalidad aleatoria cuando el operando A es un nmero fraccional ( con decimal ) la transaccin activa ser dirigida hacia la ubicacin indicada por el operando C con la probabilidad dada en el operando A. La transaccin activa se dirigir hacia la ubicacin indicada por el operando B con el complemento ( 1- A ) de la probabilidad dada en el operando A. Por ejemplo:
30 TRANSFER .40, OPC1, OPC2
El 40 % de las transacciones que entran a este bloque se dirigirn hacia el bloque con la etiqueta OPC2 el resto ( 60%) de las transacciones, se dirigirn hacia el bloque con la etiqueta OPC1.
El 40 % de las transacciones que entran a este bloque con la etiqueta OPC2, el resto de las transacciones se dirigir hacia el siguiente bloque secuencial.
Modalidad Both.
El bloque transfer entra en la modalidad BOTH , cuando el operando A es Both. En esta modalidad cuando entra una transaccin activa, primero se prueba el operando B para entrar al bloque cuya etiqueta est indicada en el operando B. Ewn caso de rechazo, la transaccin intentar entarar al bloque cuya etiqueta est indicada por el operando C. Si la transaccin no puede no puede entrar en ninguno de los bloques indicados por las etiquetas B y C se quedar en el bloque transfer hasta que pueda entrar en alguno de los dos bloques
30 TRANSFER BOTH,SEC1,SEC2
La transaccin que entra a este bloque, primero intentar entrar al bloque con la etiqueta de SEC1, si no puede , intentar entrar al bloque con la etiqueta SEC2, y si tambin es rechazado, permanecer en el bloque transfer hasta que pueda entrar a uno de los dos bloques con las etiquetas SEC1 o SEC2.
MODALIDAD ALL.- 30 TRANSFER ALL, fin
Es una transferencia incondicional al bloque con etiqueta fin.
EEJMPLO: A un proceso de torneado llegan piezas cada 5 +-3 minutos con una distribucin uniforme dicho sistema cuenta con dos tornos el 30 % de las piezas se procesan en el torno 1 y el resto en el torno 2 el primero procesa piezas en 8 + - 2 minutos y el segundo en 6 - + 2 minutos con distribucin uniforme en seguida pasan por un proceso de inspeccin para lo cual se requieren de tres inspectores que tardan en revisar la pieza 3+ - 1 minuto y del cual el 10 % requieren de volver a ser procesadas. Simule el sistema para 1 semana de operacin y obtenga la utilizacin de cada torno y el tiempo de espera de las piezas antes de entrar al torno.
Diagrama
Insp STORAGE 3 GENERATE 5,3 Reg QUEUE cola TRANSFER .7,Torno1,Torno2 Torno1 SEIZE Tor1 DEPART cola ADVANCE 8,2 RELEASE Tor1 Inspe QUEUE cola2 ENTER Insp DEPART cola2 ADVANCE 3,1 LEAVE Insp TRANSFER .1,FIN,Reg FIN TERMINATE 1 Torno2 SEIZE Tor2 DEPART cola ADVANCE 6,2 RELEASE Tor2 TRANSFER ALL,Inspe GENERATE 2400 TERMINATE 1 START 1
Un sistema de telfonos tiene dos lneas externas, las llamadas llegan cada 100 + - 60 segundos. Cuando una lnea est ocupada, el que llama vuelve a llamar despus de 5 + - 1 minuto . la duracin de una conversacin esta normalmente distribuida con media de 5minutos y una desviacin estndar de 50 segundos. Cuanto tiempo se requiere para que 200 llamadas se contesten completamente?
Diagrama Cdigo Lnea STORAGE 2 GENERATE 100,60 Inicio QUEUE cola TRANSFER Both,SI,NO SI ENTER lnea DEPART cola ADVANCE 300,50 LEAVE lnea TERMINATE 1 NO DEPART cola ADVANCE 300,60 TRANSFER ALL,inicio START 200
GPSS World Simulation Report - Untitled Model 2.4.1
Friday, September 26, 2014 14:22:25
START TIME END TIME BLOCKS FACILITIES STORAGES 0.000 31506.520 11 0 1
NAME VALUE COLA 10001.000 INICIO 2.000 LNEA 10000.000 NO 9.000 SI 4.000
LABEL LOC BLOCK TYPE ENTRY COUNT CURRENT COUNT RETRY 1 GENERATE 322 0 0 INICIO 2 QUEUE 6705 0 0 3 TRANSFER 6705 0 0 SI 4 ENTER 201 0 0 5 DEPART 201 0 0 6 ADVANCE 201 1 0 7 LEAVE 200 0 0 8 TERMINATE 200 0 0 NO 9 DEPART 6504 0 0 10 ADVANCE 6504 121 0 11 TRANSFER 6383 0 0
QUEUE MAX CONT. ENTRY ENTRY(0) AVE.CONT. AVE.TIME AVE.(-0) RETRY COLA 1 0 6705 6705 0.000 0.000 0.000 0
Un taller de reparacin de T V. Tiene un solo reparador que se dedica a tres actividades principales
a) reparacin de Tv. En la tienda b) servicio a clientes c) revisin de t.v. a clientes que esperan
la actividad (a) inicia cada 40 + - 8 horas y toma 120 + - 30 minutos realizarla. La actividad ( b) ocurre cada 90 + - 10 minutos y tomo 15 + - 5 minutos y se realiza de forma inmediata. La actividad ( c ) para los clientes que esperan tiene mayor prioridad que la actividad (a)
Simule la operacin de este taller durante 50 das de 8 horas y determine la utilizacin del reparador suponga que cuando empieza una actividad este no puede interrumpirse.
GENERATE 2400,480 QUEUE cola SEIZE reparador DEPART cola ADVANCE 120,30 RELEASE reparador TERMINATE
GENERATE 90,10 QUEUE cola SEIZE reparador DEPART cola ADVANCE 15,5 RELEASE reparador TERMINATE
GENERATE 2400,480,,,2 QUEUE cola SEIZE reparador DEPART cola ADVANCE 120,30 RELEASE reparador TERMINATE
GENERATE 24000 TERMINATE 1 START 1
GPSS World Simulation Report - Untitled Model 5.1.1
Friday, September 26, 2014 14:59:28
START TIME END TIME BLOCKS FACILITIES STORAGES 0.000 24000.000 23 1 0