14 May

Integrando AnyLogic y R: Gráfico de control

  • Intro
  • Modelo AnyLogic
  • Resultados
  • Qué hacer

Un concepto común en la ingeniería industrial es el control estadístico de procesos, el cuál consiste en la definición de un proceso a partir de rendimientos estándares de manera que el control de calidad de los productos no requiera de una precisa medición de cada unidad, sino de la revisión de los estadísticos del proceso. Si estos tuvieron alguna desviación frente a sus estándares (media y desviación típica), se sospecha que pueden haber fallas de calidad en los productos y solo entonces se procede a la revisión individual de los productos, lo que reduce sustancialmente los tiempos de ciclo en la producción (ver link).

Una herramienta fundamental para esto es el gráfico de control el cuál permite visualizar para una actividad o proceso específico, el histórico de tiempos de proceso en secuencia, de manera que se establezca el tiempo promedio y los límites superiores e inferiores del proceso. Estos límites marcan la frontera del control estadístico, así un ciclo cuyo tiempo esté por encima del límite superior o por debajo del inferior, se presume anómalo desde el punto de vista estadístico. Los administradores de procesos deciden entonces si se trata de un hecho puntual para una unidad atípica o si es una tendencia del proceso y por ende se requieren tomar medidas bien sea frente al lote de producción, al recurso (un operario fatigado o una máquina próxima a mantenimiento) o a la materia prima entre otras.

Los límites de control son usualmente definidos en función de la desviación estandar del proceso, en general tres desviaciones hacia arriba y hacia abajo son la norma, lo que entre otras es la base de la metodología six sigma.

El gráfico siguiente es una muestra de cómo luce un gráfico de control, donde se evidencia que los ciclos de 4:30 y 6:00 estan por encima del límite superior. Adicionalmente se evidencia que el proceso en general está aumentando su tiempo promedio de ciclo lo cuál puede ser debido a una fatiga del recurso y por tanto requiere de una acción preventiva.

qchart

En ocasiones los límites son controlados artificialmente para aumentar o reducir la variabilidad. Esto sucede cuando uno o varios componentes no son homogéneos o bien cuando se quieren fijar controles específicos (ejemplo reducir los límites a dos desviaciones estándares para los pedidos de un cliente específico o para los productos de exportación).

En este tutorial mostraremos cómo generar estos gráficos de manera automática en AnyLogic con la ayuda de R y cómo hacer uso de ellos para controlar un proceso.

El modelo a simular será una estación de trabajo con una fuente y una salida. El tiempo de procesamiento será una función que explicaremos mas adelante. Adicionalmente se requiere una imagen sin contenido, un dataset y combobox y dos sliders (ver imagen).

alscreenshot_qcc

Agregamos a la lista de dependencias del modelo la librería RCaller-2.5.jar

Rcaller_dependency

La siguiente es la función para controlar el tiempo de proceso tProc()

La cuál integramos en el servicio como tiempo de espera (ver imagen). Adicionalmente agregamos el código que permite actualizar el gráfico de control cada cierta cantidad de piezas procesadas (variable each)

delay_qcc

La función updateControlChart() conecta AnyLogic con el ejecutable de R (RScript), transmite datos y realiza operaciones, en este caso crea el gráfico de control, el cuál se guarda en una dirección temporal del ordenador. La dirección es usada para cambiar periódicamente la fuente del objeto imagen lo que actializa el gráfico de control.

Esta función permite además identificar las piezas cuyo tiempo están por encima de los límites de control (variable violations). Si hay al menos una pieza en esta categoría, el ID de la pieza y el tiempo de proceso pueden ser conocidos haciendo click en el botón "Defectos". Los límites de control también pueden ser fijados haciendo click en el combobox "Fijar Límites" y variando los sliders.

El siguiente es un video demostrando el modelo de simulación en funcionamiento.

Los archivos pueden descarcarse en el siguiente link.

Este modelo fue hecho usando AnyLogic 7.3.3 y Microsoft R Open V 3.2.4, sin embargo como se muestra en el video, es posible cambiar el origen de RScript para usar el script original de R.

Este modelo es solo una muestra de las posibles aplicaciones que se pueden hacer integrando AnyLogic y R, sin embargo R cuenta con una serie de paquetes especializados en muchos campos que permiten ampliar la gama de aplicaciones. Un ejemplor puede ser utiizar paquetes de análisis estadístico (ejemplo MASS, statmod) para identificar distribuciones de probabilidad atípicas y generar predicciones sobre tiempos de operación en las estaciones para mejorar la alocación de tareas, o aplicar minería de datos  (paquetes car y caret) para clasificar actividades según rendimiento, o incluso utilizar aprendizaje autónomo (machine learning) para predecir comportamientos que mejoren la programación y sequenciación (nnet, neuralnet, RSNNS, deepnet, darch).

También es posible utilizar librerías especializadas para diseñar gráficos más avanzados que los suministrados por AnyLigic (ggplot).

En el próximo post de esta serie se explicará un ejemplo aplicando minería de datos y aprendizaje autónomo en R para optimizar un proceso de mediana complejidad.

 

24 Feb

Conferencias INFORMS y AnyLogic 2016 (Nashville TN)

En el mes de noviembre de este año se realizarán en la ciudad de Nashville Tennessee la conferencia anual INFORMS (del 13 al 16) seguida por la conferencia anual de simulación Anylogic (días 16 y 17).

A continuación los videos promocionales de cada conferencia:

INFORMS

AnyLogic

22 Feb

Libro: Simulación de Operaciones y Cadena de Abastecimiento con AnyLogic 7.2 (Prof. Dmitry Ivanov)

El profesor Dmitry Ivanov de la universidad Berlin School of Economics ha publicado recientemente un libro (aún en proceso) con tutoriales de modelos en AnyLogic dedicados a casos de producción y logística de grados MBA, Maestría y Doctorado en estudios relacionados con administración y gerencia de operaciones y logística.

Ivanov

Read More

11 Feb

Integrando AnyLogic y R Parte 1

Como se explicó en el post anterior, R es un poderoso lenguaje de programación especializado en el análisis y manipulación de datos, gratuito y de gran popularidad a nivel mundial (ver post). Por su parte AnyLogic es un software de simulación cuyo lenguaje de base es Java lo que permite la integracion de librerias externas (ver wiki).

Al combinar ambos sistemas es posible aprovechar de las funcionalidades de cada uno como gráficos, analisis y minería de datos, pronósticos, etc.

En este post explicaremos cómo llamar R a partir de AnyLogic utilizando dos diferentes librerías: AJAL Data Exporter y RCaller (se utilizan por separado y segun el caso se utiliza una u otra).

integratingALR

Read More

21 Jan

AnyLogic 7.3 Beta

al73preview

Como se anunció en un post precedente, la versión 7.3 de AnyLogic se encuentra lista desde finales de 2015 como lo anunció el fabricante en su blog el pasado 29 de Diciembre (ver post).

Tal como se esperaba esta versión cuenta con una completamente renovada versión de su librería de tráfico basada en microsimulación, lo que le permite realizar modelos mas realistas que incluyan el comportamiento individual de los vehículos, sobrepasos, glorietas, intercepciones, paraderos, parqueaderos, etc.

Adicionalmente se cuenta con unos elementos adicionales en la librería de fluídos y ciertas mejoras en la librería de rieles.

Los invito a descargar la versión beta en el siguiente link.

No olviden dejar sus comentarios.

02 Aug

AnyLogic versión 7.2

Finalmente el pasado 30 de Julio de 2015 fue lanzado oficialmente la versión 7.2 de AnyLogic. Como se pudo prever en la versión beta que circula hace poco menos de un mes la nueva edición cuenta con dos principales innovaciones, la librería de fluídos que integra elementos de simulación continua (desplazamiento de fluídos) con los eventos discretos, y la base de datos incorporada que permite manipular datos más rápidamente. Esto es perticulamente útil cuando se carga gran cantidad de información al principio de la simulación o se colectan estadísticas durante la simulación para ser transferidas al final. Ambas actividades requerían antes de la utilización de colecciones locales o de archivos de texto temporales, ahora simplemente puede almacenarse la información en tablas de la base de datos local a una mayor velocidad con menor consumo de memoria. Otra ventaja de la base de datos incorporada es la portabilidad, es decir que no se requiere software adicional para la creación y manipulación de las tablas al desplazar el modelo entre ordenadores.

Otras adiciones son las colas y escaleras no lineales (librería de peatones), integración de los sistemas geográficos (GIS) a la librería de trenes, la conversión de archivos ESRI Shapefile a marcadores de posición lo que permite personalizar layouts con geometrías complejas que marcan recorridos y fronteras (como importar un camino de un mapa y convertirlo en una carretera o una via férrea), y la ventana de ayuda que aparece en cada elemento al posar el cursor del mouse por cierto tiempo sobre él.

AL72Features

 

El consultor y blogista Benjamin Schumann hace un completo review de la nueva versión en su blog Simulación e Innovación, vale la pena leerlo.

11 Jul

Algunos recursos para el aprendizaje de AnyLogic

Los siguientes son algunos de los sitios donde se puede encontrar información para el aprendizaje de AnyLogic:

  1. Recursos oficiales de AnyLogic
    1. Libro AnyLogic en 3 días: Buena guía para el aprendizaje de modelos básicos. El libro se puede descargar gratis luego de diligenciar algunos datos en el formulario de contacto.
    2. El gran libro de la simulación: Un muy buen libro para el aprendizaje de la teoría en general, escrito por Andrei Borshchev, con aplicaciones en muchos campos. Todos los ejemplos fueron desarrollados en AnyLogic 6, sin embargo varios de ellos requieren de modificaciones menores para ser transferidos a las versiones actuales (8.x). Para los apasionados de la simulación, este libro es de lectura obligatoria. El libro se consigue en Amazon.
      Nota adicional: En la conferencia anual de 2018 se anunció que se está trabajando en una nueva versión de este libro, posiblemente muy pronto tengamos un relanzamiento.
    3. Canal Youtube de AnyLogic: Tutoriales cortos y bien elaborados sobre casos específicos.
    4. Video tutoriales: Dictados por el profesor Johan Joubert de la universidad de Pretoria, basados en su curso sobre modelación y simulación.
  2. Nathaniel Osgood: Profesor del MIT y de la universidad de Saskatchewan. Enfoca buena parte de su investigación en el sector de la salud. Basa buena parte de sus modelos son en AnyLogic. Tiene la ventaja que muchas de sus clases demostrando la aplicación de la simulación en salud y la construcción de modelos han sido grabadas y publicadas en la web.
    1. Cursos en el MIT
    2. Página en la universidad de Saskatchewan
    3. Canal Youtube
  3. Peer-Olaf Siebers: Profesor de la universidad de Nottingham (UK) dicta un curso llamado Simulación para el soporte en las decisiones. Al igual que el profesor Osgood enfoca parte de su investigación en salud, sin embargo tiene otras aplicaciones en la parte de poblaciones, crecimiento, economía. Sus presentaciones y material de apoyo está disponible en línea.
  4. Curso de AnyLogic en línea dictado por Felipe Haro: Un curso muy completo útil para usuarios de cualquier nivel que quieran profundizar sus conocimientos en el software y el desarrollo de modelos completos. Contiene muchos recursos, como tutoriales, videos y ejercicios.
  5. Blogs:
    1. Stuart Rossiter - Ciencia y Software
    2. Benjamin Schumann -  Simulación para innovación
    3. Maksim Rojkov - Análisis y Simulación
    4. Noorjax Consulting - Blog de Felipe Haro
    5. Alvaro Gil (este blog) - Simulación y Analytics
09 Sep

Simulación de sala de operaciones y carros quirúrgicos 1

Uno de los proyectos en el que trabajo actualmente es el del re-diseño del proceso de aprovisionamiento de instrumentos y material médico-quirúrgico de la sala de operaciones (16 salas de intervención) del hospital general judío de Montreal. Actualmente, todos estos productos se almacenan en pequeñas bodegas dentro de la sala de operaciones, y los productos son preparados por las enfermeras antes de cada intervención de acuerdo a una lista (receta) pre-definida. El proceso de alistamiento es dispendioso y requiere de conocimiento especializado de los productos, lo que implica altos costos de mano de obra especializada, y alta probabilidad de error.

La tendencia en el mercado es migrar hacia carros quirúrgicos, que son carros metálicos preparados específicamente para la intervención (case carts), en zonas especializadas, que normalmente se hacen desde la central de esterilización donde ahora se almacenarán los instrumentos y el material medico-quirúrgico.

El siguiente video es una demostración de uno de los simuladores construidos como soporte al proyecto en la toma de decisiones. Esta sirve particularmente para determinar la cantidad óptima de casos quirúrgicos a mantener en función de un programa operatorio (perfil quirúrgico del OR).

 

 

 

Próximas etapas

La próxima simulación es un análisis de variaciones para calcular los KPI (key performance indicators) del proceso ante diferentes parámetros como la cantidad de carros, la cantidad de salas de operación, las salas de urgencias, etc. Este análisis de sensibilidad nos permitirá optimizar el estudio.

Algunas referencias

Estos son algunos artículos y reportes sobre las ventajas de la utilización de los carros quirúrgicos (case carts), donde se explica no solo su funcionamiento sino los éxitos obtenidos en varios hospitales con esta metodología.

02 Dec

Modelo genérico de ascensores

Este modelo simula un sistema de elevadores en un edificio lo que permite probar diferentes configuraciones de flujos de visitantes, cantidad de pisos, numero de ascensores y la lógica utilizada. Los clientes son modelizados con librerías genéricas de peatones, mientras que los elevadores utilizan simulación multi-agente.

El modelo fue desarrollado en AnyLogic y tomó cerca de 3 semanas de trabajo.

El siguiente es un video de demostración de algunas funcionalidades del modelo

Una versión de prueba de este modelo puede ser descargada en el siguiente link

Stand-alone Java Application

Todos los comentarios son bienvenidos!

%d bloggers like this: