El Algoritmo Simplex al servicio de la optimización matemática de procesos y recursos
En el año 1947, George Bernard Dantzig desarrolló el llamado Algoritmo Simplex, un procedimiento iterativo utilizado para resolver problemas complejos de optimización de funciones lineales. El Algoritmo Simplex es un método secuencial de optimización que permite, de manera iterativa, ir mejorando la solución a cada paso. El proceso concluye cuando se ha encontrado la solución óptima.
La toma de decisiones en una empresa acerca de cómo planificar y organizar a su personal, cómo distribuir la producción, cómo organizar los recursos o las rutas son ejemplos de campos de aplicación para la optimización matemática mediante el Algoritmo Simplex: Se trata de maximizar o minimizar una cantidad, cumpliendo una serie de restricciones impuestas.
MDS, en continuo desarrollo de sus productos para lograr el estado del arte en la planificación inteligente de personal, incorpora soluciones basadas en el Algoritmo Simplex. Pero, ¿Qué relación existe entre todos estos conceptos? En los siguientes apartados lo explicaremos de manera sencilla y resumida.
Los métodos de optimización
El objetivo de los métodos de optimización es encontrar la mejor solución de modelos de decisiones difíciles frente a múltiples soluciones locales.
Los métodos de optimización son empleados para encontrar un juego de parámetros de diseño x = [x1, x2,…, xn] que hacen que una función objetivo f(x) alcance un valor óptimo.
El problema general de optimización es el siguiente:
Existen diversos métodos de optimización, clasificados en tres grandes grupos [1]:
- Métodos de optimización matemática
- Procesos estocásticos
- Métodos estadísticos
Dentro de los métodos de optimización matemática, cuando la función objetivo y las restricciones son funciones lineales de la variable de diseño, el problema se conoce como programación lineal (PL).
[1]Singiresu S. Rao. “ENGINEERING OPTIMIZATION Theory and Practice” .By John Wiley & Sons, Inc., Wiley Eastern Limited, Publishers, and New Age International Publishers, Ltd. Third edition. 1996
Programación lineal
La programación lineal es un método de optimización matemática que resuelve problemas donde todas las relaciones entre las variables son lineales, tanto en las restricciones como en la función objetivo.
Así, se define programación lineal como el campo de la optimización matemática dedicado a optimizar (maximizar o minimizar) una función lineal denominada función objetivo, de tal forma que las variables de dicha función estén sujetas a una serie de restricciones expresadas mediante un sistema de inecuaciones también lineales.
Un problema general de programación lineal se define así:
La programación lineal es de gran aplicación en diversas áreas de la ingeniería, industria, ciencia o economía. Ha obtenido exitosos resultados en la optimización de procesos y recursos para obtener la máxima utilidad en campos como:
- Planeación de producción
- Campañas publicitarias
- Planificación de personal
- Optimización de mezclas de productos
- Optimización de rutas de transporte
El uso del Algoritmo Simplex en problemas de Programación Lineal
Una vez que se ha conseguido representar una situación mediante un modelo lineal, es preciso encontrar y explotar la solución de ese modelo. Existen varias formas de llegar a esta solución, sin embargo, hoy en día, el Algoritmo Simplex es uno de los algoritmos más conocidos y utilizados debido a su simplicidad y efectividad para la resolución de dichos problemas de programación lineal.
El uso de la computación, ha facilitado su rápido desarrollo y aplicación empresarial, existiendo hoy en día programas informáticos que utilizan el Algoritmo Simplex para resolver complejos modelos lineales.
El método Simplex es un procedimiento iterativo que permite ir mejorando la solución a cada paso, concluyendo el proceso cuando no es posible seguir mejorando más dicha solución.
La interpretación gráfica del Algoritmo Simplex es la siguiente: Partiendo del valor de la función objetivo en un vértice cualquiera de un poliedro, el método consiste en ir de dicho vértice a un vértice vecino de manera que aumente o disminuya (según que el contexto de la función objetivo sea maximizar o minimizar) la función objetivo. Dado que el número de vértices que presenta un poliedro solución es finito, siempre se hallará solución.
De manera muy resumida, los pasos para aplicar el Algoritmo Simplex son:
- Convertir las restricciones en ecuaciones, mediante la introducción de variables de holgura. Dichas variables de holgura constituirán la matriz identidad
- Definir la Solución Básica Inicial (variables de coeficiente distinto de cero de la matriz identidad
- Construir la tabla Simplex inicial
- Realizar continuadas iteraciones hasta hallar la solución óptima
El Algoritmo Simplex resulta adecuado para modelos pequeños o medianos (hasta decenas de miles de variables y restricciones). Así, el uso de programas informáticos basados en el Algoritmo Simplex permiten solucionar problemas complejos de manera inteligente y con alta rapidez.
Planificación de personal mediante el Algoritmo Simplex
Una gran parte de los problemas que hoy en día se presentan en empresas o industrias se refieren a cómo planificar eficientemente sus recursos para optimizar la productividad. Estos problemas requieren el uso de técnicas de optimización matemática y en gran parte de ellos se ha utilizado el Algoritmo Simplex con éxito, al tratarse de procesos lineales. Es el caso de la planificación de personal o Workforce Management: El uso de técnicas de optimización matemática mediante Algoritmo Simplex permite lograr los siguientes resultados:
- Asignaciones óptimas de recursos limitados para cumplir con un objetivo dado
- Respuesta que proporciona un mejor resultado: Mayor producción, mayor beneficio, etc.
- Conjunto de parámetros que permite utilizar de la manera más eficiente los recursos: Recursos humanos, recursos materiales, tiempo, recursos económicos.
- Alineación de los objetivos estratégicos de la empresa con sus recursos humanos
La aplicación del Algoritmo Simplex para resolver problemas de planificación de personal, deben constar de varias etapas:
- En primer lugar, deben identificarse las variables cuantitativas del problema, es decir, las posibles decisiones que pueden tomarse respecto a cómo planificar y organizar al personal.
- El siguiente paso es definir la función objetivo del problema, es decir la función que se quiere optimizar (minimizar o maximizar) y que vendrá dada por una combinación lineal de las variables definidas previamente.
- Posteriormente, se deben determinar las decisiones que resultan admisibles. Para ello, será necesario escribir una serie de ecuaciones que representarán las diferentes restricciones existentes en el proceso de planificación de personal dentro de una empresa.
- En la siguiente etapa, se calcula el coste/beneficio asociado a cada decisión admisible. Esto supone determinar una función objetivo que asigna, a cada conjunto posible de valores para las variables que determinan una decisión, un valor de coste/beneficio.