380 likes | 618 Views
Simulación Dr. Ignacio Ponzoni. Clase XXI I I: Evolución del Software para Simulación Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur Año 2005. Evolución del Software de Simulación. Dividiremos la historia en seis períodos:
E N D
SimulaciónDr. Ignacio Ponzoni Clase XXIII: Evolución del Software para Simulación Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur Año 2005
Evolución del Software de Simulación Dividiremos la historia en seis períodos: • 1955-60: El Período de Búsqueda • 1961-65: El Advenimiento • 1966-70: El Período de Formación • 1971-78: El Período de Expansión • 1979-86: El Período de Consolidación y Regeneración • 1987-Actualidad: El Período de Ambientes Integrados (VIMS)
Evolución del Software de SimulaciónPeríodo de Búsqueda (1955-60) • En los primeros años, la simulación se realizó en lenguajes de propósito general como Fortran que programan sin el apoyo de las rutinas específicas de simulación. • En este período se hicieron muchos esfuerzos en la búsqueda por unificar conceptos y en el desarrollo de rutinas reusables para facilitar la simulación. • GSP (General Simulation Program) desarrollado por Tocher y Owen constituyó la primera librería diseñada específicamente para simulación.
Evolución del Software de SimulaciónEl Advenimiento (1961-65) • En este período aparecen los precursores de los lenguajes de programación de simulación (LPS) actuales. • El primer LPS desarrollado con interacción de procesos fue GPSS (General Purpose Simulation System) presentado por IBM en 1961. • GPSS fue diseñado para simular comunicaciones y sistemas de computo, pero rápidamente se extendió a otras áreas de aplicación. • Básicamente GPSS, usa una representación de diagramas de bloques apropiada para modelar sistemas de colas.
Evolución del Software de SimulaciónEl Advenimiento (1961-65) • En 1963 surgió SIMSCRIPT, el cual fue desarrollado por RAND bajo el auspicio de la Fuerza Aerea de EEUU. • SIMSCRIPT estaba fuertemente influenciado por FORTRAN, y en sus principios estaba orientado a la planificación de eventos. • Al mismo tiempo apareció GASP orientado a Planificación de Eventos y basado inicialmente en Algol, pero implementaciones posteriores fueron hechas basadas en Fortran. • GASP no era un lenguaje apropiado, sino una colección de rutinas de Fortran para facilitar la simulación en este último lenguaje.
Evolución del Software de SimulaciónPeríodo de Formación (1966-70) • Los conceptos fueron revisados y redefinidos para promover una representación más consistente de cada vista del mundo. La mayoría de los LPS maduraron y lograron un uso más amplio. • Los rápidos avances del hardware y las demandas de los usuarios forzaron a que algunos lenguajes sean revisados y sufrieran cambios notables. • Tal es el caso de la aparición de GPSS/360, diseñado para las IBM 360, y SIMSCRIPT II. Otras versiones de GPSS fueron desarrolladas por otras empresas. • El LPS SIMULA agregó el concepto de clases y herencia, transformándose en un precursor de los modernos lenguajes de programación orientados a objetos.
Evolución del Software de SimulaciónPeríodo de Expansión (1971-78) • En este período ocurrieron los mayores avances en GPSS. Se desarrolló GPSS/H, versión principal de GPSS que sigue utilizándose actualmente. • Apareció GASP IV que agregó soporte para emplear Barrido de Actividades. • Se realizaron esfuerzos intentando simplificar la modelación de procesos. • Usando a SIMULA como base, se empezó a desarrollar las primeras herramientas de alto nivel tratando de automatizar el proceso de traducción del modelo conceptual al computacional.
Evolución del Software de SimulaciónConsolidación y Regeneración (1979-86) • En este período los principios de los LPS se adaptaron para su utilización en computadoras personales y microordenadores manteniendo su estructura básica. • También comenzaron los esfuerzos por lograr LPS que permitieran modelar utilizando distintas vistas del mundo. • SLAM (Simulation Language for Alternative Modeling) soporta planificación de eventos basada en GASP, un enfoque de red (derivado de la interacción de procesos) y un enfoque para el modelado de sistemas continuos. • SIMAN (SIMulation ANalysis) permite utilizar planificación de eventos e interacción de procesos usando FORTRAN como base, y también incorpora rutinas para simulación continua.
Evolución del Software de SimulaciónPeríodo de Ambientes Integrados (1987-Act.) • En este período es notable el crecimiento de LPS para computadoras personales con ambientes de simulación con interfaces gráficas de usuario, animaciones (2D y 3D) y otras herramientas para la visualización. • Varios de estos ambientes también contienen analizadores de datos de entrada y de salidas. Algunos paquetes intentan simplificar el modelado de procesos mediante el uso de flujos de procesos o diagramas de bloques dando origen a los paquetes VIMS.
Criterios para Selección del Software de Simulación Las características a considerar ante la selección de un software de simulación son: • La Interface • El Procesamiento • La Salida • El Ambiente • El Costo y Proveedor del Software
Selección del Software de SimulaciónLa Interface • Amigable para el usuario. • Importación de archivos de datos. • Exportación de archivos de datos. • Sintaxis comprensible, consistente y libre ambigüedades. • Controlador interactivo de corridas (debugger). • Interfaces con otros lenguajes. • Capacidad de análisis de datos de entrada y salida.
Selección del Software de SimulaciónConsideraciones de Procesamiento • Velocidad de cómputo. • Flexibilidad en la especificación del tiempo de corrida. • Generadores de Variables Aleatorias. • Capacidad para Replicación Independiente. • Definición de Variables Globales y Atributos. • Programación de detalles específicos. • Portabilidad.
Selección del Software de SimulaciónLa Salida • Generadores de Reportes Estandarizados. • Generadores de Reportes Personalizados. • Gráficos de Negocios. • Mantenimiento de Bases de Datos. • Colección de expresiones matemáticas. • Medidas de performance personalizadas. • Posibilidad de enviar las salidas a un archivo para un análisis posterior o manipulación.
Selección del Software de SimulaciónEl Ambiente • Facilidad de uso. • Facilidad para su autoaprendizaje. • Calidad de la ayuda y tutoriales. • Capacidades de animación. • Creación de una aplicación Stand-Alone. • Estabilidad del producto en el mercado. • Evolución del software.
Selección del Software de SimulaciónEl Costo y Proveedor • El costo del software de simulación en general es variable, desde u$s500 a u$s50.000, estabilizándose los más populares alrededor de los u$s15.000. • Es importante tener en cuenta cual es la política del proveedor del software respecto de las actualizaciones. • El elevado costo de un paquete de software puede ser bien amortizado si las actualizaciones no son caras. • En todo caso, nunca se debe perder de vista las funcionalidades del paquete respecto del tipo de sistemas que vamos a modelar. Un software barato que no satisface los requerimientos de nuestro problema siempre resultará caro.
Selección del Software de SimulaciónResumiendo • Precisión y detalles pueden ser muy importantes. • Capacidades poderosas y mayor nivel de abstracción pueden hacer que la productividad del diseñador de modelos se incremente. • Tener en cuenta que el soft demo muchas veces no muestra las verdaderas capacidades del paquete de simulación. • La implementación y capacidades del software es siempre lo más importante.
Clasificación del Software de Simulación El software empleado para desarrollar modelos de simulación puede dividirse en cuatro categorías: • Complementos para Planillas de Cálculo Crystal Ball, Risk, etc. • Lenguajes de Programación de Propósito General Fortran, C, C++, Java , etc. • Lenguajes Programación para Simulación GPSS/H, SIMAN V, SIMSCRIPT II, etc. • Ambientes de simulación Arena, AutoMod, SimProcess, Simul8, Network II, etc.
Complementos para Planillas de Cálculo • Básicamente, estos paquetes traen facilidades para: • Modelar las variables aleatorias mediante una galería de distribuciones. • Replicación automática de experimentos, y • Herramientas para el análisis de la salida. • Los complementos más utilizados actualmente son: • Crystal Ball, desarrollado por Decisioneering, INC. • Risk, comercializado por la compañía Palisade.
Lenguajes de Propósito General C++ • Este lenguaje no ha sido diseñado específicamente para su uso en simulación. • Es empleado debido a su gran disponibilidad y extenso uso. • Muy pocas personas escriben modelos de simulación de eventos discretos usando sólo lenguajes de programación, en general estos están extendidos con librerías especiales. • Su orientación a objetos facilita la construcción modular de modelos grandes. Empleando librerías de simulación como CSIM se reduce la programación de bajo nivel.
CSIM • Es una librería utilizada para modelar objetos predefinidos como apoyo a los modelos de simulación orientados a procesos. • Es barato se utiliza fundamentalmente en la industria y en la educación, principalmente para modelar computadoras y sistemas de comunicación. • Es rápido debido a su cuidadosa implementación y por tratarse de un lenguaje compilado. • Representa con facilidad colas con multiservidores pudiéndole asociar diferentes disciplinas.
Lenguajes de SimulaciónGPSS-GPSS/H • Es un lenguaje de simulación altamente estructurado basado en el enfoque de interacción de procesos y orientado a la simulación de sistemas de colas. • El sistema es descrito por medio de un diagrama de bloques. Los bloques representan eventos, demoras, y otras acciones que afectan el flujo del proceso.
Lenguajes de SimulaciónGPSS-GPSS/H • GPSS/H incluye un debugger interactivo, gran velocidad de ejecución, facilidades para que el usuario extienda el repertorio de sentencias de control, un constructor para funciones matemáticas y un generador de variables aleatorias. • Tiene además un animador que provee animación en 2-D, con buenas facilidades para el escalamiento de los gráficos. La animación puede correr en modo post-proceso o concurrentemente con la simulación.
Lenguajes de SimulaciónSimScript II • Es un lenguaje que permite modelos construidos usando interacción de procesos. • Puede emplearse para producir gráficos de presentación dinámicos y estáticos como histogramas, gráficos de torta, gráficos de barras y cuadros de variables respecto del avance de tiempo. • La animación de salida es construida usando SimGraphics.
Lenguajes de SimulaciónAweSim • Es un sistema de simulación integrado de propósito general basado en la interface de Windows. • Permite realizar múltiples tareas en paralelo mientras la simulación está corriendo en background. • Los modelos se construyen mediante redes de nodos, y los parámetros de los nodos se especifican como expresiones en sus campos apropiados. • Las animaciones pueden ser vistas sin correr la simulación. Es un precursor de los primeros paquetes VIMS.
Lenguajes de SimulaciónAweSim • Subredes de nodos visuales permiten la creación de modelos jerárquicos y componentes de modelo reusables. • El análisis de salida incluye un visor de reportes que permite tanto presentar la salida en formato de texto o gráfico. • Las capacidades de modelado extendidas se realizan en Visual Basic o Visual C++.
Lenguajes de SimulaciónSimple++ • Es un sistema completo de simulación orientado a objetos con una interface gráfica integrada. • Los modelos se crean haciendo una librería de objetos. Estos objetos representan clases (padres) cuyas instancias (hijos) pueden ser insertados dentro del modelo. • Incluye estructuras de clases, herencia, jerarquía, modularidad y polimorfismo. • Además posee una arquitectura abierta que permite comunicarse con otros softwares.
Paquetes de Simulación VIMS • Los paquetes VIMS actuales poseen características comunes como interface gráficas de usuario, animación y análisis de salida. • En ellos los resultados pueden verse en forma tabular o gráfica permitiendo comparaciones. • La mayoría proporciona análisis estadísticos, incluyendo intervalos de confianza para las medidas tomadas. • Todos toman la vista del mundo de interacción de procesos y algunos también permiten planificación de eventos y mezclan modelos continuos y discretos.
Paquetes de Simulación VIMSArena • Puede ser usado para la simulación de modelos discretos o continuos. • Emplea un diseño orientado a objetos para el desarrollo completo de modelos gráficos, permitiendo la creación de nuevos objetos de modelado (módulos) los cuales son los bloques de construcción en la creación de un modelo. • Todos los aspectos de un proceso en particular (lógica, datos, animación) pueden ser módulos para representar el proceso a través del que fluyen las entidades.
Paquetes de Simulación VIMSArena • Incluye módulos enfocados a los aspectos específicos de sistemas de fabricación y manejo de materiales. • Puede ser también usado para modelar sistemas combinados discretos-continuos (producción farmacéutica y química). • Crea animaciones 2-D usando herramientas de dibujo propias o importadas de ClipArt, AutoCad, etc. • Incluye un analizador de entrada que ayuda a seleccionar la distribución de entrada apropiada y un analizador de salida.
Paquetes de Simulación VIMSAutoMod • Su enfoque principal es hacia los sistemas de fabricación y manejo de materiales. • Tiene un sistema común de construcción de plantillas para el manejo de materiales, incluyendo sistemas de vehículos, portadores, almacenamiento automatizado y sistemas de recuperación, sistemas de potencia y sistemas cinemáticos para robótica. • Soporta también el modelado de fluídos continuos y de volúmenes de flujo de materiales.
Paquetes de Simulación VIMSAutoMod • Su vista del mundo es la interacción de procesos. Las capacidades de animación incluyen escalamiento y rotación de gráficos 3-D. Se utiliza CAD para construir el modelo. • Posee una interface de hoja de cálculos que permite al usuario expresar lógica compleja sin programar. • Realiza el análisis de los datos de salida, el manejo de escenarios, la generación de intervalos de confianza y diseño de experimentos mediante AutoStat.
Paquetes de Simulación VIMSMicro Saint • Los modelos se desarrollan creando un diagrama de flujos para describir una red de tareas. • La animación es mediante imágenes y está basado en la representación de diagramas de flujo u organigramas. • Es utilizado en el modelado de sistemas de cuidado de salud, de fabricaciones y aplicaciones militares. • Sustenta la ergonomía y modelado del comportamiento y desempeño humano.
Paquetes de Simulación VIMSProModel • Es una herramienta de simulación y animación diseñada para el modelado de sistemas de manufactura. • La compañía que lo desarrolla, homónima, también ofrece MedModel para sistemas de cuidado de salud, ServiceModel para sistemas de servicios y ProcessModel basado en organigramas para procesos comerciales. • Genera gráficos de salida y estadísticas automáticamente. • Ofrece animación 2D, así como una perspectiva de vista 3D opcional. Pueden importarse dibujos CAD o ClipArts.
Paquetes de Simulación VIMSTaylor ED • Es usado para modelar procesos de fabricación, almacenaje y procesos de manejo de materiales además de servicios y procesos de flujo de datos. • También puede usarse para supervisar procesos de flujo en tiempo real. Ofrece animaciones 2D y 3D. • Está basado en el concepto de átomos (objetos inteligentes y recursos del constructor de modelos). • Estos representan productos o entidades, que fluyen a través de los sistemas así como los recursos que actúan en estas entidades.
Paquetes de Simulación VIMSTaylor ED • Para construir un modelo, un usuario crea primero un modelo de esquema seleccionando átomos de una biblioteca de átomos y poniéndolos en la pantalla. • Luego el usuario conecta los átomos y define la asignación de rutas de los productos o entidades (también átomos) fluyendo a través del modelo. • Luego el usuario asigna la lógica e incluye asignaciones de ruta lógica a cada átomo revisando sus campos de parámetros.
Paquetes de Simulación VIMSWITNESS • Está fuertemente orientado a la simulación de maquinarias y contiene muchos elementos para manufactura de partes discretas. • También contiene elementos para procesos continuos como la salida de fluidos a través de procesadores, tanques y cañerías. • Ofrece un esquema de animación 2D más una vista del flujo de procesos.
Paquetes de Simulación VIMSWITNESS • Las capacidades de reporte incluyen mostrar información en pantalla dinámicamente de cada elemento modelado. • Los reportes pueden ser exportados a hojas de cálculo. C-Links permite programación detallada y agregar subrutinas. • El debugg puede ser hecho parando el modelo, cambiando los parámetros deseados, y continuando con la simulación en el punto dejado.
Recomendaciones • Lectura sugerida: • Capítulo 4 del libro Discrete-Event System Simulation de Banks, Carson, Nelson y Nicol.