Sim Si mulació ulación n
Unidad Unidad 4. Lengua Lenguaje jess de Sim Si mulac ulación
R epúbli pública ca Boli B oliva varr i ana de Ve Venezue nezuela la Mi niste nister io del Po Pod der Pop Popular ular Par Par a la D efens fensa a Uni ver ver sid si dad Nacio Naci onal E xper xper i mental ntal Polité P olitécni cnica ca D e la Fue F uerr za A r mada Naci Naci onal Bo B oliva li varr i ana N úcleo úcleo F alcón lcón
Autor: Autor: I ng. G r egory gory Cade Cadetto
1
Sim Si mulació ulación n
Unidad Unidad 4. Lengua Lenguaje jess de Sim Si mulac ulación
I ntr ntr oducci ucci ón TM
TM
El GPSS/TM y el GPSS/H son aplicaciones nuevas e interactivas dentro del ambiente IBM del GPSS, General Purpose Simulating System (en español, Simulación de Sistemas de propósito General) desarrollado a principios de la década de los 60 por Geoffrey Gordon. El objetivo principal del GPSS es la modelació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 secuencia que seguirán un grupo de transacciones, que a su vez se mueven a través de los bloques. Las transacciones dependen de la naturaleza del sistema, por ejemplo un sistema de comunicaciones se refiere al movimiento de mensajes; un sistema de transporte se refiere al vehículos motorizados; un sistema de producción, al movimiento de piezas. 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, órdenes de producción, fallas, operarios, mecánicos, etcétera, mientras que un bloque se define como cualquier operación que realiza una transacción dentro de un sistema; algunas operaciones pueden ser las siguientes: procesamiento, entrada a un almacén, salida de un almacén, inicio de proceso, fin de proceso, salida del sistema, ensamble, desensamble, etcétera. En un principio los lenguajes de simulación se elaboran utilizando algún lenguaje de propósito general como FORTRAN, ALGOL, PL/1, etc. Esto requería un gran trabajo de programación; con el paso del tiempo se fueron identificando diferentes situaciones, hasta llegar a estandarizarse ciertas instrucciones de programación en rutinas bien definidas. De este concepto nació el diseño de lenguaje específico para programas de simulación con los cuales se ha ido facilitando al usuario la programación de sus modelos.
2
Sim Si mulació ulación n
Unidad Unidad 4. Lengua Lenguaje jess de Sim Si mulac ulación
4.1. Metodología: Construcción de modelos de simulación. Características gene general rale es de los los lengua lenguaje jess de simula simulació ción. n. E str str uctur uctura a D el Lenguaje: Lenguaje: Para usar el GPSS se requiere tener conocimientos de los comandos más comunes del sistema DOS. Dentro de un programa de GPSS se pueden distinguir cuatro tipos de instrucciones, cada una de las cuales se detalla a continuación:
a) I nstruccio nstrucci ones nes de acceso cceso al al siste si stem ma GPS G PSS. S. Estas instrucciones permiten al usuario el acceso al compilador del GPSS y dependen de cada tipo de versión utilizada; en este punto se recomienda hacer referencia al manual respectivo.
b) I nstruccio nstrucci ones nes de defi nici ni ció ón de var var i ables. les. Son un tipo de instrucciones especiales de carácter opcional; su inclusión depende del sistema a modelar. Estas instrucciones siempre se encuentran relacionadas con las instrucciones de lógica del programa. Dentro de las instrucciones se encuentran las siguientes: definición de las funciones a utilizar, definición de capacidad de los almacenes, definición del número de operarios o maquinas por estación, inicialización de variables, definición de las operaciones matemáticas por utilizar, etcétera. A continuación se muestra una lista de las definiciones más comunes utilizadas en GPSS:
3
Sim Si mulació ulación n
Unidad Unidad 4. Lengua Lenguaje jess de Sim Si mulac ulación
Definición de funciones
FUNCTION
Definición de números de máquinas
STORAGE
Definición de matrices
MATRIX
Asignación numérica a variables
EQU
Inicialización de variables
INITIAL
Definición de histogramas
TABLE
Definición de operaciones
VARIABLE Y FVARIABLE
c) I nstruccio nstrucci ones nes de de Lógi ca de del progr ama. ama. Este tipo de instrucciones son las conocidas como bloques; son las que se ejecutarán durante la simulación; la lógica dependerá de cada sistema qué se desee simular. Teniendo en cuenta la función que realizan, una clasificación de los bloques o instrucciones de lógica es la siguiente: Simulación de inicio de proceso y captura de máquina Simulación de fin de proceso y liberación de máquina
Simulación de entrada de transacciones a un a lmacén
Simulación de salida de transacciones de un a lmacén imulación de entrada transacciones al sistema Simulación de la salida de transacciones del sistema Simulación de diversos tipos de proceso
Simulación del control de flujo de transacciones
Bloques de operaciones aritméticas aritméticas
Lo que de creación de estadísticas estadísticas
4
SEIZE ENTER PREEMPT RELEASE LEAVE RETURN QUEUE ENTER LINK DEPART ENTER UNLINK GENERATE SPLIT TERMINATE ADVANCE ASSEMBLE MATCH GATHER TRANSFER TEST GATE LOGIC SELECT LOOP BUFFER SAVEVALUE MSAVEVALUE ASSIGN INDEX PRIORITY TABULATE
Sim Si mulació ulación n
Unidad Unidad 4. Lengua Lenguaje jess de Sim Si mulac ulación
Las instrucciones de tipo b) y c) se codifican siguiendo un formato general, dentro del cual se pueden distinguir los siguientes elementos:
2 Loc
8 Bloques
19 Operandos
31 Comentarios
Donde: Loc: Representa el nombre de una etiqueta o una dirección. La etiqueta es un campoopcional y su existencia depende de la lógica del programa. Está localizado en la “columna 2”. Su función es similar a las etiquetas en Fortran.
B loque loque:: Es la instrucción específica por ejecutar. Representa la acción que va a llevar a cabo cada una de las transacciones que cruza por allí. Se coloca en la “columna 8”.
Operandos: Cada bloque representa la acción por ejecutar, sin embargo, es necesario incluir un complemento, como puede ser la duración o el lugar de dicha acción. Losoperandos son las características individuales de cada bloque, y dependerán de la lógica del sistema. Se colocan en la “columna 19”.
Comentarios: Es el espacio donde el usuario puede colocar cualquier indicación o identificación de la instrucción.
d) I nstrucci nstr uccione oness de de contr control ol de de la simulación. Estas instrucciones son las que controlan la ejecución, edición y manejo de archivos TM
en GPSS/PC . Las principales son: END, START, SIMULATE. Así, una vez dados los lineamientos generales, elementos y estructura del GPSS, A continuación se explican de manera más detallada los principales bloques del GPSS, incluyendo algunos ejemplos ilustrativos.
5
Sim Si mulació ulación n
Unidad Unidad 4. Lengua Lenguaje jess de Sim Si mulac ulación
L engua ng uajj es Esp E spe ecífi cí fi cos cos D e S i mulaci ulaci ón V entaj ntaj as: 1.
El tiempo de desarrollo de la programación es muy corto porque p orque se trata de lenguajes sintéticos basados en programación por bloques o subrutinas, e incluso algunos de ellos están encaminados al usuario de tal forma que ya no es indispensable programar.
2.
Permite realizar análisis de sensibilidad fácilmente y en un corto tiempo. Tiene alta flexibilidad para hacer cambios.
3.
Integra funciones como generación de números aleatorios, análisis estadístico y gráficas.
4.
Tiene una alta fiabilidad que conduce a una validación de resultados sencilla y rápida.
5.
Permite definir y entender el sistema a simular gracias a que se tiene una visibilidad superior de la estructura general del modelo y se aprecian más fácilmente las interrelaciones.
Desventajas 1. 2.
Es necesario invertir en adquisición del software. Se requiere invertir tiempo y costo en la capacitación de los programadores del nuevo lenguaje.
3.
La computadora de la compañía y el software a adquirir deben ser compatibles.
6
Sim Si mulació ulación n
Unidad Unidad 4. Lengua Lenguaje jess de Sim Si mulac ulación
C aracte aracter í sticas D e L os Le L engua ngu aj es De D e Si mulaci ulaci ón En la actualidad los lenguajes que existen en el mercado tienen una serie de características propias que los distinguen de otros, entre esas características están las siguientes:
1.
El procedimiento utilizado para generar los números aleatorios uniformes y las variables no uniformes conocidas.
2.
La forma de adelantar el reloj de simulación, que puede hacerse con incrementos de tiempo fijo como DYNAMO o con incrementos al próximo evento como GPSS.
3.
Las estadísticas que se obtienen y el formato en que se representan los resultados.
4.
El lenguaje en que está escrito, lo cual influye en la forma de detectar y reportar los errores de lógica.
5.
Su compatibilidad de comunicación con determinado tipo de computadoras, con otro lenguaje o simplemente con el usuario
4.2. Análisis: Análisis algorítmico de las estrategias de simulación de sistemas discretos. Eventos discretos Se pueden considerar dos puntos generales de vista acerca de cómo se identifiquen los eventos discretos. En uno de los puntos de vista, al que se refiere como Orientado a la partícula, O Basado en el material, la atención se centra en las entidades del sistema y se considera a la simulación como la tarea de seguir los cambios que ocurren conforme a las actividades. En ese caso se considera a los tiempos en que ocurren los cambios al sistema como atributos a las entidades. En el otro punto de vista, que se refiere como Orientado al evento O Basado en la máquina, la atención se centra en las actividades y la simulación sigue la historia de
7
Sim Si mulació ulación n
Unidad Unidad 4. Lengua Lenguaje jess de Sim Si mulac ulación
las actividades conforme se aplican a distintas entidades. En ese caso se considera a los tiempos en que ocurren los cambios al sistema como característicos de las actividades. La ejecución de una simulación se mantiene igual sin importar el punto de vista que se tome. Es necesario llevar registros de todas las actividades que desarrollan y de las entidades involucradas, y se deben de cambiar periódicamente para reflejar la secuencia de eventos en el sistema. Para hacerlo es necesario llevar registros de los tiempos de eventos y los cálculos deben computar los Tiempos de eventos Futuros conforme se desarrolla la simulación. Representación del tiempo El paso del tiempo se registra mediante un número al que se conoce como Tiempo del reloj . Generalmente se hace igual a cero al principio de una simulación y posteriormente indica cuántas unidades de tiempo simulado han transcurrido desde el inicio de la simulación. A menos que específicamente se expresa de manera contraria, el término Tiempo de simulación Significa el tiempo de reloj indicado y no el tiempo que ha necesitado un computador para realizar la simulación. Por regla general no hay conexión directa entre el tiempo simulado y el necesario para realizar los cómputos. El factor de control en la determinación del tiempo de cómputo es el número de eventos que ocurren. Dependiendo de la naturaleza del sistema que se simula, y el detalle con que se modela, puede variar considerablemente la relación del tiempo simulado al tiempo real. Si una simulación estudiara el funcionamiento detallado de un sistema de computador en que los eventos reales ocurren en intervalos medidos en fracciones de microsegundos, aunque la simulación se realizara en un computador digital de alta velocidad, fácilmente tomaría varios miles de veces más tiempo que la operación real del sistema. Existen dos métodos básicos de actualizar el tiempo del reloj. Uno consiste en avanzar el reloj a la hora a que debe ocurrir el siguiente evento. El otro método es avanzar el reloj en intervalos pequeños (generalmente uniformes) y determinar en cada intervalo si debe de ocurrir un evento en ese momento. Al primer
8
Sim Si mulació ulación n
Unidad Unidad 4. Lengua Lenguaje jess de Sim Si mulac ulación
método se le conoce como Orientado al evento Y del segundo se dice que está Orientado a intervalos. . Por lo general la simulación de sistemas discretos se realiza utilizando el método orientado a los eventos en tanto que la simulación de sistemas continuos utiliza normalmente el método orientado a los intervalos Sin embargo, se debe de señalar que no se puede expresar una regla definitiva con respecto a la manera en que se representa el tiempo en las simulaciones para sistemas discretos y continuos. Un programa orientado a los intervalos detecta cambios discretos y por tanto puede simular sistemas discretos, en tanto que se puede hacer que un programa orientado a eventos siga cambios continuos introduciendo artificialmente eventos que ocurren a intervalos regulares. Generación de patrones de llegadas Un aspecto importante de la simulación de sistemas discretos es la generación de llegadas exógenas. Es posible que se haya especificado una sucesión exacta de llegadas para la simulación. Por ejemplo la sucesión puede ser el resultado de ciertas observaciones en el sistema. Más aún, cuando no hay interacción en las llegadas exógenas y los eventos endógenos del sistema, es permisible crear una sucesión de llegadas como preparación para la simulación. Sin embargó, por lo general la simulación se desarrolla creando nuevas llegadas conforme se necesitan. n ecesitan. La llegada exógena de una u na entidad se define como evento y la hora de llegada de la siguiente entidad se registra como uno de los tiempos del evento. Cuando el tiempo de reloj llega a este tiempo de evento, se ejecuta el evento de entrar la entidad al sistema y de inmediato se calcula el tiempo de llegada de la siguiente entidad a partir de la distribución de tiempos entre llegadas, con frecuencia se utiliza el término boot-strapping (cordón de bota) para describir este proceso que hace que una entidad cree su sucesora. El método requiere sólo llevar cuenta de la hora de llegada de la siguiente entidad; en consecuencia, es el método preferido de generar llegadas para los programas de simulación de computador. La entidad que llega generalmente requiere que se generen ciertos valores de atributos, en cuyo caso debe ponerse atención a la hora en que se generan los valores. Se pueden generar cuando
9
Sim Si mulació ulación n
Unidad Unidad 4. Lengua Lenguaje jess de Sim Si mulac ulación
se calcula el tiempo de llegada o pueden generarse cuando la entidad llega físicamente. Si no hay interacción entre los atributos y los eventos que ocurren dentro del sistema, la generación puede hacerse en cualquier momento. Sin embargo, si los valores de los atributos dependen del sistema, se debe acordar que al tiempo de generar el tiempo de la llegada, la llegada real todavía es un evento en el futuro. Entonces es necesario posponer la generación genera ción de los valores de atributo hasta h asta que se ejecute el evento de la llegada. Por ejemplo una simulación en que se generan llamadas telefónicas. Es necesario generar la longitud de la llamada y su origen. No hay interacción entre la distribución de la longitud de la llamada y el estado del sistema, de manera qué se puede generar la longitud de la llamada al tiempo que se decide la hora de llegada o cuándo llega la llamada. Sin embargo, una llamada no puede provenir de alguna línea que ya esté ocupada, de manera que la selección del origen debe de posponerse hasta que llegue la llamada. Elegir el origen cuando se decide la hora de llegada implica el riesgo de que otra llamada haya ocupado el origen propuesto antes de que llegue la llamada en cuestión.
4.3. 4.3. D i seño de mode odelos: D i seño de de mode odelos de sim si mulación ulaci ón de de siste si stem mas di di scre scr etos: tos: mode odelos de fenóme fenómenos de espe esperr a (colas), ( colas), i nventar nventar i o, etc.
???
10