manual condensado de extend para modelar en tiempo discreto · programación podían hacerlo. no...
TRANSCRIPT
Manual condensado de EXTEND
Para modelar en tiempo discreto
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. ...................................
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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
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).
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”.
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.
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
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
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.
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.
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.
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.
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).
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.
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.
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.
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.
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.
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.
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