SIMULADOR SIMNET II
El diseño de SIMNET II se basa en la idea general que los modelos de simulación discreta pueden crearse de una u otra manera como sistemas de líneas de espera. En este contexto, el lenguaje se basa en un acercamiento de red que utiliza tres nodos auto descriptivos: una fuente, en donde llegan las transacciones (clientes), una línea de espera, donde la espera tiene lugar en caso de que esta sea necesaria, y una instalación, en donde se lleva a cabo el servicio. Se agrega un cuarto nodo, llamado auxiliar, para incrementar las capacidades de modelación de lenguaje.
Los nodos en SIMNET II están conectados por ramas. Conforme las transacciones
recorren las ramas, estas ejecutan importantes funciones entre las que se cuentan: 1)
controlar el flujo de transacciones en cualquier parte de la red, 2) recolectar estadísticas pertinentes, 3) efectuar cálculos aritméticos. Esta información se almacena en archivos. SIMNET II utiliza tres tipos de archivos:
1. Calendario de eventos (o E.FILE como se llama en SIMNET II) es el archivo
principal que mueve la simulación.
2. Línea de espera.
3. Instalación.
REPRESENTACIÓN DE LOS ENUCIADOS DE LOS NODOS EN SIMNET II
La información acerca de las características y operación de los nodos de SIMNET II
está codificada en enunciados compatibles. El siguiente es el formato general de un
enunciado de nodo: identificador del nodo: campo 1; campo 2;…; campo m;
El identificador de nodo consiste en un nombre arbitrario (máximo 12 caracteres)
escogido por el usuario seguido por uno de los códigos *S, *Q, *F o *A, que identifica
al nombre ya sea una fuente, línea de espera, instalación o auxiliar. El identificador de
nodo es seguido por uno o más campos separados entre si por punto y como y el último campo seguido de dos puntos. Cada campo posee información necesaria para la
operación del nodo. Si un campo no se usa o se omite, su orden se mantiene incrustando puntos y comas sucesivas. Por ejemplo:
LLEGADA *S; 10;;;; LIM=500:
Identifica un nodo fuente llamado LLEGADA, para el cual el valor 10 mostrado en el
primer campo identifica el tiempo entre llegadas sucesivas. Los campos 2, 3 y 4
suponen valores predefinidos (que serán descritos luego), en tanto que el campo 5
muestra el número máximo de creaciones desde LLEGADA está limitado a 500
transacciones. Los campos predefinidos de un enunciado se pueden omitir, y la posición de los campos no predefinidos se identifica directamente, prefijado a cada uno con el código /n/, donde n es el número del campo. Por ejemplo, el enunciado anterior se puede describir en forma equivalente como
LLEGADA *S; 10; /n/LIM=500: Se mostrará después que /n/ se puede reemplazar en forma más conveniente, con palabras descriptas reservadas o simples letras.
Una línea de SIMNET II puede incluir un comentario, que se reconoce por un signo de admiración (!) como prefijo. Cualquier texto que siga a un ! se trata como un
comentario, y es ignorado por el procesados de de SIMNET II.
NODO FUENTE: Se usa para crear la llegada de transacciones a la red. Las
definiciones de sus campos. La información entre paréntesis describe el tipo de datos que deben usarse en el campo.
SNAME: *S; F1; F2; F3: MULT = F4; LIM = F5; F6; F7;*T:
Identificador Valor del campo programado F1 Tiempo entre llegadas 0 tiempo que transcurre antes de la primera creación 0 Marca el número de atributo con el atributo ninguno F2 F3 F4 /m/ Transacciones simultáneas por creación individual 1 /L/ Límite en el número de creaciones ∞ /s/ Regla de selección de salida ninguna /r/ Recursos devueltos por la fuente ninguna F5 F6m F7 *T Lista de nodos alcanzados desde la fuente por transferencia directa F1 F2 F6 F5 F3 F4
Ejemplos de nodo fuente
a) A los clientes que llegan a una instalación de registro automovilístico, se les asignan individualmente números de serie que identifican el orden en que serán atendidos. El tiempo entre llegadas es exponencial con media de 12 minutos. El primer cliente llega generalmente 10 minutos después de que la instalación empieza a operar. El enunciado fuente que define la situación es el siguiente: CLIENTES *S; EX (12); 10;-1:
El nombre dado a la fuente es CLIENTES. El campo 1 lleva la información EX (12), que
designa el tiempo entre llegadas sucesivas como una muestra aleatoria, tomada de una distribución exponencial con media 12. El símbolo reservado EX es reconocido por
SIMNET II como representante de una distribución exponencial. El segundo campo designa el tiempo de llegada del primer cliente como expresión matemática en los dos
primeros campos. El tercer campo contiene el valor -1, que indica que el atributo 1
tomará automáticamente los números de serie 1, 2, 3, … en las llegadas sucesivas.
Como el tercer campo termina con dos puntos, estos indican que se han indicando todos los campos.
b) Cada 5 minutos llegan televisores para ser empacados. Se desea mantener un registro de los tiempos de llegada de cada transacción en el atributo 2.
Los siguientes enunciados son equivalentes:
TELEVISORES *S; 5; 2;*AMORTIGUADORES:
TELEVISORES *S; 5; 2; goto-AMORTIGUADORES:
El tiempo de creación para el primer televisor es 0 porque se ha omitido el campo F2.
En consecuencia, A (2) para los clientes sucesivos tomará los valores respectivos 0, 5,
10, 15,… como lo exige el campo F3 (=2). Las transacciones que salen de las fuentes
TELEVISORES serán transferidos al nodo línea de espera AMORTIGUADORES,
como se muestra en el campo *T. Observe que *T es un campo flotante en el sentido
que siempre ocupa el último campo del nodo, independientemente del número de
campos omitidos que lo puedan proceder.
c) Un aserradero está contratado para recibir 100 camiones con troncos de árboles.
Cada carga de camión consta de 50 troncos. El aserradero procesa los troncos
uno a la vez. Las llegadas de los camiones a la instalación ocurren casa 45 minutos.
CAMIONES *S;45; /m/MULT=50;LIM=100;*MILL:
El Campo LIM indica que la fuente CAMIONES generará 100 transacciones después
de lo cual entrará en reposo. Conforme cada transacción sale de CAMIONES, será
reemplazada por 50 transacciones idénticas que representan los troncos, como se
muestra en el campo MULT.
NODO LINEA DE ESPERA
Las líneas de espera sirven para alojar transacciones. En sentido obvio, una transacción
no puede ser atendida inmediatamente al llegar, sino que debe esperar en la línea hasta que la instalación quede disponible. En SIMNET II el tamaño de una línea de espera puede ser finito o infinito, el número inicial de clientes en espera al principio de la simulación puede ser 0 o positivo. También las transacciones pueden partir de acuerdo a algunas disciplinas propias de líneas de espera.
Prof. Handy Taha
Investigación de Operaciones
lunes, 19 de abril de 2010
viernes, 9 de abril de 2010
GPSS
INTRODUCCIÓN
El GPSS/PC Y el GPSS/H son las aplicaciones nuevas e iterativas dentro del ambiente IBM del GPSS, General Purpose Simulating System ( en español, Sistema de Simulación de Propósito General ) desarrollo a principios de la década de los 60 por Geoffrey Gordon. El objetivo principal del GPSS es la modulación de sistemas discretos.
Cualquier sistema por simular en este lenguaje se debe describir mediante un diagrama de bloques que representan las actividades, unidos mediante líneas que representan la frecuencia que seguirán un grupo de transacciones, que a su vez se muestran a través de los bloques. Las transacciones dependen de la naturaleza del sistema, por ejemplo, un sistemas de comunicaciones se refiere al movimiento de mensajes; un sistema de transporte se refiere al movimiento de vehiculos motorizados; un sistema de producción al movimiento de piezas.
ELEMENTOS BÁSICOS
Como se menciona en la subseccion anterior la simulación mediante GPSS se realiza con dos elementos básicos conocidos como transacciones y bloques. Una transacción es aquello que fluye a través del sistema de manufactura, y que puede ser: información, piezas, ordenes de producción, fallas, operarios, mecánicos, etc., mientras que un bloque se define como cualquier operación que realiza una transacción dentro de un sistema: procesamiento, entrada a un almacén, salida de un almacén, inicio de proceso, fin de proceso, salida del sistema, ensamble, desensamble, etc..
CONCEPTOS DE PROGRAMACIÓN
Un programa en GPSS puede ser visualizado desde dos puntos de vista; el primero, dentro del contexto de programación por bloques ya descrito; el segundo, dentro del contexto de cadenas de eventos. Por lo general es más sencilla la visualización de la simulación dentro del primero de ellos, y es posible programar modelos validos sin considerar el concepto de cadenas de eventos. Se entiende por cadena de eventos el lugar donde se envían las transacciones que durante su recorrido a través del modelo o bloques encuentra una condición de bloqueo que les impide seguir un cambio libremente. Existen dos tipos de bloqueo: a) Bloqueo de retraso o b) Bloqueo condicional.
a) El bloqueo de retraso consiste en la entrada de una transacción a un bloque que retardara su tiempo de avance; en otras palabras la transacción estará en el tiempo t1 y saldrá del bloque ne el tiempo t2, en el intervalo entre estos dos tiempos, la transacción permanece, a los ojos de un programador, por bloques en el bloque retardante, sin embargo, a los ojos de un programador por eventos, la transacción para formar parte de la cadena de eventos futuros, a la que entra en t1 y sale en t2. En GPSS existen solo dos bloques retardantes: el GENERATE, que coloca la transacción en la cadena de eventos futuros hasta el tiempo que deba de entrar al sistema, y el ADVANCE, que coloca la transacción en la cadena de eventos futuros hasta que haya cumplido con su retraso asignado.
b) El bloque condicional ocurre cuando una transacción intenta entrar a un bloque y encuentra un impedimento físico o una condición no cumplida en el bloque; por ejemplo, una transacción que intenta entrar a un bloque que simula una maquina, y dicha maquina se encuentra trabajando con otra transacción o esta descompuesta. Entonces la transacción queda bloqueada hasta que la maquina se desocupe o quede reparada. Hablamos en programación por bloques, en apariencia la transacción queda suspendida en el espacio esperando su entrada al bloque que se lo impide. Sin embargo, esa transacción es enviada a esperar su destino a la cadena de eventos actuales, hasta que la condición de bloques desaparezca y pueda continuar su camino. En este sentido en GPSS existen muchos bloques que actúan sobre las transacciones; por mencionar algunos, SEIZE, GATE, TEST y ENTER.
EJEMPLO:
Ejemplo 2
• Se desea saber cuántos puntos de cobro (casetas) de peaje se deben abrir en uno de los sentidos de una autopista, para tenerlos disponibles en caso de que la demanda aumente al doble de autos por unidad de tiempo (en promedio), puesto que se desea que el número de autos en espera de servicio no sea superior a 20, por el riesgo de accidente que hay en la zona. Si el tiempo inter arribo de los autos en cada carril es 20 ± 10 sg y el tiempo de cobro por auto es de 10 ± 5 sg, simule ocho horas de operación para tomar una decisión.

TOMADO DE : http://antiguo.itson.mx/dii/atorres/CdeSim_.htm
El GPSS/PC Y el GPSS/H son las aplicaciones nuevas e iterativas dentro del ambiente IBM del GPSS, General Purpose Simulating System ( en español, Sistema de Simulación de Propósito General ) desarrollo a principios de la década de los 60 por Geoffrey Gordon. El objetivo principal del GPSS es la modulación de sistemas discretos.
Cualquier sistema por simular en este lenguaje se debe describir mediante un diagrama de bloques que representan las actividades, unidos mediante líneas que representan la frecuencia que seguirán un grupo de transacciones, que a su vez se muestran a través de los bloques. Las transacciones dependen de la naturaleza del sistema, por ejemplo, un sistemas de comunicaciones se refiere al movimiento de mensajes; un sistema de transporte se refiere al movimiento de vehiculos motorizados; un sistema de producción al movimiento de piezas.
ELEMENTOS BÁSICOS
Como se menciona en la subseccion anterior la simulación mediante GPSS se realiza con dos elementos básicos conocidos como transacciones y bloques. Una transacción es aquello que fluye a través del sistema de manufactura, y que puede ser: información, piezas, ordenes de producción, fallas, operarios, mecánicos, etc., mientras que un bloque se define como cualquier operación que realiza una transacción dentro de un sistema: procesamiento, entrada a un almacén, salida de un almacén, inicio de proceso, fin de proceso, salida del sistema, ensamble, desensamble, etc..
CONCEPTOS DE PROGRAMACIÓN
Un programa en GPSS puede ser visualizado desde dos puntos de vista; el primero, dentro del contexto de programación por bloques ya descrito; el segundo, dentro del contexto de cadenas de eventos. Por lo general es más sencilla la visualización de la simulación dentro del primero de ellos, y es posible programar modelos validos sin considerar el concepto de cadenas de eventos. Se entiende por cadena de eventos el lugar donde se envían las transacciones que durante su recorrido a través del modelo o bloques encuentra una condición de bloqueo que les impide seguir un cambio libremente. Existen dos tipos de bloqueo: a) Bloqueo de retraso o b) Bloqueo condicional.
a) El bloqueo de retraso consiste en la entrada de una transacción a un bloque que retardara su tiempo de avance; en otras palabras la transacción estará en el tiempo t1 y saldrá del bloque ne el tiempo t2, en el intervalo entre estos dos tiempos, la transacción permanece, a los ojos de un programador, por bloques en el bloque retardante, sin embargo, a los ojos de un programador por eventos, la transacción para formar parte de la cadena de eventos futuros, a la que entra en t1 y sale en t2. En GPSS existen solo dos bloques retardantes: el GENERATE, que coloca la transacción en la cadena de eventos futuros hasta el tiempo que deba de entrar al sistema, y el ADVANCE, que coloca la transacción en la cadena de eventos futuros hasta que haya cumplido con su retraso asignado.
b) El bloque condicional ocurre cuando una transacción intenta entrar a un bloque y encuentra un impedimento físico o una condición no cumplida en el bloque; por ejemplo, una transacción que intenta entrar a un bloque que simula una maquina, y dicha maquina se encuentra trabajando con otra transacción o esta descompuesta. Entonces la transacción queda bloqueada hasta que la maquina se desocupe o quede reparada. Hablamos en programación por bloques, en apariencia la transacción queda suspendida en el espacio esperando su entrada al bloque que se lo impide. Sin embargo, esa transacción es enviada a esperar su destino a la cadena de eventos actuales, hasta que la condición de bloques desaparezca y pueda continuar su camino. En este sentido en GPSS existen muchos bloques que actúan sobre las transacciones; por mencionar algunos, SEIZE, GATE, TEST y ENTER.
EJEMPLO:
Ejemplo 2
• Se desea saber cuántos puntos de cobro (casetas) de peaje se deben abrir en uno de los sentidos de una autopista, para tenerlos disponibles en caso de que la demanda aumente al doble de autos por unidad de tiempo (en promedio), puesto que se desea que el número de autos en espera de servicio no sea superior a 20, por el riesgo de accidente que hay en la zona. Si el tiempo inter arribo de los autos en cada carril es 20 ± 10 sg y el tiempo de cobro por auto es de 10 ± 5 sg, simule ocho horas de operación para tomar una decisión.

TOMADO DE : http://antiguo.itson.mx/dii/atorres/CdeSim_.htm
Suscribirse a:
Comentarios (Atom)
