Capítulo 06 uso de tablas de datos

39
Aprender Simio Capítulo 6 Manejo de Tablas de Datos Traducción de Material Capacitación Simio LLC. Se traduce solamente las explicaciones, manteniendo los comandos y nombre de las variables en inglés. www.evirtual.cl

description

 

Transcript of Capítulo 06 uso de tablas de datos

Page 1: Capítulo 06 uso de tablas de datos

Aprender Simio

Capítulo 6Manejo de Tablas de Datos

Traducción de Material Capacitación Simio LLC. Se traduce solamente las explicaciones, manteniendo los comandos y nombre de las variables en inglés. www.evirtual.cl

Page 2: Capítulo 06 uso de tablas de datos

Temario Rate Tables, Function Tables

◦ Workshop – Outpatient Registration Data Tables

◦ Workshop – Data Import Sequence Tables, Arrival Tables

◦ Workshop - Sequences Work Schedules, Lists, Changeovers

◦ Workshop – Job Shop

Page 3: Capítulo 06 uso de tablas de datos

Data Window Crear yeditar datos que van a ser usados en

el modelo. Componente de Data incluye:

◦ Function tables◦ Rate tables◦ Data tables◦ Sequence tables◦ Schedules◦ Changeovers◦ Lists (in Definitions window)

Page 4: Capítulo 06 uso de tablas de datos

Modelamiento de llegadas Si las llegadas son independientes y

aleatorias, ellas siguen un proceso Poisson.◦ La cantidad de llegadas en un tiempo fijo es

Poisson.◦ El tiempo entre llegadas es exponencial.

En algunos casos la tasa de llegada puede variar en el tiempo – Simio soporta llegadas lineales sucesivas(step-wise) usando una Rate Table.

Page 5: Capítulo 06 uso de tablas de datos

Rate Table Una tabla que contiene tasas especificadas

por el usuario a través de intervalos fijos de tiempo (e.g. cada hora).

La cantidad de intervalos y tamaño de cada intervalo puede ser establecido por el usuario.

Es usado por el elemento Source object/Timer para generar entidades/eventos con una tasa variable en el tiempo.

Distribuciones exponenciales No estacionarias. (Arrival Tables discussed later)

Page 6: Capítulo 06 uso de tablas de datos

SimBit: Rate Table SourceWithRateTable

◦ Cambia tasas de llegada en el tiempo

Page 7: Capítulo 06 uso de tablas de datos

Function Table

Dado x, calcula f(x) Sintaxis: Function.TableName[X_Expression] Translation:

◦ Lookup◦ Interpolación entre valores◦ Level extension de extremos.

Page 8: Capítulo 06 uso de tablas de datos

Modelado de Curvas de Aprendizaje En algunos casos una operación puede ser

más eficiente en el tiempo. La Function Table puede ser usada para

definir el tiempo de una tarea (o un parámetrode una distribución) que cambia en el tiempo o basada en la contabilización de operaciones completadas.

Function tables se pueden usar para cualquier f(x), no solamente basada en el tiempo.

Page 9: Capítulo 06 uso de tablas de datos

Learning Curve Example

Source Server

Sink

10/Function.LearningCurve[TimeNow]

Page 10: Capítulo 06 uso de tablas de datos

Workshop – Outpatient Registration Pacientes llegan a las instalaciones de salida

según los siguientes turnos: (tasa promedio/hora):

Tiempo de registro (minutos) varía continuamente durante el día de la siguiente manera:

7-9 9-11 11-1 1-3 3-5

20 25 15 10 5

Before 8 am 9 am Noon 4 and after

1.5 3 5 2.5

Page 11: Capítulo 06 uso de tablas de datos

Workshop Tips - Outpatient Use RateTable

◦ 5, periodos de 2 horas Inicie la simulación a las 7:00

◦ TimeNow is 0 at 7:00 Use Function Table llamada RegistrationTime

◦ Use TimeNow como variable X Server Processing Time

◦ Function.RegistrationTime[TimeNow]

Page 12: Capítulo 06 uso de tablas de datos

Data del Modelo

ExternalData

SimioModel

Data is imported and held in memory for

direct and fast access by the model.

Los modelos normalmente tienen una gran cantidad de datos que describen los diferentes objetos y entidades que se mueven a tavés del sistema.

No es rápido ni conveniente accesar repetidamente a los datos externos durante la simulación. Por eso Simio maneja los datos en memoria para un rápido acceso.

Simio puede representar datos en tablas simples o en conjunto de datos completos con múltiples relaciones.

El esquema de las tablas está definida por el usuario.

Page 13: Capítulo 06 uso de tablas de datos

Tables Las Tables tienen columnas y filas. Las

columnas son especificadas como tipos de propiedades fundamentales. Las Filas pueden ser referenciadas por números o por la fila activa que está asignada a un objeto

Una tabla de secuencia es una tabla con una columna Sequence, agragada para especificar la ruta de una entidad.

Un valor de una tabla puede ser referenciado por la fila y la columna usando la sintaxis:

TableName[RowNumber].ColumnName

Un objeto puede tener una referencia activa hacia una fila de una tabla. An object may have an activeEn este caso un valor de la tabla se referencia como:

TableName.ColumnName

A column is defined by a

strongly typed property.

A row may be referenced by an object or

entity.

Page 14: Capítulo 06 uso de tablas de datos

Standard PropertiesProperty Type DescripciónReal Un valor constante real: e.g. 132.7Integer Un valor constante entero: e.g. 34 or -27Boolean Una caja de Verdadero/Falso.Expression Una expresión válida de Simio que considera una o más variables: e.g. (X + Y) / 2.3

Date Time Un valor de fecha con un selector de calendario: e.g. 1/1/2010 12:00:00 AMString Una cadena de caracteres válida: e.g. FredEvent Un evento que está definido en el contexto del modelo:

e.g. ModelEntity.TransferredList Un valor seleccionado desde una lista que está referenciada por la propiedad: e.g.

RedEnumeration Un valor de una enumeración que está referenciada por la propiedad:

e.g. FirstInFirstOutRate Table Una tabla de tasas que está definida por el modelo: e.g. ArrivalPatternTable Una tabla de datos que está definida por este modelo: e.g. ProductTableSequence Table Una tabla de secuencias que está definida para este modelo: e.g. RoutingTable

State Un estado que está definido para este modelo: e.g. ReworkCountSchedule Un programa (horario) que está definido para este modelo: e.g. OverTimeShift

Selection Rule Una regla de selección dinámica: e.g. Smallest Value First

Page 15: Capítulo 06 uso de tablas de datos

Element and Object References Una propiedad puede ser una referencia a

un elemento o a un objeto. Un element reference puede ser usado

para especificar material, estadísticas, u otros tipos de elementos por sus nombres.

Un object reference se puede usar para especificar un objeto específico o una lista de objetos.

Page 16: Capítulo 06 uso de tablas de datos

SimBit: Tables

SelectEntityTypeFromTableCrear una entidad cuyo tipo de

entidad está especificado en una tabla.

Seleccionar el tipo basado en un mix de productos definidos por una tabla.

Usar un campo de una tabla para el tiempo de procesamiento.

Page 17: Capítulo 06 uso de tablas de datos

Example: Multiple Entities

Customer Type

Mix (Percentage)

Processing Time

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

Source Server Sink

Processing time depends

upon customer

type.

Customer mix

defined in table.

Page 18: Capítulo 06 uso de tablas de datos

Relational Tables Relational Tables son tablas que tienen

definidos relaciones entre ellas en lugar de existir independientemente.

Las relaciones están formadas al usar las características deTable Key y Foreign Key.

Las tablas relacionales incluyen un Master-Detail view, lo que permite que las relaciones entre las tablas puedan ser vistas.

Page 19: Capítulo 06 uso de tablas de datos

Keys and Foreign Keys Usted puede especificar una columna

como una key. Los registros en una columna key deben ser únnicos.

Una tabla puede agregar referencias como columnas foreign key. Una referencia foreign key está especificada al usar la sintaxis: TableName.KeyColumnName

Una referencia foreign key establece una relación 1-1, 1-N, o N-1 entre las tablas.

Una fila de referencia activa, automáticamente se propaga a través de las relaciones por lo que permite un acceso directo a las columnas de referencias.

Las relaciones de las tablas pueden ser anidadas a un nivel cualquiera.

DueDate

Color Size

3/24 Red Large

3/27 Red Small

3/28 Blue Large

Size Cut Time

PolishTime

Small

Medium

Large

Products

Orders

This foreign key reference

defines an N-1 relation.

Size is a key column with

unique values.

Page 20: Capítulo 06 uso de tablas de datos

Relational Tables Example SimBit – UsingRelationalTables

Page 21: Capítulo 06 uso de tablas de datos

Data Table Import/Export Soporta todos los tipos de campos como

cadenas (strings). Cualquier error se ve después de la

importación Comenzar con Export para tener el formato

apropiado. Importar reemplaza el contenido de las

tablas

Page 22: Capítulo 06 uso de tablas de datos

Workshop - Data Import

Start with SimBit (SelectEntityTypeFromTable)

Export data to CSV file Add new EntityType in model Edit CSV file to change product mix and

processing time. Import CSV file and run model.

Page 23: Capítulo 06 uso de tablas de datos

Sequences Entidades y vehículos necesitan

frecuentemente seguir una ruta en particular:◦ Registration – Triage – Exam – Treatment◦ Downtown – Midtown – Uptown (repeat)

Path puede varias por entity/vehicle◦ Patient severity◦ Vehicle zone, or local/express

Page 24: Capítulo 06 uso de tablas de datos

Sequence Table Una tabla de datos con una columna de

destinaciones para especificar el destino del ruteo.

Es usada cuando se rutea desde un nodo “By Sequence”.

La sequence table a seguir puede definirse en una instancia entidad, o definirse/resetearse (set/reset) al usar la SetTable step.

La destinación se puede especificar como Node, ObjectName, o Node@ObjectName.

Page 25: Capítulo 06 uso de tablas de datos

SimBit: Sequences EntityFollowsSequence

◦ Single entity type EntityFollowsSequenceMultiple

◦ Multiple entity types each following own sequence◦ Don’t need to use sequence for every move

EntityFollowsSequenceWithTable◦ Entity’s job table refers to its sequence data

Page 26: Capítulo 06 uso de tablas de datos

Ejemplo: Separate Sequence Tables

Source

Server1

Sink

Server3

Server2

20% Part A 30% Part B 50% Part CStation Process TimeServer1 Uniform(.5,.9)Server2 Triangular(.5,1.1,1.2)Sink

Station Process TimeServer3 Triangular(.5,.8,1.2)Server2 1.5Server1 1Sink

Station Process TimeServer2 Triangular(.5,1.2,1.6)Sink

Page 27: Capítulo 06 uso de tablas de datos

Ejemplo: Single Sequence Table

Sequence

Sequence Type

Process Time

Server1 A Random.Uniform(.5, .9)Server2 A Random.Triangular(.5, 1.1, 1.2)Sink1 A 0.0Server3 B Random.Triangular(.5, .8, 1.2)Server2 B 1.5Server1 B 1Sink1 B 0.0

Part Type

Product Mix

Sequence Type

PartA 20 APartB 30 BPartC 50 C

Key column.

A foreign key reference to the

Job Table creating a N-1 relation.

Job TableRoutings

See SimBit – EntityFollowsSequenceWithTable2

Page 28: Capítulo 06 uso de tablas de datos

Arrival Table Una tabla que contiene llegadas específicas. Usadas por el objeto Source (no Timer

element) para generar entidades con tiempos de llegada específicos conocidas.

Pueden representar entidades individuales o batches.

Especialmente útilies para la validación de de modelo y aplicaciones con calendarizaciones.

Page 29: Capítulo 06 uso de tablas de datos

Workshop - Sequences

Create a transportation network with 2 Sources and 2 Sinks and a Vehicle that moves between them sequentially (e.g. 1-2-3-4 …)

Page 30: Capítulo 06 uso de tablas de datos

Workshop Tips - Sequences

Page 31: Capítulo 06 uso de tablas de datos

Work Schedules (Programación Trabajo) Define un programa de trabajo que puede

ser referenciado por un objeto (e.g. Server or Worker) para controlar su disponibilidad o capacidad en el tiempo.

Comprende de un ciclo repetitivo fijo, con excepciones superimpuestas.

El largo del ciclo repetitivo puede definirse por el usuario.

La capacidad del programa por defecto es cero.

Page 32: Capítulo 06 uso de tablas de datos

SimBit: Schedule ServerFollowsOddSchedule

◦ 45 minutes on, 15 minutes off ServerFollowsDailySchedule

◦ 8 hour daily shift with 30 minute break WorkerUsesWorkSchedule

◦ 3 daily breaks scheduled

Page 33: Capítulo 06 uso de tablas de datos

List Usada para crear un conjunto de strings,

objects, nodes, o transporters. Object, node, y transporter lists se usan por

las etapas cuando se hace una selección desde una lista de ítemes.

String lists se usan para definir List Properties con valores definidos por la lista (e.g. Color con valores Red, Green, Blue), y para definir el estado “desde – a” (from-to) en una matriz de transiciones.

Se referencia al usar la sintaxis List.Listname.Value

Page 34: Capítulo 06 uso de tablas de datos

SimBit: Lists SelectingResourcefromList

SelectEntityColorFromStringList

Within Seize step

Definitions window,

Lists panel

Page 35: Capítulo 06 uso de tablas de datos

Changeovers (transiciones) Usada para modelar los tiempos de las

actividades dependientes de las secuencias (e.g. setup).

El valor está basado en el valor del estado de transición anterior – siguiente ( previous – next) (e.g. size).

From/To Small Medium Large

Small 0 11.4 14.5

Medium 2 0 16.3

Large 45 27.3 0

Previous

Next

Page 36: Capítulo 06 uso de tablas de datos

SimBit: Changeovers WorkstationWithSequenceDependentSetup

◦ Use Colors list and Color state◦ Changeover matrix◦ Workstation with changeover option

Page 37: Capítulo 06 uso de tablas de datos

Workshop: Simple Job Shop Arrivals via a rate table. Three part types – routings/data. Servers follow a schedule.

Page 38: Capítulo 06 uso de tablas de datos

Workshop: Simple Job Shop Crear cuatro centros de trabajo con tres

tipos de partes. Use una sequence table para definir las

etapas del trabajo y los tiempos de procesamiento.

Use una job table para crear los tipos de partes aleatoriamente y los tiempos de proceso.

Controlar los tiempos de llegada usando una rate table

Page 39: Capítulo 06 uso de tablas de datos

Workshop: Simple Job Shop Todos los servers are scheduled ON desde 8:00am–

12:00pm & 1:00pm-5:00pm. Batches de 20 partes llegan al inicion de cada hora

desde las 6 am al medio día (inclusive), y 3 pm Partes 1, 2, and 3 son generadas en proporción del

20%, 30%, y 50% respectivamente. Cada tipo de parte tiene diferentes secuencias:

◦ Parte1: Source -> Server1 -> Server2 -> Server3 -> Server4 -> Sink

◦ Parte2: Source -> Server2 -> Server3 -> Server4 -> Sink◦ Parte3: Source -> Server3 -> Server4 -> Sink

Server 1-4 tiempos de procesamiento son 4, 3, 2, & 1 minuto respectivamente.