Skip to content

Simulación frente a programación basada en la optimización

  • AUTHOR
  • Simio Staff
Descargar versión PDF

Los problemas de programación suelen ser grandes y complejos y se clasifican matemáticamente en un grupo de problemas denominados NP-Hard (non-deterministic polynomial-time hard). En términos no matemáticos, son los problemas computacionales más difíciles para los que no existen algoritmos óptimos prácticos. Como resultado, todas las soluciones de programación hacen uso de heurísticas y, por lo tanto, ninguna produce una solución óptima (independientemente de lo que sugieran los vendedores). Lo mejor que se puede esperar de este tipo de problemas es una "buena" solución, que sea mejor y más fácil de obtener que tratar de generar manualmente una solución utilizando Excel o una tabla de planificación. En este libro blanco compararemos brevemente los enfoques basados en la optimización y la simulación del problema de la programación.

Programación basada en la optimización

A pesar de su nombre, las herramientas de programación basadas en la optimización utilizan enfoques heurísticos que intentan generar una solución que satisfaga una lista de restricciones matemáticas, y que también proporcione un rendimiento razonable en medidas clave como el número de trabajos retrasados. No hay garantías de la calidad de la programación en comparación con otras programaciones posibles o del tiempo de cálculo que podría ser necesario para llegar a una programación factible o buena.Por lo general, estas herramientas se esfuerzan primero en generar un programa factible y, a continuación, lo mejoran explorando variaciones del programa factible para mejorar las medidas de rendimiento. La calidad de la respuesta final estará limitada por el tiempo que se conceda al algoritmo para buscar mejores soluciones. Normalmente, se establece un límite de tiempo (por ejemplo, una hora) para la búsqueda algorítmica y la mejor solución encontrada durante ese tiempo de búsqueda se utiliza como programa.

El algoritmo (a veces denominado solucionador) busca basándose en un modelo matemático del sistema de producción que se configura durante la instalación del software. El modelo matemático describe las restricciones de recursos del sistema y, en algunos casos, puede incluir detalles como los tiempos de preparación de un recurso en función de la secuencia. Sin embargo, este modelo matemático tiene una estructura limitada y no puede capturar todas las restricciones; por ejemplo, la manipulación compleja de materiales como el movimiento de AGV o múltiples grúas superpuestas.Incluso dentro de las capacidades del modelo matemático, a menudo es necesario omitir detalles de la instalación (por ejemplo, tiempos de preparación dependientes de la secuencia) para mantener el tiempo de cálculo requerido para el algoritmo de búsqueda dentro de límites aceptables.Debido a las limitaciones del modelo matemático, las herramientas de optimización funcionan mejor en aplicaciones sencillas y directas con pocas restricciones complejas.

Una de las herramientas de programación basadas en la optimización más conocidas es PP/DS de SAP. Esta herramienta ofrece dos solvers alternativos para generar soluciones al modelo matemático. El primer solver es un algoritmo de programación basado en restricciones que es la mejor opción para buscar una solución factible cuando existen muchas restricciones complejas. Sin embargo, este solver es menos eficaz para encontrar buenas soluciones.El segundo solucionador es un algoritmo genético que puede proporcionar mejores soluciones siempre que no existan demasiadas restricciones. El éxito de cualquiera de estos solucionadores para proporcionar una solución razonable dentro de los límites de un tiempo de búsqueda práctico depende de la complejidad del modelo matemático y de su ajuste aproximado al sistema real.

A menudo, los solucionadores no son capaces de resolver el problema en un tiempo práctico, por lo que PP/DS también proporciona un conjunto de algoritmos heurísticos simples para generar un programa factible. La mayoría de las implementaciones de PP/DS utilizan estos heurísticos simples y no hacen uso de los dos solucionadores disponibles.

Programación basada en la simulación

El enfoque de la programación basado en la simulación sustituye el conjunto de restricciones matemáticas por un modelo de simulación de la instalación. Algunas herramientas basadas en la simulación (por ejemplo, Preactor) utilizan un modelo de simulación codificado de la instalación que se configura utilizando una base de datos. Estas herramientas se limitan a aplicaciones en las que el modelo basado en datos se ajusta razonablemente a la instalación. Otras herramientas de simulación (por ejemplo, Simio) admiten tanto un enfoque basado en datos (para aplicaciones estándar) como la creación personalizada del modelo de simulación subyacente de la instalación (para aplicaciones complejas). Este último enfoque proporciona una flexibilidad total a la hora de capturar las restricciones detalladas del proceso en el sistema y una mayor transparencia en el proceso de generación del programa.

En una herramienta basada en la simulación, la programación se genera simulando el flujo de trabajo a través del modelo de la instalación. A medida que los trabajos se desplazan por la instalación simulada, harán cola delante de las máquinas y esperarán a que el material, las herramientas y los operarios estén disponibles antes de continuar. El movimiento del trabajo a través del modelo de la instalación simulada se registra y se muestra en forma de diagramas de Gantt que muestran el flujo de cada trabajo a través del sistema.El diagrama de Gantt de recursos muestra la carga de cada trabajo en cada recurso del sistema, y el diagrama de Gantt de trabajos muestra el flujo de cada trabajo a través de los recursos que utiliza durante el procesamiento. A continuación se muestra un diagrama de Gantt de recursos sencillo generado por el programador basado en simulación Simio. Este diagrama de Gantt es interactivo y permite al programador arrastrar y soltar órdenes dentro de las máquinas y entre ellas en el diagrama de Gantt. Esto permite al programador realizar ajustes en la programación generada por el modelo de simulación.

img

Además de los diagramas de Gantt interactivos, Simio también puede proporcionar informes detallados y cuadros de mando interactivos que resumen el flujo de trabajo programado a través de la instalación. Estos pueden incluir informes y cuadros de mando estándar sobre los recursos, materiales y restricciones del sistema, así como informes y cuadros de mando personalizados para aplicaciones específicas. Los resultados de la programación pueden difundirse a múltiples usuarios en dispositivos móviles utilizando el Portal Simio basado en la nube. A continuación se muestra un ejemplo de cuadro de mando interactivo en el que se muestran los estados de las máquinas y los trabajos pendientes de las máquinas de la instalación.

img

En Simio, el flujo de trabajo a través del sistema para generar la planificación también se puede ver en una animación 3D de alta fidelidad (véase más abajo). Esto hace que el proceso de generación de la planificación sea un proceso muy transparente. A continuación se muestra una instantánea de la generación de la planificación animada para el planificador basado en simulación Simio.

img

La optimización de la planificación se produce mediante la aplicación de reglas de planificación heurísticas en las decisiones que se toman durante la ejecución del modelo. Por ejemplo, cuando una máquina se queda inactiva, puede tener que elegir qué trabajo procesar a continuación. Las herramientas de planificación basadas en la simulación suelen proporcionar un amplio conjunto de reglas para realizar esta selección.Por ejemplo, en una industria de procesos se puede especificar una regla que minimice los tiempos/costes de preparación dependientes de la secuencia en una estación de trabajo específica. Existen otras reglas que se centran en otras medidas de rendimiento clave, como minimizar la tardanza, maximizar el rendimiento o minimizar el tiempo de inactividad en una máquina con cuello de botella. También es fácil crear reglas personalizadas para medidas de rendimiento específicas de la aplicación.

Una ventaja clave del enfoque de la programación basado en la simulación es que cuando se produce un evento perturbador (por ejemplo, la avería de una máquina) se puede generar una nueva programación en unos pocos segundos o minutos (en comparación con las horas de una herramienta basada en la optimización). La velocidad significativamente más rápida de las herramientas de programación basadas en la simulación las convierte en la mejor opción en entornos altamente dinámicos donde la necesidad de reprogramar se produce con frecuencia.

Otra ventaja clave del enfoque basado en la simulación es la capacidad de capturar las restricciones detalladas del sistema en un modelo de instalaciones de alta fidelidad. Esto da lugar a programas realistas y ejecutables que pueden implementarse "tal cual" en la planta de producción sin necesidad de ajustes por parte de los operarios. Cuando una herramienta de programación genera programas inviables que requieren cambios en la planta de producción, los operarios pueden tomar decisiones "locales" que produzcan un programa no óptimo.

Un problema crítico del enfoque de programación basado en la optimización es que requiere que todos los datos sean totalmente conocidos y deterministas. Por ejemplo, todos los tiempos de procesamiento deben ser fijos y no puede haber imprevistos ni retrasos. Por desgracia, éste es el "camino feliz" a través del sistema y la programación resultante es optimista por naturaleza, y suele ser muy diferente de lo que ocurre en las instalaciones reales. Es habitual que lo que empieza siendo un programa factible se vuelva inviable con el tiempo, a medida que las variaciones y los imprevistos degradan el rendimiento. Es normal que existan grandes discrepancias entre la planificación prevista y el rendimiento real. Para protegerse contra los retrasos, el programador debe amortiguar con alguna combinación de tiempo, inventario o capacidad adicionales, todo lo cual añade costes al sistema. La planificación y programación basada en el riesgo (RPS) de Simio amplía la programación tradicional para tener plenamente en cuenta la variación que está presente en casi cualquier sistema de producción, y proporciona la información necesaria al programador para permitir la mitigación anticipada del riesgo y la incertidumbre.

Descargar versión PDF