universidad de sonora división de ingeniería … fileintroducción al lenguaje de simulación...
TRANSCRIPT
Universidad Nacional de CatamarcaFacultad de Ciencias Exactas y Naturales
SEDE SAN MIGUEL DE TUCUMÁNCICLO PROFESORADO EN COMPUTACIÓN
SEMINARIO DISCIPLINAR ISIMULACIÓN
Introducción al Lenguaje de Simulación GPSS-H
Ing. Georgina Inés Cerúsico
Recordemos¿QUÉ ES LA SIMULACIÓN?
Existen innumerables definiciones de simulación, aquí
se presenta una que nos permite retomar lo que habían visto la clase anterior:
““Simulación es el proceso de diseñar y desarrollar Simulación es el proceso de diseñar y desarrollar un modelo de un sistema o proceso real y conducir un modelo de un sistema o proceso real y conducir
experimentos con el propósito de entender el experimentos con el propósito de entender el comportamiento del sistema o evaluar varias comportamiento del sistema o evaluar varias
estrategias (dentro de límites impuestos por un estrategias (dentro de límites impuestos por un criterio o conjunto de criterios) para la operación criterio o conjunto de criterios) para la operación
del sistema.”del sistema.”
ROBERT. SHANNONROBERT. SHANNON
¿QUÉ ES LA SIMULACIÓN? También se destacó que la Simulación se aplica
especialmente al estudio de sistemas complejos y dinámicos.
VENTAJAS DE LA SIMULACIÓN
No es necesario interrumpir las operaciones de la organización donde se lleva a cabo el estudio.
Proporciona muchos tipos de alternativas posibles de explorar. La simulación proporciona un método más simple de solución cuando los
procedimientos matemáticos son complejos y difíciles. La simulación proporciona un control total sobre el tiempo, debido a que un
fenómeno se puede acelerar. Auxilia el proceso de innovación ya que permite al experimentador
observar y jugar con el sistema. Una vez construido el modelo se puede modificar de una manera rápida
con el fin de analizar diferentes políticas o escenario. Permite análisis de sensibilidad
Generalmente es más barato mejorar el sistema vía simulación que hacerlo en el sistema real.
Los métodos analíticos se desarrollan casi siempre relativamente sencillos donde suele hacerse un gran número de suposiciones simplificaciones, mientras que en los métodos de simulación es posible analizar sistemas de mayor complejidad o con menor detalle.
En algunos casos, la simulación es el único medio para lograr una solución.
DESVENTAJAS DE LA SIMULACIÓN
La simulación es imprecisa, y no se puede medir el grado de su imprecisión.
Los resultados de simulación son numéricos; por tanto, surge el peligro de atribuir a los números un grado mayor de validez y precisión.
Los modelos de simulación en una computadora son costosos y requieren mucho tiempo para desarrollarse y validarse.
Se requiere gran cantidad de corridas computacionales para encontrar soluciones, lo cual representa altos costos.
Es difícil aceptar un modelo de simulación y difícil de vender.
Los modelos de simulación no dan soluciones óptimas. La solución de un modelo de simulación puede dar al
análisis un falso sentido de seguridad.
PELIGROS Y PROBLEMAS EN SIMULACIÓN
Definir los límites y nivel de detalles del sistema. Subestimar el tiempo y costos involucrados en el proceso de
modelación. Fallar en la selección del más simple y económico de los
modelos para el fin establecido. Ausencia o pérdida de metodología estadística. Considerar como aproximados algunos atributos de un
sistema que no existe. Entendimiento superficial del sistema a ser modelado. Poca destreza para comunicarse con administradores y staff
que financiarán el proyecto.
ÁREAS DE APLICACIÓN DE SIMULACIÓN
TIPOS DE SIMULACIÓN:Simulación Analógica
El caso de los túneles de vientos para pruebas de aviones. Las ecuaciones diferenciales que describen las fuerzas sobre un avión en vuelo pueden resolverse en un computador analógico que represente estas fuerzas con potencias eléctricas y luego opere con ella. Éste es un caso típico de SIMULACIÓN ANALÓGICA.
En Ingeniería, un túnel de viento o túnel aerodinámico es una herramienta de investigación desarrollada para ayudar en el estudio de los efectos del movimiento del aire alrededor de objetos sólidos. Con esta herramienta se simulan las condiciones que experimentará el objeto de la investigación en una situación real. En un túnel de viento, el objeto o modelo, permanece estacionario mientras se propulsa el paso de aire o gas alrededor de él. Se utiliza para estudiar los fenómenos que se manifiestan cuando el aire baña objetos como aviones, naves espaciales, misiles, automóviles, edificios o puentes.
TIPOS DE SIMULACIÓN:Simulación Contínua
La resolución de ecuaciones diferenciales a veces se denomina CONTÍNUA y dado que la variable independiente es contínua en el tiempo, a estos trabajos se los clasifica como de SIMULACIÓN CONTÍNUA.
SIMULACIONES NUMÉRICAS USANDO PROCESAMIENTO PARALELO CON TARJETAS GRÁFICAS.Estudio analítico y simulación numérica de ecuaciones diferenciales parciales en la modelación de fenómenos de reacción y de transporte, caracterizados por la formación de estructuras complejas.
Simulación numérica del estado estacionario de concentración de bacterias (por ejemplo, F. oxysporum) en presencia de un antagonista (por ejemplo, B. subtilis), bajo un modelo de competencia hiperbólico-parabólico de tipo quimiotáctico.
Si en cambio, las relaciones y ecuaciones del modelo ocurren siempre en un número finito de puntos en el tiempo, no necesariamente a intervalos de tiempos iguales, e incluye la posibilidad de trabajar en forma aleatoria, estamos ante la SIMULACIÓN DE EVENTOS DISCRETOS.
TIPOS DE SIMULACIÓN:Simulación de Eventos Discretos
ETAPA DE TRASLACIÓN DEL MODELO (CODIFICACIÓN):
LENGUAJES
PROCESO DE SIMULACIÓNPROCESO DE SIMULACIÓN
Lenguajes de Simulación
Lenguajes de Programación Generales
Lenguajes de Simulación Específicos
Lenguajes Generales(C, C++, Pascal, JAVA)
•No proveen ninguna facilidad directa a la simulación •Generalmente adoptan para simular un enfoque de planificación de eventos•El analista-programador deberá programar todos los detalles relacionados a los algoritmos de avance del tiempo, a la FEL (Lista de Eventos Futuros), obtención de estadísticas, generación de muestras con una determinada distribución y generación de reportes.•Para modelos grandes, el programa es difícil de corregir •Baja performance•Se lo utiliza como herramienta de aprendizaje de los conceptos de “event-scheduling”: Planificación de eventos.
Lenguajes Específicos( GPSS/H, SLAM II, SIMSCRIPT II.5, SIMAN 5,
VENSIM)
REDUCCIÓN EN LA TAREA DE PROGRAMACIÓN.
MEJOR DEFINICIÓN DEL SISTEMA.
MAYOR FLEXIBILIDAD PARA CAMBIOS.
MEJOR DIFERENCIACIÓN DE LAS ENTIDADES QUE FORMAN EL SISTEMA.
OBTENCIÓN DE REPORTES FLEXIBLES FUNCIONES INTEGRADAS
SIMULACIÓNORIENTADA A PROCESOS
-GPSS/H (General Purpose Simulation System:Sistema de Simulación de Propósito General)- SIMNET II (Simulation Network)
SIMULACIÓNORIENTADA A PROCESOS/EVENTOS
-SLAM II (Simulation Language for Alternative Modelling)- SIMSCRIPT II.5
-SIMAN 5 (Simulation Modelling and Analysis)
LENGUAJES DE SIMULACIÓNESPECÍFICOS
GPSSGPSS//HH
• LENGUAJE DE SIMULACIÓN DISCRETA.
• DISEÑADO POR GEOFREY GORDON EN LOS60'S
• ORIENTADO HACIA SISTEMAS DE COLAS
• ADMITE UN AMBIENTE DE ANIMACIÓN DENOMINADO PROOF ANIMATION
• GPSS/H CONSIDERA AL PROCESO COMOENTIDADES QUE SE MUEVEN DENTRO DELSISTEMA
MODELIZACIÓN
• El analista define al modelo de simulación en términos de entidades y su ciclo de vida tal como estas entidades fluyen en el sistema, demandando recursos y ubicándose en distintas colas a esperar por recursos.
• Más precisamente un proceso es el ciclo de vida de una entidad • El ciclo de vida puede consistir de varios eventos y actividades• Algunas actividades pueden requerir el uso de uno o más recursos
con capacidad limitada
Tiempo
Evento Arribo
x
Comienza Servicio
x
Termina Servicio
xDemora Actividad
Tiempo
Evento Arribo
x
Comienza Servicio
x
Termina Servicio
xDemora
Actividad
interaccióncliente n
cliente n+1
BLOQUES GPSS
UN BLOQUE REPRESENTA UNA ACCIÓN O EVENTO
LA COLECCIÓN DE BLOQUES REPRESENTA EL SISTEMATOTAL LLAMADO DIAGRAMA DE BLOQUES.
LAS ENTIDADES DINÁMICAS QUE SE MUEVEN DE BLOQUE EN BLOQUE SON LLAMADAS TRANSACCIONES
LA EJECUCIÓN DE UN BLOQUE (EVENTO) PUEDE AFECTAR A UNA
O MÁS TRANSACCIONES Y CAMBIAR EL ESTADO DEL SISTEMA.
CADA BLOQUE EN EL DIAGRAMA DE BLOQUES REPRESENTA
EXACTAMENTE UNA LÍNEA EN EL PROGRAMA FUENTE.
0.1
5+-1
2+-1
1
Las instrucciones SIMULATE, START
y END, son las llamadas instrucciones
de control y sirven para dirigir las
acciones del modelo de simulación con las
instrucciones de bloque.
A fin de que las instrucciones GPSS sean interpretadas correctamente por el compilador y así simular adecuadamente, se necesita:
•seguir una estructura adecuada
y
•seguir un formato específico.
MODELANDO EN GPSS/H ...
Ciclo de vida de las entidades
•UNA INSTRUCCIÓN DE CONTROL NO PARTICIPA EN EL MODELO PROPIAMENTE DICHO
•UNA INSTRUCCIÓN DE BLOQUE FORMA PARTE DEL MODELO Y SÓLO SE EJECUTA SI ES ACTIVADA POR UNA ENTIDAD (TRANSACCIÓN)
•REPRESENTA UNA ACTIVIDAD DEL MODELO
MODELANDO EN GPSS/H ...
Entidades llamadas transacciones fluyen a través del diagrama de
bloques.
Para implementar en GPSS un modelo sólo
deberán escribir un programa que describa el
ciclo de vida de una entidad / transacción
Para iniciar el aprendizaje en la elaboración de modelos de simulación en GPSS es
necesario saber cómo generar transacciones ya que son los elementos que circularán por
el modelo
= TRANSACCIONESENTIDADES DINÁMICAS
ENTIDADES TEMPORARIAS (clientes, autos, repuestos, mensajes, frutas, cajas, etc.)
La instrucción de bloque que permite generar las transacciones e ingresarlas en el modelo se denomina
GENERATE
Su sintaxis es: GENERATE A, B, C, D
•A es el tiempo promedio de creación de transacciones en unidades de tiempo simulado. (Default cero).
•B es la dispersión en el tiempo de creación promedio de las transacciones. El tiempo entre-arribos de las transacciones al modelo será de A + - B unidades de tiempo. (Default cero).
•C es un operando donde se coloca el tiempo simulado al que llega la primera transacción al modelo. (Default no determinado).
•D es el número límite de transacciones creadas y su valor por omisión es infinito.
La instrucción de bloque que permite generar las transacciones e ingresarlas en el modelo se denomina
GENERATE
Ejemplo 1: GENERATE 5,1
Cada 5+-1 unidades de tiempo (distribución uniforme) ingresará una entidad al sistema
Ejemplo 2: GENERATE 3
Cada 3 unidades de tiempo (constante) ingresará una entidad al sistema
La Instrucción de bloque que se emplea para destruir las transacciones que ingresan al sistema se denomina
TERMINATE
Su sintaxis es: TERMINATE A
Donde A es un operando entero, cuyo valor es el decremento del contador de las terminaciones (cuyo número inicial se especifica en la instrucción de control START).
Cuando el contador alcanza un valor menor o igual a cero se ejecuta la siguiente instrucción debajo del START, si es un END, la simulación termina.
Ejemplos:
TERMINATE -----> Cada transacción que ingresa se destruye.
TERMINATE 5 -----> Cada transacción que ingresa se destruye y decrementa el contador de terminaciones en 5 unidades cada vez.
Con las instrucciones de bloque GENERATE y TERMINATE se está en condiciones de crear y destruir transacciones, es decir, de ingresarlas al modelo y de sacarlas del modelo (pero sin que se ejecute alguna actividad en el modelo)
Ahora es necesario poder simular la ocupación de un equipo (realizando alguna actividad) por una transacción y poder simular la liberación del equipo
Instrucción de bloque ADVANCE
Suspende el movimiento de una transacción por una cantidad especificada de tiempo simulado.
Representa el gasto del tiempo
Su sintaxis es: ADVANCE A,B
Donde el operando A corresponde al tiempo de permanencia (retardo) para la transacción y
B es el intervalo de dispersión alrededor de A.
Ejemplos:
ADVANCE 12,4 ---> Retarda la transacción 12 + - 4 unidades de tiempo simulado.
ADVANCE 15 ---> Retarda exactamente 15 unidades de tiempo a la transacción.
........
GENERATE 5,1 * Ingreso al sistema *
ADVANCE 2,1 * Alguna actividad *
TERMINATE 1 * Salida del sistema *
........
5+-1
5+-1 5+-1
2+-1
Instrucción de bloque TRANSFER
TRANSFER permite elegir una localización distinta a la secuencial
Su sintaxis es: TRANSFER A,B,C
El operando A es el factor de selección, B y C son los rótulos de los bloques a donde tiene que ir la transacción.
Ejemplos:
TRANSFER .1, ACC, REJ (el 90% de las transacciones que pasen por este bloque continúan con la instrucción que sigue en el rótulo ACC, el 10% se transfieren al bloque posicionado en REJ).
TRANSFER .1, , REJ (el 10% se transfieren al bloque posicionado en REJ, el 90% continua con la próxima instrucción)
TRANSFER ,REJ (Transferencia incondicional a REJ).
SIMULATE
GENERATE 5,2 * Ingreso al sistema *
ADVANCE 2,1 * Alguna actividad *
TRANSFER 0.1, ACC, REJ * Selec. Prox. Act. *
ACC TERMINATE 1 * Salida del sistema *
REJ TERMINATE 1 * Salida del sistema *
START 1000
10%
90%ACC
REJ5+-25+-25+-2 2+ -1
CLASIFICA 1000 PIEZASOjo Robótico
SIMULATE
GENERATE 5,2 * Ingreso al sistema *
ADVANCE 2,1 * Alguna actividad *
TRANSFER 0.1, ACC, REJ * Selec. Prox. Act. *
ACC TERMINATE 1 * Salida del sistema *
REJ TERMINATE * Salida del sistema *
START 1000
10%
90%ACC
REJ5+-25+-25+-2 2+ -1
Ojo RobóticoCLASIFICA HASTA QUE
1000 PIEZAS SEAN ACEPTADAS
SIMULATE
GENERATE 5,2 * Ingreso al sistema *
ADVANCE 3,1 * Alguna actividad *
TRANSFER 0.1, ACC, REJ * Selec. Prox. Act. *
ACC TERMINATE 1 * Salida del sistema *
REJ TERMINATE * Salida del sistema *
START 1000
10%
90%ACC
REJ5+-25+-25+-2 3+ -1
Ojo RobóticoEste modelo está suponiendo que el
servidor está siempre disponible!!
(o que puede atender a más de una
entidad al mismo tiempo)
Instrucción de bloque SEIZE
SEIZE se utiliza para que una transacción que ingresa registre la ocupación de un servidor. El servidor quedará ocupado hasta que la transacción ingrese a una instrucción RELEASE.
Si la unidad está ocupada, entonces las transacciones deberían esperar formando una COLA
Su sintaxis es: SEIZE A
El operando A se emplea para dar la identificación a la unidad/servidor que se ocupa (número o nombre).
Ejemplos:
SEIZE SUPERVISOR ---> Registra la ocupación de una unidad de servicio llamada SUPERVISOR
SEIZE 9 ---> Registra la ocupación de la unidad de servicio número 9.
Facilidades(facility)
Instrucción de bloque RELEASE
RELEASE se utiliza para desocupar la unidad de servicio ocupada previamente por la transacción.
Su sintaxis es : RELEASE A
El operando A indica la identificación el servidor que se libera.
Ejemplo:
RELEASE SUPERVISOR---> Indica que la transacción libera a la unidad de servicio SUPERVISOR que ocupó con anterioridad.
SIMULATEGENERATE 5,2 * Ingreso al sistema * SEIZE SUP * Ingresa al servidor SUP”ADVANCE 3,1 * Alguna actividad *RELEASE SUP * Libera el servidor SUP”TRANSFER 0.1, ACC, REJ * Selec. Prox. Act. *
ACC TERMINATE 1 * Salida del sistema *REJ TERMINATE 1 * Salida del sistema *
START 1000
3+-1
10%
90%
ACC
REJ
SUP
Instrucción de bloque ENTER/LEAVE/STORAGE
ENTER sirve para registrar el empleo de una unidad de servicio por parte de una transacción que entra, de tal forma que la unidad queda ocupada hasta que la transacción ingresa a una instrucción LEAVE.
Su sintaxis es: ENTER A
El operando A se emplea para dar la identificación a la unidad que se ocupa (número o nombre).
Su sintaxis es : LEAVE A
El operando A indica la identificación de la unidad que se libera.
Adicionalmente se puede indicar la cantidad de unidades de servicios
Idénticas. Ejemplo:
A STORAGE 5 ó STORAGE S(A), 5
Almacenamientos(storage)
SIMULATESUP STORAGE 2
GENERATE 5,2 * Ingreso al sistema * ENTER SUP * Ingresa al servidor SUP”ADVANCE 3,1 * Alguna actividad *LEAVE SUP * Libera el servidor SUP”TRANSFER 0.1, ACC, REJ * Selec. Prox. Act. *
ACC TERMINATE 1 * Salida del sistema *REJ TERMINATE 1 * Salida del sistema *
START 1000
3+-110%
90%
ACC
REJ
3+-1
SUP
Instrucción de bloque QUEUE/DEPART
Manipulan fenómenos de espera
Su sintaxis es: QUEUE A
DEPART A
El operando A se emplea para dar la identificación a la fila de espera
Siempre que este bloque sea usado, automáticamente serán impresas estadísticas.
Ejemplos:
QUEUE LINEA DEPART LINEA
QUEUE UNO DEPART UNO
GENERATE 5,2 * Ingreso al sistema *
QUEUE LINEA * Ingreso a la fila *
SEIZE SUP * Ingresa al servidor SUP
DEPART LINEA * Deja la fila LINEA *
ADVANCE 3,1 * Alguna actividad *
RELEASE SUP * Libera el servidor SUP
TRANSFER 0.1, ACC, REJ * Selec. Prox. Act. *
ACC TERMINATE 1 * Salida del sistema *
REJ TERMINATE 1 * Salida del sistema *
START 1000
3+-1
10%
90%
ACC
REJ
SUPLINEA
Ejecuta el Bloc de Notas e ingresa el código, luego guarda el archivo eligiendo la opción “todos los archivos” (no como .txt) y colócale el nombre EJEMPLO.GPS.
Para compilar y ejecutar los programas GPSSH
*PRIMER EJEMPLO
SIMULATE
GENERATE 5,1
ADVANCE 2,1
TERMINATE
START 1
END
* FIN DE CODIGO
Para compilar y ejecutar los programas GPSSH se realiza a través del siguiente comando:
C:\GPSSH>gpssh EJEMPLO.GPS
Pasos para compilar y ejecutar los programas GPSSH
Compilación y ejecución exitosa
Pasos para compilar y ejecutar los programas GPSSH
Compilación y ejecución exitosa
Pasos para compilar y ejecutar los programas GPSSH
Pueden consultar el manual de GPSS-H
C:\Manual Gpssh.pdf