Manual Gpss

Embed Size (px)

Citation preview

CAPITULO 1

INTRODUCCION

Introduccin a la simulacinMuchas veces habremos odo la palabra simulacin sin entender plenamente su significado. Una definicin formal podra ser: "La prctica de generar modelos para representar un sistema del mundo real o hipotticos mundos futuros, experimentando con l para explicar el comportamiento del sistema, mejorar su funcionamiento o disear nuevos sistemas con caractersticas deseables". Tras esta definicin encontramos una actividad que, de una manera no profesional, todos realizamos da a da. Cuando realizamos cualquier accin, normalmente la simulamos anteriormente de una forma mental como cuando movemos un mueble en una habitacin. Antes nos imaginaremos el movimiento del mueble y cules sern las acciones mejores para realizar este movimiento. Pues esta accin tan habitual es lo que llamamos simulacin. Su utilizacin a nivel profesional se viene realizando desde hace aproximadamente medio siglo, auspiciado por el crecimiento de los ordenadores, y ha ido creciendo con el paso de los aos, llegando a convertirse en una herramienta de uso fundamental en la industria e investigacin, por una serie de ventajas frente a otros mtodos tradicionales que enumeraremos ms adelante. Conviene precisar que la simulacin no se restringe al uso de computadoras, y se puede aplicar de muchos modos, aunque el uso de stas es el principal. Es mucho ms sencillo y econmico reproducir en un ordenador distintos fenmenos, tales como fenmenos fsicos asociados al vuelo de una avin, y realizar la simulacin en una computadora. De todos modos, la simulacin va unida fielmente al desarrollo de las otras ciencias, y no es posible simular aquello que no se puede estudiar adecuadamente, de modo que en algunas situaciones la simulacin no es una situacin posible. Por otro lado, debemos tener en cuenta que los sistemas simulados son de Entrada-Salida. Estos sistemas nos darn una salida para unos datos iniciales que nosotros debemos suministrar. Por ello son incapaces de generar una solucin por s mismos. Slo pueden servir como herramienta para el anlisis del comportamiento de un sistema en condiciones especificadas por el experimentador.

2

Sistemas, Modelos y SimulacinEn el mundo actual, tanto en el rea de los negocios, como en la industria y el gobierno, los proyectos en gran escala y de gran complejidad son la regla y no la excepcin. Estos proyectos complejos requieren estudios previos a su construccin o modificacin, denominados estudios pilotos. Tales estudios pilotos se realizan utilizando la tcnica de la modelizacin: construccin de modelos donde se realiza el estudio con el fin de obtener conclusiones aplicables al sistema real. Construido el modelo, el proceso de ensayar en l una alternativa se llama simular. El conjunto de alternativas que se definen para su ensayo constituye la estrategia de la simulacin. Los objetivos del proyecto definen cul es el sistema y cul el medio ambiente que lo rodea. El sistema procurar satisfacer las necesidades cambiantes de ese medio ambiente en el que est insertado. Cada nuevo sistema lo modifica y crea en l nuevas necesidades. El sistema, para poder subsistir, debe adaptarse a los cambios. Uno de los objetivos de la simulacin es realizar ensayos de cambios en el sistema probndolos en el modelo, con el fin de elegir la mejor alternativa, y as enfrentar mejor a una realidad que vara da a da.

3

SistemaPueden darse varias definiciones de sistema: ! ! ! ! "Conjunto de elementos cuya interaccin interesa estudiar". "Conjunto de elementos que interactan entre s, con un fin comn, que se asla del universo para su estudio ". "Conjunto de partes organizado funcionalmente de manera tal de constituir una unidad interconectada". "Combinacin de elementos o componentes interrelacionados entre si y con el global que actan juntos para obtener un fin".

La palabra interrelacin es el fundamento de la definicin.

Subsistema:Es un conjunto que se asla dentro del sistema. El sistema puede verse como un subsistema del Universo. Cada subsistema puede ser tratado dentro del sistema o estudiado en forma aislada. El comportamiento del sistema total depende de: 1.- El comportamiento de cada subsistema. 2.- Las relaciones entre los subsistemas. 3.- Las relaciones con el mundo exterior, o sea, con el medio ambiente que lo circunda. Estas ideas son fundamentales para la resolucin de problemas que implican la construccin de modelos.

Clasificacin de Sistemas:Generalmente los sistemas se clasifican en funcin de su estado. Definimos como estado de un sistema para un momento de tiempo al valor de un conjunto de variables que definen al sistema en dicho momento de tiempo. Segn esto el sistema podr ser esttico o dinmico. Entendemos por sistema esttico aquel cuyos valores no cambian con el tiempo. Por tanto, dinmico ser aquel cuyos valores varen con el tiempo. Esta variacin puede ser cclica, puede ser aleatoria. Eso nos dar lugar a una nueva subdivisin dentro de los sistemas dinmicos. Esta clasificacin se realiza en funcin al tipo de variables que conforman el sistema. Segn este criterio existirn tres tipos de sistemas dinmicos: los continuos, los discretos y los hbridos, en los que las variables pueden ser tanto continuas como discretas. Entendemos por sistema continuo aquel cuyas variables varan de forma continua en el tiempo. Un sistema dinmico se considerar discreto cuando las variables que le describen varen de una forma discreta sobre el tiempo. Nunca hay fracciones, siempre se habla de unidades enteras. En general, gran parte de los sistemas asociados a fbricas son sistemas discretos. Un sistema en el que sus variables varen unas de forma discreta y otras de forma continua se considerar un sistema hbrido. Otro concepto a tener en cuenta dentro del comportamiento de los sistemas dinmicos es si se encuentra

4

en estado transitorio o estacionario. Diremos que un sistema se encuentra en un estado estacionario cuando los cambios que se produzcan en el estado del sistema en el tiempo lo hagan dentro de un intervalo relativamente fijo. Un estado transitorio es aquel en el que se producen cambios bruscos en el estado del sistema.

5

ModeloDefinicin:Anteriormente hemos mencionado que un sistema es una seccin de la realidad que es el foco primario de nuestro estudio. De cara a estudiar este sistema. Primero deberemos realizar una representacin del sistema. A esta representacin es lo que denominamos modelo. Dicho de otra manera, realizaremos una abstraccin del sistema que nos sea til de cara a estudiar su comportamiento. La simulacin de sistemas implica la construccin de modelos. El objetivo es averiguar qu pasara en el sistema si acontecieran determinadas hiptesis. Desde muy antiguo la humanidad ha intentado adivinar el futuro. Ha querido conocer qu va a pasar cuando suceda un determinado hecho histrico. La simulacin ofrece, sobre bases ciertas, esa prediccin del futuro, condicionada a supuestos previos. Para ello se construyen los modelos, normalmente una simplificacin de la realidad. Surgen de un anlisis de todas las variables intervinientes en el sistema y de las relaciones que se descubren existen entre ellas. Entrada Correspondencia Entrada

Parmetros

Sistema

Correspondencia

Modelo

Parmetros

Inferencia Salida Salida

A medida que avanza el estudio del sistema se incrementa el entendimiento que el analista tiene del modelo y ayuda a crear modelos ms cercanos a la realidad. En el modelo se estudian los hechos salientes del sistema o proyecto. Se hace una abstraccin de la realidad, representndose el sistema/proyecto en un modelo. El modelo que se construye debe tener en cuenta todos los detalles que interesan en el estudio para que realmente represente al sistema real (Modelo vlido). Por razones de simplicidad deben eliminarse aquellos detalles que no interesan y que lo complicaran innecesariamente. Se requiere pues, que el modelo sea una fiel representacin del sistema real. No obstante, el modelo no tiene porqu ser una rplica de aquel. Consiste en una descripcin del sistema, junto con un conjunto de reglas que lo gobiernan. Dado un sistema, son muchas las representaciones que se pueden hacer de l. Depende de las facetas del sistema que interesan en el estudio, de la herramienta que se utiliza en el mismo e incluso de la modalidad personal del que lo construye. En los modelos deben estar identificadas perfectamente las entidades intervinientes y sus atributos. Las mismas pueden ser permanentes (Ej.: empleados atendiendo) o transitorias (Ej.: clientes). Las acciones provocan cambios de estado, es decir, se modifican los atributos de las entidades; se producen los eventos.

6

Clasificacin de modelos: Existen mltiples tipos de modelos para representar la realidad. Algunos de ellos son: 1.- Dinmicos: utilizados para representar sistemas cuyo estado vara con el tiempo. 2.- Estticos: utilizados para representar sistemas cuyo estado es invariable a travs del tiempo. 3.- Matemticos: representan la realidad en forma abstracta de muy diversas maneras. 4.- Fsicos: son aquellos en que la realidad es representada por algo tangible, construido en escala o que por lo menos se comporta en forma anloga a esa realidad (maquetas, prototipos, modelos analgicos, etc.). 5.- Analticos: la realidad se representa por frmulas matemticas. Estudiar el sistema consiste en operar con esas frmulas matemticas (resolucin de ecuaciones). 6.- Numricos: se tiene el comportamiento numrico de las variables intervinientes. No se obtiene ninguna solucin analtica. 7.- Continuos: representan sistemas cuyos cambios de estado son graduales. Las variables intervinientes son continuas. 8.- Discretos: representan sistemas cuyos cambios de estado son de a saltos. Las variables varan en forma discontinua. 9.- Determinsticos: son modelos cuya solucin para determinadas soluciones es nica y siempre la misma. 10.- Estocsticos: representan sistemas donde los hechos suceden al azar, lo cual no es repetitivo. No se puede asegurar cules acciones ocurren en un determinado instante. Se conoce la probabilidad de ocurrencia y su distribucin probabilstica. Es interesante destacar que algunas veces los modelos y los sistemas no pertenecen al mismo tipo.

Validacin de modelos:Cualquier modelo no es vlido para representar un sistema. Deberemos utilizar un mtodo que nos permita averiguar cuan parecido es nuestro modelo a la realidad de cara a evitar lamentables errores que puedan echar a perder nuestra simulacin. Aqu es donde debemos darnos cuenta de la importancia del modelo. Cualquier valor que obtengamos ser nulo si el modelo no se comporta como el sistema. De hecho, esta es la parte ms complicada y tediosa del proceso de simulacin. Es ms, algunos sistemas extremadamente complicados son muy difciles de modelar y los cientficos pueden tardar aos en conseguir un modelo, que en muchos casos slo es vlido para un pequeo rango de valores.

7

SimulacinTras haber estudiado con detenimiento qu es un sistema y cmo se modela, llegamos a la parte que ms nos interesa: la simulacin. Esta es realmente la que usa el ordenador como herramienta principal y es la que vamos ha intentar desarrollar. Una definicin ms acadmica de la simulacin sera: "Es la tcnica de construir y poner en funcionamiento el modelo de un sistema real con la intencin de estudiar su comportamiento sin irrumpir en el entorno del sistema real" (Koskossidis y Brennan). La simulacin nicamente nos dar una lista de valores para las variables que definen el estado del sistema. El uso posterior de esos datos ya no pertenece al proceso. Una vez construido el modelo, se ensaya en l una alternativa con el fin de aplicar las conclusiones al sistema. Los resultados obtenidos no tienen valor si no son aplicables al sistema. La simulacin tiene como principal objetivo la prediccin, es decir, puede mostrar lo que suceder en un sistema real cuando se realicen determinados cambios bajo determinadas condiciones. La simulacin se emplea slo cuando no existe otra tcnica que permita encarar la resolucin de un problema. Siempre es preferible emplear una alternativa analtica antes que simular. Ello no implica que una opcin sea superior a otra, sino que los campos de accin no son los mismos. Mediante la simulacin se han podido estudiar problemas y alcanzar soluciones que de otra manera hubieran resultado inaccesibles.

Causas de fracaso de una simulacin:La simulacin puede fracasar por: ! ! Modelo invlido: no representa fielmente al sistema en estudio. Mala estrategia en la seleccin de alternativas: al aconsejar la mejor se aconseja la "menos mala" que est lejos de la mejor.

Muchos casos en los que hay concordancia entre el comportamiento del modelo y el sistema real no aseguran la validez del modelo; basta un solo caso en que el modelo no se comporta como el sistema real para afirmar que el modelo es invlido. La simulacin involucra dos facetas: 1.- Construir el modelo. 2.- Ensayar diversas alternativas con el fin de elegir y adoptar la mejor en el sistema real, procurando que sea la ptima o que por lo menos sea lo suficientemente aproximada.

8

Fases que comprende todo estudio que utiliza la simulacin. 1.- Definicin del sistema con el mximo de detalle.Se debe evitar comenzar a trabajar en la construccin del modelo con un sistema superficial, mal concebido. !Se perdern horas hombre y de computadora en tareas intiles!. Es un principio comprobado de organizacin que la incidencia de un error en un proyecto aumenta dramticamente con el instante en que se lo descubre. Es decir, cuanto ms se demora en detectarlo, mucho ms complicada es su correccin. Se debe discutir en detalle el sistema; analista y usuario reunidos durante largas horas evitarn que el sistema tenga que ser redefinido despus. En esta etapa se definen los lmites del sistema y los objetivos del estudio, chequeando que estos no cambien durante el desarrollo del mismo. Deben tenerse en cuenta las condiciones iniciales del sistema y sus condiciones de rgimen. Interesa estudiarlo ya en rgimen y no inicialmente cuando los recursos estn desocupados y favorecen el movimiento de los elementos por el sistema. El modelo debe considerar qu resultados estadsticos interesan obtenerse para evaluar correctamente al sistema en estudio.

2.- Eleccin del mtodo para realizar el estudio.- Bsqueda de la herramienta analtica de resolucin. - Adopcin de la misma en caso de encontrarla. - Utilizacin de la simulacin como ltima alternativa.

3.- Variables a incluir en el modelo.Qu variables y parmetros se incluyen? Cules se desprecian por su irrelevancia? La eleccin no es sencilla. Conviene hacer un ranking de las variables y restricciones del sistema en orden de importancia. Este ranking debe ser discutido con el usuario y con los distintos especialistas a fin de proceder a su verificacin y eventual correccin. Se debe recordar que quitar una variable superflua de un sistema es algo bastante sencillo, mientras que incluir una que se haba despreciado es de ordinario mucho ms complicado. Tomar debida cuenta de los casos especiales: !muchas veces stos obligan a tener en cuenta variables despreciables para el resto de los casos!. Esta seleccin de variables a considerar depende de la mecnica con que se maneja el sistema, de la experiencia que se tenga de l e incluso de la intuicin del grupo humano que interviene en el estudio. Se debe evitar una sobresimplificacin que invalida al modelo en cuanto se lo quiere ensayar con casos especiales, o una sobreespecificacin que hace largo y difcil el trabajo de construir el modelo. Todas las variables que intervienen en un modelo son medibles. No siempre es posible lo mismo con las que intervienen en un sistema real.

9

Muchas veces se debe hacer una estimacin de las mismas con el fin de incorporarlas en el modelo. Existen variables endgenas (internas y controladas por el sistema) y exgenas (externas al sistema y fuera de su control). Existen variables cualitativas, como la preferencia personal, y cuantitativas, como la frecuencia con que arriban los clientes a un banco. Todas deben ser estimadas en trminos cuantitativos.

4.- Recoleccin y anlisis de los datos del sistema.Definidas las variables intervinientes en el sistema es habitual que existan muchas variables estocsticas. Para esas variables se debe disponer de: ! ! ! La densidad de probabilidad o La funcin de distribucin acumulativa en forma matemtica o Una tabla de valores del comportamiento de la variable.

Se utiliza para ello todas las herramientas estadsticas clsicas, tales como, anlisis de regresin, de serie de tiempos y de varianzas. Se debe hacer un relevamiento del tiempo que se insume en las distintas tareas tratando de no obtener datos distorsionados producto de la medicin (la persona trabaja ms rpido o ms lento debido a que lo estn midiendo y le parece ms conveniente mostrarse en forma distorsionada). Si se tiene el valor medio de la medicin y no se conoce su distribucin, es preferible adoptar una distribucin exponencial que una uniforme, pues en la primera, pueden darse situaciones crticas que no se dan en la segunda. El tiempo empleado validando los datos de entrada est totalmente justificado y es absolutamente necesario para construir un modelo vlido sobre el cual se pueden sacar conclusiones aplicables al sistema real.

5.- Definicin de la estructura del modelo.Se definen: ! ! ! Las entidades permanentes y sus atributos, es decir, los recursos con que se cuenta en el sistema y cuantitativamente cmo es su comportamiento. Las entidades transitorias que circulan por el modelo tienen definida probabilsticamente su ruta por el sistema y los tiempos de utilizacin de los recursos. Los eventos que provocan los cambios de estado, modificando los atributos de las entidades.

Se debe disear el modelo de manera que los cambios en su estructura estn en cierto modo previstos.

6.- Programacin del modelo.Objetivo: obtencin del programa de computadora que representa el modelo.

10

Se debe elegir el lenguaje con que se construir el modelo. Una vez elegido, se lo utiliza para construir el modelo, que debe representar fielmente todo lo que ha sido relevado del sistema.

7.- Validacin del modelo.Aunque imposible de demostrar rigurosamente se trata de verificar al modelo con una serie de situaciones conocidas como para tener un alto grado de confiabilidad.

8.- Anlisis y crtica de los resultados.Paso previo a la entrega de resultados al usuario se debe: ! ! ! Verificar que los resultados obtenidos sean realmente suficientes para tomar una correcta decisin. Hacer una buena compactacin en la presentacin de los mismos procurando que sean perfectamente comprensibles para el usuario. Recordar que un exceso de informacin ocasiona casi los mismos inconvenientes que la falta de informacin, ya que el usuario en ambos casos no puede acceder a los resultados que necesita como apoyo a la toma de decisiones. Estudiar la factibilidad, y, en caso afirmativo, proponer una alternativa que signifique un cambio estructural del sistema y por ende del modelo, la que se considera digna de tener en cuenta antes de tomar una decisin definitiva.

!

11

Ventajas de la SimulacinEl hecho de que no siempre se puede aplicar la tcnica de la simulacin y su uso no produzca una solucin analtica, nos sugiere una pregunta: cundo es til la utilizacin de la simulacin ?. En general, nos ser til siempre que nos sea ms barato y ms fcil que la realizacin del experimento sobre el sistema real, bien sea porque el experimento exige parar el sistema, no existen herramientas analticas para desarrollar una solucin o porque alguna de la condicin a reproducir es difcil de conseguir. En general, las ventajas que presenta la simulacin son las siguientes: ! ! ! Permite, de una forma econmica representar y estudiar prcticamente cualquier sistema, dentro de categoras cientficas muy diferentes. El experimento se puede repetir tantas veces como sea necesario sin un gran coste adicional. Permite jugar con el tiempo de forma totalmente imposible para un experimento tradicional. Permite adquirir una rpida experiencia a muy bajo costo y sin riesgos. No se compromete la confiabilidad del sistema en los ensayos (las aglomeraciones, las largas demoras, son simuladas y no reales). Permite identificar en un sistema complejo aquellas reas con problema ("cuellos de botella"). Permite un estudio sistemtico de alternativas (variaciones uniformes en los parmetros intervinientes imposibles de lograr en un sistema real). Permite utilizarse en "training" para gerentes/ejecutivos. Un modelo de "juego de empresas" les permite probar sus medidas en el modelo y ver sus resultados luego de pasado el perodo simulado. Se repite el proceso durante varios perodos y cada ejecutivo observa los resultados de sus decisiones. Se analizan errores, se comparan estrategias hallando ventajas y desventajas de cada una. Ensayar estrategias de guerra, faceta donde primero se emple la simulacin. Permite explorar infinidad de alternativas para un problema sin modificar el funcionamiento del mismo, caso de una fbrica. Podramos redisear el Layout sin necesidad de pararla y, de este modo, perder ingresos. No tiene lmite en cuanto a complejidad. Cuando la introduccin de elementos estocsticos hace imposible un planteo analtico surge la modelizacin como nico medio de atacar el problema. Todo sistema, por complejo que sea, puede ser modelizado, y sobre ese modelo es posible ensayar alternativas. Puede ser aplicada para diseo de sistemas nuevos en los cuales se quieren comparar alternativas muy diversas surgidas de utilizacin de diferentes tecnologas. Puede utilizarse, durante la vida de un sistema, para probar modificaciones antes que stas se implementen.

! ! !

! !

!

!

12

Desventajas de la SimulacinPero no todo es bueno dentro de la simulacin. Si tenemos fe ciega en ella podremos encontrarnos con problemas indeseables. Por ello es importante tener en cuenta sus inconvenientes: ! No se la debe utilizar cuando existan tcnicas analticas que permitan plantear, resolver y optimizar todo el sistema o alguna parte del mismo. Existe un gran deseo de incluir todo en la simulacin donde los resultados son visibles y comprendidos por todas las personas (especialistas o no), las cuales gustan hacer ensayos. No es posible asegurar que el modelo sea vlido: se corre el riesgo de tomar medidas errneas basadas en aplicar conclusiones falsas obtenidas mediante un modelo que no representa la realidad. No existe criterio cientfico de seleccin de alternativas a simular (estrategia). Es posible omitir alguna buena sugerencia de innovacin simplemente porque a nadie se le ocurri ensayarla. Existe el riesgo de utilizar un modelo fuera de los lmites para el cual fue construido, queriendo realizar ensayos para los cuales el modelo no es vlido. Es posible elaborar todo un gran andamiaje de pruebas y resultados falsos, basados en un modelo confiable y vlido bajo otras condiciones. El desarrollo de un buen modelo de simulacin es costoso requiere de mucho tiempo.

! ! !

!

! La simulacin es imprecisa y no podemos medir con exactitud el grado de imprecisin.

13

Tcnicas, mtodos y herramientas de simulacinA continuacin se detallan algunos de los distintos conceptos, tcnicas, mtodos y herramientas que se utilizan hoy en da para realizar simulaciones.

Herramientas de simulacin.Realizado el programa que representa el sistema que se quiere estudiar, ensayar alternativas no es otra cosa que dar los datos a la mquina para que esta imprima los resultados. 1. Programas de uso general.

Programacin tradicional: C, Pascal, Fortran, Basic, Cobol, etc. Desventajas de la programacin tradicional: ! ! Realizar un programa completo para cada simulacin. No es fcil describir el sistema mediante un lenguaje tradicional.

2.

Programas especficos.

En contraste a lo que sucede con la programacin tradicional, el uso de un lenguaje orientado a la simulacin (preparado para construir modelos donde se pueda simular) reduce el esfuerzo realizado a la dcima parte.

Un lenguaje orientado a la simulacin debe manejar:

1. 2. 3.

Fcilmente al modelo, permitiendo el ensayo de alternativas. El tiempo "simulado" (meses, das, horas, segundos, milisegundos). Eventos, es decir, acciones que provocan los cambios de estado: Los cambios de estado se materializan por dos eventos: el de comienzo y el de finalizacin. La accin est definida por: instante de comienzo y duracin. El lenguaje se encarga de hacer finalizar la accin.

4. 5. 6. 7. 8.

Variables random fcilmente definibles, generadas en forma automtica por el lenguaje. Acumulacin/clculo/impresin de estadsticas de las entidades intervinientes en el sistema. El estado del sistema en cualquier instante (imprimindolo en caso necesario). La extensin del perodo de simulacin. Simultaneidad y administracin de recursos.

14

Sistemas de simulacin discretos.La siguiente informacin trata de cubrir el uso que se le da a la simulacin digital para representar sistemas complejos del mundo real. Para poder comprender la aplicacin de dichos modelos, es necesario comprender los siguientes conceptos.

1.

Estadsticas y Probabilidad para Simulacin

Para poder utilizar las herramientas que nos brindan la Estadstica y la Probabilidad, es necesario estar al tanto de los distintos conceptos en los cuales stas ciencias se basan. Entre los ms importantes encontramos: ! ! ! ! ! ! ! Intervalo de confianza Varianza y Desviacin Estndar Distribucin Normal Teorema del Lmite Central Inferencia estadstica Modelo de los mnimos cuadrados ANOVA o Anlisis de la Varianza.

2.

Simulacin de salida de datos y Procesos Estocsticos

3.

Sistemas dinmicos

Es el estudio riguroso de problemas en el comportamiento de sistemas usando los principios de feedback, dinmica y simulacin. Estn caracterizados por: bsqueda de soluciones tiles a problemas reales, especialmente en sistemas sociales (empresas, escuelas, gobiernos,...) y el entorno. Buscan la manera de trasladar resultados cientficos a mejoras que puedan ser implementadas en el mundo real.

4.

Simulacin social

La simulacin es un mtodo importante para modelar procesos econmicos y sociales. Los mtodos de simulacin por computadora pueden ser efectivos para el desarrollo de teoras tales como la prediccin. En la simulacin social, un "mundo" es especificado con detalle computacional, para luego ser simulado y revisar algunas de las implicaciones no triviales del mundo real.

5.

Simulacin basada en la Web

La simulacin basada en la Web est emergiendo rpidamente en el rea de la simulacin. Este inters es consecuencia natural de la proliferacin de la World-Wide Web y sus tecnologas (HTML, HTTP, CGI, etc). La aparicin de lenguajes como Java, y tecnologas de objetos distribuidos como CORBA y OLE/COM, han tenido efectos considerables en la prctica de la simulacin. Actualmente, el inters est en tratar temas como metodologas para el desarrollo de modelos basados en la Web, desarrollo de modelos colaborativos sobre Internet, simulacin y modelacin en Java, y nuevas aplicaciones.

15

6.

Simulacin paralela y distribuida

Utilizan estrategias ms eficientes para acelerar el proceso de simulacin. Los temas que actualmente cubre son: sincronizacin, scheduling, administracin de memoria, algoritmos reactivos/adaptativos y randomizados, particionamiento y balanceo de carga.

7.

Otras tcnicas disponibles! ! ! ! ! ! ! ! La ruta ms corta en una red. Simulacin manual. Distribucin de la entrada: Distribucin Chi-cuadrado, tabular y grfica. SIMSCRIPT. Anlisis de salida: Anlisis sensitivo y de estabilidad. Tcnicas de reduccin de la varianza: Generacin de variables random Tcnica de Integracin de Monte-Carlo. Tcnica de reduccin.

16

CAPITULO 2

EL LENGUAJE DE SIMULACION

17

PARTE I

EL LENGUAJE

18

DeclaracionesUn programa VisualSIS est compuesto de una secuencia de declaraciones. Estas declaraciones son las unidades bsicas de accin. Las declaraciones estn compuestas de partes llamadas campos. Un campo es un nmero variable de caracteres. En general, las declaraciones son del tipo: Etiqueta (opcional) | Verbo (requerido) | Operandos (dependen del verbo) | Comentario (opcional).

Las Declaraciones VisualSIS estn divididas en "Declaraciones de Control" y "Declaraciones de Bloques". Las declaraciones de bloques resultan en la creacin de un bloque VisualSIS, mientras que las de Control usualmente definen entidades de VisualSIS o, en alguna forma, afectan el estado general del modelo actual.

EtiquetasEl campo etiqueta permite nombrar y referenciar a entidades con nombres de nuestra eleccin. Se puede asignar un valor propio a un nombre con la sentencia Equ. Esto es til cuando se quiere experimentar con varios valores de una misma variable. Ahora bien, VisualSIS usa su propio nmero interno unico para las entidades nombre y parmetros de transacciones. Si se elige asignar un nmero propio a una entidad nombre, se deberia asignar el valor en una sentencia EQU antes de referenciar a la entidad por su nombre. Cuando VisualSIS encuentra un nuevo nombre, ste asigna un nico entero al nombre. Estos enteros son distintos y contiguos. Las etiquetas de bloques son llamadas direcciones y son tratadas diferente. Los valores de estos nombres son renumerados antes de comenzar cada simulacin donde estos empiezan en 1 y son contiguos. Se puede usar el mismo nombre para referirse a diferentes tipos de entidades. Por ejemplo, se puede tener una entidad STORAGE y una entidad TABLE ambas llamadas SALAESPERA. No se debe usar un nmero como un nombre en un campo etiqueta. Esto viola las convenciones de nombres. Si se quiere explcitamente controlar el nmero de una entidad, se puede asignar un valor a un nombre usando una sentencia EQU.

Verbos VerbosLos verbos permiten ingresar el nombre de la accin de la sentencia. Este debe ser un nombre de bloque de VisualSIS o uno de los verbos de una sentencia de control.

OperandosLos verbos pueden estar seguidos de uno o ms operadores. Estos campos dependen de el verbo. Algunos son requeridos y algunos son opcionales. Los operandos son separados por comas.

19

ExpresionesLas sentencias BVARIABLE, FVARIABLE, y VARIABLE tienen un campo de expresin requerido. En efecto, se puede usar una expresin en algn campo de operando siguiendo un SNA de clase BV o V. Para hacer esto se debe simplemente definir una entidad variable y usar su asociacin SNA en el campo operando deseado. Cuando una expresin es usada para definir un SNA, este resultado es siempre truncado a un entero. Las expresiones son combinaciones de operadores matemticos, funciones de librera, SNAs, y constantes que obedecen las reglas elementales de lgebra. Una expresin es evaluada segn la jerarqua de operadores listada abajo, y otros de izquierda a derecha. El orden de evaluacin puede ser controlada insertando un par de parntesis. Las expresiones son evaluadas usando un formato de doble precisin de punto flotante. El resultado es truncado y cargado como un entero. La evaluacin de las expresiones es afectada por el comando que es usado en. ! VARIABLE crea una variable aritmtica VisualSIS que cuando es evaluada por una llamada de un SNA, realiza todas las operaciones un nmeros de punto flotante de doble precisin, luego trunca todos los resultados intermedios antes de proceder con la siguiente operacin. Finalmente el resultado es truncado a un entero. FVARIABLE crea una variable de "punto flotante" que, cuando es evaluada por una llamada por un SNA, realiza todas las operaciones con nmeros de punto flotante de doble precisin, truncando slo el resultado final de la operacin. Los valores fraccionales pueden ser considerados con un apropiado cambio de unidad, as como "milsimos". Entonces un valor SNA de 500 es interpretada como el nmero . BVARIABLE crea variables booleanas que cuando es evaluada por una llamada de un SNA, realiza todas las operaciones en nmeros de punto flotante de doble precisin, luego retorna 1 si el resultado es distinto de cero, 0 en otro caso.

!

!

Se debe notar que la tecla [#] es usada para la multiplicacin. El asterisco es reservado para direccionamiento indirecto. Los operadores lgicos tales como LE para menor o igual que deben ser encerrados entre comillas simples o apostrofes sin espacios entre los operadores del operando. El resultado de un operador lgico es 0 1.Tambien, las funciones aritmticas, tales como SIN(), requieren que sus argumentos se encierren entre parntesis sin espacios en ellos. Existen muchas funciones matemticas disponibles para ser usadas en expresiones. Se pueden utilizar casi cualquier valor como un argumento. Los operadores y libreras de funciones permitidas en expresiones son dadas en prioridad decreciente de evaluacin: ! ! ! ! ! ! ! ! ! NOT produce un 1 (TRUE) si el operando es 0, 0 (FALSE) si el operando es distinto de cero. ABS() valor absoluto. ATN() arcotangente en radianes. COS() coseno, argumento en radianes. INT() trunca a un entero. EXP() nmero "e" de x, el argumento es usado como exponente de "e". LOG() logaritmo natural. SIN() seno, argumento en radianes. SQR() raz cuadrada.

20

! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !

TAN() tangente, argumento en radianes. [-]negacin. AND produce un 1 (TRUE) si el producto aritmtico es distinto de cero, 0 (FALSE) en otro caso. OR produce un 1 (TRUE) si cada operando es distinto de cero, 0 (FALSE) en otro caso. G mayor que, produce un 1 (TRUE) un 0 (FALSE). L menor que, produce un 1 (TRUE) un 0 (FALSE). E igual que, produce un 1 (TRUE) un 0 (FALSE). NE distinto que, produce un 1 (TRUE) un 0 (FALSE). LE menor o igual que, produce un 1 (TRUE) un 0 (FALSE). GE mayor o igual que, produce un 1 (TRUE) un 0 (FALSE). [^] exponenciacin. [#] multiplicacin. [/] divisin. [\] divisin entera, produce un cociente entero. [@] modulo de la divisin, produce un resto entero. [+] suma y [-] resta.

El uso de funciones matemticas en expresiones y la habilidad para mezclar SNAs dentro de una compleja expresin, es sumamente poderoso. Se puede definir variables de todo tipo para una expresin. Este mtodo puede ser usado para generar precisiones sobre cualquier distribucin de probabilidad terica que se desee. Sin embargo, es todava ms eficiente pero menos exacto en el uso de funciones. Las expresiones deben estar bien formadas de acuerdo con las leyes del lgebra elemental. Estn pueden contener los siguientes elementos: ! ! ! Enteros Fracciones decimales SNAs

Estos elementos pueden ser combinaciones de funciones de libreras matemticas, operadores aritmticos, y operadores lgicos, para construir una expresin a ser evaluada. El orden de evaluacin de una expresin puede ser controlada usando parntesis en torno a los trminos a ser combinados. Si no se usan parntesis para forzar el orden de evaluacin , la evaluacin procede de acuerdo a la prioridad del operador. Las expresiones son restringidas a menos de 80 caracteres. Si se necesita evaluar una expresin mas compleja, se tiene que definir mas de una entidad variable para que estas sean evaluadas. Se puede usar mltiples variables para evaluar expresiones mas complejas. Sin embargo, la recursin en la evaluacin de variables no est permitido y causar un error de stop.

21

Atributos numricos del sistema SNAsLos Atributos Numricos del Sistema, o SNA's, son "variables de estado" simuladas disponibles para usar en declaraciones. Son objetos propios del sistema, casilleros que almacenan valores comunes a todas las transacciones. Los SNA's pueden ser accedidos desde el entorno o dentro de la simulacin cuando una transaccin activa intenta entrar a un bloque. Todas las SNA's retornan un valor numrico entero como resultado. Los valores fraccionales son truncados. Algunos SNA's son mantenidos automticamente, y otros requieren un clculo cuando son llamados. Por ejemplo, la cantidad acumulada de entradas a un bloque est disponible como un SNA. Hay alrededor de 45 clases de SNA, cada una de las cuales contribuyen al poder de las simulaciones. Muchos SNA's, tales como PR (prioridad), son evaluados sobre la misma transaccin activa. Tales SNA's no pueden ser evaluados a menos que estn en una transaccin activa. Por ejemplo, se debe ingresar el comando START antes de poder observar estos SNA's. Otros SNA's, tales como el reloj del sistema C1, puden ser evaluados sin referirse a una transaccin. Entre los SNA's ms importantes se encuentran los relacionados con Facilitys (recursos de uso exclusivo de las transacciones que se mueven por el sistema), Storages (recursos de mayor capacidad), Colas (se forman automticamente), Cadenas (son como colas pero las forma el programador), Grupos numricos y Grupos de transacciones. Estos SNA's nos brindan informacin acerca de si funcionan o no los recursos, la ocupacin actual, ocupacin remanente, cantidad promedio, porcentaje de uso, cantidad de transacciones que usaron el recurso, cantidad que hubo como mximo, tiempo promedio de uso del recurso, cantidad de ceros (entradas sin tener que esperar en cola), etctera.

22

Especificaciones de una Entidad SNAMuchos SNAs pueden ser especificados en ms de una forma. Por ejemplo el SNA W22 retorna el nmero de transacciones esperando en el bloque nmero 22. El bloque identificado en este caso es el nmero 22, pero hay otras posibilidades. Este SNA pudo haber sido especificado usando alguna de las siguientes especificaciones: ! ! ! ! ! Wj- donde j es un entero positivo, el nmero de bloque en la simulacin. WSname- donde name es la posicin del bloque deseado. W*j- donde j es un entero positivo, el nmero del parmetro de la transaccin activa que contiene el nmero del bloque deseado. Esto es direccionaminto indirecto. W*name- donde name es el nombre del parmetro de la transaccin activa que contiene el nmero del bloque deseado. Esto es direccionamiento indirecto. W*parmetro- denota que tanto W*j, W*name, o W*Sname pueden ser usados.

Algunas clases de SNA, tales como AC1, C1, M1, MP, PR, y TG1, son SNAs "atmicos". Los SNAs atmicos son completos y no comprenden una entidad especifica.

SNAs DisponiblesLos siguientes SNAs estn disponibles para su uso en los campos de operandos y expresiones de sentencias. En todos los casos entnum debe ser reemplazado por alguna entidad especifica. La entidad especificada deber ser un nombre (precedido por un separador [$]) o nmero, o si es por direccionamiento indirecto, sta deber ser un asterisco, [*] , seguido por un nmero o nombre. La lista completa de SNAs disponibles en VisualSIS son: ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! AC1- Valor absoluto del reloj del sistema. Tiempo simulado desde el ultimo CLEAR. Bventnum C1- Valor relativo del sistema de reloj. Tiempo simulado desde el ultimo RESET. CAentnum- Promedio del contenido de la cadena de usuario. El tiempo promedio de la cantidad de transacciones encadenadas en la cadena de usuario entnum. CCentnum- Total de entradas en la cadena de usuario. El contador de todas las transacciones encadenadas por la cadena de usuario entnum. CHentnum- Contenido corriente de la cadena de usuario. El nmero actual de transacciones encadenadas por la cadena de usuario entnum. CMentnum - Mximo contenido de la cadena de usuario. El nmero mximo de transacciones encadenadas por la cadena de usuario entnum. CTentnum Promedio del tiempo de residencia en la cadena de usuario. La duracin promedio de transacciones en la cadena de usuario entnum. Fentnum Facility ocupada. Si la facility entnum esta actualmente ocupada, Fentnum retorna 1, sino retorna 0. FCentnum Cantidad de facilitys capturadas. El nmero de veces que la facility entnum a sido SEIZEd o PREEMPTed por una transaccin. FIentnum Facility entnum interrumpida. Si la facility entnum esta actualmente intrerrumpida, FIentnum retorna 1, sino retorna 0. FNentnum Funcin. Resultado de evaluacin de la funcin entnum. FRentnum Utilizacin de facility. La fraccin de tiempo que facility entnum ha sido ocupada. FRentnum es expresada en partes por mil por eso retorna un entero de 0-1000. FTentnum Tiempo promedio de retencin de la facility. El tiempo promedio de la facility entnum es apropiada por una transaccin. FVentnum Facility en estado disponible. FVentnum retorna 1 si la facility entnum esta en estado disponible, sino retorna 0.

23

! ! ! ! ! ! ! ! !

GNentnum Cuenta un grupo numrico. GNentnum retorna la cantidad de miembros de el grupo numrico entnum. GTentnum Cuenta grupo de transacciones. GTentnum retorna la cantidad de miembros del grupo de transacciones entnum. LSentnum Setea una llave lgica. LSentnum retorna 1 si la llave lgica esta en estado "set", sino retorna 0. MBentnum Empareja en bloque. MBentnum retorna 1 si hay una transaccin en el bloque entnum la cual esta en el mismo grupo (assembly set) que la transaccin activa, en otro caso retorna 0. MPentnum Tiempo de transito, parmetro. MXentnum (m,n) Matrix savevalue. El valor en la fila m, columna n de la matriz entnum es retornado. M1- Tiempo de trnsito. Nentnum Cuenta entradas a un bloque. El nmero total de transacciones que han ingresado en el bloque entnum es retornado. Pparameter o *parameter Valor del parmetro. Pparameter o *parameter retorna el valor del parmetro parameter de la transaccin activa.

El direccionamiento indirecto usa la notacin SNA*parmetro.! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! PR Prioridad de la transaccin. El valor de la prioridad de la transaccin activa . Qentnum Contenido actual de una cola (QUEUE). El actual valor de la queue entnum. QAentnum Contenido promedio de la queue. La cantidad de tiempo promedio en la queue entnum. QCentnum Total de entradas en la queue. La suma de todas las entradas en la queue entnum. QMentnum - Contenido mximo de una queue. La mxima cantidad en la queue entnum. QTentnum Tiempo de residencia promedio en la queue. QXentnum Tiempo promedio de residencia en queue excluyendo la entrada cero. QZentnum Cantidad de entradas cero en queue. El nmero de entradas en la queue entnum con tiempo de residencia cero. Rentnum Capacidad de storage disponible. La capacidad disponible en el storage para ser usado por transacciones. RNentnum Nmero aleatorio (Random). RNentnum retorna un entero aleatorio entre 0-999 desde el generador de nmeros aleatorios entnum. Sentnum Storage en uso. Sentnum retorna la cantidad de contenido del storage actualmente en uso por transacciones al storage entnum. SAentnum Uso promedio de storage. SCentnum Cuenta el uso de storage. Nmero total de unidades en el storage que han sido adquiridos desde el storage entnum. SEentnum Storage vaco. SEentnum retorna 1 si el storage entnum esta completamente disponible, en otro caso retorna 0. SFentnum Storage completo. SFentnum retorna 1 si el storage entnum esta completamente usado, en otro caso 0. SRentnum Utilizacin de storage. SRentnum esta expresado en partes por mil y por lo tanto retorna un entero 0-1000. SMentnum Mximo uso en storage. STentnum Tiempo retenido por una unidad un storage. SVentnum Storage en estado disponible. SVentnum retorna 1 si el storage entnum est en el estado disponible, en otro caso retorna 0. TBentnum Promedio de entradas en la tabla entnum. TCentnum Cantidad de entradas en la tabla entnum. TDentnum desviacin estandar de entradas en la tabla entnum. TG1 Cuenta de terminacin restante. TG1 retorna la cuenta que es decrementada por el bloque TERMINATE con un operando positivo A. Este valor es inicializado por la sentencia START e indica la conclusin de la simulacin cuando esta es 0. Ventnum Resultado de la evaluacin aritmtica de una entidad variable de punto flotante entnum. Wentnum Cuenta de bloque actual. El nmero actual de transacciones en el bloque entnum.

24

!

Xentnum Nmero de transaccin activa. El nmero de transaccin de la transaccin activa es retornado.

25

Direccionamiento indirectoTodas las entidades tienen un nmero positivo de entidad. Cuando uno se refiere a una entidad por el nombre, el valor del nombre es igualado con el nmero de entidad de la entidad. El direccionamiento indirecto significa que el nmero de entidad est en un parmetro de transaccin. Para usar direccionamiento indirecto, se debe poner un asterisco [*], en el operando. Por ejemplo, el SNA Q*2 usa el valor del parmetro 2 como el nmero de entidad queue. Este SNA retorna el contenido actual de esa entidad queue. Se debe mover un nmero de entidad (o nombre valor) dentro de un parmetro de una transaccin antes de que es SNA sea evaluado. El direccionamiento indirecto usa la notacin SNA*parmetro. Otro ejemplo, para hacer un SEIZE a la facility cuyo nmero es el valor da la funcin cuyo nmero esta en el parmetro llamado TALLERSELECTOR, se debe tipear: SEIZE FN*TALLERSELECTOR

26

PARTE II

ENTIDADES

27

Entidades VisualSISVisualSIS est construido por varias abstracciones elementales llamadas entidades. Para que se pueda crear modelos de simulacin complejos, se debe adquirir un entendimiento de estas entidades y de las reglas por las cuales ellas pueden ser manipuladas. Las entidades VisualSIS son objetos abstractos que existen en una simulacin. Si se quiere una nocin mas concreta, se puede pensar en una entidad como un conjunto de nmeros en la memoria de la computadora. La coleccin de todas las entidades es llamado el modelo corriente. Los tipos ms prominentes de entidades son las transacciones y los bloques, la simulacin, por una larga extensin, consiste de muchas transacciones moviendose desde un bloque hacia el siguiente. En todas, hay una docena o mas tipos de entidades, y una simulacin puede contener muchas instancias de algn tipo de entidad. Las entidades estn numeradas. Cuando se usa un nombre para referirse a una entidad, el valor entero asociado con el nombre es usado para encontrar la entidad. Ahora bien, normalmente no se asigna estos valores enteros a nombres, aunque la sentencia EQU permite hacer esto. Muchas entidades son creadas automticamente cuando se necesitan. Por ejemplo, una referencia a una facility usando el nombre BARBERO deber causar la creacin de una facility si esta no existe antes. Algunas entidades deben ser especficamente declaradas antes que ase puedan usar. Generalmente estas tienen atributos y el tamao que se da a conocer a VisualSIS. El nombre en el campo Etiqueta es usado para referirse a la entidad. Las siguientes entidades deben ser declaradas antes de ser usadas: ! ! ! ! ! ! ! ! ! Storage se deben declarar con la sentencia STORAGE. Variables aritmticas deben ser declaradas con la sentencia VARIABLE. Variables de punto flotante deben ser declaradas con la sentencia FVARIABLE. Variables booleanas deben ser declaradas con la sentencia BVARIABLE. Las Matrices deben ser declaradas con la sentencia MATRIX. Las Tablas deben ser declaradas en la sentencia TABLE. Las Qtable deben ser declaradas con la sentencia QTABLE. Las funciones deben ser declaradas con la sentencia FUNCTION. Los parmetros de las transacciones deben ser declarados con los bloques ASSIGN, MARK o TRANSFER.

Algunas tipos de entidades producen una o ms relaciones especiales a transacciones. Las entidades storage y facility pueden ser parcialmente o totalmente propietarios de transacciones. Otras transacciones pueden entonces estar en reposo en el modelo mientras que espera por un propietario. Para asegurarse que el propietario es eventualmente liberado por el propietario original, se debe ingresar a un bloque RETURN o RELEASE. Algunos bloques tales como PREEMPT y FUNAVAIL tienen la opcin de desviar el camino de la transaccin propietaria.

28

Entidad TransaccinLas transacciones se mueven desde un bloque hacia otro bloque en una simulacin de manera que representan el sistema del mundo real que se esta modelando. Una vez que la transaccin comienza a moverse en el modelo, sta continua hasta que ingresa en un bloque en que se bloquea. La transaccin que esta intentando moverse a travs del modelo en algn instante es llamada la transaccin activa. Si una transaccin fracasa al encontrar condiciones favorables cuando intenta ingresar en un bloque, es puesta en reposo. Entonces otra transaccin es elegida para comenzar a moverse a travs del modelo. Las transacciones estn numeradas secuencialmente durante una sesin comenzando con 1. Una sentencia CLEAR empieza la numeracin de transacciones en 1 nuevamente. La conducta de una transaccin es determinada por varios atributos o estado de variables. Los atributos importantes de una transaccin son: !

Parmetros Los parmetros de las transacciones son un conjunto de enteros asociados con una transaccin. Cada transaccin puede tener cualquier nmero de parmetros. Cada parmetro tiene un nmero propio por el cual es referenciado y un valor. Estos dos valores son enteros con valor y precisin ilimitado. El valor de algn parmetro de la transaccin activa puede ser retornado por el SNA Pparmetro donde parmetro es el nombre o nmero del parmetro. Si un operando de bloque especifica un nombre o nmero de parmetro P$parmetro o Pparmetro no deberia ser usado, solamente se debe usar el nombre o nmero de parmetro. Los parmetros son usados en VisualSIS con direccionamiento indirecto. Cuando el nmero la entidad deseada es guardado en un valor de parmetro de la transaccin activa, el nombre o nmero de la entidad especificada deseada puede ser reemplazado con una referencia indirecta por el parmetro de la transaccin. Los bloques ASSIGN, MARK, y TRANSFER crean un parmetro de transaccin si ste no existe. Prioridad La prioridad de una transaccin determina la preferencia recibida cuando sta y otra transaccin estn esperando por el mismo recurso. La prioridad ms importante es la de QUEUE (cola) en el modelo son la Cadena de Eventos Corrientes , la cadena de espera por facility, y la cadena de espera por storage. La Cadena de Eventos Futuros no es una cadena de prioridad. El efecto de la prioridad es que una transaccin deber ser elegida segn se aumenta o disminuye la prioridad de la transaccin cuando una nueva transaccin activa, o una facility o storage es elegida. Las transacciones sin una prioridad son usualmente programadas primero en llegar primero en servir. Marca (MARK) de tiempo El tiempo absoluto de reloj que la transaccin desde la primera vez que entra a la simulacin, o ingresa a un bloque MARK sin operando A. Assembly set El conjunto al que pertenecen las transacciones que son descendientes de la misma transaccin padre. EL bloque SPLIT puede ser usado para crear transacciones descendientes. Indicador de Delay (retraso) Setea la negativa para entrar a un bloque, se resetea entrando a un bloque TRANSFER SIM. Bloque actual El nmero de bloque actual en el que est la transaccin. Bloque siguiente El nmero del bloque donde la transaccin deber intentar ingresar seguidamente.

!

! ! ! ! !

29

!

Cadenas El estado de una transaccin est determinado segn la cadena en que reside. Una transaccin esta exactamente en uno de estos varios estados: " ACTIVE La transaccin es la de mayor prioridad en la Cadena de Eventos Corrientes.

" SUSPENDIDA La transaccin esta esperando en la Cadena de Eventos Futuros o en la Cadena de Eventos Corrientes para llegar a ser la transaccin activa. " PASIVA La transaccin ha llegado a reposar en el modelo corriente en un cadena de usuario, cadena de retraso (delay), o cadena pendiente. " TERMINADA La transaccin ha sido destruida y no existe en el modelo corriente. Ademas, hay otro estado que no se excluye mutuamente con los otros: " APROPIADA La transaccin ha sido apropiada por una facility y est en una o ms cadenas de interrupcin.

SNAs RelacionadosLos SNAs relacionados con las transacciones son: MBentnum, MPentnum, M1, Pparameter, PR, XN1.

30

Entidad BloqueLa entidad bloque es el elemento bsico estructural del modelo corriente. Es til pensar en un modelo como un diagrama de bloques. Cada transaccin en el modelo est contenida exactamente en un bloque, pero muchos bloques pueden contener muchas transacciones. La secuencia de bloques encontrada por varias transacciones determina la naturaleza y mucho del resultado de alguna simulacin. Cada transaccin entra en un bloque luego al siguiente, hasta que es terminada (TERMINATE) o la simulacin finaliza. Ocasionalmente las transacciones deben esperar en un bloque hasta que las condiciones sean favorables para entrar al siguiente bloque. Cada tipo de bloque esta asociado con una accin que transforma otra entidad en la simulacin. En general un bloque primero determina si la transaccin activa puede entrar. Si es as, varios bloques, transacciones, y un sistema de estadstica amplio son actualizados. Entonces el bloque realiza una accin especifica y la transaccin elige al bloque siguiente. Usualmente el "bloque secuencial siguiente" (NSB) es programado. Se insertan bloques dentro del modelo corriente conforme a su ubicacin en el texto. Referencias a otros bloques en el modelo corriente son generalmente hechas usando un nombre simblico de direccin. Los bloques, tales como otras entidades, estn numerados. Pero diferente a otras entidades ellos estn numerados comenzando por 1, cada vez que la simulacin es activada. Esto significa que el valor numrico asociado con una direccin de bloque puede cambiar de una simulacin a la siguiente. Por esta razn es prudente usar solamente nombres en vez nmeros de entidad cuando se referencia a un bloque.

SNAs RelacionadosLos SNAs relacionados con los bloques son: Nentnum y Wentnum.

31

Entidad FacilityUna facility es una entidad que tiene varios atributos. Una facility puede estar ocupada por una simple transaccin. Esta puede estar libre, en tal caso esta ociosa. Diferente a una entidad Storage, una facility no puede ser liberada por una transaccin que nunca la posey. La transaccin adquiere la pertenencia de una facility con xito ingresando a los bloques SEIZE o PREEMPT. Un bloque PREEMPT tiene el poder para destituir al propietario existente de la facility. Una facility tiene varias lineas de espera por transacciones que estn esperando por algn evento a ocurrir. Cada facility tiene una cadena de retraso (delay) de transacciones esperando, una cadena de pendientes de apropiaciones en modo interrupcin, y una cadena de interrupcin de transacciones previamente apropiadas. Las transacciones esperando en una cadena de retraso (delay), una cadena de pendientes, o una cadena de interrumpidas estn "en contienda" por la facility. Cada transaccin que apropia una facility debe eventualmente librar la pertenencia ingresando a un bloque RELEASE o RETURN. Puesto que una transaccin competidora deber generalmente volverse la propietaria de la facility, la disputa por una facility lleva la obligacin de eventualmente liberar la facility. Las transacciones que fracasan en el intento de entrar a un bloque SEIZE descansarn en orden de prioridad en la cadena de demora de la facility. Cuando una facility es liberada por una transaccin , la siguiente propietaria es elegida desde las ocupantes de las cadenas de la facility. Las pendientes de apropiaciones (PREEMPTED) en modo interrupcin son elegidas primero, seguidas por las transacciones previamente apropiadas, seguidas por las transacciones demoradas en orden de prioridad.

Estados de la EntidadUna facility que est apropiada por una transaccin est en el estado "ocupada". Si una facility no es apropiada por una transaccin, est en el estado "inactiva". Una facility puede estar disponible o no disponible. Cuando est disponible, las transacciones adquieren y obtienen la pertenencia de la facility normalmente. Cuando la facility est no disponible, la pertenencia no es dada hasta transacciones arribando nuevamente. Los bloques FAVAIL son usados para colocar una facility en el estado disponible, y los bloques FUNAVAIL son usados para colocarlas en el estado no disponible.

Bloques RelacionadosHay varios bloques que pueden ser usados con facilitys: ! ! ! ! ! ! SEIZE intenta tener posesin de una facility. RELEASE abandona la posesin de una facility. PREEMPT intenta tener la posesin de una facility, posiblemente destituyendo al propietario existente. RETURN abandona la posesin de una facility. FAVAIL coloca una facility en el estado disponible. FUNAVAIL coloca a una facility en el estado no disponible.

SNAs RelacionadosLos SNAs asociados con las facilitys son: Fentnum, FCentnum, FIentnum, FRentnum, FTentnum y FVentnum.

32

Entidad FuncinLas entidades funcin son usadas para retornar un valor derivado de algn argumento, semejantes a un nmero aleatorio. Algn SNA puede ser usado como argumento. Una funcin es definida por una sentencia de control FUNCTION, seguida por una o ms sentencias definitorias de funcin. El operando A de la sentencia FUNCTION especifica el argumento, y el operando B especifica el tipo de funcin y el nmero de pares de datos a aparecer en la sentencias seguidas de funcin. Son los nmeros, nombres, y/o SNAs en las sentencias seguidas de funcin que completan la definicin de la entidad funcin. Existen 5 diferentes tipos de entidad funcin: ! ! ! ! ! Tipo C Funcin estimada "Continua". Tras una interpolacin lineal, la funcin trunca el resultado y retorna un entero. Un argumento aleatorio es un caso especial. Tipo D Funcin estimada "Discreta". Cada masa de probabilidad o valor de argumento es asignado a un valor entero. Un argumento aleatorio es un caso especial. Tipo E Discreta, Funcin "estimar atributo". Cada masa de probabilidad o valor de argumento es asignado a un SNA para ser evaluado. Un argumento aleatorio es un caso especial. Tipo L Funcin estimada Listar o enumerar. El valor del argumento es usado para determina la posicin en la lista del valor a ser retornado. Tipo M - Funcin estimada Listar o enumerar. El valor del argumento es usado para determina la posicin en la lista del SNA. Este SNA es evaluado y retornado como el resultado de la funcin.

Las funciones son a menudo usadas como una eficiente manera de aproximarse a una distribucin probabilistica. Una funcin usada en el operando B de un bloque ADVANCE o GENERATE es llamada "funcin modificadora". La interpolacin lineal cuando es evaluada una entidad funcin aleatoria involucra un entero aleatorio entre 0-999999 tomado desde el generador de nmeros aleatorios especificado. Este entero aleatorio es multiplicado por el factor interpolar, truncado a un entero, y adicionado a la base de el intervalo.

SNAs RelacionadosEl SNA asociados con las funciones es: FNentnum.

33

Entidad Llave lgica - LogicswitchUna entidad llave lgica (logicswitch) es una simple entidad con solamente dos estados: "set" o "reset". Existen bloques que alteran una llave lgica y SNAs que retornan el estado de stas.

Bloques Relacionados! El bloque LOGIC setea, resetea, o invierte el estado de una llave lgica.

SNAs RelacionadosEl SNA asociado con una llave lgica es: LSentnum.

34

Entidad MatrizLa entidad matriz es un arreglo de enteros. No hay limite para la magnitud de precisin de los elementos de una entidad matriz. Una entidad matriz es definida con una sentencia MATRIX.

Bloques Relacionados! MSAVEVALUE modifica o asigna un valor a un elemento de una matriz.

Sentencias de Control RelacionadosLa sentencia INITIAL asigna un valor a un elemento de una matriz, sin la necesidad de una transaccin activa.

SNAs RelacionadosEl SNA asociado con una matriz es: MXentnum.

35

Entidad Cola - QueueUna entidad cola no debe ser confundida con un bloque QUEUE, los cuales son instancias de una entidad bloque. Las entidades cola son usadas principalmente para la recoleccin de estadsticas, tales como una acumulacin del contador actual, total de entradas, total de entradas encontradas con contador actual en cero, el conteo mximo, y el contador de tiempo. Los bloques QUEUE y DEPART son usados para actualizar las estadsticas relacionadas con una entidad cola. El procedimiento usual es hacer un "sandwich" entre los bloques SEIZE, PREEMPT, o ENTER entre medio de los bloques QUEUE y DEPART.

Estados en la EntidadEl ms importante atributo de una entidad cola es su contenido. El contenido de una cola es cambiado cuando un bloque QUEUE y DEPART son ingresados. Varias estadsticas relacionadas con el contenido son mantenidas automticamente. Estas son accedidas por medio de los SNAs descritos.

Bloques RelacionadosExisten varios bloques que pueden ser usados con la entidad cola: ! ! QUEUE incrementa el contenido de la entidad cola. DEPART reduce el contenido de la entidad cola.

SNAs RelacionadosLos SNAs asociados con las colas son: Qentnum, QAentnum, QCentnum, QMentnum, QTentnum, QXentnum, QZentnum.

36

Entidad StorageUna entidad storage puede ser usada como un transacciones en el modelo. "estanque de smbolos" para controlar el flujo de

Cuando una transaccin ingresa a un storage, esta ocupa una o ms unidades de storage de la entidad. Una transaccin es negada a ingresar dentro de un bloque ENTER si su demanda de unidades de storage no puede ser cumplida. Tales transacciones descansan en una cadena de demora de la entidad storage. Despus esta debe esperar hasta que otra transaccin libere unidades de storage suficientes cuando ingresa en un bloque LEAVE. Cuando una transaccin ingresa en un bloque LEAVE y libera una o ms unidades de storage, otras transacciones verifican si su demanda de storage puede ser satisfecha. Una disciplina primera en encajar con salto es usada para programar las transacciones que estn esperando. Esto significa que cada transaccin en la cadena de demora es testeada para encajar en la entidad storage, comenzando con la de mayor prioridad. Si una encaja, la transaccin es removida desde la cadena de demora, permitiendole ingresar al bloque ENTER, y colocarse en la CEC detrs de su compaero en prioridad. Luego la siguiente transaccin en una cadena de demora de storage es testeada. Los bloques ENTER y LEAVE son usados para agregar estadstica asociada con la entidad storage y varios SNAs estn disponibles. Una entidad storage debe ser definida por una sentencia STORAGE.

Estados de la EntidadUna entidad storage est vaca cuando todas sus unidades estn disponibles y completa cuando no hay unidades que estn disponibles.

Bloques RelacionadosExisten varios bloques que pueden ser usados con storage: ! ! ! ENTER intenta incrementar el contenido de unidades en la entidad storage LEAVE decrementa el contenido de unidades en la entidad storage. SUNAVAIL coloca un storage en el estado no disponible.

SNAs RelacionadosLos SNAs asociados con un storage son: Rentnum, Sentnum, SAentnum, SCentnum, SEentnum, SFentnum, SRentnum, SMentnum, STentnum, SVentnum.

37

Entidad SavevalueUna entidad savevalue est asociada con un entero de magnitud y precisin ilimitada. El valor debe ser asignado o modificado por bloques y puede ser retornado por un SNA clase X.

Bloques Relacionados! SAVEVALUE asigna o modifica el valor de un savevalue.

Sentencias de Control Relacionadas! INITIAL asigna un valor a una entidad savevalue, sin la necesidad de una transaccin activa.

SNA RelacionadoEl SNA asociado con los savevalue es Xentnum.

38

Entidad TablaUna entidad tabla es un conjunto de enteros usados para acumular datos para un histograma. Cada entero representa una clase de frecuencia en un histograma y tiene una magnitud y precisin ilimitada. Una entidad tabla es definida por la sentencia TABLE.

Bloque Relacionado! TABULATE actualiza el histograma de datos acumulados en una entidad tabla.

SNAs RelacionadosLos SNAs asociados con una tabla son: TBentnum, TCentnum, TDentnum.

39

Entidad UserchainUna entidad userchain es una transaccin cola especial que puede ser manipulada por los bloques LINK y UNLINK. Las userchain son tiles para modelar complejas programaciones (scheduleing).

Bloques Relacionados! ! LINK condicionalmente coloca una transaccin en una cadena de usuario. UNLINK remueve transacciones desde una cadena de usuario.

SNAs RelacionadosLos SNAs asociados con userchain son: CAentnum, CCentnum, CHentnum, CMentnum, CTentnum.

40

Entidad VariableUna entidad variable es una compleja expresin quie puede ser calculada en demanda. Todas las entidades variable pueden ser definidas desde expresiones que incluyen constantes, SNAs, funciones de librera aritmtica y operadores lgicas. Sin embargo, la evaluacin de la expresin es completada por el tipo de variable. Una variable es definida por una sentencia de control VARIABLE, FVARIABLE, o BVARIABLE. ! VARIABLE crea entidades variables aritmticas que cuando son evaluadas por una llamada de SNA, realiza todas las operaciones con nmeros de punto flotante de doble precisin, truncando a un valor entero todos los resultados intermedios intermedio antes de proceder a la siguiente expresin. El resultado final es truncado a un entero. FVARIABLE crea una entidad variable de punto flotante. Slo trunca el resultado final. BVARIABLE crea una entidad variable booleana que retorna un 1 si el resultado es distinto de 0, en otro caso retorna 0.

! !

SNAs RelacionadosLos SNAs asociados con una variable son: BVentnum, Ventnum.

41

Entidad Grupo NumricoUn grupo numrico es un conjunto de enteros. No hay limite en el tamao del conjunto o el valor de sus miembros. Los grupos numricos son tiles para grabar eventos o para describir el estado de un proceso cuando se est simulando.

Bloques RelacionadosLos bloques asociados con los grupos numricos son: ! ! ! JOIN coloca un valor dentro de un grupo numrico. REMOVE lleva un valor fuera de un grupo numrico. EXAMINE testea los valores en un grupo numrico.

SNAs RelacionadosEl SNA asociado con un grupo numrico es GNentnum.

42

Entidad Grupo de TransaccionesUna grupo de transacciones es un conjunto de transacciones. No hay un limite en el nmero de transacciones en el grupo. Los grupos de transacciones son tiles para clasificar y acceder transacciones.

Bloques Relacionados! ! ! ! ! JOIN coloca la transaccin ingresante dentro de un grupo de Transacciones. REMOVE lleva algn grupo de miembros fuera de un grupo de transacciones. EXAMINE testea los miembros de un grupo de transacciones. SCAN testea y/o modifica miembros de un grupo de transacciones. ALTER testea y/o modifica miembros de un grupo de transacciones.

SNAs RelacionadosEl SNA asociado con grupo de transacciones es GTentnum.

43

PARTE III

BLOQUES DE CONTROL

44

Declaraciones de bloques de controlLas sentencias en un programa VisualSIS son o sentencias de bloques, que permiten construir bloques dentro del modelo, o sentencias de control que permiten crear entidades no-bloques que controlan el camino de la ejecucin de la simulacin. Las sentencias de control del lenguaje son ! ! ! ! ! ! ! ! ! ! ! ! BVARIABLE - define una entidad variable booleana. CLEAR - reestablece estadsticas y borra transacciones. EQU - asigna un entero a un nombre. FUNCTION - define una entidad funcin. FVARIABLE - define una entidad variable de punto flotante. INITIAL - inicializa o modifica una llave lgica, savevalue, o matriz. MATRIX - define una entidad matriz. QTABLE - define una entidad qtable. RESET - reinicializa la acumulacin de estadstica en los bloques. STORAGE - define una entidad storage. TABLE - define una entidad tabla. VARIABLE - define una entidad variable aritmtica.

45

BVARIABLEUna sentencia BVARIABLE define una entidad bvariable. Sintaxis NOMBRE Etiqueta/Operadores NOMBRE XDescripcin Las entidades BVARIABLE permiten tomar decisiones en un nico bloque basado en el estado y valor de muchas entidades del lenguaje. Son conbinaciones booleanas de los valores de varios Atributos Numricos y otras variables. Dan como resultado 1 (uno), si las condiciones especificadas son cumplidas, o 0 (cero) si no lo son. Operadores Son permitidos tres tipos de operadores: operadores lgicos, condicionales y booleanos. Los operadores lgicos estn asociados con las entidades del lenguaje (facilities, storages, logicswitchs) y son usados para determinar el estado de estas entidades. Los operadores condicionales hacen comparaciones algebraicas entre operandos. Estos operadores deben ser indicados entre comillas simples. Los operadores booleanos permiten realizar operaciones AND y OR. Ejemplos LINEA BVARIABLE (BV$CLKANDBV$FASE) Nombre de referencia para esta entidad. Requerido. Expresin. Requerido. BVARIABLE X

Cuando es evaluada, el resultado 1 ("verdad") si las variables booleanas CLK y FASE son verdaderas cuando son evaluadas. De otra manera, la bvariable LINEA retorna 0 ("falso"). ESINT BVARIABLE FNI2

Esta bvariable determina si la Facility 2 cumple la condicin de "no estar interrumpida". Si es as, devuelve 1, sino 0. MASGDE BVARIABLE V2'G'5

En este ejemplo, la bvariable MASGDE devuelve 1 si la Variable 2 es mayor que 5 y cero en otro caso. Accin Cuando una sentencia BVARIABLE es reconocida, VisualSIS crea o redefine una entidad bvariable. La entidad bvariable creada es evaluada cuando un SNA de la clase BV, referenciando a esta entidad en particular, es encontrada por el procesador de VisualSIS. La expresin contenida en la sentencia BVARIABLE es evaluada en aritmtica de doble precisin, con

46

todos los SNAs regresando valores enteros. El resultado final es convertido a el entero 0, si es 0, o a 1 si el resultado es distinto de cero. Restricciones Especiales LOG() retorna una condicin de excepcin aritmtica si el argumento es negativo. SQR() retorna una condicin de excepcin aritmtica si el argumento es negativo. Algunos SNAs, tales como M1, PR y esos que requieren un parmetro, no pueden ser evaluados a menos que haya una transaccin activa. SNAs Relacionados BVentnum Resultado de evaluar la variable booleana entnum.

47

CLEARUna sentencia CLEAR retorna al modelo corriente al estado sin uso. Sintaxis CLEAR Etiqueta/Operadores No posee. Accin La sentencia de control CLEAR resetea todos los acumuladores estadsticos, elimina todas las transacciones del modelo, y luego prepara a cada bloque GENERATE con su primer transaccin. El estado de todas las facilitys y storages es reseteado mostrando una condicin de desocupado. El contenido de todos los bloques es puesto en cero. Cuando una sentencia CLEAR es realizada: Todas las transacciones son eliminadas del modelo corriente. Los contadores actuales son seteados a cero. El reloj del sistema es seteado en cero. Las facilitys se vuelven ociosas y disponibles. Las tablas son seteadas en cero. Los savevalues son seteados en cero. Las llaves lgicas son reseteadas. Los elementos de matriz son seteados en cero. Los storages son seteados a totalmente disponible. Los tiempos de facility, storages, colas, y cadenas de usuarios son seteados a 0. Las cantidades totales son seteados a 0. Los valores mnimos y mximos son seteados a los contenidos actual en colas, cadenas de usuarios y storages. Los generadores de nmeros aleatorios no son reseteados. El contador de transacciones generadas en un bloque GENERATE es seteado a 0. Los miembros de todos los grupos numricos son removidos. Restricciones Especiales Ninguna. SNAs Relacionados Ninguno.

48

EQUUna sentencia EQU evala una expresin y asigna el resultado truncado a el valor de un nombre Sintaxis NOMBRE Etiqueta/Operadores NOMBRE XEjemplos FECHA EQU 1995 Referencia al nombre que recibe el valor. Requerido. Expresin. Requerido. EQU X

Esta sentencia define al nombre FECHA y le asigna el valor 1995. Referencias futuras a el nombre FECHA son equivalentes a 1995. PRECIO EQU 9.50

En este ejemplo, PRECIO tendr el valor 9, que es el resultado de la evaluacin de la expresin. Accin Cuando se ingresa una sentencia EQU, VisualSIS crea una redefinicin del nombre y evala la expresin de la sentencia. El nombre creado es asociado con el valor igualado al resultado truncado de la evaluacin de la expresin. Cuando en el modelo se referencia al nombre declarado, ste es reemplazado por su valor. El campo de expresin de la sentencia EQU es evaluada en aritmtica de doble precisin, con todos los SNAs regresando un valor entero. El resultado final es convertido a un entero truncndolo y asignndolo al valor del nombre. Las expresiones son evaluadas de acuerdo con las reglas elementales del lgebra. Se puede utilizar operadores lgicos o aritmticos. Si un SNA es utilizado en la fila de una expresin, ellos son evaluadas con respecto a la transaccin activa. Si no hay una transaccin activa porque la simulacin no ha sido comenzada, y una es necesitada para la evaluacin., algn mensaje de error ser escrito en pantalla. Un nombre al que no se le ha asignado explcitamente un valor no puede ser usado como un trmino en una expresin. Para hacer esto se debe asignar un valor con una sentencia EQU antes de que la expresin sea evaluada. Restricciones Especiales EQU. LOG() retorna una condicin de excepcin aritmtica si el argumento es negativo. SQR() retorna una condicin de excepcin aritmtica si el argumento es negativo. Algunos SNAs, tales como M1, PR y esos que requieren un parmetro, no pueden ser evaluados a menos que haya una transaccin activa. SNAs Relacionados Ninguno. Los valores de las etiquetas de bloques no pueden ser cambiados con una sentencia

49

FUNCTIONUna sentencia FUNCTION, y sus sentencias seguidas, define una funcin de SNAs y distribuciones probabilisticas. Sintaxis NOMBRE FUNCTION A,B

Etiqueta/Operadores NOMBRE Referencia al nombre de la entidad. Requerido. A Argumento de la funcin. Requerido. El operando debe ser un nombre, entero positivo, SNA, o SNA*parmetro. B Tipo de la funcin (una letra) seguida inmediatamente por el nmero de pares de datos en la funcin seguida por sentencias. Requerido. Accin Una sentencia FUNCTION junto con una o ms sentencias de funciones, define una entidad funcin. Referencias posteriores a un SNA de clase FN deber evaluar la funcin y retornar el resultado. Existen varios tipos de funciones que deben ser consideradas individualmente. El tipo est especificado en el operando B de la sentencia FUNCTION. Despus de ingresar uno o ms pares de datos separados por barras, denotados como X1,Y1/ X2,Y2 / y as sucesivamente. Cada par de datos tiene un valor X y un valor Y (o SNA) separados por comas. Las sentencias de funciones crean tablas en el modelo corriente las cuales permiten que una funcin de una variable sea evaluada. Cuando VisualSIS encuentra una referencia a un SNA FNentnum, ste evala la entidad funcin y regresa el resultado. Las tablas y la manera en que ellas son referenciadas depende del tipo de funcin. La clases SNA FN usadas en el operando B de los bloques GENERATE y ADVANCE son llamadas funciones modificadoras. Tienen reglas especiales de evaluacin. Cuando una transaccin ingresa en un bloque GENERATE o ADVANCE con una funcin modificadora el resultado de doble precisin de la funcin es calculado. Este es multiplicado por una forma de doble precisin de el evaluado operando A. El resultado es truncado y usado como el incremento en el bloque GENERATE o ADVANCE. Existen 5 tipos diferentes de entidades funciones: Funciones de Tipo C

Funcin de estimacin "continua". Obtiene un valor X, tras una interpolacin lineal, la funcin trunca el resultado y regresa un entero como un valor Y. Un argumento aleatorio es un caso especial. En una funcin de tipo C, sin un argumento aleatorio, los pares de datos definen una funcin lineal del argumento. El primer par de datos define el punto de la izquierda y el ltimo par de datos define el punto ms hacia la derecha. Los valores de X e Y son cargados como nmeros de punto flotante de simple precisin. La evaluacin de la funcin comienza con la evaluacin del argumento. El resultado es siempre un entero, y es usado para identificar el segmento de linea de la funcin. El argumento es luego usado en una interpolacin lineal de doble precisin para arribar al resultado de doble presicin de la funcin. Si es

50

usado en una funcin modificadora, el resultado de doble precisin es tomado. En otro caso, este es truncado a un entero y regresado como el resultado de la evaluacin de la funcin. Si el argumento cae fuera del punto final de la definicin de la funcin, el valor que est ms prximo al punto final es retornado. Cuando el operando A de la sentencia FUNCTION es una clase SNA RN, la funcin tiene un argumento aleatorio. Una funcin de tipo C con un argumento aleatorio es usada para definir una distribucin probabilstica continua. Este es un caso especial. La funcin es especificada como una funcin de distribucin acumulativa (CDF) con 0 como el valor del punto final izquierdo y 1 el valor del punto final derecho. Como antes, la CDF esta especificada como una funcin lineal con un generador de nmeros aleatorios usado como el argumento. Cuando esta funcin es evaluada, un nmero aleatorio entre 0 y .999999 es tomado del generador de nmeros aleatorios y es usado en una interpolacin lineal para arribar al valor de doble precisin de la funcin. Si no es usada como funcin modificadora, el resultado es truncado a un numero entero. Ejemplo SALIDA FUNCTION 1.1,10.1/20.5,98.7/33.3,889.2 V$ENTRADA,C3

Este ejemplo define a una funcin lineal con dos segmentos de linea. En este ejemplo, todos los nmeros son cargados en la forma de punto flotante de simple precisin. Cuando la entidad funcin es evaluada por un SNA FN$SALIDA, primero el argumento de la funcin V$ENTRADA es evaluado. Si el resultado del argumento esta fuera del rango definido, 1.1 a 33.3, el punto extremo ms cercano es retornado. Por ejemplo, si V$ENTRADA retorna un valor menor o igual a 1, FN$SALIDA retorna 10 (10.1 como una funcin modificadora).

Funciones de Tipo D

Funcin de estimacin discreta. A cada valor de argumento de probabilidad le es asignado un valor entero. Un argumento aleatorio es una caso especial. En una funcin de tipo D, sin un argumento aleatorio, los pares de datos definen un conjunto de valores de argumentos los cuales son asociados con valores de funciones especificas. Los valores X en la funcin no deben ser decrecientes. Internamente son almacenados como enteros. Cuando la funcin es evaluada, los valores X de la funcin son buscados desde el valor ms bajo hasta el ms alto. Cuando un valor X mayor o igual que el valor de argumento es encontrado, el valor entero correspondiente Y es retornado. Si no existe tal valor X, el valor Y o valor de nombre asociado con el valor grande X es retornado. Ejemplo DIS1 FUNCTION 1,6/2,7/6,9/7,10/9,12 X$A2,D5

Una funcin de tipo D con un argumento aleatorio es usado para definir una distribucin probabilistica discreta. La funcin es especificada como una funcin de distribucin acumulativa (CDF) con 0 como el valor del punto final izquierdo y 1 el valor del punto final derecho. Cuando la funcin es evaluada, un nmero aleatorio entre 0 y .999999 es tomado del generador de nmeros aleatorios. El valor ms chico X en la funcin que es mayor o igual que el nmero aleatorio es seleccionado. El valor asociado Y es retornado como un valor entero de la funcin. Ejemplo RAN1 FUNCTION 0,0/.2,7/.4,6/.8,9/1.0,10 RN1,D5

51

Funciones de Tipo E

Funcin de atributos evaluados en forma discreta. Cada valor de argumento o masa probabilistica es asignado a un SNA a ser evaluado. Un argumento aleatorio es un caso especial. Una funcin de tipo E es evaluada de la misma manera que una de tipo D, excepto que una de tipo E requiere un paso mas. Despus que el valor X es elegido, el SNA asociado (valor Y) es evaluado y retornado como el resultado de la funcin. Ejemplo EDISC FUNCTION X$QRA,E5 1,S$STOR1/3,S$STOR2/5,S$STOR3/9,S$STOR5/10,S$STOR6

Funciones de Tipo L

Funcin de estimacin de tipo lista. El valor de argumento es usado para determinar la posicin de la lista del valor a ser retornado. La funcin define una lista de enteros donde el resultado es elegido. Cuando la funcin es evaluada, el argumento es evaluado y usado como el nmero ordinal (valorX) de la lista de miembros. El valor Y con la posicin dentro de la lista numerada es retornado como el resultado. Si el argumento es muy grande o menor que 1, un error de stop ocurre. Los valores de X deben comenzar en 1 y ser incrementados en 1 en cada par de datos sucesivos. Ejemplo LISTTYPE FUNCTION Q$BARB, L5 1, PART1/2,PART2/3,PART3/4,PART4/5,PART5

Funciones de Tipo M

Funcin estimacin de lista de argumentos. El valor de argumento es usado para determinar la posicin de la lista del SNA a ser evaluado y regresado como el resultado. Una funcin de tipo M es evaluada de la misma forma que de una funcin de tipo L, excepto que requiere un paso mas. Luego de que la posicin de la lista es elegida, el SNA asociado es evaluado y retornado como el valor Y. Ejemplo MLIST FUNCTION X$NAME1,M5 1,Q$NAM1/2,Q$NAMX/3,Q$NAM4/Q$NAM6/5,F$TAN1

Reglas para las Funciones Para crear funciones se debe tener en cuenta varias reglas. Estas son: Los valores de X de las declaraciones seguidas a la funcin no deben decrecer. Las declaraciones seguidas a la funcin no pueden contener mas de 50 pares de datos. Si mas de 50 pares de datos son deseados, la funcin deberia estar dividida en mltiples funciones que sean accedidas por una funcin cuyo propsito es solamente acceder a estas funciones. Una funcin que tiene un argumento aleatorio debe describir una distribucin probabilistica acumulativa vlida en las declaraciones seguidas a la funcin. Todos los campos en una sentencia de funcin son requeridos.

52

Todos los valores X e Y en las declaraciones seguidas a la funcin son requeridos. El nmero de pares de datos declarados en el operando B de la sentencia FUNCTION deben corresponder a pares separados por [/], en las declaraciones seguidas a la funcin. X1, el primer valor de probabilidad especificando una funcin continua aleatoria debe ser 0. Los valores CDF deben ser no negativos, no decrecientes , y no deben exceder a 1. Las declaraciones seguidas a la funcin no tienen campos de comentario. En las declaraciones seguidas a la funcin el valor X es seguido de [, ], [, ] es seguido por un valor Y, un valor Y es seguido por [/] o [CR], y [/] es seguido de un valor X. Los valores numricos estn cargados como enteros, excepto las funciones del tipo C donde ellos estn cargados como un numero de punto flotante de simple precisin. Las CDFs deben ser no decrecientes enter 0 y 1, inclusive. Algunas probabilidades en funciones del tipo C son obtenidas por el intervalo mas a la derecha, en otro caso la prdida de probabilidades es un error. Las funciones del tipo C, D, y L no pueden tener SNAs para valores Y. Las funciones M, y E deben tener SNAs para valores Y. Las funciones L y M no pueden tener argumentos aleatorios. Las declaraciones seguidas a las funciones del tipo L y M deben tener valores secuenciales de X comenzando en 1.

SNAs Relacionados FNentnum. Resultado de evaluar la funcin entnum.

53

FVARIABLEUna sentencia FVARIABLE define una entidad variable aritmtica de doble precisin. Esto proporciona clculos aritmticos complejos dentro de la simulacin. Sintaxis NOMBRE Etiqueta/Operadores NOMBRE XNombre de referencia para esta entidad. Requerido. Expresin. Requerido. FVARIABLE X

Ejemplo VAR1 FVARIABLE 5#LOG(Q$WAITINGLINE)

Esta sentencia define una entidad variable de punto flotante que ser evaluada cuando V$VAR1 es encontrada. Las variables definidas con ambas sentencias VARIABLE y FVARIABLE son accedidas por SNA de clase V. Cuando el SNA V$VAR1 es evaluado, la expresin que define la entidad variable llamada VAR1 debe ser evaluada. Esta comienza con la evaluacin del SNA Q$WAITINGLINE. El logaritmo del resultado de doble precisin es calculado y multiplicado por 5. El resultado es truncado y retornado como el valor de el SNA. Accin Cuando una sentencia FVARIABLE es encontrada, VisualSIS crea o redefine una entidad variable de punto flotante. La entidad variable creada es evaluada cuando un SNA de clase V, referenciando a esta entidad particular, es encontrada por el procesador de VisualSIS. La expresin contenida en una sentencia FVARIABLE es evaluada en aritmtica de doble precisin. El resultado final es convertido a un entero. La entidad variable aritmtica de punto flotante es diferente a una entidad aritmtica definida por una sentencia VARIABLE. Una sentencia VARIABLE define una entidad variable aritmtica la cual trunca cada resultado intermedio antes de proceder al prximo clculo. Una sentencia FVARIABLE realiza el truncamiento slo al resultado final, no a valores intermedios. Restricciones Especiales LOG() retorna una condicin de excepcin aritmtica si el argumento es negativo. SQR() retorna una condicin de excepcin aritmtica si el argumento es negativo. Algunos SNAs, tales como M1, PR y esos que requieren un parmetro, no pueden ser evaluados a menos que haya una transaccin activa. SNAs Relacionados Ventnum. Resultado de evaluar la variable entnum.

54

INITIALUna sentencia INITIAL inicializa una llave lgica, savevalue, o un elemento de una entidad matriz. Sintaxis INITIAL Etiqueta/Operadores A Llave lgica, savevalue, o elemento de una matriz especificada como SNA. El operando A debe tener la forma de un SNA de clase LS, X, o MX. Requerido. El operando debe ser LSenteropos, LS$nombre, Xenteropos, X$nombre, MXenteropos (), o MX$nombre(). Las coordenadas deben ser enteropos o nombre. B Valor a ser asignado. El default es 1. Opcional. El operando debe ser nulo, entero o nombre. Accin La sentencia INITIAL causa que un valor, especificado por el operando B, sea asignado a una entidad llave lgica, savevalue, o matriz especificado por un SNA de clase LS, MX, o X en el operando A. Si el operando B no es usado, un valor de 1 es asignado a la entidad, o elemento. Si el operando A especifica una llave lgica, solamente un valor 0 1 es asignado. Si el operando B es explcitamente especificado como 0, el valor de 0 es asignado. En otro caso, el valor 1 es asignado. Ejemplo INITIAL MX$INVENTARIO(PART_39, NIVELSTOCK) , 200 A,B

Esta sentencia asigna el valor 200 al elemento de la entidad matriz llamada INVENTARIO en la fila nmero PART_39, y nmero de columna de NIVELSTOCK. Los nombres PART_39 y NIVELSTOCK deben tener previamente asignados el entero apropiado en una sentencia EQU. Restricciones Especiales El operando A debe tener la forma de un SNA de clase LS, X, o MX. No se puede usar parmetros de transacciones en ninguna parte del operando A.

SNAs Relacionados LSentnum Llave lgica. El valor de la llave lgica entnum es retornado. MXentnum (m,n) Matriz savevalue. El valor de fila m, columna n de la matriz entnum es retornado. Xentnum Savevalue. El valor del savevalue entnum es retornado. Bloques Relacionados LOGIC Asigna un valor a una llave lgica. MSAVEVALUE asigna o incrementa un elemento a la entidad matriz. SAVEVALUE asigna o incrementa una entidad savevalue.

55

MATRIXUna sentencia MATRIX define una entidad matriz. Sintaxis NOMBRE Etiqueta/Operadores NOMBRE A B C Ejemplo INVENTARIO MATRIX ,1000,5 Referencia el nombre de esta entidad. Requerido. Campo sin uso. Nmeros de filas de la matriz. Requerido. El operando debe enteropos. Nmero de columnas de la matriz. Requerido. El operando debe ser enteropos. MATRIX A,B,C

Esta sentencia define una entidad matriz llamada INVENTARIO con 1000 filas y 5 columnas. Accin Una sentencia MATRIX crea una matriz en el modelo corriente. Una entidad matriz est limitada a no ms de 8191 elementos. Si se necesitan ms elementos se deben definir entradas adicionales en la matrices. Restricciones Especiales Est limitada a 8191 entradas.

SNAs Relacionados MXentnum (m,n) Elemento de la entidad matriz. El valor de fila m, columna n de la matriz entnum es retornado. Bloques Relacionados MSAVEVALUE asigna o incrementa un elemento a la entidad matriz.

56

QTABLEUna sentencia QTABLE inicializa una tabla de distribucin de frecuencias de tiempo en colas. Sintaxis NOMBRE Etiqueta/Operadores NOMBRE A nombre. B Lmite superior de la primera clase de frecuencia. El mximo argumento que causa que el primer grupo de frecuencias sea actualizado. Requerido. El operando debe ser 0 enteropos. C Tamao de las clases de frecuencias. Es la diferencia entre el lmite superior y el lmite inferior de cada clase de frecuencias. Requerido. El operando debe ser enteropos. D Cantidad de clases de frecuencias. No puede exceder a 8191. Requerido. El operando debe ser enteropos. Accin Usando una sentencia de definicin QTABLE las estadsticas sern guardadas automticamente para las transacciones que entran a un bloque QUEUE y luego a un bloque DEPART referenciando a la misma entidad cola referida por el operando A de la sentencia de definicin QTABLE. Cuando una transaccin entra a un bloque QUEUE que hace referencia a una entidad cola que tiene una o ms qtables, un tiempo de marca especial es creado y guardado con la transaccin. Para coleccionar un dato, una transaccin debe entrar en un bloque DEPART que referencie a esta misma cola. Cuando tal bloque DEPART es ingresado, un argumento de la tabla es calculado sustrayendo el viejo tiempo de marca guardado desde el el tiempo de sistema actual. Si el argumento de la tabla calculado es menor o igual que el operando B de la sentencia QTABLE, la primera clase de frecuencia de la tabla es elegida. Si el argumento de la tabla no se ajusta dentro de la prime