Manual condensado de EXTEND Para modelar en tiempo discreto · programación podían hacerlo. No...

36
Manual condensado de EXTEND Para modelar en tiempo discreto

Transcript of Manual condensado de EXTEND Para modelar en tiempo discreto · programación podían hacerlo. No...

Page 1: Manual condensado de EXTEND Para modelar en tiempo discreto · programación podían hacerlo. No obstante ahora con el desarrollo de la tecnología estos inconvenientes se han ido

Manual condensado de EXTEND

Para modelar en tiempo discreto

Page 2: Manual condensado de EXTEND Para modelar en tiempo discreto · programación podían hacerlo. No obstante ahora con el desarrollo de la tecnología estos inconvenientes se han ido

CONTENIDO

1. INTRODUCCIÓN....................................................................................................

2. EXTEND. .................................................................................................................

2.1. ¿QUÉ ES EXTEND?.........................................................................................

2.2. ¿CÓMO ENTRAR A EXTEND?......................................................................

2.3. ENTORNO. .......................................................................................................

2.4. USOS DE EXTEND........................................................................................

2.5. VENTAJAS E INCONVENIENTES AL SIMULAR CON EXTEND. .........

3. SIMULACIÓN DE EVENTOS DISCRETOS.......................................................

3.1. LIBRERÍA DE EVENTOS DISCRETOS. .....................................................

CONECTORES COMUNES EN LOS BLOQUES DE LA LIBRERÍA DE EVENTOS

DISCRETOS. ......................................................................................

3.2. EJEMPLOS. ....................................................................................................

4. CORRER UNA SIMULACIÓN CON EXTEND. .................................................

5. OTRAS LIBRERIAS DE UTILIDAD. ..................................................................

ANEJO A....................................................................................................................

PROBLEMAS DE EVENTOS EN TIEMPO DISCRETO. ...................................

Page 3: Manual condensado de EXTEND Para modelar en tiempo discreto · programación podían hacerlo. No obstante ahora con el desarrollo de la tecnología estos inconvenientes se han ido

1. INTRODUCCIÓN

En una empresa, industria o negocio, evaluar opciones para tomar una decisión no es

una tarea fácil. En un mundo en el que cada día se diversifica la variedad de alternativas

y se intensifica el ritmo competitivo, la exigencia por resultados rápidos y anticipados

requiere enfoques y herramientas innovadoras y potentes.

Ejemplo de ello se puede apreciar en el siguiente caso: el restaurante Can Ninot goza de

gran popularidad, la demanda de clientes que requieren su servicio es cada vez mayor,

la administración prevé que dentro de poco tiempo serán ineficientes las instalaciones

con las que se cuenta, hecho que podría afectar la calidad del servicio que lo distingue

como el mejor restaurante de la ciudad. Previendo esto se quiere implantar una

estrategia de gestión efectiva para continuar con el éxito del negocio. Sabiendo que si

no se actúa, el restaurante Chiness aprovechará cualquier oportunidad para quitarle

clientela.

En este sentido la cuestión que se plantea es ¿Qué decisión tomar dentro del plan de

acción?: Ampliar las instalaciones, cambiar el diseño de las mesas, requerir más

camareros, ampliar el horario, realizar reservas, pagar overbooking, incrementar los

precios.

¿Cual es la más indicada de acuerdo al presupuesto?, ¿Existe limitante de espacio?,

¿Cual de ellas arroja el mejor beneficio?.

El mundo actual es muy competitivo, por lo tanto tenemos que buscar herramientas de

apoyo para tomar decisiones efectivas y eficaces.

En este contexto la simulación constituye una metodología capaz de dar respuesta a

estas cuestiones. La simulación puede ayudar a predecir el impacto de determinadas

acciones sin incurrir en los riesgos, compromisos y plazos de una implementación real.

En entornos competitivos, la disponibilidad de herramientas de apoyo a la toma de

decisiones resulta importante para toma de decisiones efectivas y eficaces.

Antiguamente el empleo de la simulación era reducido o nulo. Ello debido al

inconveniente computacional, que imposibilitaba obtener respuestas oportunas a las

interrogantes planteadas y/o realizar modificaciones del modelo, así como a la

complejidad en el algoritmo para simular, por ello solo expertos en materia de

programación podían hacerlo. No obstante ahora con el desarrollo de la tecnología estos

inconvenientes se han ido disminuyendo.

Hay una gran variedad de entornos que ayudan al desarrollo de la simulación, como

ejemplo se puede citar: Microdinamo, Stella, Extend, Arena, etc. En este texto nos

centraremos en la introducción al uso de EXTEND.

Page 4: Manual condensado de EXTEND Para modelar en tiempo discreto · programación podían hacerlo. No obstante ahora con el desarrollo de la tecnología estos inconvenientes se han ido

2. Visión general de EXTEND

2.1. ¿Qué es extend? Extend es una herramienta de simulación que permite visualizar en forma intuitiva el

comportamiento de un sistema dinámico. Basado en una arquitectura de bloques

preprogramados en ambiente gráfico que permite reproducir procesos y operaciones en

una amplia gama de aplicaciones, sin necesidad de programación alguna.

Se entenderá por simulación la definición dada por Shannon: proceso de diseñar un

modelo de un sistema real y realizar experimentos con él para entender el

comportamiento del sistema o evaluar varias estrategias (dentro de los límites impuestos

por un criterio o conjunto de criterios) para la operación del sistema.

Para ejemplificar lo anterior se analizará la cola creada en una verdulería (Fig.1).

¿Qué elementos comprenden el sistema?

1. Dependiente que atiende a los clientes.

2. Cliente que espera ser atendido.

3. Entrada y salida a la verdulería.

SISTEMA MODELO EN EXTEND

Fig. 1. Representación de la cola presente en una verdulería.

Trabajando en Extend Una vez abierto aparece la ventana Demo.mox (Fig. 3), la cual pone a disposición una

amplia gama de ejemplos de diversos sistemas para observarlos, analizarlos y

estudiarlos. En una primera toma de contacto, en caso de no requerir dicha información

bastará con cerrar la ventana.

Page 5: Manual condensado de EXTEND Para modelar en tiempo discreto · programación podían hacerlo. No obstante ahora con el desarrollo de la tecnología estos inconvenientes se han ido

Fig. 3. Ventana Demo.mox.

Para empezar a trabajar se ha de abrir algún modelo, nuevo, si se quiere construir uno, o

guardado si ya existe.

2.3. Entorno Hay tres tipos de documentos en Extend: Modelos, librerías y ficheros de texto.

2.3.1. MODELOS

El modelo está compuesto por un conjunto de bloques enlazados a través de sus

conectores por medio de conexiones que representan el flujo de información. Cada

bloque contiene la información procesal así como datos de entrada o resultados. Una

vez creado el modelo, este puede ser modificarlo mediante la agregación o eliminación

de bloques, moviendo conexiones o cambiando datos del bloque. Cuando se quiere

insertar un bloque al modelo, se copia directamente de la librería donde este contenido

el bloque.

Extend cuenta con algunos ejemplos de modelos en la carpeta correspondiente

(File|Open|Examples). En ella existe una amplia gama de ejemplos que pueden servir

como referencia para los modelos que se pretendan construir, ofreciendo un panorama

de lo que se puede hacer con Extend en la simulación de modelos.

2.3.2. BLOQUES

Se puede definir como bloque a la representación pictográfica (por medio de iconos) de

una función. Así cada bloque contiene en su estructura un programa donde se especifica

la acción o proceso que debe realizar. El bloque es el elemento básico de un modelo en

Extend.

Page 6: Manual condensado de EXTEND Para modelar en tiempo discreto · programación podían hacerlo. No obstante ahora con el desarrollo de la tecnología estos inconvenientes se han ido

Para que actué dentro del modelo deberá recibir información ya sea mediante el ingreso

directo de datos a su diálogo de entrada y/o utilizando el conector de entrada, dicha

información será procesada por el programa que contiene en su estructura, emitiendo así

una salida o resultado, disponible en los diálogos de salida y/o en el conector de salida,

de esta manera podrá existir un intercambio de información de bloque a bloque si se

establece una conexión.

Partes de un bloque. Cada bloque está formado por una serie de mecanismos básicos

como son:

PARTE DESCRIPCIÓN

Diálogo

Es la ventana que se abre cuando se da doble clic sobre el icono del bloque. El diálogo permite introducir información al bloque, así como

también reportar resultados.

Código

ModL

ModL es el lenguaje de programación que hace que el bloque trabaje. El programa lee información de los conectores, diálogos y del ambiente del

modelo produciendo así una salida que puede ser usada por otros

bloques. Un bloque puede también preguntar y controlar otros bloques

en el modelo a través de su código.

Icono

El icono es la representación pictográfica del bloque. Se puede dibujar el icono con el dibujo de Extend, o con cualquier otro programa de dibujo,

o copiando un icono de otro ambiente.

Animación

Es una parte animada del icono, que solo se puede ver si se activa la casilla de Show Animation mientras se corre la simulación. La

simulación puede ser mostrada sobre el bloque del icono o podría

mostrarse también fuera de él.

Conectores

Los conectores de entrada y salida del bloque. Estos se encuentran en el icono y transmiten la información hacia y/o del código del programa.

Los bloques pueden también transmitir información de forma no visible

sin usar conectores, a través de un bloque de mensaje y variables

globales.

Texto de

ayuda

Para acceder a la ayuda se debe dar clic en el botón inferior izquierdo que aparece en el diálogo de cada bloque. La ayuda explica de forma

resumida para que sirve cada bloque, sus conectores, cuales son las

entradas y salidas, etc.

Diálogo

La mayor parte de los bloques tienen un diálogo asociado con ellos. Una de las

funciones de los diálogos es introducir valores y ajustar parámetros, además de ver los

resultados de las corridas de simulación.

Para abrir el diálogo de un bloque, se deberá presionar dos veces el ratón sobre el icono

del bloque.

Se pueden dejar diálogos abiertos mientras se esta corriendo la simulación (aunque esto

reduce la velocidad) así se puede ver como varían algunas variables a medida que

evoluciona la simulación. Esto puede resultar útil para mostrar valores que se deseen

controlar durante la simulación. Además también es posible modificar el valor de los

parámetros de un diálogo mientras se corre la simulación.

Page 7: Manual condensado de EXTEND Para modelar en tiempo discreto · programación podían hacerlo. No obstante ahora con el desarrollo de la tecnología estos inconvenientes se han ido

Un diálogo puede ser muy simple con poca información o más complejo con diferentes

pestañas y varios parámetros e incluso tablas. En general siempre aparecen los botones

para aceptar (OK) o cancelar (Cancel).

Resumiendo se dirá que los diálogos son los mecanismos útiles para:

1. Ingresar datos al bloque del modelo. Por ejemplo introducir el contenido inicial en el

bloque “Accumulate” (Fig. 9).

Fig. 9. Diálogo del bloque Accumulate.

2. Reportar resultados. Por ejemplo en la pestaña de resultados del bloque “Queue FIFO” (Fig. 10).

Fig. 10. Diálogo del bloque de la cola FIFO.

3. Realizar comentarios o asignar diferentes imágenes para la animación.

Nota: Si se ha conectado una entrada y también a su vez se ha introducido un valor para

esa entrada en el diálogo esta será omitida ya que el valor del conector siempre

sobrescribirá el valor del diálogo.

Conectores y conexiones.

La mayor parte de bloques en Extend tienen conectores de entrada y salida,

representados por pequeños cuadrados conectados a cada lado del bloque. De manera

visual se puede observar la diferencia entre el conector de entrada y el conector de

salida de un bloque ya que éstos últimos son representados con una línea más obscura

(Fig. 11).

Fig. 11. Conectores de entrada y salida.

Page 8: Manual condensado de EXTEND Para modelar en tiempo discreto · programación podían hacerlo. No obstante ahora con el desarrollo de la tecnología estos inconvenientes se han ido

La información que fluye dentro del bloque va del conector de entrada al conector de

salida.

Se tiene tres tipos de conectores:

Conectores que transportan valores.

Conectores que transportan ítems.

Conector universal, que puede transportar tanto ítems como valores.

Los conectores que transportan valores son representados por pequeños cuadros

dibujados con línea sencilla, en cambio los conectores que transportan ítems son

representados por pequeños cuadros dibujados con líneas dobles, y el conector universal

es representado por un cuadrado dentro de un círculo, como se puede apreciar en la Fig.

12.

Fig. 12. Representación de los diversos conectores.

Los bloques de la librería de eventos discretos también contienen conectores de valor,

pero sus conectores principales son los conectores de entrada y salida que pasan

entidades (llamados ítems).

El conector de salida admite enlaces a diferentes bloques. En cambio el conector de

entrada sólo admite un enlace de conexión.

Para enlazar los bloques a través de los conectores se utilizan líneas llamadas

conexiones, estas muestran el flujo de información del bloque a través del modelo.

Como se observa en la figura las conexiones de modelos de eventos en tiempo continuo

se caracterizan por ser líneas simples, y realizar un flujo lógico de valores. En cambio

en modelos de eventos en tiempo discretos el flujo lógico es a través de ítems y las

conexiones de este tipo de modelo son dobles. (Fig. 13.)

Fig. 13. Representación de conexiones para bloques de modelos de evento continuo y discreto.

Page 9: Manual condensado de EXTEND Para modelar en tiempo discreto · programación podían hacerlo. No obstante ahora con el desarrollo de la tecnología estos inconvenientes se han ido

2.3.3. LIBRERÍA

Una librería básicamente se describe como un almacén de bloques. Extend cuenta con

un gran número de librerías las cuales incluyen bloques que son los elementos que

sirven para crear modelos de forma ágil y rápida.

Como librerías básicas de Extend cabe destacar a la librería genérica y a la librería de

eventos discretos. No obstante existen librerías complementarias como Manufacturing,

BPR, Plotter, Animation, entre otras. Estas librerías en conjunto permiten modelar un

importante número de procesos sin escribir ninguna ecuación.

Por otra parte existe la posibilidad de crear nuevos bloques, o modificar los ya

existentes y a su vez guardarlos en librerías nuevas o ya existentes.

¿CÓMO ABRIR UNA LIBRERÍA? Para trabajar con Extend y poder crear modelos es necesario tener acceso a los bloques que se van a utilizar en la construcción del modelo. Como esos bloques se guardan en

librerías, estas deben ser abiertas previamente para poder tener acceso.

1. Dar clic en el menú Library de la barra de comandos.

2. Seleccionar Open library (Fig. 4).

Fig. 4. Open Library de la barra de comandos.

3. Seleccionar del catálogo de librerías disponibles en Extend la que se requiera usar.

Por ejemplo la librería “Generic”. Dar clic en el botón Abrir (Fig. 5).

Fig. 5. Ventana Abrir, muestra las librerías existentes en Extend.

4. Dar clic en Library, Generic.lix, Open Library Windows y aparecerá la

ventana de la librería con los respectivos bloques, como se muestra en la fig. 6.

Page 10: Manual condensado de EXTEND Para modelar en tiempo discreto · programación podían hacerlo. No obstante ahora con el desarrollo de la tecnología estos inconvenientes se han ido

Fig. 6. Librería “Generic”.

2.3.4. FICHEROS DE TEXTO.

Los ficheros de texto almacenan datos de una forma que puede ser leída por casi

cualquier aplicación. Los ficheros de texto son especialmente usados para importar

largas sumas de datos dentro del modelo, por ejemplo de una hoja de cálculo, o exportar

resultados o informes a partir de la ejecución de un modelo.

2.4. USOS DE EXTEND Extend es una herramienta avanzada de simulación que puede usarse para las tareas

propias de la simulación como:

Predecir el curso y los resultados de ciertas acciones.

Entender porque ocurren los eventos observados.

Explorar los efectos de las modificaciones.

Identificar áreas problemáticas antes de la implementación.

Confirmar que todas las variables son conocidas.

Evaluar ideas e identificar eficiencias.

Obtener ideas y estimular el pensamiento creativo.

Comunicar la integridad y factibilidad de los planes.

2.4.1. VENTAJAS DE EXTEND

Realizar una interfase gráfica mostrando las relaciones en el sistema que se esta

modelando.

Animar el modelo, para mejorar la presentación.

Descomposición jerárquica de los modelos, permitiendo que un sistema complejo sea fácil de construir y entender.

Probar de manera rápida todas las suposiciones o alternativas del modelo ya que se

puede cambiar los valores de manera rápida y eficiente.

Reportes para presentaciones y análisis profundos.

Disponibilidad para analizar costos.

Optimización Evolucionaria, Monte Carlo, batch mode y análisis de sensibilidad para sistemas óptimos.

Disponibilidad para ajustar parámetros mientras la simulación esta corriendo.

Page 11: Manual condensado de EXTEND Para modelar en tiempo discreto · programación podían hacerlo. No obstante ahora con el desarrollo de la tecnología estos inconvenientes se han ido

2.5.2. INCONVENIENTES DE EXTEND

El principal inconveniente de Extend es que no es un programa libre, aunque la versión

DEMO es muy potente.

Otra desventaja sería que no se trata de un software orientado a un área de simulación

específica sino que se compone de librerías generales que permitirán tratar problemas a

nivel general.

Page 12: Manual condensado de EXTEND Para modelar en tiempo discreto · programación podían hacerlo. No obstante ahora con el desarrollo de la tecnología estos inconvenientes se han ido

3. SIMULACIÓN DE EVENTOS DISCRETOS

La característica principal de la simulación de eventos discretos radica en que las

entidades del modelo cambian de estado basados en la ocurrencia de los eventos.

La librería de eventos discretos de Extend esta acondicionada para ser usada para

modelar sistemas de eventos discretos como por ejemplo problemas de colas, o de

inventario.

3.1. LIBRERÍA DE EVENTOS DISCRETOS.

La librería de eventos discretos contiene el conjunto de bloques básicos para crear

modelos de eventos en tiempo discreto. Los elementos básicos para modelarlos son: un

generador, una cola, una actividad y la salida del sistema.

BLOQUES DE LA LIBRERÍA DE EVENTOS DISCRETOS. Una vez abierta la librería de eventos discretos (ver sección 2.3.2.) aparecerá la ventana que se muestra en la Fig. 17.

Fig. 17. Bloques de la librería de Eventos discretos.

Los bloques de esta librería pueden ser divididos de acuerdo a las funciones que

realizan: Ejecutivo, actividades, atributos, procesamiento por lotes, generadores,

información, colas, recursos y ruteo. A continuación se definen cada uno de ellos:

Executive /Ejecutivo: Este bloque es necesario en todo modelo de evento discreto.

Gestiona y controla el tiempo del modelo en tiempo de ejecución.

Executive Función

Executive

Este bloque es necesario en todo modelo de evento en tiempo discreto, debe ser localizado a la derecha de todos los bloques del

modelo.

Page 13: Manual condensado de EXTEND Para modelar en tiempo discreto · programación podían hacerlo. No obstante ahora con el desarrollo de la tecnología estos inconvenientes se han ido

Activities/Actividades: Procesan ítems.

Activities Función

Activity, Delay

Sostiene un ítem por un tiempo, entonces lo libera. El tiempo de la actividad es especificado en el diálogo o, a través del D conector (el

valor del D conector sobrescribe el valor en el diálogo).

Activity, Delay

(Attibutes)

Trabaja de forma similar que el bloque “Activity delay” excepto que permite usar el valor del atributo como retraso y/o modificar su

valor.

Activity, Multiple

Este bloque admite más de un ítem a la vez. El número máximo de ítems se indica en el diálogo o a través del conector C. El tiempo de

retraso para cada ítem es colocado a través del conector D o si nada

es conectado ahí, puede ser especificado en el diálogo.

Attributes/Atributos: Dan a los atributos una identidad.

Attributes Función

Change

Attribute

Cambia el valor del atributo de los ítems que pasan a través de él. Se debe especificar el nombre del atributo a cambiar, la operación a usar

en el cambio, y el valor del modificador para cambiar.

Estas operaciones son: incrementar, decrementar, multiplicar, dividir.

Los valores que se pueden usar como modificadores son: una

constante, el valor de otro atributo, el valor del conector A.

DE Equation

Calcula una ecuación cuando un ítem pasa a través de él. Las entradas para la ecuación pueden ser los atributos del ítem, los

valores, prioridades o uno de los cinco valores de los conectores de

entrada. El resultado de la ecuación puede ser opcionalmente

asignado a un atributo.

Get Attribute

Muestra y/o remueve los atributos de los ítems, después los pasa a través de él. Los valores de los atributos son mostrados en el diálogo

de salida y afuera en el conector A. Mientras que los ítems pasan a

través del bloque, el bloque puede leer o quitar un atributo o

cualidad, el atributo se puede especificar como la primera cualidad en

la lista o una cualidad nombrada. Si el atributo es encontrado, su

valor es reportado en el diálogo y enviado a través del conector A. El

conector emite una salida de 1 si el valor del atributo ha cambiado

desde el último valor que ha sido leído.

Get Priority

Lee la prioridad de los ítems después los pasa. La prioridad es mostrada en el diálogo y en la salida del conector P. El valor del

conector emite una salida de 1 si el valor de la prioridad ha

cambiado desde el último valor que fue leído.

Page 14: Manual condensado de EXTEND Para modelar en tiempo discreto · programación podían hacerlo. No obstante ahora con el desarrollo de la tecnología estos inconvenientes se han ido

Get Value

Lee el valor de los ítems después los pasa. El valor es mostrado en el diálogo del conector y en la salida del conector V. El conector de

salida emite una salida de 1 si el valor del valor ha cambiado desde

el último valor que fue leído.

Set Attribute

Asigna atributos a los ítems que pasan a través del bloque. Hasta 7 nombres de atributos y valores pueden ser asignados a un ítem con

cada bloque. Los atributos pueden agregarse o remplazar atributos

existentes. Se puede especificar el valor de uno de los atributos con el

conector A. El valor en el A conector reemplaza el valor

correspondiente en el valor del diálogo.

Attributes/Atributos: Dan a los atributos una identidad.

Attributes Función

Set Attribute

(5)

Asigna atributos a los ítems que son pasados a través del bloque. Hasta 5 atributos y valores pueden ser asignados a un ítem. Los

atributos pueden agregarse o remplazar atributos existentes. Se puede

especificar el valor de cada uno de los atributos con el conector de

valor de entrada.

Set Priority

Asigna una prioridad a los ítems que pasan a través del bloque. El valor de la prioridad puede ser colocado en el conector P o, en el

diálogo. Nota: el más bajo valor (incluyendo números negativos)

tienen la más alta prioridad.

Set Value

Asigna un valor a los ítems. Este se utiliza para cambiar el valor inicial de un ítem de 1 a un valor diverso. Los ítems tienen

originalmente un valor de 1 a menos que el valor sea cambiado por

los bloques Generator, Set Value, Get Attribute, Program, or

Shedule. Nota; los ítems con un valor mayor que uno dentro de las

colas se parten. Por ejemplo si se coloca un valor de 5 sobre un ítem,

cuando este vaya dentro de una cola, este llegará a ser 5 distintos

ítems.

Batching/Procesamiento por lotes: Ensamblan y desensamblan ítems.

Batching Función

Batch

Permite a ítems de varias fuentes ser ensamblados como uno solo. En el diálogo se especifica el número de ítems de cada una de las

entradas que es requerida para producir un ítem de salida. Además

también se puede especificar que ítems de uno o más entradas no

serán traídos dentro del bloque hasta que uno o más de las otras

entradas tengan sus requerimientos completos.

Page 15: Manual condensado de EXTEND Para modelar en tiempo discreto · programación podían hacerlo. No obstante ahora con el desarrollo de la tecnología estos inconvenientes se han ido

Unbatch

Produce varios ítems de un solo ítem de entrada. El número de ítems

producidos en cada salida es especificado en el diálogo. Por defecto,

este bloque detiene sus entradas hasta que su salida sea usada u otra

demanda ocurra en el conector.

Generators/Generadores: Crean ítems, programas.

Generators Función

Generator

Provee ítems con tiempos de arribo aleatorios. Los ítems pueden ser creados con una distribución aleatoria o un rango constante de arribo.

También puedes especificar el número de ítems que arriban en cada

evento utilizando el conector de valor V. Los conectores de entrada1,

2 y 3 te permiten cambiar los parámetros de entrada de la

distribución aleatoria cuando la simulación este en progreso.

Program

Provee ítems programando su entrada en el modelo. Es similar al bloque Generator excepto que los tiempos de llegada de los ítems son

programados, más bien que al azar. Este bloque es usado para las

necesidades repetidoras o del tiempo o con patrones fijos.

Information/Información: Obtiene información de los ítems.

Information Función

Count ítems

Reporta el número total de ítems pasados a través de él en su diálogo y en el conector #. Un valor mayor que 0.5 en el conector r causará

que el conector sea reseteado a cero.

Information

Analiza y muestra la información de los ítems acerca de los ítems que pasan a través de él. Se debe especificar el nombre de los

atributos que se desee observar. Si un atributo no es encontrado la

información estará en blanco.

Show times

Muestra cuando el próximo evento ocurrirá para cada bloque en el modelo. Se puede especificar en el diálogo un retardo antes de

mostrar el diálogo. Este bloque debe ser localizado a la derecha de

todos los bloques para mostrar los eventos de todos los bloques.

Status

Analiza y muestra información acerca de un ítem o valor. Si este bloque es dejado abierto durante la simulación, este parará la

simulación en cada evento y entonces se puede especificar la

longitud del tiempo de pausa antes de mostrar la información.

Timer

Muestra el tiempo que toma a un ítem pasar entre dos partes del modelo. Se puede encontrar que tanto tiempo toma a un ítem pasar de

un bloque a otro. También se puede especificar el tiempo sólo de los

ítems con un atributo en particular.

Page 16: Manual condensado de EXTEND Para modelar en tiempo discreto · programación podían hacerlo. No obstante ahora con el desarrollo de la tecnología estos inconvenientes se han ido

Queues/Colas: Detienen, sortean ítems.

Queues Función

Queue

Attributes

Este bloque representa una cola, que puede ser ordenada en función de un atributo preestablecido. Si no hay atributos establecidos, esta

cola funciona como una cola FIFO. Si algún ítem que no tiene

atributos caerá al final de la cola.

Queue FIFO

En esta cola el que primero entra es el que primero sale. La máxima longitud determina cuantos ítems en la cola pueden ser sostenidos.

También se podría especificar un coste para cuando la cola esta llena

(alcanza la máxima longitud). El diálogo muestra la longitud media

de la cola, el tiempo de espera medio, y la utilización de la cola.

Queue LIFO

Es parecida a la cola FIFO, con la diferencia que ahora los últimos en entrar son los primeros en salir.

Queue

Matching

Es una cola en la cuál los ítems son liberados sólo si ellos tienen un atributo en específico y el valor del atributo marca el valor en el ID

conector. Si hay más de un ítem con el nombre del atributo y el valor,

sólo el primero que entró en el bloque será liberado a no ser que la

opción en el diálogo "Liberación de múltiples ítems" sea

seleccionada.

Queue,

Priority

Una cola que libera ítems por prioridad. El ítem en la cola con el más bajo valor numérico para su prioridad será liberado primero. Si todos

los ítems en la cola tienen la misma prioridad esta se convierte en una

cola FIFO.

Queue,

Resurse Pool

Una cola para las unidades de resource pool. Los ítems esperan hasta que un número especificado de unidades de resource pool este

disponible. El orden de los ítems en la cola es determinada según la

regla que está en el diálogo del bloque Resource Pool.

Rosources/Recursos: Representan ítems como recurso, cambios.

Queues Función

Resource Pool

Este bloque tiene las unidades del resource pool para ser usadas en la simulación. Represntan recursos limitados. A diferencia del bloque

Resource, las unidades Resource Pool no son ítems. Son variables

que indican disponibilidad de un factor. El bloque Resource Pool

trabaja con el bloque Release Resource Pool para liberar los recursos

del Pool.

Page 17: Manual condensado de EXTEND Para modelar en tiempo discreto · programación podían hacerlo. No obstante ahora con el desarrollo de la tecnología estos inconvenientes se han ido

Release

Resourse Pool

Libera un resource pool como un ítem pasado a través de él. Las unidades del resource pool pueden ser liberadas por:

- Seleccionando el botón “nombre Release Resource Pool” y

tecleando el nombre del bloque del Resource Pool y el número de

unidades a ser liberadas.

- Seleccionado el botón “atributo Release Resource Pool” y

especificando un atributo el cual tiene que ser colocado por una cola

o un bloque Resorce Pool.

Resourse

Este bloque sostiene y provee ítems para ser usados en la simulación. Puede ser usado como parte de un sistema abierto o cerrado. Si se usa

este bloque en lugar del Generator o el bloque Program para proveer

ítems a la simulación hay que estar seguros de que hay suficientes

ítems al inicio y así satisfacer los requerimientos durante la

simulación. Este bloque es similar al de la cola. Los ítems pueden ser

expulsados del bloque hasta su agotamiento. Si el contenido del

bloque llega a ser negativo, el bloque no sacará ningún valor hasta

que el contenido del bloque vuelva a ser un número positivo. El

conector de cambio modifica el número de ítems almacenados en el

recurso por el valor del ítem en el cambio.

Queue

Matching

Genera un programa sobre un calendario. Shifs puede ser también ON/OFF o representado por un número. Si un Shift es ON/OFF, los

bloques los cuales usan este Shift serán suspendidos cuando el shift

sea off y opera normalmente cuando el shift sea on. Si el shift es

numérico, los bloques que usan un shift cambiarán su capacidad

basada sobre el valor corriente de este shift. Solo bloques con una

capacidad de unidad múltiple (tal como los bloques Activity Multiple

and Resource) utilizarán el shift numérico.

Routing/Ruteo: Moviendo ítems al lugar correcto.

Routing Función

Activity

Service

Pasa un ítem solo cuando el conector de demanda es conectado y ciertas condiciones existen en la entrada de la demanda (también

cuando el valor de la demanda es verdadero [mayor que 0.5] o se

expulsa en un ítem). Si un conector de salida de ítem es conectado al

conector de demanda, el bloque acumula el valor de los ítems que

entran en ello y pasa muchos ítems a través de él.

Catch

Este bloque recibe ítems enviados por el bloque Throw aunque los bloques no son conectados por líneas de conexión. La conexión entre

los bloques se especifica en su diálogo mediante la etiqueta y el

número de bloque Catch.

Combine

Combina los ítems de dos diferentes fuentes dentro de un solo flujo de ítems. Éste es diferente del bloque Batch el cual une ítems de

diferentes fuentes en un solo ítem.

Page 18: Manual condensado de EXTEND Para modelar en tiempo discreto · programación podían hacerlo. No obstante ahora con el desarrollo de la tecnología estos inconvenientes se han ido

Exit

Pasa un ítem fuera de la simulación. El número total de ítems absorbidos por este bloque es reportado en su diálogo o en el

conector #.

Exit (4)

Pasa ítems fuera de la simulación de hasta 4 entradas. El número total de ítems absorbidos por este bloque es reportado en su diálogo o en

el conector #. El número absorbido por cada entrada es reportado en

el diálogo y en el conector de valor de la derecha del bloque.

Gate

Permite que solo un número específico de ítems estén en una sección del modelo (una restricción de sección). Se especifica en el diálogo el

número de ítems los cuales pueden estar en un área restringida en un

cierto tiempo.

Routing/Ruteo: Moviendo ítems al lugar correcto.

Routing Función

Prioritizer

Da prioridad a las salidas, permitiendo que los ítems sean enviados a procesos en paralelo basados en una prioridad definida por el usuario.

Los ítems saldrán por orden de prioridad. Si dos o más ítems tienen

la misma prioridad, saldrán por el primer conector que haya

disponible de forma secuencial.

Select DE

Input

Selecciona una entrada de entre dos basada en una decisión. Los ítems que están presentes en la entrada seleccionada son pasados a

través de la salida. Los diálogos tienen opciones para seleccionar

basados en la prioridad superior, cambiando que entrada es

seleccionada después de que un número dado de ítems haya pasado o

basado en el conector seleccionado.

Select DE

Output

Selecciona una salida entre dos basados en una decisión. El diálogo tiene opciones para cambiar las salidas después de que un número

dado de ítems haya pasado y seleccionado basado en el conector

selector. Si el conector selector no es usado, tu puedes tener 1 salida

de cada número especificado de ítems yendo al conector superior o a

una probabilidad aleatoria para que cada ítem vaya al conector

superior. Si el conector selector es usado, el diálogo tiene opciones

para accionar la palanca (es decir elegir las salidas secuencialmente

cada vez que el selector es activado), elegir las salidas basadas sobre

el valor en el conector selector o especificando la probabilidad del

conector superior.

Throw

Este bloque lanza ítems al bloque Catch sin usar conector de salida o líneas de conexión. La conexión entre los bloques se hace por

etiquetas y el número de bloque del bloque catch en el diálogo del

bloque Throw.

Page 19: Manual condensado de EXTEND Para modelar en tiempo discreto · programación podían hacerlo. No obstante ahora con el desarrollo de la tecnología estos inconvenientes se han ido

CONECTORES COMUNES EN LOS BLOQUES DE LA LIBRERÍA DE

EVENTOS DISCRETOS.

Conector Significado

# Número de ítems

A Atributo para el ítem pasando a través del bloque

D Suma de tiempo a retrasar el ítem en el bloque

demand

Hace que el bloque acumule una demanda de múltiples ítems si una entrada

del ítem es conectada. También es usado provocar la operación del bloque de

Servicio de Actividad.

Indica un cambio en el valor

F Full: salidas de 1 cuando el bloque este lleno, de otra manera 0

L Longitud de la cola: Número de ítems en la cola

P Prioridad de los ítems pasando a través del bloque.

sensor Observa la presencia de un ítem pero no lo recibe

select Selecciona la entrada o salida basada en las opciones en el diálogo.

T

Tiempo en uso: Salidas de un valor no-cero mientras el bloque esta en uso.

Este valor representa la suma de tiempo desde el evento pasado, en cada

evento cuando, en cada evento cuando el bloque es activado. Tu puedes

conectar esto a un bloque acumulador para encontrar el tiempo total en uso

durante la simulación.

U Utilización; El porcentaje de tiempo en el que el bloque estuvo en uso

durante el cuso de la simulación.

V Valores para los ítems pasando a través del bloque (esto es usualmente 1).

W Tiempo de espera para ítems dejando la cola.

CONSIDERACIONES SOBRE LA LIBRERÍA DE EVENTOS DISCRETOS.

Los modelos de eventos discretos pasan entidades (llamadas ítems) de bloque a bloque

durante la simulación. Los ítems son usualmente generados por el bloque “Generator”

como una distribución aleatoria dentro de parámetros específicos, o por el bloque

“Program” como una lista de cuando los eventos ocurren. Estos ítems a menudo tienen

prioridades y atributos que les ayudan a corresponder más estrechamente a partes,

clientes, y empleos en la vida real.

En bloques de eventos discretos, un conector ítem pasa un ítem y toda la información

asociada con él al próximo conector ítem. El conector de valor y los parámetros del

diálogo especifican información acerca del ítem y sus propiedades (atributos, tiempo,

etc.) además de la información de los efectos que el ítem tiene en el modelo (tales como

longitud de la cola y tiempo de espera).

El objeto de la simulación de estos modelos generalmente es para determinar donde hay

cuellos de botella en el proceso y para ver que partes del proceso podrían mejorarse.

Todo bloque debe de continuar su conexión ya sea a un bloque más o a un bloque de

Page 20: Manual condensado de EXTEND Para modelar en tiempo discreto · programación podían hacerlo. No obstante ahora con el desarrollo de la tecnología estos inconvenientes se han ido

salida. Por lo tanto puedes examinar la salida del bloque Exit y encontrar cuantos ítems

han dejado el modelo.

Se tiene por regla general que todo modelo de eventos discretos debe tener siempre

un bloque Executive localizado en la parte izquierda de todos los bloques del modelo.

ÍTEMS Y VALORES DE INFORMACIÓN.

Las unidades básicas que son pasadas entre bloques de eventos discretos son los ítems.

Los ítems son estructuras de datos complejas que además de valores sobre las variables

que representan también contienen información sobre el tiempo de la simulación. Los

ítems suelen representar entidades individuales que pueden tener propiedades únicas

como el especificado por sus atributos, prioridades y valores. En la fabricación de

modelos, los ítems pueden ser partes sobre una cadena de montaje; en modelos de red,

un ítem sería un paquete de información; en modelos de negocio, los ítems pueden ser

facturas o gente.

Los valores asociados a un ítem pueden proporcionar información relacionada con la

naturaleza de los ítems y acerca de las cantidades asociadas a determinadas variables o

atributos. Otros valores que pueden hallarse entre los resultados que facilitan algunos

bloques están el número de clientes en la cola, o cuantas elementos han sido

transportados o expedidos por un bloque o la frecuencia de ocurrencia de llamadas.

ATRIBUTOS.

Los atributos son un aspecto importante de la simulación de eventos discretos.

Básicamente los atributos son características de un ítem que acompañan al ítem

mientras se desplaza por el modelo. Cada atributo consiste en un nombre y un valor

numérico. El nombre de los atributos es usado para identificarlos y su valor es utilizado

para especificar algún aspecto asociado con el nombre.

PRIORIDADES.

Las prioridades permiten especificar la importancia de un ítem. Por ejemplo, se podría

tener un paso en un proceso de manufactura donde un trabajador mira todo el trabajo

pendiente y entonces decide ordenar y escoger el que es el más urgente. Cada ítem sólo

puede tener una prioridad. La prioridad superior tiene el valor más bajo, incluyendo

valores negativos (es decir un ítem con una prioridad "de -1" tiene una prioridad más

alta que uno con una prioridad "de 2").

VALORES DE ÍTEMS.

Cada ítem puede representar una sola entidad o un grupo. Si el valor de un ítem es 1,

este representa un ítem; si es otro diferente de 1, representará a un grupo. Los ítems

originalmente tienen un valor de 1 a menos que el valor sea cambiado por los bloques

Set Value, Generator, Get Attribute, or Program.

Los ítems con valores diferentes que 1 se tratan de forma diferente dependiendo de la

naturaleza del bloque que los procesa. Viajarán juntos como unidad, siendo procesado

esencialmente como un ítem, hasta que alcanzan una salida, una cola, un batch, o un

bloque de resource, o se envían en un conector universal (tal como cambio, demanda,

selector, o comienzo).

Page 21: Manual condensado de EXTEND Para modelar en tiempo discreto · programación podían hacerlo. No obstante ahora con el desarrollo de la tecnología estos inconvenientes se han ido

RETENER ÍTEMS.

Los bloques de eventos discretos tratan la salida de los ítems de dos formas:

El ítem es retenido en el bloque y lo deja salir solo cuando otro bloque lo requiere,

la mayoría de bloques tienen este tipo de comportamiento.

El ítem es empujado del bloque cuando este es creado, independientemente si será

recogido por otro. Si no puede ser alojado en el bloque consecutivo, se genera un

error.

3.2. EJEMPLOS.

¿CÓMO CREAR UN MODELO DE EVENTOS EN TIEMPO DISCRETO? Para dar inicio a la creación de modelos de eventos en tiempo discreto se hará uso de varios ejemplos.

PROBLEMA 3.1. VERDULERÍA HIPER FRUIT.

Carles dueño de la verdulería Hiper Fruit quiere saber cual es el tiempo medio de espera

de sus clientes así como la longitud máxima de la cola. Se ha observado que los clientes

arriban con una frecuencia que sigue una distribución constante de cada 2 min., y en

promedio el cajero tarda en cobrar una media de 4min.

SOLUCIÓN. a) Arribo de clientes a la verdulería: El arribo de clientes a la verdulería puede estar representado por cualquiera de los dos bloques Generadores cuya función es crear

ítems, no obstante por las características de los datos es conveniente usar el bloque

“Generator” (Fig. 18) el cual proporcionará ítems de acuerdo a la distribución indicada

en su diálogo. En este caso será una distribución constante de 2 min.

Fig. 18. Bloque “Generador”.

b) Esperar turno para pagar: Los bloques que retienen a los ítems mientras son

requeridos son los bloques de cola. En el modelo la cola apropiada para este tipo de

sistemas sería una cola FIFO (Fig. 19), ya que los primeros en entrar serán los primeros

en salir.

Fig. 19. Bloque cola “FIFO”.

Page 22: Manual condensado de EXTEND Para modelar en tiempo discreto · programación podían hacerlo. No obstante ahora con el desarrollo de la tecnología estos inconvenientes se han ido

c) Pago por las verduras, vendrá representado por un bloque de actividad.

El bloque Activity Delay (Fig. 20) es el indicado para representar la actividad de pagar

la verdura, ya que retrasará al ítem por una cantidad de tiempo indicada en el diálogo,

esta cantidad representará el tiempo que tarda el cajero en cobrar.

Fig. 20. Bloque “Activity, Delay”.

De esta manera se podría integrar el modelo realizando las conexiones pertinentes (Fig.

21).

Fig. 21. Resolución del modelo.

Al correr el modelo con un tiempo de simulación igual a 1hr de trabajo, se obtienen los

siguientes resultados de la cola FIFO (Fig. 22). Con la información recabada se puede

dar respuesta a las preguntas realizadas por el dueño de la verdulería.

Fig. 22. Resultados de la simulación para el problema 5: verdulería Hiper Fruit.

Page 23: Manual condensado de EXTEND Para modelar en tiempo discreto · programación podían hacerlo. No obstante ahora con el desarrollo de la tecnología estos inconvenientes se han ido

A partir de los resultados se observa que el tiempo medio de espera es amplio (15 min.),

por lo que se plantea la siguiente interrogante, ¿A cuanto se reduciría la longitud de la

cola, si Carles decidiera contratar a otra persona con las mismas aptitudes?.

Para introducir la variante planteada, bastará con copiar bloque de actividad y realizar

las conexiones pertinentes, como se muestra en la figura 23.

Fig. 23.Resolución del modelo anexando una caja más.

Al correr la simulación se observa que el tiempo medio de espera se reduce a 0.

A continuación se citan diversos problemas, la solución puede observarse en el Anexo

A.

PROBLEMA 3.2. FUNCIONAMIENTO DE UN LAVADO DE AUTOS.

El Sr. German gerente del Lavado de Autos C&S quiere evaluar un proyecto de

expansión de servicios. Para ello, requiere saber cómo se comporta actualmente el

sistema, y que beneficios traería la implantación del proyecto.

Actualmente los autos arriban siguiendo una distribución constante de cada 4 min.

Hay solo una línea de lavado.

Toma 6 min. lavar el auto.

El proyecto de expansión consiste en añadir una segunda estación de lavando con las

mismas características. Siendo esto un ejemplo de procesamiento en paralelo de autos.

¿Qué efectos tiene sobre el sistema esta modificación?.

A su vez dicho proyecto también contempla ofrecer el servicio de engrasado,

estimándose una demanda del 25% sobre los autos que arriban. ¿Cómo modifica esta

decisión al modelo? CREANDO ESTRATEGIAS.

Para consolidar la lealtad de los clientes se tiene la siguiente idea: Se prevé establecer

una promoción de cliente frecuente que consiste en lo siguiente: a lo largo de 5 visitas

Page 24: Manual condensado de EXTEND Para modelar en tiempo discreto · programación podían hacerlo. No obstante ahora con el desarrollo de la tecnología estos inconvenientes se han ido

acumuladas los clientes reciben un cupón, el cuál permitirá por una única ocasión pasar

a la estación de lavado sin tener que formarse. Una interrogante a plantear será ¿Qué ocurre si llegan al mismo tiempo dos clientes con

este cupón?. OTROS ASPECTOS A CONSIDERAR.

Considerar que el tiempo gastado en la estación de servicio es dinámico. Considerar una capacidad límite del estacionamiento. Considerar que cada estación de lavado tiene su propia cola.

PROBLEMA 3.3. FUNCIONAMIENTO DE UNA GASOLINERA.

La compañía Repsol ha recibido grandes quejas por parte de los consumidores de

Terrasa, debido a que tienen que esperar demasiado tiempo antes de que ellos puedan

acceder a la bomba de gasolina. En los últimos meses este hecho ha provocado la

disminución de ventas, por ello la gerencia esta planeando enviar un proyecto a la

corporación que sea viable para eliminar el problema.

No obstante antes de proponer alguna alternativa se desea analizar el sistema planteado.

El comportamiento actual de la gasolinera es el siguiente:

El arribo de coches viene determinado por una función de densidad f(t)=1/5e-(1/5)t

, con t>0.

Ingreso libre a cualquiera de las 2 bombas de gasolina si están disponibles, de lo contrario se debe esperar en una sola fila.

El número máximo de autos esperando en la fila es de 5 debido a una limitante de espacio.

Cada auto tarda un tiempo medio de 1.5 y desviación de 0.5, en tomar gasolina.

Aproximadamente el 30 % de autos requieren el servicio de aceite, actividad que

tarda 0.5 min. más sobre el tiempo medio de la gasolina.

Realizar la simulación y el análisis del proceso para 8 hrs de trabajo.

Una vez obtenido el modelo del sistema, la tarea siguiente será evaluar las diferentes

alternativas de proyectos y seleccionar la que reduzca el tiempo de autos que salen del

sistema por no poder esperar en la cola.

Agregar una bomba más.

Evaluar la alternativa de que solo 2 bombas ofrezcan cargar gasolina y una más

para el servicio conjunto de gasolina con el servicio de aceite, contra la

alternativa de que todas las bombas ofrezcan el mismo servicio.

Establecer dos Filas, con la misma restricción de 5 autos.

PROBLEMA 3.4. FUNCIONAMIENTO DE UNA OFICINA BANCARIA.

Una oficina bancaria abre de 9:00 a 17:00hrs. Normalmente la oficina atiende a 40

clientes por hora. Dispone de dos cajas una con más experiencia que otra para atender al

Page 25: Manual condensado de EXTEND Para modelar en tiempo discreto · programación podían hacerlo. No obstante ahora con el desarrollo de la tecnología estos inconvenientes se han ido

público. Si la cola arriba a 3 personas se abre una caja más hasta reducir la cola a 1 o 0

personas. Según las operaciones a hacer los clientes tardan aproximadamente lo que

indica la tabla.

Tabla de distribución:

TIEMPO 1-2 2-3 3-4 4-5 5-6 6-7 7-8 8-9 9-10

NOVATO 0.05 0.10 0.20 0.15 0.20 0.15 0.07 0.05 0.03

EXPERIENCIA 0.10 0.25 0.15 0.15 0.20 0.15

4. CORRER UNA SIMULACIÓN CON EXTEND.

PASOS PARA CORRER LA SIMULACIÓN.

1. Dar clic en la pestaña Run de la barra de comandos.

2. Seleccionar Run Simulation.

Estos son los dos pasos básicos a realizar para correr la simulación, ya que por default

Extend tiene algunas instrucciones que le indican como y cuando terminar la

simulación. No obstante estas instrucciones pueden ser modificadas en el menú

“Simulation Setup”.

a) Estatus de la Simulación.

Cuando se comienza a correr el modelo, Extend muestra alguna información de status

inicial en la forma de mensajes que aparecen momentáneamente sobre la pantalla.

Dependiendo de la velocidad de la computadora, se pueden ver los siguientes mensajes

“Please wait”, “Cheking data”, o “Initializing Data”.

Una vez que la simulación se esta llevando a cabo, Extend muestra una pequeña barra

de estado.

Los números después del reloj de arena son un estimado del tiempo actual de salida de

la simulación, así que se puede determinar que tan larga es la corrida. El reloj muestra el

tiempo corriente de la simulación, y Run es el número total de simulaciones si es que se

están corriendo simulaciones múltiples.

b) Opciones del menú: Simulation

Setup

El comando “Simulation Setup” del menú “Run” permite especificar cómo y que tan

largo correr la simulación. El diálogo tiene tablas para modelos de eventos en tiempo

discreto y continuo, así como también tablas para números aleatorios y unidades de

tiempo.

Page 26: Manual condensado de EXTEND Para modelar en tiempo discreto · programación podían hacerlo. No obstante ahora con el desarrollo de la tecnología estos inconvenientes se han ido

Tabla de Eventos en tiempo discreto.

Selecciona Descripción.

End simulation at time.

Indica el tiempo final de la simulación.

Start simulation at time

Es el punto en el que se inicia la simulación. Usualmente es 0.

Number of runs El número de veces a correr la simulación.

Global time units Unidades de tiempo en que se regirá el modelo entero.

Comments Este es un ítem opcional usado para documentar aspectos del modelo, tales como las unidades.

Cada vez que se corre una simulación, Extend usa el mismo valor del diálogo contenido

en el diálogo Simulation Setup. Así que habitualmente se usa este diálogo una vez por

modelo.

Generalmente, la única parte que se necesita cambiar en el diálogo es “End simulation

at time” parámetro localizado sobre la tabla de eventos discretos o continuos.

c) Animación. Para animar un modelo de forma automática sólo basta con seleccionar del menú “Run” de la barra de comandos el menú “Show Animation”.

5. OTRAS LIBRERIAS DE UTILIDAD.

LIBRERÍA PLOTTER. La librería plotter cuelga todos los tipos comunes de plotters usados para mostrar gráficamente las salidas del modelo, utilidad principal de esta librería.

Bloque Función

Bar Chart

Muestra un gráfico de barras de hasta seis valores de entrada. Las barras pueden cambiar instantáneamente o en intervalos regulares. A

diferencia de otros “Plotters”, el bloque “Bar Chart” no registra

ningún dato.

Page 27: Manual condensado de EXTEND Para modelar en tiempo discreto · programación podían hacerlo. No obstante ahora con el desarrollo de la tecnología estos inconvenientes se han ido

Gantt Chart

Muestra una gráfica de tipo Gantt. Hasta 6 gráficas son trazadas en un solo bloque gráfico Gantt.

Histogram

Crea un histograma de todos los valores que recibe.

Plotter DE,

Error bars

Muestra la media y la desviación estándar de un valor.

Page 28: Manual condensado de EXTEND Para modelar en tiempo discreto · programación podían hacerlo. No obstante ahora con el desarrollo de la tecnología estos inconvenientes se han ido

Plotter DE, Multisim

Acumula los resultados de hasta 4 corridas de información de una simulación de eventos discretos sobre un solo plotter.

Plotter DE

Este plotter es solo utilizado para trazar eventos discretos.

Plotter Error

bars

Muestra la media y la desviación estándar de valores.

Plotter FFT

Este plotter traza una señal.

Plotter I/O

Proporciona un gráfico y una tabla para hasta cuatro valores de entrada para modelos continuos.

Plotter,

Multisim

Acumula los resultados de hasta cuatro corridas de una simulación continua sobre un solo plotter.

Plotter Scatter

Muestra dos conjuntos de datos, cada gráfico como valores pares x, y.

Plotter Scatter

(4)

Muestra dos conjuntos de datos, cada gráfico como valores pares x, y.

Plotter Strip

Da gráficas y tablas de datos para hasta cuatro veces asociados las entradas.

Plotter Worm

Muestra dos conjuntos de datos trazados como valores pares x, y, pero solo para un número específico de puntos.

Page 29: Manual condensado de EXTEND Para modelar en tiempo discreto · programación podían hacerlo. No obstante ahora con el desarrollo de la tecnología estos inconvenientes se han ido

ANEJO A.

PROBLEMAS DE EVENTOS EN TIEMPO DISCRETO.

SOLUCIÓN: PROBLEMA FUNCIONAMIENTO DE UN LAVADO DE

AUTOS.

1. Identificar los elementos que están en juego.

a) Arribo de autos al lavado de Autos.

b) Estacionar el auto para esperar el servicio.

c) Servicio de lavado.

d) Salida del sistema.

a) Arribo de autos al lavado de Autos

Para modelar el arribo de autos se debe incorporar al modelo un bloque cuya función

sea generar ítems (autos) acorde a una distribución aleatoria. Característica que coincide

con la función desempeñada por el bloque Generador (Fig. 51).

Fig. 51. Bloque “Generator”.

b) El estacionar el auto para esperar el servicio.

El estacionar el auto para esperar el servicio ocasiona la formación de una cola. Se

empleará la cola “FIFO”, así que los primeros autos en entrar serán los primeros en salir

(Fig.52).

Fig. 52. Bloque “FIFO”.

c) Servicio de lavado.

Para representar la acción del lavado de auto dentro del modelo se empleará el bloque

“Activity delay” en donde el ítem (auto) será detenido por cierto tiempo y después

liberado, la liberación del ítem indicará la finalización del lavado (Fig. 53).

Page 30: Manual condensado de EXTEND Para modelar en tiempo discreto · programación podían hacerlo. No obstante ahora con el desarrollo de la tecnología estos inconvenientes se han ido

Fig. 53. Bloque “Activity Delay”.

d) Salida del sistema.

La salida del sistema estará representada con el bloque Exit (Fig. 54).

Fig. 54. Bloque “Exit”.

e) Modelo básico de evento de tiempo discreto.

Es importante comenzar con un modelo simple, luego añadir la complejidad tanto como

sea necesario hasta que todos los factores relevantes sean considerados y el modelo

aproxime el sistema que se desea modelar (Fig. 55).

Fig. 55. Bloques que representan un modelo básico de evento de tiempo discreto.

AGREGANDO ELEMENTOS AL PROBLEMA.

Se observa en la simulación del modelo que la longitud de la cola se incrementa sobre el

tiempo, es decir los autos están arribando más rápidamente que lo que ellos están siendo

lavados.

En este sentido se sabe que en la mayoría de los negocios las colas largas desmotivan al

cliente, por lo que se debe implementar una estrategia que ayude a reducir el número de

autos en la cola.

Page 31: Manual condensado de EXTEND Para modelar en tiempo discreto · programación podían hacerlo. No obstante ahora con el desarrollo de la tecnología estos inconvenientes se han ido

Una alternativa de acción sería el añadir una segunda estación de lavando con las

mismas características. Siendo esto un ejemplo de procesamiento en paralelo de autos.

Fig. 56. Modelo de procesamiento en paralelo.

Al correr la simulación, se observa que la entrada de la longitud de la cola esta cerca de

0 la mayoría del tiempo.

Por otra parte al mirar el diálogo del bloque Exit se observa que un número es más largo

que otro. Ello es debido a que no se especifica ninguna regla concerniente a como los

autos deberán ir a las estaciones de lavado, por lo que por defecto el auto irá a la

primera estación disponible. Esto causa que los autos usen una estación con más

frecuencia que la otra.

AGREGANDO VARIABLES AL PROBLEMA.

En el proyecto de expansión se contempla ofrecer el servicio de engrasado, estimándose

una demanda del 25% sobre los autos que arriban.

Se prevé que al entrar al lavado de autos los conductores informen el servicio que

solicitan. Para modelar esto se hace uso de los atributos, es decir una vez que los autos

arriban al lavado, estos son etiquetados de acuerdo al servicio que requieren, en este

caso se creará un atributo con valor 0 (probabilidad del 0.25) para los que no requieren

engrasado y 1 (probabilidad 0.75) en caso contrario.

Fig. 57. Modelación del proyecto de expansión utilizando atributos.

El bloque “get Attribute” observa el primer atributo en cada ítem y reporta el valor del

atributo en el conector A.

El bloque “Select” es usado para direccionar los autos basándose en el atributo encontrado. De esta manera se obtiene el modelo deseado.

Page 32: Manual condensado de EXTEND Para modelar en tiempo discreto · programación podían hacerlo. No obstante ahora con el desarrollo de la tecnología estos inconvenientes se han ido

OTROS ASPECTOS A CONSIDERAR.

Considerar que el tiempo gastado en la estación de servicio es dinámico. Considerar una capacidad límite del estacionamiento. Considerar que cada estación de lavado tiene su propia cola.

SOLUCIÓN: PROBLEMA FUNCIONAMIENTO DE UNA GASOLINERA.

1. Identificar los elementos básicos que están en juego.

a) Arribo de autos a la gasolinera.

b) Esperar si las bombas de gasolina están ocupadas.

c) Limitante de espacio en la fila.

d) Servicio de gasolina.

e) Servicio de aceite por parte del 30% de autos.

f) Salida del sistema.

a) Arribo de autos a la gasolinera.

Para modelar el arribo de autos se tiene que seleccionar un bloque cuya función sea

generar ítems (autos) acorde a una distribución aleatoria. Característica que coincide

con la función desempeñada por el bloque “Generator”.

Fig. 59. Bloque “generator”.

b) Esperar si las bombas de gasolina están ocupadas.

Para representar este hecho se ocupará la cola FIFO, en donde los primeros autos en

entrar serán los primeros en salir.

c) Limitante de autos estacionados en la fila.

Esta limitante será incluida al abrir el diálogo del bloque de la cola FIFO y en la pestaña

de QUEUE indicamos la longitud máxima de la cola, tal y como se observa en la figura.

Page 33: Manual condensado de EXTEND Para modelar en tiempo discreto · programación podían hacerlo. No obstante ahora con el desarrollo de la tecnología estos inconvenientes se han ido

Fig. 60. Diálogo del bloque de cola “FIFO”.

d) Servicio de gasolina.

Para representar la acción del lavado de auto dentro del modelo emplearemos el bloque

“Activity delay” en donde el ítem (auto) será detenido por cierto tiempo y después

liberado. La liberación del ítem indicará la finalización del servicio de gasolina.

Como el tiempo de servicio para poner gasolina sigue una distribución aleatoria se

deberá presionar el botón “Random Delay” e indicar la distribución que corresponda.

f) Servicio de aceite por parte del 30% de autos.

Para modelar este supuesto es necesario diferenciar el 30% de autos que requieren

aceite sobre los que no, una forma de hacerlo es colocar un atributo que represente si se

desea o no este servicio, así que se utilizará el bloque “Set Attribute”, el cual asignará

un valor de 0 para los autos que requieren aceite y 1 para los que no.

Fig. 61. Modelación del servicio de aceite utilizando atributos.

No obstante falta considerar en el modelo que los autos que requieren aceite tardarán

0.5 min. más sobre la media del tiempo de servicio de gasolina. Las bombas tendrán un

tiempo para los autos que solo quieran gasolina y otro para los que quieran aceite y

gasolina.

Para ello emplearemos el bloque “Select input”. Además se combinará con el bloque de

decisión para satisfacer el funcionamiento del modelo.

Page 34: Manual condensado de EXTEND Para modelar en tiempo discreto · programación podían hacerlo. No obstante ahora con el desarrollo de la tecnología estos inconvenientes se han ido

Fig. 62. Resolución del modelo de la Gasolinera.

SOLUCIÓN: PROBLEMA FUNCIONAMIENTO DE UNA OFICINA

BANCARIA.

Una oficina bancaria abre de 9:00 a 17:00hrs. Normalmente la oficina atiende a 40

clientes por hora. Dispone de dos cajas una con más experiencia que otra para atender al

público. Si la cola arriba a 3 personas se abre una caja más hasta reducir la cola a 1 o 0

personas. Según las operaciones a hacer los clientes tardan aproximadamente lo que

indica la tabla.

1. Identificar los elementos básicos que están en juego.

a) Arribo de clientes al banco.

b) Esperar si la caja está ocupada.

c) Abrir una caja más si la cola arriba a 3 personas.

d) Servicio de caja.

Page 35: Manual condensado de EXTEND Para modelar en tiempo discreto · programación podían hacerlo. No obstante ahora con el desarrollo de la tecnología estos inconvenientes se han ido

a) Arribo de clientes al banco. Para modelar el arribo de clientes se tiene que seleccionar un bloque cuya función sea

generar ítems (personas) acorde a una distribución aleatoria. Característica que coincide

con la función desempeñada por el bloque “Generator”.

Fig. 63. Bloque “generator”.

b) Esperar si la caja esta ocupada.

Para representar este hecho se ocupará la cola FIFO, en donde los primeros clientes en

entrar serán los primeros en salir.

c) Abrir una caja más si la cola arriba a 3 personas.

Para ello usaremos una combinación del bloque “Decisión” y del bloque “Unbatch”, de

manera tal que cuando la cola registre un valor igual o mayor de tres active el bloque

“Unbatch”, el cual demandará ítems para la tercera caja en servicio.

d) Servicio de caja.

Para representar la acción del lavado de auto dentro del modelo emplearemos el bloque

“Activity delay” en donde el ítem (persona) será detenido por cierto tiempo y después

liberado. La liberación del ítem indicará la finalización del servicio de banco.

Page 36: Manual condensado de EXTEND Para modelar en tiempo discreto · programación podían hacerlo. No obstante ahora con el desarrollo de la tecnología estos inconvenientes se han ido

Fig. 64. Resolución del modelo del Banco.

Bibliografía

[1] A. M. Law and W. D. Kelton "Simulation, Modeling and Analysis". McGraw-Hill, 1982

[2] S. M. Ross. "A course in simulation ". Macmillan, 1990.

[3] P. Bratley, B. L. Fox y L. E. Schrage. "A guide to simulation". Springer- Verlag, 1987