Sei sulla pagina 1di 61

0

qwertyuiopasdfghjklzxcvbnmqw
ertyuiopasdfghjklzxcvbnmqwert
yuiopasdfghjklzxcvbnmqwertyui
opasdfghjklzxcvbnmqwertyuiop
asdfghjklzxcvbnmqwertyuiopas
dfghjklzxcvbnmqwertyuiopasdf
ghjklzxcvbnmqwertyuiopasdfgh
jklzxcvbnmqwertyuiopasdfghjkl
zxcvbnmqwertyuiopasdfghjklzx
cvbnmqwertyuiopasdfghjklzxcv
bnmqwertyuiopasdfghjklzxcvbn




TECNOLGICO DE ESTUDIOS
SUPERIORES DE COACALCO
INGENIERA EN SISTEMAS
COMPUTACIONALES
ASIGNATURA: SIMULACIN
PROFESORA: GARDUO MARTNEZ
YENI GABRIELA
GRUPO: 3512
MORENO MACIEL SERGIO BRYAN
SANTIAGO CRUZ ALEJANDRA
PROYECTO DE INVESTIGACIN
(GPSS)

1
FECHA DE ENTREGA: 10-10-2013





2
NDICE

Introduccin....2
Objetivo general....4
Desarrollo...5
Qu es GPSS? ..5
Historia...5
Evolucin...6
Caractersticas...7
Ventajas....11
Desventajas..11
Proceso de instalacin...12
Requerimientos de instalacin.15
Navegacin en el entorno.15
Comandos....18
Conclusiones...58
Fuentes de informacin.59
















3
INTRODUCCIN
Originalmente desarrollado por Geoffrey Gordon en IBM a principios de la dcada
de 1960, GPSS ha disfrutado de popularidad continua al pasar los aos. Los
conceptos bsicos han demostrado una gran flexibilidad y poder suficiente para el
modelado de una amplia variedad de sistemas complejos.
GPSS son las iniciales de General Purpose Simulation System que es un sistema
de simulacin de propsito general. El GPSS/H es una versin mejorada de GPSS
desarrollada por Wolverine Software Corporation. Fue liberado en 1977 para
computadoras mainframe de IBM; con una versin para MS-DOS en 1988. El
GPSS/H tiene numerosas extensiones de lenguaje que eliminaron las limitaciones
de las versiones anteriores de GPSS. (Tambin est disponible una versin de
GPSS/H para estaciones de trabajo Sun SPARC.)
En estas secciones se explorar cmo se ve el mundo desde el punto de vista de
GPSS/H y se introducirn los conceptos esenciales y los elementos del lenguaje.
Punto de vista de GPSS/H
El modelador GPSS/H ve el sistema que se quiere modelar desde el punto de
vista de entidades que se mueven a travs del sistema. Estas entidades
dinmicas, llamadas transacciones, se mueven por el sistema de un bloque a otro,
donde un bloque representa una accin o un evento que afecta a la transaccin
misma y a otras entidades.
La coleccin de bloques representa el sistema completo y se llama diagrama de
bloques. Cada bloque de este diagrama corresponde exactamente a una
instruccin de bloque en el archivo fuente.
Por ejemplo, una transaccin puede representar un cliente en la caja registradora
de un supermercado. GPSS/H tiene un bloque que puede simbolizar la llegada de
un cliente a una caja. Este bloque se llama GENERATE. GPSS/H; tambin cuenta
con bloques para representar el tiempo que tarda un cliente en la caja (bloque
ADVANCE), y para simbolizar la salida de un cliente del sistema (bloque
TERMINATE).
Las transacciones suelen representar entidades temporales y terminan cuando
salen del sistema. Sin embargo, en algunos modelos, las transacciones pueden
permanecer en el sistema durante toda la simulacin.
Es importante saber que se pueden representar muchas transacciones de manera
simultnea en un diagrama de bloques. Dependiendo del tipo de bloque, una o
ms transacciones pueden estar en un bloque al mismo tiempo. Cuando una
transaccin espera un recurso ocupado o que alguna condicin del sistema

4
cambie, GPSS/H automticamente adopta la disciplina de cola de la prioridad ms
alta primero, o de primero en llegar, primero en salir.
Adems de las transacciones, existen otras clases de entidades en GPSS/H que
se dividen en tres tipos:
- Recursos (instalaciones y almacenes) que representan la capacidad limitada de
los recursos. 8
- Entidades computacionales (funciones y ampervariables) que se usan para
clculos y la representacin de valores y relaciones numricas.
- Entidades estadsticas (tablas y colas) que recolectan informacin estadstica
con caractersticas de inters en el sistema.
Por ejemplo, el cajero del supermercado es un recurso con capacidad de 1.
GPSS/H, proporciona una entidad interna, la instalacin llamada Facility, para
modelar un recurso unitario. El bloque SEIZE representa una transaccin que
captura una instalacin (facility), y el bloque RELEASE representa su liberacin.
Existen 68 bloques en GPSS/H. Algunos se usan con ms frecuencia que otros, y
una coleccin ms pequea (de unos 15 bloques) puede recordarse con facilidad
y tiene el poder suficiente para modelar una amplia variedad de sistemas.
(Algunos de los 68 bloques son obsoletos, slo estn incluidos en GPSS/H para
conservar la compatibilidad con versiones anteriores.)
En resumen, el punto de vista de GPSS/H es la manera estilizada en que un
modelador ve los sistemas que modela. Con respecto al punto de vista ms
comn del GPSS/H, las transacciones entran en un diagrama de bloques y se
mueven de bloque en bloque compitiendo por los recursos escasos. Las
transacciones se demoran (casi siempre de forma implcita, debido a condiciones
de bloqueo) cuando debe esperar hasta que el recurso queda libre. Tambin se
demoran (de manera explcita debido a un bloque
ADVANCE) cuando reciben el "servicio" de un recurso. Las transacciones
continan movindose de un bloque a otro hasta que termina la simulacin.

Elementos bsicos

El GPSS es un lenguaje orientado a la simulacin de sistemas discretos cuya
estructura de funcionamiento est basada en el enfoque de la interaccin del
proceso.
Para simular el sistema GPSS clasifica a las entidades en dos grandes grupos:

5
Transacciones: Entidades que se mueven a travs del sistema, entrando,
permaneciendo y saliendo de l. Ejemplo: piezas en un taller, personas en un
banco.
Entidades Permanentes: Entidades que estn siempre en el sistema y actan
como recursos disponibles o no. Ejemplo: el obrero en un taller, el cajero en el
banco. Dentro de estas entidades permanentes hay otra subdivisin:
Facilidades: Son las entidades permanentes capaces de atender una sola
transaccin por vez. Ejemplo: el obrero en el taller.
Almacenajes: Entidades capaces de atender ms de una transaccin por vez.
Ejemplo: si hay ms de un obrero efectuando la misma tarea.
Colas: Se forman y se dispone informacin sobre ellas dependiendo si se usa o
no el bloque QUEUE en la simulacin.
Funciones: Se usan para ingresar datos correspondientes a distribuciones de
probabilidades continuas o discretas en el modelo.
Tablas: Permiten obtener distribuciones de probabilidades como resultados del
modelo.
Variables: Mediante su uso se pueden evaluar expresiones matemticas y
lgicas.
Grabar Valores: Parmetros correspondientes a atributos numricos de las
transacciones pueden ser guardados para futuras referencias.

El concepto de funcionamiento general es que las transacciones se mueven a
travs del sistema hasta que encuentran una facilidad o un almacenaje. Tanto las
entidades que se mueven como las permanentes tienen parmetros asociados.
Esos parmetros se denominan, en conjunto, atributos numricos estndar (SNA).
Habr proposiciones del programa asociadas a las transacciones, a las
facilidades, a los almacenajes y otras a la recoleccin de informacin. Para
representar las proposiciones se utilizan diagramas de bloques con una
simbologa especial. Cada bloque representa una proposicin.

El flujo se produce de la siguiente forma. El programa avanza con una transaccin
de un bloque a otro, hasta que algn bloque la retiene, porque representa un
tiempo de espera o porque no puede seguir hasta cumplir con alguna condicin
lgica; entonces busca otra transaccin que deba moverse en el mismo tiempo, si
todas estn completas, avanza el reloj al tiempo del siguiente evento y lo ejecuta.

OBJETIVO GENERAL
Conocer acerca del lenguaje de simulacin GPSS, sus elementos bsicos,
comandos, historia, evolucin, requerimientos y proceso de instalacin.




6
DESARROLLO

Qu es GPSS?

General Purpose Simulation System (GPSS, en espaol: Simulacin de
Sistemas de Propsito General) es un lenguaje de programacin de propsito
general de simulacin a tiempo discreto.
Es un lenguaje de simulacin por eventos, los elementos que se inyectan al
modelo (transacciones) mediante el bloque GENERATE son puestos en la cadena
de eventos futuros (Future Event Chain) con el instante de su futuro nacimiento,
las tareas que estos elementos realizan mediante el bloque ADVANCE generan
eventos futuros con el instante de terminacin de la tarea.
El GPSS detiene el reloj y simula todo lo que tiene que simular para un
determinado instante (eventos corrientes), cuando no tiene ms nada por simular
mira en la cadena de eventos futuros qu es lo prximo que tiene que hacer y
coloca el reloj para ese instante con lo que los eventos que eran futuros se
transforman en corrientes. El GPSS ejecuta todos los eventos corrientes hasta que
no haya ningn evento y as se repite el proceso hasta que un TERMINATE con
operando distinto de cero alcance la cantidad pedida en el START.
Es un lenguaje que persiste en el tiempo dado que su diseo fue
extraordinariamente avanzado para la poca. El usuario describe las acciones que
los elementos que se mueven por el sistema realizan (lo hace mediante los
bloques que representan a esas acciones) y el GPSS se encarga de realizar la
simulacin al momento que recibe el START con la cantidad de transacciones
terminadas que el usuario quiere simular.
Existen otros lenguajes de simulacin tales como SIMSCRIPT II.5 y Simula.

HISTORIA
Tiene su origen a fines de la dcada de 1950 cuando Geoffrey Gordon estaba
trabajando en la Bell Telephone Laboratories. En sus orgenes Gordon era el nico
programador y, cuando el lenguaje todava no tena nombre se lo conoca dentro
de IBM como el Gordon Simulator. Su primer nombre fue General Purpose
Simulator (GPS) (en octubre de 1961). Rpidamente su nombre cambi a General
Purpose Systems Simulator (GPSS).
A mediados de los aos 40 dos hechos sentaron las bases para la rpida
evolucin del campo de la simulacin:

7
La construccin de los primeros computadores de propsito general como el
ENIAC.
El trabajo de Stanislaw Ulam, John Von Neumann y otros cientficos para usar el
mtodo de Montercarlo en computadores modernos y solucionar problemas de
difusin de neutrones en el diseo y desarrollo de la bomba de hidrgeno. Ulam y
Von Neumann ya estuvieron presentes en el proyecto Manhattan.
En 1960, Keith Douglas Tocher desarroll un programa de simulacin general
cuya principal tarea era la de simular el funcionamiento de una planta de
produccin donde las mquinas ciclaban por estados: Ocupado, Esperando, No
disponible y Fallo; de manera que las simulaciones en los cambios de estado de
las mquinas marcarn el estado definitivo de la produccin de la planta. Este
trabajo produjo adems el primer libro sobre simulacin: The Art of Simulation
(1963).
Para aquel entonces, IBM desarroll entre 1960 y 1961 el Sistema de Simulacin
de propsito general o General Purpose Simulation System (GPSS). El GPSS se
dise para realizar simulaciones de teleprocesos involucrando por ejemplo:
control de trfico urbano, gestin de llamadas telefnicas, reservas de billetes de
avin, etc. La sencillez de uso de este sistema lo populariz como el lenguaje de
simulacin ms usado de la poca.
Por otro lado, en 1963 se desarroll SIMSCRIPT, otra tecnologa alternativa al
GPSS basada en FORTRAN, ms enfocada a usuarios que no tenan por qu ser
obligatoriamente expertos informticos en RAND CORPORATION.
Complementariamente a los desarrollos llevados a cabo por RAND e IBM, el Royal
Norwegian Computing Center inici en 1961 el desarrollo del programa SIMULA
con ayuda de Univac. El resultado fue SIMULA I, probablemente el lenguaje de
programacin ms importante de toda la historia.
En 1967 se fund el WSC (Winter Simulation Conference), lugar donde desde
entonces y hasta ahora se archivan los lenguajes de simulacin y aplicaciones
derivadas, siendo en la actualidad el referente en lo que a avances en el campo de
los sistemas de simulacin se refiere.


EVOLUCIN
Periodo (1970-1981)
Durante este periodo se desarrollaron avanzadas herramientas de modelado y de
anlisis de resultados. Gracias tambin a los desarrollos obtenidos en la
generacin de datos y a las tcnicas de optimizacin y representacin de datos, la

8
simulacin llega a su fase de expansin donde comienza a aplicarse en mltiples
campos.
IMAGEN EN MOVIMIENTO
Anteriormente, los datos de salida obtenidos de una simulacin por computadora
se presentaban en una tabla o matriz, de manera que se mostraba el efecto que
los mltiples cambios en los parmetros tenan sobre los datos. El empleo del
formato de matriz se deba al uso tradicional que se haca de la matriz en los
modelos matemticos. Sin embargo, los psiclogos advirtieron que los seres
humanos perciban mejor los cambios en el desarrollo de las situaciones si
miraban grficos o incluso imgenes en movimiento o animaciones generadas a
partir de dichos datos, como las que se ejecutan en las animaciones de imgenes
generadas por computadora.
CARACTERSTICAS
En la actualidad los lenguajes que existen en el mercado tienen una serie de
caractersticas propias que los distinguen de otros, entre esas caractersticas
estn las siguientes:
variables no uniformes conocidas.
incrementos de tiempo fijo como DYNAMO o con incrementos al prximo evento
como GPSS.
resultados.
est escrito, lo cual influye en la forma de detectar y reportar
los errores de lgica.
otro lenguaje o simplemente con el usuario.

Persona que lo desarrollo: Geoffrey Gordon.
Versiones ms conocidas: GPSS I, GPSS II, GPSS III, GPSS/360, GPSS V.
Lenguaje del paquete: Asembler.

9
Reloj de la simulacin: Incremento al prximo evento.
Computadoras compatibles: Generalmente se adapta a cualquier tipo de
computadora.
Reportes
Cuando finaliza la corrida de la simulacin, GPSS escribe un reporte no
formateado en el archivo REPORT.GPS. El contenido del reporte puede ser
modificado por medio de la instruccin START.

Contenido del Reporte Estndar de GPSS

Ttulo:


Subttulo:

iguala a 0.
El nmero de bloques en el modelo actual al final de la simulacin.
de la simulacin.
final de la simulacin.


Nombres:


e. Los nmeros asignados por el
sistema inician en 10 000.
valor del nombre es asignado por el sistema y 3 que el nombre es la ubicacin del
bloque.

Bloques:

mero de lnea del listado de programa de GPSS. Los bloques que
utilicen etiquetas, las cuales aparecern en lugar del nmero de la lnea.
ubicacin.
que.
desde el inicio de la simulacin o desde la ltima RESET o CLEAR.

10
corrida de simulacin.
Nmero de transacciones esperando una condicin especfica,
dependiendo del estado de la entidad de este bloque.


Facilidades:


desde la
ltima RESET o CLEAR) desde el inicio de la simulacin.
simulado.
la ltima RESET o CLEAR.
1 significa disponible, 0 significa ocupado.
la transaccin que es duea del servidor. El 0 significa
que el servidor no tuvo dueo.
de PREEMPT. (El contador de transacciones entra a la modalidad de interrupcin
interrupt mode).
por medio de PREEMPT. (El contador de transacciones en la cadena de
interrupcin).
dependiendo del estado de la entidad de este bloque.
de SIEZE. Esta cadena tambin incluye las transacciones esperando capturar el
servidor por medio de PREEMPT en la modalidad de prioridad priority mode del
bloque de PREEMPT.

Colas:



a la entidad de cola durante el tiempo simulado.
0 tiempo de estancia en la fila. (Entradas sin hacer fila).
l tiempo
simulado.
(Tomando en cuenta la entrada total a cola).

11
-0). Tiempo promedio por unidad de fila durante el tiempo simulado
ajustado por entradas sin hacer fila. (Entrada total-entrada sin hacer fila).
dependiendo del estado de la entidad de este bloque.

Almacenamiento:

apacidad de almacenamiento definida en el programa.

desde el ltimo RESET o CLEAR.
simulado.
simulado. La acumulacin total del operando B del bloque ENTER.

ad de la entidad de almacenamiento al final de la
simulacin. El 1 significa disponible, 0 significa ocupado.
durante el tiempo simulado.
) de la entidad de almacenamiento
durante el tiempo simulado.
dependiendo del estado de la entidad de almacenamiento.
.

Tablas:



fica,
dependiendo del estado de la entidad de la tabla.

rango definido (frecuencia absoluta). CUM%. La frecuencia relativa acumulada en
porcentaje.

Controlador lgico (Logicswitch):

set o verdadera, 0 significa reset o falsa.
dependiendo del estado de LOGIC.



12
Savevalues:


dependiendo del estado de SAVEVALUE.

Matriz:

dependiendo del estado de la matriz.



VENTAJAS
complejas de un sistema dado (sin importar cul).
organizacionales de cierta informacin, en la operacin del sistema.
ite tener una mejor
comprensin del mismo.
valiosa que la simulacin en s.
cuales no se tiene o hay poca informacin.

DESVENTAJAS
para desarrollarse y validarse.

simulacin.
anlisis).

13
requerido.

PROCESO DE INSTALACIN
Paso 1: Descargar GPSS del link siguiente:
http://www.minutemansoftware.com/downloads.asp
Se descarga la versin para estudiantes.

Paso 2: Ejecutar Aplicacin para Instalacin.


14

Hacer doble clic en el icono de la aplicacin de GPSS y dar clic en el botn
ejecutar. Seguir cada una de las indicaciones hasta terminar

Paso 3: Ejecutar la aplicacin y verificar si se instal bien.








15
CMO INSTALAR GPSS/H EN EL DISCO DURO

GPSS/H (versin de estudiante) se distribuye en disco compacto (CD-ROM). Para
instalarlo simplemente inserte el disco en el lector de CD en su computadora. A
menos que haya deshabilitado el reconocimiento automtico de insercin,
Windows debe iniciar de forma automtica el procedimiento de instalacin. Si el
CD no se reconoce en forma automtica, puede correr manualmente el
"setup.exe" contenido en el CD.

El procedimiento de instalacin de GPSS/H requiere el Microsoft Windows
Installer, que est integrado en Windows 2000 y Windows ME, pero no en
Windows 95/98 o Windows NT. Para los sistemas que no cuentan con el
instalador, setup.exe copiar una versin adecuada del mismo desde el CD al
disco duro del sistema.

El procedimiento de instalacin lo llevar por una secuencia de cuadros de dilogo
que le permiten especificar qu componentes de software desea instalar y en qu
parte de su computadora quiere colocarlos. La carpeta predeterminada es
Archivos de Programa/ Wolverine y en las subcarpetas dentro de Wolverine. Si
desea elegir una carpeta diferente, puede hacerlo; sin embargo, no debe mover o
renombrar las carpetas o archivos en esa carpeta creada por el procedimiento de
instalacin. La arquitectura que se ha definido para la carpeta proporciona una
manera conveniente de instalar una variedad de productos de Wolverine Software.

CMO MODIFICAR, REPARAR O ELIMINAR GPSS/H

El Windows Installer proporciona tres acciones posibles para el software instalado:
modificar, reparar o eliminar.

Se puede usar la opcin de modificar (Modify) para agregar o eliminar
componentes de software. Por ejemplo, se proporciona una demostracin del
software llamado Proof Animation, junto con GPSS/H. Si elige no instalarlo cuando
instale GPSS/H, y despus desea verlo, se puede usar la opcin de modificar.

La opcin de reparar (Repair) hace que Windows reemplace archivos instalados
en un principio pero que se han corrompido.

La accin de eliminar (Remove) borra todos los archivos de GPSS/H que se
instalaron.

Para modificar, reparar o eliminar GPSS/H, elija Inicio, Configuracin, Panel de
control, Agregar o quitar programas y seleccione GPSS/H de la lista de programas
que se despliega. Una vez seleccionado GPSS/H, aparecer un cuadro de dilogo
que le da las tres opciones descritas.




16
REQUERIMIENTOS DE INSTALACIN
Requerimientos de hardware y software
(Para la versin de estudiante)
Una computadora IBM o compatible con CPU 80486DX o mayor.
Windows 95/98, Windows ME, Windows NT4 o Windows 2000.
Espacio en disco: 3 a 10 MB para GPSS/H y otros paquetes de software, 1-50 MB
para los modelos de usuario.

NAVEGACIN EN EL ENTORNO
El primer paso es crear el modelo conceptual, descomprimiendo el sistema de
acuerdo a los elementos que es posible simular. Por ejemplo: las cabinas de cobro
se pueden visualizar como unidades de equipo mltiple, ya que son similares en
caractersticas. Los autos se pueden representar por transacciones y el nmero de
autos en espera de servicio se puede cuantificar como una fila frente al servidor.
De esta manera se puede inferir que se har uso de las siguientes instrucciones:
(bsicamente)
SIMULATE para iniciar el programa (compilarlo y correrlo), GENERATE para crear
las transacciones que representaran los autos que llegan por la autopista, QUEUE
para tomar datos de los autos que estn es espera del servicio, ENTER para
simular un conjunto de cabinas de cobro de caractersticas semejantes ADVANCE
para representar los tiempos de atencin, TERMINATE para sacar autos del
modelo de una vez que pasan la caseta, DEPART para descontar de la fila a los
autos atendidos, LEAVE para desocupar las cabinas de cobro, y START para dar
una condicin de terminacin.
CONOCIENDO LA INTERFAZ DE GPSS PARA SIMULACIONES SENCILLAS.

Para crear un nuevo modelo los siguientes pasos son:

1. Colocar el ratn en la pestaa de File en la barra de Men y hacer clic
2. En New.

Seleccionar Model y dar click en el Botn OK.

17




PASOS PARA LA EJECUCIN DE LA SIMULACIN CON GPSS


Pas 1: Haber hecho el modelo utilizando el Lenguaje de GPSS y el diagrama.

Pas 2: Ya hecho el cdigo de pasarlo al editor de GPSS (T puedes escribir tu
cdigo en un editor como el bloc de notas y pasarlo a editor de GPSS sin ningn
problema.).Se inserta el cdigo.








18


Paso 3: Comenzar simulacin.



Arrastrar el ratn hacia la barra de men en la ficha de Command y hacer clic se
desplazara un men desplegable y hacer Click en Create Simulation; Esto
generara la Simulacin y abrir el compilador para verificar errores de escritura
y si no tenemos errores continuara y arrojara un reporte de la simulacin.

19
ESTRUCTURA DEL LENGUAJE

Dentro del editor de GPSS las sentencias se estructuran de la siguiente manera:
Etiqueta Bloque Operandos Comentarios

ETIQUETA: Representa el nombre de una etiqueta o una direccin. La etiqueta es
un campo opcional y su existencia depende de la lgica del programa. Su funcin
es derivar la transaccin al bloque con dicha etiqueta, permitiendo el control de
flujo de las transacciones. Puede tomar cualquier valor alfanumrico con
maysculas o minsculas que deseemos, pero debe ser nica para cada
simulacin. Por ejemplo: ET1, ETIQUETA1, E, Etiqueta, etc.

BLOQUE: Es la instruccin especifica por ejecutar. Representa la accin que va a
llevar a cabo cada una de las transacciones que pasan por all. Por ejemplo:
ENTER, SEIZE, LEAVE, etc.

OPERANDOS: Para que cada bloque ejecute la accin correspondiente es
necesario incluir un conjunto de calificadores, como por ejemplo el tiempo o el
lugar de la accin. Los operandos son las caractersticas individuales de cada
bloque, y dependern de la lgica del sistema.

Comentarios: Es el espacio donde el usuario puede colocar cualquier indicacin o
identificacin de la instruccin. Para escribir un comentario debemos marcarlo con
; al inicio. Por ejemplo: ;esto es un comentario.

COMANDOS
Estructura de una sentencia de declaracin GPSS:
Numero: puede ser entero o decimal. Se utilizan solo para las sentencias
del programa salvable. Mximo 7 caracteres incluido pto.
Si ingresa una sentencia sin numerar esta solo es temporal. Generalmente
se ingresan antes de inicializar la simulacin.
Etiqueta: numero 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 verbo identificador utilizado.
Comentario: para explicar brevemente el significado de la sentencia.




20
EXPRESIONES MATEMTICAS Y COMPARACIONES

Las expresiones matemticas que se pueden realizar en GPSS son las siguientes:


BLOQUES DE LGICA DEL PROGRAMA

Son las instrucciones conocidas como bloques, que se ejecutarn durante la
simulacin; la lgica depender de cada sistema que se desee simular. Debemos
ver al bloque como una unidad de ejecucin dentro del Programa de GPSS. En l
se generan o ingresan transacciones.
Se puede realizar una clasificacin de los bloques teniendo en cuenta la funcin
que llevan a cabo:

21


INSTRUCCIONES PARA LA DEFINICIN DE VARIABLES

Estas instrucciones son de carcter opcional y su inclusin depender del sistema
a modelar. Siempre se encuentran relacionadas con las instrucciones de lgica del
programa. Las instrucciones de definicin de variables son:
Inicializacin de variables,
Definicin de la capacidad de los almacenes,
Definicin del nmero de operarios o mquinas por estacin,
Definicin de las funciones a utilizar,
Definicin de las operaciones matemticas por utilizar, entre otras.

ESTRUCTURA DE UN ARCHIVO

22
Si bien GPSS no es estricto con respecto a la estructura o los lugares que toman
los bloques de la simulacin, es recomendable mantener un cierto orden dentro de
los mismos. La ctedra recomienda guiarse por el siguiente modelo:


FUNCIONES DE PROBABILIDAD

Funciones Pre-establecidas
GPSS posee una lista de funciones de probabilidad pre-definidas que podemos
usar. Esto nos ahorra el hecho de tener que codificarlas y podemos usar las
mismas para modelar los distintos comportamientos que esperamos del sistema.
GPSS cuenta con 24 funciones de este tipo, se detallan a continuacin solamente
las ms usadas.

EXPONENTIAL

Sintaxis: EXPONENTIAL (ENTRADA, LAMBDA, BETA)

Entrada: El generador de nmeros aleatorios el nmero de registro.
Requerido. Debe ser mayor o igual a 1.
Lambda: El valor de compresin utilizado para expandir o contraer la
distribucin.
Beta: El valor de cambio utilizado para la posicin de la distribucin.



23
Teniendo en cuenta adems que:

Media= Varianza=




Ejemplo: la tasa de fallos de un componente se produce con una distribucin
exponencial con media de 6 minutos, y una desviacin estndar de 2 minutos.
Luego los valores son Beta=2 y Lambda=4 (6=2+Lambda). Y la funcin queda
definida de la siguiente manera:
EXPONENTIAL (1, 4, 2)

UNIFORM

Sintaxis: UNIFORM (ENTRADA, A, B)

Entrada: El generador de nmeros aleatorios el nmero de registro. Requerido.
Debe ser mayor o igual a 1.
A: El valor ms pequeo que cabe extraer de la distribucin. Debe ser inferior al
mximo.
B: El valor ms grande que se desprende de la distribucin. Deber ser superior al
min.
Teniendo en cuenta adems que:
Media

Varianza



Ejemplo: a un sistema arriban clientes con una distribucin uniforme de medio 20
min y desviacin estndar de 10 min. Luego los valores son A=10 y B=30.
UNIFORM (1, 10, 30)

POISSON

Sintaxis: POISSON (ENTRADA, LAMBDA)

Entrada: El generador de nmeros aleatorios el nmero de registro. Requerido.
Debe ser mayor o igual a 1.
Lambda: el valor medio de eventos a ocurrir.
Teniendo en cuenta adems que:

Media= Varianza=

NORMAL

24

Sintaxis: NORMAL (ENTRADA, MEDIA, DES_ESTANDAR)

Entrada: El generador de nmeros aleatorios el nmero de registro.
Requerido. Debe ser mayor o igual a 1.
Media: el valor medio de la distribucin. Requerido.
Des_estandar: la desviacin estndar de la distribucin. Estrictamente
positiva. Requerido.
INSTRUCCIONES DE CONTROL DE LA SIMULACIN

Estas instrucciones son las que controlan la ejecucin, edicin, y manejo de
archivos en GPSS/World. Las instrucciones de control en GPSS crean una entidad
que no es bloque o que controla de alguna manera la corrida de una simulacin.
Aqu se discuten en detalle algunas instrucciones.

START

Descripcin: la instruccin START inicia la corrida de una simulacin.

Sintaxis: START A, B, C, D

A: Contador de terminacin. El operando debe de ser un nmero entero
(requerido).
B: Operando de impresin. Se utiliza NP cuando no se desea una impresin. El
default es una impresin estndar del reporte. El operando debe ser NP o nulo
(opcional).
C: No se utiliza.
D: Impresin de cadena. Se utiliza 1 para incluir CEC (Current Event Chain) y FEC
(Future Event Chain) en el reporte estndar. El operando debe de ser nulo o
numero entero (opcional).

CLEAR
Descripcin: la instruccin CLEAR regresa el modelo actual al estado no usado.

Cuando se utiliza la instruccin CLEAR O CLEAR ON, ocurre lo siguiente:




idores se convierten a estado disponible.




25
de colas, cadena del usuario y almacenamiento
sern iguales al contenido actual.



s SAVEVALUES se inicializan en 0.

Sintaxis: CLEAR A

A: ON u OFF. Si no se utiliza el operando A, se supone que es ON. El operando
debe ser ON, OFF, o nulo (opcional). Permite hacer varias corridas arrancando
con el sistema vaco. Cada corrida representa distintas muestras del sistema.
RESET

Descripcin: Esta sentencia de control marca el comienzo de una corrida.
Permite iniciar una simulacin con un sistema que no est vaco. Cuando se
ejecuta RESET despus de una corrida ocurre lo siguiente:

s las transacciones que quedaron, permanecen en el sistema.
mnimo y el mximo.
sistema.

ocupadas.
permanecen en donde estaban.
almacenajes.

El reloj relativo (tiempo desde la ltima vez que se utiliz RESET) se inicializa en
0.
La instruccin RESET no remueve transacciones del modelo actual, donde
CLEAR si las remueve.

Sintaxis: RESET

SIMULATE

Descripcin: la instruccin SIMULATE permite usar un lmite de tiempo real para
la simulacin.

Sintaxis: SIMULATE A

26
A: Tiempo (en minutos) lmite para la simulacin.

Ejemplo: SIMULATE 60
Esta instruccin pone un lmite de 1 hora (60 unidades de tiempo) de tiempo real
para la simulacin.
BLOQUES DE CONTROL DE COMPORTAMIENTO DE TRANSACCIONES

GENERATE

Descripcin: 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.

Sintaxis: GENERATE A, B, C, D, E

A: Tiempo medio entre llegadas. El operando tiene que ser nombre, nmero, SNA
o nulo. No se pueden utilizar parmetros. Default= 0(opcional).
B: Desviacin con respecto a la media (en caso a la distribucin uniforme). El
operando tiene que ser nombre, nmero, SNA o nulo. No se pueden utilizar
parmetros. Default = 0 (opcional).
C: Tiempo en que se generar la primera transaccin. El operando tiene que ser
nombre, nmero, SNA, nulo. No se pueden utilizar parmetros. Default = A
(opcional)
D: Limite de generacin de transacciones. El operando tiene que ser nombre,
nmero, SNA o nulo. No se pueden utilizar parmetros. Default = x (opcional).
E: Nivel de prioridad. El operando tiene que ser nombre, nmero, SNA o nulo. No
se pueden utilizar parmetros. Default = 0 (opcional).

Consideraciones Especiales: En GPSS las distribuciones de tiempo entre
llegadas estn divididas en dos categoras:




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

27
generacin de la primera transaccin. Las transacciones subsecuentes se generan
de acuerdo con los operandos A y B.
TERMINATE
Descripcin: el bloque TERMINATE se utiliza para mover las transacciones
activas de la simulacin. As, TERMINATE ejecuta una funcin opuesta al bloque

GENERATE. Tiene tres propsitos principales:


ado por el
sistema (al utilizar el operando A).
de START.

Sintaxis: TERMINATE A

A: cantidad decremental del contador de terminacin. El operando debe ser
nombre, nmero entero o SNA (opcional).

TRANSFER

Descripcin: El bloque Transfer causa que una transaccin activa se dirija a una
nueva ubicacin dentro del modelo de simulacin. Cuando una transaccin entra
al bloque de TRANSFER, el operando A se usa para determinar la modalidad de
operacin. Cuando no se especifican los operandos B o C (la ubicacin del
bloque), se utiliza el siguiente bloque secuencial despus de TRANSFER.

Sintaxis: Transfer A, B, C, D

A: La modalidad de transferencia: El operando debe ser BOTH, ALL, PICK, FN, P,
SBR, SIMA, Fraccin, nombre, SNA o nulo (opcional). El comportamiento de cada
uno se explica en detalle ms adelante.
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 o 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: Nmero del incremento del bloque cuando est en la modalidad de ALL. Default
= 1. El operando debe ser nulo, nombre o SNA (opcional).

Modalidad Incondicional: El bloque TRANSFER entra en la modalidad
incondicional cuando se omite el operando A. La transaccin activa ser dirigida
siempre hacia la ubicacin indicada por el operando B.

Ejemplo: TRANSFER; REG

28
La transaccin que entra a este bloque se dirigir hacia el bloque con la etiqueta
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 se dirigir hacia la ubicacin
indicada por el operando B con el complemento (1 - A) de la probabilidad dada en
el operando A.

Ejemplo 1: TRANSFER .40, OPC1, OPC2
El 40 % de las transacciones que entren a estos bloques se dirigirn hacia el
bloque con la etiqueta OPC2, el resto (60 %) de las transacciones se dirigirn al
bloque con la etiqueta OPC1.

Ejemplo 2: TRANSFER .40, OPC2.

El 40 % de las transacciones que entren a este bloque se dirigirn hacia el bloque
con la etiqueta OPC2, el resto (60 %) de las transacciones se dirigirn hacia el
siguiente bloque secuencial.

Ejemplo 3: Si tuvisemos que modelar un comportamiento ms complejo, lo que
podemos hacer es anidar varios transfers. Por ejemplo: el 60% son expedientes
de tipo A, el 30% de tipo B y el 10% de tipo C.

TRANSFER .40, TIPOA,SEGUIR.
SEGUIR TRANSFER .75,TIPOC,TIPOB

El 40 % de las transacciones que entren a este bloque se dirigirn hacia el bloque
con la etiqueta SEGUIR (Representan los expedientes de tipo B y C), el resto (60
%) de las transacciones se dirigirn hacia el bloque TIPOA. Al bloque SEGUIR
arriba el 40% de las transacciones originales, de las cuales un 30% de las
originales (75% de las que arriban efectivamente) son de tipo B y el resto (25% de
las que arriban) son de tipo C.

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. En caso de rechazo, la transaccin intentara entrar al bloque
cuya etiqueta est indicada con el operando C. Si la transaccin no puede entrar
en ninguno de los bloques indicados por las etiquetas B y C, se quedara en el
bloque TRANSFER hasta que pueda entrar en uno de los dos bloques.

Ejemplo: TRANSFER BOTH, SEC1, SEC2.

La transaccin que entra a este bloque primero intentar entrar al bloque con la
etiqueta SEC1, si no puede, intentar entrar al bloque con la etiqueta SEC2, y si

29
tambin es rechazado, se quedar en el bloque TRANSFER hasta que pueda
entrar a uno de los dos bloques con las etiquetas SEC1 o SEC2.

Modalidad All: el bloque TRANSFER entra en la modalidad ALL cuando el
operando A es ALL. En esta modalidad, cuando entra una transaccin activa, se
testea el bloque del operando B, si ste rechaza la transaccin (por estar ocupado
por ejemplo), se siguen testeando en secuencia los siguientes bloques hasta el del
operando C, en un intervalo especificado por el operando D. En caso de no poder
ocupar ninguno, quedar esperando en el transfer hasta que alguno se desocupe.

Ejemplo: TRANSFER ALL,SEC1,SEC4,2

SEC1 SEIZE EMPLEADO1
TRANSFER ,SEGUIR
SEC2 SEIZE EMPLEADO2
TRANSFER ,SEGUIR
SEC3 SEIZE EMPLEADO3
TRANSFER ,SEGUIR
SEC4 SEIZE EMPLEADO4
TRANSFER ,SEGUIR

La transaccin que entra a este bloque primero intentar entrar al bloque con la
etiqueta SEC1, si no puede intentar entrar al bloque con la etiqueta SEC2 y as
sucesivamente, de a 2 bloques hasta llegar a SEC4, si no logra capturar ninguno,
quedar esperando en el transfer.

SELECT

Descripcin: el bloque SELECT nos permite modelar la seleccin entre distintos
bloques y almacenar el nmero de entidad en un parmetro de la transaccin. El
SELECT nos permite adems que esta seleccin sea basada en algn criterio
comparativo o SNA.

Sintaxis: SELECT O A, B, C, D, E, F

O: operador condicional o un operador lgico. Requerido
A: Nombre de parmetro o un nmero para recibir el nmero de la entidad
seleccionada. Requerido.
B: El nmero de entidad inferior. Requerido.
C: El nmero de entidad superior. Requerido.
D: El Valor de referencia para un operador, cuando se usa en el modo condicional.
Opcional
E: SNA. Entidad especificador de atributo para las pruebas de modo condicional.
Opcional.
F: Suplente nmero de bloque. El destino del bloque si no hay ninguna entidad
est seleccionada. Opcional.


30
Ejemplo:

PRIMERO EQU 1
SEGUNDO EQU 2
TERCERO EQU 3
PRIMERO STORAGE 15
SEGUNDO STORAGE 10
TERCERO STORAGE 56

SELECT SNF NUMERO,PRIMERO,TERCERO,,,SIN_LUGAR
Debemos definir nombres de entidad igual a nmero contiguos para que el
SELECT funcione. Esto lo hacemos con el comando EQU. Lo que logra esto es
que GPSS interprete PRIMERO como 1, luego utilizamos esos nombres que
definimos anteriormente como nombre de las entidades que queremos utilizar en
el SELECT, en este caso los STORAGE. Esto permite que el SELECT pueda
saber que rango de entidades tiene que comprobar.

En este ejemplo definimos tres STORAGES distintos, la transaccin que llegue al
bloque SELECT, guardar en su variable NUMERO, el id del primero que no est
lleno (SNF). En caso de que los tres lo estn, ir a la etiqueta SIN_LUGAR. El
resto de los parmetros los dejamos vacos.
TEST

Descripcin: un bloque test comprar valores y controla el destino de la
transaccin que ingres al mismo basado en el resultado de la comparacin.
Puede trabajar tanto en modo de Rechazo, en donde bloquea a la transaccin
hasta que se cumpla la condicin, o (en caso de especificarse el tercer parmetro)
enviar a la transaccin a un Destino Alternativo.

Sintaxis: TEST O A, B, C

O: operador condicional o un operador lgico. Requerido.
A: es el valor de prueba para realizar el test. Requerido.
B: el valor de referencia contra el cual comparar. Requerido
C: destino o nmero del bloque en caso de no cumplirse la condicin. Opcional.

ADVANCE

Descripcin: Su objetivo es simular retrasos en el flujo de transacciones, de
manera que puede visualizarse como el tiempo de proceso, transporte o servicio.
Desde un punto de vista de anlisis de bloques, el ADVANCE permite la entrada a
todas las transacciones que llegan. En este bloque puede existir en un mismo
tiempo una o ms transacciones. El funcionamiento de este bloque se lleva acabo
de la siguiente forma: cuando una transaccin cruza por el ADVANCE en el tiempo

31
t1 se genera a un tiempo de proceso (TP) dado por las condiciones presentadas
en los operandos A, B, y se enva la transaccin a la cadena de eventos futuros en
espera de que el reloj de simulacin avance hasta el tiempo t2=t1 + TP, tiempo en
el cual la transaccin abandona la cadena de eventos futuros y contina su
cambio al siguiente bloque secuencial.

Sintaxis: ADVANCE A, B
A: Es el tiempo medio de retraso de la actividad (servicio). El operando debe de
ser nombre, nmero, entero positivo o SNA (requerido).
B: Desviacin con respecto a la media para la distribucin uniforme. El operando
debe de ser nombre, nmero, entero positivo o SNA (opcional).

SEIZE

Descripcin: el objetivo del bloque SEIZE es simular la captura de un servidor,
proceso o instalacin. Este bloque acta como controlador de flujo de
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.
Sintaxis: SEIZE A

A: Identificacin del servidor. Puede ser nombre, nmero, o SNA (requerido).

RELEASE

Descripcin: 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 atributo numrico estndar F de 1
(ocupado) a 0 (ocioso).

Sintaxis: RELEASE A

A: Identificacin del servidor. Puede ser nombre, nmero, SNA (requerido).

QUEUE

Descripcin: El bloque QUEUE permite obtener estadsticas de colas 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

32
puede visualizar como punto de inicio para la toma de datos estadsticos de las
colas que se pueden formar.

Sintaxis: QUEUE A, B

A: Nombre o nmero de la cola .El operando debe ser nombre, entero positivo o
SNA (requerido).
B: Nmero de unidades en que se incrementa el contenido de la entidad de cola
Default=1. El operando debe ser nombre, entero positivo o SNA (opcional).

Ejemplo: QUEUE QESPERA,10
La transaccin entra en la cola QESPERA, incrementando en 10 la cantidad de
elementos que esperan en la misma.

DEPART

Descripcin: Es la contraparte del bloque QUEUE. Se utiliza para simular la
salida de la cola.

Sintaxis: DEPART A, B

A: Nombre o nmero de la cola .El operando debe ser nombre, entero positivo o
SNA (requerido).
B: Nmero de unidades en que se decrementa el contenido de la entidad de cola
Default=1. El operando debe ser nombre, entero positivo o SNA (opcional).

Ejemplo: DEPART QESPERA,10
La transaccin deja la cola QESPERA, decrementando en 10 la cantidad de
elementos que esperan en la misma.

ENTER

Descripcin: La funcin del bloque ENTER es simular la seleccin o captura de
uno o ms servidores en paralelo (definidos por un STORAGE). La transaccin
que entre al bloque ENTER capturar cualquier servicio 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 en la
cadena de espera.

Sintaxis: ENTER A, B

A: Nombre o nmero de almacenaje (STORAGE) por utilizar, debe ser nombre,
entero positivo, SNA (requerido).

33
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 (requerido).

Ejemplo: ENTER STO_1,5

En este caso la transaccin toma el recurso STO_1, ocupando 5 lugares del
mismo. (STO1 debe ser definido como un STORAGE).

LEAVE

Descripcin: es la contraparte del 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.

Sintaxis: LEAVE A, B
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).

LINK

Descripcin: un bloque link controla la colocacin de la transaccin activa en la
cadena de usuario de una Entidad de tipo UserChain. Estas entidades son
entidades de tipo especial que permiten modelar los comportamientos complejos
de cola.

Sintaxis: LINK A, B, C
A: Nmero de cadena de usuario Es la unidad a la cual se le asignar las
transacciones. Requerido.
B: Orden o disciplina de encadenamiento. Requerido. Puede ser LIFO, FIFO, o un
valor particular que le asigne el usuario.
C: Nombre del bloque al que se deriva las transacciones en caso de que la cadena
se encuentre en estado de RESET.

Ejemplo 1: LINK Espera,FIFO

En este caso iremos encolando las transacciones en la cola Espera, con orden
First In Firs Out.




34
UNLINK
Descripcin: un bloque unlink remueve las transacciones de la cadena de usuario
de la Entidad UserChain que se especifica.

Sintaxis: O UNLINK A, B, C, D, E, F

O: Operador relacional. Opcional. Puede ser Null, E, G, GE, L, LE, NE. Si no se lo
coloca se utiliza E.
A: Nombre de la entidad UserChain. Requerido.
B: Bloque destino donde irn las transacciones a ser removidas. Requerido.
C: Lmite de remocin. Cantidad mxima de transacciones a ser removidas.
Opcional.
D: Valor a ser testeado con el operando O. Opcional.
E: Valor de referencia. Valor contra el cual se comprar el valor del atributo D.
Opcional.
F: Nombre del bloque donde adonde se enviarn los valores que no cumplen la
condicin. Opcional.

Ejemplo 1: UNLINK Espera, Seguir, 1
En este caso iremos sacando las transacciones que se encuentran encoladas en
la UserChain Espera, una a la vez, envindolas al bloque Seguir.

PREEMPT

Descripcin: una transaccin que utiliza PREEMPT quita el control a otra de una
facilidad. La transaccin removida puede seguir siendo procesada cuando la que
hizo el PREEMPT retorna la facilidad o puede volver a ser puesta en cola
dependiendo de los parmetros que utilicemos. Si utilizamos el modo Prioridad, la
transaccin slo har el PREEMPT cuando posea una mayor prioridad que la que
ocupa la facilidad en ese momento.

Sintaxis: PREEMPT A, B, C, D, E

A: Nombre o nmero de la facilidad. El operando debe ser nombre, entero positivo
o SNA. Requerido.
B: Modo de prioridad. PR, para Modo de prioridad, o en modo de interrupcin, si
se omite. Opcional.
C: el nombre o nmero de bloque. Nuevo destino para las transacciones actuales
propietarios de las instalaciones. Opcional.
D: parmetro en donde almacenar el tiempo restante que le quedaba a la
transaccin en la facilidad. Opcional.
E: modo de remocin (RE). Remueve a la transaccin que posea la facilidad. Si
utilizamos este modo, debemos indicar el operando C. Opcional.

Ejemplo 1: PREEMPT Empleado1


35
En este caso la transaccin tomar el control de Empleado1. Si haba en ese
momento una transaccin que lo posea (esperando en un ADVANCE por
ejemplo), sta esperar y cuando devuelva la segunda transaccin la facilidad,
continuar procesndose el tiempo que le quedaba.

Ejemplo 2: PREEMPT Empleado1,,Empleado2,TIEMPO_REST,RE

En este caso la transaccin tomar el control de Empleado1. Si haba en ese
momento una transaccin que lo posea (esperando en un ADVANCE por
ejemplo), el tiempo que le quedaba por procesarse en Empleado1 se guardar en
el parmetro TIEMPO_REST de la transaccin y se la enviar al bloque
Empleado2, por estar activado el modo Remove (RE).

ADOPT

Descripcin: el bloque adopt permite cambiar el Assembly Set de la transaccin
activa.

Sintaxis: ADOPT A
A: Assembly Set a adoptar por la transaccin. Requerido.

SPLIT

Descripcin: crea nuevas transacciones con el mismo Assembly Set que la
transaccin activa. Las nuevas transacciones comparten los mismos atributos de
las que la gener. A su vez podemos mandar las nuevas transacciones a otro
lugar, o que stas continen el mismo camino de la primera.

Sintaxis: SPLIT A, B, C

A: Cantidad de transacciones a ser creadas. Requerido.
B: Numero de bloque al que irn las nuevas transacciones. Opcional.
C: Nombre del parmetro de la nueva transaccin en la que deseamos guardar un
nmero de serie. Opcional.

Ejemplo: SPLIT 3,SEGUIR,NUMERO_SERIE

En este caso se crearn 3 transacciones ms que irn a la etiqueta SEGUIR, y su
nmero de serie se guardar en NUMERO_SERIE. La transaccin original ir a la
siguiente lnea.
ASSEMBLE

Descripcin: el comando ASSEMBLE espera y destruye una cantidad de
transacciones asociadas por un mismo Assembly Set, se puede ver tambin como
que ensambla varias transacciones en una sola.

36

Sintaxis: ASSEMBLE A

A: Cantidad de transacciones a ser ensambladas. Requerido.

Ejemplo: ASSEMBLE 5

Cuando arriben 5 transacciones con el mismo assembly set al bloque, se
destruirn y continuar solo la primera que llego al mismo.

GATHER

Descripcin: el comando GATHER funciona como una barrera, esperando que
lleguen al mismo la cantidad de transacciones (del mismo assembly set)
especificada en su nico parmetro.

Sintaxis: GATHER A

A: Cantidad de transacciones por las que esperar. Requerido.

Ejemplo: GATHER 5

Cuando arriben 5 transacciones con el mismo assembly set al bloque, continuarn
las 5 al siguiente bloque.

PRIORITY

Descripcin: el comando PRIORITY permite establecer la prioridad que tiene la
transaccin que pasa por el bloque.

Sintaxis: PRIORITY A

A: el nuevo valor de prioridad. Requerido.

ALTER

Descripcin: el bloque alter permite cambiar la prioridad o un parmetro de
miembros de un Grupo de Transacciones.

Sintaxis: ALTER O A, B, C, D, E, F, G
O: Operador Relacional. La relacin del parmetro E con el F para que la
alteracin ocurra. Opcional.

A: Grupo de transacciones. El grupo cuyos miembros sern testeados para una
alteracin. Requerido.

37
B: Limite. El mximo nmero de Transacciones a ser alteradas. Por defecto son
todas. Opcional.

C: Atributo a alterar. El parmetro de la transaccin miembro a ser alterado, o PR
para alterar la prioridad del miembro del grupo. Requerido

D: Valor a Reemplazar. El valor que reemplazar al actual del parmetro C de la
transaccin. Requerido

E: Valor de test. Valor a testear de la transaccin miembro del grupo, usando el
operador O. Opcional

F: Valor de Referencia. Valor contra el cual el operando E es comparado. Opcional

G: Bloque alterno. El bloque de destino alterno para la transaccin que ingresa.
Opcional.

COMANDOS DE DEBUGGER
Una de las caractersticas ms tiles de GPSS/H es su analizador o "debugger"
interactivo. Trabaja en ambiente de ventanas y proporciona al modelador
comandos poderosos para controlar por completo la ejecucin de un modelo y
desplegar el estado de las transacciones y los valores de los atributos durante una
corrida de simulacin.
Se puede solicitar la entrada al debugger desde la ventana de MS DOS con:
GPSSH <nombre de archivo> TV
Donde <nombre del archivo> corresponde al nombre del archivo fuente de
GPSS/H.
Al especificar "TV" GPSS/H comenzar la compilacin del modelo. Despus de la
compilacin, cuando inicia la simulacin, aparecer la pantalla del debugger. Esta
pantalla se divide en tres ventanas: la ventana fuente, la ventana de estado y la
ventana de dilogo. Con las cuatro flechas y las diez teclas de funciones se
pueden manipular las ventanas y moverse por las lneas. Los dos puntos (:) que
aparecen en la ltima lnea indican que GPSS/H est esperando un comando de
debugger.
A continuacin se resumen los comandos ms comunes de debugger.


38
BREAK
Establece puntos de interrupcin de la ejecucin de un modelo cuando una
transaccin intenta entrar a uno de los bloques especificados. Cuando se
encuentra un BREAK se resalta el bloque en el que ocurri en la ventana fuente y
aparece un mensaje en la ventana de dilogo que identifica la transaccin y el
bloque involucrados. La ventana de estado tambin muestra informacin de esta
transaccin.
EJEMPLOS
BREAK LINE Establece un punto de pausa en el
bloque con etiqueta LINE.
BREAK 5 Establece un punto de pausa en el
bloque con nmero 5.
BREAK LINE 5 Se pueden establecer varios puntos
de pausa con el mismo comando
BREAK. Aqu se suspende en el
bloque con etiqueta LINE y en el
bloque con nmero 5.



UNBREAK
Elimina los puntos de interrupcin establecidos por BREAK.
Tiene el mismo formato que BREAK.
EJEMPLOS
UNBREAK LINE Elimina BREAK del bloque con
etiqueta LINE.

UNBREAK

5 Elimina BREAK del bloque con
nmero 5.
UNBREAK

LINE 5 Es posible eliminar BREAK de
varios bloques con un solo
comando.




39
TRAP y UNTRAP
Este comando especifica cuatro tipos de condiciones especiales con las cuales
debe suspenderse temporalmente la ejecucin del modelo. Una interrupcin
puede ser global o bien local. La condicin establecida por TRAP es global y
permanece activa hasta que se elimina con UNTRAP.
Las cuatro condiciones de TRAP son CLOCK, XACT, NEXT y SYSTEM. Slo se
darn detalles de las primeras dos. Los valores posibles para CLOCK estn
dados por el valor del tiempo absoluto del reloj. Para XACT se especifica la
transaccin que se desea interrumpir. Despus de la pausa el debugger queda en
espera de un comando.
EJEMPLOS
TRAP CLOCK=50 Establece que GPSS/H
debe interrumpir la
ejecucin del modelo
cuando el reloj llegue o
exceda por primera vez el
tiempo 50. Slo una
condicin de TRAP
puede tener efecto a la
vez.

TRAP XACT=5 Coloca una bandera en la
transaccin nmero 5.
Cada vez que se activa
esta transaccin, se
suspende la ejecucin del
modelo. Puede haber
cualesquier condiciones
XACT simultneas.
UNTRAP CLOCK Elimina TRAP para el
tiempo del reloj absoluto.

UNTRAP XACT=5 Elimina TRAP para la
transaccin nmero 5.

NEXT y SYSTEM
Cuando NEXT est activo, siempre que la transaccin inactiva intenta iniciar un
movimiento, GPSS/H suspende la simulacin y despliega un mensaje con
informacin sobre esta transaccin.

40
Cuando SYSTEM est activo, si la transaccin que se est moviendo en el
diagrama de bloques se detiene (espera), GPSS/H suspende la simulacin y
despliega la informacin del estado de esta transaccin y espera un comando.
Las suspensiones con NEXT y SYSTEM se eliminan con el comando UNTRAP.

RUN, CONTINUE y STEP
Estos tres comandos se usan para iniciar o reanudar la ejecucin de un modelo.
RUN inicia (o reanuda) la ejecucin. El modelo corre hasta que se encuentra un
BREAK o un TRAP; estos ltimos permanecen activos hasta que se eliminan con
los comandos UNBREAK o UNTRAP.
EJEMPLOS




RUN

Es la forma ms comn.
Inicia o reanuda la
ejecucin del modelo.
La ejecucin contina
hasta encontrar un
BREAK o TRAP global o
hasta que la simulacin
termina.



RUN



LINE
GPSS/H inicia la
ejecucin del modelo y al
mismo tiempo se
establece un punto de
pausa en el bloque con
etiqueta LINE.


RUN



5
GPSS/H inicia la
ejecucin del modelo y se
establece un punto de
interrupcin en el bloque
nmero 5.




RUN




CLOCK=50
Iniciada la ejecucin
existe una condicin de
pausa cuando el reloj
absoluto llega o excede
por primera vez el tiempo
50.


41


RUN


XACT=5
Iniciada la ejecucin, se
coloca una bandera en la
transaccin 5 como
entidad de interrupcin.

Nota: el comando RUN tambin puede establecer interrupciones globales con
NEXT y SYSTEM.


CONTINUE
Es un comando similar a RUN en cuanto a que reanuda la ejecucin de un
modelo. Tambin pueden establecerse condiciones de interrupcin, pero sern
locales, lo cual significa que las interrupciones tienen efecto durante la ejecucin
del comando CONTINUE.
EJEMPLOS




CONTINUE
Inicia o reanuda la
ejecucin del modelo. No
establece pausas. La
ejecucin contina hasta
encontrar interrupciones
globales o hasta que la
simulacin termina.




CONTINUE



LINE
Inicia o reanuda la
ejecucin del modelo al
mismo tiempo que
establece un punto de
pausa local en el bloque
LINE.




CONTINUE



5
Inicia o reanuda la
ejecucin del modelo al
mismo tiempo que
establece un punto de
pausa local en el bloque
nmero 5.




42
STEP
El comando STEP inicia o reanuda la ejecucin del modelo. Sin embargo ejecuta
slo un nmero especificado de bloques.
EJEMPLOS
STEP 5 Indica a GPSS/H que la
ejecucin del modelo
debe interrumpirse
despus de ejecutar 5
bloques.

STEP Indica a GPSS/H que la
ejecucin del modelo
debe interrumpirse
despus de ejecutar 5
bloques.


DISPLAY
Con este comando se puede mostrar una variedad de informacin en la pantalla.
La informacin incluye estadsticas de los miembros de una entidad (instalacin,
colas, etc.), del estado del modelo (tiempo simulado), del estado del debugger
(puntos de interrupcin activos) y de los atributos de las transacciones.

El formato de DISPLAY para mostrar la informacin de las clases de entidades y
sus miembros es
DISPLAY eclase(miembro, ... )
Donde eclase es el cdigo de una de las clases de entidades, segn se muestra
en el cuadro a la derecha. Se puede especificar ms de un miembro. La lista de
miembros debe ir entre parntesis separados por comas. Si no se especifica una
lista se despliegan todos los miembros de la clase de entidades. (La lista del
cuadro no est completa.) Excepto por la clase de AMPERVARIABLES, la
informacin mostrada para cada clase es similar a la dada en la salida de
resultados estndar de esa clase.


43
Clases de entidades Cdigo
BLOQUES
INSTALACIONES
COLAS
ALMACENAMIENTOS
AMPERVARIABLES
TABLAS
BLO
FAC
QUE
STO
AMP
TAB

EJEMPLOS
DISPLAY BLO Se piden los contadores
completos de los bloques;
es decir, el nmero actual
y el acumulado de
transacciones en cada
bloque.

DISPLAY BLO (1, LINE) Pide los contadores de
los bloques 1 y LINE.

DISPLAY FAC (2, SERVER) Solicita informacin sobre
las instalaciones 2 y
SERVER. Si no se han
usado por una
transaccin antes del
comando, no se
despliegan las
estadsticas.

DISPLAY FAC Solicita la informacin de
todas las instalaciones.
DISPLAY OUTPUT Se desplegar la
informacin de la salida
estndar de la
simulacin. Este informe
es extenso, no debe
usarse a menos que sea
necesario.

DISPLAY BREAKPOINTS CLOCKS Solicita la informacin de
todas las condiciones de
interrupcin que estn
activas, y los valores de
los relojes absolutos y
relativos.


44
DISPLAY XACT=5 Solicita la informacin
concerniente a la
transaccin nmero 5.

DISPLAY XACT=2 XACT=10 Pide la informacin sobre
las transacciones nmero
2 y 10.


El comando AT establece un punto de interrupcin global en un bloque y establece
un conjunto de comandos de debugger que ejecutar GPSS/H cuando se
interrumpa la corrida en un punto de pausa. Cuando una transaccin intente entrar
en un bloque con una interrupcin AT, GPSS/H procesar de manera automtica.
Los comando asociados del debugger. Los comandos establecidos con AT se
eliminan con el comando UNBREAK.

El formato de un comando AT es

AT <nombre de bloque ...>
lista de comandos
END

EJEMPLO
Como ejemplo suponga que se desea desplegar la informacin de la instalacin
SERVER siempre que una transaccin entra al bloque nmero 2. Se escribe
AT 2
Se oprime <RETURN>. El cursor cambia a @, lo que significa que GPSS/H est
listo para recibir la lista de uno o ms comandos. Escriba
DISPLAY FAC(SERVER)
GPSS/H queda en espera de otro comando del debugger. Oprima <RETURN>
despus de la @ para terminar la lista de comandos.

45
GENERATE
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.
A: Tiempo medio entre llegadas. El operando tiene que ser nombre, nmero, SNA
o nulo. No se pueden utilizar parmetros. Default = 0 (opcional).
B: Desviacin con respecto a la media (en caso de la distribucin uniforme). El
operando tiene que ser nombre, nmero, SNA o nulo. No se pueden utilizar
parmetros. Default = 0 (opcional).
C: Tiempo en que se generar la primera transaccin. El operando tiene que ser
Nombre, nmero, SNA o nulo. No se pueden utilizar parmetros.
D: Lmite total de transacciones
E: Nivel de prioridad. El operando tiene que ser nombre, nmero, SNA o nulo. No
se pueden utilizar parmetros. Default = 0 (opcional).
En GPSS, las distribuciones de tiempos entre llegadas estn divididas en dos
categoras:


En esta seccin slo se considera la generacin de acuerdo con la distribucin
uniforme.
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.
Por ejemplo, GENERATE 6, 4 significa que el tiempo entre llegadas se distribuye
uniformemente en el rango de 6 4; GENERATE 8 significa que el tiempo entre
llegadas se distribuye uniformemente en el rango de 8 0. Es decir, las llegadas
ocurrirn exactamente cada 8 unidades de tiempo. En este caso, los tiempos entre
llegadas son determinsticos, no aleatorios.
El operando C se utiliza cuando slo se requiere fijar el tiempo de generacin de la
primera transaccin. Las transacciones subsecuentes se generarn de acuerdo

46
con los operandos A y B. 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.
El operando D pone un lmite al total de las transacciones que pueden entrar al
modelo a travs del bloque GENERATE. Al generar el nmero de transacciones
indicadas en el operando D, el bloque GENERATE se vuelve inactivo.
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 las 100 transacciones juntas (sin
ningn tiempo entre ellas) al inicio de la simulacin (tiempo 0).
El operando E del bloque GENERATE permite dar prioridad a las transacciones
generadas. Entre mayor sea el valor del operando E, mayor es la prioridad.
GENERATE 20,5,,,10 significara que se generaran transacciones cada 20 5,
uniformemente distribuidas y todas con una prioridad de 10.
Es importante considerar los siguientes puntos:

usar el operando D en ausencia de los operandos A y B en cuyo caso las
transacciones sern generadas en el tiempo 0.
SNA
No tiene SNA relacionados con l.
SEIZE
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 al estado del atributo F a 1 (ocupado). As una
transaccin ser enviada a la cadena de eventos actuales en espera de que el
valor de F cambie de 1 a 0.
A: Identificador del servidor. Puede ser nombre, nmero, o SNA (requerido)
Una instalacin puede ser capturada por una sola transaccin en un momento
dado. Las transacciones restantes esperaran de acuerdo con la disciplina de

47
primeras entradas primeras salidas para capturar la instalacin que con otras
instrucciones o bloques cambie la disciplina de captura. Por ejemplo, SEIZE CAJA
significa que la transaccin entrante capturar la instalacin con el nombre de
CAJA.
SNA
F: Estatus de la instalacin (1=ocupado, 0=ocioso).
FC: Nmero de veces que la instalacin fue capturada.
FL: Regresa el valor de 1 si la instalacin ha sido prevaciada o en estado
disponible, de otra manera regresa a 0.
FT: Tiempo promedio de utilizacin de la instalacin.
FR: Utilizacin fraccional de la instalacin.
RELEASE
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).
A: Identificacin del servidor. Puede ser nombre, nmero, o SNA (requerido).
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 de 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 promedio de servicio por transaccin y
el nmero total de entradas al bloque SEIZE.
SNA
Son los mismos que para el bloque SEIZE.
QUEUE
El bloque QUEUE permite obtener estadsticas de colas 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

48
como punto de inicio para la toma de datos estadsticos de las colas que se
pueden formar.
A: Identificador del servidor. Puede ser nombre, nmero, o SNA (requerido).
B: Nmero de unidades en que se incrementa el contenido de la entidad de cola.
Default = 1. El operando debe ser nombre, entero positivo o SNA (opcional).
En algunos problemas, una transaccin puede representar una caja o pallet, en
cuyo caso se puede usar el operando B para representar nmero de partes que
realmente existe en la cola. Por ejemplo, QUEUE COLA, 10 indica que cada
transaccin (caja) contiene 10 piezas esperando en COLA.
SNA
Q: Tamao de la cola (contenido actual).
QA: Contenido promedio de la cola.
QC: Nmero total de entradas a la cola.
QT: Tiempo promedio por transaccin en la cola (a base de QC).
QM: Contenido mximo de la cola.
QX: Tiempo promedio por transaccin en la cola (a base de QZ).
QZ: Total de entradas con cero tiempo de espera en la cola.
DEPART
El bloque DEPART 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.
A: Nombre o nmero de cola. El operando debe ser nombre, entero positivo SNA
(requerido).
B: Nmero de unidades en que se decrementa el contenido de la entidad de cola.
Default = 1 (opcional). El operando debe ser nombre, entero positivo o SNA.
Al utilizar los bloques QUEUE y DEPART en el reporte aparece una serie de datos
estadsticos en el reporte que contienen la siguiente informacin:

49

de la cola (nmero de transacciones esperando.
en fila).


SNA
Son los mismos que para el bloque QUEUE.
ADVANCE
El objetivo es simular retrasos en el flujo de las transacciones, de manera que
puede visualizarse como el tiempo de proceso, transporte o servicio. Desde un
punto de vista de anlisis de bloques, el ADVANCE permite la entrada a toda
transaccin que llegue. En este bloque pueden existir en un mismo tiempo una o
ms transacciones.
El funcionamiento de este bloque se lleva a cabo de la siguiente forma: cuando
una transaccin cruza por el ADVANCE en el tiempo t1, se genera en un tiempo
de proceso (TP) dado por las condiciones presentadas en los operandos A,B, y se
enva la transaccin a la cadena de eventos futuros en espera de que el reloj de
simulacin avance hasta el tiempo t2 = t1 + TP, tiempo en el cual la transaccin
abandona la cadena de eventos futuros y continua su camino al siguiente bloque
secuencial.
A: Es el tiempo medio de retardo de la actividad (servicio). El operando debe de
ser nombre, entero positivo o SNA (requerido).
B: Desviacin con respecto a la media para la distribucin uniforme. El operando
debe ser nombre, entero positivo o SNA (opcional).
Para la distribucin uniforme, el operando A del bloque ADVANCE representa el
tiempo medio de servicio. El operando B representa la mitad del ancho del tiempo
de servicio. En todos los casos, el valor del operando B deber ser menor que el
valor del operando A, de lo contrario ocurrira un error al intentar generar una
transaccin en un tiempo negativo.
TERMINATE

50
Solo remueve las transacciones activas que pasen por l, pero no controla el
tiempo de corrida de simulacin.
TERMINATE 1
START 100
En el momento en que una transaccin cruza por el TERMINATE, es destruida y
sale del sistema, pero decrementa el valor START en una unidad; de esta manera,
cuando 100 transacciones crucen por el TERMINATE, el valor del START llegar
a 0 y el proceso de simulacin se detendr.
TERMINATE 2
START 100
Cuando una transaccin cruza por el TERMINATE, es destruida y sale del
sistema, pero decrementa el valor START en 2 unidades; de tal manera que
cuando 50 transacciones crucen por el TERMINATE, el valor del START llegar a
0 y el proceso de simulacin se detendr.
SNA
TG1: Contador de terminacin
Tomando en cuenta los bloques vistos hasta el momento, es interesante
manejarlos de una forma integral. Para esto se presentan a continuacin algunos
ejemplos de sistemas que se desean modelar mediante GPSS.

TIPOS DE BLOQUES DE GPSS
Operacin A B C D E F
ADVANCE Media Modificador
ASSIGN Param Nm. () Fuente
DEPART Cola Nm. (Unidades)
ENTER Almacenaje Nm. (Unidades)
GATE Artculo Nm. (Sigue bloque B)
GENERATE Media Modificador (Desplazamiento)

51
(Cuenta) (Prioridad) (Params)
LEAVE Almacenaje Nm. (Unidades)
LINK Cadena Nm. Orden (Siguiente bloque B)
LOGIC S Switch
MARK (Param. Nf.)
PRIORITY Prioridad
QUEUE Cola Nm. (Unidades)
RELEASE Facilidad Nm.
SAVEVALUE Reservar valor Nm. () SNA
SEIZE Nm. Facilidad
TABULATE Nm. Tabla (Unidades)
TERMINATE (Unidades)
TEST Arg. 1 Arg. 2 (Siguiente bloque B)
TRANSFER Factor selec. Siguiente bloque A Siguiente bloque B
UNLINK Nm. cadena Siguiente bloque A Cuenta
(Nm. Param.) (Arg.) (Siguiente bloque B
SMBOLOS DE LOS DIAGRAMAS DE BLOQUES DEL GPSS





52
DEFINICIN DE VARIABLES Y ENTIDADES

STORAGE

Descripcin: la instruccin STORAGE se utiliza para definir la capacidad mxima
de almacenaje de nmero de servidores paralelos utilizados en los bloques
ENTER y LEAVE.

Sintaxis: Nombre STORAGE A

A: Capacidad de almacenamiento

FUNCTION

Descripcin: la distribucin FUNCTION sirve para definir una probabilidad en
base de una serie (en pares) de datos que provienen de las observaciones.

Sintaxis: Nombre FUNCTION A, B
X1, Y1/X2, Y2/................../Xn,Yn

Nombre: Es el nombre de referencia de la funcin.
A: Argumento de la funcin. Debe ser nombre, SNA o entero positivo (requerido).
B: Tipo de funcin (C, D, L, M) seguido por la cantidad de pares que aparecer en
forma X1, Y1 (requerido).
Xi, Yi: Son pares de datos para crear la funcin de la distribucin. Xi: es el valor de
referencia y Yi: es el valor que se regresa evaluar la funcin.

Funcin tipo C: la letra C en la funcin significa CONTINUA: En este tipo de
funciones, dado que un valor de X, despus de una interpolacin lineal, la funcin
trunca el resultado y regresa un valor entero para Y: Cuando el operando A de la
instruccin FUNCTION es RN (es un argumento de SNA que significa nmero
aleatorio), la funcin se utilizar para definir una distribucin de probabilidad
continua. En este caso la funcin tiene que definirse entre 0 y 1 (aunque el nmero
aleatorio llega hasta 0.999999) como una distribucin acumulada. El nico caso
donde el resultado de la evaluacin de la funcin del tipo C no se trunca, es
cuando la funcin est dentro de un FVARIABLE.

Ejemplo: TPROCESO FUNCTION RN1, C6
0,35/.05,40/.17,45/.5,50/.9,55/1,60

En este caso la funcin TPROCESO est definida como una funcin continua, es
decir, que permite a la variable tiempo de desensamble tomar valores intermedios,
por ejemplo, 37 minutos. En esta funcin el primer par ordenado indica que existe
una probabilidad de cero de que el tiempo sea menor a 35 minutos. El segundo
par indica que existe una probabilidad de que el tiempo sea menor a 40 minutos.

53
Cuando la funcin se codifica como continua, el procesador de GPSS realiza una
interpolacin lineal.
Entre pares ordenados consecutivos, de forma que si al ejecutar un modelo con la
funcin TPROCESO se generar el nmero aleatorio 0.025, se llevara a cabo un
proceso de interpolacin entre los dos primeros pares ordenados dando como
resultado un valor de 37.5 minutos de tiempo de proceso. En este punto es
necesario hacer una consideracin importante. Algunas versiones slo trabajan
con nmeros enteros, por lo que la evaluacin anterior puede arrojar un tiempo de
37 minutos, mientras que en otras se mantienen los decimales.

Funcin tipo D: la letra D en la funcin significa DISCRETA. Cada valor de
argumento tendr un valor entero. En este caso de argumento no aleatorio
(operando A de la funcin), los valores de X en la instruccin complementaria
deben ser crecientes (internamente se almacenan como enteros). Cuando se
evala una funcin, el valor de X, se investiga desde el valor ms bajo hasta el
valor ms alto de la instruccin complementaria. Si se encuentra un valor de X
igual o mayor al valor de argumento, se regresa el valor correspondiente Y
(entero). Si no existe el valor de X, se regresa el valor de Y asociado con un valor
ms grande de X.

Ejemplo: TIEMPOPROC FUNCTION RN2,D6
1,35/.3,36/.6,37/.8,38/.9,39/1,40

En el ejemplo observamos la funcin TIEMPOPROC, que representa es el tiempo
de proceso que depende de una variable aleatoria uniforme (0,1). El valor que
toma esta variable es representado por el generador nmero 2 de nmeros
aleatorios (RN2). Por otra parte la funcin de probabilidad contiene 6 pares
ordenados de tipo discreto (D6) y finalmente estn colocadas las 6 parejas
ordenadas en forma creciente. Al utilizar la funcin, si el nmero aleatorio
generado es menor a 0.1, el tiempo de proceso ser de 35 minutos, si el nmero
aleatorio se encuentra entre 0.1 y 0.3, el tiempo de proceso ser de 36 minutos, y
as sucesivamente hasta llegar al ltimo intervalo, que indica que el nmero
aleatorio generado se encuentra entre 0.9 y 1, el tiempo de proceso ser de 40
minutos.

Funcin tipo L: la funcin tipo L es una funcin de VALOR DE LIST. El valor
del argumento se utiliza para determinar la posicin del valor por regresar. La
instruccin complementaria define una lista de enteros que entre que se
selecciona el resultado. Cuando la funcin se evala, el argumento ser evaluado
y usado como nmero ordinal (valor de X) de los miembros de la lista. El valor que
se regresa como Y es la posicin correspondiente al valor de X. Los valores de X
deben empezar con 1 e incrementarse en 1 (sin interrupcin).

Ejemplo: TIPO FUNCTION P$2,L4
1,3/2,5/3,8/4,12

54
En este caso si el parmetro 2 (P2) vale 2, entonces la funcin regresa el valor de
5.

Funcin tipo E: la funcin tipo L es una funcin que requiere dos evaluaciones.
Primero evala el valor del argumento, busca su correspondiente valor Y, y evala
este nuevamente.

Ejemplo: ARRIBOS FUNCTION M1,E2.
200, (UNIFORM(1,2,20))/400,(UNIFORM(1,4,40))
En este caso si el parmetro M1 se encuentra entre 0 y 200, entonces la funcin
regresa el resultado de evaluar UNIFORM(1,2,20), si el valor est entre 200 y 400
evala UNIFORM(1,4,40) y as sucesivamente.

TABLE

Descripcin: La instruccin TABLE inicializa una tabla de distribucin de
frecuencia.

Sintaxis: Nombre TABLE A, B, C, D

Nombre: nombre de referencia. El operando debe tener el mismo nombre utilizado
en el operando A del bloque TABULATE (requerido).
A: Argumento de la tabla. El nombre del SNA cuyo valor va a ser tabulados. Debe
ser SNA (requerido).
B: Lmite superior del primer intervalo de frecuencia. El operando debe ser entero
(requerido).
C: Tamao de intervalo de frecuencia. El operando debe de ser entero (requerido).
D: Nmero de intervalos de frecuencias. No puede exceder a 8191. El operando
debe ser entero (requerido).

Ejemplo: TiempoEnSistema TABLE M1, 1, 5, 20

En la TABLE TiempoEnSistema se almacenar (cada vez que la transaccin pase
por un bloque que tabule la tabla) el valor del SNA M1 de la transaccin. Esta
tabla tendr un primer intervalo de 0 a 1, luego vendrn 20 intervalos con amplitud
5.

TABULATE

Descripcin: el bloque TABULATE permite obtener una estadstica de datos
sobre una entidad en el modelo. Esta estadstica incluye datos como la media,
desviacin estndar y distribucin de frecuencias. El bloque TABULATE debe
colocarse donde se requiere obtener una distribucin de frecuencias de datos
ingresados, en cuyo caso har referencia a una instruccin TABLE para dar mayor
informacin sobre los datos, rangos y sobre la amplitud de la distribucin. Cada

55
vez que una transaccin pase por un bloque de este tipo, se agregar el valor que
guarda la tabla a la misma.

Sintaxis: TABULATE A

A: Identificacin del TABLE. El operando debe ser nombre, nmero o SNA
(requerido).

Ejemplo: TABULATE TIEMPO

Todas las transacciones que pasan por este bloque se utilizan para crear esta
distribucin de frecuencia de la informacin indicada en el TABLE con la etiqueta
TIEMPO.
ASSIGN

Descripcin: El bloque de ASSIGN se utiliza para dar o modificar el valor de un
parmetro de las transacciones. Cuando una transaccin entra al bloque ASSIGN,
el valor del segundo operando se evaluar para modificar el valor del parmetro
indicado por el primer operando. Esta modificacin puede lograrse en forma
directa, es decir, con una asignacin directa o incrementar o decrementar el valor
del parmetro. Si el parmetro no existe, al entrar al bloque ASSIGN se crear el
mismo. En el caso de usar el tercer parmetro, se evala la funcin cuyo nmero
es indicado por el mismo, se lo multiplica por el valor del segundo parmetro y se
lo guarda en el primer parmetro.

Sintaxis: ASSIGN A, B, C

A: Nmero del parmetro de una transaccin activa que recibe la informacin. El
operando debe ser nmero entero, nombre o SNA seguido por nulo + o -
(requerido).
B: El valor que ser asignado al parmetro indicado por el operando A. El
operando debe ser nmero entero, nombre o SNA (requerido).
C: El nmero de la funcin (modificador de la funcin). El operando debe ser nulo,
nmero entero, nombre o SNA (requerido).

Ejemplo 1: ASSIGN 1,20

Produce que el valor de 20 se asigne al parmetro nmero 1 de la transaccin que
est entrando al bloque ASSIGN.

Ejemplo 2: ASSIGN 2,FN$INF

En este caso, la funcin con el nombre INF se evaluar y la informacin ser
asignada al parmetro nmero 2 de la transaccin que entra al bloque ASSIGN.


56
Ejemplo 3: ASSIGN 1+,3

En este caso, el valor 3 ser sumado al valor anterior del parmetro nmero 1 de
la transaccin que entra al bloque ASSIGN.

Ejemplo 4: ASSIGN 2-,P$3

En este caso, el valor del parmetro 3 de esta transaccin se restara del valor
actual del parmetro 2 de la transaccin que entra al bloque ASSIGN.

Ejemplo 5: ASSIGN 4+,3,2

En este caso se evala la funcin nmero 2 (previamente definida). Vamos a
suponer un valor de 2.5 de la evaluacin de la funcin 2. Despus 2.5 se
multiplicar por el operando B (en este caso tiene un valor de 3). El resultado de
esta multiplicacin es 7.5, luego se trunca. El valor entero que es 7 se suma al
valor actual del parmetro nmero 4 de la transaccin que entra al bloque
ASSIGN.

SAVEVALUE

Descripcin: el bloque SAVEVALUE se utiliza para dar valor o modificar el
contenido de una entidad de savevalue. A diferencia de un parmetro que es de
una transaccin en particular, el SAVEVALUE se utilizar para almacenar
informacin numrica de cualquier bloque en el que sea accedido, podemos
entenderlo como una variable global de la simulacin. Cuando una transaccin
entra al bloque SAVEVALUE, el valor del segundo operando ser evaluado para
modificar el valor del savevalue indicado por el primer operando. Esta modificacin
puede lograrse en forma directa, es decir, con una asignacin directa, o
incrementar o decrementar el valor del savevalue.

Sintaxis: SAVEVALUE A,B

A: Nombre del savevalue que recibe la informacin. El operando debe ser un
nmero entero o un nombre seguido por nulo, + o - (requerido).
B: El valor que ser asignado al savevalue. El operando debe ser un nmero
entero, nombre o SNA (requerido).

Ejemplo 1: SAVEVALUE INV,30

Significa que el valor de 30 ser asignado al savevalue con el nombre INV.

Ejemplo 2: SAVEVALUE 3,FN$INF

En este caso, la funcin con el nombre INF ser evaluada y la informacin ser
asignada al savevalue de nombre 3.

57
Ejemplo 3: SAVEVALUE NOM+,3

En este caso, el valor de 3 ser agregado al valor anterior del savevalue con el
nombre NOM.

Ejemplo 4: SAVEVALUE 2-,P3
En este caso, el valor del parmetro 3 de esta transaccin se restara del valor
actual del savevalue 2
VARIABLE

Descripcin: la instruccin VARIABLE permite definir operaciones matemticas
que sern utilizadas en los clculos dentro de la simulacin. Los resultados
intermedios se truncarn. El resultado puede llamarse (ser regresado) usando el
SNA de clase V. Cuando una transaccin activa entra a un bloque que contenga
un SNA de clase V (inicial de VARIABLE) y un nombre de referencia. La
instruccin variable ser evaluada y su valor final ser regresado al bloque.

Sintaxis: Nombre VARIABLE X

Nombre: Nombre de referencia de VARIABLE (requerido).
X: Expresin matemtica. Puede ser SNA, nmero, etc. (requerido).

Ejemplo: PORG1 VARIABLE LOG(Q$COL)/3

ADVANCE V$PROG1
La transaccin que entra al bloque ADVANCE hace una llamada a la instruccin
de variable con el nombre de referencia PROG1. En este momento la VARIABLE
se evaluar por su expresin matemtica. Primero ser evaluado el contenido
actual de QUEUE con el nombre COL, despus se sacar el LOG (logaritmo) de
ste y su resultado se truncar; despus el resultado se divide entre 3 y se volver
a truncar. El resultado final se regresar al ADVANCE.

FVARIABLE

Descripcin: la instruccin FVARIABLE permite definir operaciones y frmulas
matemticas que se utilizarn dentro de los clculos de la simulacin. Los
resultados intermedios NO sern truncados, sino slo el resultado final. El
resultado puede llamarse (ser regresado) usando el SNA de clase V. Cuando una
transaccin activa entra a un bloque que contenga una SNA de clase V (inicial de
VARIABLE) y un nombre de referencia, la instruccin FVARIABLE se evaluar y
su valor final regresar al bloque.

Sintaxis: Nombre FVARIABLE X

Nombre: Nombre de referencia de FVARIABLE. Debe ser nombre (requerido).
X : Expresin matemtica. Puede ser SNA. Nmero, etc. (requerido).

58
Ejemplo: PORG1 FVARIABLE LOG(Q$COL)/3

ADVANCE V$PROG1

La transaccin que entra al bloque ADVANCE hace una llamada a la instruccin
FVARIABLE con el nombre de referencia PROG1. En este momento la
FVARIABLE ser evaluada por su expresin matemtica; primero se evaluar su
contenido actual QUEUE con el nombre COL, despus se sacar el LOG
(logaritmo) de ste y despus el resultado se dividir entre 3. El resultado final se
truncar y regresar al ADVANCE.

BVARIABLE

Descripcin: la instruccin BVARIABLE permite definir entidades booleanas o
lgicas que sern utilizadas en los clculos dentro de la simulacin. Devuelve un 1
por Verdadero o un 0 por Falso. El resultado puede llamarse usando la SNA de
clase BV. Aunque la instruccin BVARIABLE pueda utilizarse para evaluar
cualquier expresin matemtica, por lo general se usa para evaluar expresiones


Sintaxis: Nombre BVARIABLE X

Nombre: Nombre de referencia de BVARIABLE.
X: Expresin matemtica. Puede ser SNA, nmero, etctera. (Requerida).

Ejemplo: ABC BVARIABLE (ABS (X2) G 3) AND (BV$XYZ)

Devolver el valor 1 si el savevalue 2 es mayor que 3 y la BVARIABLE llamada
XYZ es verdadera, en caso contrario el valor que retorna es 0.









59
CONCLUSIONES
MORENO MACIEL SERGIO BRYAN
La simulacin se utiliza en una amplia variedad de empresas, para ayudar a la
gerencia a tomar decisiones. Casi todas las empresas tienen problemas de
planificacin y la simulacin puede ayudar a resolverlos. Se utiliza ms
frecuentemente para ayudar a la gerencia en los casos en que el problema no se
presta a soluciones rutinarias.
As pues, la simulacin ayuda a la gerencia a tomar decisiones; ofrece un mtodo
mediante el cual se pueden probar los planes propuestos, antes de llevarlos a
cabo. Por naturaleza, la simulacin ayuda a la gerencia a determinar los
resultados de las preguntas del tipo: <<... qu pasara si...?>> Como subproducto
importante de la simulacin, se adquiere un conocimiento de la estructura del
negocio. A travs del anlisis necesario para preparar el modelo se puede
descubrir un gran nmero de interrelaciones inadvertidas hasta el momento.
Adems, pueden ponerse de manifiesto los puntos dbiles del negocio en la
estructura de la empresa. Por lo tanto, el propio proceso de representacin
mediante modelos resulta frecuentemente beneficioso para la gerencia.
SANTIAGO CRUZ ALEJANDRA
Simulacin de sistemas es una herramienta muy importante ya que te ayuda a
predecir o a nos da un resultado aproximado de lo que es la realidad, teniendo en
cuenta de que sistemas es el conjunto de herramientas, elementos que se
relacionan unos con otros para lograr un fin especfico, que tienen una entrada un
proceso y una salida, y as la simulacin de sistemas destaca un papel muy
importante en la sociedad, y en la tecnologa ya que puede prevenir desastres.
Es muy importante saber estructurar un modelo ya que esta cuenta con 6
caractersticas:

Componentes
Variables
Parmetros
Relaciones funcionales
Restricciones
Funcin objetivo

Ya que un modelo es una representacin de un objeto, sistema o alguna idea,
usualmente su propsito es ayudar a explicar, entender o mejorar algn sistema
ya existente.

60
FUENTES DE INFORMACIN
Simulacion y anlisis de modelos estocsticos.
Mohammad R. Azarang, Eduardo Garcia Dunna
Mc Graw Hill

Simulacion: un enfoque practico
Ral Coss Bu
Ed. Limusa

Simulacion gpss material para el alumno
IBM S.A.E. DEP. TRADUCCIONES U EDIC.

Arte y oficio de la simulacin: un entorno completo y su uso en la mejora de
los servicios.
EUNSA
Ediciones Universidad de Navarra, S.A.

Simulacion en GPSS
Alfonso Garcia Perez
Ed. UNED

Introduccin a la estadstica matemtica, principios y mtodos.
Erwin Kreyszig
Ed. Limusa

PAGINAS ELECTRNICAS
http://simulasistemas.wordpress.com/about/#1.8
http://es.thefreedictionary.com/simulaci%C3%B3n
https://sites.google.com/site/simulacionunsl/
http://www.wordreference.com/definicion/simulaci%C3%B3n

Potrebbero piacerti anche