You are on page 1of 38

BLOQUES BSICOS DE EXTEND

Unidad: Leccin 2 Bloques bsicos de Extend Autor: Carlos Andrs Sierra Betancur Curso: Simulacin virtual ltima Actualizacin: Julio de 2005

Autor: Carlos Andrs Sierra Betancur Pgina 1 de 38

Tabla de contenidos
BLOQUES BSICOS DE EXTEND ................................................................................................................................ 1 TABLA DE CONTENIDOS ............................................................................................................................................ 2 1 2 3 4 OBJETIVOS.......................................................................................................................................................... 3 POR QU EXTEND?........................................................................................................................................... 4 INTRODUCCIN.................................................................................................................................................. 5 BLOQUES BSICOS DE EXTEND....................................................................................................................... 7 4.1 DISCRETE EVENT: EXECUTIVE .......................................................................................................................... 7 4.2 DISCRETE EVENT: ACTIVITIES: ACTIVITY, DELAY .............................................................................................. 8 4.2.1 Pestaa Activity................................................................................................................................... 9 4.2.2 Pestaa Results.................................................................................................................................. 10 4.3 DISCRETE EVENT: ACTIVITIES: ACTIVITY, MULTIPLE ....................................................................................... 11 4.3.1 Pestaa Activity................................................................................................................................. 12 4.3.2 Pestaa Results.................................................................................................................................. 13 4.4 DISCRETE EVENT: GENERATORS: GENERATOR ................................................................................................ 15 4.4.1 Pestaa Items..................................................................................................................................... 17 4.5 DISCRETE EVENT: GENERATORS: PROGRAM .................................................................................................... 19 4.5.1 Pestaa Program................................................................................................................................ 19 4.6 DISCRETE EVENT: QUEUES: QUEUE, FIFO..................................................................................................... 22 4.6.1 Pestaa Queue ................................................................................................................................... 22 4.6.2 Pestaa Results.................................................................................................................................. 24 4.7 DISCRETE EVENT: QUEUES: QUEUE, LIFO ..................................................................................................... 26 4.8 DISCRETE EVENT: ROUTING: EXIT ................................................................................................................. 26 4.9 DISCRETE EVENT: ROUTING: EXIT (4) ........................................................................................................... 27 4.10 DISCRETE EVENT: ROUTING: SELECT DE OUTPUT .......................................................................................... 28 4.10.1 Pestaa Select Output ................................................................................................................. 28 4.10.2 Pestaa Results............................................................................................................................. 34 4.11 DISCRETE EVENT: ROUTING: COMBINE........................................................................................................... 35 5 EJEMPLO ........................................................................................................................................................... 36

Autor: Carlos Andrs Sierra Betancur Pgina 2 de 38

1 Objetivos
Al finalizar el estudio de la presente leccin usted deber estar en capacidad de elaborar modelos sencillos de simulacin discreta en Extend. Adems, deber estar familiarizado con los elementos bsicos de la interfaz de usuario de Extend que le permiten crear los modelos, configurar los parmetros de la simulacin, introducir animacin a los modelos y visualizar los resultados y estadsticas generadas en los bloques de inters en la simulacin. Tambin deber conocer el funcionamiento bsico y algunas caractersticas avanzadas de los siguientes bloques de Extend: Executive, Activity Delay, Activity Multiple, Generator, Program, Queue FIFO, Queue LIFO, Exit, Exit(4), Select DE Output, Combine

Autor: Carlos Andrs Sierra Betancur Pgina 3 de 38

2 Por Qu Extend?
Extend es uno de los dos programas de simulacin que estaremos usando y estudiando durante el curso. Las razones para haberlo seleccionado entre la gran cantidad de programas de simulacin que existen en la actualidad en el mercado son: Facilidad de uso: los modelos se crean adicionando los bloques necesarios dando clic en un men que contiene los bloques disponibles, interconectndolos con tan slo arrastrar el mouse desde el bloque se origen hasta el bloque de destino, e introduciendo la informacin necesaria en cuadros de dilogo muy intuitivos y bien documentados. Versatilidad: dado que permite realizar simulacin continua, discreta e hbrida; optimizaciones, anlisis de sensibilidad, trabajo con bases de datos y grandes volmenes de informacin, etc. Adaptabilidad y personalizacin: gracias a la inclusin de un lenguaje de simulacin que permite desarrollar bloques adicionales cuando sea necesario. Bajo costo: en relacin con las otras alternativas del mercado, Extend resulta una opcin relativamente econmica para las empresas que se quieran embarcar en un proyecto de simulacin. El otro programa que estaremos usando, y del cual nos encargaremos ms adelante, es Ithink.

Autor: Carlos Andrs Sierra Betancur Pgina 4 de 38

3 Introduccin
La presente leccin tiene como objetivo introducir el uso de los bloques de construccin ms bsicos, los cuales se encuentran en la librera de Eventos Discretos. Extend es un programa que presenta los bloques de construccin organizados en grupos denominados libreras. Las libreras que ocuparn la mayora de nuestro tiempo durante el curso son: Eventos discretos (discrete event): contiene todos los bloques bsicos para construir modelos de simulacin discreta. Genrica (generic): contiene bloques tiles para manejo de informacin, realizacin de operaciones matemticas y para construir modelos de simulacin continua. Manufactura (mfg): contiene bloques especializados, tiles en simulaciones discretas de sistemas de manufactura. Negocios (bpr): sus bloques se usan en aplicaciones especializadas de procesos de negocios en modelos de simulacin discretos. SDI (SDI tools): los bloques que contiene esta librera son de especial inters, ya que permiten crear y manejar bases de datos al interior de los modelos, brindando la posibilidad de tener toda la informacin y los datos del modelo en un repositorio central de informacin. Flujos (flow): esta librera permite modelar sistemas en los cuales los objetos fluyen a travs de los procesos, asemejando un flujo. Grficas (plotter): esta librera permite introducir una gran variedad de grficas a los modelos de simulacin, proporcionando una valiosa herramienta para el anlisis de los resultados arrojados por los modelos. Cada librera rene bloques similares en cuanto al rea de aplicacin de estos. Adicionalmente, cada librera esta compuesta por sublibreras, las cuales contienen los bloques propiamente dichos. Una sublibrera es un agrupamiento de bloques que sirven para el mismo propsito: manejar atributos, enrutar objetos, simular actividades, encolamiento de objetos, etc. Para introducir un bloque en un modelo simplemente tiene que ir a la librera que lo contiene, abrir la sublibrera indicada y dar clic sobre el nombre del bloque.
Autor: Carlos Andrs Sierra Betancur Pgina 5 de 38

El video Tutorial Bsico de Extend.swf le mostrar cmo utilizar los elementos bsicos de Extend por medio de la creacin de un modelo sencillo de simulacin. Es aconsejable que vea el video antes de continuar estudiando el contenido de esta leccin y practique un poco con la interfaz del software y las opciones bsicas presentadas all, con el fin de que se familiarice con el entorno de Extend y sea capaz de sacar un mayor provecho a los conceptos que aqu se tratarn ms adelante. Los bloques que estudiaremos durante esta leccin son los siguientes: Librera Sublibrera No Aplica Bloque Executive Activity, Delay Actividades: Activities Activity , Multiple Generator Generadores: Generators Program Eventos discretos: Discrete Events Queue, FIFO Colas: Queues Queue, LIFO Exit Exit(4) Enrutamiento: Routing Select DE Output Combine

Autor: Carlos Andrs Sierra Betancur Pgina 6 de 38

4 Bloques bsicos de Extend


4.1 Discrete Event: Executive
ev ent

count

Es un bloque indispensable en todos los modelos de simulacin discreta, pues es el bloque que controla la simulacin. Su funcin es manejar el reloj de la simulacin y controlar la ocurrencia de los eventos, es decir, es el que se encarga de llevar la lista de eventos, del avance del reloj y de controlar la duracin de la simulacin, entre otras tareas. En su cuadro de dilogo, en la pestaa Simulation, se puede definir si la simulacin terminar despus de cierto tiempo transcurrido o despus de un nmero de eventos dado. Esto es importante porque en algunas ocasiones podra ser de inters, por ejemplo, simular el sistema para mil llegadas de clientes, mientras que en otras ocasiones podra ser ms deseable simular el sistema para 6 meses de funcionamiento:

Autor: Carlos Andrs Sierra Betancur Pgina 7 de 38

El bloque Executive siempre se debe poner en la esquina superior izquierda de todos los modelos de simulacin que lo utilicen, es decir, en todos los modelos de simulacin discreta. Por defecto, Extend siempre lo inserta en dicha ubicacin. Los modelos de simulacin continua no requieren del manejo de eventos, por lo que el bloque Executive no se debe incluir en un modelo de ese tipo de simulacin. Esto es algo que NUNCA se debe hacer, puesto que siempre que dicho bloque se incluye en un modelo, ste automticamente pasa a ser un modelo de simulacin discreta.

4.2 Discrete Event: Activities: Activity, Delay

Est ocupada la activ idad? Ocupada --> el v alor que sale por T es 1 Desocupada --> el v alor que sale por T es 0

Porcentaje de utilizacin de la activ idad en lo que v a corrido de la simulacin

T entrada de objetos D

U salida de objetos

Conector que permite modif icar dinmicamente (durante la simulacion) la demora de los objetos en la activ idad

El bloque Activity, Delay es un bloque sencillo que permite simular el gasto de tiempo de un objeto en el sistema (slo puede haber en l un objeto a la vez). Ejemplos de gasto de tiempo son la atencin de un cliente por parte de un cajero, un chef elaborando un plato, el lavado de un carro, una persona que entra a un supermercado, etc. Ntese que en todos estos ejemplos slo hay un servidor en el sistema, es decir, slo puede haber un objeto siendo atendido en un bloque Activity, Delay. En su cuadro de dilogo encontramos varias pestaas. Las que nos interesan en este momento son Activity y Results. La pestaa referente a los costos (Costs) ser abordada en la leccin de manejo de atributos, pues es necesario conocer dicho concepto para poder utilizar los elementos all disponibles. Las otras dos pestaas son Animate y Comments, que estn presentes en todos los cuadros de dilogo de los bloques de Extend, y que son explicados con ms detalle en el video Tutorial Bsico de Extend.swf.
Autor: Carlos Andrs Sierra Betancur Pgina 8 de 38

4.2.1

Pestaa Activity

En la pestaa Activity generalmente nos interesarn dos opciones: Delay Es donde introducimos el tiempo que gastarn los objetos en la actividad. El conector de entrada de informacin D, que se encuentra en la parte inferior del bloque, permite modificar el tiempo establecido en el cuadro de dilogo durante el transcurso de la simulacin, de forma tal que se podran simular sistemas en los cuales el tiempo vara de objeto a objeto, de acuerdo a alguna condicin. Ejemplos de esto podran ser el uso de tiempos variables de atencin en una sala de urgencias en la cual el mdico tarde una cantidad de tiempo proporcional a la gravedad del paciente. Ms adelante cuando usemos atributos o generacin de datos aleatorios profundizaremos un poco ms en el uso de este conector. Hours* Permite definir las unidades de tiempo que se usarn para la demora en la actividad. Esta opcin slo estar disponible si las unidades de tiempo generales del modelo han sido definidas, es decir, si en el cuadro de dilogo de Simulation Setup se ha seleccionado un valor diferente a Generic para las unidades. Tambin habr notado que las unidades seleccionadas como unidades globales de la simulacin aparecen dos veces en el cuadro desplegable: con un asterisco al lado derecho, y sin asterisco. Si se usa el valor con asterisco (*), las unidades de tiempo usadas en el bloque cambiarn cada que se cambien las unidades globales, es decir, dicha opcin permite que las unidades de medicin de tiempo de un bloque siempre sean las mismas que las seleccionadas para la simulacin (unidades globales): cualquier cambio en las unidades globales se ver reflejado en las unidades del bloque en que se seleccionen las unidades con el *. Esta caracterstica resulta til cuando se quiere jugar con las unidades de tiempo del modelo, y a la vez se quiere tener la certeza de que estas siempre sern tambin usadas en los bloques de inters (los bloques en donde las unidades seleccionadas sean las del *). Se lo repito???

Autor: Carlos Andrs Sierra Betancur Pgina 9 de 38

4.2.2

Pestaa Results

La pestaa de resultados contiene las estadsticas de inters para la actividad: Arrivals Es el nmero de objetos que llegaron a la actividad, aunque no necesariamente es el mismo nmero de objetos que fueron atendidos, porque al finalizar la simulacin bien podra estar un objeto gastando tiempo en la actividad, y por no haber concluido el servicio, no se cuenta como salida (departures). Departures Es el nmero de objetos que pasaron por la actividad. Total Cost Es el costo de funcionamiento de la actividad. Por el momento no me detendr a explicar el manejo de los costos en Extend, pero ms adelante tendremos la leccin de manejo de atributos en el cual trataremos ste tema.

Autor: Carlos Andrs Sierra Betancur Pgina 10 de 38

Utilization Es la utilizacin de la actividad, o en otras palabras, el porcentaje del tiempo total de la simulacin que la actividad permaneci ocupada. Esto podra representar el porcentaje de utilizacin de un cajero de un banco, o de un operario en una planta de produccin.

El porcentaje de utilizacin es la estadstica ms importante de ste bloque, porque nos permite saber si la actividad tiene capacidad ociosa (bajos porcentajes de utilizacin), o si por el contrario se constituye como una restriccin del sistema (utilizacin cercana al 100%).

4.3 Discrete Event: Activities: Activity, Multiple


El bloque Activity, Multiple es bastante similar al Activity, Delay, pero a diferencia de ste, el Activity, Multiple permite que varios objetos gasten tiempo de forma simultnea en la actividad. De la misma forma, es posible que cada uno de los objetos permanezca en la actividad una cantidad de tiempo diferente. Ejemplos del uso de ste bloque son: muchas personas realizando sus compras en un supermercado de forma simultnea; un estadio de ftbol al que asisten 25.000 personas, pero
Autor: Carlos Andrs Sierra Betancur Pgina 11 de 38

algunas se quedan ms tiempo que otras; un restaurante que atiende clientes que llegan durante todo el da y cuya permanencia es de diferente duracin, etc.

Dentro del cuadro de dilogo de este bloque encontraremos las mismas pestaas de inters que en el bloque Activity, Delay, aunque algunas de sus opciones cambian. Estas pestaas son Activity y Results. 4.3.1 Pestaa Activity

Aqu encontramos cuatro opciones de inters:

Autor: Carlos Andrs Sierra Betancur Pgina 12 de 38

Delay Las unidades de tiempo tienen el mismo uso y el mismo significado que para el bloque Activity, Delay. Maximum number in activity Es el mximo nmero de objetos que pueden estar siendo atendidos (gastando tiempo) en un momento dado en la actividad. Este valor, al igual que la demora, puede ser modificado durante la simulacin. el conector asociado a sta opcin es el que tiene la letra C en color verde en la parte inferior del bloque, y es a travs de l que se pueden entrar los nuevos valores para la capacidad. Veremos ms de este tema cuando trabajemos con atributos e informacin. Stop simulation if activity overflows Lo que hace esta opcin es detener la simulacin cuando el nmero mximo de elementos que puede haber en la actividad es alcanzado. Es una opcin til para identificar situaciones en las cuales la actividad podra llegar a niveles que no se pueden permitir en el sistema real, o que por lo menos son indeseables. 4.3.2 Pestaa Results

Las opciones encontradas aqu son muy similares a las encontradas en la pestaa Results del bloque Activity, Delay:

Autor: Carlos Andrs Sierra Betancur Pgina 13 de 38

Arrivals, Departures, Total cost Se refieren a los mismos conceptos a los que se referan en el Activity, Delay. Utilization La utilizacin en ste bloque es el porcentaje de tiempo que la actividad permaneci ocupada, pero hay que tener en cuenta algo que podra no ser tan obvio, y es que el tiempo total disponible de esta actividad est dado por la multiplicacin de la capacidad de la actividad y la duracin de la simulacin; mientras que el tiempo que permaneci ocupada la actividad estar dado por la suma de las demoras de todos los objetos que pasaron por ella y gastaron tiempo. As, la utilizacin estar dada por la suma de las demoras dividida por el tiempo total disponible. Si no entendi muy bien la diferencia, no se preocupe, ms adelante le aclarar esto con un ejemplo. Avg. length Es la cantidad promedio de objetos que permanecieron en la actividad durante la simulacin. Es una estadstica de gran utilidad para determinar la capacidad mnima que debe tener una actividad. Avg. wait Es la demora promedio de los objetos que pasaron a travs de la actividad durante el transcurso de la simulacin. Si el conector D no es usado, este valor tendra que ser igual a la demora especificada en Delay (en la pestaa Activity). Pero si el conector es usado para modificar dicho valor, esta estadstica nos permitir saber cual fue el promedio de los valores ingresados a travs de l, es decir, la demora promedio de los objetos que estuvieron en la actividad. Estas ltimas tres estadsticas, en conjunto, permiten conocer la cantidad ptima de servidores que deben haber atendiendo la actividad.

Autor: Carlos Andrs Sierra Betancur Pgina 14 de 38

4.4 Discrete Event: Generators: Generator


salida de objetos Conector que permite modif icar el v alor de los objetos que son generados Conector asociado con el primer parmetro de la distribucin de probabilidad. A trav s de l se puede modif icar, durante el transcurso de la simulacin, el v alor especif icado en el cuadro de dialogo. En el caso de una distribucin triangular sera el v alor mnimo. En el caso de una normal sera la media. Y en el caso de una exponencial sera la media. Conector asociado con el segundo parmetro de la distribucin de probabilidad (en caso de que exista). A trav s de l se puede modif icar, durante el transcurso de la simulacin, el v alor especif icado en el cuadro de dialogo. En el caso de una distribucin triangular sera el v alor mximo. En el caso de una distribucin normal sera la desv iacin estndar. Y en el caso de una exponencial, no aplicara. Conector asociado con el tercer parmetro de la distribucin de probabilidad (en caso de que exista). A trav s de l se puede modif icar, durante el transcurso de la simulacin, el v alor especif icado en el cuadro de dialogo. En el caso de una distribucin triangular sera el v alor ms probable. En el caso de las distribuciones normales y exponenciales no aplicara. V 1 2 3

Este bloque permite la generacin de llegadas de objetos al sistema a travs del uso de distribuciones de probabilidad que permiten describir la forma en que ingresan los objetos al sistema, es decir, el tiempo entre llegadas de los objetos. Nota: Siempre tenga en cuenta que en el bloque Generator se tienen que usar distribuciones de probabilidad que representen tiempos entre llegadas. Nunca se deben usar distribuciones de probabilidad que representen el nmero de objetos que llegan por unidad de tiempo. Aunque esto pueda parecerle como la misma cosa, no lo es. Fijo cae en un examen una cascarita de ese estilo. No es por corcharlos, es porque el software funciona as, y por la misma razn hay que tener especial cuidado con ste concepto. De no hacerlo, los resultados obtenidos en la simulacin sern errados. Para generar estas distribuciones de probabilidad se pueden seguir los siguientes mtodos: Usar una distribucin que tericamente se amolde al comportamiento del sistema. Para esto se puede recurrir a la opinin de un experto en el tema que conozca muy bien el comportamiento terico de los eventos observados, y de los tiempos entre ocurrencias de stos. Una pequea gua de los usos ms comunes de cada distribucin de probabilidad puede ser encontrada en el cuadro de dilogo del bloque Generator, en la pestaa Items, bajo la etiqueta
Autor: Carlos Andrs Sierra Betancur Pgina 15 de 38

Typical use. Estos usos son tomados de la experiencia de los creadores de Extend en la creacin de modelos de simulacin y de estudios tericos en el tema. No obstante, hay que tener especial cuidado con el uso que se d a esta informacin, pues muchas veces puede llevar a la creacin de modelos cuyo comportamiento no es ajustado a la realidad. Usar datos histricos o informacin recolectada en el campo de accin. Esta informacin es usada posteriormente en la obtencin de la distribucin de probabilidad que mejor se ajuste y represente el conjunto de datos obtenidos. Para lograr esto se pueden usar programas especiales que realizan la mayor parte del trabajo de forma automtica. Uno de estos programas es statfit, incluido en la versin suite de Extend. En ste programa se digita el conjunto de datos recolectados, y el programa ofrece una opcin que automticamente realiza las pruebas necesarias para obtener la distribucin que mejor se ajusta. Lo que el programa entrega es el tipo de distribucin que se debe usar y los parmetros relevantes. Un ejemplo de esto sera una distribucin weibull con sus valores respectivos de los parmetros escala y forma. Estos son los datos que se usan en el bloque Generator para generar los objetos en el modelo. En caso de que no se pueda obtener una buena distribucin de probabilidad que represente el conjunto de datos, el camino a seguir es la creacin de una tabla emprica, que es la distribucin de probabilidad discreta de los datos. Dicha tabla se introducira en el bloque Generator usando la opcin Empirical Table (tabla emprica) del cuadro desplegable de distribuciones de probabilidad. Al hacer esto, se muestra una tabla que contiene dos columnas: la primera columna es para introducir los valores que se quieren generar, mientras que la segunda columna es para introducir las probabilidades de ocurrencia de dichos valores. Con estos datos el bloque generar objetos de forma que el tiempo entre sus llegadas al sistema se amolden a los datos consignados en la tabla emprica. De estos tres mtodos, el ms recomendado es la obtencin de una distribucin de probabilidad a partir de datos reales (observaciones de campo o histricos), pues aqu no hay que hacer suposiciones, y con mximo tres parmetros se puede resumir un conjunto extenso de datos. En caso de que no sea posible obtener una distribucin que se ajuste de forma adecuada a los datos y los represente apropiadamente, se deber preferir el uso de la distribucin de probabilidad discreta (tabla emprica). Y como ltima instancia se deben usar los datos obtenidos de expertos en el tema o supuestos basados en datos tericos.

Autor: Carlos Andrs Sierra Betancur Pgina 16 de 38

Las opciones de configuracin del bloque Generator se encuentran en la pestaa tems. La pestaa Costs es de gran inters, pero no hablaremos de ella hasta ms adelante en el curso. 4.4.1 Pestaa Items

Las opciones principales de esta pestaa aparecen resaltadas en rojo. El resto de opciones son de inters, pero no de uso comn, por lo cual se deja el estudio para que usted lo realice por cuenta suya. Las dudas que puedan surgir se respondern a travs del aula virtual, los foros o el correo electrnico.

Distribution Este cuadro desplegable permite seleccionar la distribucin de probabilidad que se usar para la generacin de los objetos en el sistema. Se pueden seleccionar las distribuciones de probabilidad ms comunes y las ms usadas en el mbito estadstico: beta, binomial, constante, erlang, exponencial, gamma, geomtrica, hiper exponencial, uniforme entera, log normal, normal, pearson tipo V, pearson tipo VI, poisson, real uniforme, triangular y weibull. Adicionalmente presenta la opcin de crear tablas empricas para introducir distribuciones de probabilidad discretas.
Autor: Carlos Andrs Sierra Betancur Pgina 17 de 38

Typical use Presenta los usos ms comunes que se le da a la distribucin de probabilidad seleccionada. Time units Muestra las unidades de medicin de los datos representados por la distribucin de probabilidad seleccionada o por la tabla emprica. Recuerde que si las unidades de tiempo globales de la simulacin no han sido definidas (en el men Run/Simulation Setup), el cuadro de dilogo que permite seleccionar las unidades de tiempo no aparece. Esto aplica para todos los bloques que usen unidades de tiempo para sus cuadros de dilogo. Parmetros Dependiendo del tipo de distribucin de probabilidad seleccionado, los parmetros que se mostrarn podrn ser uno, dos o tres. Cada uno tendr su respectivo nombre y podr ser ingresado en el cuadro de dilogo respectivo. En el caso de las tablas empricas aparecer la tabla de dos columnas descrita anteriormente en esta misma seccin. Recuerde que estos parmetros pueden ser modificados de forma dinmica durante la simulacin por medio de los conectores que aparecen en la parte inferior del bloque etiquetados con 1, 2 y 3. Value of item(V) Esta opcin permite especificar el valor de los objetos que son generados por el bloque. De este tema hablaremos ms adelante cuando trabajemos con atributos, pero por el momento tenga en cuenta que es posible que un objeto que se genera en el bloque en realidad puede representar tambin un lote de objetos que entran al sistema de forma simultnea, caso en el cual el tamao del lote sera asignado por medio de la especificacin del valor del mismo. Un valor de 1 indica que llegan elementos individuales al sistema, mientras que un valor mayor a 1 representa la llegada de conjunto de objetos al sistema en el mismo instante de tiempo. Un ejemplo de la vida real para esto sera la llegada de un pedido de partes de repuesto a un taller. El valor que se especifica en el cuadro de dilogo se puede modificar durante la simulacin por medio del uso del conector de entrada de datos V, que se encuentra en la parte inferior del bloque.

Autor: Carlos Andrs Sierra Betancur Pgina 18 de 38

4.5 Discrete Event: Generators: Program


salida de objetos V start Conector que permite saber el v alor de los objetos que son generados Conector univ ersal que permite reiniciar el programa cuando por el ingresa un objeto o un v alor may or de 0.5 (v erdadero)

Al igual que el bloque Generator, este bloque permite la generacin de llegadas de objetos al sistema. La diferencia radica en que aqu se debe conocer con anticipacin el tiempo de llegada de los objetos. Esto se da, por ejemplo, cuando se sabe con anterioridad la hora a la cual llegar el pedido de un proveedor, o cuando a un consultorio mdico los pacientes siempre llegan con cita, y estas son asignadas con anterioridad. Su cuadro de dilogo presenta tres pestaas: Program, Animate y Comments. Es de nuestro inters estudiar la pestaa Program nicamente, ya que las otras dos son comunes a todos los bloques y ya han sido explicadas previamente. 4.5.1 Pestaa Program

Autor: Carlos Andrs Sierra Betancur Pgina 19 de 38

Time units Permite seleccionar las unidades de medicin de los tiempos en que se programa la ocurrencia de los eventos. Recuerde que si las unidades de tiempo globales de la simulacin no han sido definidas (en el men Run/Simulation Setup), el cuadro de dilogo que permite seleccionar las unidades de tiempo no aparece. Repeat the program every Si esta opcin est habilitada, el programa se repetir cada determinado nmero de unidades de tiempo (equivalentes al valor introducido en el cuadro de texto). Las unidades de tiempo usadas se pueden seleccionar del cuadro de dilogo que aparece al lado. Recuerde que si las unidades de tiempo globales no han sido definidas, sta opcin no estar disponible. En la grfica podemos ver que el programa mostrado se repetir cada 24 horas. Programa Esta opcin corresponde al programa propiamente dicho, el cual se puede ingresar usando la tabla de cuatro columnas que aparece en la parte central del cuadro de dilogo. All se debe ingresar el tiempo de ocurrencia de cada uno de los eventos (Output Time), el valor (Value) que tendr el objeto generado (recuerda que en el bloque Generator se poda asignar un valor a los objetos? Pues aqu el concepto es el mismo), la prioridad del objeto (lo cual es opcional) y algn atributo que se quiera asignar. Estos ltimos dos elementos sern analizados ms adelante (parece que todo lo vamos a ver ms adelante!!! pero no se preocupe, que as ser). Por ejemplo, en la grfica podemos ver que hay un objeto que llegar al sistema a las 8 de la maana, el segundo llegar a las 10 de la maana, el tercer objeto a las 4 de la tarde y el cuarto objeto ser generado a las 6 de la tarde. Tenga en cuenta que aqu la unidad de tiempo seleccionada son las horas, as que las 16 correspondern a las 4 de la tarde en realidad. Adems, note que como el valor de los objetos generados es de 1, la llegada al sistema ser de objetos individuales, y no de lotes. Este programa se repetir cada 24 horas, es decir, todos los das. Tambin podra darse el caso en que se quiera simular un sistema que no trabaje las 24 horas del da, sino que ms bien lo haga de 8 de la maana a 6 de la tarde. En este caso podra ser deseable hacer que los das laborales duren 10 horas en lugar de 24. Con esto surge la necesidad de modificar el programa que vimos anteriormente para que se amolde a las nuevas condiciones:

Autor: Carlos Andrs Sierra Betancur Pgina 20 de 38

De esta forma tenemos dos programas equivalentes, pero uno que se ejecuta en das de 24 horas, mientras que el otro se ejecuta en das laborales de 10 horas de duracin. Es as como las 8 de la maana del programa original pasaran a ser las cero horas del da laboral. Las 10 de la maana sera la segunda hora, las 4 de la tarde sera la hora 8 y las 6 de la tarde sera la hora 10. Y el programa ahora se repetir cada da laboral, es decir, cada 10 horas. Este podra ser el caso de una empresa que recibe sus pedidos de materias primas de cuatro proveedores diferentes, los cuales envan sus productos a las horas mostradas en el programa. Para culminar la presentacin del bloque Program, es de especial inters notar la presencia del conector universal start que se encuentra en la parte inferior del bloque. Este conector permite reiniciar el programa en cualquier momento de la simulacin, haciendo que todos los eventos programados se vuelvan a ejecutar en el mismo orden cronolgico, pero tomando como hora cero el momento en que se activa dicho conector. Activar un conector universal se refiere a dos posibles eventos: el primero es que por dicho conector ingrese un valor verdadero (en Extend se consideran verdaderos todos los valores mayores de 0.5). El segundo es que por el conector ingrese un objeto. Cualquiera de estas dos acciones se considera una activacin del conector y hacen que el programa se inicie de nuevo, de forma inmediata.
Autor: Carlos Andrs Sierra Betancur Pgina 21 de 38

4.6 Discrete Event: Queues: Queue, FIFO


Conector que muestra si la f ila est llena o no. F = 1 --> f ila llena. F = 0 --> f ila no llena. F salida de objetos L W Muestra la demora del prximo objeto que v a a salir de la f ila

entrada de objetos

Muestra la longitud de la f ila en cualquier instante de la simulacin

Las filas en s son bloques bastante sencillos, pero a la vez, muy utilizados en todas las simulaciones. Es difcil pensar en algn sistema de la vida real que no incorpore algn tipo de fila: colas, buffers, amortiguadores, muelles, acumuladores, etc. La cola FIFO es una cola que permite el ingreso de objetos para luego retenerlos durante un determinado periodo de tiempo y cuando un servidor queda desocupado, para atender a los objetos contenidos en ella, libera al primer objeto que lleg a la fila, de los que actualmente se encuentran en ella. El cuadro de dilogo presenta dos pestaas de inters que son bastante sencillas. La primera (Queue) permite configurar los parmetros de la fila propiamente dichos, mientras que la segunda permite visualizar las estadsticas de inters que se pueden obtener. 4.6.1 Pestaa Queue

Las opciones que encontramos aqu son: Maximum queue length Esta opcin es la que contiene el nmero mximo de objetos que puede haber en un momento dado en la fila durante la simulacin, o lo que es equivalente, la capacidad mxima de la fila. Cuando no se sabe la capacidad de objetos que pueden existir en la fila, suele asignarse un valor muy grande a esta opcin. Con esto se busca realizar un anlisis de los resultados de la fila que permita determinar la cantidad mxima de objetos que podr albergar la fila en un instante dado. En otras ocasiones la capacidad de la fila simplemente no representa una restriccin para el sistema analizado, lo cual es otra razn para asignar valores grandes a esta propiedad.

Autor: Carlos Andrs Sierra Betancur Pgina 22 de 38

Stop simulation when the queue is full Si esta opcin se encuentra habilitada, la simulacin se detendr en caso de que la fila llegue a alcanzar el lmite de su capacidad. Esto se hace en sistemas en los cuales esta situacin no es deseable, y para los cuales se requiere tener un control sobre la simulacin que indique cuando dicha condicin se cumpla. Cuando la opcin no se encuentra activada y la fila se llena, los objetos que intenten ingresar a sta no podrn lograrlo, con lo cual se producir un bloqueo en el flujo de objetos a travs de los bloques que se encuentren antes de la fila. Esta situacin es indeseable, y cada vez que ocurra se debern tomar medidas para prevenir su repeticin. Calculate waiting costs Si esta opcin se encuentra activada, la fila acumular costos de oportunidad para los objetos que permanezcan en ella por algn tiempo. Esta opcin se ver con ms detalle cuando se trabaje el tema de atributos (si, otra vez me sal por la tangente con el mismo cuentecito lo nico que puedo decir en mi defensa es tngame f).

Autor: Carlos Andrs Sierra Betancur Pgina 23 de 38

4.6.2

Pestaa Results

En esta pestaa encontramos todas las estadsticas de importancia para el anlisis del desempeo de la fila. Ave. Length Es la longitud promedio que tuvo la fila durante toda la simulacin. Su valor es un buen indicador de la capacidad mnima (si es que hay restricciones al respecto) que debera tener la fila en el sistema real. Ave. wait Es una de las medidas de desempeo ms importantes que se pueden obtener de una fila, porque refleja la demora promedio que tuvieron los objetos en ella. Este valor es el tiempo que se espera que se demore un objeto en el sistema real haciendo fila. Max. length Es la longitud mxima que alcanz la fila durante la simulacin. Es un valor muy importante para saber cual debera ser la capacidad de la fila en el sistema real si se busca que esta nunca se llene. Si el valor que aparece aqu iguala a la capacidad de la fila, definida en la pestaa Queue, se deben tomar medidas correctivas que impidan que dicha situacin se presente nuevamente. Total cost Despliega el costo de oportunidad acumulado para todos los objetos que estuvieron en la fila. S, adivin ms de este tema en unidades posteriores. Length Muestra la longitud que tena la fila al culminar la simulacin. Valores muy altos de este indicador representan sistemas en los cuales se pueden estar represando objetos gradualmente, dando un claro indicio de la falta de capacidad de atencin de los servidores o de las actividades que siguen a la fila. Esto es un signo claro de un cuello de botella en el sistema. Por otro lado, valores cercanos a cero suelen representar sistemas fluidos, en los cuales los objetos se mueven libremente a travs de los procesos y las actividades, sin que se generen cuellos de botella.

Autor: Carlos Andrs Sierra Betancur Pgina 24 de 38

Arrivals Es una medida de la cantidad de objetos que entraron a la fila Departures Es una medida de la cantidad de objetos que salieron de la fila. Resulta obvio que este valor siempre ser igual o inferior al valor de llegadas (arrivals). Utilization Permite conocer el porcentaje de utilizacin de la capacidad total de la fila durante la simulacin. Valores muy cercanos a cero indican una fila que escasamente fue usada durante la simulacin, debido a su gran capacidad o a los pocos objetos que llegaron a ella. Valores muy cercanos a uno indican una fila congestionada, que posiblemente pudo llegar a estar totalmente llena en ocasiones, y que puede estar antecediendo procesos o actividades que restringen el funcionamiento del sistema (restricciones de capacidad o cuellos de botella).

Autor: Carlos Andrs Sierra Betancur Pgina 25 de 38

4.7 Discrete Event: Queues: Queue, LIFO

La cola LIFO es una cola que permite el ingreso de objetos para luego liberarlos cuando un servidor queda desocupado. Los objetos que llegan de ltimos a la fila son los primeros en salir de la fila. Su funcionamiento, sus cuadros de dilogo y las opciones y pestaas de importancia son exactamente iguales a las vistas para la cola FIFO.

4.8 Discrete Event: Routing: Exit


Exit 332 # Conector que permite conocerla cantidad de objetos que han salido del sistema a trav s de este bloque.

entrada de objetos

El bloque Exit es un bloque muy sencillo que sirve para que los objetos presentes en el sistema puedan abandonarlo. Debido a esto, slo tiene un conector de entrada de objetos y otro de salida de informacin, por medio del cual se puede consultar el nmero de objetos que han salido a travs del bloque. En su cuadro de dilogo encontraremos un elemento con el nombre Exited, que no es ms que la cuenta de objetos que han salido del sistema por esta salida. Este valor es el mismo que entrega el conector #.

Autor: Carlos Andrs Sierra Betancur Pgina 26 de 38

4.9 Discrete Event: Routing: Exit (4)


Conector que permite conocer la cantidad total de objetos que han salido del sistema a trav s de este bloque.

entrada entrada entrada entrada

1 2 3 4

de de de de

objetos objetos objetos objetos

# Exit (4)

Conector que permite conocerla cantidad de objetos que han salido del sistema a trav s de este bloque, por las salidas 1, 2, 3 y 4.

Este bloque funciona de la misma forma que el bloque Exit, y sirve para lo mismo: para permitir la salida de objetos del sistema. No obstante, en algunas ocasiones se puede requerir que haya dos o ms salidas diferenciadas para los objetos, por lo cual se usa este bloque en lugar de tener que introducir varios bloques Exit sencillos. Hay cuatro entradas de objetos al bloque, cada una de las cuales permite la salida de objetos del sistema. Y de cada una de ellas se lleva el registro discriminado del nmero de salidas que se han producido a travs de l. Adems, el cuadro de dilogo del bloque tambin despliega el nmero total de objetos que han salido del sistema usando cualquiera de sus conectores. Esta misma informacin es la que se puede obtener de los conectores de informacin de la derecha del bloque (cantidad de objetos que han salido por cada conector) y por el conector de la parte superior del bloque marcado con el smbolo # (el cual muestra la suma total de salidas del bloque).

Autor: Carlos Andrs Sierra Betancur Pgina 27 de 38

4.10 Discrete Event: Routing: Select DE Output


salen objetos ruta 1 a llegan objetos ? b

select salen objetos ruta 2 Conector univ ersal que acepta v alores u objetos usados en la toma de las decisiones de enrutamiento

El bloque Select DE Output es el bloque ms complejo que trataremos aqu. El concepto es bastante sencillo: toma objetos provenientes de una fuente (de una ruta) y los enva por una de dos rutas salientes del bloque, dependiendo de una decisin que se toma al interior del bloque. La complejidad no radica en su funcionamiento, sino ms bien es el nmero de opciones que hay disponibles para tomar la decisin y enrutar los objetos. Este es otro de los bloques que cuenta con un conector universal (select) para modificar su funcionamiento. En este caso, el conector select ser el encargado de proveer los parmetros necesarios para la toma de las decisiones que se basan en su uso. A medida que veamos las opciones del cuadro de dilogo iremos viendo su funcionamiento. 4.10.1 Pestaa Select Output En esta pestaa encontramos todas las opciones necesarias para configurar el enrutamiento de los objetos. El bloque puede tomar las decisiones de dos formas
Autor: Carlos Andrs Sierra Betancur Pgina 28 de 38

bsicas: por medio del uso del conector select (de los valores u objetos que ingresan por l), o sin usar dicho conector. Do not use select connector

Cuando esta opcin se activa, el bloque funciona sin tener en cuenta el comportamiento del conector select. Aqu, las opciones que se tienen para enrutar los objetos son las siguientes: Toggle the outputs: esta opcin hace que de cada n objetos, uno siga por la ruta inferior, mientras que el resto se irn por la ruta superior. En otras palabras, esta opcin intercala la seleccin de la salida de acuerdo al valor dado. En la imagen podemos ver cmo el valor introducido es 5, as que de cada 5 objetos que ingresen al bloque, uno ser enviado por la salida de abajo, mientras que el resto se irn por la salida de arriba.

Autor: Carlos Andrs Sierra Betancur Pgina 29 de 38

Route items by probability: aqu los objetos se enviarn por la salida superior de acuerdo a un valor de probabilidad (p) dado. El valor de probabilidad es el parmetro que se configura para esta opcin. Entonces el p% de los objetos se irn por la ruta superior, mientras que el (1-p)% restante seleccionar la ruta inferior. En la imagen se puede observar que el 20% de los objetos terminarn seleccionando la ruta superior, mientras que el 80% restante se ir por la ruta inferior.

Autor: Carlos Andrs Sierra Betancur Pgina 30 de 38

Esto es cuando la opcin de NO usar el conector select est activada. Pero si la opcin se encuentra desactivada, el bloque tendr en cuenta los objetos o valores que ingresen por el conector, con lo cual existirn tres posibles formas de hacer funcionar el bloque:

Autor: Carlos Andrs Sierra Betancur Pgina 31 de 38

Toggles the outputs when activated: esta opcin es similar a la opcin toggle the outputs presente cuando la opcin de no usar el conector est activada, pero la diferencia radica en que aqu la salida se cambia cuando por el conector select entra un objeto o un valor positivo (se acuerda de cuales son los valores positivos en Extend?). Ms adelante veremos a qu nos referimos con entrada de valores, pero por el momento tenga en cuenta que si por el conector entra un valor mayor que 0.5, la salida seleccionada cambiar instantneamente. Lo mismo sucedera si llegara un objeto. Por ejemplo, suponga que inicialmente los objetos estn saliendo del bloque Select DE Output por la salida superior. En ese momento entra un valor de 3 por el conector select. La salida inferior pasa en ese instante a ser la salida activa, y todos los objetos que sigan pasando por el bloque seleccionarn dicha salida. Si vuelve a entrar un valor positivo por el conector, la salida activa cambiar nuevamente a la superior, y todos los objetos la seguirn seleccionando. Chooses an output based on select value: esta es una de las opciones ms usadas en el enrutamiento de objetos. Su funcionamiento se basa en la combinacin de los valores que entran por el conector y el valor que se entre en el cuadro de texto. ste ltimo permite especificar el valor que tiene que entrar por el conector select para que los objetos sean enviados por la ruta superior. En otras palabras, si se escribe 1 en el cuadro de texto top output is chosen by select y por el conector entra un valor de 1, los objetos se irn por la ruta superior. En la imagen vemos que el cuadro de texto tiene el valor 3, as que siempre que por el conector select ingrese dicho valor, los elementos se enviarn por la salida superior. El programa de forma automtica asigna el valor 4 a los objetos que tomarn la ruta inferior. As, si el conector select recibe un valor de 4, el objeto que pase a continuacin se ir por la ruta inferior. Si el valor que entra por el conector es diferente de tres o cuatro ser considerado como un valor invlido. Hay tres cursos de accin posibles para los valores invlidos: el primero es que los objetos sean enrutados a la salida superior; el segundo es que estos objetos sean enviados por la ruta inferior; por ltimo, los objetos pueden ser rechazados, no permitiendo su ingreso al bloque. Generalmente la forma de hacer que el bloque trabaje es asignando la salida superior al valor que se espera de forma fija, luego el bloque asigna el valor ms uno a la salida de abajo, y como opcin de configuracin se selecciona que los objetos sigan por la ruta de abajo cuando ingrese un valor invlido por el
Autor: Carlos Andrs Sierra Betancur Pgina 32 de 38

conector select. De esta forma slo los objetos con el valor deseado seguirn por la ruta superior. Ahora bien, no es la nica forma de usarlo simplemente, la ms comn. Como lo mencion anteriormente, esta es posiblemente la opcin ms usada para enrutar los objetos a travs de este bloque. Ms adelante (s, volvi a adivinar!!!) cuando trabajemos con valores y atributos podremos dar mayor claridad en todos estos conceptos. Guarde estas notas en un lugar seguro hasta que este momento tan esperado llegue. Hasta entonces, dejaremos la discusin de esta opcin en remojo.

Select connector specifies probability: esta opcin raramente se usa, as que se la dejo como consulta. Seguramente estar incluida dentro del taller de la unidad temtica. (Y vyase acostumbrando, porque a medida que avancemos le dejar ms tareas y consultas para que investigue por cuenta suya ah es donde entra a jugar la parte de la educacin virtual). Decision is made before item enters select block: Esta opcin, como su nombre lo indica, permite especificar si el objeto debe entrar al bloque y luego se debe tomar la decisin, o si por el contrario, primero se toma la decisin y luego el objeto pasa a travs del bloque para ser enrutado. Es muy usada cuando se quiere consultar el valor que entra por el conector despus de que el objeto ha ingresado. Tambin permite que el objeto espere en el bloque mientras la ruta seleccionada es liberada para que el objeto pueda transitar:
Autor: Carlos Andrs Sierra Betancur Pgina 33 de 38

por ejemplo cuando el servidor queda libre, o la mquina termina de procesar la pieza actual. 4.10.2 Pestaa Results Esta pestaa nos muestra los medidores de desempeo ms importantes del bloque Select DE Output.

Top output Muestra la cantidad de objetos que fueron enrutados por la salida superior. Bottom output Muestra la cantidad de objetos que fueron enrutados por la salida inferior. Total Muestra el nmero total de objetos que pasaron a travs del bloque Blocked Permite conocer la cantidad de objetos que tuvieron que esperar en el bloque porque la ruta de salida no se encuentra libre para su trnsito. Este valor slo podr ser mayor que cero cuando la opcin Decision is made before item enters select block
Autor: Carlos Andrs Sierra Betancur Pgina 34 de 38

est habilitada, pues es la nica forma en que un objeto puede entrar al bloque a esperar a que su ruta sea liberada.

Nota Una fila puede actuar como una especie de bloque Select DE Output rudimentario: al conector de salida de una fila se pueden conectar varias salidas (varias lneas de conexin que vayan hacia otros bloques) y la fila enviar los objetos que contiene a la primera salida que los solicite, es decir, la primera ruta saliente que desocupe algn proceso o que tenga servidores disponibles para procesar los objetos que hay en la fila.
T llegan objetos F L W D Serv idor 2 T U siguen objetos ruta 3 D Serv idor 3 D Serv idor 1 T U siguen objetos ruta 2 U siguen objetos ruta 1

4.11 Discrete Event: Routing: Combine


entrada 1 de objetos a salida unif icada de objetos entrada 2 de objetos b

La funcin de este bloque es la de tomar los objetos provenientes de dos fuentes diferentes y unirlos en una sola ruta saliente. Un ejemplo de utilizacin es cuando los pacientes estn siendo atendidos por uno de dos doctores disponibles y, al terminar su consulta, pasan a donde una sola secretaria que se encarga de cobrar el valor de la consulta. Dentro del cuadro de dilogo del bloque no encontramos nada, pues ste es simplemente un bloque de enrutamiento que permite unir flujos.

Autor: Carlos Andrs Sierra Betancur Pgina 35 de 38

5 Ejemplo
Como le haba prometido antes, en este ejemplo quiero mostrarle cmo cambia el valor de utilizacin de una actividad mltiple (Activity, Multiple) cuando se modifica su valor de capacidad. Considere un sistema con dos actividades: la primera con capacidad para 100 objetos y la segunda con capacidad para 5 objetos. Las llegadas son exponenciales con media 1 unidad de tiempo, y los tiempos de servicio son fijos de 1 unidad de tiempo por objeto, para las dos actividades. Lo nico que queremos ver es la utilizacin de las actividades. Note que el ejercicio ha sido diseado para que cada actividad reciba el mismo nmero de objetos durante la simulacin, para lo cual el bloque Select DE Output usa la opcin toggle the outputs. Adems, la capacidad es ms que suficiente, incluso cuando la actividad slo tiene capacidad para cinco objetos, lo que garantiza que ambas puedan terminar de procesar todos los objetos que lleguen a ellas durante la simulacin, o en otras palabras, las filas que anteceden a las actividades nunca tendrn objetos esperando en ellas.
ev ent F count F L W 1 F V 1 2 3 LLegan clientes L W 2? a b b F F L W U U

D C L W Capacidad = 100 a Exit 984 salidas #

select toggle output

D C L W Capacidad = 5

Despus de correr la simulacin para 1000 unidades de tiempo se obtienen los siguientes resultados para las actividades: Si la capacidad la establecemos en 100:
Autor: Carlos Andrs Sierra Betancur Pgina 36 de 38

Si la capacidad fuera 5

El nmero de objetos que entraron y salieron en cada actividad fue de 492. Para la primera actividad se tena una capacidad de: 100 objetos x 1000 unidades de tiempo = 100000 unidades de tiempo Como ambas actividades estuvieron en trabajando durante:
Autor: Carlos Andrs Sierra Betancur Pgina 37 de 38

492 objetos x 1 unidad de tiempo = 492 unidades de tiempo La utilizacin de la primera actividad fue de: 492 / 100000 = 0.00492 Pero para la segunda actividad se tena una capacidad de: 5 objetos x 1000 unidades de tiempo = 5000 unidades de tiempo As que su utilizacin fue de: 492 / 5000 = 0.0948 Que es veinte veces la utilizacin que se obtuvo para la primera actividad. Resulta claro entonces que la utilizacin de una actividad se ve afectada por su capacidad, tanto como la duracin y frecuencia de los servicios que esta realice.

Autor: Carlos Andrs Sierra Betancur Pgina 38 de 38

You might also like