Historia de la Investigación de Operaciones

El origen exacto de la Investigación de Operaciones no está del todo establecido. Algunos autores postulan que Charles Babbage (1791-1871) es el padre de la Investigación de Operaciones debido a su contribución en la investigación de los costos de transporte y sistemas de clasificación del correo en England’s universal Penny Post en el año 1840.

Sin embargo, usualmente se considera que la Investigación de Operaciones como disciplina se origina formalmente durante la Segunda Guerra Mundial (WWII) en los esfuerzos de los planificadores militares y científicos ingleses por apoyar los procesos de toma de decisiones propios de la guerra con una base analítica y cuantitativa. El objetivo era descubrir la forma más eficiente de utilizar los limitados recursos militares a través de la aplicación de técnicas cuantitativas.

En este contexto el Problema de la Dieta fue uno de las primeros problemas de optimización estudiados en el período de 1930 a 1940. Las fuerzas armadas norteamericanas deseaban suministrar una dieta saludable a sus soldados y al mismo tiempo minimizar el costo asociado a su prestación. La premisa era el alimento es un pertrecho (munición), no lo despedicies!. Uno de los primeros investigadores en estudiar el problema fue George Stigler quien hizo una conjetura de la solución óptima a través de la utilización de un método heurístico.

problema de la dieta investigacion de operaciones

Una vez terminada la Segunda Guerra Mundial los conceptos de la Investigación de Operaciones son aplicados en otros contextos relacionados a los negocios, la industria y la sociedad. En la década de 1950 la Investigación de Operaciones evoluciona hacia una profesión, comenzándose a conformar las primeras sociedades nacionales del área, junto al nacimiento de revistas especializadas y departamentos académicos en las universidades. En 1955 se crea la Sociedad de Investigación de Operaciones en India siendo uno de los primeros miembros de la Federación Internacional de Sociedades de Investigación Operativa (International Federation of Operational Research Societies IFORS).

ifors logo

La industria petroquímica fue una de las primeras en adoptar ampliamente la Investigación de Operaciones para mejorar el desempeño de las plantas productivas. La empresa Chevron, líder mundial en la industria energética desarrolla un software llamado Petro destinado al apoyo del proceso de compra y mezcla de combustibles, alcanzando ahorros anuales del orden de 400 millones de dolares.

Actualmente la Investigación de Operaciones es utilizada a nivel mundial tanto en organizaciones publicas como privadas, además de ser un área activa de investigación académica. Al respecto algunos de los campos de acción más frecuentes son:

Un listado actualizado de casos de éxito de la Investigación de Operaciones se puede consultar directamente desde el sitio web de INFORMS (Institute for Operations Research and the Management Sciences) teniendo la posibilidad de buscar aplicaciones específicas por sector industrial, área funcional de la empresa y beneficio alcanzado.

casos-de-exito-investigacio

Queda de manifiesto el enfoque multidisciplinario de las áreas de aplicación donde la utilización de modelos de optimización son una contribución significativa a los complejos procesos de tomas de decisiones. Dichos modelos de optimización pueden ser tanto determinísticos como probabilísticos que actualmente son materias de estudios en cursos del área en carreras de pregrado y postgrado relacionadas a la Ingeniería Industrial y otras ingenierías afines.

Qué es la Investigación de Operaciones

La Investigación de Operaciones o Investigación Operativa (en inglés OROperations Research) es una disciplina que consiste en la aplicación de métodos analíticos avanzados con el propósito de apoyar el proceso de toma de decisiones, identificando los mejores cursos de acción posibles.

En este contexto la Investigación de Operaciones utiliza técnicas de modelamiento matemático, análisis estadístico y optimización matemática, con el objetivo de alcanzar soluciones óptimas o cercanas a ellas cuando se enfrentan problemas de decisión complejos. Se espera que las decisiones alcanzadas mediante el uso de un modelo de investigación operativa sean significativamente mejores en comparación a aquellas decisiones que se podrían tomar haciendo uso de la simple intuición o experiencia del tomador de decisiones. Lo anterior es particularmente cierto en aquellos problemas de naturaleza real complejos, que consideran cientos, incluso miles de variables de decisión y restricciones.

La Investigación de Operaciones se complementa con otras disciplinas como la Ingeniería Industrial y la Gestión de Operaciones. En términos estrictos un modelo de optimización considera una función objetivo en una o varias variables que se desea maximizar (por ejemplo el ingreso o beneficio asociado a un plan de producción) o por el contrario minimizar (por ejemplo los costos de una firma, el riesgo asociado a una decisión, la pérdida de un alternativa, etc). Los valores que pueden adoptar las variables de decisión usualmente están restringidos por restricciones que adoptan la forma de ecuaciones y/o inecuaciones que buscan representar las limitantes asociadas a la problemática.

El enfoque de la Investigación de Operaciones es el modelaje. Un modelo es una herramienta analítica que nos sirve para lograr una visión bien estructurada de la realidad. Así, el propósito del modelo es proporcionar un medio para analizar el comportamiento de las componentes de un sistema con el fin de optimizar su desempeño (identificar el mejor curso de acción posible).

Una visión esquemática del proceso asociado a la construcción de un modelo de optimización se presenta a continuación:

metodologia-investigacion-d

1. Definición del problema: Se debe definir el problema para el cual se busca proponer un curso de acción. ¿Es un problema relevante? ¿es posible tomar una buena decisión sin la necesidad de resolver un modelo de optimización? ¿cuáles son sus alcances? ¿cuáles son los factores que influyen en el desempeño del sistema?, etc. La calidad del modelo de optimización dependerá en gran parte de la asertividad en la definición del problema de decisión.

2. Construcción de un modelo: Un modelo de optimización considera necesariamente una abstracción o simplificación de la realidad. Por un lado se busca que el modelo sea representativo del problema real que se busca representar pero que al mismo tiempo sea simple de modo de favorecer su resolución haciendo uso de un algoritmo ad-hoc. Alcanzar este equilibrio no es trivial. Por ello ante un mismo problema puede existir más de un modelo de optimización que lo represente con distintos niveles de detalle y abstracción.

3. Solución del modelo: Una vez construido el modelo de optimización se deben identificar las alternativas de resolución para el mismo. Para ello se puede hacer uso de programas computacionales que utilizan algoritmos de resolución específicos dependiendo de las características del modelo. Por ejemplo, para resolver un problema de Programación Lineal (las variables de decisión se representan como funciones lineales tanto en la función objetivo como restricciones) se puede utilizar el Método Simplex.

4. Validación: Se verifica que la solución alcanzada cumpla con las condiciones (restricciones) impuestas al problema.

5. Implementación y control de la solución: Una vez verificada la solución se procede a su implementación. Cabe destacar que esto puede lugar a actualizaciones del modelo de optimización tanto en términos del modelo como el valor de los parámetros estimados. Por ejemplo, si el modelo de optimización corresponde a un Plan Maestro de la Producción (PMP) y se genera un cambio en el valor de la hora hombre de los trabajadores será necesario actualizar el valor del parámetro que representa dicho costo para posteriores instancias de resolución.

En la actualidad el uso de modelos de optimización es cada vez más frecuente en la toma de decisiones. Este mayor uso se explica, principalmente, por un mejor conocimiento de estas metodología en las diferentes disciplinas, la creciente complejidad de los problemas que se desea resolver, la mayor disponibilidad de software y el desarrollo de nuevos y mejores algoritmos de solución.

Las sub disciplinas más destacadas en la Investigación de Operaciones moderna son:

Cómo determinar la Duración Óptima de un Proyecto a través del Análisis de Crashing

La Programación Lineal como hemos analizado anteriormente provee una forma eficiente para enfrentar el problema de cómo reducir la duración de un proyecto de la forma más económica posible (Análisis de Crashing) en el contexto de la aplicación del Método de Ruta Crítica (CPM) para la gestión de proyectos. Adicionalmente en algunas situaciones se suele enfrentar costos de penalización en la medida que el proyecto se entregue más tarde de lo comprometido o estimado, como también incentivos por entregas anticipadas que no vayan en desmedro de la calidad del proyecto.

Consideremos el siguiente ejemplo para el cálculo de la Duración Óptima de un Proyecto (el tiempo está medido en días y el costo en dólares):

tabla-datos-proyecto-crashi

Por ejemplo la Actividad F tiene una duración normal de 4 días a un costo de 600 dólares y se puede comenzar una vez terminadas las Actividades B y E (predecesores). Si se desea apurar (hacer “crash”) en la Actividad F, el menor tiempo que se puede adoptar es de 2 días (es decir, la reducción máxima es 2 días), donde por cada día que se reduce la duración de dicha actividad se incurre en un costo adicional de 175 dólares. De esta forma, por ejemplo, si se quisiera reducir la duración de la Actividad F de 4 a 3 días, el costo sería de 775 dólares (600+175).

Asuma que la fecha de entrega del proyecto es el día 10. La compañía debe pagar 170 dólares por cada día de atraso. Encuentre el número óptimo de días que debe durar el proyecto a través del análisis de crashing y el costo total del proyecto (incluyendo posibles multas por atraso).

Indique claramente las actividades donde realice crashing. Dibuje el diagrama del proyecto de la alternativa que se propone (el proyecto con el costo más bajo), representando el nombre de cada actividad al interior de los respectivos nodos. Para cada actividad calcule los siguientes indicadores: IC, TC, IL, TL. Luego obtenga explícitamente la holgura de cada actividad y la(s) ruta(s) crítica(s) del proyecto.

A continuación se define un modelo de optimización lineal propuesto para abordar el problema:

Variables de Decisión:

variables-crashing

Parámetros:

parametros-crashing-optimo

Función Objetivo: Consiste en minimizar el costo de terminar el proyecto en K días, donde 3.175 corresponde al costo en dólares de desarrollar el proyecto con las actividades en tiempo normal y la expresión en la sumatoria es el costo incremental de disminuir la duración del proyecto.

funcion-objetivo-crashing-o

Restricciones:

Cada actividad se puede reducir (de ser posible) dentro del límite máximo de reducción permisible:

xi-menor-o-igual-a-mi

Relaciones de predecesores entre las actividades y el tiempo de inicio y reducción:

relacion-predecesores-crash
Definición del tiempo objetivo para el proyecto:
tiempo-objetivo-crashing
No negatividad de las variables de decisión:
no-negatividad-crash

Una vez definido el modelo de Programación Lineal se implementa computacionalmente haciendo uso de Solver de Excel. Para ello será necesario sensibilizar los resultados del modelo para valores del parámetro K en el intervalo de [10,15] días (el lector puede corroborar que la duración del proyecto si cada actividad mantiene su duración normal es de 15 días). La solución óptima se resume a continuación:

solucion-crashing-solver

El tiempo óptimo para completar el proyecto corresponde a 12 días, con un costo total (incurriendo multas por atraso) de 3.890 dólares. El gráfico a continuación muestra el valor de la función objetivo (costo total) para distintos valores de duración del proyecto.

costo-proyecto-versus-tiemp

A continuación desarrollamos el diagrama del proyecto donde se observa que existen 2 rutas críticas: A-B-F y A-C-E-F, con una duración de 12 días. Notar que la única actividad que no es crítica con holgura positiva (de 1 día) es la Actividad D.

ruta-critica-crashing

¿Quieres tener el archivo Excel con la resolución en Solver de este problema?

[sociallocker]Crashing Óptimo[/sociallocker]

Ejemplo del Problema del Flujo Máximo en Programación Entera resuelto con Solver

Este tipo de problemas (Problema del Flujo Máximo) es similar al Problema de Ruta más Corta, pero ahora se busca determinar el flujo máximo entre un nodo fuente y un nodo destino, los que están enlazados a través de una red, con arcos con capacidad finita, tal como se presenta en la siguiente figura. Notar que los números asignados a cada uno de los arcos representan los flujos máximos o capacidades correspondientes a cada arco.

ruta-flujo-maximo

Problema del Flujo Máximo

Desde el punto de vista de la Programación Entera podemos plantear la situación de la siguiente forma:

Variables de Decisión:

variables-flujo-maximo

Función Objetivo: Maximizar las unidades que salen del nodo de origen (1) a los que éste conecta (2, 4 y 5) o alternativamente maximizar las unidades que llegan al nodo de destino (8) desde los que conectan a él (3, 6 y 7).

funcion-flujo-maximo

Restricciones:

Restricciones de Flujo Máximo: La cantidad de unidades que sale de cada nodo de origen a un nodo de destino no puede superar la capacidad detallada en el arco, por ejemplo, del nodo 1 al nodo 2 sólo se pueden enviar 7 unidades.

restricciones-flujo-maximo

Restricciones de Balance de Flujo en los Nodos: Debe existir un equilibrio entre la cantidad de unidades que llega a un nodo y las que de éste salen, por ejemplo el número de unidades que se envía desde el nodo 1 al 4 (si es que así fuese el caso) debe ser igual a lo que desde el nodo 4 se envían al nodo 3 y 6.

balance-flujo-maximo

No Negatividad e Integralidad: Las variables de decisión de decisión deben cumplir las condiciones de no negatividad. Adicionalmente exigiremos que éstas adopten valores enteros aún cuando se podría flexibilizar dicha situación lo que daría origen a un problema de Programación Lineal.

no-negatividad-flujo-maximo

Luego de implementar el modelo de optimización anterior con Solver se alcanza la siguiente solución óptima y valor óptimo:

solucion-flujo-maximo

Notar que el flujo máximo de unidades que puede llegar al nodo de destino son 32 unidades (valor óptimo) donde cualquiera de las funciones objetivos propuestas proporciona el mismo resultado (en particular hemos utilizado la primera de ellas). Los valores de las celdas en color amarillo representan la solución óptima, es decir, la cantidad de unidades que fluyen en cada combinación de un nodo origen destino.

En el siguiente tutorial de nuestro canal de Youtube se detalla la implementación computacional que permite alcanzar los resultados anteriormente expuestos:

¿Quieres tener el archivo Excel con la resolución en Solver de este problema?. Recomiéndanos en Facebook, Google+ o Twitter utilizando la herramienta de redes sociales a continuación y accede de forma gratuita e inmediata a la descarga del archivo (el enlace de descarga con el nombre “Descarga el Archivo” se mostrará abajo una vez que nos hayas recomendado).

[l2g name=”Descarga el Archivo” id=”4352″]

Teorema Fundamental de la Programación Lineal

En el siguiente artículo abordaremos a través de una discusión conceptual y ejemplos prácticos y sencillos las propiedades que establece el Teorema Fundamental de la Programación Lineal. Estas propiedades son indispensables tener en consideración al momento de la resolución algorítmica de este tipo de modelos de optimización matemática, destacando entre ellos el Método Simplex como así también la resolución de modelos lineales a través del Método Gráfico.

Teorema Fundamental de la Programación Lineal

Cada problema de Programación Lineal en su forma estándar cumple con las siguientes tres propiedades:

  • Propiedad 1: “Si el problema no tiene solución óptima entonces es no-acotado o infactible”

Notar que un problema lineal con dominio de soluciones factible no acotado puede (o no) admitir solución óptima, es decir, el hecho de enfrentar un modelo de estas características no determina a priori la presencia (o ausencia) de solución óptima.

En la aplicación del Método Simplex se detecta un problema no acotado sin solución óptima cuando al realizar el cálculo de la variable que deja la base, todos los elementos ykj de la columna j en la tabla, son negativos para j el índice de una variable no básica con costo reducido negativo. Por ejemplo consideremos el siguiente problema de Programación Lineal:

modelo lineal no acotado

Luego de llevar a la forma estándar el modelo anterior, agregando X3 y X4 como variables de holgura para la restricción 1 y 2, respectivamente, se obtiene la siguiente tabla inicial.
método simplex no acotado

X2 es una variable no básica con costo reducido negativo y en consecuencia la incorporamos a la base. Sin embargo no es factible calcular el criterio de factibilidad o mínimo cuociente debido a que las entradas en la columna de X2 son negativas o cero. Lo anterior deja en evidencia que el problema es no acotado sin solución óptima.

Por otra parte un modelo lineal es infactible (dominio de soluciones factibles vacío y por tanto no admite solución) si el valor de la función objetivo al finalizar la Fase I del Método Simplex de 2 Fases es distinto a cero.

  • Propiedad 2: “Si tiene una solución factible, tiene una solución básica factible”

Una propiedad básica de los modelos de Programación Lineal es que en caso de admitir solución óptima, ésta se encontrará necesariamente en un vértice o tramo en la frontera del dominio de soluciones factibles.

En este contexto en la aplicación del Método Simplex como estrategia algorítmica de resolución, se busca proveer soluciones que cumplan con Ax=b (restricciones de la forma estándar) y x≥0, definiendo una solución básica factible (no necesariamente óptima).

Por ejemplo en el siguiente gráfico que representa un modelo lineal en 2 variables se puede apreciar que los vértices A, B, C, D y E son soluciones básicas factibles.

modelo-lineal-2-v
solucion-grafica-nueva-rest

  • Propiedad 3: “Si el problema tiene solución óptima, tiene una solución básica factible óptima”

Siguiendo con el ejemplo anterior el vértice C no sólo es una solución básica factible sino también una solución básica factible óptima. Si todos los costos reducidos (de las variables no básicas: S1 y S3) son mayores o iguales que cero y estamos en presencia de una solución básica factible (X=100, S2=400, Y=350 todas ≥0), se cumple con el criterio de parada del Método Simplex y en consecuencia la actual solución básica factible es óptima.

tabla-optima-simplex