Problema de Producción y Transporte resuelto con Solver

El siguiente problema de producción y transporte fue enviado por uno de nuestros usuarios de Colombia de la ciudad de Santa Cruz de Lorica: «Una compañía que fabrica Cereal de Maíz tiene dos campos de siembra, el Campo I y el Campo II, y dos molinos, A y B. Las capacidades de suministro mensual de maíz de los Campos I y II son 125 y 245 toneladas, respectivamente. El molino A requiere por lo menos 190 toneladas de Maíz al mes y el B por lo menos 158 toneladas mensuales. Los costos de transporte en unidades monetarias por tonelada de cada Campo a cada molino son los siguientes: 2 del Campo I al molino A, 3 desde el Campo I al molino B, 4 desde el Campo II al molino A, y 5 desde el Campo II al molino B».

¿Qué cantidad de Maíz debe transportarse desde cada Campo I y II a cada molino A y B de forma que se logre minimizar el costo total de transporte? ¿Cuál es ese costo mínimo? ¿Hay algún envío que no debe realizarse para conseguir dicho costo mínimo?.

Para una mejor comprensión del problema anterior representaremos gráficamente la información anterior donde se puede apreciar los distintos oferentes (Campos) y demandantes (Molinos), además de la capacidad de producción y demanda (en toneladas mensuales) junto a los costos de transporte para cada combinación origen destino.

diagrama-problema-transport

Problema de Producción y Transporte

1. Variables de Decisión: (con i=I,II y j=A,B)

variable-decision-produccio

2. Función Objetivo: Minimizar los costos que se asumen mensualmente por el transporte de cereal desde los campos a los molinos.

funcion-objetivo-produccion

3. Restricciones: 

Capacidad de Producción de los Campos: La cantidad de toneladas que se transporte desde cada campo a cada uno de los molinos no puede superar su capacidad de producción.

restriccion-capacidad-trans

Demanda de los Molinos: Cada molino debe recibir un mínimo de toneladas mensuales de cereal desde los campos.

restriccion-demanda-transpo

No Negatividad: Las variables de decisión deben adoptar valores reales no negativos.

A continuación se detalla la implementación computacional del modelo de optimización haciendo uso de Solver de Excel:

solver-produccion-y-transpo

Notar que la celda F9 es una fórmula asociada a la función objetivo que pondera los costos unitarios de transporte por las toneladas transportas en cada combinación de origen (campos) destino (molinos). La celda E3 es la suma de C3 y D3 (análogamente E4=C4+D4) representando las restricciones de capacidad. De similar forma la celda C5 es una fórmula que considera la suma de las celdas C3 y C4 (por supuesto D5=D3+D4). Una vez generada la estructura del modelo de Programación Lineal se carga éste en la interfaz de Solver:

interfaz-solver-produccion-

La solución óptima (celdas color amarillo) consiste en transportar 125 toneladas del Campo I al Molino B y el Campo II envía 190 y 33 toneladas a los Molinos A y B, respectivamente. El valor óptimo es de 1.300 unidades monetarias.

solucion-optima-produccion-

¿Quieres tener el archivo Excel con la resolución en Solver de este problema?. Recomiéndanos en Facebook o Google+ utilizando la herramienta de redes sociales a continuación y accede de forma gratuita e inmediata a la descarga del archivo.

[sociallocker]Problema de Producción y Transporte[/sociallocker]

Cómo instalar WinQSB en un computador con Sistema Operativo Windows 7

Lamentablemente el popular software WinQSB (muy útil como herramienta de análisis para cursos de Gestión de Operaciones e Investigación de Operaciones) el cual hemos utilizado en artículos anteriores en el blog no es compatible con las últimas versiones de sistema operativo Windows, en particular con Windows 7 y tampoco lo es con Windows 8 o con la reciente versión disponible de Windows 10 que Microsoft ha dispuesto para descarga e instalación gratuita por parte de los usuarios. Si bien existen alternativas en la red donde podemos descargar el programa quedará en evidencia la incompatibilidad según se muestra en la imagen a continuación:

winqsb-incompatible-con-win

En nuestra experiencia WinQSB ha funcionado sin inconvenientes en una versión de 34 bits de Windows Vista pero desconocemos desde que versión de Windows exactamente ya no es posible su utilización (lo más probable es que justamente sea a contar de la versión de Windows 7).

¿Qué podemos hacer entonces para utilizar WinQSB en una versión más reciente de Windows?. En una frase esta pregunta no es fácil de responder, sin embargo, te sugerimos los siguientes pasos:

1. Verifica con exactitud que versión de Windows tienes. Para ello haz clic en el botón InicioImagen del botón Inicio, luego con el botón secundario en Equipo y finalmente en Propiedades.

windows-7-home-premium

2. Intenta si es posible instalar Windows XP Mode. Con Windows XP Mode se pueden ejecutar programas diseñados para Windows XP en equipos con las ediciones Professional, Enterprise o Ultimate de Windows 7. Lamentablemente Windows XP Mode no se admite en Windows 8. (Lee detenidamente las instrucciones disponibles en: http://windows.microsoft.com/es-xl/windows7/install-and-use-windows-xp-mode-in-windows-7).

Como podrás haber apreciado nuestra versión de Windows 7 es Home Premium la que en principio sería incompatible con XP Mode. Si tienes la edición ProfessionalEnterprise o Ultimate te agradeceríamos nos puedas compartir tu experiencia en la instalación de Windows XP Mode y luego la utilización de WinQSB (para ello puedes agregar tus comentarios a este artículo, te agradecemos de antemano!).

Como resolver un modelo de Programación Lineal con OpenSolver

OpenSolver es una excelente complemento de Excel que permite resolver modelos de optimización. En el siguiente artículo se describe cómo resolver un modelo de Programación Lineal con esta herramienta (previa descarga e instalación de OpenSolver en Excel 2010). Para fines académicos consideraremos un modelo lineal con 2 variables de decisión, no obstante se puede extender su aplicación a problemas de mayor tamaño sin inconvenientes.

modelo-lineal-infinitas-sol

A continuación necesitamos preparar una planilla Excel que considere los parámetros y variables del modelo (este paso es similar a la carga de un modelo en Solver de Frontline). Se puede apreciar que las celdas B2 y C2 (color amarillo) han sido asignadas a las variables de decisión y la función objetivo (celda azul) corresponde a la celda E2 que es una fórmula que vincula las variables de decisión y los respectivos parámetros que ponderan a éstas. Finalmente las celdas D5 y D6 son fórmulas que representan el «lado izquierdo» de las restricciones del problema (por ejemplo la celda D5 corresponde a B2*B5+C2*C5 o equivalentemente SUMAPRODUCTO(B2:C2;B5:C5)).

carga-modelo-lineal-opensol

Una vez completado el paso anterior se debe ejecutar OpenSolver cuyo menú esta disponible en la pestaña de «Datos» de Excel. Luego se selecciona «Model…» según se muestra a continuación:

model-opensolver

La interfaz para implementar el modelo es bastante similar a la versión tradicional de Solver (Frontline). Se define la celda objetivo (E2) en maximización; a continuación se selecciona el rango de variables de decisión (según se muestra en la siguiente imagen) y las restricciones. Si intentas replicar la estructura del ejemplo que desarrollamos en este artículo se debería ver así:

interfaz-opensolver

Luego seleccionamos «Save Model» (cambiará la estructura de la planilla la cual adoptará colores lo cual es una de las características de OpenSolver que hacen de este complemento una herramienta intuitiva para el usuario).

carga-opensolver-color

Finalmente seleccionamos «Solve»:

solve-opensolver

El programa se ejecutará y proporcionará (de existir) la solución óptima (X=0 e Y=60) y valor óptimo (V(P)=1.200) del problema de optimización:

solucion-optima-opensolver

Los resultados alcanzados son coincidentes con los alcanzados en la resolución gráfica del problema que hemos abordado en el artículo «Qué significa un Precio Sombra igual a Cero en Programación Lineal« según muestra la imagen a continuación:

grafico-infinitas-solucione

A continuación puedes descargar el archivo con la resolución en OpenSolver de este problema de modo de que puedas familiarizarte con este complemento de Excel: Modelo de Programación Lineal resuelto con OpenSolver

Cómo descargar e instalar OpenSolver en Excel 2010

OpenSolver es una alternativa gratuita a Premium Solver Pro y What’sBest! que permite resolver modelos de optimización haciendo uso de Excel. Este complemento fue desarrollado y actualmente mantenido por Andrew Mason y estudiantes del departamento de ciencias de la ingeniería de la Universidad de Auckland (Nueva Zelanda). En el siguiente artículo mostraremos cómo descargar e instalar OpenSolver en un computador que utiliza Windows 7 Home Premium como sistema operativo y Microsoft Office Professional Plus 2010.

Paso 1: Descargar OpenSolver21 (A la fecha de este artículo la versión 2.1 del 6 de Septiembre de 2012 es la más reciente).

Actualización: La última versión disponible a Octubre de 2015 es la edición 2.7.1 con fecha de lanzamiento 28 de Junio de 2015. Para descargar dicha versión se puede acceder directamente a la Página de Descarga e Instalación de OpenSolver.

Paso 2: Descomprimir el archivo ZIP de preferencia en una carpeta o en un lugar a elección.

extraer-opensolver

Paso 3: Abrir el archivo «OpenSolver.xlam» (es aquel con el icono de Excel y un pequeño cuadrado color rojo en la esquina superior derecha).

opensolver-xlam

Paso 4: Es probable que Excel solicite tu autorización para ejecutar el programa. En este caso debes seleccionar «Habilitar macros».

habilitar-macros-opensolver

Una vez concluidos los pasos anteriores OpenSolver debería estar disponible en la pestaña de Datos en Excel (esquina superior derecha) tal como se muestra a continuación. En efecto se podrá encontrar a la derecha del acceso a Solver.

opensolver-en-excel

El complemento estará disponible hasta cerrar Excel. Si se desea que OpenSolver este siempre disponible al ejecutar Excel se deben copiar todos los archivos que están incluidos en el archivo comprimido (ZIP) de la instalación (aquellos que se pueden observar en la imagen del Paso 3) en el directorio de «add-in» de Excel. La ruta típica suele ser: C:/Documents and Settings/»user name»/Application Data/Microsoft/Addins (se debe tener en cuenta que el acceso puede cambiar dependiendo de la versión de Windows que se este utilizando).

Qué significa un Precio Sombra igual a Cero en Programación Lineal

Según hemos abordado en artículos anteriores el Precio Sombra de una restricción representa la tasa de cambio del valor óptimo ante una modificación marginal del lado derecho de una restricción. Se entiende por «marginal» aquella modificación que no cambia la geometría del problema, es decir, que la nueva solución óptima se puede encontrar a través de la resolución del sistema de ecuaciones al que da origen las restricciones activas originales (previa actualización del parámetro que estamos modificando). En este contexto el precio sombra puede ser un valor positivo, negativo o cero y en particular nos referiremos a este último caso en este artículo.

Consideremos el siguiente modelo de Programación Lineal en 2 variables:

modelo-lineal-infinitas-sol

El problema anterior lo podemos resolver gráficamente utilizando Geogebra, que da origen a un problema con infinitas soluciones óptimas en el tramo de recta que une los vértices B y C y que se puede denotar de forma general por: (X,Y)=λ(0,60)+(1-λ)(10,45) con λ en el intervalo entre [0,1]. El valor óptimo en consecuencia es V(P)=1.200.

grafico-infinitas-solucione

¿Cuáles son las restricciones activas en el óptimo?. Por ejemplo si consideramos el vértice B (solución óptima) las restricciones activas son 3X+2Y<=120 y X>=0, sin embargo si seleccionamos el vértice C (también solución óptima) las restricciones activas son 5X+2Y<=140 y 3X+2Y<=120. Dado lo anterior ¿aumentará el valor óptimo si se dispone de unidades adicionales del recurso que representa el lado derecho de la restricción 5X+2Y<=140?.

Para ello buscaremos mantener activas las restricciones del vértice C identificando la máxima variación (aumentando el valor del lado derecho) que conserve las restricciones activas originales (esto genera un desplazamiento paralelo de la restricciones que hemos representado con la línea color punteada color rojo) lo cual se alcanza en la coordenada (X,Y)=(40,0). De forma análoga para determinar la mínima variación para el lado derecho desplazamos en un sentido de decrecimiento la restricción buscando conservar las restricciones activas originales hasta la coordenada (X,Y)=(0,60) (línea punteada color naranjo).

grafico-precio-sombra-igual

Evaluamos en la fórmula para el cálculo del precio sombra obteniendo lo siguiente:

precio-sombra-cero

Por tanto el precio sombra de la restricción 1 (5X+2Y<=140) es cero lo cual indica que si aumenta o disminuye el valor del parámetro que representa su lado derecho (actualmente b1=140) en el intervalo entre [120,200] no se verá afectado el valor óptimo del problema. Lo anterior es consistente con lo obtenido a través del informe de confidencialidad de restricciones de Solver de Excel:

precio-sombra-cero-solver

En general un precio sombra igual a cero significa que la modificación del parámetro que representa el lado derecho de la respectiva restricción (en un intervalo que conserva la geometría del problema) no tiene un impacto en el valor óptimo del problema. Sin embargo, existen casos especiales como los problemas de Programación Lineal que admiten infinitas soluciones (como el descrito en este artículo) donde una restricción con precio sombra igual a cero puede ser activa en uno de los vértices óptimo (el caso más usual es que una restricción con precio sombra igual a cero no sea activa en el óptimo).