simio

29

Click here to load reader

Upload: felipe-medina

Post on 26-Dec-2015

541 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Simio

1. Simio

1.1 Generalidades

Simio es un software para Windows de simulación mediante eventos discretos, basado enobjetos y procesos. Desarrollado por el equipo creador de Arena®, Simio permite modelizarun proyecto de simulación rápidamente.

Simio ha sido diseñado como el primero y único software de simulación que combina lavelocidad de modelamiento permitida por la tecnología orientada a objetos, junto con laflexibilidad y potencia de los procedimientos. Simio facilita la creación de modelosanimados en 3D rápidamente y por tanto libera tiempo para consagrarlo al análisis dealternativas y la toma de decisión fundamentada científicamente.

Simio es un programa que ofrece todas sus capacidades sin necesidad de desarrollar código.Permite crear modelos de sistemas complejos, sin necesidad de escribir código, gracias a laorientación a objetos. Simio integra los paradigmas de desarrollo basado en objetos yprocesos para combinar la facilidad del uso de objetos predefinidos con la flexibilidad de losprocesos necesarios para describir un sistema. Esta arquitectura permite usar objetos,susceptibles de personalización, que interactúan con otros objetos según el criteriodeseado, de manera más eficiente que integrando código compilado en Java o C++, aunquetambién se puede añadir código en el entorno .Net si se prefiere.

La visualización en 3D está integrada, Simio permite por primera vez una auténticainmersión en 3D de la manera natural, sin perder tiempo innecesario dibujando en vez deplanteando y resolviendo problemas, gracias a la posibilidad de importar directamente labase de objetos 3D desde Google Warehouse, lo que facilita desde una etapa inicial que losmodelos incluyan una riqueza de representación gráfica incomparable.

1.1.1 Modelos y proyectos

La primera vez que se abre Simio, se verá como un nuevo modelo es creadoautomáticamente dentro de un proyecto de simulación, dicho Model (nombre que toma elmodelo por defecto) será la base para la modelación en Simio. La pestaña Support incluyeenlaces a la guía de referencia Simio, videos de capacitación, modelos de ejemplo y SimBits.Los SimBits son pequeños modelos que ilustran la forma de abordar problemas desimulación comunes, incluyen un modelo y una pequeña guía en formato Pdf que ilustracómo se creó el SimBits.

Los modelos se definen dentro de un proyecto. Un proyecto puede contener más de unmodelo y experimentos asociados. Un proyecto normalmente contiene un modelo principaly un modelo de entidad. Al abrir un nuevo proyecto, Simio agrega automáticamente el

Page 2: Simio

modelo principal llamado Model y el modelo de entidad llamado ModelEntity por defecto,a los cuales se les puede cambiar el nombre dando clic derecho sobre ellos en el árbol denavegación del proyecto y seleccionando la opción rename. También se puede añadir otrosmodelos al proyecto haciendo clic derecho sobre el nombre del proyecto. Esto se hacegeneralmente para crear sub – modelos que se utilizan después en la construcción delmodelo principal.

El modelo de entidad se utiliza para definir el comportamiento de las entidades que semueven a través del sistema. También se puede tener varios tipos de modelos de entidaden el proyecto y cada uno puede tener su propio comportamiento. Por ejemplo, en unmodelo de un servicio de urgencias puede tener diferentes entidades que representan a lospacientes, enfermeras y médicos.

1.1.2 Interfaz inicial

La vista inicial de un proyecto en Simio se muestra en la Figura 1.1. Las principales áreas deesta vista inicial incluyen las pestañas ubicadas en la parte superior tales como: La pestañaProject Home que se utiliza para especificar las características o propiedades del modelo,la pestaña Run que se utiliza para dar inicio o parada a los modelos de simulación, la pestañaDrawing que se utiliza para hacer dibujos o bosquejos del modelo a simular, importar planosu objetos desde AutoCAD, Google SketchUP o imágenes, la pestaña Animation permite lainclusión de gráficas para apreciar diferentes estados del modelo que se está simulando, lapestaña View permite pasar de una vista 2D a 3D y viceversa, adicionalmente tiene la opciónde grabar videos de la simulación y finalmente se encuentra la pestaña Visibility que ocultao desoculta objetos, tales como: Links, queues, grid, labels... etcétera también seencuentran las áreas de librerías ubicadas en la parte izquierda de dicha figura, el panel denavegación a la derecha y la zona de trabajo en el centro.

El panel de navegación a la derecha proporciona visualización del proyecto y la edición depropiedades y la ventana de navegación superior se utiliza para cambiar entre la vista delproyecto, modelos y experimentos relacionados. Se puede cambiar entre los modelos consólo hacer clic en el modelo deseado del árbol de navegación.

Por ejemplo, al hacer clic en un modelo, este se convierte en el modelo activo y muestra laventana de trabajo para este modelo. Se puede abrir y cerrar el panel de exploración,haciendo clic en el botón < y >, de igual forma se pueden ocultar y desocultar la barra detítulos y las librerías.

Page 3: Simio

Figura 1.1 Vista inicial de Simio

Cada vez que se selecciona la ventana de trabajo de un modelo, el panel de librerías de laizquierda muestra los objetos que están abiertas y disponibles para el modelo dentro delárea de trabajo. Las librerías incluyen la librería estándar, la librería de flujo, la librería deproyectos y los proyectos adicionales que se han cargado a las librerías de la pestaña ProjectHome. La librería estándar es una librería de propósito general, los objetos que seproporciona con Simio son para el modelado de una amplia gama de sistemas. La libreríade flujo es una librería de objetos para los sistemas en los que intervienen flujos. La libreríade proyectos es una librería de objetos correspondientes a los modelos actuales en unproyecto. Esto permite utilizar los modelos de proyectos como sub – modelos que sepueden utilizar varias veces dentro de un modelo. Se debe tener en cuenta que el modeloactivo aparece en color gris en la librería de proyectos, un modelo no se puede asignardentro de sí mismo.

1.1.3 Objetos y Librerías

Los objetos que se pueden utilizar en simio son de 5 tipos:

Fixed: Que tienen una ubicación fija en el sistema, como por ejemplo una máquina. Link: Son las rutas sobre las cuales entidades o transportadores pueden moverse.

Page 4: Simio

Node: Define una intersección entre uno o más links entrantes/salientes. Los nodostambién pueden ser asociados con objetos fijos para proporcionar puntos deentrada y salida para el objeto.

Entity: Define un objeto dinámico que puede ser creada y destruida, la cual semueve a través de una red de links y nodos, puede entrar/salir de los objetos fijos através de sus nodos asociados.

Transporter: Define un tipo especial de entidad que también puede recoger y dejara otras entidades en los nodos.

Estos tipos definen el comportamiento general, pero no el comportamiento específico delobjeto. El comportamiento específico de un objeto se define por el modelo interno de eseobjeto. Por ejemplo, se puede tener una librería de media docena de diferentes tipos detransportadores, cada uno con sus propios comportamientos específicos definidos paraestos. Sin embargo todos ellos se comparten la capacidad de moverse a través de una redde Links y nodos y de recogida y entrega de las entidades en los nodos.

Una librería puede contener objetos de cualquier de estos cinco tipos. La librería estándarincluye objetos de todo tipo, excepto para el tipo entidad, debido a que la entidad se definegeneralmente en la librería de proyectos. A continuación en la Tabla 1.1 se presenta unadescripción básica de los objetos que se encuentran en la librería estándar de Simio.

Page 5: Simio

Tabla 1.1 Librería estándar

Objeto DescripciónSource Crea entidades dependiendo de un tipo u orden de llegadas.Sink Destruye entidades que han sido procesadas en el modelo.Server Se utilizan para representar los procesos o las máquinas.

WorkstationRepresenta una estación de trabajo más compleja que un server,incluye tiempos de preparación, procesamiento y la etapa dedesmontaje, recursos secundarios y necesidades de material.

Combiner Combina múltiples entidades tomando como referencia a la entidadprincipal (por ejemplo, un palet).

Separator Separa entidades o hace copias de una sola entidad.

Resource Un objeto genérico que puede ser utilizado y liberado por otrosobjetos, (por ejemplo, herramientas).

Vehicle Se utiliza para transportar entidades entre nodos siguiendo las rutasdefinidas para el transporte, es un objeto móvil.

WorkerEs un recurso móvil que se puede utilizar conjuntamente conservidores o workstation, además se puede usar para transportarentidades entre nodos.

BasicNode Representan intersecciones básicas para múltiples links.

TransferNode Representan intersecciones complejas donde se puede hacercambios de destino o de transporte para las entidades.

Connector Se utilizan para unir nodos, el tiempo de viaje es igual a cero.

Path Un link por el que las entidades o transportadores pueden moversedependiendo de las velocidades de cada uno de estos.

Timepath Un link al que se le pude especificar el tiempo de viaje y es el mismopara todas las entidades o transportadores.

Conveyor Un link que puede acumular o no entidades o transportadoresmientras estos se mueven sobre él.

Fuente: (Pegden & Sturrock, 2013)

1.1.4 Librería estándar

A continuación en la Figura 1.2 se presenta la representación de cada uno de los objetosque hacen parte de la librería estándar y posteriormente se hará una descripción de lasprincipales funciones de cada uno.

Page 6: Simio

Figura 1.2 Representación de los objetos de la librería estándar

1.1.4.1 Source

El Source se utiliza para generar secuencias de llegadas para las entidades al sistema. Estasentidades son dinámicas, que pueden entrar y salir del sistema, las entidades representanclientes, pacientes, llamadas telefónicas, mensajes, etc. Las propiedades básicas para unSource se muestran en la Tabla 1.2.

Tabla 1.2 Propiedades básicas para el Source

Source

Entity Arrival Logic

Entity Type Entidad creada.Arrival Mode La forma en la son generadas las entidades.Time Offset El tiempo para la primera llegada.Interrival Time Tiempo medio entre llegadas de entidades.

Entities Per Arrival Número de entidades creadas en cadallegada.

Stopping Conditions Maximum Arrival Cantidad máxima de entidades que puedenllegar al sistema.

GeneralName Nombre que se le asigna a este objeto.

Description Una descripción de la función de este objetodentro del modelo.

Fuente: (Pegden & Sturrock, 2013)

1.1.4.2 Sink

El Sink se utiliza para simular las salidas de las entidades del sistema, en la Tabla 1.3 sepresentan las características básicas para el Sink. Cuando una entidad ingresa en un Sink esautomáticamente destruida. La principal función de un Sink aparte de eliminar entidadeses la de recoger estadísticas de las entidades tales como, el tiempo total que tardaron en elsistema o el número de entidades destruidas.

Page 7: Simio

Tabla 1.3 Propiedades básicas para el Sink

Sink

General Name Nombre que se le asigna a este objeto dentro del modelo.Description Una descripción de la función de este objeto.

Fuente: (Pegden & Sturrock, 2013)

1.1.4.3 Server

El servidor se utiliza para modelar elementos fijos, como la operación de una máquina, unmostrador de facturación en un aeropuerto, un cajero automático, un puesto de perroscalientes o una silla de peluquero. El servidor tiene asociado 2 nodos, uno de entrada (BasicNode) por donde ingresan las entidades al servidor y un nodo de salida (Transfer Node) pordonde salen las entidades y son enviadas al siguiente nodo. Las propiedades de uso comúnpara el servidor se resumen en la Tabla 1.4.

Tabla 1.4 Propiedades básicas para el server

Server

Process Logic

Capacity Type Fija o dependiendo de horarios de trabajo.

Initial Capacity Capacidad inicial (Cuantas entidades se puedenprocesar simultáneamente).

Ranking Rule Orden de procesamiento (FIFO, LIFO, entre otros).Processing Time Tiempo de procesamiento (Constante o aleatorio).

Buffer Capacity Input Buffer Capacidad cola de entrada.Output Buffer Capacidad cola de salida.

General Name Nombre que se le asigna a este objeto.Description Una descripción de la función de este objeto.

Fuente: (Pegden & Sturrock, 2013)

Las entidades ingresan en un servidor y son procesadas, pero si el servidor se encuentraocupado las entidades esperan en el InputBuffer o cola de entrada y después de serprocesadas se trasladan al Output Buffer o cola de salida donde esperan para continuar consu proceso.

La capacidad de un servidor por defecto es fija y toma el valor de 1, es decir, puede procesaruna sola entidad a la vez, pero la capacidad puede variar dinámicamente en el transcursode la simulación, dependiendo de horarios de trabajo, el cual se define en la ventana dedatos y se especifica como una propiedad.

El tiempo de procesamiento especifica el tiempo necesario para realizar la actividad detransformación o servicio del servidor. El valor predeterminado es una muestra aleatoria deuna distribución triangular con un valor mínimo de 0.1, valor medio de 0,2 y valor máximode 0,3 minutos.

Page 8: Simio

Las colas de entrada y de salida especifican la capacidad para la entrada y salida, es decir,el número máximo de entidades que pueden estar en las colas de entrada o de salida encualquier momento

Nota: Mediante el establecimiento de la capacidad inicial mayor que 1 un único servidor sepuede utilizar para modelar un conjunto de servidores en paralelo. Por ejemplo, unapeluquería con 5 sillas pueden ser modelados con un servidor con una capacidad inicial de5. Es recomendable modelar sistemas multi – servidor en los casos en que cada servidortiene características de funcionamiento idénticos, de lo contrario, se recomienda utilizar unservidor para cada uno de los servidores en paralelo.

1.1.4.4 Workstation

El funcionamiento de la Workstation es muy similar al de un Server. Donde el Server es unasimplificación de la Workstation, debido a limitaciones de diseño o flexibilidad del modelo.En una Workstation el tiempo de procesamiento total está compuesto por tres factores,inicia con un tiempo de preparación (Setup Time), seguida por el tiempo de procesamiento(Processing Time) y finalmente el tiempo de desmontaje (Teardown Time). En la Tabla 1.5se presentan las configuraciones básicas para la Workstation.

Tabla 1.5 Propiedades básicas para la Workstation

Workstation

Process Logic

Capacity Type Fija o dependiendo de horarios de trabajo.Ranking Rule Orden de procesamiento (FIFO, LIFO, entre otros).Setup Time Type Tipo de tiempo de preparación.Setup Time Tiempo de preparación.Processing Time Tiempo de procesamiento (Constante o aleatorio).Teardown Time Tiempo de desmontaje.

Buffer Capacity Input Buffer Capacidad cola de entrada.Output Buffer Capacidad cola de salida.

SecondaryResources

SecondaryResources

Utilización de recursos secundarios para sufuncionamiento.

General Name Nombre que se le asigna a este objeto.Description Una descripción de la función de este objeto.

Fuente: (Pegden & Sturrock, 2013)

Las entidades entran en la Workstation por el nodo de entrada, esperan a que inicie eltiempo de preparación, son preparadas, luego procesadas y finalmente desmontadas,cuando el proceso termina en la Workstation la entidad sale de ella y es enviada al siguienteobjeto para continuar con el proceso productivo.

El tiempo de preparación puede ser de tres tipos: Specific, Change Dependent o SequenceDependent.

Page 9: Simio

Specific (Específico): Donde el tiempo de preparación es igual para todas las entidades aprocesar y se ingresa en la opción Setup Time. Este valor se puede especificar como unaconstante, una función de probabilidad, un atributo de la entidad o un valor definido paraesta entidad en una tabla de datos.

Change Dependent (Cambio dependiente): El tiempo de preparación depende de tresfactores o propiedades. La propiedad atributo de operación especifica un atributo para laentidad a procesar (por ejemplo, tamaño, color, familia de piezas, etc.) que controla eltiempo de preparación, es decir, el tiempo de preparación depende del atributoseleccionado, las otras dos propiedades especifican el tiempo de preparación que varíateniendo en cuenta la entidad procesada anteriormente, si es del mismo atributo el tiempode preparación es el mismo (Setup Time If Same), en caso contrario el tiempo depreparación cambia y toma el valor ingresado en el campo tiempo de preparación diferente(Setup Time If Different).

Sequence Dependent (Depende de una secuencia): Donde el tiempo de preparacióndepende de las secuencias asociadas a las entidades y se utiliza para modelar situacionesen las cuales los tiempos de preparación se basan en una matriz de conmutación (MatrixChangeover) que se define en la ventana de datos. En este caso, se especifican dospropiedades: La primera especifica el atributo de la entidad que se utiliza en la matriz deconmutación y la segunda es la matriz de conmutación.

Tanto el Server como la Workstation pueden utilizar recursos secundarios. Un recursosecundario es un objeto que se requiere como un recurso adicional para llevar a cabo algúntipo de actividad u operación, por ejemplo una herramienta especial para transformar unapieza o un operador para llevar a cabo la operación en una máquina.

La Workstation opcionalmente tiene un submenú para materiales y otras restricciones,donde se puede establecer el makespan (Tiempo de ciclo) máximo y el consumo yproducción de materiales, que dependen de una lista de materiales (Bill Of Materials).Además una entidad puede representar un lote de piezas de trabajo, que se divide en lotesmás pequeños para su procesamiento.

1.1.4.5 Resource

El recurso es un objeto que puede ser usado en forma alterna por otros objetos. Por ejemplouna Workstation que representa una máquina podría requerir una herramienta especialcomo un recurso secundario para procesar una parte o entidad específica. Esta herramientapuede ser modelada como un recurso secundario para la Workstation. En este caso, laWorkstation se conoce como el recurso primario y la herramienta se conoce como unrecurso secundario. Los recursos no tienen una entrada asociada o un nodo de salida o deentrada, en la Tabla 1.6 se presentan las configuraciones básicas que se le pueden hacer alos recursos.

Page 10: Simio

Tabla 1.6 Propiedades básicas para los Resources

Resource

ProcessLogic

Capacity Type Fija o dependiendo de horarios de trabajo.

Initial Capacity Capacidad inicial (Cuantas entidades se pueden procesarsimultáneamente).

Ranking Rule Orden de procesamiento (FIFO, LIFO, entre otros).

General Name Nombre que se le asigna a este objeto.Description Una descripción de la función de este objeto.

Fuente: (Pegden & Sturrock, 2013)

La capacidad por defecto es fijo, pero también se puede cambiar dependiendo de un horariode trabajo con capacidad variable en el tiempo. La capacidad define el número de unidadesde este recurso que pueden usar simultáneamente. Por ejemplo una instalación con 10herramientas que se comparten a través de un grupo de máquinas podría ser modeladacomo un solo recurso cuya capacidad sería 10. Cada máquina que requiere un recurso tieneque esperar hasta que una de las 10 unidades del recurso esté disponible.

Los recursos son objetos fijos que no se mueve durante la simulación. El número deunidades ocupadas del objeto recurso puede cambiar, pero la ubicación de todas lasunidades del recurso permanece fijo. Por lo tanto el objeto recurso se utiliza para losmodelos donde la ubicación y el movimiento de los recursos se consideran poco importantey por lo tanto no modelan explícitamente el comportamiento. En algunos casos la ubicacióny el movimiento son importante en el comportamiento del sistema. En este caso losWorkers son una mejor opción para el modelado del recurso secundario.

1.1.4.6 Worker

El Worker es un objeto que se utiliza para transportar entidades entre diferentes nodos,que puede ser controlado o administrado por otros objetos mediante la asiganación deprocesos y se verán en el apartado ¡Error! No se encuentra el origen de la referencia., enla Tabla 1.7 se presentan las características básicas para los Workers.

Tabla 1.7 Propiedades básicas para los Workers

Worker

Resource Logic Capacity Type Fija o dependiendo de horarios de trabajo.Ranking Rule Orden de procesamiento (FIFO, LIFO, entre otros).

Travel Logic Initial Speed Desired Velocidad inicial para este operario.Routing Logic Initial Node (Home) Nodo de partida u origen para este operario.

General Name Nombre que se le asigna a este objetoDescription Una descripción de la función de este objeto

Fuente: (Pegden & Sturrock, 2013)

Page 11: Simio

Las propiedades para un Worker son similares a las de un recurso, con la diferencia de queel recurso tiene la capacidad definida automáticamente como 1 y que el Worker tieneasociado propiedades para viajes (Travel) y transportes (Routing Logic).

1.1.4.7 Combiner

El Combiner tiene dos nodos de ingreso llamados Member y Parent y uno de salida, la uniónde entidades se hace teniendo en cuenta el número de entidades que ingresan por estosnodos, es decir, se pueden especificar cuantas entidades se requieren del nodo Member ydel nodo Parent para la realización de la unión de entidades, en la Tabla 1.8 se presentanlas propiedades básicas para los Combiners.

Tabla 1.8 Propiedades básicas para los Combiners

Combiner

Matching Logic Batch Quantity Cantidad de entidades a combinar.Matching Rule Orden de combinación.

General Name Nombre que se le asigna a este objetoDescription Una descripción de la función de este objeto

Fuente: (Pegden & Sturrock, 2013)

1.1.4.8 Separator

El Separator se utiliza para separar las entidades del tipo Member que se han unido a laentidad tipo Parent en el Combiner o para hacer copias de una entidad en específico. Elprimer modo se utiliza para modelar situaciones donde los artículos son extraídos de uncontenedor o pallet, mientras que el segundo modo se utiliza para clonar o duplicar unaentidad, por ejemplo, hacer una copia de un documento y enviar el original a un lugar y lacopia a una ubicación diferente, los Separators tienen dos nodos de salida y uno de entrada,en la Tabla 1.9 se presentan las propiedades básicas para los Separators.

Tabla 1.9 Propiedades básicas para los Separators

SeparatorSeparation Logic Mode Modo para separar entidades.

General Name Nombre que se le asigna a este objetoDescription Una descripción de la función de este objeto

Fuente: (Pegden & Sturrock, 2013)

La propiedad modo de separación se puede especificar como Split Batch o Make Copies ydetermina cuál de las dos acciones debe ser realizada por el separador. En el caso de SplitBach las entidades de tipo Member son separados de la entidad tipo Parent. La Entidaddominante (Tipo Parent) sale por el nodo de salida Parent y las entidades dominadas (Tipo

Page 12: Simio

Member) salen desde el nodo de salida Member. La opción Make Copies determina elnúmero de copias a realizar y que entidad se va a copiar.

La entidad que llega sale por el nodo de salida Parent y la copia sale por el nodo de salidaMember.

1.1.4.9 Vehicle

El Vehicle es un transportador que puede cargar y descargar entidades y que tiene libertadde movimiento a lo largo de la red de nodos o a través de los Path, Connectors, TimePath oConveyors. El Vehicle se utiliza para modelar una amplia gama de dispositivos de tipo detransporte, tales como: carros, camiones, coches y autobuses, en laTabla 1.10 se presentanlas propiedades comúnmente usadas con los Vehicles.

Tabla 1.10 Propiedades básicas para los Vehicles

VehicleTransport Logic Initial Ride Capacity Capacidad inicial de carga para esté vehículo.Travel Logic Initial Desired Speed Velocidad establecida para este vehículo.

Routing LogicInitial Priority Prioridad inicial.Initial Node (Home) Nodo de partida u origen para este vehículo.Routing Type Tipo de rutas bajo demanda o ruta fija.

General Name Nombre que se le asigna a este objetoDescription Una descripción de la función de este objeto

Fuente: (Pegden & Sturrock, 2013)

Las dos primeras propiedades (Transport Logic y Travel Logic) definen el número deentidades que puede transportar el vehículo y la velocidad deseada de viaje para el Vehiclerespectivamente. La propiedad Routing Logic incluye la prioridad inicial que se asigna a losVehicles, el nodo inicial donde se encuentra el vehículo, es decir, el nodo donde estará elVehicle cuando inicie la simulación y el tipo de enrutamiento que controla el movimientodel Vehicle. La propiedad tipo de ruta (Routing Type) es la propiedad clave para los Vehiclesy especifica el comportamiento de enrutamiento para el Vehicle, donde se presentan 2opciones. La primera opción es On Demand el Vehicle transporta las entidades queencuentren disponibles para el transporte y que pueda transportar teniendo en cuenta losórdenes de transporte (FIFO, LIFO, entre otros) y en el caso de Fixed Route el Vehicle sigueuna ruta definida a través de una red de links y nodos.

1.1.4.10 Basic Node

El Basic Node es un nodo que se utiliza como nodo de entrada para los diferentes objetosde la biblioteca estándar. También se puede colocar como un nodo independiente paraproporcionar una unión de uno o más Links entrantes o salientes. Las propiedades de usocomún para el nodo básico se resumen en la Tabla 1.11.

Page 13: Simio

Tabla 1.11 Propiedades básicas para los Basic Node

Basic NodeRouting Logic Outbound Link Rule Estrategias de salida para las entidades.

General Name Nombre que se le asigna a este objeto.Description Una descripción de la función de este objeto.

Fuente: (Pegden & Sturrock, 2013)

Cuando un nodo tiene 2 o más Links conectados a él, se debe definir cuál es la estrategia desalida, para este caso existen dos posibilidades, Shortest Path o By Link Weight.

Shortest Path: Esta regla o estrategia de salida escoge la ruta más corta, es decir el Link máscorto, esta es la regla por defecto.

By Link Weight: Con esta regla se le asignan pesos o ponderaciones a cada ruta o Link y elmovimiento de las entidades o transportadores se hace teniendo en cuenta esos pesos,entre más alto sea ese peso mayor flujo tendrá, los pesos están entre 0 y 1.

1.1.4.11 Transfer Node

El nodo de transferencia es un nodo más complejo que se utiliza como nodo de salida paralos objetos de la biblioteca estándar. El nodo de transferencia también se puede utilizarcomo un nodo independiente en una red de Links y nodos. Las propiedades de uso comúnpara el nodo de transferencia se resumen en la Tabla 1.12.

Tabla 1.12 Propiedades básicas para los Transfer Node

Transfer Node

Routing LogicOutbound Link Rule Estrategias de salida para las entidades.Entity Destination Nodo de destino para la entidad.Type Configuración del destino de la entidad

Transport Logic Ride On Transporter Utilización de transporte.

General Name Nombre que se le asigna a este objeto.Description Una descripción de la función de este objeto.

Fuente: (Pegden & Sturrock, 2013)

El tipo de destino para la entidad se utiliza para establecer un nodo de destino para laentidad saliente y se puede especificar como: Continue, Specific, Select from List o BySequence.

Continue: La entidad se dirige a cualquiera de los nodos que encuentre a continuación sinestablecer un orden o prioridad.

Specific: Esta propiedad determina exactamente a que nodo se enviara la entidad.

Page 14: Simio

Select from List: Los nodos de destino para las entidades se hace teniendo en cuenta unalista de nodos, la elección de que nodo escoger se hace aleatoriamente, por ordenpreferido, secuencialmente o por medio de prioridades. Para utilizar ésta opción esnecesario crear una lista de nodos previamente. La forma más sencilla y rápida de hacerloes hacer clic derecho sobre cada nodo que van a pertenecer a la lista y agregarlos a la listadeseada o atrvés de la pestaña Definitions y seleccionando la opcioón List y lista de nodos.

By Sequence: Esta opción especifica que la entidad debe seguir la ruta que le ha sidoasignada. Como se verá más adelante estas secuencias se programan en el menú Data y seasignan a la entidad mediante la propiedad inicial de secuencia en la ModelEntity.

La opción Ride On Transporter se utiliza para especificar si las entidades que salen de estenodo deben hacerlo mediante un transportador. Si se especifica como true entonces seactiva la propiedad Type Transporter para indicar si se requiere un transportador específicoo si el transporte se seleccionará de la lista. En el caso específico de la propiedadTransporter Name se activa para seleccionar el nombre del transportador específico,mientas que el caso de la lista de la propiedad List Name Of Transporter se activa y se debeescoger la lista deseada, en este caso la selección del transporte se hace con base en eltransportador más cercano y que se encuentre disponible. Una lista de transportadores secrea de la misma manera como una lista de nodos.

1.1.4.12 Connector

El conector es un tipo de Link que se utiliza para unir diferentes nodos, con la particularidadde que el tiempo de viaje para los conectores es cero, es decir, el tiempo transcurrido entreel nodo A y B es igual a cero. Es ampliamente utilizado en situaciones en las cuales el tiempono es importante o no es posible calcularlo. En la Tabla 1.13 se presentan lasconfiguraciones básicas para los conectores.

Tabla 1.13 Propiedades básicas para los Connectors

ConnectorRouting Logic Selection Weight Ponderaciones.

General Name Nombre que se le asigna a este objeto.Description Una descripción de la función de este objeto.

Fuente: (Pegden & Sturrock, 2013)

Mientas la simulación está corriendo no se verán las entidades o elementos que se estánpasando por los conectores.

1.1.4.13 Path

El Path es un Link que es usado para representar las rutas en el que cada entidad otransportador tiene su propia velocidad de movimiento. El tiempo de viaje se determina

Page 15: Simio

teniendo en cuenta el largo del Path y la velocidad de la entidad o transportador. Los Pathtienen una amplia aplicabilidad en Simio, fundamentalmente se utilizan para representarvías, pasillos, rieles y aceras, en la Tabla 1.14.

Tabla 1.14 Propiedades básicas para los Paths

Path

Travel Logic Type Tipo de Path (Bidireccional o unidireccional).Allow Passing Permite el sobrepaso o no de entidades.

Routing Logic Selection Weight Ponderaciones para la selección de Paths.

State Assignments State Variable Name Variables de estado.Name Nombre de la variable de estado.

General Name Nombre que se le asigna a este objetoDescription Una descripción de la función de este objeto

Fuente: (Pegden & Sturrock, 2013)

La propiedad Travel Logic en la opción de Type permite la elección entre unidireccional ybidireccional para la dirección del flujo y la opción Allow Passing por defecto está en True yespecifica si las entidades se les permiten pasar a la otra a lo largo del Path.

1.1.4.14 TimePath

El TimePath es un Link usado para modelar rutas, es muy similar al funcionamiento de unPath, con la diferencia que en un TimePath se puede especificar el tiempo de viaje, y es eles el mismo para todas las entidades o transportes que se mueven por ese Link. Acontinuación en la Tabla 1.15 se presenta las configuraciones básicas para los TimePaths.

Tabla 1.15 Propiedades básicas para los TimePaths

TimePath

Travel Logic Type Tipo de Path (Bidireccional o unidireccional).Travel Time Tiempo de viaje

Routing Logic Selection Weight Ponderaciones para la selección de Paths.

State Assignments State Variable Name Variables de estado.New value Nombre de la variable de estado.

General Name Nombre que se le asigna a este objetoDescription Una descripción de la función de este objeto

Fuente: (Pegden & Sturrock, 2013)

1.1.4.15 Conveyor

Es un Link usado para modelar dispositivos del tipo bandas transportadoras, donde lasentidades son transportadas a través del Conveyor por el mismo. La velocidad del Conveyordetermina la velocidad de las entidades transportadas sobre él, las propiedades más usadasen los Conveyors se presentan en la Tabla 1.16.

Page 16: Simio

Tabla 1.16 Propiedades básicas para los Conveyors

Conveyor

Travel LogicInitial Desired Speed Velocidad inicial.Entity Alignment Alineación para las entidades.Accumulating Acumulación o no de entidades.

Routing Logic Selection Weight Ponderaciones para la selección de Paths.

State Assignments State Variable Name Variables de estado.New value Nombre de la variable de estado.

General Name Nombre que se le asigna a este objetoDescription Una descripción de la función de este objeto

Fuente: (Pegden & Sturrock, 2013)

La distancia entre entidades sobre el Conveyor es determinada por la propiedad EntityAlignment, si selecciona la opción Any Location las entidades se ubicaran en cualquierposición mientras que si se selecciona la opción Cell Location las entidades se alinearánigualmente espaciadas dependiendo del tamaño de la Cell.

Cuando una entidad es demorada al final de un Conveyor y la opción de Accumulating esespecificada como True las entidades formarán una línea recta consecutiva a lo largo delConveyor, en caso contrario las entidades se detendrán en cualquier parte del conveyormientras la entidad del final es enviada al siguiente nodo o Link.

1.1.5 ModelEntity1

Las entidades generalmente representan partes, personas u otros objetos que son creadosdinámicamente, recorren todo el sistema desde el Source donde son creadas hasta los Sinkdonde son destruidas. Al iniciar Simio se puede encontrar una ModelEntity creadaautomáticamente en la Project Library. Donde ModelEntity es la definición de la entidadpor defecto en Simio.

Esta ModelEntity no tiene que ser puesta en el área de trabajo, a menos que se deseepersonalizar sus propiedades o se vaya a agregar propiedades de animación, estáModelEntity se llamada por DefaultEntity. Las propiedades más utilizadas para ModelEntityse resumen a continuación en la Tabla 1.17.

1 Las ModelEntity no hacen parte de la librería estándar, hace parte de Project Library.

Page 17: Simio

Tabla 1.17 Propiedades básicas para las ModelEntity

ModelEntityTravel Logic Initial Desired Speed Velocidad inicial para esta entidad.Routing Logic Initial Priority Prioridad inicial.

General Name Nombre que se le asigna a este objetoDescription Una descripción de la función de este objeto

Fuente: (Pegden & Sturrock, 2013)

1.2 Conjuntos de Redes

1.2.1 Descripción General

Las entidades pueden viajar en el espacio libre o sobre una red de Links y nodos. En viajesde espacio libre una entidad puede moverse sin la ayuda de otros objetos mediante elestablecimiento de su dirección, velocidad y aceleración. En este caso el movimiento estáregulado únicamente por la entidad y puede moverse libremente e independiente a travésdel espacio 3D.

En el caso de los viajes por redes de Links (Network) la entidad se mueve sobre un conjuntolimitado de Links y nodos. Este movimiento depende de la entidad, los Links y los nodos dela red. Es importante resaltar que diferentes tipos de Links y nodos pueden producirdiferentes tipos de comportamiento de viajes basados en los modelos internosprogramados para los Links y nodos.

1.2.2 Entidades y Atributos

Las entidades son objetos dinámicos que pueden ser creados y destruidos, viajar a travésde una Network, entrar y salir de objetos fijos a través de sus nodos asociados. Las entidadesdinámicas se crean a partir de una ModelEntity. Normalmente se coloca una o más copiasde la entidad en el modelo arrastrándolas desde el Project Library u otra libreríapersonalizada. La representación de la entidad tiene una ubicación fija y se utiliza como una“plantilla” para la generación de entidades que se mueven a través del modelo. Cada unade las entidades puede tener propiedades y estados (denominados atributos). Laspropiedades son definidos en menú Properties asociado a cada entidad y son inalterablesdurante la simulación. Sin embargo cada entidad tendrá sus propios valores de estado quepuede cambiar a medida que la simulación se ejecuta.

Por ejemplo, supongamos que tenemos una entidad llamada persona que tiene 2propiedades asociadas sexo y color de cabello y 2 estados llamados ingresos y estado civil,supongamos ahora que se colocan dos clases de persona (entidad), uno llamadoCustomerTypeA y el otro CustomerTypeB, se especifican los valores de sexo y color decabello, ya sea para CustomerTypeA o CustomerTypeB. Todas las entidades generadas para

Page 18: Simio

CustomerTypeA tendrán el mismo valor de estas propiedades y estos valores no puedencambiar durante la simulación, de igual forma todas las entidades que se generan paraCustomerTypeB tendrá los mismos valores para sexo y color de cabello según la definiciónde las propiedades para la clase de entidad, mientras tanto cada persona creada (ya seaCustomerTypeA o CustomerTypeB) tendrá su propio valor único para ingresos y estado civily estos valores pueden cambiar durante la simulación.

Una variable de estado o atributo se puede añadir a una entidad de la siguiente forma:Primero ubicar la ventana de navegación situada al lado derecho de la interfaz inicial desimio mostrada en la Figura 1.1 y seleccionar la ModelEntity, cuando se selecciona elmodelo de la entidad (ModelEntity) abrir la ventana definiciones y finalmente la pestañaStates como se muestra en la Figura 1.3, estos estados se agregarán a todas las entidadescreadas pero pueden tomar diferentes valores dependiendo de las opciones configuradaspara cada estado. Por ejemplo al definir un estado llamado color de cabello, este puedetomar diferentes opciones como: Rojo, café, verde, etc., por tanto cada entidad tendráasociado el estado color de cabello pero en unas será rojo y otras café y así sucesivamente.Por defecto cada entidad tiene asociado 2 atributos color y animación del tipo Real y Stringrespectivamente.

Los estados pueden ser de 2 tipos discretos o continuos, los más utilizados son los discretos.

Estados discretos: Pueden ser del tipo Real, Integer, Boolean, DateTime, Lista, String,Element Reference o Reference Object. Por defecto, un estado discreto es un escalar, perotambién puede ser dimensionado como un vector, una matriz o una matriz de hasta 10dimensiones. En este último caso se debe introducir el número de dimensionesseleccionándolas de la lista desplegable.

En el caso de una matriz se puede ingresar la dimensión e inicializar una variable de estadousando valores ingresados en una tabla de datos mediante la selección de la opción MatrixFrom Table, en este caso, el número de filas y las columnas de la matriz se establecen en elnúmero de filas y columnas en la tabla. Esta es una forma muy conveniente paradimensiones e inicializar arrays utilizando datos externos.

Un estado discreto de tipo List es una variable de estado al que se le puede asignar el valorde una lista (la lista se define en la opción List en la parte izquierda de la ventana mostradaa la izquierda de la Figura 1.3 en la ventana definiciones y debe ser del tipo String). Porejemplo, una lista con nombre color donde los miembros serían: Rojo, verde y azul podríaser utilizada para definir un estado tipo List de nombre ColorValue. El valor numérico deuna lista es usado para referenciar un posible valor para está. Por ejemplo si al color azul sele asigna un número 2 cada vez que la entidad tome ese valor el estado será azul.

Estados discretos del tipo Element Reference o Reference Object pueden almacenarinformación relacionada con un elemento en particular, tal como un Tally Statistic o un

Page 19: Simio

objeto como una entidad, nodo o transportador. Estas referencias se pueden cambiarmediante un proceso de asignación, similar a un estado de tipo real o entero.

Figura 1.3 Estados para las entidades

Un estado continuo: Es un estado donde el valor puede cambiar de forma continua yautomática y puede ser de tipo Level o Level with Acceleration. Un estado Level (Nivel) sedescribe tanto por una tasa como por un nivel. Por ejemplo, si se crea un estado de nivelllamado tanque, puede hacer referencia al valor de nivel por Tank y el correspondiente valorde la tasa por Tank.Rate. El valor tanque se actualiza automáticamente en función del valoractual asignado a Tank.Rate, mientras que Level with Acceleration es un estado que tieneestá definido por una tasa y una aceleración.

Si se agregan variables de estado a uno o más modelos de entidad y luego se crean objetospara esas entidades se debe hacer referencia a los estados de la entidad anteponiendo losnombres de los estados con la entidad. Por ejemplo, si crea un modelo de entidaddenominada Parte y a continuación asociarle dos estados discretos X e Y, se hace referenciaa estos estados como Part.X y Part.Y respectivamente.

1.2.3 Redes de Links o Networks

Una red de Links es un conjunto de uno o más Links sobre los cuales las entidades viajan.En Simio se pueden definir todas las redes que se consideren necesarias y un Link puede sermiembro de varias redes simultáneamente. Este último punto es importante para modelarsituaciones donde diferentes entidades viajan en sus propias redes, pero que compartenuna vía común: por ejemplo, trabajadores y carretillas elevadoras comparten un pasillo

Page 20: Simio

común. Para los viajes en red, las entidades deben ser asignadas a una red específica sobrela que puede viajar.

La colección de todos los Link se asigna automáticamente a una red especial llamada la redglobal. Por defecto, todas las entidades son asignadas a moverse por la red global (es decir,que pueden viajar en cualquier Link). La entidad puede cambiar su Travel Network (Red deLinks) en cualquier momento durante el curso de la simulación.

Considere la Figura 1.4 que representa nodos y Links, donde los Links A, B, C, D, y F estánen la red 1 y los Links E, F y G están en la red 2, en este caso el Link F es común a ambasredes. Los Links rojos y azules representan a la red 1, ientras que los verdes y azulesrepresentan a la red 2.

Figura 1.4 Redes o Networks

Red 1: A, B, C, D, F

Red 2: E, F, G

Red Global: A, B, C, D, E, F, G

Mediante la asignación de entidades a las redes se puede controlar en qué parte del sistemapueden viajar las entidades. Por ejemplo, se puede asignar una entidad a la red global, unAGV a la red 1y un montacargas a la red 2. En este caso las entidades, AGV y montacargaspodrían viajar de W a Y compartiendo el Link F. La red inicial se le asigna a una entidadhaciendo clic sobre ella y en la ventana de propiedades ubicar las opciones para Travel Logicy seleccionar Initial Network, por defecto está la opción Global (Que se puede mover portodo el sistema), de la lista desplegable seleccionar Create New y a continuación crear lalista de Links que por defecto tomara el nombre Network1.

Posteriormente seleccionar los Links que van a pertenecer a esa red, una vez seleccionadosdar clic derecho sobre el Link y escoger la opción Add to Network y seleccionar la red creada.

Nota: Las redes se pueden crear primero y luego asignarlas a las entidades, los Vehicles yWorkers también pueden ser asignados a una red y el procedimiento es el mismo que paralas entidades.

Page 21: Simio

1.2.4 Programación de Rutas en Nodos

Cada vez que una entidad va a salir de un nodo y a continuación se encuentra con más deun Link para continuar su recorrido en la red, entonces la decisión a tomar por la entidad esque Link seguir. Este proceso se conoce en Simio como Routing Logic (Enrutamiento lógico).Por ejemplo, una entidad que viaja en la red 1 y sale por el nodo V tendrá 3 Links para elegiren función de su lógica de enrutamiento. Sin embargo, una entidad que viaja por la red 1 ysale por el nodo W tiene una sola opción: Es decir, el Link F.

En los modelos grandes y complejos que a menudo tienen rutas alternas a través del sistemase debe especificar el enrutamiento de las entidades para controlar el movimiento de estasa través del sistema. En el caso de la librería estándar el enrutamiento lógico paraseleccionar entre múltiples Links candidatos se especifica mediante una regla de salida(Outbound Link Ruler) y una preferencia del Link a seguir (Outbound Link Preference).

La preferencia del Link indica cómo se elegirá el siguiente Link, y se presentan tresposibilidades, la primera Any donde se consideran todos los posibles candidatos, la segundaAvailable que considera únicamente los Links disponibles, es decir, que no estén siendoocupados por otra entidad o transportador y finalmente esta la opción Specific que solotiene en Link el cual debe seleccionarse a continuación en la opción Outbound Link Name.

Teniendo en cuenta la regla de salida se presentan 2 alternativas Shortest Path o By LinkWeight, descritas en el apartado 1.1.4.10. EL destino de la entidad se discutirá en elsiguiente apartado.

Cuando se especifica la regla de preferencias de Links como By Link Weights (Pesos oponderaciones) y no se ha fijado destino, el link es seleccionado al azar utilizando los pesosespecificados para cada Link candidato. La probabilidad de que un determinado Link seaseleccionado es igual a su peso dividido por la suma de los pesos de los Links candidatos.

Todos los enlaces tienen una propiedad para especificar el peso o la ponderación dichapropiedad puede ser un número o una expresión valida. En el primer caso se pueden utilizarlos pesos como porcentajes o probabilidades. Por ejemplo, si un Link tiene un peso de 80 (o0.8) y el otro un peso de 20 (o 0,2), los links serán seleccionados al azar con un 80/20 dedivisión.

Para el segundo caso, en Simio una expresión lógica (por ejemplo, X> 2) devolverá un 1 sies verdadero y 0 si es falso. Esto hace que sea muy conveniente utilizar expresiones lógicaspara especificar pesos para la selección de Links. En este caso los pesos van a cambiardinámicamente durante la simulación con base en el valor de la expresión lógica. Porejemplo, la expresión Server1.InputBuffer.Contents.NumberWaiting == 0 tendrá un valorde selección de 1 si el buffer de entrada para el Server1 está vacía, de lo contrario tendráun peso de selección de 0.

Page 22: Simio

1.2.5 Configurando Destinos para las Entidades

Cada vez que el enrutamiento se basa en la ruta más corta se requiere un destino para laentidad. El destino para una entidad puede ser configurado en los TransferNodeespecificando los valores destino en la propiedad Entity Destination Type y valoresasociados a cada tipo de destino.

Dado que el TransferNode se utiliza para modelar las salidas de los objetos fijos de la libreríaestándar (Source, Server, Combiner, etc.), siempre se puede especificar el destino de unaentidad y como es transferida esta al siguiente nodo. Para especificar el destino se hace clicen el Transfer Node asociado a la salida del objeto fijo y especificar el tipo de entidad dedestino.

Hay cuatro opciones para especificar el tipo de entidad de destino. La primera opción esContinue y especifica que la entidad seguirá a cualquiera de los nodos continuosdependiendo de las reglas de salida, esta es la opción predeterminada y es útil cuando laentidad puede ser procesada en cualquiera de los objetos sucesivos.

La segunda opción es Specific Destination que determina un destino único para la entidad.En este caso se debe ingresar el nodo de destino, el cual se selecciona de una listadesplegable. El nodo puede ser un nombre sencillo para una intersección (por ejemploIntersectionA), o un nombre compuesto (por ejemplo, Input@Servidor1 uOutput@Servidor1) para especificar la entrada o la salida al Servidor1 respectivamente. Losnombres de los nodos compuestos están determinados por tres factores, el tipo del nodo(Input u Output), un elemento delimitador o de asociación (@) y el nombre del objeto fijo.

La tercera opción para especificar un destino es Select From List que depende de una listade nodos. En este caso la elección del destino se hace de manera dinámica de una lista dedestinos candidatos sobre la base de varios criterios, que incluyen una meta de selección(Selection Goal), (por ejemplo, distancia más pequeña, aleatoriamente, etc.), una condiciónde selección (Selection Condition) que se debe cumplir para que el nodo sea consideradocomo un candidato para la selección y una regla de enrutamiento (Blocked DestinaciónRule) que especifica si se requiere un nodo de “bloqueo”. Un nodo no bloqueado es unoque puede aceptar inmediatamente a la entidad. Por ejemplo, un servidor con un bufferfinito que está lleno bloquearía las entidades entrantes.

La cuarta opción By Sequence que especifica el destino por medio de secuencias. En estecaso hay que establecer la secuencia de procesamiento para cada entidad (por ejemplo,Taladro, Torno, Inspeccionar, salir) y nos gustaría para establecer el destino como el nodosiguiente en esta secuencia. Esto es útil para los talleres de modelado en que cada entidadtiene una trayectoria de desplazamiento diferente a través del sistema.

Sin importar el método que se utilice para establecer el destino de la entidad, elenrutamiento por medio de la ruta más corta se utiliza para seleccionar el Link que tenga el

Page 23: Simio

Link más corto hacia ese destino. Aunque el uso de la regla de la ruta más corta requiere undestino, dicho destino no obliga a utilizar la regla de ruta más corta: es decir, se puedeemplear pesos para controlar el flujo.

Seleccionar de listas y por secuencias los destinos para las entidades son dos métodos muyútiles y de gran alcance.

1.3 Manejo de Tablas

1.3.1 Descripción General

Los modelos de simulación generalmente incluyen tablas de datos que se utilizan paradirigir el modelo. En algunos casos, estos datos son ingresados directamente en los objetosde modelado. Por ejemplo, con una línea de flujo, el procesamiento de una parte puede serconveniente “codificar” el tiempo entre llegadas y tiempos de procesamiento directamenteen las propiedades de los objetos del modelo. Sin embargo en muchos casos hay una grancantidad de datos para modelar el funcionamiento de un sistema, dicho modelamientodepende de diferentes factores y que hace tedioso estar cambiando los datos objeto porobjeto, para tal fin se utilizan las tablas de datos.

También es deseable importar o unirse directamente a las tablas de datos de fuentesexternas, tales como Excel o una base de datos. En esta sección se describen lascaracterísticas de Simio para la construcción de modelos basados en datos utilizando tablasde datos y a la interfaz para trabajar con fuentes de datos externas.

1.3.2 Tablas de Datos

Una tabla de datos en Simio es un arreglo de datos que contienen columnas definidas porel usuario con las correspondientes filas de datos. Cada columna puede contener un tipoespecífico de datos como string, real Number, Boolean, date – time, expression value,entity type, etc. En Simio se pueden definir tantas tablas como se desee y cada tabla puedetener cualquier número de columnas de diferentes tipos. Se pueden crear relaciones entretablas, de tal manera que una entrada en una tabla puede hacer referencia a los datos enpoder de otra tabla. Por ejemplo, una tabla de órdenes de producción puede hacerreferencia a una tabla de descripción de productos.

Una tabla de datos se define mediante el en panel tablas en la ventana de Data (datos) deSimio en la Figura 1.5 se muestra la interfaz para la creación de tablas de datos. Para agregaruna nueva tabla hace clic en tabla de datos o tabla de secuencias en la sección tablasenmarcada en rojo en la Figura 1.5. La tabla de secuencia es una tabla de datos con unacolumna denominada secuencia y se utiliza para especificar la secuencia de enrutamientopara una entidad. Por lo tanto todo lo que se aplica a una tabla de datos también se aplicaa la tabla de secuencia. Una vez que haya agregado una tabla puede cambiarle el nombre y

Page 24: Simio

darle una descripción haciendo clic en la pestaña de la tabla y luego establecer laspropiedades de la tabla en la ventana de propiedades enmarcada en azul turquesa en laFigura 1.5.

Figura 1.5 Ventana Data

Si se agregan varias tablas estas se pueden arrastrar y soltar con el fin de ordenarlas lastablas, para esta organización seleccionar con clic sostenido el nombre de cada tabla yarrastrarlo al lugar deseado, también se pueden ordenar en grupos de pestañas verticalesy horizontales con un clic derecho cualquier tabla y seleccionando la opción adecuada.

Para agregar columnas a una tabla, seleccione una tabla para activarla y a continuación hagaclic en los tipos de propiedad que son: Standard Property, Element Reference, ObjectReference y Foreign Key, el nombre de la columna puede ser cambiado seleccionando lacabecera de la columna y en la ventana de propiedades asociado a la columna introducir elnombre en la opción Name. Element Reference, toma como referencia a un elemento deSimio como una estación (Objeto) o material, Object Reference es una referencia a un deobjeto, como trabajador o servidor.

Las propiedades estándar (Standard Property) son todos los tipos de propiedades utilizadasen Simio, a continuación en la Tabla 1.18 se presentan y se da una breve descripción decada una de ellas.

Page 25: Simio

Tabla 1.18 Propiedades para las tablas

Propiedad DescripciónReal Una constante real por ejemplo 132,7.Integer Una constante de enteros, por ejemplo 34 o -27Boolean Una casilla de verificación, por ejemplo verdadero o falso.

Expression Una expression valida donde intervienen una o más variables, por ejemplo+ 2,3⁄ .

Date Time Un valor tanto de fecha como de hora correspondientes con uncalendario, por ejemplo 24/08/2013 12:00:00 AM

String Una cadena de valores, por ejemplo Miguel

Event Un evento que se define en el contexto del modelo, por ejemploModelEntity.Transferred.

List Un valor seleccionado de una lista que hace referencia a una propiedad,por ejemplo rojo.

Enumeration Un valor de clasificación que hace referencia a una propiedad, porejemplo FIFO o LIFO.

Rate Table Tabla de llegadas para este modelo, por ejemplo patrón de llegadas.

Table Tabla de datos definidos para este modelo, por ejemplo table deproductos.

SequenceTable Tabla de secuencias, por ejemplo table de rutas.

State Un estado o atributo definido para este modelo, por ejemplo Partesprocesadas.

Schedule Un horario de trabajo, por ejemplo un turno.Day Pattern Día de referencia, por ejemplo un día normal.Selection Rule Una selección dinámica, por ejemplo aleatorio.

Fuente: (Pegden & Sturrock, 2013)

Algunas de las propiedades requieren valores que se deben establecer en el editor depropiedades de la columna a trabajar. Por ejemplo, una List Property requiere que seespecifique una lista que define las opciones válidas para la columna. Por tanto, si se creauna lista llamada colores donde los valores serían rojo, verde y azul (Esta lista se crea en ella ventana Definitions y la lista es de tipo String), luego añadir una List Column referenciadaa la lista de colores, las entradas válidas para la columna serían rojo, verde y azul.

Las columnas que especifican valores numéricos (por ejemplo: Real, Integer, Expression)también tienen un tipo de unidad propiedad que se pueden especificar. El tipo de unidadpuede ser tiempo, tiempo de viaje o de longitud donde las unidades apropiadas se puedenespecificar (por ejemplo, minutos, pies por minuto, metros, etc.)

También se puede seleccionar una columna y que dicha columna la clave o punto dereferencia. Una columna clave debe tener todas las entradas únicas en la columna. Por

Page 26: Simio

ejemplo, una columna clave de tipo entero no puede tener dos filas con el mismo número.La columna clave puede hacer referencia a la adición de una clave externa (Foreign Key) enotra tabla. Con el fin de enlazar las filas de esa tabla a una fila en esta tabla con el valor dela clave única de esta columna.

A continuación se muestra una tabla de ejemplo denominada Tabla 1 con cuatro columnasdenominadas W, X, Y, Z, donde la columna W es una columna real y tipo de la unidadespecificada como tiempo y las unidades en horas, la columna X es una columna booleanacuando se marca la casilla indica un valor verdadero y en caso contrario falso, un valorverdadero de tipo Boolean en Simio tiene un valor numérico de 1, la columna Y es unacolumna de referencia, dicha referencia será la entidad y se establece como una columnaclave tal como se indica por el icono de la llave en la cabecera. Como como resultado de lasentradas de esta columna debe ser único y finalmente la columna Z es una columna de tipoexpresión y acepta cualquier expresión válida en Simio.

Una vez que se define una tabla se puede rellenar la tabla con los datos de diferentesmaneras. Se puede manualmente mediante la introducción directa de datos para cada celdade la tabla, la fila inferior con el * es una fila que aún no se ha añadido – una vez que seintroduce un valor en esta fila, entonces se convierte en una fila activa que está siendoeditada, como se indica por la pluma que reemplaza el *. También se puede copiar y pegardentro de la tabla, entre las diferentes tablas y entre las fuentes de datos externos (porejemplo, Excel) y la tabla de datos.

También se puede importar o vincular a orígenes de datos externos. Cuando se trabaja conExcel como una fuente de datos externa es conveniente definir primero las columnas enSimio y a continuación, exportar la tabla vacía a Excel y luego rellenar los datos dentro deExcel. A continuación, puede importar o vincular a la hoja de cálculo. La importación es unaoperación manual que sucede cada vez que haga clic en importar, mientras que Binding esuna operación automática, una vez que se estableció el enlace de datos esautomáticamente importados en el comienzo de cada campaña, sin intervención manual.

El resultado obtenido de la realización de este ejemplo se presenta en la Figura 1.6. Sepuede hacer referencia a un valor en la tabla de datos con la sintaxis o expresiónTableName[RowNumber].ColumnName, donde RowNumber puede ser una expresión queespecifica el número de línea base 1. Por ejemplo Tabla1[1].X que referencia al valor 6,2 yTabla1[1].Z hará referencia a la expresión Random.Uniform (0.2, 0.4).

También es posible tener ya sea un Token o una referencia de objeto especificada en la filade una tabla utilizando el SetRow Step (paso). Una vez que una fila se ha asignado alToken/objeto los valores de la tabla se pueden hacer referencia sin anexar el [RowNumber].Por ejemplo, las referencias Tabla1.X el valor X tipo Boolean para la fila asignada alToken/objeto. Si una fila se ha asignado a un Token y luego ese Token se utiliza para crearun nuevo objeto y el objeto recién creado hará referencia a la misma fila que el Token.

Page 27: Simio

Figura 1.6 Tabla de datos con claves principales

1.3.2.1 Tablas para múltiples entidades

Con fin de modelar la llegada múltiples entidades y no utilizar un Source para la llegada decada entidad, es necesario la creación de una tabla que controle la llegada de estas. Para laexplicación de estas tablas se propone la creación del siguiente ejemplo.

Se tienen tipos diferentes de clientes que esperan en serie para ser procesado por dosservidores idénticos. Los clientes llegan de acuerdo con un proceso de Poisson, con untiempo medio entre llegadas distribuidos exponencialmente con una media de 3 minutos.El mix de clientes (porcentaje), es decir, el porcentaje de clientes que van a llegar al sistemay el tiempo de procesamiento en el servidor se resumen en la Tabla 1.19.

Para modelar este ejemplo colocar un Source, un Server y un Sink en el área de trabajo(Facility) y conectarlos mediante Paths, los Paths inician el nodo de salida de un objeto yterminan en el nodo de entrada de otro objeto, cambiar la propiedad Allow Passing Ser aFalse en los Paths.

Tabla 1.19 Tabla para crear múltiples entidades

Customer Type Mix (Percentage) Processing TimeStandard 60 Random.Triangular(3,4,5)

Simple 15 Random.Triangular(1,2,3)Complex 25 Random.Triangular(7,9,12)

Fuente: (Pegden & Sturrock, 2013)

Page 28: Simio

El tiempo entre llegadas para el Source será exponencial con media de 3 minutos. Establecerel InputBuffer del servidor a 0 y la capacidad para este de 2. La combinación entreInputBuffer 0 para el Server y el no sobrepaso de entidades en los Paths hará que los clienteshagan la cola a lo largo de la ruta. La capacidad de 2 en el Server permitirá que este objetopueda representar 2, debido a que son dos servidores idénticos. Finalmente colocar tresentidades en el modelo y cambiarles el nombre por Standard, Simple y Complex, en la Figura1.7 se presenta el esquema que debe tener este ejemplo en simio, para diferenciar losclientes es adecuado cambiarles el color, primero seleccionar una entidad como se muestraen dicha figura y se activará el menú Symbols y en la opción encerrada en rojo, escoger elcolor deseado para cada entidad y en los puntos verdes alrededor de la entidad se usanpara aumentar o reducir el tamaño de la entidad.

Figura 1.7 Esquema para la modelación del ejemplo múltiples entidades

Para crear la tabla de llegadas en Simio, seleccionar la ventana de datos y hacer clic en AddData Table y luego cambiar el nombre de la tabla por Tabla1, después añadir una columnadenominada CustomerType haciendo clic en la propiedad Object Reference y seleccionarEntity, posteriormente añadir una columna denominada Mix, de tipo Real en StandardProperty y finalmente agregar una columna denominada ProcessTime haciendo clic enStandard Property y seleccionar Expression y establecer el tipo de unidad de esta propiedada tiempo y establecer las unidades a minutos e introducir manualmente los datos de la tablaque se muestra en la Figura 1.8 mostrada a continuación.

Page 29: Simio

Figura 1.8 Creación de la tabla para múltiples entidades en Simio

Cuando se tiene la tabla definida se procede a configurar las llegadas y especificar lostiempos de procesamientos de las entidades en el servidor. Primero asignar la tabla alSource, para esto seleccionar el Source y en la ventana de propiedades y en la propiedadEntity Arrival Logic, escoger Tabla1.CostumerType en Entity Type y en la propiedad TableReference Assignments, desplegar las opciones para Before Creating Entities y en TableName colocar Tabla1 y Row Number colocar Tabla1.Mix.RandomRow, la opciónRandomRow es una función que devuelve un número de fila al azar sobre la base de losvalores de la mezcla de la columna como pesos.

Finalmente cambiar el tiempo de procesamiento para el servidor por Tabla1.ProcessTime.Por lo tanto la el tiempo de procesamiento se tomará de la ProcessTime columna para lafila seleccionada.