Вы находитесь на странице: 1из 14

Lenguaje de

Simulación
Introducción

En la vida real se presentan situaciones o sucesos que requieren tomar


decisiones para planificar, predecir, invertir, proyectar posibles soluciones a
problemáticas planteadas al momento de efectuar una simulación.

Para eso es importante el conocimiento del problema o de la situación y de


las posibles soluciones, donde juegan un papel de importancia herramientas que
permiten la obtención de información, como la modelización y la simulación. Los
datos que se obtienen permiten predecir el comportamiento actual y futuro en
distintos escenarios mediante una serie de experiencias realizadas con un
programa informático.

Cualquiera sea la aplicación para simular, sea un programa comercial


específico o una aplicación con lenguaje de propósitos generales, requieren
conocer y manejar una serie de procedimientos y criterios para obtener datos y
para analizarlos para tomar decisiones que permitan optimizar los procesos.

Lenguaje de Simulación

El desarrollo de los lenguajes de Simulación comenzó a finales de los años


cincuenta; inicialmente los lenguajes que se usaron en fueron los de propósito
general, los cuales tenían las siguientes ventajas:
 La situación a analizar se puede modelar en forma más o menos sencilla

Para el programador por el conocimiento del lenguaje.

 El proceso se puede describir con tanta precisión como le sea posible en el


lenguaje conocido.
 Se pueden realizar todas las depuraciones posibles.

Cualquier lenguaje de programación puede ser empleado para trabajar en


Simulación, pero los lenguajes especialmente diseñados presentan las siguientes
propiedades:

 Acaban la tarea de programación.


 Generan una guía conceptual.
 Colaboran en la definición de entidades en el sistema.
 Manejan la flexibilidad en los cambios.
 Ayudan a analizar y a determinar la relación y el número de entidades en el
sistema.

Emshoff y Sisson consideran que la Simulación Discreta requiere de ciertas


funciones comunes que diferencian un lenguaje de Simulación de uno de
propósito general, entre las cuales se encuentran las siguientes:

 Generar números aleatorios.


 Generar variables aleatorias.
 Variar el tiempo hasta la ocurrencia del siguiente evento.
 Registrar datos para salida.
 Realizar análisis estadístico sobre datos registrados.
 Construir salidas en formatos determinados.
 Detectar inconsistencias y errores.

Entre estos lenguajes específicos podemos nombrar los siguientes: MIDAS,


DYSAC, DSL , GASP, MIMIC, DYNAMO, GPSS, SIMULA, CSSL( Continuous
System Simulation Language) , CSMP, ACSL ( Advanced Conrinuous Simulation
Language), DARE-P and DARE-Interactive, C-Simscript, SLAM, SIMAN, SIMNON,
SIMSCRIPT-II-5, ADA, GASP IV, SDL.
Muchos de estos lenguajes dependen fuertemente de los lenguajes de
propósito general como es el caso de SLAM o SIMAN que dependen de Fortran
para las subrutinas.
Por otro lado, el GPSS es un caso especial de un lenguaje de simulación de
propósito especial, altamente estructurado que esta orientado a la transacción, un
caso especial de una orientación basada en procesos más general. El GPSS fue
diseñado para la simulación simple de sistemas de colas tales como trabajos de
taller. A diferencia de los otros lenguajes de simulación, GPSS tiene varias
implementaciones incluyendo GPSS/H y GPSS/PC, ambos de los cuales serán
discutidos mas adelante. El SIMAN V, SIMSCRIPT II.5, y el SLAM son lenguajes
de simulación de alto nivel que tienen constructor especialmente diseñados para
facilitar la construcción de modelos. Estos lenguajes proveen al analista de
simulación con una opción orientación basada en procesos o basada en eventos,
o un modelo usando una mezcla de las dos orientaciones. A diferencia del
FORTRAN, estos tres lenguajes proveen la administración de la lista de eventos
futuros, generador interno de variables aleatorias, y rutinas internas para la
obtención de estadísticas (estas características para las implementaciones del
GPSS mencionadas previamente.) Se pueden lograr calculo complejos en ambas
implementaciones del GPSS y estos tres lenguajes.

El SIMAN, SIMSCRIPT II.5, y el SLAMSYSTEM proveen la capacidad de


realizar simulación continua ( esto es, para modelar sistemas que tengan
continuamente cambios en sus variables de estado) pero este tema no esta dentro
del alance de este libro.

El SIMAN esta escrito en C, aunque las primeras versiones del lenguaje fue
escrito en FORTRAN.

El SIMAN V puede ser acezado directamente, o a través del medio


ambiente del ARENA. El SLAMSYSTEM contiene al lenguaje de simulación SLAM
II. El SLAM II esta basado en el FORTRAN y contiene al lenguaje GASP como un
subconjunto. El GASP es un conjunto de subrutinas en FORTRAN para facilitar las
simulaciones orientadas al objeto escritas en FORTRAN. El SIMSCRIPT II.5 por
otro lado, contiene un subconjunto de un completo lenguaje científico de
simulación comparable con el FORTRAN, C o C++. El MODSIM III es un
descendiente del lenguaje que la compañía de productos CACI originalmente
diseñado por la armada de los Estados Unidos. Hereda mucha de su sintaxis del
MODULA-2 y del ADA, ciertas características del ADA y sus conceptos de
simulación del SIMSCRIPT y el SIMULA. Algunas de las características de la
simulación orientada al objeto fueron originalmente vistas en el SIMULA y el
SMALLTALK.

Ventajas de los lenguajes de simulación


 Dan fiabilidad a los resultados
 Permiten ahorrar tiempo
 Permiten concentrarse en el problema y no en la programación
 Abren el campo a no expertos en informática

Estructura Del Lenguaje.

Dentro de un programa de GPSS se pueden distinguir cuatro tipos de


instrucciones, cada una de las cuales se detalla a continuación:

• Instrucciones de acceso al sistema GPSS

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.

• Instrucciones de definido de variables

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 la 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 de muestra una lista de las definiciones más comunes
utilizadas en GPSS:

 |Definición de funciones | FUNCTION |


 |Definición del número de máquinas | STORAGE |
 |Definición de matrices | MATRIX |
 |Asignación numérica a variables | EQU |
 |Inicialización de variables | INITIAL |
 |Definición de histograma | TABLE |
 |Definición de operaciones | VARIABLE y FVARIABLE |

• Instrucciones de lógica del programa

Este tipo de instrucciones son las conocidas como bloques; son las que se
ejecutaran durante la simulación; la lógica dependerá de cada sistema que 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 SEIZE

ENTER

PREEMPT

Simulación de fin de proceso y liberación de máquina RELEASE

LEAVE

RETURN

Simulación de entradas de transacciones a un almacén QUEUE

ENTER

LINK

Simulación de salidas de transacciones a un almacén DEPART

ENTER

UNLINK

Simulación de entrada de transacción del sistema GENERATE

SPLIT

Simulación de salidas de transacciones del sistema TERMINATE

Simulación de diversos tipos de procesos ADVANCE

ASEEMBLE

MATCH

GATHER

Simulación de control de flujo de transacciones TRANSFER

TEST

GATE
LOGIC

SELECT

LOOP

BUFFER

Bloques de operaciones aritméticas SAVEVALUE

MSAVEVALUE

ASSIGN

INDEX

PRIORITY

Bloques de creación de estadísticas TABULATE

Las instrucciones de tipo b) y c) se codifican siguiendo un formato general,


dentro del cual se pueden distinguir los siguientes elementos:

|2 |8 |19 |31 |

|Loc |Bloque |Operandos |Comentarios |

Donde:

Loc: Representa el nombre de una etiqueta o una dirección. La etiqueta es


un campo opcional y su existencia depende de la lógica del programa. Esta
localizado en la columna 2. Su función es simular a las etiquetas en Fortran o
Basic.

Bloque: Es la instrucción específica por ejecutar.

Operandos: Cada bloque representa la acción por ejecutar, sin embargo, es


necesario incluir un documento, como puede ser la duración o el lugar de dicha
acción.
Comentarios: Es el espacio donde el usuario puede colocar cualquier
indicación o identificación de la instrucción.

• Instrucciones de control de la simulación.

Estas instrucciones son las que controlan la ejecución, edición, y manejo de


archivos en GPSS/PC. Las principales son: END, START, SIMULATE.

Lenguajes Específicos De Simulación.

La razón por la que se han desarrollado lenguajes específicos para


simulación es porque la mayoría de las simulaciones de eventos discretos tienen
bastantes elementos en común como por ej. Generar números aleatorios, avanzar
el reloj de simulación, determinar el próximo suceso de la lista de sucesos,...

Ventajas frente a los lenguajes de propósito general:

 Programas más cortos:


 Están preparados para llevar la contabilidad de los distintos parámetros.
 Tienen módulos para generar números aleatorios de las distintas
distribuciones.
 Al tener menos líneas de código:
 Se reduce el tiempo de programación
 Es más fácil detectar posibles errores
 Es más fácil cambiarlo si queremos introducir alguna variación

Además hay una serie de errores típicos que suelen ser identificados y
chequeados de forma automática.

Inconvenientes frente a los lenguajes de propósito general:

 Son menos flexibles, y su sintaxis tiende a ser menos natural


 Las ejecuciones son más lentas (pueden tardar hasta 8 veces más),
siempre y cuando el programa de lenguaje general esté diseñado de una
 forma eficiente. Esto es debido a que están diseñados para modelizar una
amplia variedad de sistemas con un conjunto de bloques ya construidos,
 mientras que los de propósito general pueden ir directamente al caso
particular que se trate.
 Son menos conocidos por analistas y programadores, y los compiladores
son menos accesibles

El lenguaje C es el más utilizado en simulación.


Características De Los Lenguajes De Simulació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:

I. El procedimiento utilizado para generar los números aleatorios uniformes y


las variables no uniformes conocidas.
II. Los procedimientos o métodos utilizados para generar las variables
aleatorias no-uniformes mas conocidas y mas usadas.
III. 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.
IV. El análisis estadístico de los resultados de simulación.
V. El formato en que los resultados de la simulación son representados.
VI. La forma en que las inconsistencias y errores de lógica es reportada.
VII. El lenguaje en el cual el paquete esta escrito, el cual puede ser: Fortran,
Algol, PL/1, Asembler, etc.
VIII. Los diferentes tipos de computadoras cuyo compilador es compatible con el
del paquete en cuestión.

Cualquiera de los lenguajes de simulación tienen sus propias ventajas y


desventajas y no se puede decir que un lenguaje es mejor que otro.
Generalmente, entre mas fácil de aprender y de usar sea un lenguaje, menor será
su flexibilidad y su eficiencia. Por consiguiente, decidir que lenguaje utilizar en una
aplicación, especifica, no es tarea fácil de realizar.

Clasificación De Los Lenguajes De Simulación.

Existen distintos tipos de simulación de modelos:

Simulación Discreta: tiene que ver con el modelado de un sistema que


evoluciona en el tiempo mediante una representación en la cual las variables de
estado cambian instantáneamente, cuando ocurren eventos. Aunque la simulación
discreta podría conceptualmente ser realizada mediante cálculos manuales, la
cantidad de datos que deben ser almacenados y manipulados en la mayoría de los
sistemas del mundo real obliga a que la simulación discreta sea realizada en
computadoras digitales.

Simulación Continua: se aplica cuando las variables de estado cambian


continuamente con respecto al tiempo. Típicamente, los modelos de simulación
continua involucran ecuaciones diferenciales que dan relaciones para las tasas de
cambio de las variables con el tiempo. Si las ecuaciones diferenciales son
particularmente simples, pueden ser resueltas analíticamente para dar los valores
de las variables de estado para todos los valores del tiempo como una función de
los mismos en el tiempo 0 o inicial. Sin embargo, para la mayoría de los modelos
continuos, no son posibles soluciones analíticas, y se usan técnicas de análisis
numérico, por ejemplo, la integración Runge-Kutta, para resolver las ecuaciones
diferenciales numéricamente, dados valores específicos para las variables de
estado en el tiempo 0.

Simulación Discreta-Continua Combinada: Como algunos sistemas


no son ni completamente discretos ni completamente continuos, la
necesidad puede llevar a construir un modelo con aspectos tanto de
simulación discreta como continua, resultando en una simulación
combinada discreta-continua. Los tres tipos fundamentales de interacciones
que pueden ocurrir entre variables de estado cambiando continuamente y
discretamente son:

1. Un evento discreto puede causar un cambio discreto en el valor de una


variable de estado continua.
2. Un evento discreto puede causar que la relación que gobierna una
variable de estado continua cambie en un momento particular.

Etapas en el desarrollo de un Modelo de Simulación

En el siguiente diagrama se muestran las etapas en el desarrollo de un


modelo de simulación:

a) Formulación del problema y planificación del estudio: cada estudio


debe comenzar con una sentencia clara de los objetivos globales del
estudio y las cuestiones específicas a ser atendidas; sin esta sentencia hay
poca esperanza de éxito. El estudio completo debe ser planeado en
términos del número de personas, los costos, y el tiempo requerido para
cada aspecto del estudio.

b) Recolección de datos y definición de un modelo: la información y los


datos deben ser tomados sobre el sistema de interés (si existe) y usado
para especificar los procedimientos operativos y distribuciones de
probabilidad para las variables aleatorias usadas en el modelo. Por
ejemplo, en el modelado de un banco, se podrían recolectar los tiempos
entre arribos y los tiempos de servicio y usar esos datos para especificar
distribuciones de tiempos inter-arribos y de servicios para usarlas en el
modelo. Si es posible, los datos sobre el rendimiento del sistema, por
ejemplo, demoras en la cola de clientes de un banco, deben ser
recolectados para propósitos de validación en etapas posteriores.

c) Validación: aunque la validación es algo que debe ser hecho a lo largo de


todo el estudio de simulación, hay varios puntos en el estudio donde la
validación es particularmente apropiada.
d) En la construcción del modelo es útil incorporar personas que estén
íntimamente familiarizados con las operaciones del sistema actual y los que
deben tomar decisiones regularmente. Así se incrementará la validez del
modelo y la credibilidad (o validez percibida) por parte de los responsables
de decisiones también crecerá. Otro punto para validar es en la adecuación
de las distribuciones de probabilidad especificadas para la generación de
variables aleatorias de entrada, que debe ser testeadas usando pruebas de
bondad de ajuste.

e) Construcción de un programa de computación y verificación: el


modelador debe decidir si programar el modelo en un lenguaje de propósito
general, o en un lenguaje de simulación diseñado especialmente o
simulador. Un lenguaje de programación de propósito general
probablemente ya será conocido y estará disponible. Un lenguaje de
simulación puede reducir el tiempo de programación requerido
significativamente. La verificación de un modelo programado significa que
en las corridas no se produzcan errores.

f) Realización de corridas de prueba: las primeras corridas con el modelo


verificado se hacen con propósitos de validación. Son pruebas de corridas
con resultados conocidos para verificar si el modelo está bien programado y
para validar las salidas de simulación con datos reales.

g) Validación: las corridas de prueba pueden ser utilizadas para chequear la


sensibilidad de la salida del modelo a pequeños cambios en un parámetro
de entrada. Si la salida varía mucho, se debe obtener una mejor estimación
del parámetro de entrada. Si existe un sistema similar al de interés, los
datos de salida pueden ser comparadas con aquellas del sistema existente
actual. Si el acuerdo es bueno, el modelo validado es modificado de
manera que represente el sistema de interés, siempre que esta
modificación no sea demasiado costosa.

h) Diseño de experimentos: consiste en organizar las corridas de simulación


con cambios en los valores de las variables de entrada. Se debe
seleccionar el o los diseño/s de sistema y realizar las corridas. Por cada
diseño de sistema a ser simulado se deben tomar decisiones sobre las
condiciones iniciales para las corridas, la longitud de tiempo de puesta en
marcha (si hubiera), la longitud de la o las corrida/s, y el número de corridas
de simulación independientes a realizar para cada grupo de datos de
entrada.
i) Realización de las corridas de producción: Las corridas de producción
se hacen para proveer datos de rendimiento de los diseños del sistema de
interés.
j) Análisis de los datos de salida: Se utilizan técnicas estadísticas para
analizar los datos de salida de las corridas de producción. Los objetivos
típicos son construir un intervalo de confianza para una medida de
performance para un diseño de sistema particular o decidir cual sistema
simulado es el mejor relativo a alguna medida específica de performance.

k) Documentación, presentación, e implementación de resultados: Como


los modelos de simulación son comúnmente usados para más de una
aplicación, es importante documentar las suposiciones que se hicieron en el
modelo como así también el programa de computadora mismo. Finalmente,
un estudio de simulación cuyos resultados nunca son implementados es
probablemente una falla. Además, los resultados de modelos altamente
creíbles serán probablemente usados.

Tendencias Actuales de la Simulación.

Generadores de simuladores, entornos de simulación y animación gráfica.

Los lenguajes de simulación presentan una serie de limitaciones en lo que


se refiere a la comunicación con el usuario, por lo que se propone una
metodología donde se incorpore de manera directa los conceptos fundamentales
de la teoría de sistemas donde se incluye:

La modelización:

El modelizador debería tener la posibilidad de elegir diversos formalismos


de modelización según las características del sistema que pueden ser entre otros
continuos y discretos; pudiéndose concebir también modelos de sistemas cuya
estructura varíe con el tiempo, es decir habría la posibilidad de especificar
cambios controlados por el modelo en su estructura estática y dinámica. Por lo
cual la modelización debe constar de:

 Selección del formalismo de modelización.

 Manipulación del modelo. Descomposición del modelo en sub modelos.


 Construcción modular del modelo. Construir macro modelos acoplando e
integrando modelos de subsistemas.

Marcos Experimentales
Posibilidad de su manipulación interactiva.

Programas de Simulación

Especificación algorítmica de los programas de simulación que permita un


tratamiento automático de los pares modelo – marco experimental, lo que supone
una especificación del lenguaje de simulación que haga posible:

•Una expresión modular de los modelos y sus acoplamientos e interacciones de


acuerdo con los diferentes formalismos de modelización.

•Una especificación modular de los marcos experimentales.

La consecuencia de todos los requisitos y especificaciones mencionados es


una metodología de simulación, y un lenguaje que la materialice, lo cual haría
posible un proceso de modelización asistida por computador.

Simulación Visual Interactiva.

La simulación visual interactiva puede definirse como aquella que posibilita


la creación gráfica de modelos de simulación, permite mostrar por pantalla
dinámicamente el sistema simulado, así como la interacción entre el usuario y el
programa en ejecución. La interacción implica que la simulación se detiene y
solicita información al usuario, o bien que puede parar la simulación a su voluntad
e interaccionar con el mencionado programa.

Actualmente hay varios paquetes comerciales que incorporan plenamente


estos conceptos como por ejemplo: Simfactory, Witness, FACTOR/AIM. Todos
estos productos están orientados primordialmente a la utilización de la simulación
para la resolución de problemas en el ámbito de la producción

Conclusion

Para el presente trabajo se ha llegado a la siguiente conclusión, sea


determinado que es necesario el llevar acabo la planificación de la simulación ya
que esta nos permite analizar sucesos de la vida real permitiendo predecir lo que
podría ocurrir en determinados procesos.
La simulación de sistema nos permitirá optimizar el tiempo de respuesta
para el momento de realizar o diseñar algún proyecto ya que este nos ayuda a
planificar como vamos a elaborar este, obteniendo este como resultado una mayor
eficacia, rapidez y fiabilidad en las actividades realizadas durante cada paso a
seguir.

Bibliografía

 www,google.co.ve
 http://repositorio.utn.edu.ec/bitstream/123456789/568/5/CAPITULO%20V.pdf
 http://simulacionkarla.blogspot.com/p/unidad-iv-lenguajes-de-simulacion.html
 http://www.virtual.unal.edu.co/cursos/sedes/manizales/4060015/Lecciones/Capi
tulo%20VI/valeatorias.htm
 “Simulation Modeling and Analysis”, Averil M. Law y W. David Kelton, Ed. Mc. Graw-
Hill, (1991). Libro Online
 “Discret-Event System Simulation”, Jerry Banks, John S. Carson II, Barry Nelson, Fifth
Edition, Ed.
 Prentice-Hall, (2010). Libro Online
 “Discret-Event System Simulation”, Jerry Banks, John S. Carson II, Barry Nelson, Ed.
Prentice-Hall,
 (1996). Libro Online
 “Computer Simulation and Modelling”, Francis Neelankaveel, John Wiley & Sons,
(1986). Libro Online
 “Discrete systems simulation”, B. Koshnevis, McGraw-Hill, (1994). Libro Online
 “Managing Business Complexity. Discovering Strategic Solutions with Agent-Based
Modeling and
 Simulation”, M.J. North and Charles M. Macal, Oxford University Press (2007). Libro
Online

Вам также может понравиться